bullframe.css 6.0.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +48 -1
  2. package/README.md +102 -28
  3. package/bin/bullframe.mjs +277 -0
  4. package/dist/css/bullframe-classless-dark.css +65 -58
  5. package/dist/css/bullframe-classless-dark.css.map +1 -1
  6. package/dist/css/bullframe-classless-dark.min.css +1 -1
  7. package/dist/css/bullframe-classless-dark.min.css.map +1 -1
  8. package/dist/css/bullframe-classless-system-default.css +61 -102
  9. package/dist/css/bullframe-classless-system-default.css.map +1 -1
  10. package/dist/css/bullframe-classless-system-default.min.css +1 -1
  11. package/dist/css/bullframe-classless-system-default.min.css.map +1 -1
  12. package/dist/css/bullframe-classless.css +37 -52
  13. package/dist/css/bullframe-classless.css.map +1 -1
  14. package/dist/css/bullframe-classless.min.css +1 -1
  15. package/dist/css/bullframe-classless.min.css.map +1 -1
  16. package/dist/css/bullframe-dark.css +216 -155
  17. package/dist/css/bullframe-dark.css.map +1 -1
  18. package/dist/css/bullframe-dark.min.css +1 -1
  19. package/dist/css/bullframe-dark.min.css.map +1 -1
  20. package/dist/css/bullframe-system-default.css +221 -154
  21. package/dist/css/bullframe-system-default.css.map +1 -1
  22. package/dist/css/bullframe-system-default.min.css +1 -1
  23. package/dist/css/bullframe-system-default.min.css.map +1 -1
  24. package/dist/css/bullframe-utilities.css +132 -65
  25. package/dist/css/bullframe-utilities.css.map +1 -1
  26. package/dist/css/bullframe-utilities.min.css +1 -1
  27. package/dist/css/bullframe-utilities.min.css.map +1 -1
  28. package/dist/css/bullframe.css +160 -115
  29. package/dist/css/bullframe.css.map +1 -1
  30. package/dist/css/bullframe.min.css +1 -1
  31. package/dist/css/bullframe.min.css.map +1 -1
  32. package/dist/skills/AGENTS.bullframe.md +46 -0
  33. package/dist/skills/_shared/builds.md +66 -0
  34. package/dist/skills/_shared/conventions.md +93 -0
  35. package/dist/skills/api.json +1023 -0
  36. package/dist/skills/bullframe-convert/SKILL.md +117 -0
  37. package/dist/skills/bullframe-convert/examples/after.html +43 -0
  38. package/dist/skills/bullframe-convert/examples/before.html +44 -0
  39. package/dist/skills/bullframe-core/SKILL.md +143 -0
  40. package/dist/skills/bullframe-docs-page/SKILL.md +89 -0
  41. package/dist/skills/bullframe-docs-page/examples/docs-page.html +72 -0
  42. package/dist/skills/bullframe-forms/SKILL.md +99 -0
  43. package/dist/skills/bullframe-forms/examples/contact-form.html +67 -0
  44. package/dist/skills/bullframe-landing-page/SKILL.md +96 -0
  45. package/dist/skills/bullframe-landing-page/examples/landing.html +98 -0
  46. package/dist/skills/index.json +134 -0
  47. package/package.json +21 -7
@@ -1 +1 @@
1
- {"version":3,"sources":["bullframe-utilities.css"],"names":[],"mappings":"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EA,OACE,wBAA0B,CAC1B,wBACF,CAEA,OACE,wBAA0B,CAC1B,0BACF,CAEA,OACE,wBAA0B,CAC1B,wBACF,CAEA,cAEE,wBAA0B,CAC1B,0BACF,CAEA,UACE,wBACF,CAEA,8BACE,kCACF,CAGA,mCAEE,qBAAsB,CACtB,aAAc,CAEd,gBAAiB,CADjB,iBAAkB,CAElB,0CAA2C,CAC3C,2CACF,CAEA,cACE,gBACF,CAEA,QACE,YAAa,CACb,cAAe,CACf,kDAAqD,CACrD,mDACF,CAEA,iBAKE,WAAY,CACZ,aAAc,CAJd,cAAe,CACf,0CAA2C,CAC3C,2CAA4C,CAH5C,iBAMF,CAEA,eAEE,aAAc,CADd,cAEF,CAEA,+BAEE,cAAe,CADf,eAEF,CAGA,WACE,eAAgB,CAChB,cACF,CAEA,WACE,mBAAoB,CACpB,kBACF,CAEA,WACE,mBAAoB,CACpB,kBACF,CAEA,UACE,cAAe,CACf,aACF,CAEA,UACE,mBAAoB,CACpB,kBACF,CAEA,UACE,mBAAoB,CACpB,kBACF,CAEA,UACE,cAAe,CACf,aACF,CAEA,UACE,mBAAoB,CACpB,kBACF,CAEA,UACE,mBAAoB,CACpB,kBACF,CAEA,UACE,cAAe,CACf,aACF,CAEA,UACE,mBAAoB,CACpB,kBACF,CAEA,UACE,kBAAmB,CACnB,iBACF,CAGA,yBACE,gCACE,aAAc,CACd,cACF,CAEA,wCACE,eAAgB,CAEhB,aAAc,CADd,cAAe,CAEf,cAAe,CACf,eACF,CACF,CAEA,yBACE,gCACE,aAAc,CACd,cACF,CAEA,wCACE,eAAgB,CAEhB,aAAc,CADd,cAAe,CAEf,cAAe,CACf,eACF,CACF,CAEA,yBACE,gCACE,aAAc,CACd,cACF,CAEA,wCACE,eAAgB,CAEhB,aAAc,CADd,cAAe,CAEf,cAAe,CACf,eACF,CACF,CAGA,gDAEE,eACF,CAGA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,gBACE,WACF,CACA,gBACE,WACF,CACA,gBACE,WACF,CAGA,QACE,kBACF,CAEA,UACE,sBACF,CAEA,UACE,yBACF,CAEA,UACE,uBACF,CAEA,UACE,wBACF,CAEA,QACE,4CACF,CAEA,QACE,4CACF,CAEA,QACE,4CACF,CAEA,QACE,6CACF,CAEA,UACE,yCACF,CAEA,UACE,yCACF,CAEA,UACE,yCACF,CAEA,UACE,0CACF,CAEA,UACE,4CACF,CAEA,UACE,4CACF,CAEA,UACE,4CACF,CAEA,UACE,6CACF,CAEA,QACE,mBACF,CAEA,UACE,uBACF,CAEA,UACE,0BACF,CAEA,UACE,wBACF,CAEA,UACE,yBACF,CAEA,QACE,6CACF,CAEA,QACE,6CACF,CAEA,QACE,6CACF,CAEA,QACE,8CACF,CAEA,UACE,0CACF,CAEA,UACE,0CACF,CAEA,UACE,0CACF,CAEA,UACE,2CACF,CAEA,UACE,6CACF,CAEA,UACE,6CACF,CAEA,UACE,6CACF,CAEA,UACE,8CACF,CAGA,QAQE,2BAA4B,CAL5B,oBAAqB,CADrB,cAAe,CADf,oBAAqB,CAIrB,kBAAmB,CAEnB,QAAS,CAGT,gBAAiB,CANjB,mEAAgF,CAEhF,iBAAkB,CAGlB,uBAAwB,CAExB,wCAA4C,CAQ5C,qCAAsC,CADtC,qBAAsB,CADtB,QAAS,CAFT,kCAAmC,CAKnC,kBAAoB,CARpB,wBAAyB,CACtB,qBAAsB,CACjB,gBAOV,CAEA,2CAKE,kBAA4B,CAD5B,oBAAqB,CADrB,oBAGF,CAEA,6BAEE,oCACF,CAGA,wBAEE,yBAA0B,CAD1B,qBAEF,CAEA,2FAIE,+BAAgC,CADhC,qBAEF,CAEA,6DAEE,uCACF,CAEA,kGAcE,qCAAsC,CAFtC,yBAA2B,CAN3B,wBAA0B,CAC1B,4BAA8B,CAM9B,oBAAuB,CAEvB,sBAAwB,CAPxB,6BAA+B,CAC/B,kCAAoC,C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","file":"bullframe-utilities.css","sourcesContent":["/* ! Bullframe CSS v6.0.0 | MIT License | https://github.com/marcop135/bullframe.css */\n\n/* Utilities-only build: tokens + .bf-* helpers (no base element styles). */\n\n/* Variables */\n/* Design tokens (--bf-*). Shared by every build variant.\n * Override on :root (or a scope) to theme without rebuilding. */\n\n:root {\n /* Neutrals */\n --bf-white: rgb(255 255 255);\n --bf-light: rgb(240 240 240);\n --bf-gray-light-extra: rgb(233 233 233);\n --bf-gray-light: rgb(204 204 204);\n --bf-gray: rgb(153 153 153);\n --bf-gray-dark: rgb(102 102 102);\n --bf-gray-dark-extra: rgb(51 51 51);\n --bf-dark: rgb(34 34 34);\n --bf-dark-extra: rgb(17 17 17);\n --bf-black: rgb(0 0 0);\n\n /* Highlight / mark */\n --bf-yellow-light: rgb(255 255 153);\n --bf-yellow: rgb(255 255 0);\n --bf-orange: rgb(255 165 0);\n\n /* Accent: WCAG AA on white (links 4.5:1) and white-on-blue buttons (4.5:1) */\n --bf-blue: rgb(0 86 179);\n --bf-blue-light: rgb(0 65 135);\n --bf-blue-light-extra: rgb(190 216 254);\n\n /* Invalid / error */\n --bf-red: rgb(255 0 0);\n\n /* Dark-mode surfaces (used by utility-global-dark*.css) */\n --bf-dark-bg: rgb(28 28 28);\n --bf-dark-link: rgb(77 165 255);\n --bf-dark-link-hover: rgb(77 165 255);\n --bf-dark-border-focus: rgb(26 140 255);\n --bf-dark-shadow-focus: rgb(3 102 214 / 50%);\n --bf-dark-mark-bg: rgb(230 230 0);\n --bf-dark-ins-bg: rgb(255 255 200);\n --bf-dark-button-hover: rgb(184 184 184);\n --bf-dark-button-shadow: rgb(255 255 255 / 45%);\n --bf-dark-invalid: rgb(255 38 38);\n\n /* Spacing scale + grid gutter */\n --bf-spacing-sm: 0.25rem;\n --bf-spacing-md: 0.5rem;\n --bf-spacing-lg: 1rem;\n --bf-spacing-xl: 2rem;\n --bf-spacing-xxl: 3rem;\n --bf-spacing-grid-gutter: 1.5rem;\n\n /* Type */\n --bf-font-sans-serif:\n -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell,\n 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\n 'Segoe UI Symbol', 'Noto Color Emoji';\n --bf-font-serif: Georgia, Times, 'Times New Roman', serif;\n --bf-font-monospace:\n SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n --bf-body-font-size-rem: 1.6rem;\n --bf-body-line-height: 1.5;\n\n /* Breakpoint tokens (documentation / tooling; media queries use literal px below) */\n --bf-breakpoint-xs: 0;\n --bf-breakpoint-sm: 576px;\n --bf-breakpoint-md: 768px;\n --bf-breakpoint-lg: 992px;\n --bf-breakpoint-xl: 1200px;\n --bf-breakpoint-xxl: 1400px;\n}\n\n/* Utilities */\n/* Display, visibility, float, position, and width helpers. */\n\n.bf-clearfix::before,\n.bf-clearfix::after {\n content: ' ';\n display: table;\n}\n\n.bf-clearfix::after {\n clear: both;\n}\n\n.bf-hide {\n display: none !important;\n}\n\n.bf-hidden {\n display: none !important;\n visibility: hidden !important;\n}\n\n.bf-text-hide {\n font: 0/0 a !important;\n color: transparent !important;\n text-shadow: none !important;\n background-color: transparent !important;\n border: 0 !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n\n/* Visually hidden; available to screen readers (h5bp / Snook). */\n.bf-sr-only {\n border: 0 !important;\n clip: rect(0, 0, 0, 0) !important;\n height: 1px !important;\n margin: -1px !important;\n overflow: hidden !important;\n padding: 0 !important;\n position: absolute !important;\n white-space: nowrap !important;\n width: 1px !important;\n}\n\n/* .bf-sr-only, revealed on focus (skip links). */\n.bf-sr-only.focusable:active,\n.bf-sr-only.focusable:focus {\n clip: auto !important;\n height: auto !important;\n margin: 0 !important;\n overflow: visible !important;\n position: static !important;\n white-space: inherit !important;\n width: auto !important;\n}\n\n.bf-invisible {\n visibility: hidden !important;\n}\n\n.bf-visible {\n visibility: visible !important;\n}\n\n.bf-display-block {\n display: block !important;\n}\n\n.bf-display-block-center {\n display: block !important;\n margin-left: auto !important;\n margin-right: auto !important;\n text-align: center !important;\n}\n\n.bf-display-inline {\n display: inline !important;\n}\n\n.bf-display-inline-block {\n display: inline-block !important;\n}\n\n.bf-display-flex {\n display: flex !important;\n}\n\n.bf-display-inline-flex {\n display: inline-flex !important;\n}\n\n.bf-display-flex--justify-start {\n justify-content: flex-start !important;\n}\n\n.bf-display-flex--justify-end {\n justify-content: flex-end !important;\n}\n\n.bf-display-flex--justify-center {\n justify-content: center !important;\n}\n\n.bf-display-flex--wrap {\n flex-wrap: wrap !important;\n}\n\n.bf-display-flex--nowrap {\n flex-wrap: nowrap !important;\n}\n\n.bf-float-left {\n float: left !important;\n}\n\n.bf-float-right {\n float: right !important;\n}\n\n.bf-position-fixed {\n position: fixed !important;\n}\n\n.bf-position-sticky {\n position: sticky !important;\n top: 0 !important;\n}\n\n.bf-position-relative {\n position: relative !important;\n}\n\n/* Absolute center inside a relative parent. */\n.bf-align-center-unknown {\n position: relative !important;\n}\n\n.bf-align-center-unknown--item {\n position: absolute !important;\n top: 50% !important;\n left: 50% !important;\n transform: translate(-50%, -50%) !important;\n}\n\n.bf-align-center-flex {\n display: flex !important;\n justify-content: center !important;\n align-items: center !important;\n height: 100vh !important;\n}\n\n.bf-width-25 {\n width: 25% !important;\n}\n\n.bf-width-33 {\n width: 33.3333% !important;\n}\n\n.bf-width-50 {\n width: 50% !important;\n}\n\n.bf-width-75 {\n width: 75% !important;\n}\n\n.bf-width-100 {\n width: 100% !important;\n}\n\n.bf-width-auto {\n width: auto !important;\n}\n/* Text alignment, weight, truncate, and font-stack helpers. */\n\n.bf-t-transform-uppercase {\n text-transform: uppercase !important;\n}\n\n.bf-t-transform-none {\n text-transform: none !important;\n}\n\n.bf-t-left {\n text-align: left !important;\n}\n\n.bf-t-center {\n text-align: center !important;\n}\n\n.bf-t-right {\n text-align: right !important;\n}\n\n.bf-t-shadow {\n text-shadow: 0 0 2px var(--bf-dark) !important;\n text-shadow: 0 0 0.2rem var(--bf-dark) !important;\n}\n\n.bf-t-italic {\n font-style: italic !important;\n}\n\n/* Reset italic inheritance (e.g. nested <i>). */\n.bf-t-style-normal {\n font-style: normal !important;\n}\n\n/* Weight utilities (e.g. reset <b>). */\n.bf-t-weight-300 {\n font-weight: 300 !important;\n}\n\n.bf-t-weight-400 {\n font-weight: 400 !important;\n}\n\n.bf-t-weight-500 {\n font-weight: 500 !important;\n}\n\n.bf-t-weight-600 {\n font-weight: 600 !important;\n}\n\n.bf-t-weight-700 {\n font-weight: 700 !important;\n}\n\n.bf-t-weight-800 {\n font-weight: 800 !important;\n}\n\n.bf-text-break {\n word-wrap: break-word !important;\n}\n\n.bf-t-truncate {\n max-width: 100% !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n white-space: nowrap !important;\n word-wrap: normal !important;\n}\n\n.bf-t-truncate--multiline-2 {\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n display: -webkit-box !important;\n line-clamp: 2 !important;\n -webkit-line-clamp: 2 !important;\n -webkit-box-orient: vertical !important;\n}\n\n.bf-t-truncate--multiline-3 {\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n display: -webkit-box !important;\n line-clamp: 3 !important;\n -webkit-line-clamp: 3 !important;\n -webkit-box-orient: vertical !important;\n}\n\n.bf-no-select {\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n user-select: none !important;\n -webkit-touch-callout: none !important;\n}\n\n.bf-font-sans-serif {\n font-family: var(--bf-font-sans-serif) !important;\n}\n\n.bf-font-serif {\n font-family: var(--bf-font-serif) !important;\n}\n\n.bf-font-monospace {\n font-family: var(--bf-font-monospace) !important;\n}\n\n/* Opt-in stacks from Modern Font Stacks (https://modernfontstacks.com/). */\n.bf-sans-serif--system {\n font-family: system-ui, sans-serif;\n}\n\n.bf-serif--transitional {\n font-family: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif;\n}\n\n.bf-serif--oldstyle {\n font-family: 'Iowan Old Style', 'Palatino Linotype', 'URW Palladio L', P052, serif;\n}\n\n.bf-sans-serif--humanist {\n font-family:\n Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;\n}\n\n.bf-sans-serif--geometric {\n font-family: Avenir, Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif;\n}\n\n.bf-sans-serif--classical {\n font-family: Optima, Candara, 'Noto Sans', source-sans-pro, sans-serif;\n}\n\n.bf-sans-serif--neo-grotesque {\n font-family: Inter, Roboto, 'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', Arial, sans-serif;\n}\n\n.bf-monospace--slab {\n font-family: 'Nimbus Mono PS', 'Courier New', monospace;\n}\n\n.bf-monospace--code {\n font-family:\n ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono',\n monospace;\n}\n\n.bf-sans-serif--industrial {\n font-family:\n Bahnschrift, 'DIN Alternate', 'Franklin Gothic Medium', 'Nimbus Sans Narrow',\n sans-serif-condensed, sans-serif;\n}\n\n.bf-sans-serif--rounded {\n font-family:\n ui-rounded, 'Hiragino Maru Gothic ProN', Quicksand, Comfortaa, Manjari, 'Arial Rounded MT',\n 'Arial Rounded MT Bold', Calibri, source-sans-pro, sans-serif;\n}\n\n.bf-serif--slab {\n font-family: Rockwell, 'Rockwell Nova', 'Roboto Slab', 'DejaVu Serif', 'Sitka Small', serif;\n}\n\n.bf-serif--antique {\n font-family:\n Superclarendon, 'Bookman Old Style', 'URW Bookman', 'URW Bookman L', 'Georgia Pro', Georgia,\n serif;\n}\n\n.bf-serif--didone {\n font-family: Didot, 'Bodoni MT', 'Noto Serif Display', 'URW Palladio L', P052, Sylfaen, serif;\n}\n\n.bf-cursive--handwritten {\n font-family: 'Segoe Print', 'Bradley Hand', Chilanka, TSCu_Comic, casual, cursive;\n}\n\n.bf-h1,\n.bf-h2,\n.bf-h3,\n.bf-h4,\n.bf-h5,\n.bf-h6 {\n font-weight: 600 !important;\n margin-top: 0 !important;\n line-height: 1.2 !important;\n margin-bottom: var(--bf-spacing-lg) !important;\n}\n\n.bf-h1 {\n font-size: 36px !important;\n font-size: 3.6rem !important;\n}\n\n.bf-h2 {\n font-size: 30px !important;\n font-size: 3rem !important;\n}\n\n.bf-h3 {\n font-size: 24px !important;\n font-size: 2.4rem !important;\n}\n\n.bf-h4 {\n font-size: 20px !important;\n font-size: 2rem !important;\n}\n\n.bf-h5,\n.bf-h6 {\n font-size: 16px !important;\n font-size: 1.6rem !important;\n}\n\np.bf-lead {\n font-size: 120% !important;\n}\n\nbody.bf-responsive-typography {\n font-size: clamp(1.5rem, 2vw, 1.8rem);\n}\n/* 12-column flex grid: .bf-container / .bf-row / .bf-col-* (+ optional --break-* stacking). */\n\n.bf-container,\n.bf-container--fluid {\n box-sizing: border-box;\n display: block;\n margin-right: auto;\n margin-left: auto;\n padding-left: var(--bf-spacing-grid-gutter);\n padding-right: var(--bf-spacing-grid-gutter);\n}\n\n.bf-container {\n max-width: 114rem;\n}\n\n.bf-row {\n display: flex;\n flex-wrap: wrap;\n margin-left: calc(-1 * var(--bf-spacing-grid-gutter));\n margin-right: calc(-1 * var(--bf-spacing-grid-gutter));\n}\n\n[class^='bf-col-'] {\n position: relative;\n min-height: 1px;\n padding-left: var(--bf-spacing-grid-gutter);\n padding-right: var(--bf-spacing-grid-gutter);\n flex-grow: 0;\n flex-shrink: 0;\n}\n\n.bf-no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.bf-no-gutters > [class^='bf-col'] {\n padding-right: 0;\n padding-left: 0;\n}\n\n/* Column spans (12ths). */\n.bf-col-12 {\n flex-basis: 100%;\n max-width: 100%;\n}\n\n.bf-col-11 {\n flex-basis: 91.6667%;\n max-width: 91.6667%;\n}\n\n.bf-col-10 {\n flex-basis: 83.3333%;\n max-width: 83.3333%;\n}\n\n.bf-col-9 {\n flex-basis: 75%;\n max-width: 75%;\n}\n\n.bf-col-8 {\n flex-basis: 66.6667%;\n max-width: 66.6667%;\n}\n\n.bf-col-7 {\n flex-basis: 58.3333%;\n max-width: 58.3333%;\n}\n\n.bf-col-6 {\n flex-basis: 50%;\n max-width: 50%;\n}\n\n.bf-col-5 {\n flex-basis: 41.6667%;\n max-width: 41.6667%;\n}\n\n.bf-col-4 {\n flex-basis: 33.3333%;\n max-width: 33.3333%;\n}\n\n.bf-col-3 {\n flex-basis: 25%;\n max-width: 25%;\n}\n\n.bf-col-2 {\n flex-basis: 16.6667%;\n max-width: 16.6667%;\n}\n\n.bf-col-1 {\n flex-basis: 8.3333%;\n max-width: 8.3333%;\n}\n\n/* Breakpoint stacking via .bf-container--break-{xs|md|lg}. */\n@media (max-width: 575px) {\n .bf-container--break-xs .bf-row {\n margin-left: 0;\n margin-right: 0;\n }\n\n .bf-container--break-xs [class^='bf-col'] {\n flex-basis: 100%;\n max-width: 100%;\n margin-left: 0;\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n@media (max-width: 767px) {\n .bf-container--break-md .bf-row {\n margin-left: 0;\n margin-right: 0;\n }\n\n .bf-container--break-md [class^='bf-col'] {\n flex-basis: 100%;\n max-width: 100%;\n margin-left: 0;\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n@media (max-width: 991px) {\n .bf-container--break-lg .bf-row {\n margin-left: 0;\n margin-right: 0;\n }\n\n .bf-container--break-lg [class^='bf-col'] {\n flex-basis: 100%;\n max-width: 100%;\n margin-left: 0;\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n/* Table cells with col classes stay position:static (v4 compat). */\ntable td[class^='bf-col'],\ntable th[class^='bf-col'] {\n position: static;\n}\n/* Z-index scale (.bf-z-index-*). */\n\n.bf-z-index-1 {\n z-index: 1;\n}\n.bf-z-index-2 {\n z-index: 2;\n}\n.bf-z-index-3 {\n z-index: 3;\n}\n.bf-z-index-4 {\n z-index: 4;\n}\n.bf-z-index-5 {\n z-index: 5;\n}\n.bf-z-index-6 {\n z-index: 6;\n}\n.bf-z-index-7 {\n z-index: 7;\n}\n.bf-z-index-8 {\n z-index: 8;\n}\n.bf-z-index-9 {\n z-index: 9;\n}\n.bf-z-index-10 {\n z-index: 10;\n}\n.bf-z-index-20 {\n z-index: 20;\n}\n.bf-z-index-30 {\n z-index: 30;\n}\n.bf-z-index-40 {\n z-index: 40;\n}\n.bf-z-index-50 {\n z-index: 50;\n}\n.bf-z-index-60 {\n z-index: 60;\n}\n.bf-z-index-70 {\n z-index: 70;\n}\n.bf-z-index-80 {\n z-index: 80;\n}\n.bf-z-index-90 {\n z-index: 90;\n}\n.bf-z-index-100 {\n z-index: 100;\n}\n.bf-z-index-200 {\n z-index: 200;\n}\n.bf-z-index-300 {\n z-index: 300;\n}\n/* Margin / padding scale (.bf-m-*, .bf-p-*). */\n\n.bf-m-0 {\n margin: 0 !important;\n}\n\n.bf-m-t-0 {\n margin-top: 0 !important;\n}\n\n.bf-m-b-0 {\n margin-bottom: 0 !important;\n}\n\n.bf-m-l-0 {\n margin-left: 0 !important;\n}\n\n.bf-m-r-0 {\n margin-right: 0 !important;\n}\n\n.bf-m-1 {\n margin-bottom: var(--bf-spacing-md) !important;\n}\n\n.bf-m-2 {\n margin-bottom: var(--bf-spacing-lg) !important;\n}\n\n.bf-m-3 {\n margin-bottom: var(--bf-spacing-xl) !important;\n}\n\n.bf-m-4 {\n margin-bottom: var(--bf-spacing-xxl) !important;\n}\n\n.bf-m-t-1 {\n margin-top: var(--bf-spacing-md) !important;\n}\n\n.bf-m-t-2 {\n margin-top: var(--bf-spacing-lg) !important;\n}\n\n.bf-m-t-3 {\n margin-top: var(--bf-spacing-xl) !important;\n}\n\n.bf-m-t-4 {\n margin-top: var(--bf-spacing-xxl) !important;\n}\n\n.bf-m-b-1 {\n margin-bottom: var(--bf-spacing-md) !important;\n}\n\n.bf-m-b-2 {\n margin-bottom: var(--bf-spacing-lg) !important;\n}\n\n.bf-m-b-3 {\n margin-bottom: var(--bf-spacing-xl) !important;\n}\n\n.bf-m-b-4 {\n margin-bottom: var(--bf-spacing-xxl) !important;\n}\n\n.bf-p-0 {\n padding: 0 !important;\n}\n\n.bf-p-t-0 {\n padding-top: 0 !important;\n}\n\n.bf-p-b-0 {\n padding-bottom: 0 !important;\n}\n\n.bf-p-l-0 {\n padding-left: 0 !important;\n}\n\n.bf-p-r-0 {\n padding-right: 0 !important;\n}\n\n.bf-p-1 {\n padding-bottom: var(--bf-spacing-md) !important;\n}\n\n.bf-p-2 {\n padding-bottom: var(--bf-spacing-lg) !important;\n}\n\n.bf-p-3 {\n padding-bottom: var(--bf-spacing-xl) !important;\n}\n\n.bf-p-4 {\n padding-bottom: var(--bf-spacing-xxl) !important;\n}\n\n.bf-p-t-1 {\n padding-top: var(--bf-spacing-md) !important;\n}\n\n.bf-p-t-2 {\n padding-top: var(--bf-spacing-lg) !important;\n}\n\n.bf-p-t-3 {\n padding-top: var(--bf-spacing-xl) !important;\n}\n\n.bf-p-t-4 {\n padding-top: var(--bf-spacing-xxl) !important;\n}\n\n.bf-p-b-1 {\n padding-bottom: var(--bf-spacing-md) !important;\n}\n\n.bf-p-b-2 {\n padding-bottom: var(--bf-spacing-lg) !important;\n}\n\n.bf-p-b-3 {\n padding-bottom: var(--bf-spacing-xl) !important;\n}\n\n.bf-p-b-4 {\n padding-bottom: var(--bf-spacing-xxl) !important;\n}\n/* .bf-btn and variants. */\n\n.bf-btn {\n display: inline-block;\n cursor: pointer;\n color: var(--bf-dark);\n padding: calc(var(--bf-spacing-xl) / 3) calc(calc(var(--bf-spacing-xl) / 3) * 2);\n line-height: normal;\n text-align: center;\n margin: 0;\n background-clip: padding-box;\n vertical-align: baseline;\n overflow: visible;\n -webkit-tap-highlight-color: rgb(0 0 0 / 0%);\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n border-radius: var(--bf-spacing-sm);\n\n border: 0;\n background-image: none;\n background-color: var(--bf-gray-light);\n transition: all 0.2s;\n}\n\n.bf-btn:hover,\n.bf-btn:active,\n.bf-btn:focus {\n text-decoration: none;\n color: var(--bf-dark);\n background: rgb(184 184 184); /* --bf-gray-light, ~10% darker */\n}\n\n.bf-btn:active,\n.bf-btn:focus {\n box-shadow: 0 0 0 3px rgb(0 0 0 / 15%);\n}\n\n/* Primary: white on --bf-blue (WCAG AA 4.5:1). */\n.bf-btn.bf-btn--primary {\n color: var(--bf-white);\n background: var(--bf-blue);\n}\n\n.bf-btn.bf-btn--primary:hover,\n.bf-btn.bf-btn--primary:active,\n.bf-btn.bf-btn--primary:focus {\n color: var(--bf-white);\n background: var(--bf-blue-light);\n}\n\n.bf-btn.bf-btn--primary:active,\n.bf-btn.bf-btn--primary:focus {\n box-shadow: 0 0 0 3px rgb(0 65 135 / 35%);\n}\n\n:where(\n fieldset[disabled] .bf-btn,\n .bf-btn[disabled],\n .bf-btn:disabled,\n .bf-btn[aria-disabled='true']\n) {\n cursor: default !important;\n cursor: not-allowed !important;\n pointer-events: none !important;\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n user-select: none !important;\n box-shadow: none !important;\n opacity: 0.5 !important;\n background-color: var(--bf-gray-light);\n outline: none !important;\n}\n/* Focused / invalid / disabled form state classes. */\n\n.bf-focused {\n transition:\n border 0.2s,\n background-color 0.2s,\n box-shadow 0.2s !important;\n border-color: var(--bf-blue) !important;\n box-shadow: 0 0 0 3px rgb(0 86 179 / 25%) !important;\n}\n\n.bf-disabled,\n.bf-disabled:hover,\n.bf-disabled:active,\n.bf-disabled:focus,\n.bf-disabled::after,\n.bf-disabled::before,\n.bf-disabled:invalid,\n.bf-disabled:checked {\n cursor: default !important;\n cursor: not-allowed !important;\n pointer-events: none !important;\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n user-select: none !important;\n box-shadow: none !important;\n opacity: 0.5 !important;\n background-color: var(--bf-white);\n border-color: var(--bf-gray);\n}\n\nlabel.bf-disabled {\n background-color: transparent;\n border-color: transparent;\n}\n\nbutton.bf-disabled,\n[type='button'].bf-disabled,\n[type='reset'].bf-disabled,\n[type='submit'].bf-disabled,\n.bf-btn.bf-disabled {\n cursor: default;\n cursor: not-allowed;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n box-shadow: none;\n opacity: 0.5;\n color: var(--bf-dark);\n background: var(--bf-gray-light);\n}\n\nbutton.bf-disabled:hover,\nbutton.bf-disabled:active,\nbutton.bf-disabled:focus,\n[type='button'].bf-disabled:hover,\n[type='button'].bf-disabled:active,\n[type='button'].bf-disabled:focus,\n[type='reset'].bf-disabled:hover,\n[type='reset'].bf-disabled:active,\n[type='reset'].bf-disabled:focus,\n[type='submit'].bf-disabled:hover,\n[type='submit'].bf-disabled:active,\n[type='submit'].bf-disabled:focus,\n.bf-btn.bf-disabled:hover,\n.bf-btn.bf-disabled:active,\n.bf-btn.bf-disabled:focus {\n box-shadow: none;\n color: var(--bf-dark);\n background: var(--bf-gray-light);\n}\n\n.bf-btn--primary.bf-disabled {\n cursor: default;\n cursor: not-allowed;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n box-shadow: none;\n opacity: 0.5;\n color: var(--bf-white);\n background: var(--bf-blue);\n}\n\n.bf-btn--primary.bf-disabled:hover,\n.bf-btn--primary.bf-disabled:active,\n.bf-btn--primary.bf-disabled:focus {\n box-shadow: none;\n color: var(--bf-white);\n background: var(--bf-blue);\n}\n\n.bf-invalid,\n.bf-invalid:focus {\n color: var(--bf-red) !important;\n border-color: var(--bf-red) !important;\n box-shadow: 0 0 0 3px rgb(255 0 0 / 25%) !important;\n}\n/* Custom radio / checkbox appearance. */\n\n.custom-checkbox-wrapper [type='checkbox'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n height: 1.8rem;\n width: 1.8rem;\n vertical-align: top;\n position: relative;\n border: 1px solid var(--bf-gray);\n}\n\n.custom-checkbox-wrapper [type='checkbox'] + label {\n line-height: 1.8rem;\n vertical-align: top;\n margin-left: var(--bf-spacing-md);\n}\n\n*[dir='rtl'] .custom-checkbox-wrapper [type='checkbox'] + label,\n.custom-checkbox-wrapper [type='checkbox'][dir='rtl'] + label {\n margin-left: 0;\n margin-right: var(--bf-spacing-md);\n}\n\n.custom-checkbox-wrapper [type='checkbox']::after {\n content: '';\n display: block;\n position: absolute;\n width: 0.6rem;\n height: 0.8rem;\n border: 2px solid var(--bf-white);\n border-top: 0;\n border-left: 0;\n left: 35%;\n top: 20%;\n transform: rotate(43deg);\n}\n\n.custom-checkbox-wrapper [type='checkbox']:checked {\n background-color: var(--bf-blue);\n border-color: var(--bf-black);\n}\n\n.custom-radio-wrapper [type='radio'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n height: 1.8rem;\n width: 1.8rem;\n vertical-align: top;\n position: relative;\n border: 1px solid var(--bf-gray);\n}\n\n.custom-radio-wrapper [type='radio'] + label {\n line-height: 1.8rem;\n vertical-align: top;\n margin-left: var(--bf-spacing-md);\n}\n\n*[dir='rtl'] .custom-radio-wrapper [type='radio'] + label,\n.custom-radio-wrapper [type='radio'][dir='rtl'] + label {\n margin-left: 0;\n margin-right: var(--bf-spacing-md);\n}\n\n.custom-radio-wrapper [type='radio']::after {\n content: '';\n display: block;\n position: absolute;\n width: 1.8rem;\n height: 1.8rem;\n left: -0.05rem;\n top: -0.05rem;\n border-radius: 50%;\n background: var(--bf-white);\n transform: scale(0.35);\n}\n\n.custom-radio-wrapper [type='radio']:checked {\n background-color: var(--bf-blue);\n border-color: var(--bf-black);\n}\n/* Unstyled and inline list helpers. */\n\n.bf-list-unstyled,\nmenu ul.bf-list-unstyled,\nmenu ol.bf-list-unstyled,\nul.bf-list-unstyled ul,\nul.bf-list-unstyled ol,\nol.bf-list-unstyled ol,\nol.bf-list-unstyled ul,\ndd.bf-list-unstyled {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\ndt {\n font-weight: 700;\n}\n/* Table padding, overflow, and zebra helpers. */\n\n.bf-table th,\n.bf-table td {\n padding: var(--bf-spacing-lg);\n border-bottom: 1px solid var(--bf-gray);\n margin-bottom: var(--bf-spacing-md);\n}\n\n/* Horizontal scroll wrapper. */\n.bf-table-responsive {\n overflow: auto hidden;\n -ms-overflow-style: scrollbar;\n}\n\n.bf-table-responsive table {\n width: 100%;\n margin-bottom: var(--bf-spacing-md);\n}\n\n/* Prefer always-visible scrollbars on WebKit. */\n.bf-table-responsive.scrollbar {\n -webkit-overflow-scrolling: auto;\n}\n\n/* Odd-row striping. */\n.bf-table--zebra tbody tr:nth-child(odd),\n.bf-table-responsive--zebra tbody tr:nth-child(odd) {\n background-color: var(--bf-gray-light-extra);\n}\n/* Responsive embed box (Bootstrap-style aspect ratio). */\n\n.bf-embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.bf-embed-responsive::before {\n display: block;\n content: '';\n padding-top: 56.25%; /* 16:9 by default */\n}\n\n.bf-embed-responsive.bf-embed-responsive--4-3::before {\n padding-top: 75%;\n}\n\n.bf-embed-responsive .bf-embed-responsive--item,\n.bf-embed-responsive iframe,\n.bf-embed-responsive embed,\n.bf-embed-responsive object,\n.bf-embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n/* Reduced-motion opt-in (cssremedy-style). */\n\n@media (prefers-reduced-motion: reduce) {\n .bf-reduced-motion,\n .bf-reduced-motion::before,\n .bf-reduced-motion::after,\n .bf-reduced-motion *,\n .bf-reduced-motion *::before,\n .bf-reduced-motion *::after {\n animation-delay: -1ms !important;\n animation-duration: 1ms !important;\n animation-iteration-count: 1 !important;\n background-attachment: initial !important;\n scroll-behavior: auto !important;\n transition-delay: 0s !important;\n transition-duration: 0s !important;\n }\n}\n/* Opt-in font-smoothing (.bf-antialiased / .bf-subpixel-antialiased).\n * Names match Tailwind. Not applied globally: Apple recommends subpixel for body text on macOS. */\n\n.bf-antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.bf-subpixel-antialiased {\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: auto;\n}\n/* Print styles (adapted from h5bp main.css). */\n\n@media print {\n *,\n *::before,\n *::after {\n background: #fff !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]::after {\n content: ' (' attr(href) ')';\n }\n\n abbr[title]::after {\n content: ' (' attr(title) ')';\n }\n\n a[href^='#']::after,\n a[href^='javascript:']::after {\n content: '';\n }\n\n pre {\n white-space: pre-wrap !important;\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n /* Framework print tweaks. */\n body,\n .bf-container {\n min-width: 992px !important;\n }\n\n .bf-table-responsive {\n overflow: auto;\n }\n\n .bf-table-responsive table {\n width: auto;\n }\n\n .bf-table-responsive table,\n .bf-table {\n border-collapse: collapse !important;\n }\n}\n/* Filter helpers (.bf-filter-*). */\n\n.bf-filter-invert {\n filter: invert(100%) !important;\n}\n\n.bf-filter-dim-images {\n filter: brightness(0.8) contrast(1.2);\n}\n\n.bf-filter-grayscale {\n filter: grayscale(1) !important;\n}\n\n.bf-filter-blur {\n filter: blur(0.3rem) !important;\n}\n\n.bf-filter-none {\n filter: none !important;\n}\n"]}
1
+ {"version":3,"sources":["bullframe-utilities.css"],"names":[],"mappings":"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CAEf,cAAe,CACf,eACF,CACF,CAGA,gDAEE,eACF,CAGA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,cACE,SACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,eACE,UACF,CACA,gBACE,WACF,CACA,gBACE,WACF,CACA,gBACE,WACF,CAGA,QACE,kBACF,CAEA,UACE,sBACF,CAEA,UACE,yBACF,CAEA,UACE,uBACF,CAEA,UACE,wBACF,CAGA,kBAEE,4CACF,CAEA,kBAEE,4CACF,CAEA,kBAEE,4CACF,CAEA,kBAEE,6CACF,CAEA,UACE,yCACF,CAEA,UACE,yCACF,CAEA,UACE,yCACF,CAEA,UACE,0CACF,CAEA,QACE,mBACF,CAEA,UACE,uBACF,CAEA,UACE,0BACF,CAEA,UACE,wBACF,CAEA,UACE,yBACF,CAGA,kBAEE,6CACF,CAEA,kBAEE,6CACF,CAEA,kBAEE,6CACF,CAEA,kBAEE,8CACF,CAEA,UACE,0CACF,CAEA,UACE,0CACF,CAEA,UACE,0CACF,CAEA,UACE,2CACF,CAGA,QAQE,2BAA4B,CAL5B,oBAAqB,CADrB,cAAe,CADf,oBAAqB,CAIrB,kBAAmB,CAEnB,QAAS,CAGT,gBAAiB,CANjB,mEAAgF,CAEhF,iBAAkB,CAGlB,uBAAwB,CAExB,wCAA4C,CAQ5C,qCAAsC,CADtC,qBAAsB,CADtB,QAAS,CAFT,kCAAmC,CAKnC,kBAAoB,CARpB,wBAAyB,CACtB,qBAAsB,CACjB,gBAOV,CAEA,cACE,SACF,CAEA,2CAKE,kBAA4B,CAD5B,oBAAqB,CADrB,oBAGF,CAEA,6BAEE,oCACF,CAGA,wBAEE,yBAA0B,CAD1B,qBAEF,CAEA,2FAIE,+BAAgC,CADhC,qBAEF,CAEA,6DAEE,uCACF,CAEA,kGAcE,qCAAsC,CAFtC,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","file":"bullframe-utilities.css","sourcesContent":["/* ! Bullframe CSS v6.2.0 | MIT License | https://github.com/marcop135/bullframe.css */\n\n/* Utilities-only build: tokens + .bf-* helpers (no base element styles). */\n\n/* Variables */\n/* Design tokens (--bf-*). Shared by every build variant.\n * Override on :root (or a scope) to theme without rebuilding. */\n\n:root {\n /* Neutrals */\n --bf-white: rgb(255 255 255);\n --bf-light: rgb(240 240 240);\n --bf-gray-light-extra: rgb(233 233 233);\n --bf-gray-light: rgb(204 204 204);\n --bf-gray: rgb(153 153 153);\n --bf-gray-dark: rgb(102 102 102);\n --bf-gray-dark-extra: rgb(51 51 51);\n --bf-dark: rgb(34 34 34);\n --bf-dark-extra: rgb(17 17 17);\n --bf-black: rgb(0 0 0);\n\n /* Highlight / mark */\n --bf-yellow-light: rgb(255 255 153);\n --bf-yellow: rgb(255 255 0);\n --bf-orange: rgb(255 165 0);\n\n /* Accent: WCAG AA on white (links 4.5:1) and white-on-blue buttons (4.5:1) */\n --bf-blue: rgb(0 86 179);\n --bf-blue-light: rgb(0 65 135);\n --bf-blue-light-extra: rgb(190 216 254);\n\n /* Invalid / error */\n --bf-red: rgb(255 0 0);\n\n /* Focus ring (prefers-contrast: more raises colour for WCAG 1.4.11) */\n --bf-focus-ring-color: var(--bf-orange);\n --bf-focus-ring-width: 0.2rem;\n --bf-focus-ring-offset: 0.3rem;\n\n /* Dark-mode surfaces (used by utility-global-dark*.css) */\n --bf-dark-bg: rgb(28 28 28);\n --bf-dark-link: rgb(77 165 255);\n --bf-dark-link-hover: rgb(77 165 255);\n --bf-dark-border-focus: rgb(26 140 255);\n --bf-dark-shadow-focus: rgb(3 102 214 / 50%);\n --bf-dark-mark-bg: rgb(230 230 0);\n --bf-dark-ins-bg: rgb(255 255 200);\n --bf-dark-button-hover: rgb(184 184 184);\n --bf-dark-button-shadow: rgb(255 255 255 / 45%);\n --bf-dark-invalid: rgb(255 38 38);\n\n /* Spacing scale + grid gutter */\n --bf-spacing-sm: 0.25rem;\n --bf-spacing-md: 0.5rem;\n --bf-spacing-lg: 1rem;\n --bf-spacing-xl: 2rem;\n --bf-spacing-xxl: 3rem;\n --bf-spacing-grid-gutter: 1.5rem;\n\n /* Type */\n --bf-font-sans-serif:\n -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell,\n 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji',\n 'Segoe UI Symbol', 'Noto Color Emoji';\n --bf-font-serif: Georgia, Times, 'Times New Roman', serif;\n --bf-font-monospace:\n SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;\n --bf-body-font-size-rem: 1.6rem;\n --bf-body-line-height: 1.5;\n\n /* Breakpoint tokens (documentation / tooling; media queries use literal px below) */\n --bf-breakpoint-xs: 0;\n --bf-breakpoint-sm: 576px;\n --bf-breakpoint-md: 768px;\n --bf-breakpoint-lg: 992px;\n --bf-breakpoint-xl: 1200px;\n --bf-breakpoint-xxl: 1400px;\n}\n\n/* Accessibility helpers (class-only, no element styles) */\n/* Screen-reader and keyboard helpers (.bf-sr-only, .bf-skip-link, .bf-focusable).\n * Class-based and utilities builds only; classless ships no .bf-* classes. */\n\n/* Visually hidden; available to screen readers (h5bp / Snook). */\n.bf-sr-only {\n border: 0 !important;\n clip: rect(0, 0, 0, 0) !important;\n height: 1px !important;\n margin: -1px !important;\n overflow: hidden !important;\n padding: 0 !important;\n position: absolute !important;\n white-space: nowrap !important;\n width: 1px !important;\n}\n\n/* .bf-sr-only, revealed on focus. .focusable is the legacy name; both work. */\n.bf-sr-only.focusable:active,\n.bf-sr-only.focusable:focus,\n.bf-sr-only.bf-focusable:active,\n.bf-sr-only.bf-focusable:focus {\n clip: auto !important;\n height: auto !important;\n margin: 0 !important;\n overflow: visible !important;\n position: static !important;\n white-space: inherit !important;\n width: auto !important;\n}\n\n/* Skip link: hidden until focused, then pinned to the top-left without\n * reflowing the page (unlike .bf-sr-only.focusable, which returns to flow). */\n.bf-skip-link {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 9999;\n padding: var(--bf-spacing-md) var(--bf-spacing-lg);\n color: var(--bf-blue);\n background-color: var(--bf-white);\n border: 1px solid var(--bf-gray-light);\n transform: translateY(-100%);\n}\n\n.bf-skip-link:focus,\n.bf-skip-link:focus-visible {\n transform: translateY(0);\n}\n\n/* Utilities */\n/* Display, visibility, float, position, and width helpers. */\n\n.bf-clearfix::before,\n.bf-clearfix::after {\n content: ' ';\n display: table;\n}\n\n.bf-clearfix::after {\n clear: both;\n}\n\n.bf-hide {\n display: none !important;\n}\n\n.bf-hidden {\n display: none !important;\n visibility: hidden !important;\n}\n\n.bf-text-hide {\n font: 0/0 a !important;\n color: transparent !important;\n text-shadow: none !important;\n background-color: transparent !important;\n border: 0 !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n\n/* .bf-sr-only, .bf-focusable and .bf-skip-link live in\n * miscellaneous/a11y-helpers.css (class-based and utilities builds). */\n\n.bf-invisible {\n visibility: hidden !important;\n}\n\n.bf-visible {\n visibility: visible !important;\n}\n\n.bf-display-block {\n display: block !important;\n}\n\n.bf-display-block-center {\n display: block !important;\n margin-left: auto !important;\n margin-right: auto !important;\n text-align: center !important;\n}\n\n.bf-display-inline {\n display: inline !important;\n}\n\n.bf-display-inline-block {\n display: inline-block !important;\n}\n\n.bf-display-flex {\n display: flex !important;\n}\n\n.bf-display-inline-flex {\n display: inline-flex !important;\n}\n\n.bf-display-flex--justify-start {\n justify-content: flex-start !important;\n}\n\n.bf-display-flex--justify-end {\n justify-content: flex-end !important;\n}\n\n.bf-display-flex--justify-center {\n justify-content: center !important;\n}\n\n.bf-display-flex--wrap {\n flex-wrap: wrap !important;\n}\n\n.bf-display-flex--nowrap {\n flex-wrap: nowrap !important;\n}\n\n.bf-float-left {\n float: left !important;\n}\n\n.bf-float-right {\n float: right !important;\n}\n\n.bf-position-fixed {\n position: fixed !important;\n}\n\n.bf-position-sticky {\n position: sticky !important;\n top: 0 !important;\n}\n\n.bf-position-relative {\n position: relative !important;\n}\n\n/* Absolute center inside a relative parent. */\n.bf-align-center-unknown {\n position: relative !important;\n}\n\n.bf-align-center-unknown--item {\n position: absolute !important;\n top: 50% !important;\n left: 50% !important;\n transform: translate(-50%, -50%) !important;\n}\n\n.bf-align-center-flex {\n display: flex !important;\n justify-content: center !important;\n align-items: center !important;\n height: 100vh !important;\n}\n\n.bf-width-25 {\n width: 25% !important;\n}\n\n.bf-width-33 {\n width: 33.3333% !important;\n}\n\n.bf-width-50 {\n width: 50% !important;\n}\n\n.bf-width-75 {\n width: 75% !important;\n}\n\n.bf-width-100 {\n width: 100% !important;\n}\n\n.bf-width-auto {\n width: auto !important;\n}\n/* Text alignment, weight, truncate, and font-stack helpers. */\n\n.bf-t-transform-uppercase {\n text-transform: uppercase !important;\n}\n\n.bf-t-transform-none {\n text-transform: none !important;\n}\n\n.bf-t-left {\n text-align: left !important;\n}\n\n.bf-t-center {\n text-align: center !important;\n}\n\n.bf-t-right {\n text-align: right !important;\n}\n\n.bf-t-shadow {\n text-shadow: 0 0 2px var(--bf-dark) !important;\n text-shadow: 0 0 0.2rem var(--bf-dark) !important;\n}\n\n.bf-t-italic {\n font-style: italic !important;\n}\n\n/* Reset italic inheritance (e.g. nested <i>). */\n.bf-t-style-normal {\n font-style: normal !important;\n}\n\n/* Weight utilities (e.g. reset <b>). */\n.bf-t-weight-300 {\n font-weight: 300 !important;\n}\n\n.bf-t-weight-400 {\n font-weight: 400 !important;\n}\n\n.bf-t-weight-500 {\n font-weight: 500 !important;\n}\n\n.bf-t-weight-600 {\n font-weight: 600 !important;\n}\n\n.bf-t-weight-700 {\n font-weight: 700 !important;\n}\n\n.bf-t-weight-800 {\n font-weight: 800 !important;\n}\n\n.bf-text-break {\n word-wrap: break-word !important;\n}\n\n.bf-t-truncate {\n max-width: 100% !important;\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n white-space: nowrap !important;\n word-wrap: normal !important;\n}\n\n.bf-t-truncate--multiline-2 {\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n display: -webkit-box !important;\n line-clamp: 2 !important;\n -webkit-line-clamp: 2 !important;\n -webkit-box-orient: vertical !important;\n}\n\n.bf-t-truncate--multiline-3 {\n overflow: hidden !important;\n text-overflow: ellipsis !important;\n display: -webkit-box !important;\n line-clamp: 3 !important;\n -webkit-line-clamp: 3 !important;\n -webkit-box-orient: vertical !important;\n}\n\n.bf-no-select {\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n user-select: none !important;\n -webkit-touch-callout: none !important;\n}\n\n.bf-font-sans-serif {\n font-family: var(--bf-font-sans-serif) !important;\n}\n\n.bf-font-serif {\n font-family: var(--bf-font-serif) !important;\n}\n\n.bf-font-monospace {\n font-family: var(--bf-font-monospace) !important;\n}\n\n/* Opt-in stacks from Modern Font Stacks (https://modernfontstacks.com/). */\n.bf-sans-serif--system {\n font-family: system-ui, sans-serif;\n}\n\n.bf-serif--transitional {\n font-family: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif;\n}\n\n.bf-serif--oldstyle {\n font-family: 'Iowan Old Style', 'Palatino Linotype', 'URW Palladio L', P052, serif;\n}\n\n.bf-sans-serif--humanist {\n font-family:\n Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;\n}\n\n.bf-sans-serif--geometric {\n font-family: Avenir, Montserrat, Corbel, 'URW Gothic', source-sans-pro, sans-serif;\n}\n\n.bf-sans-serif--classical {\n font-family: Optima, Candara, 'Noto Sans', source-sans-pro, sans-serif;\n}\n\n.bf-sans-serif--neo-grotesque {\n font-family: Inter, Roboto, 'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', Arial, sans-serif;\n}\n\n.bf-monospace--slab {\n font-family: 'Nimbus Mono PS', 'Courier New', monospace;\n}\n\n.bf-monospace--code {\n font-family:\n ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono',\n monospace;\n}\n\n.bf-sans-serif--industrial {\n font-family:\n Bahnschrift, 'DIN Alternate', 'Franklin Gothic Medium', 'Nimbus Sans Narrow',\n sans-serif-condensed, sans-serif;\n}\n\n.bf-sans-serif--rounded {\n font-family:\n ui-rounded, 'Hiragino Maru Gothic ProN', Quicksand, Comfortaa, Manjari, 'Arial Rounded MT',\n 'Arial Rounded MT Bold', Calibri, source-sans-pro, sans-serif;\n}\n\n.bf-serif--slab {\n font-family: Rockwell, 'Rockwell Nova', 'Roboto Slab', 'DejaVu Serif', 'Sitka Small', serif;\n}\n\n.bf-serif--antique {\n font-family:\n Superclarendon, 'Bookman Old Style', 'URW Bookman', 'URW Bookman L', 'Georgia Pro', Georgia,\n serif;\n}\n\n.bf-serif--didone {\n font-family: Didot, 'Bodoni MT', 'Noto Serif Display', 'URW Palladio L', P052, Sylfaen, serif;\n}\n\n.bf-cursive--handwritten {\n font-family: 'Segoe Print', 'Bradley Hand', Chilanka, TSCu_Comic, casual, cursive;\n}\n\n.bf-h1,\n.bf-h2,\n.bf-h3,\n.bf-h4,\n.bf-h5,\n.bf-h6 {\n font-weight: 600 !important;\n margin-top: 0 !important;\n line-height: 1.2 !important;\n margin-bottom: var(--bf-spacing-lg) !important;\n}\n\n.bf-h1 {\n font-size: 36px !important;\n font-size: 3.6rem !important;\n}\n\n.bf-h2 {\n font-size: 30px !important;\n font-size: 3rem !important;\n}\n\n.bf-h3 {\n font-size: 24px !important;\n font-size: 2.4rem !important;\n}\n\n.bf-h4 {\n font-size: 20px !important;\n font-size: 2rem !important;\n}\n\n.bf-h5,\n.bf-h6 {\n font-size: 16px !important;\n font-size: 1.6rem !important;\n}\n\np.bf-lead {\n font-size: 120% !important;\n}\n\nbody.bf-responsive-typography {\n font-size: clamp(1.5rem, 2vw, 1.8rem);\n}\n/* 12-column flex grid: .bf-container / .bf-row / .bf-col-* (+ optional --break-* stacking). */\n\n.bf-container,\n.bf-container--fluid {\n box-sizing: border-box;\n display: block;\n margin-right: auto;\n margin-left: auto;\n padding-left: var(--bf-spacing-grid-gutter);\n padding-right: var(--bf-spacing-grid-gutter);\n}\n\n.bf-container {\n max-width: 114rem;\n}\n\n.bf-row {\n display: flex;\n flex-wrap: wrap;\n margin-left: calc(-1 * var(--bf-spacing-grid-gutter));\n margin-right: calc(-1 * var(--bf-spacing-grid-gutter));\n}\n\n[class^='bf-col-'] {\n position: relative;\n min-height: 1px;\n padding-left: var(--bf-spacing-grid-gutter);\n padding-right: var(--bf-spacing-grid-gutter);\n flex-grow: 0;\n flex-shrink: 0;\n}\n\n.bf-no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.bf-no-gutters > [class^='bf-col'] {\n padding-right: 0;\n padding-left: 0;\n}\n\n/* Column spans (12ths). */\n.bf-col-12 {\n flex-basis: 100%;\n max-width: 100%;\n}\n\n.bf-col-11 {\n flex-basis: 91.6667%;\n max-width: 91.6667%;\n}\n\n.bf-col-10 {\n flex-basis: 83.3333%;\n max-width: 83.3333%;\n}\n\n.bf-col-9 {\n flex-basis: 75%;\n max-width: 75%;\n}\n\n.bf-col-8 {\n flex-basis: 66.6667%;\n max-width: 66.6667%;\n}\n\n.bf-col-7 {\n flex-basis: 58.3333%;\n max-width: 58.3333%;\n}\n\n.bf-col-6 {\n flex-basis: 50%;\n max-width: 50%;\n}\n\n.bf-col-5 {\n flex-basis: 41.6667%;\n max-width: 41.6667%;\n}\n\n.bf-col-4 {\n flex-basis: 33.3333%;\n max-width: 33.3333%;\n}\n\n.bf-col-3 {\n flex-basis: 25%;\n max-width: 25%;\n}\n\n.bf-col-2 {\n flex-basis: 16.6667%;\n max-width: 16.6667%;\n}\n\n.bf-col-1 {\n flex-basis: 8.3333%;\n max-width: 8.3333%;\n}\n\n/* Breakpoint stacking via .bf-container--break-{xs|md|lg}. */\n@media (max-width: 575px) {\n .bf-container--break-xs .bf-row {\n margin-left: 0;\n margin-right: 0;\n }\n\n .bf-container--break-xs [class^='bf-col'] {\n flex-basis: 100%;\n max-width: 100%;\n margin-left: 0;\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n@media (max-width: 767px) {\n .bf-container--break-md .bf-row {\n margin-left: 0;\n margin-right: 0;\n }\n\n .bf-container--break-md [class^='bf-col'] {\n flex-basis: 100%;\n max-width: 100%;\n margin-left: 0;\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n@media (max-width: 991px) {\n .bf-container--break-lg .bf-row {\n margin-left: 0;\n margin-right: 0;\n }\n\n .bf-container--break-lg [class^='bf-col'] {\n flex-basis: 100%;\n max-width: 100%;\n margin-left: 0;\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n/* Table cells with col classes stay position:static (v4 compat). */\ntable td[class^='bf-col'],\ntable th[class^='bf-col'] {\n position: static;\n}\n/* Z-index scale (.bf-z-index-*). */\n\n.bf-z-index-1 {\n z-index: 1;\n}\n.bf-z-index-2 {\n z-index: 2;\n}\n.bf-z-index-3 {\n z-index: 3;\n}\n.bf-z-index-4 {\n z-index: 4;\n}\n.bf-z-index-5 {\n z-index: 5;\n}\n.bf-z-index-6 {\n z-index: 6;\n}\n.bf-z-index-7 {\n z-index: 7;\n}\n.bf-z-index-8 {\n z-index: 8;\n}\n.bf-z-index-9 {\n z-index: 9;\n}\n.bf-z-index-10 {\n z-index: 10;\n}\n.bf-z-index-20 {\n z-index: 20;\n}\n.bf-z-index-30 {\n z-index: 30;\n}\n.bf-z-index-40 {\n z-index: 40;\n}\n.bf-z-index-50 {\n z-index: 50;\n}\n.bf-z-index-60 {\n z-index: 60;\n}\n.bf-z-index-70 {\n z-index: 70;\n}\n.bf-z-index-80 {\n z-index: 80;\n}\n.bf-z-index-90 {\n z-index: 90;\n}\n.bf-z-index-100 {\n z-index: 100;\n}\n.bf-z-index-200 {\n z-index: 200;\n}\n.bf-z-index-300 {\n z-index: 300;\n}\n/* Margin / padding scale (.bf-m-*, .bf-p-*). */\n\n.bf-m-0 {\n margin: 0 !important;\n}\n\n.bf-m-t-0 {\n margin-top: 0 !important;\n}\n\n.bf-m-b-0 {\n margin-bottom: 0 !important;\n}\n\n.bf-m-l-0 {\n margin-left: 0 !important;\n}\n\n.bf-m-r-0 {\n margin-right: 0 !important;\n}\n\n/* .bf-m-N is the historical short form of .bf-m-b-N; both set margin-bottom. */\n.bf-m-1,\n.bf-m-b-1 {\n margin-bottom: var(--bf-spacing-md) !important;\n}\n\n.bf-m-2,\n.bf-m-b-2 {\n margin-bottom: var(--bf-spacing-lg) !important;\n}\n\n.bf-m-3,\n.bf-m-b-3 {\n margin-bottom: var(--bf-spacing-xl) !important;\n}\n\n.bf-m-4,\n.bf-m-b-4 {\n margin-bottom: var(--bf-spacing-xxl) !important;\n}\n\n.bf-m-t-1 {\n margin-top: var(--bf-spacing-md) !important;\n}\n\n.bf-m-t-2 {\n margin-top: var(--bf-spacing-lg) !important;\n}\n\n.bf-m-t-3 {\n margin-top: var(--bf-spacing-xl) !important;\n}\n\n.bf-m-t-4 {\n margin-top: var(--bf-spacing-xxl) !important;\n}\n\n.bf-p-0 {\n padding: 0 !important;\n}\n\n.bf-p-t-0 {\n padding-top: 0 !important;\n}\n\n.bf-p-b-0 {\n padding-bottom: 0 !important;\n}\n\n.bf-p-l-0 {\n padding-left: 0 !important;\n}\n\n.bf-p-r-0 {\n padding-right: 0 !important;\n}\n\n/* .bf-p-N is the historical short form of .bf-p-b-N; both set padding-bottom. */\n.bf-p-1,\n.bf-p-b-1 {\n padding-bottom: var(--bf-spacing-md) !important;\n}\n\n.bf-p-2,\n.bf-p-b-2 {\n padding-bottom: var(--bf-spacing-lg) !important;\n}\n\n.bf-p-3,\n.bf-p-b-3 {\n padding-bottom: var(--bf-spacing-xl) !important;\n}\n\n.bf-p-4,\n.bf-p-b-4 {\n padding-bottom: var(--bf-spacing-xxl) !important;\n}\n\n.bf-p-t-1 {\n padding-top: var(--bf-spacing-md) !important;\n}\n\n.bf-p-t-2 {\n padding-top: var(--bf-spacing-lg) !important;\n}\n\n.bf-p-t-3 {\n padding-top: var(--bf-spacing-xl) !important;\n}\n\n.bf-p-t-4 {\n padding-top: var(--bf-spacing-xxl) !important;\n}\n/* .bf-btn and variants. */\n\n.bf-btn {\n display: inline-block;\n cursor: pointer;\n color: var(--bf-dark);\n padding: calc(var(--bf-spacing-xl) / 3) calc(calc(var(--bf-spacing-xl) / 3) * 2);\n line-height: normal;\n text-align: center;\n margin: 0;\n background-clip: padding-box;\n vertical-align: baseline;\n overflow: visible;\n -webkit-tap-highlight-color: rgb(0 0 0 / 0%);\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n border-radius: var(--bf-spacing-sm);\n\n border: 0;\n background-image: none;\n background-color: var(--bf-gray-light);\n transition: all 0.2s;\n}\n\n.bf-btn:focus {\n outline: 0;\n}\n\n.bf-btn:hover,\n.bf-btn:active,\n.bf-btn:focus {\n text-decoration: none;\n color: var(--bf-dark);\n background: rgb(184 184 184); /* --bf-gray-light, ~10% darker */\n}\n\n.bf-btn:active,\n.bf-btn:focus {\n box-shadow: 0 0 0 3px rgb(0 0 0 / 15%);\n}\n\n/* Primary: white on --bf-blue (WCAG AA 4.5:1). */\n.bf-btn.bf-btn--primary {\n color: var(--bf-white);\n background: var(--bf-blue);\n}\n\n.bf-btn.bf-btn--primary:hover,\n.bf-btn.bf-btn--primary:active,\n.bf-btn.bf-btn--primary:focus {\n color: var(--bf-white);\n background: var(--bf-blue-light);\n}\n\n.bf-btn.bf-btn--primary:active,\n.bf-btn.bf-btn--primary:focus {\n box-shadow: 0 0 0 3px rgb(0 65 135 / 35%);\n}\n\n:where(\n fieldset[disabled] .bf-btn,\n .bf-btn[disabled],\n .bf-btn:disabled,\n .bf-btn[aria-disabled='true']\n) {\n cursor: default !important;\n cursor: not-allowed !important;\n pointer-events: none !important;\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n user-select: none !important;\n box-shadow: none !important;\n opacity: 0.5 !important;\n background-color: var(--bf-gray-light);\n outline: none !important;\n}\n\n@media (forced-colors: active) {\n .bf-btn {\n border: 1px solid ButtonText;\n }\n}\n/* Focused / invalid / disabled form state classes. */\n\n.bf-focused {\n transition:\n border 0.2s,\n background-color 0.2s,\n box-shadow 0.2s !important;\n border-color: var(--bf-blue) !important;\n box-shadow: 0 0 0 3px rgb(0 86 179 / 25%) !important;\n}\n\n.bf-disabled,\n.bf-disabled:hover,\n.bf-disabled:active,\n.bf-disabled:focus,\n.bf-disabled::after,\n.bf-disabled::before,\n.bf-disabled:invalid,\n.bf-disabled:checked {\n cursor: default !important;\n cursor: not-allowed !important;\n pointer-events: none !important;\n -webkit-user-select: none !important;\n -moz-user-select: none !important;\n user-select: none !important;\n box-shadow: none !important;\n opacity: 0.5 !important;\n background-color: var(--bf-white);\n border-color: var(--bf-gray);\n}\n\nlabel.bf-disabled {\n background-color: transparent;\n border-color: transparent;\n}\n\nbutton.bf-disabled,\n[type='button'].bf-disabled,\n[type='reset'].bf-disabled,\n[type='submit'].bf-disabled,\n.bf-btn.bf-disabled {\n cursor: default;\n cursor: not-allowed;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n box-shadow: none;\n opacity: 0.5;\n color: var(--bf-dark);\n background: var(--bf-gray-light);\n}\n\nbutton.bf-disabled:hover,\nbutton.bf-disabled:active,\nbutton.bf-disabled:focus,\n[type='button'].bf-disabled:hover,\n[type='button'].bf-disabled:active,\n[type='button'].bf-disabled:focus,\n[type='reset'].bf-disabled:hover,\n[type='reset'].bf-disabled:active,\n[type='reset'].bf-disabled:focus,\n[type='submit'].bf-disabled:hover,\n[type='submit'].bf-disabled:active,\n[type='submit'].bf-disabled:focus,\n.bf-btn.bf-disabled:hover,\n.bf-btn.bf-disabled:active,\n.bf-btn.bf-disabled:focus {\n box-shadow: none;\n color: var(--bf-dark);\n background: var(--bf-gray-light);\n}\n\n.bf-btn--primary.bf-disabled {\n cursor: default;\n cursor: not-allowed;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n box-shadow: none;\n opacity: 0.5;\n color: var(--bf-white);\n background: var(--bf-blue);\n}\n\n.bf-btn--primary.bf-disabled:hover,\n.bf-btn--primary.bf-disabled:active,\n.bf-btn--primary.bf-disabled:focus {\n box-shadow: none;\n color: var(--bf-white);\n background: var(--bf-blue);\n}\n\n.bf-invalid,\n.bf-invalid:focus {\n color: var(--bf-red) !important;\n border-color: var(--bf-red) !important;\n box-shadow: 0 0 0 3px rgb(255 0 0 / 25%) !important;\n}\n/* Custom radio / checkbox appearance. */\n\n.custom-checkbox-wrapper [type='checkbox'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n height: 1.8rem;\n width: 1.8rem;\n vertical-align: top;\n position: relative;\n border: 1px solid var(--bf-gray);\n}\n\n.custom-checkbox-wrapper [type='checkbox'] + label {\n line-height: 1.8rem;\n vertical-align: top;\n margin-left: var(--bf-spacing-md);\n}\n\n*[dir='rtl'] .custom-checkbox-wrapper [type='checkbox'] + label,\n.custom-checkbox-wrapper [type='checkbox'][dir='rtl'] + label {\n margin-left: 0;\n margin-right: var(--bf-spacing-md);\n}\n\n.custom-checkbox-wrapper [type='checkbox']::after {\n content: '';\n display: block;\n position: absolute;\n width: 0.6rem;\n height: 0.8rem;\n border: 2px solid var(--bf-white);\n border-top: 0;\n border-left: 0;\n left: 35%;\n top: 20%;\n transform: rotate(43deg);\n}\n\n.custom-checkbox-wrapper [type='checkbox']:checked {\n background-color: var(--bf-blue);\n border-color: var(--bf-black);\n}\n\n.custom-radio-wrapper [type='radio'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n height: 1.8rem;\n width: 1.8rem;\n vertical-align: top;\n position: relative;\n border: 1px solid var(--bf-gray);\n}\n\n.custom-radio-wrapper [type='radio'] + label {\n line-height: 1.8rem;\n vertical-align: top;\n margin-left: var(--bf-spacing-md);\n}\n\n*[dir='rtl'] .custom-radio-wrapper [type='radio'] + label,\n.custom-radio-wrapper [type='radio'][dir='rtl'] + label {\n margin-left: 0;\n margin-right: var(--bf-spacing-md);\n}\n\n.custom-radio-wrapper [type='radio']::after {\n content: '';\n display: block;\n position: absolute;\n width: 1.8rem;\n height: 1.8rem;\n left: -0.05rem;\n top: -0.05rem;\n border-radius: 50%;\n background: var(--bf-white);\n transform: scale(0.35);\n}\n\n.custom-radio-wrapper [type='radio']:checked {\n background-color: var(--bf-blue);\n border-color: var(--bf-black);\n}\n/* Unstyled and inline list helpers. */\n\n.bf-list-unstyled,\nmenu ul.bf-list-unstyled,\nmenu ol.bf-list-unstyled,\nul.bf-list-unstyled ul,\nul.bf-list-unstyled ol,\nol.bf-list-unstyled ol,\nol.bf-list-unstyled ul,\ndd.bf-list-unstyled {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\ndt {\n font-weight: 700;\n}\n/* Table padding, overflow, and zebra helpers. */\n\n.bf-table th,\n.bf-table td {\n padding: var(--bf-spacing-lg);\n border-bottom: 1px solid var(--bf-gray);\n margin-bottom: var(--bf-spacing-md);\n}\n\n/* Horizontal scroll wrapper. */\n.bf-table-responsive {\n overflow: auto hidden;\n -ms-overflow-style: scrollbar;\n}\n\n.bf-table-responsive table {\n width: 100%;\n margin-bottom: var(--bf-spacing-md);\n}\n\n/* Prefer always-visible scrollbars on WebKit. */\n.bf-table-responsive.scrollbar {\n -webkit-overflow-scrolling: auto;\n}\n\n/* Odd-row striping. */\n.bf-table--zebra tbody tr:nth-child(odd),\n.bf-table-responsive--zebra tbody tr:nth-child(odd) {\n background-color: var(--bf-gray-light-extra);\n}\n/* Responsive embed box (Bootstrap-style aspect ratio). */\n\n.bf-embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.bf-embed-responsive::before {\n display: block;\n content: '';\n padding-top: 56.25%; /* 16:9 by default */\n}\n\n.bf-embed-responsive.bf-embed-responsive--4-3::before {\n padding-top: 75%;\n}\n\n.bf-embed-responsive .bf-embed-responsive--item,\n.bf-embed-responsive iframe,\n.bf-embed-responsive embed,\n.bf-embed-responsive object,\n.bf-embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n/* Reduced-motion opt-in (cssremedy-style). */\n\n@media (prefers-reduced-motion: reduce) {\n .bf-reduced-motion,\n .bf-reduced-motion::before,\n .bf-reduced-motion::after,\n .bf-reduced-motion *,\n .bf-reduced-motion *::before,\n .bf-reduced-motion *::after {\n animation-delay: -1ms !important;\n animation-duration: 1ms !important;\n animation-iteration-count: 1 !important;\n background-attachment: initial !important;\n scroll-behavior: auto !important;\n transition-delay: 0s !important;\n transition-duration: 0s !important;\n }\n}\n/* Opt-in font-smoothing (.bf-antialiased / .bf-subpixel-antialiased).\n * Names match Tailwind. Not applied globally: Apple recommends subpixel for body text on macOS. */\n\n.bf-antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.bf-subpixel-antialiased {\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: auto;\n}\n/* Opt-in color-scheme. Put one on <html> so the UA themes native widgets\n * (date pickers, select popups, autofill, scrollbars) to match the build. */\n\n.bf-scheme-light {\n color-scheme: light;\n}\n\n.bf-scheme-dark {\n color-scheme: dark;\n}\n\n.bf-scheme-auto {\n color-scheme: light dark;\n}\n/* Opt-in minimum target size (WCAG 2.5.8, 24x24 CSS px).\n * Grows the hit box only; the painted control keeps its size. */\n\n.bf-target-size,\n.bf-target-size a,\n.bf-target-size button,\n.bf-target-size [type='button'],\n.bf-target-size [type='reset'],\n.bf-target-size [type='submit'],\n.bf-target-size [type='checkbox'],\n.bf-target-size [type='radio'],\n.bf-target-size select,\n.bf-target-size summary,\n.bf-target-size .bf-btn {\n min-block-size: 24px;\n min-inline-size: 24px;\n}\n\n/* Inline links in running text are exempt (WCAG 2.5.8 inline exception). */\n.bf-target-size p a,\n.bf-target-size li a,\n.bf-target-size td a,\n.bf-target-size dd a {\n min-block-size: 0;\n min-inline-size: 0;\n}\n/* Opt-in accent-color: native checkbox, radio, range and progress follow\n * --bf-blue instead of the UA default. Put it on <html> or any container. */\n\n.bf-accent-native {\n accent-color: var(--bf-blue);\n}\n/* Print styles (adapted from h5bp main.css). */\n\n@media print {\n *,\n *::before,\n *::after {\n background: #fff !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]::after {\n content: ' (' attr(href) ')';\n }\n\n abbr[title]::after {\n content: ' (' attr(title) ')';\n }\n\n a[href^='#']::after,\n a[href^='javascript:']::after {\n content: '';\n }\n\n pre {\n white-space: pre-wrap !important;\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n /* Framework print tweaks. */\n body,\n .bf-container {\n min-width: 992px !important;\n }\n\n .bf-table-responsive {\n overflow: auto;\n }\n\n .bf-table-responsive table {\n width: auto;\n }\n\n .bf-table-responsive table,\n .bf-table {\n border-collapse: collapse !important;\n }\n}\n/* Filter helpers (.bf-filter-*). */\n\n.bf-filter-invert {\n filter: invert(100%) !important;\n}\n\n.bf-filter-dim-images {\n filter: brightness(0.8) contrast(1.2);\n}\n\n.bf-filter-grayscale {\n filter: grayscale(1) !important;\n}\n\n.bf-filter-blur {\n filter: blur(0.3rem) !important;\n}\n\n.bf-filter-none {\n filter: none !important;\n}\n"]}
@@ -1,4 +1,4 @@
1
- /* ! Bullframe CSS v6.0.0 | MIT License | https://github.com/marcop135/bullframe.css */
1
+ /* ! Bullframe CSS v6.2.0 | MIT License | https://github.com/marcop135/bullframe.css */
2
2
 
3
3
  /* Class-based default build (light). Import map for the full framework. */
4
4
 
@@ -32,6 +32,11 @@
32
32
  /* Invalid / error */
33
33
  --bf-red: rgb(255 0 0);
34
34
 
35
+ /* Focus ring (prefers-contrast: more raises colour for WCAG 1.4.11) */
36
+ --bf-focus-ring-color: var(--bf-orange);
37
+ --bf-focus-ring-width: 0.2rem;
38
+ --bf-focus-ring-offset: 0.3rem;
39
+
35
40
  /* Dark-mode surfaces (used by utility-global-dark*.css) */
36
41
  --bf-dark-bg: rgb(28 28 28);
37
42
  --bf-dark-link: rgb(77 165 255);
@@ -109,11 +114,6 @@ template {
109
114
  * Light UA improvements; complements Bullframe base styles. */
110
115
 
111
116
  @layer {
112
- /* Spacing between content and focus outline (enhances focus.css). */
113
- :focus-visible {
114
- outline-offset: 3px;
115
- }
116
-
117
117
  /* Disable mobile landscape text inflation on optimized layouts. */
118
118
  html {
119
119
  -webkit-text-size-adjust: none;
@@ -121,14 +121,11 @@ template {
121
121
  text-size-adjust: none;
122
122
  }
123
123
 
124
- /* Comfortable default root line-height (body still uses --bf-body-line-height). */
125
- html {
126
- line-height: 1.5;
127
- }
128
-
129
124
  /* Stable scrollbar gutter avoids layout jump on short pages. */
130
- html {
131
- scrollbar-gutter: stable;
125
+ @supports (scrollbar-gutter: stable) {
126
+ html {
127
+ scrollbar-gutter: stable;
128
+ }
132
129
  }
133
130
 
134
131
  /* Nested h1 size/margin: match modern UA (Safari still nests sectioning styles). */
@@ -137,13 +134,6 @@ template {
137
134
  margin-block: 0.67em;
138
135
  }
139
136
 
140
- /* abbr[title]: dotted underline + help cursor across engines. */
141
- abbr[title] {
142
- cursor: help;
143
- text-decoration-line: underline;
144
- text-decoration-style: dotted;
145
- }
146
-
147
137
  /* mark: system Highlight colors under forced-colors. */
148
138
  @media (forced-colors: active) {
149
139
  mark {
@@ -213,17 +203,12 @@ template {
213
203
  direction: ltr;
214
204
  }
215
205
 
216
- /* Tables: collapsed borders + cell padding for scanability. */
206
+ /* Tables: outer border. Cell borders and padding come from
207
+ * miscellaneous/tables.css, which is unlayered and therefore wins. */
217
208
  table {
218
209
  border: 1px solid currentColor;
219
210
  }
220
211
 
221
- th,
222
- td {
223
- border: 1px solid currentColor;
224
- padding: 0.25em 0.5em;
225
- }
226
-
227
212
  /* Soft dialog / popover enter transitions (skip when reduced-motion is on). */
228
213
  @media (prefers-reduced-motion: no-preference) {
229
214
  dialog::backdrop {
@@ -257,26 +242,11 @@ template {
257
242
  }
258
243
  }
259
244
 
260
- /* Keep [hidden] hard-hidden except until-found. */
261
- [hidden]:not([hidden='until-found']) {
262
- display: none !important;
263
- }
264
-
265
245
  /* Images as blocks (max-width still from embedded-content.css). */
266
246
  img {
267
247
  display: block;
268
248
  }
269
249
 
270
- /* summary: pointer on the whole control, not only ::marker. */
271
- summary {
272
- cursor: default;
273
- }
274
-
275
- /* iframes: no default border. */
276
- iframe {
277
- border: none;
278
- }
279
-
280
250
  /* Popovers: anchor near trigger when position-area is supported. */
281
251
  @supports (position-area: block-end span-inline-end) {
282
252
  [popover] {
@@ -354,7 +324,18 @@ h6 {
354
324
  color: inherit;
355
325
  line-height: 1.25;
356
326
  margin-bottom: var(--bf-spacing-lg);
357
- text-wrap: balance;
327
+ }
328
+
329
+ /* Balanced headings where supported; no-op elsewhere. */
330
+ @supports (text-wrap: balance) {
331
+ h1,
332
+ h2,
333
+ h3,
334
+ h4,
335
+ h5,
336
+ h6 {
337
+ text-wrap: balance;
338
+ }
358
339
  }
359
340
 
360
341
  h1 {
@@ -439,6 +420,7 @@ strong {
439
420
  font-weight: inherit;
440
421
  }
441
422
 
423
+ /* stylelint-disable-next-line no-duplicate-selectors -- normalize.css Safari fix */
442
424
  b,
443
425
  strong {
444
426
  font-weight: bolder;
@@ -1114,7 +1096,7 @@ a:not([href], [class]):hover {
1114
1096
  a:not([href], [tabindex]):focus {
1115
1097
  outline: 0;
1116
1098
  }
1117
- /* Keyboard-first focus: orange :focus-visible ring; mute mouse outline.
1099
+ /* Keyboard-first focus: :focus-visible ring from --bf-focus-ring-*; mute mouse outline.
1118
1100
  * Text-like controls clear UA outline here; field chrome is in forms/styling.css. */
1119
1101
 
1120
1102
  :where(:focus:not(:focus-visible)) {
@@ -1127,8 +1109,8 @@ a:not([href], [tabindex]):focus {
1127
1109
  }
1128
1110
 
1129
1111
  :focus-visible {
1130
- outline: 0.2rem solid var(--bf-orange);
1131
- outline-offset: 0.3rem;
1112
+ outline: var(--bf-focus-ring-width) solid var(--bf-focus-ring-color);
1113
+ outline-offset: var(--bf-focus-ring-offset);
1132
1114
  }
1133
1115
 
1134
1116
  /* Clear UA outline on text-like controls (styled fields keep their own chrome).
@@ -1153,8 +1135,7 @@ button:focus,
1153
1135
  [type='checkbox']:focus,
1154
1136
  input[list]:focus,
1155
1137
  select:focus,
1156
- textarea:focus,
1157
- .bf-btn:focus {
1138
+ textarea:focus {
1158
1139
  outline: 0;
1159
1140
  }
1160
1141
  /* List spacing and nav list reset. */
@@ -1185,7 +1166,6 @@ ol {
1185
1166
  nav ol,
1186
1167
  nav ul {
1187
1168
  list-style: none;
1188
- list-style-image: none;
1189
1169
  margin-left: 0;
1190
1170
  }
1191
1171
 
@@ -1428,6 +1408,12 @@ caption {
1428
1408
  text-decoration: underline;
1429
1409
  }
1430
1410
 
1411
+ /* Darker amber clears WCAG 1.4.11 (3:1) on white, --bf-light and --bf-dark-bg;
1412
+ * the default --bf-orange ring is only ~2:1 on white. */
1413
+ :root {
1414
+ --bf-focus-ring-color: rgb(184 115 0);
1415
+ }
1416
+
1431
1417
  :focus-visible {
1432
1418
  outline-width: 0.3rem;
1433
1419
  outline-offset: 0.4rem;
@@ -1466,11 +1452,58 @@ caption {
1466
1452
  button,
1467
1453
  [type='button'],
1468
1454
  [type='reset'],
1469
- [type='submit'],
1470
- .bf-btn {
1455
+ [type='submit'] {
1471
1456
  border: 1px solid ButtonText;
1472
1457
  }
1473
1458
  }
1459
+ /* Screen-reader and keyboard helpers (.bf-sr-only, .bf-skip-link, .bf-focusable).
1460
+ * Class-based and utilities builds only; classless ships no .bf-* classes. */
1461
+
1462
+ /* Visually hidden; available to screen readers (h5bp / Snook). */
1463
+ .bf-sr-only {
1464
+ border: 0 !important;
1465
+ clip: rect(0, 0, 0, 0) !important;
1466
+ height: 1px !important;
1467
+ margin: -1px !important;
1468
+ overflow: hidden !important;
1469
+ padding: 0 !important;
1470
+ position: absolute !important;
1471
+ white-space: nowrap !important;
1472
+ width: 1px !important;
1473
+ }
1474
+
1475
+ /* .bf-sr-only, revealed on focus. .focusable is the legacy name; both work. */
1476
+ .bf-sr-only.focusable:active,
1477
+ .bf-sr-only.focusable:focus,
1478
+ .bf-sr-only.bf-focusable:active,
1479
+ .bf-sr-only.bf-focusable:focus {
1480
+ clip: auto !important;
1481
+ height: auto !important;
1482
+ margin: 0 !important;
1483
+ overflow: visible !important;
1484
+ position: static !important;
1485
+ white-space: inherit !important;
1486
+ width: auto !important;
1487
+ }
1488
+
1489
+ /* Skip link: hidden until focused, then pinned to the top-left without
1490
+ * reflowing the page (unlike .bf-sr-only.focusable, which returns to flow). */
1491
+ .bf-skip-link {
1492
+ position: absolute;
1493
+ top: 0;
1494
+ left: 0;
1495
+ z-index: 9999;
1496
+ padding: var(--bf-spacing-md) var(--bf-spacing-lg);
1497
+ color: var(--bf-blue);
1498
+ background-color: var(--bf-white);
1499
+ border: 1px solid var(--bf-gray-light);
1500
+ transform: translateY(-100%);
1501
+ }
1502
+
1503
+ .bf-skip-link:focus,
1504
+ .bf-skip-link:focus-visible {
1505
+ transform: translateY(0);
1506
+ }
1474
1507
 
1475
1508
  /* Utilities */
1476
1509
  /* Display, visibility, float, position, and width helpers. */
@@ -1504,30 +1537,8 @@ caption {
1504
1537
  padding: 0 !important;
1505
1538
  }
1506
1539
 
1507
- /* Visually hidden; available to screen readers (h5bp / Snook). */
1508
- .bf-sr-only {
1509
- border: 0 !important;
1510
- clip: rect(0, 0, 0, 0) !important;
1511
- height: 1px !important;
1512
- margin: -1px !important;
1513
- overflow: hidden !important;
1514
- padding: 0 !important;
1515
- position: absolute !important;
1516
- white-space: nowrap !important;
1517
- width: 1px !important;
1518
- }
1519
-
1520
- /* .bf-sr-only, revealed on focus (skip links). */
1521
- .bf-sr-only.focusable:active,
1522
- .bf-sr-only.focusable:focus {
1523
- clip: auto !important;
1524
- height: auto !important;
1525
- margin: 0 !important;
1526
- overflow: visible !important;
1527
- position: static !important;
1528
- white-space: inherit !important;
1529
- width: auto !important;
1530
- }
1540
+ /* .bf-sr-only, .bf-focusable and .bf-skip-link live in
1541
+ * miscellaneous/a11y-helpers.css (class-based and utilities builds). */
1531
1542
 
1532
1543
  .bf-invisible {
1533
1544
  visibility: hidden !important;
@@ -2113,19 +2124,24 @@ table th[class^='bf-col'] {
2113
2124
  margin-right: 0 !important;
2114
2125
  }
2115
2126
 
2116
- .bf-m-1 {
2127
+ /* .bf-m-N is the historical short form of .bf-m-b-N; both set margin-bottom. */
2128
+ .bf-m-1,
2129
+ .bf-m-b-1 {
2117
2130
  margin-bottom: var(--bf-spacing-md) !important;
2118
2131
  }
2119
2132
 
2120
- .bf-m-2 {
2133
+ .bf-m-2,
2134
+ .bf-m-b-2 {
2121
2135
  margin-bottom: var(--bf-spacing-lg) !important;
2122
2136
  }
2123
2137
 
2124
- .bf-m-3 {
2138
+ .bf-m-3,
2139
+ .bf-m-b-3 {
2125
2140
  margin-bottom: var(--bf-spacing-xl) !important;
2126
2141
  }
2127
2142
 
2128
- .bf-m-4 {
2143
+ .bf-m-4,
2144
+ .bf-m-b-4 {
2129
2145
  margin-bottom: var(--bf-spacing-xxl) !important;
2130
2146
  }
2131
2147
 
@@ -2145,22 +2161,6 @@ table th[class^='bf-col'] {
2145
2161
  margin-top: var(--bf-spacing-xxl) !important;
2146
2162
  }
2147
2163
 
2148
- .bf-m-b-1 {
2149
- margin-bottom: var(--bf-spacing-md) !important;
2150
- }
2151
-
2152
- .bf-m-b-2 {
2153
- margin-bottom: var(--bf-spacing-lg) !important;
2154
- }
2155
-
2156
- .bf-m-b-3 {
2157
- margin-bottom: var(--bf-spacing-xl) !important;
2158
- }
2159
-
2160
- .bf-m-b-4 {
2161
- margin-bottom: var(--bf-spacing-xxl) !important;
2162
- }
2163
-
2164
2164
  .bf-p-0 {
2165
2165
  padding: 0 !important;
2166
2166
  }
@@ -2181,19 +2181,24 @@ table th[class^='bf-col'] {
2181
2181
  padding-right: 0 !important;
2182
2182
  }
2183
2183
 
2184
- .bf-p-1 {
2184
+ /* .bf-p-N is the historical short form of .bf-p-b-N; both set padding-bottom. */
2185
+ .bf-p-1,
2186
+ .bf-p-b-1 {
2185
2187
  padding-bottom: var(--bf-spacing-md) !important;
2186
2188
  }
2187
2189
 
2188
- .bf-p-2 {
2190
+ .bf-p-2,
2191
+ .bf-p-b-2 {
2189
2192
  padding-bottom: var(--bf-spacing-lg) !important;
2190
2193
  }
2191
2194
 
2192
- .bf-p-3 {
2195
+ .bf-p-3,
2196
+ .bf-p-b-3 {
2193
2197
  padding-bottom: var(--bf-spacing-xl) !important;
2194
2198
  }
2195
2199
 
2196
- .bf-p-4 {
2200
+ .bf-p-4,
2201
+ .bf-p-b-4 {
2197
2202
  padding-bottom: var(--bf-spacing-xxl) !important;
2198
2203
  }
2199
2204
 
@@ -2212,22 +2217,6 @@ table th[class^='bf-col'] {
2212
2217
  .bf-p-t-4 {
2213
2218
  padding-top: var(--bf-spacing-xxl) !important;
2214
2219
  }
2215
-
2216
- .bf-p-b-1 {
2217
- padding-bottom: var(--bf-spacing-md) !important;
2218
- }
2219
-
2220
- .bf-p-b-2 {
2221
- padding-bottom: var(--bf-spacing-lg) !important;
2222
- }
2223
-
2224
- .bf-p-b-3 {
2225
- padding-bottom: var(--bf-spacing-xl) !important;
2226
- }
2227
-
2228
- .bf-p-b-4 {
2229
- padding-bottom: var(--bf-spacing-xxl) !important;
2230
- }
2231
2220
  /* .bf-btn and variants. */
2232
2221
 
2233
2222
  .bf-btn {
@@ -2253,6 +2242,10 @@ table th[class^='bf-col'] {
2253
2242
  transition: all 0.2s;
2254
2243
  }
2255
2244
 
2245
+ .bf-btn:focus {
2246
+ outline: 0;
2247
+ }
2248
+
2256
2249
  .bf-btn:hover,
2257
2250
  .bf-btn:active,
2258
2251
  .bf-btn:focus {
@@ -2301,6 +2294,12 @@ table th[class^='bf-col'] {
2301
2294
  background-color: var(--bf-gray-light);
2302
2295
  outline: none !important;
2303
2296
  }
2297
+
2298
+ @media (forced-colors: active) {
2299
+ .bf-btn {
2300
+ border: 1px solid ButtonText;
2301
+ }
2302
+ }
2304
2303
  /* Focused / invalid / disabled form state classes. */
2305
2304
 
2306
2305
  .bf-focused {
@@ -2617,6 +2616,52 @@ dt {
2617
2616
  -webkit-font-smoothing: auto;
2618
2617
  -moz-osx-font-smoothing: auto;
2619
2618
  }
2619
+ /* Opt-in color-scheme. Put one on <html> so the UA themes native widgets
2620
+ * (date pickers, select popups, autofill, scrollbars) to match the build. */
2621
+
2622
+ .bf-scheme-light {
2623
+ color-scheme: light;
2624
+ }
2625
+
2626
+ .bf-scheme-dark {
2627
+ color-scheme: dark;
2628
+ }
2629
+
2630
+ .bf-scheme-auto {
2631
+ color-scheme: light dark;
2632
+ }
2633
+ /* Opt-in minimum target size (WCAG 2.5.8, 24x24 CSS px).
2634
+ * Grows the hit box only; the painted control keeps its size. */
2635
+
2636
+ .bf-target-size,
2637
+ .bf-target-size a,
2638
+ .bf-target-size button,
2639
+ .bf-target-size [type='button'],
2640
+ .bf-target-size [type='reset'],
2641
+ .bf-target-size [type='submit'],
2642
+ .bf-target-size [type='checkbox'],
2643
+ .bf-target-size [type='radio'],
2644
+ .bf-target-size select,
2645
+ .bf-target-size summary,
2646
+ .bf-target-size .bf-btn {
2647
+ min-block-size: 24px;
2648
+ min-inline-size: 24px;
2649
+ }
2650
+
2651
+ /* Inline links in running text are exempt (WCAG 2.5.8 inline exception). */
2652
+ .bf-target-size p a,
2653
+ .bf-target-size li a,
2654
+ .bf-target-size td a,
2655
+ .bf-target-size dd a {
2656
+ min-block-size: 0;
2657
+ min-inline-size: 0;
2658
+ }
2659
+ /* Opt-in accent-color: native checkbox, radio, range and progress follow
2660
+ * --bf-blue instead of the UA default. Put it on <html> or any container. */
2661
+
2662
+ .bf-accent-native {
2663
+ accent-color: var(--bf-blue);
2664
+ }
2620
2665
  /* Print styles (adapted from h5bp main.css). */
2621
2666
 
2622
2667
  @media print {