@nkootstra/block-kit 0.3.0 → 0.3.2

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/styles.css","../src/base.css","../src/Message.css","../src/surfaces/Surfaces.css","../src/UserMention.css","../src/confirm/ConfirmDialog.css","../src/data/HoverActions.css","../src/blocks/Actions.css","../src/blocks/Alert.css","../src/blocks/Callout.css","../src/blocks/Card.css","../src/blocks/Carousel.css","../src/blocks/CodeBlock.css","../src/blocks/Condition.css","../src/blocks/ContactCard.css","../src/blocks/Container.css","../src/blocks/Context.css","../src/blocks/ContextActions.css","../src/blocks/DataTable.css","../src/blocks/DataVisualization.css","../src/blocks/Divider.css","../src/blocks/FallbackCanary.css","../src/blocks/File.css","../src/blocks/Header.css","../src/blocks/Image.css","../src/blocks/Input.css","../src/blocks/Markdown.css","../src/blocks/Plan.css","../src/blocks/RichText.css","../src/blocks/Section.css","../src/blocks/Table.css","../src/blocks/TaskCard.css","../src/blocks/Video.css","../src/elements/Button.css","../src/elements/Checkboxes.css","../src/elements/calendar/Calendar.css","../src/elements/DatePicker.css","../src/elements/DateTimePicker.css","../src/elements/FeedbackButtons.css","../src/elements/FileInput.css","../src/elements/IconButton.css","../src/elements/ImageElement.css","../src/elements/Overflow.css","../src/elements/RadioButtons.css","../src/elements/RichTextInput.css","../src/elements/Select.css","../src/elements/TextInput.css","../src/elements/TimePicker.css","../src/elements/WorkflowButton.css"],"sourcesContent":["/* Entry stylesheet. The build inlines these imports into dist/styles.css. */\n@import \"./base.css\";\n@import \"./Message.css\";\n@import \"./UserMention.css\";\n@import \"./confirm/ConfirmDialog.css\";\n@import \"./data/HoverActions.css\";\n@import \"./blocks/Actions.css\";\n@import \"./blocks/Alert.css\";\n@import \"./blocks/Callout.css\";\n@import \"./blocks/Card.css\";\n@import \"./blocks/Carousel.css\";\n@import \"./blocks/CodeBlock.css\";\n@import \"./blocks/Condition.css\";\n@import \"./blocks/ContactCard.css\";\n@import \"./blocks/Container.css\";\n@import \"./blocks/Context.css\";\n@import \"./blocks/ContextActions.css\";\n@import \"./blocks/DataTable.css\";\n@import \"./blocks/DataVisualization.css\";\n@import \"./blocks/Divider.css\";\n@import \"./blocks/FallbackCanary.css\";\n@import \"./blocks/File.css\";\n@import \"./blocks/Header.css\";\n@import \"./blocks/Image.css\";\n@import \"./blocks/Input.css\";\n@import \"./blocks/Markdown.css\";\n@import \"./blocks/Plan.css\";\n@import \"./blocks/RichText.css\";\n@import \"./blocks/Section.css\";\n@import \"./blocks/Table.css\";\n@import \"./blocks/TaskCard.css\";\n@import \"./blocks/Video.css\";\n@import \"./elements/Button.css\";\n@import \"./elements/Checkboxes.css\";\n@import \"./elements/DatePicker.css\";\n@import \"./elements/DateTimePicker.css\";\n@import \"./elements/FeedbackButtons.css\";\n@import \"./elements/FileInput.css\";\n@import \"./elements/IconButton.css\";\n@import \"./elements/ImageElement.css\";\n@import \"./elements/Overflow.css\";\n@import \"./elements/RadioButtons.css\";\n@import \"./elements/RichTextInput.css\";\n@import \"./elements/Select.css\";\n@import \"./elements/TextInput.css\";\n@import \"./elements/TimePicker.css\";\n@import \"./elements/WorkflowButton.css\";\n","/* Values measured from Slack's Block Kit Builder (light theme, desktop). */\n:root,\n[data-theme=\"light\"] {\n --sbk-hover-actions-shadow: 0 0 0 1px rgba(29, 28, 29, 0.13), 0 1px 3px 0 #00000014;\n --sbk-font: \"Slack-Lato\", Lato, appleLogo, sans-serif;\n --sbk-font-mono:\n \"Slack-Roboto-Mono\", \"Roboto Mono\", Monaco, Menlo, Consolas, \"Courier New\", monospace;\n --sbk-text: #1d1c1d;\n --sbk-link: #1264a3;\n --sbk-code-text: rgb(192, 19, 67);\n --sbk-code-bg: rgba(29, 28, 29, 0.04);\n --sbk-code-border: rgba(29, 28, 29, 0.13);\n --sbk-quote-bar: #dddddd;\n --sbk-skeleton-bg: #eaeaea;\n --sbk-mention-bg: rgba(29, 155, 209, 0.1);\n --sbk-mention-text: #1264a3;\n --sbk-mention-private-bg: rgba(29, 28, 29, 0.13);\n --sbk-mention-private-text: rgba(29, 28, 29, 0.7);\n --sbk-broadcast-bg: rgba(255, 198, 0, 0.18);\n --sbk-bg: #fff;\n --sbk-muted: #616061;\n --sbk-badge-text: #454447;\n --sbk-badge-bg: rgba(29, 28, 29, 0.06);\n --sbk-border: rgba(29, 28, 29, 0.13);\n --sbk-divider: rgba(94, 93, 96, 0.45);\n --sbk-button-border: rgba(94, 93, 96, 0.45);\n --sbk-primary: #007a5a;\n --sbk-primary-hover: #148567;\n --sbk-danger: #e01e5a;\n --sbk-danger-hover: #e23067;\n /* Interaction states, from the Builder's `c-button`, `c-icon_button`, `c-member_slug` and\n `c-select_options_list` hover/active rules. */\n --sbk-button-hover-bg: #f8f8f8;\n --sbk-button-hover-shadow: rgba(0, 0, 0, 0.098) 0 1px 3px, rgba(0, 0, 0, 0.098) 0 1px 2px -1px;\n --sbk-icon-button-hover-bg: #eaeaea;\n --sbk-hover-overlay: rgba(29, 28, 29, 0.06);\n --sbk-row-hover-bg: #f8f8f8;\n --sbk-mention-hover-bg: rgba(29, 155, 209, 0.2);\n --sbk-mention-hover-text: rgb(11, 76, 140);\n --sbk-menu-highlight-bg: #1264a3;\n --sbk-menu-highlight-text: #fff;\n --sbk-focus-ring: #1264a3;\n --sbk-focus-ring-invalid: #e01e5a;\n --sbk-checkbox-checked: #1264a3;\n --sbk-checkbox-checked-hover: #122a5921;\n --sbk-checkbox-checked-pressed: #122a5938;\n /* Menus and option lists (`c-menu`, `c-select_options_list`). */\n --sbk-menu-bg: #fff;\n --sbk-menu-shadow: 0 0 0 1px rgba(29, 28, 29, 0.13), 0 4px 12px 0 rgba(0, 0, 0, 0.12);\n --sbk-menu-selected-text: #1264a3;\n --sbk-menu-separator: rgba(29, 28, 29, 0.13);\n --sbk-menu-secondary-text: #454447;\n --sbk-popover-shadow: 0 0 0 1px rgba(29, 28, 29, 0.13), 0 4px 12px 0 rgba(0, 0, 0, 0.08);\n --sbk-spinner-track: #5e5d60;\n /* Tooltips (`c-tooltip__tip`). */\n --sbk-tooltip-bg: #1d1c1d;\n --sbk-tooltip-text: #fff;\n /* Slack design-token equivalents shared by component styles, so the dark theme can remap them\n in one place: `base-sec`, `ctr-pry`, `content-sec/ter`, `otl-pry/ter`, `base-pry-hover/pressed`,\n `base-inv-hgl-1`, and `--dt_blend-mode-interaction` (multiply in light, lighten in dark). */\n --sbk-surface-sec: #f8f8f8;\n --sbk-surface-ter: #eaeaea;\n --sbk-container-bg: #fff;\n --sbk-content-sec: #454447;\n --sbk-content-ter: #5e5d60;\n --sbk-outline-pry: #7c7a7f;\n --sbk-outline-ter: rgba(94, 93, 96, 0.13);\n --sbk-interaction-hover: #4544470f;\n --sbk-interaction-pressed: #45444721;\n --sbk-highlight: #1264a3;\n --sbk-on-highlight: #fff;\n --sbk-blend-interaction: multiply;\n --sbk-calendar-grid: rgb(221, 221, 221);\n --sbk-avatar-placeholder: #dddddd;\n --sbk-hover-actions-icon: #616061;\n}\n\n.sbk-root {\n font-family: var(--sbk-font);\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-text);\n font-variant-ligatures: common-ligatures;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n}\n\n/* Isolate rendering from the host page's global styles (Tailwind's preflight, a docs theme's heading\n fonts, `* { min-width: 0 }`): roll every element back to the browser's defaults, so only the rules\n below decide how a block looks. Component rules are more specific or come later, so they win.\n SVG and replaced elements keep their presentational attributes (width, height, fill), which\n `revert` would drop, and get just the properties preflight changes rolled back.\n Dialogs and tooltips portalled to <body> sit outside `.sbk-root`, so they get it too. */\n:is(.sbk-root, .sbk-confirm__overlay, .sbk-tooltip)\n :where(:not(svg, svg *, img, video, canvas, iframe, embed, object)),\n:is(.sbk-root, .sbk-confirm__overlay, .sbk-tooltip) :where(:not(svg, svg *))::before,\n:is(.sbk-root, .sbk-confirm__overlay, .sbk-tooltip) :where(:not(svg, svg *))::after {\n all: revert;\n}\n\n:is(.sbk-root, .sbk-confirm__overlay, .sbk-tooltip)\n :where(svg, img, video, canvas, iframe, embed, object) {\n display: revert;\n vertical-align: revert;\n max-width: revert;\n margin: revert;\n padding: revert;\n border: revert;\n min-width: revert;\n}\n\n.sbk-root *,\n.sbk-root *::before,\n.sbk-root *::after {\n box-sizing: border-box;\n}\n\n.sbk-unsupported {\n display: inline-block;\n padding: 2px 6px;\n font: 12px var(--sbk-font-mono);\n color: var(--sbk-muted);\n border: 1px dashed var(--sbk-border);\n border-radius: 4px;\n}\n\n.sbk-mrkdwn {\n font-family: var(--sbk-font);\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-text);\n overflow-wrap: anywhere;\n}\n\n.sbk-mrkdwn__code {\n font-family: var(--sbk-font-mono);\n font-size: 12px;\n line-height: 18px;\n color: var(--sbk-code-text);\n background: var(--sbk-code-bg);\n border: 1px solid var(--sbk-code-border);\n border-radius: 3px;\n padding: 2px 3px 1px;\n}\n\n.sbk-mrkdwn__pre {\n display: block;\n font-family: var(--sbk-font-mono);\n font-size: 12px;\n line-height: 1.50001;\n background: var(--sbk-code-bg);\n border: 1px solid var(--sbk-code-border);\n border-radius: 4px;\n padding: 8px;\n margin: 4px 0;\n white-space: pre-wrap;\n}\n\n.sbk-mrkdwn__quote {\n margin: 4px 0;\n padding-left: 16px;\n position: relative;\n}\n\n.sbk-mrkdwn__quote::before {\n content: \"\";\n position: absolute;\n inset: 0 auto 0 0;\n width: 4px;\n border-radius: 8px;\n background: var(--sbk-quote-bar);\n}\n\n.sbk-link {\n color: var(--sbk-link);\n text-decoration: underline;\n}\n\n.sbk-mention {\n color: var(--sbk-mention-text);\n background: var(--sbk-mention-bg);\n border-radius: 3px;\n padding: 0 2px 1px;\n}\n\n.sbk-mention:hover {\n color: var(--sbk-mention-hover-text);\n background: var(--sbk-mention-hover-bg);\n}\n\n/* A mention linked through `mentionHref` keeps the pill's look, without a link's underline. */\na.sbk-mention {\n text-decoration: none;\n}\n\n.sbk-mention--unresolved {\n display: inline-block;\n vertical-align: middle;\n width: 120px;\n height: 8px;\n background: var(--sbk-skeleton-bg);\n border-radius: 1000px;\n}\n\n.sbk-mention--broadcast {\n color: var(--sbk-text);\n background: var(--sbk-broadcast-bg);\n border-radius: 3px;\n padding: 1px 2px;\n font-weight: 700;\n}\n\n.sbk-mention--private {\n display: inline;\n color: var(--sbk-mention-private-text);\n background: var(--sbk-mention-private-bg);\n border-radius: 3px;\n padding: 0 2px 1px 0;\n}\n\n/* Slack butts the lock straight up against the channel name, dropped an eighth of an em. */\n.sbk-mention__lock-icon {\n display: inline-block;\n width: 15px;\n height: 15px;\n vertical-align: -0.125em;\n}\n\n.sbk-mention--loading {\n display: inline-block;\n vertical-align: middle;\n width: 120px;\n height: 8px;\n border: 1px solid var(--sbk-quote-bar);\n border-radius: 1000px;\n}\n\n.sbk-emoji {\n display: inline-flex;\n position: relative;\n align-items: center;\n vertical-align: top;\n}\n\n.sbk-emoji__img {\n display: block;\n position: absolute;\n object-fit: contain;\n}\n\n/* Slack's toggle-bar blocks (plan, task_card) slide open and shut: \\`transition: height 0.25s\\` on\n the block, clipped (data/Collapse.tsx). \\`flow-root\\` keeps the content's margins inside the\n height being animated. */\n.sbk-collapse {\n display: flow-root;\n overflow: clip;\n transition: height 0.25s;\n}\n\n/* Slack's c-infinite_spinner. */\n.sbk-spinner {\n position: relative;\n display: inline-block;\n flex-shrink: 0;\n}\n\n.sbk-spinner__arc {\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n width: 100%;\n height: 100%;\n transform: rotate(-45deg);\n animation: sbk-spinner-spin 1.2s cubic-bezier(0.25, 0.29, 0.54, 0.86) infinite;\n}\n\n.sbk-spinner__tail {\n animation-timing-function: cubic-bezier(0.41, 0.24, 0.64, 0.69);\n}\n\n.sbk-spinner__bg {\n fill: none;\n stroke: var(--sbk-spinner-track);\n stroke-width: 8px;\n opacity: 0.25;\n}\n\n.sbk-spinner__path {\n fill: none;\n stroke: currentColor;\n stroke-width: 8px;\n stroke-dasharray: 55, 200;\n stroke-dashoffset: 90px;\n stroke-linecap: round;\n}\n\n@keyframes sbk-spinner-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n/* Slack's focus ring (`c-input_text:focus`, `c-select_button:focus`, `c-button--focus-visible`):\n a 1px solid ring plus a 4px 30% halo, replacing the border. Text fields show it on any focus;\n buttons only for keyboard focus. */\n.sbk-root {\n --sbk-focus-shadow:\n 0 0 0 1px var(--sbk-focus-ring),\n 0 0 0 5px color-mix(in srgb, var(--sbk-focus-ring) 30%, transparent);\n --sbk-focus-shadow-invalid:\n 0 0 0 1px var(--sbk-focus-ring-invalid),\n 0 0 0 5px color-mix(in srgb, var(--sbk-focus-ring-invalid) 30%, transparent);\n}\n\n.sbk-text-input,\n.sbk-rich-text-input,\n.sbk-datepicker__input,\n.sbk-datetimepicker__time-input,\n.sbk-select__control,\n.sbk-timepicker__control,\n.sbk-datetimepicker__control {\n transition:\n border 80ms ease-out,\n box-shadow 80ms ease-out;\n}\n\n.sbk-text-input:focus,\n.sbk-rich-text-input:focus-within,\n.sbk-datepicker__input:focus,\n.sbk-datetimepicker__time-input:focus,\n.sbk-select__control:focus-visible,\n.sbk-select__control[aria-expanded=\"true\"],\n.sbk-timepicker__control:focus-visible,\n.sbk-timepicker__control[aria-expanded=\"true\"],\n.sbk-datetimepicker__control:focus-visible,\n.sbk-datetimepicker__control[aria-expanded=\"true\"] {\n outline: none;\n border-color: transparent;\n box-shadow: var(--sbk-focus-shadow);\n}\n\n.sbk-text-input[aria-invalid=\"true\"],\n.sbk-text-input[aria-invalid=\"true\"]:focus {\n border-color: transparent;\n box-shadow: var(--sbk-focus-shadow-invalid);\n}\n\n.sbk-text-input:focus::placeholder,\n.sbk-datepicker__input:focus::placeholder {\n color: var(--sbk-content-ter);\n}\n\n.sbk-button:focus-visible,\n.sbk-modal__button:focus-visible,\n.sbk-overflow__button:focus-visible,\n.sbk-file-input__button:focus-visible,\n.sbk-icon-button:focus-visible,\n.sbk-code-block__copy:focus-visible,\n.sbk-carousel__arrow:focus-visible,\n.sbk-calendar__nav:focus-visible,\n.sbk-calendar__cell:focus-visible,\n.sbk-calendar__clear:focus-visible {\n outline: none;\n box-shadow: var(--sbk-focus-shadow);\n}\n\n/* Keyboard focus shouldn't also paint the pointer's hover shadow on outline buttons. */\n.sbk-button:focus-visible:hover,\n.sbk-overflow__button:focus-visible:hover {\n box-shadow: var(--sbk-focus-shadow);\n}\n\n/* Slack's menus and popovers open and close instantly (no transition on `c-menu` /\n `c-popover`), so the motion to tone down is the spinner and the plan/task_card slide. */\n@media (prefers-reduced-motion: reduce) {\n .sbk-spinner__arc {\n animation-duration: 2.4s;\n }\n\n .sbk-collapse {\n transition: none;\n }\n}\n\n/* Slack's `c-tooltip__tip`. Portalled to <body>, so it sets its own font. */\n.sbk-tooltip {\n position: fixed;\n z-index: 1100;\n max-width: 200px;\n padding: 8px 12px;\n font-family: var(--sbk-font);\n font-size: 13px;\n font-weight: 700;\n line-height: 1.38463;\n text-align: center;\n overflow-wrap: break-word;\n color: var(--sbk-tooltip-text);\n background: var(--sbk-tooltip-bg);\n border-radius: 8px;\n pointer-events: none;\n -webkit-font-smoothing: antialiased;\n}\n\n.sbk-tooltip__arrow {\n position: absolute;\n left: 50%;\n width: 9px;\n height: 9px;\n margin-left: -4.5px;\n background: var(--sbk-tooltip-bg);\n border-radius: 1px;\n transform: rotate(45deg);\n}\n\n.sbk-tooltip--top .sbk-tooltip__arrow {\n bottom: -4px;\n}\n\n.sbk-tooltip--bottom .sbk-tooltip__arrow {\n top: -4px;\n}\n\n.sbk-tooltip__secondary {\n display: block;\n font-weight: 400;\n color: rgba(255, 255, 255, 0.7);\n}\n\n/* The layer menus and calendars open in (elements/Popover.tsx), portalled to <body> and pinned to\n the control that opened them. */\n.sbk-popover {\n position: fixed;\n z-index: 1000;\n}\n","/* Message surface, measured from Block Kit Builder's preview (light theme, desktop). */\n@import \"./surfaces/Surfaces.css\";\n\n.sbk-message {\n display: flex;\n background: var(--sbk-bg);\n}\n\n.sbk-message__avatar {\n display: block;\n flex: 0 0 36px;\n width: 36px;\n height: 36px;\n margin-right: 8px;\n object-fit: cover;\n}\n\n.sbk-message__avatar--placeholder {\n display: grid;\n place-items: center;\n border-radius: 4px;\n background: #4a154b;\n color: #fff;\n font-weight: 700;\n}\n\n.sbk-message__content {\n flex: 1 1 0;\n min-width: 0;\n padding: 8px 0;\n}\n\n.sbk-message__header {\n display: flex;\n align-items: center;\n height: 22px;\n}\n\n.sbk-message__sender {\n margin-right: 5px;\n font-weight: 900;\n}\n\n.sbk-message__badge {\n margin-right: 5px;\n padding: 1px 3px;\n border-radius: 2px;\n font-size: 10px;\n line-height: 12.5px;\n font-weight: 700;\n color: var(--sbk-badge-text);\n background: var(--sbk-badge-bg);\n}\n\n.sbk-message__time {\n margin-right: 5px;\n font-size: 12px;\n line-height: 17.6px;\n color: var(--sbk-muted);\n}\n\n.sbk-blocks {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.sbk-message__edited {\n font-size: 12px;\n color: var(--sbk-muted);\n}\n\n.sbk-message__ephemeral {\n display: flex;\n align-items: center;\n margin-top: 4px;\n font-size: 12px;\n color: var(--sbk-muted);\n}\n\n/* Legacy attachments: colour bar, pretext, title, fields, footer, or raw blocks. */\n.sbk-attachments {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: 4px;\n}\n\n.sbk-attachment {\n display: flex;\n border-left: 4px solid var(--sbk-border);\n border-radius: 4px;\n}\n\n.sbk-attachment__body {\n flex: 1 1 0;\n min-width: 0;\n padding: 8px 12px;\n border: 1px solid var(--sbk-border);\n border-left: none;\n border-radius: 0 4px 4px 0;\n}\n\n.sbk-attachment__pretext {\n margin-bottom: 4px;\n}\n\n.sbk-attachment__author {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 4px;\n font-weight: 700;\n}\n\n.sbk-attachment__author-icon {\n width: 16px;\n height: 16px;\n border-radius: 2px;\n}\n\n.sbk-attachment__title {\n margin-bottom: 4px;\n font-weight: 700;\n color: var(--sbk-link);\n}\n\n.sbk-attachment__fields {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-top: 4px;\n}\n\n.sbk-attachment__field {\n flex: 1 1 100%;\n}\n\n.sbk-attachment__field--short {\n flex: 1 1 calc(50% - 8px);\n min-width: 120px;\n}\n\n.sbk-attachment__field-title {\n font-weight: 700;\n}\n\n.sbk-attachment__image {\n display: block;\n max-width: 360px;\n margin-top: 8px;\n border-radius: 4px;\n}\n\n.sbk-attachment__footer {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 8px;\n font-size: 12px;\n color: var(--sbk-muted);\n}\n\n.sbk-attachment__footer-icon {\n width: 16px;\n height: 16px;\n border-radius: 2px;\n}\n\n/* Reactions row. */\n.sbk-reactions {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.sbk-reactions__item {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n border: 1px solid var(--sbk-border);\n border-radius: 12px;\n background: var(--sbk-badge-bg);\n font-size: 13px;\n cursor: default;\n}\n\n.sbk-reactions__count {\n color: var(--sbk-link);\n font-weight: 700;\n}\n\n/* Thread reply summary. */\n.sbk-thread-summary {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 4px;\n padding: 4px 0;\n border: none;\n background: none;\n color: var(--sbk-link);\n font: inherit;\n font-weight: 700;\n cursor: pointer;\n}\n\n.sbk-thread-summary__subscribed {\n color: var(--sbk-primary);\n font-size: 8px;\n}\n\n/* Dark theme: Slack's `.sk-client-theme--dark` design tokens (base-pry #1a1d21, content-pry\n #f8f8f8, content-hgl-1 #2ba5ce, ...), with hover/press overlays blended with `lighten` as Slack\n does. Applies under `prefers-color-scheme: dark` unless the root sets `data-theme=\"light\"`, and\n always inside an element with `data-theme=\"dark\"` (BlockKitProvider's `theme` prop sets it on its\n wrapper). Inside `data-theme=\"light\"` the light tokens apply again (base.css). Component tokens\n are remapped here too so the whole dark palette lives in one place. `:root[data-theme=\"dark\"]`\n outranks the `:root` light tokens of the block stylesheets loaded after this one. */\n@media (prefers-color-scheme: dark) {\n :root:not([data-theme=\"light\"]) {\n --sbk-text: #f8f8f8;\n --sbk-link: #2ba5ce;\n --sbk-code-text: #de678a;\n --sbk-code-bg: rgba(248, 248, 248, 0.06);\n --sbk-code-border: #797c814d;\n --sbk-quote-bar: #797c8180;\n --sbk-skeleton-bg: #35373b;\n --sbk-mention-bg: #03669640;\n --sbk-mention-text: #2ba5ce;\n --sbk-mention-private-bg: rgba(248, 248, 248, 0.13);\n --sbk-mention-private-text: rgba(248, 248, 248, 0.7);\n --sbk-broadcast-bg: #a073002e;\n --sbk-bg: #1a1d21;\n --sbk-muted: #9a9b9e;\n --sbk-badge-text: #b9babd;\n --sbk-badge-bg: #f8f8f80f;\n --sbk-border: #797c814d;\n --sbk-divider: #797c8180;\n --sbk-button-border: #797c8180;\n --sbk-primary: #177e56;\n --sbk-primary-hover: #268761;\n --sbk-danger: #d3305d;\n --sbk-danger-hover: #d63d68;\n --sbk-button-hover-bg: #323438;\n --sbk-button-hover-shadow: rgba(0, 0, 0, 0.3) 0 1px 3px, rgba(0, 0, 0, 0.3) 0 1px 2px -1px;\n --sbk-icon-button-hover-bg: #f8f8f814;\n --sbk-hover-overlay: #f8f8f80f;\n --sbk-row-hover-bg: #f8f8f80f;\n --sbk-mention-hover-bg: #03669673;\n --sbk-mention-hover-text: rgb(136, 187, 226);\n --sbk-menu-highlight-bg: #0a77a7;\n --sbk-menu-highlight-text: #f8f8f8;\n --sbk-focus-ring: #2ba5ce;\n --sbk-focus-ring-invalid: #d94c75;\n --sbk-checkbox-checked: #0a77a7;\n --sbk-checkbox-checked-hover: #d8eef614;\n --sbk-checkbox-checked-pressed: #d8eef62e;\n --sbk-menu-bg: #212428;\n --sbk-menu-shadow: 0 0 0 1px #797c814d, 0 4px 12px 0 rgba(0, 0, 0, 0.35);\n --sbk-menu-selected-text: #2ba5ce;\n --sbk-menu-separator: #797c814d;\n --sbk-menu-secondary-text: #b9babd;\n --sbk-popover-shadow: 0 0 0 1px #797c814d, 0 4px 12px 0 rgba(0, 0, 0, 0.35);\n --sbk-spinner-track: #9a9b9e;\n --sbk-tooltip-bg: #212428;\n --sbk-tooltip-text: #f8f8f8;\n --sbk-surface-sec: #212428;\n --sbk-surface-ter: #212428;\n --sbk-container-bg: #212428;\n --sbk-content-sec: #b9babd;\n --sbk-content-ter: #9a9b9e;\n --sbk-outline-pry: #797c81;\n --sbk-outline-ter: #797c814d;\n --sbk-interaction-hover: #f8f8f814;\n --sbk-interaction-pressed: #f8f8f82e;\n --sbk-highlight: #0a77a7;\n --sbk-on-highlight: #f8f8f8;\n --sbk-blend-interaction: lighten;\n --sbk-calendar-grid: #797c814d;\n --sbk-avatar-placeholder: #35373b;\n --sbk-hover-actions-icon: #b9babd;\n --sbk-hover-actions-shadow: 0 0 0 1px #797c814d, 0 1px 3px 0 rgba(0, 0, 0, 0.3);\n --sbk-table-border: #797c814d;\n --sbk-dataviz-border: #797c814d;\n --sbk-dataviz-tick: #9a9b9e;\n --sbk-data-table-bg: #f8f8f80f;\n --sbk-data-table-sep: #797c814d;\n --sbk-data-table-active: #3daa7c;\n --sbk-plan-text: #9a9b9e;\n --sbk-task-card-text: #9a9b9e;\n --sbk-alert-default-bg: #f8f8f81a;\n --sbk-alert-default-icon: #b9babd;\n --sbk-alert-info-icon: #2ba5ce;\n --sbk-alert-warning-icon: #e8a723;\n --sbk-alert-error-icon: #d94c75;\n --sbk-alert-success-icon: #3daa7c;\n --sbk-callout-border: #797c814d;\n --sbk-callout-green-bg: #203430;\n --sbk-callout-blue-bg: #1d333d;\n --sbk-callout-red-bg: #39252e;\n --sbk-callout-yellow-bg: #3b3321;\n --sbk-callout-purple-bg: #312c3f;\n --sbk-callout-gray-bg: #272a2e;\n --sbk-chart-area-1: #583422;\n --sbk-chart-area-2: #1c4539;\n --sbk-chart-area-3: #4d3756;\n --sbk-chart-area-4: #164356;\n }\n}\n\n:root[data-theme=\"dark\"],\n[data-theme=\"dark\"] {\n --sbk-text: #f8f8f8;\n --sbk-link: #2ba5ce;\n --sbk-code-text: #de678a;\n --sbk-code-bg: rgba(248, 248, 248, 0.06);\n --sbk-code-border: #797c814d;\n --sbk-quote-bar: #797c8180;\n --sbk-skeleton-bg: #35373b;\n --sbk-mention-bg: #03669640;\n --sbk-mention-text: #2ba5ce;\n --sbk-mention-private-bg: rgba(248, 248, 248, 0.13);\n --sbk-mention-private-text: rgba(248, 248, 248, 0.7);\n --sbk-broadcast-bg: #a073002e;\n --sbk-bg: #1a1d21;\n --sbk-muted: #9a9b9e;\n --sbk-badge-text: #b9babd;\n --sbk-badge-bg: #f8f8f80f;\n --sbk-border: #797c814d;\n --sbk-divider: #797c8180;\n --sbk-button-border: #797c8180;\n --sbk-primary: #177e56;\n --sbk-primary-hover: #268761;\n --sbk-danger: #d3305d;\n --sbk-danger-hover: #d63d68;\n --sbk-button-hover-bg: #323438;\n --sbk-button-hover-shadow: rgba(0, 0, 0, 0.3) 0 1px 3px, rgba(0, 0, 0, 0.3) 0 1px 2px -1px;\n --sbk-icon-button-hover-bg: #f8f8f814;\n --sbk-hover-overlay: #f8f8f80f;\n --sbk-row-hover-bg: #f8f8f80f;\n --sbk-mention-hover-bg: #03669673;\n --sbk-mention-hover-text: rgb(136, 187, 226);\n --sbk-menu-highlight-bg: #0a77a7;\n --sbk-menu-highlight-text: #f8f8f8;\n --sbk-focus-ring: #2ba5ce;\n --sbk-focus-ring-invalid: #d94c75;\n --sbk-checkbox-checked: #0a77a7;\n --sbk-checkbox-checked-hover: #d8eef614;\n --sbk-checkbox-checked-pressed: #d8eef62e;\n --sbk-menu-bg: #212428;\n --sbk-menu-shadow: 0 0 0 1px #797c814d, 0 4px 12px 0 rgba(0, 0, 0, 0.35);\n --sbk-menu-selected-text: #2ba5ce;\n --sbk-menu-separator: #797c814d;\n --sbk-menu-secondary-text: #b9babd;\n --sbk-popover-shadow: 0 0 0 1px #797c814d, 0 4px 12px 0 rgba(0, 0, 0, 0.35);\n --sbk-spinner-track: #9a9b9e;\n --sbk-tooltip-bg: #212428;\n --sbk-tooltip-text: #f8f8f8;\n --sbk-surface-sec: #212428;\n --sbk-surface-ter: #212428;\n --sbk-container-bg: #212428;\n --sbk-content-sec: #b9babd;\n --sbk-content-ter: #9a9b9e;\n --sbk-outline-pry: #797c81;\n --sbk-outline-ter: #797c814d;\n --sbk-interaction-hover: #f8f8f814;\n --sbk-interaction-pressed: #f8f8f82e;\n --sbk-highlight: #0a77a7;\n --sbk-on-highlight: #f8f8f8;\n --sbk-blend-interaction: lighten;\n --sbk-calendar-grid: #797c814d;\n --sbk-avatar-placeholder: #35373b;\n --sbk-hover-actions-icon: #b9babd;\n --sbk-hover-actions-shadow: 0 0 0 1px #797c814d, 0 1px 3px 0 rgba(0, 0, 0, 0.3);\n --sbk-table-border: #797c814d;\n --sbk-dataviz-border: #797c814d;\n --sbk-dataviz-tick: #9a9b9e;\n --sbk-data-table-bg: #f8f8f80f;\n --sbk-data-table-sep: #797c814d;\n --sbk-data-table-active: #3daa7c;\n --sbk-plan-text: #9a9b9e;\n --sbk-task-card-text: #9a9b9e;\n --sbk-alert-default-bg: #f8f8f81a;\n --sbk-alert-default-icon: #b9babd;\n --sbk-alert-info-icon: #2ba5ce;\n --sbk-alert-warning-icon: #e8a723;\n --sbk-alert-error-icon: #d94c75;\n --sbk-alert-success-icon: #3daa7c;\n --sbk-callout-border: #797c814d;\n --sbk-callout-green-bg: #203430;\n --sbk-callout-blue-bg: #1d333d;\n --sbk-callout-red-bg: #39252e;\n --sbk-callout-yellow-bg: #3b3321;\n --sbk-callout-purple-bg: #312c3f;\n --sbk-callout-gray-bg: #272a2e;\n --sbk-chart-area-1: #583422;\n --sbk-chart-area-2: #1c4539;\n --sbk-chart-area-3: #4d3756;\n --sbk-chart-area-4: #164356;\n}\n","/* Modal and Home tab surfaces, measured against Slack's own modal/home chrome (light theme, desktop). */\n\n.sbk-modal {\n display: flex;\n flex-direction: column;\n width: 600px;\n max-width: 100%;\n /* Slack caps a modal at 640px; past that the body scrolls between the pinned header and footer. */\n max-height: min(640px, 90vh);\n background: var(--sbk-bg);\n border-radius: 8px;\n box-shadow:\n 0 0 0 1px var(--sbk-border),\n 0 8px 28px rgba(0, 0, 0, 0.28);\n overflow: hidden;\n}\n\n.sbk-modal__header {\n position: relative;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n flex: 0 0 auto;\n padding: 16px 24px;\n}\n\n.sbk-modal__title-row {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.sbk-modal__icon {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n margin-right: 16px;\n border-radius: 4px;\n object-fit: cover;\n}\n\n.sbk-modal__title {\n flex: 1 1 auto;\n min-width: 0;\n margin: 0;\n font-size: 22px;\n font-weight: 900;\n line-height: 30px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sbk-modal__close {\n display: grid;\n flex: 0 0 auto;\n place-items: center;\n width: 33.4375px;\n height: 36px;\n margin-left: 16px;\n padding: 0;\n border: none;\n border-radius: 8px;\n background: none;\n color: var(--sbk-badge-text);\n cursor: pointer;\n}\n\n.sbk-modal__close:hover {\n background: var(--sbk-icon-button-hover-bg);\n}\n\n/* Slack pads the body 20px on the right, then a transparent 4px border and an 8px scrollbar track\n whose thumb only shows on hover. The track takes its width whether or not the body overflows. */\n.sbk-modal__body {\n flex: 1 1 auto;\n padding: 8px 20px 16px 24px;\n border-right: 4px solid transparent;\n overflow: hidden auto;\n}\n\n.sbk-modal__body::-webkit-scrollbar {\n width: 8px;\n}\n\n.sbk-modal__body::-webkit-scrollbar-track,\n.sbk-modal__body::-webkit-scrollbar-corner {\n background: transparent;\n}\n\n.sbk-modal__body::-webkit-scrollbar-thumb {\n min-height: 36px;\n background: transparent;\n background-clip: padding-box;\n border: 2px solid transparent;\n border-radius: 4px;\n}\n\n.sbk-modal__body:hover::-webkit-scrollbar-thumb {\n background-color: rgba(29, 28, 29, 0.52);\n}\n\n/* Builder's modal blocks are spaced further apart than the flat 4px message gap (measured via\n inspect.ts: consecutive block content boxes sit 16px apart). Scoped here so .sbk-blocks's base\n 4px (Message.css) stays untouched for message fixtures; Home's own reference blocks measured at\n the same 4px as messages, so it isn't overridden. */\n.sbk-modal .sbk-blocks {\n gap: 16px;\n}\n\n/* The modal's 16px block gap already spaces sections; Slack drops their message-surface margins. */\n.sbk-modal .sbk-section {\n margin: 0;\n}\n\n/* A checkbox group's trailing space is shorter in a modal (16px) than in a message (24px). */\n.sbk-modal .sbk-checkboxes {\n margin-bottom: 16px;\n}\n\n.sbk-modal__footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 12px;\n flex: 0 0 auto;\n padding: 20px 24px;\n border-top: 1px solid var(--sbk-border);\n}\n\n/* Modal buttons render bigger than message buttons in Slack; sized here since it's chrome, not\n the shared button component (agent B owns elements/Button.css). */\n.sbk-modal__button {\n height: 36px;\n min-width: 80px;\n padding: 0 12px 1px;\n border-radius: 8px;\n border: 1px solid var(--sbk-button-border);\n background: var(--sbk-bg);\n color: var(--sbk-text);\n font: inherit;\n font-weight: 700;\n font-size: 15px;\n cursor: pointer;\n transition:\n color 80ms,\n background-color 80ms,\n border-color 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n/* Same `c-button` hover model as elements/Button.css. */\n.sbk-modal__button:hover {\n box-shadow: var(--sbk-button-hover-shadow);\n}\n\n.sbk-modal__button:active {\n box-shadow: none;\n}\n\n.sbk-modal__button--primary {\n border-color: transparent;\n background: var(--sbk-primary);\n color: #fff;\n}\n\n.sbk-modal__button--primary:hover,\n.sbk-modal__button--primary:active {\n background-image: linear-gradient(var(--sbk-button-overlay), var(--sbk-button-overlay));\n background-blend-mode: multiply;\n}\n\n.sbk-modal__button--primary:hover {\n --sbk-button-overlay: #0a403221;\n}\n\n.sbk-modal__button--primary:active {\n --sbk-button-overlay: #0a403238;\n}\n\n.sbk-modal__button--secondary:hover,\n.sbk-modal__button--secondary:active {\n background-color: var(--sbk-button-hover-bg);\n}\n\n.sbk-home {\n max-width: 760px;\n margin: 0 auto;\n background: var(--sbk-bg);\n}\n\n.sbk-home__menu {\n display: flex;\n align-items: flex-end;\n height: 40px;\n border-bottom: 1px solid var(--sbk-border);\n}\n\n.sbk-home__tab {\n display: flex;\n align-items: center;\n gap: 4px;\n height: 32px;\n margin-left: 25px;\n font-weight: 700;\n /* Slack's aubergine, independent of the app's primary (green) buttons. */\n box-shadow: inset 0 -2px 0 0 rgb(74, 21, 75);\n}\n\n/* The Home tab uses Slack's \"medium\" buttons: 36px tall, 15px text, rounder corners. */\n.sbk-home .sbk-button {\n height: 36px;\n font-size: 15px;\n border-radius: 8px;\n}\n\n.sbk-home .sbk-overflow__button {\n width: 31px;\n height: 36px;\n border-radius: 8px;\n}\n\n.sbk-home__content {\n padding: 25px;\n}\n\n/* Modals opened through `views` sit centred on a dimmed, full-viewport overlay, as in Slack. */\n.sbk-modal-layer {\n position: fixed;\n inset: 0;\n z-index: 1000;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n background: rgba(0, 0, 0, 0.6);\n}\n\n.sbk-modal-layer__view {\n display: flex;\n justify-content: center;\n width: 100%;\n max-height: 100%;\n}\n\n.sbk-modal-layer__view[hidden] {\n display: none;\n}\n","/* A clickable user mention and its profile card popover (Slack's `p-member_profile_card`): a\n 300px card with the popover shadow, a 72px rounded avatar beside the name block. */\n.sbk-mention--user {\n cursor: pointer;\n}\n\n.sbk-mention--user:focus-visible {\n outline: none;\n box-shadow: var(--sbk-focus-shadow);\n}\n\n.sbk-profile-card {\n position: fixed;\n z-index: 1000;\n display: flex;\n gap: 16px;\n width: 300px;\n padding: 20px;\n color: var(--sbk-text);\n background: var(--sbk-menu-bg);\n border-radius: 6px;\n box-shadow: var(--sbk-popover-shadow);\n}\n\n.sbk-profile-card__avatar {\n flex: 0 0 auto;\n width: 72px;\n height: 72px;\n border-radius: 8px;\n object-fit: cover;\n}\n\n.sbk-profile-card__avatar--placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--sbk-on-highlight);\n background: var(--sbk-highlight);\n font-size: 32px;\n font-weight: 700;\n}\n\n.sbk-profile-card__body {\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.sbk-profile-card__name {\n font-size: 18px;\n font-weight: 900;\n line-height: 1.33334;\n overflow-wrap: anywhere;\n}\n\n.sbk-profile-card__pronouns {\n margin-left: 6px;\n color: var(--sbk-content-sec);\n font-size: 15px;\n font-weight: 400;\n}\n\n.sbk-profile-card__secondary {\n color: var(--sbk-content-sec);\n font-size: 15px;\n line-height: 22px;\n}\n\n.sbk-profile-card__status {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 15px;\n line-height: 22px;\n}\n\n.sbk-profile-card__time {\n color: var(--sbk-content-ter);\n font-size: 13px;\n line-height: 18px;\n}\n\n/* With `mentionHref`, the name links to the app's profile page, like Slack's link to the full\n profile: the name's own look, underlined on hover. */\n.sbk-profile-card__name-link {\n color: inherit;\n text-decoration: none;\n}\n\n.sbk-profile-card__name-link:hover {\n text-decoration: underline;\n}\n",".sbk-confirm__overlay {\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n}\n\n.sbk-confirm {\n width: 400px;\n max-width: calc(100vw - 32px);\n background: var(--sbk-bg);\n border-radius: 8px;\n box-shadow:\n 0 0 0 1px rgba(0, 0, 0, 0.08),\n 0 8px 32px rgba(0, 0, 0, 0.35);\n padding: 20px;\n font-family: var(--sbk-font);\n}\n\n.sbk-confirm__title {\n margin: 0 0 8px;\n font-size: 18px;\n font-weight: 900;\n color: var(--sbk-text);\n}\n\n.sbk-confirm__text {\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-text);\n margin-bottom: 20px;\n}\n\n.sbk-confirm__actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n}\n\n.sbk-confirm__button {\n height: 36px;\n padding: 0 16px;\n border-radius: 4px;\n border: 1px solid var(--sbk-button-border);\n background: var(--sbk-bg);\n color: var(--sbk-text);\n font: 700 15px var(--sbk-font);\n cursor: pointer;\n}\n\n.sbk-confirm__button--primary {\n border: 0;\n background: var(--sbk-primary);\n color: #fff;\n}\n\n.sbk-confirm__button--danger {\n border: 0;\n background: var(--sbk-danger);\n color: #fff;\n}\n","/* Slack's `c-message_actions__group` as used on tables, images and charts: a white pill of 32px\n icon buttons pinned to the host's top-right corner, invisible until the host is hovered or\n holds focus. Offsets per host come from the Builder (table 12px, image 10px, chart 16px). */\n.sbk-hover-actions-host {\n position: relative;\n}\n\n/* Tables: Slack's wrapper hugs the table, so the group sits over the table's own corner. */\n.sbk-hover-actions-host--fit {\n width: fit-content;\n max-width: 100%;\n}\n\n.sbk-hover-actions {\n position: absolute;\n z-index: 2;\n top: 12px;\n right: 12px;\n display: flex;\n padding: 4px;\n background: var(--sbk-menu-bg);\n border-radius: 12px;\n box-shadow: var(--sbk-hover-actions-shadow);\n opacity: 0;\n pointer-events: none;\n}\n\n.sbk-hover-actions-host:hover > .sbk-hover-actions,\n.sbk-hover-actions-host:focus-within > .sbk-hover-actions,\n.sbk-hover-actions:has([aria-expanded=\"true\"]) {\n opacity: 1;\n pointer-events: auto;\n}\n\n.sbk-hover-actions--image {\n top: 10px;\n right: 10px;\n}\n\n.sbk-hover-actions--chart {\n top: 16px;\n right: 16px;\n}\n\n.sbk-hover-actions__button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: 0;\n border-radius: 8px;\n background: transparent;\n color: var(--sbk-hover-actions-icon);\n font-size: 18px;\n cursor: pointer;\n transition:\n color 80ms cubic-bezier(0.36, 0.19, 0.29, 1),\n background 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\na.sbk-hover-actions__button {\n color: var(--sbk-content-sec);\n}\n\n.sbk-hover-actions__button:hover,\n.sbk-hover-actions__button[aria-expanded=\"true\"] {\n background: var(--sbk-row-hover-bg);\n color: var(--sbk-text);\n}\n\n.sbk-hover-actions__button:focus-visible {\n outline: none;\n box-shadow: var(--sbk-focus-shadow);\n}\n\n.sbk-hover-actions__menu-root {\n position: relative;\n}\n",".sbk-actions {\n display: flex;\n flex-wrap: wrap;\n margin: 0 0 8px;\n}\n\n.sbk-actions__action {\n margin: 8px 8px 0 0;\n}\n\n/* Forces the element onto its own row: with the parent's `flex-wrap: wrap`, a 100%-wide item\n always wraps before and after itself. */\n.sbk-actions__action--full-width {\n flex: 1 1 100%;\n width: 100%;\n}\n","/* Measured from the Builder's modal preview (`c-alert--boxed`). Dark values aren't measured; they\n reuse the dark palette's matching hues. */\n:root,\n[data-theme=\"light\"] {\n --sbk-alert-default-bg: rgb(234, 234, 234);\n --sbk-alert-default-icon: rgb(94, 93, 96);\n --sbk-alert-info-bg: rgba(54, 197, 240, 0.13);\n --sbk-alert-info-icon: rgb(18, 100, 163);\n --sbk-alert-warning-bg: rgba(255, 198, 0, 0.18);\n --sbk-alert-warning-icon: rgb(107, 80, 0);\n --sbk-alert-error-bg: rgba(255, 129, 170, 0.13);\n --sbk-alert-error-icon: rgb(192, 19, 67);\n --sbk-alert-success-bg: rgba(76, 200, 148, 0.25);\n --sbk-alert-success-icon: rgb(0, 122, 90);\n}\n\n.sbk-alert {\n display: flex;\n margin: 8px 0;\n padding: 12px 16px;\n border: 1px solid transparent;\n border-radius: 8px;\n}\n\n.sbk-alert__icon {\n flex-shrink: 0;\n margin: 1px 12px 0 0;\n}\n\n.sbk-alert__message {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n/* Links keep the message's ink colour and stay underlined, as in the Builder. */\n.sbk-alert__message .sbk-link {\n color: inherit;\n text-decoration: underline;\n}\n\n.sbk-alert--default {\n background: var(--sbk-alert-default-bg);\n}\n.sbk-alert--default .sbk-alert__icon {\n color: var(--sbk-alert-default-icon);\n}\n.sbk-alert--info {\n background: var(--sbk-alert-info-bg);\n}\n.sbk-alert--info .sbk-alert__icon {\n color: var(--sbk-alert-info-icon);\n}\n.sbk-alert--warning {\n background: var(--sbk-alert-warning-bg);\n}\n.sbk-alert--warning .sbk-alert__icon {\n color: var(--sbk-alert-warning-icon);\n}\n.sbk-alert--error {\n background: var(--sbk-alert-error-bg);\n}\n.sbk-alert--error .sbk-alert__icon {\n color: var(--sbk-alert-error-icon);\n}\n.sbk-alert--success {\n background: var(--sbk-alert-success-bg);\n}\n.sbk-alert--success .sbk-alert__icon {\n color: var(--sbk-alert-success-icon);\n}\n","/* Light values measured from Builder references (green, blue); the other light values are\n extrapolated. Dark values (Message.css) aren't measured: each is its hue from the dark palette\n at 16% over the dark background (gray: 6% white), like the alert colours. */\n:root,\n[data-theme=\"light\"] {\n --sbk-callout-border: rgba(94, 93, 96, 0.13);\n --sbk-callout-green-bg: #f4ffdb;\n --sbk-callout-blue-bg: #e3f8ff;\n --sbk-callout-red-bg: #ffeceb;\n --sbk-callout-yellow-bg: #fff8db;\n --sbk-callout-purple-bg: #f3ecff;\n --sbk-callout-gray-bg: #f4f4f4;\n}\n\n.sbk-callout {\n padding: 12px;\n border: 1px solid var(--sbk-callout-border);\n border-radius: 12px;\n overflow: hidden;\n}\n\n.sbk-callout .sbk-block:first-child > * {\n margin-top: 0;\n}\n\n.sbk-callout .sbk-block:last-child > * {\n margin-bottom: 0;\n}\n\n/* In a container Slack lays a callout's blocks out in a flex column with an 8px gap, so their own\n margins no longer collapse into each other (catalog/container/with-callout). */\n.sbk-container .sbk-callout {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.sbk-container .sbk-callout .sbk-image__title {\n display: none;\n}\n\n/* Keeps the frame's 5px top margin from collapsing into the block's own now that the title row\n above it is hidden. */\n.sbk-container .sbk-callout .sbk-image {\n display: flow-root;\n}\n\n/* Slack keeps the unknown-block notice's bottom margin even as a callout's last child. */\n.sbk-container .sbk-callout .sbk-block:last-child > .sbk-block-error {\n margin-bottom: 6px;\n}\n",".sbk-card {\n margin: 8px 0;\n}\n\n.sbk-card__box {\n width: 340px;\n max-width: 100%;\n background: var(--sbk-bg);\n border: 1px solid rgba(94, 93, 96, 0.13);\n border-radius: 12px;\n overflow: hidden;\n}\n\n.sbk-card__content {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n}\n\n.sbk-card__hero {\n display: block;\n width: 100%;\n height: auto;\n border-radius: 4px;\n object-fit: cover;\n}\n\n.sbk-card__header {\n display: flex;\n /* A lone title centres on the 36px icon. */\n align-items: center;\n gap: 12px;\n}\n\n.sbk-card__icon {\n display: block;\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 8px;\n object-fit: cover;\n}\n\n/* Slack centres its 24px icon in the 36px slot, in the text colour and with no badge behind it. */\n.sbk-card__icon--slack {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--sbk-text);\n}\n\n.sbk-card__icon--fallback {\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(29, 28, 29, 0.06);\n color: var(--sbk-muted);\n}\n\n.sbk-card__titles {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.sbk-card__title {\n font-weight: 700;\n line-height: 22.5px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Text/mrkdwn content renders its own `.sbk-mrkdwn`/`.sbk-plain-text` span with a fixed\n font-size/line-height (set in base.css), which otherwise overrides the size we want here\n since it's set directly on that inline element rather than inherited. Re-assert our sizing\n on the span itself so title/subtitle actually take the compact card typography. */\n.sbk-card__title .sbk-mrkdwn,\n.sbk-card__title .sbk-plain-text {\n font-size: 15px;\n line-height: 22.5px;\n}\n\n.sbk-card__subtitle {\n font-size: 13px;\n line-height: 16.25px;\n color: rgb(94, 93, 96);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sbk-card__subtitle .sbk-mrkdwn,\n.sbk-card__subtitle .sbk-plain-text {\n font-size: 13px;\n line-height: 16.25px;\n color: inherit;\n}\n\n.sbk-card__body {\n line-height: 22px;\n}\n\n.sbk-card__subtext {\n font-size: 13px;\n line-height: 18px;\n color: var(--sbk-muted);\n}\n\n.sbk-card__subtext .sbk-mrkdwn,\n.sbk-card__subtext .sbk-plain-text {\n font-size: 13px;\n line-height: 18px;\n color: inherit;\n}\n\n.sbk-card__actions {\n display: flex;\n gap: 8px;\n}\n\n/* Slack's card buttons size to their label: no 56px minimum, unlike an actions block's. */\n.sbk-card__actions .sbk-button {\n min-width: 0;\n}\n\n.sbk-card__actions-start {\n display: flex;\n flex: 1;\n gap: 8px;\n}\n",".sbk-carousel {\n position: relative;\n margin: 8px 0;\n}\n\n.sbk-carousel__scroller {\n display: flex;\n gap: 16px;\n overflow-x: auto;\n /* Slack hides the track; the arrow buttons scroll instead. Without this a classic-scrollbar\n system (a mouse on macOS, Windows, Linux) grows the carousel by 15px. */\n scrollbar-width: none;\n scroll-snap-type: x proximity;\n padding: 8px 0 4px;\n margin: -8px 0 -4px;\n}\n\n.sbk-carousel__item {\n flex: 0 0 auto;\n scroll-snap-align: start;\n}\n\n.sbk-carousel__item .sbk-card {\n margin: 0;\n}\n\n.sbk-carousel__arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 50%;\n transform: translateY(-16px);\n width: 32px;\n height: 32px;\n padding: 0;\n border: 0;\n border-radius: 9999px;\n background: var(--sbk-bg);\n color: rgb(69, 68, 71);\n box-shadow:\n rgba(0, 0, 0, 0.098) 0px 1px 3px 0px,\n rgba(0, 0, 0, 0.098) 0px 1px 2px -1px;\n cursor: pointer;\n transition:\n opacity 0.15s,\n transform 0.15s;\n}\n\n.sbk-carousel__arrow:hover {\n transform: translateY(-16px) scale(1.1);\n}\n\n/* At either end of the scroll Slack shrinks the arrow away rather than disabling it. */\n.sbk-carousel__arrow--hidden {\n opacity: 0;\n pointer-events: none;\n transform: translateY(-16px) scale(0.8);\n}\n\n.sbk-carousel__arrow--left {\n left: 12px;\n}\n\n.sbk-carousel__arrow--right {\n right: 12px;\n}\n",".sbk-code-block {\n margin: 4px 0;\n padding: 8px;\n}\n\n.sbk-code-block__box {\n margin: 4px 0;\n font-family: var(--sbk-font-mono);\n font-size: 12px;\n line-height: 18px;\n background: var(--sbk-surface-sec);\n border: 1px solid rgba(29, 28, 29, 0.06);\n border-radius: 12px;\n overflow: hidden;\n}\n\n.sbk-code-block__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 4px 4px 4px 12px;\n font-family: var(--sbk-font);\n font-size: 13px;\n font-weight: 700;\n}\n\n.sbk-code-block__language {\n color: var(--sbk-outline-pry);\n}\n\n.sbk-code-block__copy {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n color: rgb(69, 68, 71);\n background: none;\n border: none;\n border-radius: 8px;\n cursor: default;\n}\n\n.sbk-code-block__scroll {\n display: flex;\n padding: 0 12px 8px 0;\n overflow: auto;\n}\n\n.sbk-code-block__code,\n.sbk-code-block__code code {\n /* The UA stylesheet gives <pre> and <code> the generic `monospace`, which beats inheriting the\n box's Slack-Roboto-Mono. Slack also turns ligatures off for code. */\n font-family: inherit;\n font-variant-ligatures: none;\n}\n\n.sbk-code-block__code {\n margin: 0;\n padding: 0 8px 8px;\n line-height: 18px;\n color: var(--sbk-text);\n border-radius: 4px;\n tab-size: 4;\n -moz-tab-size: 4;\n}\n\n.sbk-code-block__line {\n display: block;\n white-space: pre;\n}\n","/* `condition` renders one branch's blocks in place; each child block supplies its own spacing. */\n","/* Slack's c-pillow_file: the avatar sits at the top of the row and the text column is pulled up 1px\n into it, so the card is 1px shorter than its content. */\n.sbk-contact-card {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 12px;\n background: var(--sbk-bg);\n border: 1px solid rgba(94, 93, 96, 0.13);\n border-radius: 12px;\n}\n\n.sbk-contact-card__avatar {\n display: block;\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 8px;\n background: var(--sbk-avatar-placeholder);\n}\n\n.sbk-contact-card__body {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n margin-top: -1px;\n font-size: 13px;\n line-height: 15.6px;\n color: var(--sbk-muted);\n}\n\n.sbk-contact-card__name {\n font-weight: 700;\n font-size: 15px;\n line-height: 19.2px;\n color: var(--sbk-text);\n}\n\n.sbk-contact-card__skeleton {\n display: inline-block;\n width: 120px;\n height: 8px;\n border-radius: 1000px;\n background: var(--sbk-surface-ter);\n}\n\n/* Slack's p-block_kit_unknown_block_error, shown in place of a card it won't render. */\n.sbk-block-error {\n margin: 0 0 6px;\n font-size: 15px;\n line-height: 22px;\n}\n\n.sbk-block-error__message {\n font-size: 12.5px;\n line-height: 18.33px;\n color: var(--sbk-text);\n opacity: 0.5;\n}\n",".sbk-container {\n margin: 16px 0 0;\n background: var(--sbk-bg);\n border: 1px solid var(--sbk-outline-ter);\n border-radius: 12px;\n overflow: hidden;\n}\n\n/* Every width keeps the card frame; only the cap differs (`full` has none), per Slack's client. */\n.sbk-container--narrow {\n max-width: 320px;\n}\n\n.sbk-container--standard {\n max-width: 480px;\n}\n\n.sbk-container--wide {\n max-width: 642px;\n}\n\n.sbk-container__header {\n display: flex;\n width: 100%;\n padding: 12px;\n border: 0;\n background: none;\n font: inherit;\n color: inherit;\n text-align: left;\n cursor: default;\n}\n\n.sbk-container__header--button {\n cursor: pointer;\n}\n\n.sbk-container__header--divider {\n margin-bottom: 12px;\n border-bottom: 1px solid var(--sbk-outline-ter);\n}\n\n/* Slack centres the icon against the title and subtitle. */\n.sbk-container__titles {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1 1 0;\n min-width: 0;\n}\n\n.sbk-container__icon {\n display: block;\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 8px;\n object-fit: cover;\n}\n\n.sbk-container__title-col {\n display: flex;\n flex-direction: column;\n flex: 1 1 0;\n min-width: 0;\n}\n\n.sbk-container__title {\n font-weight: 700;\n line-height: 22.5px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sbk-container__subtitle {\n font-size: 13px;\n line-height: 16.25px;\n color: var(--sbk-content-sec);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sbk-container__chevron {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n margin-left: 8px;\n transition: transform 0.16s cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n.sbk-container__chevron--collapsed {\n transform: rotate(-90deg);\n}\n\n.sbk-container__body {\n padding: 0 12px 12px;\n}\n\n/* Builder's `containerBlockContent` slides open and shut faster than plan and task_card, on the\n same curve as the chevron. */\n.sbk-collapse.sbk-container__collapse {\n transition: height 0.16s cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .sbk-container__chevron,\n .sbk-collapse.sbk-container__collapse {\n transition: none;\n }\n}\n\n/* Builder omits the image title/caret row when an `image` block is a direct child of a\n container (Callout.css does the same for one nested in a callout there). */\n.sbk-container__body > .sbk-block--image .sbk-image__title {\n display: none;\n}\n\n/* Builder's reference for an `image` block directly inside a container drops the block's own\n top margin (only the bottom margin remains) — the container's body padding provides the top\n spacing instead. */\n.sbk-container__body > .sbk-block--image .sbk-image {\n margin-top: 0;\n}\n\n/* Builder drops the top margin of a leading section: its text starts right under the header\n (catalog/container/icon-plus-subtitle), or 12px below a header divider (header-divider). */\n.sbk-container__header + .sbk-container__body > .sbk-block--section:first-child .sbk-section,\n.sbk-container__header\n + .sbk-container__collapse\n > .sbk-container__body\n > .sbk-block--section:first-child\n .sbk-section {\n margin-top: 0;\n}\n","/* Slack sets each element in a 15px/22px line box around 13px/18px text; an image sits on that\n line's baseline, which stretches a row holding one to 25px. */\n.sbk-context {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n row-gap: 4px;\n margin: 4px 0;\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-muted);\n}\n\n.sbk-context .sbk-mrkdwn,\n.sbk-context .sbk-plain-text {\n font-size: 13px;\n line-height: 18px;\n color: inherit;\n}\n\n.sbk-context .sbk-emoji {\n vertical-align: text-bottom;\n}\n\n/* Slack spaces context elements with a trailing spacer rather than a gap: 16px after text, 4px\n after an image, so consecutive images sit close together. Images hang from the top of the row. */\n.sbk-context__text {\n margin-right: 16px;\n}\n\n.sbk-context > :last-child {\n margin-right: 0;\n}\n\n.sbk-context__image {\n margin-right: 4px;\n margin-bottom: 5px;\n width: 20px;\n height: 20px;\n border-radius: 2px;\n object-fit: cover;\n}\n","/* Slack butts the 32px icon buttons against each other and against the block above. */\n.sbk-context-actions {\n display: flex;\n align-items: center;\n}\n","/* Values measured from Slack's Block Kit Builder for the `data_table` block. */\n:root,\n[data-theme=\"light\"] {\n --sbk-data-table-bg: rgba(29, 28, 29, 0.06);\n --sbk-data-table-sep: rgba(94, 93, 96, 0.13);\n --sbk-data-table-active: #007a5a;\n}\n\n.sbk-data-table {\n margin: 4px 0;\n}\n\n.sbk-data-table__header {\n display: flex;\n align-items: center;\n padding: 8px 4px;\n gap: 8px;\n}\n\n.sbk-data-table__caption {\n flex: 1 1 auto;\n font-weight: 900;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.sbk-data-table__toolbar {\n display: flex;\n gap: 8px;\n flex: 0 0 auto;\n}\n\n.sbk-data-table__icon-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n padding: 0;\n color: var(--sbk-badge-text);\n background: none;\n border: 1px solid var(--sbk-button-border);\n border-radius: 8px;\n cursor: pointer;\n}\n\n/* Slack's grey frame holds both the grid and the pagination footer below it, and scrolls them\n sideways together when the columns can't fit. Like Slack's, it's a flex column, so its end\n padding counts as scrollable space. */\n.sbk-data-table__frame {\n display: flex;\n flex-direction: column;\n overflow-x: auto;\n padding: 0 4px;\n background-color: var(--sbk-data-table-bg);\n border-radius: 12px;\n}\n\n/* Slack's scrollbar: an 8px track whose rounded thumb only shows while the table is hovered. */\n.sbk-data-table__frame::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n}\n\n.sbk-data-table__frame::-webkit-scrollbar-track,\n.sbk-data-table__frame::-webkit-scrollbar-thumb,\n.sbk-data-table__frame::-webkit-scrollbar-corner {\n background: transparent;\n}\n\n.sbk-data-table__frame::-webkit-scrollbar-thumb {\n border-radius: 4px;\n}\n\n.sbk-data-table__frame:hover::-webkit-scrollbar-thumb {\n background: color-mix(in srgb, var(--sbk-text) 52%, transparent);\n}\n\n/* Like Slack's <table>, the grid never narrows below its columns' 120px minimums. */\n.sbk-data-table__rows {\n position: relative;\n min-width: min-content;\n}\n\n/* Without pagination Slack's footer shrinks to a 4px strip. */\n.sbk-data-table__rows:last-child {\n margin-bottom: 4px;\n}\n\n.sbk-data-table__grid-header,\n.sbk-data-table__row {\n display: grid;\n}\n\n.sbk-data-table__col-header {\n display: flex;\n align-items: center;\n height: 36px;\n font-size: 13px;\n font-weight: 700;\n line-height: 18px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-data-table__col-header button {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 28px;\n gap: 4px;\n padding: 0 12px;\n font: inherit;\n color: inherit;\n background: none;\n border: none;\n border-radius: 8px;\n cursor: pointer;\n}\n\n/* Slack hides the unsorted caret until the header is hovered or focused, and tints the header\n with the same 6% overlay as its other hoverable table chrome. */\n.sbk-data-table__col-header button:hover,\n.sbk-data-table__col-header button:focus-visible {\n background-color: var(--sbk-hover-overlay);\n}\n\n/* Slack's caret stays hidden, even on a sorted column, until the header is hovered or focused. */\n.sbk-data-table__sort-caret {\n display: flex;\n margin-left: auto;\n opacity: 0;\n}\n\n.sbk-data-table__col-header button:hover .sbk-data-table__sort-caret,\n.sbk-data-table__col-header button:focus-visible .sbk-data-table__sort-caret {\n opacity: 1;\n}\n\n/* Slack's sort menu: a 200px `c-menu` flush below the header, a small \"Sort\" heading, then\n Ascending and Descending and, once sorted, a separator and a red Clear Sort. */\n.sbk-data-table__sort-menu {\n width: 200px;\n padding: 12px 0;\n background: var(--sbk-menu-bg);\n border-radius: 4px;\n box-shadow: var(--sbk-menu-shadow);\n}\n\n.sbk-data-table__sort-heading {\n padding: 4px 24px;\n font: 13px / 18px var(--sbk-font);\n color: var(--sbk-content-sec);\n}\n\n.sbk-data-table__sort-item {\n position: relative;\n display: flex;\n align-items: center;\n height: 28px;\n padding: 0 24px;\n font: 15px / 28px var(--sbk-font);\n color: var(--sbk-text);\n white-space: nowrap;\n cursor: pointer;\n}\n\n.sbk-data-table__sort-item[aria-checked=\"true\"] {\n color: var(--sbk-menu-selected-text);\n}\n\n/* Slack's danger red is the same token as its inline-code text. */\n.sbk-data-table__sort-item--danger {\n color: var(--sbk-code-text);\n}\n\n.sbk-data-table__sort-item[data-active] {\n color: var(--sbk-menu-highlight-text);\n background: var(--sbk-menu-highlight-bg);\n}\n\n/* Slack's 16px glyphs sit at the start of their 20px boxes. */\n.sbk-data-table__sort-icon {\n display: flex;\n width: 20px;\n height: 16px;\n margin-right: 8px;\n}\n\n/* The checked item's check hangs in the 24px gutter, 4px from the menu's edge. */\n.sbk-data-table__sort-check {\n position: absolute;\n top: 6px;\n left: 4px;\n display: flex;\n width: 20px;\n height: 16px;\n}\n\n.sbk-data-table__sort-separator {\n padding: 8px 0;\n}\n\n.sbk-data-table__sort-separator::before {\n content: \"\";\n display: block;\n border-top: 1px solid var(--sbk-menu-separator);\n}\n\n.sbk-data-table__col-label {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.sbk-data-table__cell {\n position: relative;\n min-width: 0;\n height: 48px;\n overflow: hidden;\n background-color: var(--sbk-bg);\n}\n\n/* The body's outline is drawn by its edge cells, inside the 48px rows as in Slack. */\n.sbk-data-table__row:first-child .sbk-data-table__cell {\n border-top: 1px solid var(--sbk-button-border);\n}\n\n.sbk-data-table__row:last-child .sbk-data-table__cell {\n border-bottom: 1px solid var(--sbk-button-border);\n}\n\n.sbk-data-table__cell:first-child {\n border-left: 1px solid var(--sbk-button-border);\n}\n\n.sbk-data-table__cell:last-child {\n border-right: 1px solid var(--sbk-button-border);\n}\n\n.sbk-data-table__row:hover .sbk-data-table__cell {\n background-color: var(--sbk-row-hover-bg);\n}\n\n.sbk-data-table__row:not(:first-child) .sbk-data-table__cell {\n box-shadow: inset 0 1px 0 var(--sbk-data-table-sep);\n}\n\n.sbk-data-table__row:first-child .sbk-data-table__cell:first-child {\n border-top-left-radius: 8px;\n}\n\n.sbk-data-table__row:first-child .sbk-data-table__cell:last-child {\n border-top-right-radius: 8px;\n}\n\n.sbk-data-table__row:last-child .sbk-data-table__cell:first-child {\n border-bottom-left-radius: 8px;\n}\n\n.sbk-data-table__row:last-child .sbk-data-table__cell:last-child {\n border-bottom-right-radius: 8px;\n}\n\n.sbk-data-table__cell-content {\n display: flex;\n align-items: center;\n height: 48px;\n padding: 0 12px;\n}\n\n/* Slack clips overlong cell text without an ellipsis. */\n.sbk-data-table__truncate {\n overflow: hidden;\n white-space: nowrap;\n}\n\n/* Pinned to the frame's left edge, so the pages stay in view while the columns scroll sideways. */\n.sbk-data-table__pagination {\n position: sticky;\n left: 0;\n max-width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n height: 32px;\n font-size: 13px;\n line-height: 18px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-data-table__page-nav {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n padding: 0;\n color: inherit;\n background: none;\n border: none;\n border-radius: 8px;\n cursor: pointer;\n}\n\n.sbk-data-table__page-nav:disabled {\n opacity: 0.4;\n cursor: default;\n}\n\n.sbk-data-table__page-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n font: inherit;\n color: inherit;\n background: none;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n}\n\n.sbk-data-table__page-btn--active {\n color: #fff;\n background-color: var(--sbk-data-table-active);\n}\n\n.sbk-data-table__page-btn:not(.sbk-data-table__page-btn--active):hover,\n.sbk-data-table__page-btn:not(.sbk-data-table__page-btn--active):focus-visible {\n color: var(--sbk-text);\n background-color: var(--sbk-button-hover-bg);\n}\n\n/* Same multiply darkening as a primary button: hover ≈ rgb(20,133,103), pressed ≈ rgb(0,110,81). */\n.sbk-data-table__page-btn--active:hover {\n background-color: rgb(20, 133, 103);\n}\n\n.sbk-data-table__page-btn--active:active {\n background-color: rgb(0, 110, 81);\n}\n\n.sbk-rtmini__link {\n color: var(--sbk-link);\n text-decoration: none;\n}\n\n.sbk-rtmini__link:hover {\n text-decoration: underline;\n}\n\n.sbk-rtmini__code {\n font-family: var(--sbk-font-mono);\n font-size: 12px;\n background: var(--sbk-code-bg);\n border: 1px solid var(--sbk-code-border);\n border-radius: 3px;\n padding: 1px 3px;\n}\n",":root,\n[data-theme=\"light\"] {\n /* Area fills: measured for the first two series colours, tinted 88% toward white for the\n others. Dark values (Message.css) aren't measured: the series colour at 30% over the dark\n background. */\n --sbk-chart-area-1: rgb(255, 237, 229);\n --sbk-chart-area-2: rgb(227, 255, 243);\n --sbk-chart-area-3: rgb(248, 238, 250);\n --sbk-chart-area-4: rgb(226, 243, 250);\n --sbk-dataviz-border: rgba(94, 93, 96, 0.13);\n --sbk-dataviz-tick: #5e5d60;\n}\n\n.sbk-dataviz {\n display: flex;\n flex-direction: column;\n /* Slack insets the chart card 8px from the block edges. */\n margin: 8px 0;\n padding: 12px;\n background-color: var(--sbk-container-bg);\n border: 1px solid var(--sbk-dataviz-border);\n border-radius: 12px;\n overflow: hidden;\n}\n\n.sbk-dataviz__title {\n /* Only the title is spaced off; the plot, axis label and legend stack flush. */\n margin: 0 0 8px;\n font-size: 18px;\n font-weight: 900;\n line-height: 24.0001px;\n}\n\n.sbk-dataviz__body {\n display: flex;\n align-items: stretch;\n /* The y-axis label is absolutely positioned (see below) so it doesn't steal width from the\n chart — Slack renders the chart at the container's full width and overlays the label. */\n position: relative;\n}\n\n.sbk-dataviz__body--pie {\n justify-content: center;\n}\n\n.sbk-dataviz__y-label {\n position: absolute;\n left: 0;\n /* Matches the reference: the label spans the plot area, not the tick/legend gutters below it. */\n top: 8px;\n bottom: 26px;\n width: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-size: 13px;\n font-weight: 700;\n text-align: center;\n pointer-events: none;\n}\n\n.sbk-dataviz__body > .sbk-chart {\n flex: 1;\n min-width: 0;\n}\n\n.sbk-chart {\n width: 100%;\n}\n\n.sbk-chart__svg {\n display: block;\n width: 100%;\n height: auto;\n}\n\n.sbk-chart__tick {\n fill: var(--sbk-dataviz-tick);\n font-size: 13px;\n}\n\n.sbk-dataviz__x-label {\n padding: 8px 0 0 74px;\n font-size: 13px;\n font-weight: 700;\n /* The label is centred within the remaining (post-gutter) width, not left-aligned. */\n line-height: 18px;\n text-align: center;\n}\n\n.sbk-dataviz__legend {\n display: flex;\n padding: 8px 0 0 74px;\n gap: 8px;\n flex-wrap: wrap;\n /* Centred under the plot area, like the x-axis label above it. */\n justify-content: center;\n line-height: 18px;\n}\n\n.sbk-dataviz__legend--pie {\n padding-left: 0;\n justify-content: center;\n}\n\n.sbk-dataviz__legend-entry {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n}\n\n.sbk-dataviz__legend-dot {\n width: 10px;\n height: 10px;\n border-radius: 9999px;\n display: inline-block;\n flex-shrink: 0;\n}\n",".sbk-divider {\n margin: 8px 0;\n border: 0;\n border-top: 1px solid var(--sbk-divider);\n}\n","/* Slack drops every fallback block into the single (flex-row) wrapper of the unknown block. */\n.sbk-fallback-canary {\n display: flex;\n}\n\n/* Slack's header and section blocks are `width: 100%` there while a context block sizes to its\n content, so the row shrinks them in that proportion (174/174/84px of 432 in the reference). */\n.sbk-fallback-canary > .sbk-block--header,\n.sbk-fallback-canary > .sbk-block--section {\n width: 100%;\n}\n",".sbk-file {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 8px 0;\n padding: 8px 12px;\n max-width: 360px;\n background: rgba(29, 28, 29, 0.04);\n border: 1px solid var(--sbk-border);\n border-radius: 8px;\n color: var(--sbk-muted);\n}\n\n/* Slack's pillow file card: the border firms up and a soft shadow appears under the pointer. */\n.sbk-file:hover {\n border-color: rgba(94, 93, 96, 0.45);\n box-shadow: rgba(0, 0, 0, 0.047) 0 1px 2px;\n}\n\n.sbk-file__icon {\n display: flex;\n flex: 0 0 auto;\n}\n\n.sbk-file__body {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.sbk-file__name {\n color: var(--sbk-text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sbk-file__meta {\n font-size: 12px;\n text-transform: capitalize;\n}\n","/* Sizes measured from the Builder's level-1..4 header references (level 2 is Slack's default). */\n.sbk-header {\n margin: 15px 0 4px;\n font-weight: 400;\n}\n\n.sbk-header--level-1 {\n font-size: 18px;\n line-height: 1.33334;\n font-weight: 900;\n}\n\n.sbk-header--level-2 {\n font-size: 15px;\n line-height: 1.46668;\n font-weight: 900;\n}\n\n.sbk-header--level-3,\n.sbk-header--level-4 {\n font-size: 15px;\n line-height: 1.46668;\n font-weight: 700;\n}\n",".sbk-image {\n margin: 8px 0;\n}\n\n/* Slack sets the row as inline text on a 22px line: the title, then a nowrap caption holding the\n file size (which we can't know without fetching the image) and the caret button. */\n.sbk-image__title {\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-muted);\n}\n\n.sbk-image__title-text {\n display: inline-block;\n font-size: 13px;\n line-height: 18px;\n word-break: break-word;\n}\n\n.sbk-image__trigger {\n font-size: 13px;\n line-height: 18px;\n white-space: nowrap;\n}\n\n.sbk-image__toggle {\n display: inline-block;\n width: 15px;\n margin-top: -4px;\n padding: 0;\n border: 0;\n background: none;\n font-size: 15px;\n line-height: 15px;\n color: var(--sbk-link);\n cursor: pointer;\n}\n\n.sbk-image__caret {\n display: inline-block;\n width: 15px;\n height: 15px;\n vertical-align: middle;\n}\n\n.sbk-image__frame {\n position: relative;\n /* Slack always leaves a 5px gap above the image itself (the image container's own\n margin-top), independent of whether the title row above it has content or is hidden/0-height\n — so this lives on the frame rather than as the title row's margin-bottom, which would\n disappear along with the row when Container.css hides it for a direct-child image. */\n margin-top: 5px;\n /* Slack scales large images down to the message width but never upscales a small one. */\n max-width: 100%;\n width: fit-content;\n border-radius: 8px;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n /* Slack paints the photo as this box's background rather than an <img>. Chrome resamples the two\n differently when downscaling, which on a large photo shifts every high-contrast edge; painting\n it the same way makes our pixels match. The <img> stays for sizing and alt text. */\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: contain;\n}\n\n.sbk-image__img {\n display: block;\n opacity: 0;\n max-width: 100%;\n height: auto;\n}\n\n.sbk-image__fallback {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 88px;\n width: 100%;\n background: var(--sbk-badge-bg);\n color: var(--sbk-muted);\n font-size: 13px;\n padding: 16px;\n text-align: center;\n}\n",".sbk-input {\n margin: 0;\n}\n\n.sbk-input__label {\n font: 700 15px / 22px var(--sbk-font);\n color: var(--sbk-text);\n margin-bottom: 8px;\n}\n\n.sbk-input__optional {\n font-weight: 400;\n color: var(--sbk-muted);\n}\n\n/* Selects and date/time pickers default to a fixed ~190px width (their size as a section/actions accessory), but\n Slack's Builder stretches them to the full field width inside an `input` block. */\n.sbk-input__element .sbk-select,\n.sbk-input__element .sbk-datepicker,\n.sbk-input__element .sbk-timepicker {\n width: 100%;\n}\n\n/* Slack renders radio_buttons as a `<fieldset>` with a `<legend>` inside an `input` block, which\n carries ~24px of trailing space below the last option — 8px more than the bare-wrapper (no\n legend) rendering used in actions/section-accessory context. Confirmed via inspect.ts against\n catalog/input/radio-buttons vs catalog/actions/radio-buttons and catalog/section/radio-buttons. */\n.sbk-input__element .sbk-radio-buttons {\n margin-bottom: 24px;\n}\n\n/* Slack sets hints inline inside a body-text line box, so they sit flush under the element and the\n 13px text rides on a 22px line. */\n.sbk-input__hint {\n font: 400 15px / 22px var(--sbk-font);\n}\n\n.sbk-input__hint-text {\n font-size: 13px;\n line-height: 18px;\n color: var(--sbk-muted);\n}\n\n.sbk-input__hint-text--dispatch {\n margin-left: 4px;\n}\n\n.sbk-input__hint-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 13px;\n height: 20px;\n}\n\n.sbk-input__error {\n margin-top: 4px;\n font: 400 13px / 18px var(--sbk-font);\n color: var(--sbk-danger);\n}\n\n.sbk-input--error .sbk-input__element {\n --sbk-button-border: var(--sbk-danger);\n}\n","/* Slack expands a markdown block into one block per heading, paragraph, divider…, so their\n margins add up instead of collapsing (divider → heading is 8px + 15px). */\n.sbk-markdown {\n display: flex;\n flex-direction: column;\n font-family: var(--sbk-font);\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-text);\n overflow-wrap: anywhere;\n}\n\n.sbk-markdown__section {\n display: block;\n}\n\n.sbk-markdown__table-wrap {\n overflow: auto;\n}\n\n/* Slack draws the grid with separate borders (right + bottom on every cell, plus the outer top\n and left edges) so the corner cells can round off. */\n.sbk-markdown__table {\n border-collapse: separate;\n border-spacing: 0;\n padding: 4px 0;\n}\n\n.sbk-markdown__table th,\n.sbk-markdown__table td {\n padding: 2px 12px 0;\n height: 28px;\n font-weight: 400;\n text-align: left;\n vertical-align: top;\n white-space: nowrap;\n border-right: 1px solid var(--sbk-outline-ter);\n border-bottom: 1px solid var(--sbk-outline-ter);\n}\n\n/* Inline code keeps the cell's nowrap, even under a host's `.prose td > code` rule. */\n.sbk-markdown__table :is(th, td) code {\n white-space: inherit;\n}\n\n.sbk-markdown__table th {\n font-weight: 700;\n}\n\n.sbk-markdown__table > :first-child > tr:first-child > * {\n border-top: 1px solid var(--sbk-outline-ter);\n}\n\n.sbk-markdown__table tr > :first-child {\n border-left: 1px solid var(--sbk-outline-ter);\n}\n\n.sbk-markdown__table > :first-child > tr:first-child > :first-child {\n border-top-left-radius: 4px;\n}\n\n.sbk-markdown__table > :first-child > tr:first-child > :last-child {\n border-top-right-radius: 4px;\n}\n\n.sbk-markdown__table > :last-child > tr:last-child > :first-child {\n border-bottom-left-radius: 4px;\n}\n\n.sbk-markdown__table > :last-child > tr:last-child > :last-child {\n border-bottom-right-radius: 4px;\n}\n",":root,\n[data-theme=\"light\"] {\n --sbk-plan-text: rgb(94, 93, 96);\n}\n\n.sbk-plan {\n display: flex;\n flex-direction: column;\n margin: 8px 0;\n}\n\n.sbk-plan__pill {\n display: flex;\n align-self: flex-start;\n padding: 0;\n border: 0;\n background: transparent;\n border-radius: 12px;\n cursor: pointer;\n font: inherit;\n color: inherit;\n text-align: left;\n max-width: 100%;\n}\n\n/* Slack sets the toggle as inline text: the status icon hangs in a 20px indent and the icon and\n caret sit `vertical-align: middle` on the 13px title's line. */\n.sbk-plan__pill-content {\n display: block;\n padding-left: 20px;\n text-indent: -20px;\n font-size: 15px;\n line-height: 22px;\n}\n\n/* Slack's `toggleBarButton`: a 6% tint on hover, an inset blue ring for keyboard focus. */\n.sbk-plan__pill:hover {\n background-color: var(--sbk-hover-overlay);\n}\n\n.sbk-plan__pill:focus-visible {\n outline: 2px solid var(--sbk-focus-ring);\n outline-offset: -2px;\n}\n\n/* A 12px slot, as in Slack: the 13px check and warning overhang it rather than push the title. */\n.sbk-plan__pill-icon {\n display: inline-flex;\n width: 12px;\n /* Slack's `middle` lands here; ours sits 0.5px lower and grows the 22px line box. */\n vertical-align: -2px;\n margin: 0 8px 0 0;\n font-size: 13px;\n line-height: normal;\n text-indent: 0;\n}\n\n.sbk-plan__pill-title {\n font-size: 13px;\n /* Slack's is 19.5px, but with our Lato metrics that overhangs the 22px line by half a pixel. */\n line-height: 19px;\n color: var(--sbk-plan-text);\n}\n\n.sbk-plan__pill-chevron {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n margin-left: 4px;\n width: 13px;\n height: 13px;\n text-indent: 0;\n color: var(--sbk-plan-text);\n}\n\n/* Slack's toggle-bar status colours: a grey check once done, a red warning on failure, a blue\n spinner while running. The timeline's dots are grey, lighter while the step is waiting. */\n.sbk-status-icon--complete,\n.sbk-status-icon--dot-complete {\n color: var(--sbk-content-sec);\n}\n\n.sbk-status-icon--spinner {\n color: var(--sbk-link);\n}\n\n.sbk-status-icon--error {\n color: var(--sbk-code-text);\n}\n\n.sbk-status-icon--dot {\n display: block;\n}\n\n/* Slack's expanded plan is a timeline: each task is a row with a 12px step indicator (a 1px line\n in, the status icon, a 1px line out) and the task's content 8px to its right. */\n.sbk-plan__tasks {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.sbk-plan__task {\n display: flex;\n font-size: 13px;\n line-height: 19.0668px;\n color: var(--sbk-plan-text);\n}\n\n.sbk-plan__step {\n display: flex;\n flex: 0 0 12px;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n}\n\n.sbk-plan__line {\n width: 1px;\n background: var(--sbk-surface-ter);\n}\n\n.sbk-plan__line--top {\n flex: 0 0 6px;\n}\n\n/* Slack's first step sits 11px below the toggle, not 12. */\n.sbk-plan__task:first-child .sbk-plan__line--top {\n flex-basis: 11px;\n}\n\n.sbk-plan__line--bottom {\n flex: 1 1 auto;\n}\n\n.sbk-plan__task:last-child .sbk-plan__line--bottom {\n background: transparent;\n}\n\n/* A 12x8 box: the 5px dot centres in it; the 12px spinner and 13px warning overhang it evenly. */\n.sbk-plan__task-icon {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 8px;\n margin: 2px 0;\n}\n\n.sbk-plan__task-content {\n flex: 1 1 auto;\n min-width: 0;\n margin-left: 8px;\n}\n\n.sbk-plan__task:first-child .sbk-plan__task-content {\n padding-top: 6px;\n}\n\n/* Slack's `taskHeaderSlim`: an unstyled button, the title and a 13px caret 4px apart. */\n.sbk-plan__task-header {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 0;\n border: 0;\n background: none;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n}\n\n.sbk-plan__task-header[aria-disabled=\"true\"] {\n cursor: default;\n}\n\n.sbk-plan__task-header:focus-visible {\n outline: 2px solid var(--sbk-focus-ring);\n outline-offset: -2px;\n}\n\n.sbk-plan__task-title {\n margin: 2px 0;\n}\n\n/* Slack's caret sits 1px below the header's centre line. */\n.sbk-plan__task-caret {\n display: flex;\n width: 13px;\n height: 13px;\n margin-top: 2px;\n}\n\n.sbk-plan__task-body {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.sbk-plan__task-sources {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.sbk-plan__task-source-link {\n color: var(--sbk-link);\n text-decoration: none;\n}\n\n.sbk-plan__task-source-link:hover {\n text-decoration: underline;\n}\n",".sbk-rich-text {\n font-family: var(--sbk-font);\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-text);\n overflow-wrap: anywhere;\n}\n\n.sbk-rich-text__section {\n display: block;\n}\n\n.sbk-rich-text__br {\n display: block;\n height: 8px;\n}\n\n.sbk-rich-text__jumbo-emoji {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.sbk-rich-text__quote {\n margin: 4px 0;\n padding-left: 16px;\n position: relative;\n}\n\n.sbk-rich-text__quote::before {\n content: \"\";\n position: absolute;\n inset: 0 auto 0 0;\n width: 4px;\n border-radius: 8px;\n background: var(--sbk-quote-bar);\n}\n\n.sbk-rich-text__pre {\n display: block;\n position: relative;\n margin: 4px 0;\n padding: 8px;\n font-family: var(--sbk-font-mono);\n font-size: 12px;\n line-height: 1.50001;\n color: var(--sbk-text);\n background: var(--sbk-code-bg);\n border: 1px solid var(--sbk-code-border);\n border-radius: 4px;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\n.sbk-rich-text__pre-copy {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 4px;\n right: 4px;\n width: 28px;\n height: 28px;\n color: rgb(69, 68, 71);\n background: rgba(29, 28, 29, 0.04);\n border-radius: 4px;\n /* Slack's copy control (`container__nrkPh`) is invisible until the code block is hovered. */\n opacity: 0;\n}\n\n.sbk-rich-text__pre:hover .sbk-rich-text__pre-copy,\n.sbk-rich-text__pre:focus-within .sbk-rich-text__pre-copy {\n opacity: 1;\n}\n\n.sbk-rich-text__color-swatch {\n display: inline-block;\n vertical-align: middle;\n margin: 0 0 -1px 2px;\n width: 13px;\n height: 13px;\n border: 1px solid var(--sbk-muted);\n border-radius: 3px;\n}\n\n.sbk-rich-list {\n margin: 0;\n list-style-position: outside;\n}\n\n.sbk-rich-list--ordered {\n padding: 0 0 0 11px;\n}\n\n.sbk-rich-list--bullet {\n padding: 0;\n list-style: none;\n}\n\n/* Slack's bullets are its icon font's presence glyphs, cycling dot, ring and square by indent,\n each 15px glyph centred in a 22px slot that hangs 28px left of the text. */\n.sbk-rich-list--bullet > .sbk-rich-list__item::before {\n content: \"\";\n display: inline-block;\n width: 22px;\n height: 15px;\n margin-left: -28px;\n margin-right: 6px;\n vertical-align: -2px;\n background: currentColor;\n mask: var(--sbk-bullet) center / 15px 15px no-repeat;\n}\n\n.sbk-rich-list--bullet:is([data-indent=\"0\"], [data-indent=\"3\"], [data-indent=\"6\"]) {\n --sbk-bullet: url(\"data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 2000 2000%22><path transform=%22matrix(1 0 0 -1 0 1700)%22 d=%22M1000 150C1249 150 1450 351 1450 600C1450 849 1249 1050 1000 1050C751 1050 550 849 550 600C550 351 751 150 1000 150Z%22/></svg>\");\n}\n\n.sbk-rich-list--bullet:is([data-indent=\"1\"], [data-indent=\"4\"], [data-indent=\"7\"]) {\n --sbk-bullet: url(\"data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 2000 2000%22><path transform=%22matrix(1 0 0 -1 0 1700)%22 d=%22M1000 150C1249 150 1450 351 1450 600C1450 849 1249 1050 1000 1050C751 1050 550 849 550 600C550 351 751 150 1000 150ZM1000 300C834 300 700 434 700 600C700 766 834 900 1000 900C1166 900 1300 766 1300 600C1300 434 1166 300 1000 300Z%22/></svg>\");\n}\n\n.sbk-rich-list--bullet:is([data-indent=\"2\"], [data-indent=\"5\"], [data-indent=\"8\"]) {\n --sbk-bullet: url(\"data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 2000 2000%22><path transform=%22matrix(1 0 0 -1 0 1700)%22 d=%22M550 303C550 214 614 150 703 150H1297C1386 150 1450 214 1450 303V897C1450 986 1386 1050 1297 1050H703C614 1050 550 986 550 897Z%22/></svg>\");\n}\n\n.sbk-rich-list__item {\n display: list-item;\n}\n\n.sbk-rich-list--ordered > .sbk-rich-list__item {\n margin: 0 0 0 20px;\n padding-left: 8px;\n}\n\n.sbk-rich-list--bullet > .sbk-rich-list__item {\n margin: 0 0 0 28px;\n}\n\n/* A list with `border: 1` carries the same left bar as a quote, so the two join visually. */\n.sbk-rich-list--bordered {\n position: relative;\n margin-left: 0;\n}\n\n.sbk-rich-list--bordered::before {\n content: \"\";\n position: absolute;\n inset: 0 auto 0 0;\n width: 4px;\n border-radius: 8px;\n background: var(--sbk-quote-bar);\n}\n",".sbk-section {\n display: flex;\n margin: 8px 0 4px;\n}\n\n.sbk-section__content {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.sbk-section__fields {\n display: flex;\n flex-wrap: wrap;\n}\n\n.sbk-section__field {\n width: calc(50% - 16px);\n}\n\n.sbk-section__field:nth-child(even) {\n margin-left: 16px;\n}\n\n.sbk-section__text + .sbk-section__fields {\n margin-top: 12px;\n}\n\n.sbk-section__text--clamped {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.sbk-section__toggle {\n display: block;\n margin-top: 2px;\n padding: 0;\n border: 0;\n background: none;\n font: inherit;\n font-size: 13px;\n color: var(--sbk-link);\n cursor: pointer;\n}\n\n.sbk-section__accessory {\n display: flex;\n position: relative;\n margin: 0 0 4px 8px;\n}\n\n.sbk-section--stacked {\n flex-direction: column;\n}\n\n.sbk-section--stacked .sbk-section__accessory {\n margin: 4px 0;\n}\n","/* Values measured from Slack's Block Kit Builder for the `table` block. */\n:root,\n[data-theme=\"light\"] {\n --sbk-table-border: rgba(94, 93, 96, 0.13);\n}\n\n.sbk-table {\n padding: 4px 0;\n}\n\n/* Scrolls wide tables while the hover actions stay pinned to the visible corner. */\n.sbk-table__scroll {\n overflow: auto;\n}\n\n/* Separate borders (right + bottom on every cell, plus the outer top and left edges), as Slack\n draws them: collapsed borders land the rows on half pixels. */\n.sbk-table__table {\n border-collapse: separate;\n border-spacing: 0;\n font-size: 15px;\n line-height: 22px;\n}\n\n.sbk-table__thead,\n.sbk-table__tbody {\n background-color: var(--sbk-bg);\n}\n\n.sbk-table__th,\n.sbk-table__td {\n box-sizing: border-box;\n height: 28px;\n padding: 2px 12px 0;\n text-align: left;\n vertical-align: top;\n white-space: nowrap;\n border-right: 1px solid var(--sbk-table-border);\n border-bottom: 1px solid var(--sbk-table-border);\n}\n\n.sbk-table__table > :first-child > tr:first-child > * {\n border-top: 1px solid var(--sbk-table-border);\n}\n\n.sbk-table__table tr > :first-child {\n border-left: 1px solid var(--sbk-table-border);\n}\n\n.sbk-table__th {\n font-weight: 700;\n}\n\n.sbk-table__thead tr:first-child th:first-child {\n border-top-left-radius: 4px;\n}\n\n.sbk-table__thead tr:first-child th:last-child {\n border-top-right-radius: 4px;\n}\n\n.sbk-table__tbody tr:last-child td:first-child {\n border-bottom-left-radius: 4px;\n}\n\n.sbk-table__tbody tr:last-child td:last-child {\n border-bottom-right-radius: 4px;\n}\n",":root,\n[data-theme=\"light\"] {\n --sbk-task-card-text: rgb(94, 93, 96);\n}\n\n.sbk-task-card {\n display: flex;\n flex-direction: column;\n margin: 8px 0;\n}\n\n.sbk-task-card__pill {\n display: flex;\n align-self: flex-start;\n padding: 0;\n border: 0;\n background: transparent;\n border-radius: 12px;\n cursor: pointer;\n font: inherit;\n color: inherit;\n text-align: left;\n max-width: 100%;\n}\n\n/* Slack sets the toggle as inline text: the status icon hangs in a 20px indent and the icon and\n caret sit `vertical-align: middle` on the 13px title's line. */\n.sbk-task-card__pill-content {\n display: block;\n padding-left: 20px;\n text-indent: -20px;\n font-size: 15px;\n line-height: 22px;\n}\n\n/* Slack's `toggleBarButton`: a 6% tint on hover, an inset blue ring for keyboard focus. */\n.sbk-task-card__pill[aria-disabled=\"true\"] {\n cursor: default;\n}\n\n.sbk-task-card__pill:not([aria-disabled=\"true\"]):hover {\n background-color: var(--sbk-hover-overlay);\n}\n\n.sbk-task-card__pill:focus-visible {\n outline: 2px solid var(--sbk-focus-ring);\n outline-offset: -2px;\n}\n\n/* A 12px slot, as in Slack: the 13px check and warning overhang it rather than push the title. */\n.sbk-task-card__pill-icon {\n display: inline-flex;\n width: 12px;\n /* Slack's `middle` lands here; ours sits 0.5px lower and grows the 22px line box. */\n vertical-align: -2px;\n margin: 0 8px 0 0;\n font-size: 13px;\n line-height: normal;\n text-indent: 0;\n}\n\n.sbk-task-card__pill-title {\n font-size: 13px;\n /* Slack's is 19.5px, but with our Lato metrics that overhangs the 22px line by half a pixel. */\n line-height: 19px;\n color: var(--sbk-task-card-text);\n}\n\n.sbk-task-card__pill-chevron {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n margin-left: 4px;\n width: 13px;\n height: 13px;\n text-indent: 0;\n color: var(--sbk-task-card-text);\n}\n\n/* Slack's expanded card is a short timeline: the details, with a 1px rule 6px in from the left,\n then a step whose 5px dot and rule sit in a 12px rail 8px left of the output and sources. */\n.sbk-task-card__body {\n font-size: 13px;\n line-height: 19.0668px;\n color: var(--sbk-task-card-text);\n}\n\n.sbk-task-card__details {\n position: relative;\n padding: 0 20px;\n}\n\n.sbk-task-card__details::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 6px;\n width: 1px;\n background-color: var(--sbk-surface-ter);\n}\n\n/* Slack underlines the links inside a task's rich text. */\n.sbk-task-card__details .sbk-rtmini__link,\n.sbk-task-card__output .sbk-rtmini__link {\n text-decoration: underline;\n}\n\n.sbk-task-card__step {\n display: flex;\n gap: 8px;\n}\n\n.sbk-task-card__rail {\n display: flex;\n flex: 0 0 12px;\n flex-direction: column;\n align-items: center;\n margin-top: 7px;\n}\n\n.sbk-task-card__dot {\n display: flex;\n padding-bottom: 2px;\n}\n\n.sbk-task-card__line {\n flex: 1 1 auto;\n width: 1px;\n margin-top: 8px;\n background-color: var(--sbk-surface-ter);\n}\n\n.sbk-task-card__step-content {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.sbk-task-card__output {\n margin-bottom: 4px;\n}\n\n.sbk-task-card__sources {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.sbk-task-card__source-link {\n color: var(--sbk-link);\n text-decoration: none;\n}\n\n.sbk-task-card__source-link:hover {\n text-decoration: underline;\n}\n",".sbk-video {\n padding: 8px 0;\n max-width: 360px;\n line-height: 22px;\n}\n\n.sbk-video__byline {\n color: var(--sbk-muted);\n white-space: nowrap;\n}\n\n.sbk-video__provider-icon {\n width: 16px;\n height: 16px;\n margin: 0 8px 3px 0;\n border-radius: 2px;\n vertical-align: middle;\n}\n\n.sbk-video__provider {\n font-weight: 900;\n color: var(--sbk-text);\n}\n\n.sbk-video__separator {\n color: rgb(221, 221, 221);\n white-space: pre;\n}\n\n.sbk-video__description {\n color: var(--sbk-text);\n}\n\n.sbk-video__title {\n color: var(--sbk-link);\n}\n\n/* A plain `c-link`: underlined only on hover. */\n.sbk-video__title a {\n color: inherit;\n text-decoration: none;\n}\n\n.sbk-video__title a:hover {\n text-decoration: underline;\n}\n\n/* Slack's caret that expands the inline player. */\n.sbk-video__expand {\n display: inline-block;\n margin: -4px 0 0 3px;\n vertical-align: middle;\n line-height: 15px;\n}\n\n.sbk-video__frame {\n display: block;\n position: relative;\n /* Slack renders a fixed 360x283 box regardless of the thumbnail's own aspect ratio, letterboxing\n the thumbnail inside it. */\n width: 360px;\n height: 283px;\n max-width: 100%;\n background: #000;\n overflow: hidden;\n}\n\n/* Slack's p-video_overlay--controls: a bottom gradient fades in while hovered or focused. */\n.sbk-video__frame::before {\n content: \"\";\n position: absolute;\n inset: 0;\n z-index: 1;\n pointer-events: none;\n opacity: 0;\n background: linear-gradient(rgba(29, 28, 29, 0), rgba(29, 28, 29, 0.7) 70%);\n transition: opacity 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n.sbk-video__frame:hover::before,\n.sbk-video__frame:focus-within::before,\n.sbk-video__frame:focus-visible::before {\n opacity: 1;\n}\n\n.sbk-video__thumb {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.sbk-video__play {\n position: absolute;\n left: 16px;\n bottom: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n height: 30px;\n padding: 4px 8px 4px 6px;\n font-weight: 700;\n color: #fff;\n background: rgba(29, 28, 29, 0.8);\n border-radius: 4px;\n z-index: 2;\n transition:\n background 80ms cubic-bezier(0.36, 0.19, 0.29, 1),\n opacity 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n","/* Messages use Slack's small button variant. */\n.sbk-button {\n display: block;\n position: relative;\n height: 28px;\n min-width: 56px;\n padding: 0 8px 1px;\n border: 1px solid var(--sbk-button-border);\n border-radius: 4px;\n background: var(--sbk-bg);\n background-clip: padding-box;\n color: var(--sbk-text);\n font: 700 13px / normal var(--sbk-font);\n text-align: center;\n white-space: nowrap;\n cursor: pointer;\n appearance: none;\n transition:\n color 80ms,\n background-color 80ms,\n border-color 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n/* Slack's `c-button` hover model: outline buttons swap to a light gray fill, filled buttons\n darken through a `multiply` gradient overlay. Both raise a two-layer shadow on hover and drop\n it while pressed. Values read from the Block Kit Builder's live stylesheet. */\n.sbk-button:hover {\n background-color: var(--sbk-button-hover-bg);\n box-shadow: var(--sbk-button-hover-shadow);\n}\n\n.sbk-button:active {\n background-color: var(--sbk-button-hover-bg);\n box-shadow: none;\n}\n\n.sbk-button--primary,\n.sbk-button--danger {\n border: 0;\n color: #fff;\n}\n\n.sbk-button--primary {\n background: var(--sbk-primary);\n}\n\n.sbk-button--primary:hover,\n.sbk-button--primary:active,\n.sbk-button--danger:hover,\n.sbk-button--danger:active {\n background-image: linear-gradient(var(--sbk-button-overlay), var(--sbk-button-overlay));\n background-blend-mode: multiply;\n}\n\n.sbk-button--primary:hover {\n --sbk-button-overlay: #0a403221;\n background-color: var(--sbk-primary);\n}\n\n.sbk-button--primary:active {\n --sbk-button-overlay: #0a403238;\n background-color: var(--sbk-primary);\n}\n\n.sbk-button--danger {\n background: var(--sbk-danger);\n}\n\n.sbk-button--danger:hover {\n --sbk-button-overlay: #59000f17;\n background-color: var(--sbk-danger);\n}\n\n.sbk-button--danger:active {\n --sbk-button-overlay: #59000f38;\n background-color: var(--sbk-danger);\n}\n",".sbk-checkboxes {\n display: flex;\n flex-direction: column;\n /* Slack renders checkboxes inside a `<fieldset>` in every context (input, section accessory,\n actions), which carries a fixed ~24px bottom margin beyond the last option row — confirmed\n via inspect.ts against catalog/input/checkboxes, catalog/section/checkboxes, and\n catalog/actions/checkboxes (all measured 24px of trailing space). */\n margin-bottom: 24px;\n}\n\n.sbk-checkboxes__option {\n display: flex;\n align-items: flex-start;\n /* Slack's Builder packs option rows with zero gap between them — each row's own height (22px\n for a text-only option, 44px for a text+description option) sets the pitch on its own,\n confirmed via inspect.ts against the same three fixtures above. */\n line-height: 22px;\n cursor: pointer;\n}\n\n.sbk-checkboxes__input {\n appearance: none;\n flex: 0 0 auto;\n width: 14px;\n height: 14px;\n margin: 6px 4px 2px 4px;\n border: 1px solid var(--sbk-button-border);\n border-radius: 4px;\n background: var(--sbk-bg);\n cursor: pointer;\n position: relative;\n transition: 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n/* Slack's `.p-checkboxes_element .c-input_checkbox`: darker border plus a faint overlay on hover,\n a stronger overlay while pressed, and a 2px blue ring for keyboard focus. */\n.sbk-checkboxes__option:hover .sbk-checkboxes__input:not(:checked) {\n border-color: var(--sbk-outline-pry);\n background-image: linear-gradient(var(--sbk-interaction-hover), var(--sbk-interaction-hover));\n}\n\n.sbk-checkboxes__input:not(:checked):active {\n background-image: linear-gradient(var(--sbk-interaction-pressed), var(--sbk-interaction-pressed));\n}\n\n.sbk-checkboxes__input:focus-visible {\n outline: 2px solid var(--sbk-focus-ring);\n outline-offset: 1px;\n}\n\n/* Slack's checked box is solid blue with no border; hover/focus and press darken it with the same\n multiply overlays Slack's blue buttons use. */\n.sbk-checkboxes__input:checked {\n border-color: transparent;\n background-color: var(--sbk-checkbox-checked);\n}\n\n.sbk-checkboxes__option:hover .sbk-checkboxes__input:checked,\n.sbk-checkboxes__input:checked:focus-visible {\n background-image: linear-gradient(\n var(--sbk-checkbox-checked-hover),\n var(--sbk-checkbox-checked-hover)\n );\n background-blend-mode: var(--sbk-blend-interaction);\n}\n\n.sbk-checkboxes__input:checked:active {\n background-image: linear-gradient(\n var(--sbk-checkbox-checked-pressed),\n var(--sbk-checkbox-checked-pressed)\n );\n background-blend-mode: var(--sbk-blend-interaction);\n}\n\n.sbk-checkboxes__input:checked::after {\n content: \"\";\n position: absolute;\n left: 4px;\n top: 1px;\n width: 4px;\n height: 8px;\n border: solid var(--sbk-on-highlight);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n}\n\n.sbk-checkboxes__body {\n display: flex;\n flex-direction: column;\n /* Slack's c-label__text is nudged up a pixel with `position: relative; top: -1px`. */\n position: relative;\n top: -1px;\n}\n\n.sbk-checkboxes__description,\n.sbk-checkboxes__description .sbk-mrkdwn {\n color: var(--sbk-content-sec);\n}\n","/* Slack's `c-date_picker_calendar`. */\n.sbk-calendar {\n padding: 8px;\n font-family: var(--sbk-font);\n font-size: 15px;\n line-height: 20px;\n color: var(--sbk-text);\n}\n\n.sbk-calendar__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 32px;\n margin-bottom: 16px;\n font-weight: 700;\n}\n\n.sbk-calendar__nav {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: none;\n color: var(--sbk-text);\n cursor: pointer;\n transition-property: color, background-color;\n transition-duration: 80ms;\n transition-timing-function: cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n.sbk-calendar__nav:hover {\n background: rgba(29, 155, 209, 0.1);\n}\n\n.sbk-calendar__nav:active {\n background: var(--sbk-highlight);\n color: var(--sbk-on-highlight);\n}\n\n.sbk-calendar__weekdays,\n.sbk-calendar__grid {\n display: grid;\n /* 44px cells whose 1px borders overlap their neighbours (Slack's `margin: -1px`). */\n grid-template-columns: repeat(7, 43px);\n text-align: center;\n}\n\n.sbk-calendar__weekdays {\n padding-right: 1px;\n}\n\n.sbk-calendar__weekdays span {\n padding: 4px 0 6px;\n font-size: 13px;\n color: var(--sbk-content-sec);\n}\n\n.sbk-calendar__cell {\n position: relative;\n min-height: 42px;\n margin: 0 -1px -1px 0;\n padding: 10px 0;\n font: inherit;\n line-height: 20px;\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid var(--sbk-calendar-grid);\n cursor: pointer;\n}\n\n.sbk-calendar__cell--empty {\n border-color: transparent;\n background: none;\n cursor: default;\n}\n\n/* A light-blue wash with a matching border on hover, raised above its neighbours' borders. */\n.sbk-calendar__cell:hover:not(.sbk-calendar__cell--empty, .sbk-calendar__cell--selected) {\n z-index: 1;\n border-color: rgba(29, 155, 209, 0.3);\n background: rgba(29, 155, 209, 0.2);\n}\n\n.sbk-calendar__cell--today {\n color: var(--sbk-link);\n}\n\n/* Today gets a 32px ring centred in its cell (white when today is also selected). */\n.sbk-calendar__cell--today::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 32px;\n height: 32px;\n border: 1px solid var(--sbk-highlight);\n border-radius: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n}\n\n.sbk-calendar__cell--selected {\n z-index: 1;\n color: var(--sbk-on-highlight);\n background: var(--sbk-highlight);\n border-color: var(--sbk-highlight);\n border-radius: 4px;\n}\n\n.sbk-calendar__cell--selected.sbk-calendar__cell--today::after {\n border-color: var(--sbk-on-highlight);\n}\n\n.sbk-calendar__cell:focus-visible {\n z-index: 2;\n}\n\n/* Slack's `c-date_picker__clear_selection`: a full-width bold footer that turns blue on hover. */\n.sbk-calendar__footer {\n margin: 16px -16px -16px;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.sbk-calendar__clear {\n display: block;\n width: 100%;\n height: 44px;\n padding: 0;\n font: 700 15px var(--sbk-font);\n color: var(--sbk-text);\n background: none;\n border: none;\n border-radius: 0 0 6px 6px;\n cursor: pointer;\n}\n\n.sbk-calendar__clear:hover,\n.sbk-calendar__clear:focus-visible {\n color: var(--sbk-link);\n}\n","@import \"./calendar/Calendar.css\";\n\n.sbk-datepicker {\n position: relative;\n width: 194.5px;\n color: var(--sbk-muted);\n}\n\n.sbk-datepicker__input_wrap {\n position: relative;\n}\n\n/* Slack's glyph sits on an 18px text line centred in the 28px field; the line's baseline rounds\n to a whole pixel, which drops the icon 0.45px below its 13px em box's true centre. Chrome snaps\n `top` to whole pixels, so the last fraction goes in a transform, as Slack's text glyph isn't. */\n.sbk-datepicker__icon {\n position: absolute;\n left: 8px;\n top: 8px;\n transform: translateY(-0.1px);\n width: 13px;\n height: 13px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-datepicker__input {\n width: 100%;\n height: 28px;\n /* Slack's small c-input_text: 8px / 7px vertical padding around an 18px line. */\n padding: 8px 28px 7px;\n font: 13px / 18px var(--sbk-font);\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n cursor: pointer;\n}\n\n/* Slack's c-date_picker__select_btn: a 28px square on the right with a 20px chevron. */\n.sbk-datepicker__chevron {\n position: absolute;\n right: 4px;\n top: 4px;\n width: 20px;\n height: 20px;\n color: var(--sbk-content-sec);\n pointer-events: none;\n}\n\n.sbk-datepicker__input::placeholder {\n color: var(--sbk-muted);\n}\n\n.sbk-datepicker__popup {\n position: absolute;\n z-index: 10;\n top: 0;\n left: 0;\n /* Slack's datepicker dropdown: 16px padding, hairline ring plus a soft drop shadow. */\n padding: 16px;\n background: var(--sbk-menu-bg);\n border-radius: 6px;\n box-shadow: var(--sbk-popover-shadow);\n}\n",".sbk-datetimepicker {\n position: relative;\n display: block;\n width: 100%;\n}\n\n/* Slack's Builder renders a datetimepicker as two side-by-side boxes (date, then time) rather\n than a single combined control. */\n.sbk-datetimepicker__row {\n display: flex;\n gap: 8px;\n}\n\n/* The time zone caption sits under the time box only, so each box gets its own column. */\n.sbk-datetimepicker__column {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.sbk-datetimepicker__control {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n height: 36px;\n padding: 4px 7px 4px 11px;\n font: 15px var(--sbk-font);\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n cursor: pointer;\n}\n\n/* Slack's medium date input: the icon sits 12px in, the text 32px in, and the chevron is centred\n in a 36px button. Our border is inside the box, so each inset is 1px smaller here. */\n.sbk-datetimepicker__control--date {\n padding: 4px 7px 4px 11px;\n}\n\n/* Slack's medium time select: 12px side padding, text on a 22.5px line 33px in. */\n.sbk-datetimepicker__control--time {\n padding: 4px 11px;\n line-height: 22.5px;\n}\n\n.sbk-datetimepicker__icon {\n flex: 0 0 auto;\n width: 15px;\n height: 15px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-datetimepicker__value,\n.sbk-datetimepicker__placeholder {\n flex: 1;\n min-width: 0;\n text-align: left;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.sbk-datetimepicker__chevron {\n flex: 0 0 auto;\n width: 20px;\n height: 20px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-datetimepicker__placeholder {\n color: var(--sbk-muted);\n}\n\n.sbk-datetimepicker__timezone {\n margin: 4px 0 0;\n font-size: 13px;\n line-height: 18px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-datetimepicker__popup {\n position: absolute;\n z-index: 10;\n top: 0;\n left: 0;\n /* Slack's datepicker dropdown: 16px padding, hairline ring plus a soft drop shadow. */\n padding: 16px;\n background: var(--sbk-menu-bg);\n border-radius: 6px;\n box-shadow: var(--sbk-popover-shadow);\n}\n\n.sbk-datetimepicker__time-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px;\n border-top: 1px solid var(--sbk-border);\n}\n\n.sbk-datetimepicker__time-input {\n flex: 1;\n height: 28px;\n padding: 4px 8px;\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n font: 13px var(--sbk-font);\n}\n\n.sbk-datetimepicker__apply {\n height: 28px;\n padding: 0 12px;\n border: 0;\n border-radius: 4px;\n background: var(--sbk-primary);\n color: #fff;\n font: 700 13px var(--sbk-font);\n cursor: pointer;\n}\n\n.sbk-datetimepicker__apply:disabled {\n opacity: 0.5;\n cursor: default;\n}\n",".sbk-feedback-buttons {\n display: inline-flex;\n align-items: center;\n}\n\n.sbk-icon-button--active {\n color: var(--sbk-primary);\n background: var(--sbk-badge-bg);\n}\n",".sbk-file-input {\n /* Slack renders a `file_input` element inside a `<fieldset>` that carries its own\n margin-bottom (~20px), on top of the label/hint spacing every other Input-block element\n shares — confirmed via inspect.ts against extra/modal/rich-and-file's reference. */\n margin-bottom: 20px;\n}\n\n.sbk-file-input__button {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n height: 36px;\n min-width: 80px;\n padding: 0 12px 1px;\n border: 1px solid var(--sbk-button-border);\n border-radius: 8px;\n background: var(--sbk-bg);\n color: var(--sbk-text);\n font: 700 15px var(--sbk-font);\n cursor: pointer;\n}\n\n.sbk-file-input__button svg {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n}\n\n.sbk-file-input__native {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n opacity: 0;\n}\n\n.sbk-file-input__list {\n list-style: none;\n margin: 8px 0 0;\n padding: 0;\n}\n\n.sbk-file-input__item {\n font-size: 13px;\n color: var(--sbk-text);\n padding: 2px 0;\n}\n",".sbk-icon-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n background: none;\n border-radius: 8px;\n color: rgb(69, 68, 71);\n cursor: pointer;\n transition-property: color, background-color, border-color;\n transition-duration: 80ms;\n transition-timing-function: cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n/* Slack's `c-icon_button--default`: solid gray fill and full-strength text on hover, a darker\n multiply overlay while pressed. */\n.sbk-icon-button:hover,\n.sbk-icon-button:active {\n color: var(--sbk-text);\n background-color: var(--sbk-icon-button-hover-bg);\n}\n\n.sbk-icon-button:active {\n background-image: linear-gradient(var(--sbk-interaction-pressed), var(--sbk-interaction-pressed));\n background-blend-mode: var(--sbk-blend-interaction);\n}\n\n.sbk-icon-button svg {\n width: 18px;\n height: 18px;\n}\n",".sbk-section__accessory--image {\n margin-left: 12px;\n}\n\n.sbk-image-element {\n display: block;\n width: 88px;\n height: 88px;\n border-radius: 8px;\n object-fit: cover;\n}\n",".sbk-overflow {\n position: relative;\n display: inline-block;\n}\n\n.sbk-overflow__button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 28px;\n padding: 0 7px 1px;\n background: var(--sbk-bg);\n border: 1px solid var(--sbk-button-border);\n border-radius: 4px;\n color: var(--sbk-text);\n cursor: pointer;\n}\n\n/* The trigger is a small outline `c-button` in Slack, so it shares Button.css's hover. */\n.sbk-overflow__button:hover {\n background: var(--sbk-button-hover-bg);\n box-shadow: var(--sbk-button-hover-shadow);\n}\n\n.sbk-overflow__button:active {\n box-shadow: none;\n}\n\n.sbk-overflow__menu {\n position: absolute;\n z-index: 10;\n top: 0;\n right: 0;\n /* Slack's `c-menu`: 200-300px wide, hairline ring plus drop shadow, 12px list padding. */\n min-width: 200px;\n max-width: 300px;\n width: max-content;\n padding: 12px 0;\n background: var(--sbk-menu-bg);\n border-radius: 4px;\n box-shadow: var(--sbk-menu-shadow);\n}\n\n/* `c-menu_item__button`: 15px text on a 28px line, 24px side padding. */\n.sbk-overflow__option {\n min-height: 28px;\n padding: 0 24px;\n font: 15px / 28px var(--sbk-font);\n color: var(--sbk-text);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n}\n\n/* Highlighted (pointer or keyboard) `c-menu_item__button`: white on blue. */\n.sbk-overflow__option[data-active] {\n color: var(--sbk-menu-highlight-text);\n background: var(--sbk-menu-highlight-bg);\n}\n",".sbk-radio-buttons {\n display: flex;\n flex-direction: column;\n /* ~24px of trailing space below the last option in every context (actions, section accessory,\n input), matching checkboxes. Confirmed against catalog/{actions,section,input}/radio-buttons. */\n margin-bottom: 24px;\n}\n\n.sbk-radio-buttons__option {\n display: flex;\n align-items: flex-start;\n /* Zero gap between option rows — each row's own height (22px text-only, 44px with a\n description) sets the pitch, confirmed via inspect.ts against the same fixtures above. */\n line-height: 22px;\n cursor: pointer;\n}\n\n.sbk-radio-buttons__input {\n flex: 0 0 auto;\n width: 13px;\n height: 13px;\n margin: 7px 7px 0 5px;\n accent-color: #000;\n cursor: pointer;\n}\n\n.sbk-radio-buttons__body {\n display: flex;\n flex-direction: column;\n /* Slack's c-label__text is nudged up a pixel with `position: relative; top: -1px`. */\n position: relative;\n top: -1px;\n}\n\n.sbk-radio-buttons__description,\n.sbk-radio-buttons__description .sbk-mrkdwn {\n color: var(--sbk-content-sec);\n}\n","/* Slack's modal rich-text editor: a grey formatting toolbar over a text area, in a box that\n measures 118px tall in the reference (the Aa/emoji button row Slack draws below it overflows\n that frozen box in the capture, so it's left out). */\n.sbk-rich-text-input {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 118px;\n background: var(--sbk-bg);\n border: 1px solid rgba(29, 28, 29, 0.13);\n border-radius: 4px;\n}\n\n.sbk-rich-text-input__toolbar {\n display: flex;\n align-items: center;\n height: 38px;\n padding: 4px;\n background: #f8f8f8;\n border-radius: 8px 8px 0 0;\n}\n\n.sbk-rich-text-input__tool {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n /* Slack's buttons carry no bottom margin, so they sit 2px down the 30px bar, not centred in it. */\n margin: 2px 2px 0;\n color: rgba(29, 28, 29, 0.7);\n opacity: 0.3;\n}\n\n.sbk-rich-text-input__separator {\n width: 1px;\n height: 20px;\n margin: 0 4px;\n background: rgba(29, 28, 29, 0.13);\n}\n\n.sbk-rich-text-input__editor {\n flex: 1;\n padding: 8px 12px;\n font: 15px / 22px var(--sbk-font);\n color: var(--sbk-text);\n overflow-y: auto;\n outline: none;\n}\n\n.sbk-rich-text-input__editor:empty::before {\n content: attr(data-placeholder);\n color: var(--sbk-muted);\n}\n",".sbk-select {\n position: relative;\n width: 190px;\n}\n\n.sbk-select__control {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n height: 28px;\n padding: 4px 8px;\n font: 13px var(--sbk-font);\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n cursor: pointer;\n}\n\n/* In an input block, Slack's multi-select closed control uses a taller (36px) box than a\n single-select's (28px), to give its chip row breathing room, even with no chips selected yet.\n As a section/actions accessory it stays a 28px button. */\n.sbk-input__element .sbk-select--multi .sbk-select__control {\n height: 36px;\n padding: 4px 28px 4px 12px;\n font-size: 15px;\n line-height: 22px;\n}\n\n/* With chips it grows to fit their rows: each chip sits 4px in from the box and the one above. */\n.sbk-input__element .sbk-select--chips .sbk-select__control {\n height: auto;\n min-height: 36px;\n align-items: flex-start;\n padding: 0 28px 4px 4px;\n}\n\n/* Slack's p-block_kit_max_selected_items__info, tucked into the label's 8px bottom padding. */\n.sbk-select__max-info {\n display: none;\n}\n\n.sbk-input__element .sbk-select__max-info {\n display: block;\n margin: -8px 0 8px;\n font-size: 15px;\n line-height: 22px;\n color: rgb(97, 96, 97);\n}\n\n/* Its closed input-block box is a text field, not a dropdown: no chevron, 15px placeholder. */\n.sbk-input__element .sbk-select--multi .sbk-select__placeholder {\n color: rgb(94, 93, 96);\n}\n\n.sbk-input__element .sbk-select--multi .sbk-select__chevron {\n display: none;\n}\n\n/* As a section accessory, Slack collapses a multi-select into a content-sized outline button\n (\"Select conversations\") that opens the picker, rather than a 190px select with a chevron. */\n.sbk-section__accessory .sbk-select--multi {\n width: auto;\n}\n\n.sbk-section__accessory .sbk-select--multi .sbk-select__control {\n padding: 0 12px 1px;\n font-weight: 700;\n border-color: rgba(94, 93, 96, 0.45);\n border-radius: 4px;\n}\n\n.sbk-section__accessory .sbk-select--multi .sbk-select__placeholder {\n color: var(--sbk-text);\n}\n\n.sbk-section__accessory .sbk-select--multi .sbk-select__chevron {\n display: none;\n}\n\n/* Slack's Builder uses a taller \"medium\" control (with 15px text) on a modal/Home tab surface than the\n message-surface preview's 28px \"small\" control. */\n.sbk-select--medium .sbk-select__control {\n height: 36px;\n padding: 4px 12px;\n font-size: 15px;\n}\n\n/* Slack's single select is a full-width text input with the chevron laid over its right edge, so\n the text runs under the chevron and only truncates at the input's own 8px padding. */\n.sbk-select:not(.sbk-select--multi) :is(.sbk-select__value, .sbk-select__placeholder) {\n margin-right: -28px;\n}\n\n.sbk-select__value,\n.sbk-select__placeholder {\n flex: 1;\n text-align: left;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.sbk-select__placeholder {\n color: var(--sbk-muted);\n}\n\n/* Slack draws a chosen value in an unbordered layer 8px in, and its chevron 28px from the right;\n our border sits inside the control, so pull both 1px outwards. The placeholder keeps the\n border's inset, as Slack's lives in the bordered <input>. */\n.sbk-select__value {\n margin-left: -1px;\n}\n\n.sbk-select__chevron {\n margin-right: -1px;\n}\n\n/* An id Slack couldn't resolve: c-small_channel_entity with a c-missing_channel--private pill. */\n.sbk-select__entity {\n display: flex;\n align-items: center;\n height: 20px;\n line-height: 20px;\n}\n\n.sbk-select__channel-hash {\n flex: 0 0 auto;\n margin-right: 8px;\n}\n\n.sbk-select__entity-text {\n display: flow-root;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.sbk-select__missing-channel {\n padding: 0 2px 1px 0;\n color: rgba(29, 28, 29, 0.7);\n background: rgba(29, 28, 29, 0.13);\n border-radius: 3px;\n}\n\n.sbk-select__missing-channel svg {\n display: inline-block;\n vertical-align: -1.625px;\n}\n\n/* ... and c-small_member_list_entity while the member loads: a blank avatar and a name bar,\n clipped square where the name's box ends. */\n.sbk-select__skeleton {\n display: flex;\n align-items: center;\n height: 20px;\n}\n\n.sbk-select__skeleton-avatar {\n flex: 0 0 auto;\n width: 20px;\n height: 20px;\n margin: 0 8px 0 6px;\n background: rgb(234, 234, 234);\n border-radius: clamp(4px, min(22.222%, 12px), 12px);\n}\n\n.sbk-select__skeleton-name {\n flex: 0 0 auto;\n width: 109px;\n height: 8px;\n margin-top: 2px;\n overflow: hidden;\n}\n\n.sbk-select__skeleton-name::before {\n content: \"\";\n display: block;\n width: 120px;\n height: 8px;\n background: rgb(234, 234, 234);\n border-radius: 1000px;\n}\n\n.sbk-select__chevron {\n flex: 0 0 auto;\n width: 20px;\n height: 20px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-select__chips {\n display: flex;\n flex-wrap: wrap;\n flex: 1;\n min-width: 0;\n}\n\n/* Slack's c-token--medium: a 28px pale-blue tag with a bold 15px label and an 18px \"x\". */\n.sbk-select__chip {\n display: flex;\n align-items: center;\n margin: 4px 0 0 4px;\n padding: 0 4px 0 0;\n font-size: 18px;\n font-weight: 700;\n line-height: 26.4px;\n white-space: nowrap;\n color: var(--sbk-text);\n background: rgba(54, 197, 240, 0.13);\n border: 1px solid transparent;\n border-radius: 4px;\n}\n\n.sbk-select__chip-label {\n display: flex;\n padding: 0 4px;\n}\n\n/* The label is a flow-root on the chip's 18px strut, so 15px text makes its line 27px tall. */\n.sbk-select__chip-text {\n display: flow-root;\n overflow: hidden;\n}\n\n.sbk-select__chip-text > span {\n font-size: 15px;\n line-height: 26px;\n}\n\n.sbk-select__chip-entity {\n align-items: center;\n font-size: 15px;\n line-height: 26px;\n}\n\n.sbk-select__chip-entity .sbk-select__channel-hash {\n margin-right: 2px;\n}\n\n.sbk-select__chip-entity .sbk-select__missing-channel svg {\n width: 15px;\n height: 15px;\n vertical-align: -1.875px;\n}\n\n.sbk-select__chip-remove {\n display: flex;\n cursor: pointer;\n}\n\n.sbk-select__menu {\n position: absolute;\n z-index: 10;\n top: 0;\n left: 0;\n width: max(100%, 240px);\n max-height: 280px;\n overflow-y: auto;\n /* Slack's `c-select_options_list`: a hairline ring plus a soft drop shadow, no border. */\n background: var(--sbk-menu-bg);\n border-radius: 4px;\n box-shadow:\n 0 0 0 1px rgba(29, 28, 29, 0.13),\n 0 5px 10px rgba(0, 0, 0, 0.12);\n padding: 12px 0;\n}\n\n.sbk-select__search {\n display: flex;\n align-items: center;\n gap: 6px;\n margin: -4px 0 8px;\n padding: 0 24px 8px;\n border-bottom: 1px solid var(--sbk-border);\n color: var(--sbk-muted);\n}\n\n.sbk-select__search-input {\n flex: 1;\n border: none;\n outline: none;\n font: 13px var(--sbk-font);\n color: var(--sbk-text);\n}\n\n/* Slack's `c-menu_item__header`. */\n.sbk-select__group-label {\n padding: 4px 24px;\n font-size: 13px;\n line-height: 1.38463;\n color: var(--sbk-menu-secondary-text);\n}\n\n.sbk-select__group + .sbk-select__group {\n margin-top: 8px;\n}\n\n/* Slack's `c-select_options_list__option`: 15px rows, 24px side padding, 28px minimum height. */\n.sbk-select__option {\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: 28px;\n padding: 0 24px;\n font: 15px / 1.46668 var(--sbk-font);\n color: var(--sbk-text);\n cursor: pointer;\n}\n\n.sbk-select__option:has(.sbk-select__option-description) {\n padding-top: 4px;\n padding-bottom: 4px;\n}\n\n/* `--active` (pointer or keyboard highlight) inverts to white on blue; the chosen option keeps its\n row but turns blue. */\n.sbk-select__option--selected {\n color: var(--sbk-menu-selected-text);\n}\n\n.sbk-select__option[data-active] {\n color: var(--sbk-menu-highlight-text);\n background: var(--sbk-menu-highlight-bg);\n}\n\n.sbk-select__option[data-active] .sbk-select__option-description {\n color: inherit;\n}\n\n.sbk-select__option-description {\n margin-top: -2px;\n font-size: 13px;\n line-height: 1.25;\n color: var(--sbk-menu-secondary-text);\n}\n\n/* An external select's \"Loading…\" / \"No results\" row while it waits on the app's options. */\n.sbk-select__status {\n display: flex;\n align-items: center;\n min-height: 28px;\n padding: 0 24px;\n font: 15px / 1.46668 var(--sbk-font);\n color: var(--sbk-muted);\n}\n",".sbk-text-input {\n width: 100%;\n height: 28px;\n padding: 8px 8px 7px;\n font: 13px / 18px var(--sbk-font);\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n}\n\n.sbk-text-input::placeholder {\n color: var(--sbk-muted);\n}\n\n/* Slack's Builder uses a taller \"medium\" control on a modal/Home tab surface (36px, more\n horizontal padding, 15px text) instead of the message-surface preview's 28px \"small\" control. */\n.sbk-text-input--medium {\n height: 36px;\n padding: 4px 12px;\n font-size: 15px;\n}\n\n.sbk-text-input__wrap .sbk-text-input.sbk-text-input--medium {\n padding-left: 32px;\n}\n\n/* Slack's textarea is 104px tall on every surface, with less padding below the text than above.\n Block-level, so no inline baseline gap opens up under it. */\n.sbk-text-input--multiline {\n display: block;\n height: auto;\n min-height: 104px;\n padding: 8px 12px 4px;\n font-size: 15px;\n line-height: 22px;\n resize: vertical;\n}\n\n.sbk-text-input__wrap {\n position: relative;\n}\n\n.sbk-text-input__wrap .sbk-text-input {\n padding-left: 28px;\n}\n\n.sbk-text-input__icon {\n position: absolute;\n left: 8px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--sbk-muted);\n pointer-events: none;\n}\n",".sbk-timepicker {\n position: relative;\n width: 190px;\n}\n\n.sbk-timepicker__control {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n height: 28px;\n /* Slack's c-select_input--small pads 4px 8px outside a drawn ring; our border sits inside the\n box, so trim it from the padding to land the icon, text and chevron on the same pixels. */\n padding: 3px 7px;\n font: 13px / 19.5px var(--sbk-font);\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n cursor: pointer;\n}\n\n.sbk-timepicker__icon {\n flex: 0 0 auto;\n width: 13px;\n height: 20px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-timepicker__value,\n.sbk-timepicker__placeholder {\n flex: 1;\n text-align: left;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.sbk-timepicker__placeholder {\n color: var(--sbk-muted);\n}\n\n.sbk-timepicker__chevron {\n flex: 0 0 auto;\n width: 20px;\n height: 20px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-timepicker__menu {\n position: absolute;\n z-index: 10;\n top: 0;\n left: 0;\n width: 100%;\n max-height: 240px;\n overflow-y: auto;\n padding: 12px 0;\n background: var(--sbk-menu-bg);\n border-radius: 4px;\n box-shadow:\n 0 0 0 1px rgba(29, 28, 29, 0.13),\n 0 5px 10px rgba(0, 0, 0, 0.12);\n}\n\n/* Same `c-select_options_list__option` rows as Select.css. */\n.sbk-timepicker__option {\n display: flex;\n align-items: center;\n min-height: 28px;\n padding: 0 24px;\n font: 15px / 1.46668 var(--sbk-font);\n color: var(--sbk-text);\n cursor: pointer;\n}\n\n.sbk-timepicker__option--selected {\n color: var(--sbk-menu-selected-text);\n}\n\n.sbk-timepicker__option[data-active] {\n color: var(--sbk-menu-highlight-text);\n background: var(--sbk-menu-highlight-bg);\n}\n\n.sbk-timepicker__hint {\n margin-top: 4px;\n font-size: 12px;\n color: var(--sbk-muted);\n}\n",".sbk-workflow-button {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.sbk-workflow-button__icon {\n width: 14px;\n height: 14px;\n flex: none;\n}\n"],"names":[],"mappings":"ACCA,2BAEE,+EACA,kDACA,gGAEA,mBACA,mBACA,+BACA,kCACA,sCACA,wBACA,0BACA,sCACA,2BACA,6CACA,8CACA,wCACA,cACA,oBACA,yBACA,mCACA,iCACA,kCACA,wCACA,sBACA,4BACA,qBACA,2BAGA,8BACA,uFACA,mCACA,wCACA,2BACA,4CACA,wCACA,gCACA,+BACA,yBACA,iCACA,+BACA,uCACA,yCAEA,mBACA,8EACA,iCACA,yCACA,kCACA,iFACA,4BAEA,yBACA,wBAIA,0BACA,0BACA,wBACA,0BACA,0BACA,0BACA,sCACA,kCACA,oCACA,wBACA,wBACA,iCACA,qCACA,iCACA,gCACF,CAEA,UACE,4BACA,eACA,iBACA,sBACA,wCACA,kCACA,kCACF,CAQA,kRAIE,UACF,CAEA,mGAEE,eACA,sBACA,iBACA,cACA,eACA,cACA,gBACF,CAEA,mDAGE,qBACF,CAEA,iBACE,qBACA,gBACA,+BACA,uBACA,oCACA,iBACF,CAEA,YACE,4BACA,eACA,iBACA,sBACA,sBACF,CAEA,kBACE,iCACA,eACA,iBACA,2BACA,8BACA,wCACA,kBACA,mBACF,CAEA,iBACE,cACA,iCACA,eACA,oBACA,8BACA,wCACA,kBACA,YACA,aACA,oBACF,CAEA,mBACE,aACA,kBACA,iBACF,CAEA,2BACE,WACA,kBACA,iBACA,UACA,kBACA,+BACF,CAEA,UACE,sBACA,yBACF,CAEA,aACE,8BACA,iCACA,kBACA,iBACF,CAEA,mBACE,oCACA,sCACF,CAGA,cACE,oBACF,CAEA,yBACE,qBACA,sBACA,YACA,WACA,kCACA,oBACF,CAEA,wBACE,sBACA,mCACA,kBACA,gBACA,eACF,CAEA,sBACE,eACA,sCACA,yCACA,kBACA,mBACF,CAGA,wBACE,qBACA,WACA,YACA,uBACF,CAEA,sBACE,qBACA,sBACA,YACA,WACA,sCACA,oBACF,CAEA,WACE,oBACA,kBACA,mBACA,kBACF,CAEA,gBACE,cACA,kBACA,kBACF,CAKA,cACE,kBACA,cACA,uBACF,CAGA,aACE,kBACA,qBACA,aACF,CAEA,kBACE,kBACA,MACA,OACA,cACA,WACA,YACA,yBACA,0EACF,CAEA,mBACE,2DACF,CAEA,iBACE,UACA,gCACA,iBACA,YACF,CAEA,mBACE,UACA,oBACA,iBACA,wBACA,uBACA,oBACF,CAEA,4BACE,GACE,sBACF,CACA,KACE,wBACF,CACF,CAKA,UACE,sHAGA,6IAGF,CAEA,uKAOE,wDAGF,CAEA,6XAUE,aACA,yBACA,kCACF,CAEA,gFAEE,yBACA,0CACF,CAEA,6EAEE,4BACF,CAEA,iVAUE,aACA,kCACF,CAGA,0EAEE,kCACF,CAIA,uCACE,kBACE,uBACF,CAEA,cACE,eACF,CACF,CAGA,aACE,eACA,aACA,gBACA,iBACA,4BACA,eACA,gBACA,oBACA,kBACA,yBACA,8BACA,iCACA,kBACA,oBACA,kCACF,CAEA,oBACE,kBACA,SACA,UACA,WACA,mBACA,iCACA,kBACA,uBACF,CAEA,sCACE,WACF,CAEA,yCACE,QACF,CAEA,wBACE,cACA,gBACA,2BACF,CAIA,aACE,eACA,YACF,CEnbA,WACE,aACA,sBACA,YACA,eAEA,2BACA,yBACA,kBACA,mEAGA,eACF,CAEA,mBACE,kBACA,aACA,uBACA,8BACA,cACA,iBACF,CAEA,sBACE,aACA,mBACA,cACA,WACF,CAEA,iBACE,cACA,WACA,YACA,kBACA,kBACA,gBACF,CAEA,kBACE,cACA,YACA,SACA,eACA,gBACA,iBACA,gBACA,uBACA,kBACF,CAEA,kBACE,aACA,cACA,mBACA,gBACA,YACA,iBACA,UACA,YACA,kBACA,gBACA,4BACA,cACF,CAEA,wBACE,0CACF,CAIA,iBACE,cACA,2BACA,mCACA,oBACF,CAEA,oCACE,SACF,CAEA,qFAEE,sBACF,CAEA,0CACE,gBACA,uBACA,4BACA,6BACA,iBACF,CAEA,gDACE,oCACF,CAMA,uBACE,QACF,CAGA,wBACE,QACF,CAGA,2BACE,kBACF,CAEA,mBACE,aACA,mBACA,yBACA,SACA,cACA,kBACA,sCACF,CAIA,mBACE,YACA,eACA,mBACA,kBACA,0CACA,yBACA,sBACA,aACA,gBACA,eACA,eACA,4FAIF,CAGA,yBACE,yCACF,CAEA,0BACE,eACF,CAEA,4BACE,yBACA,8BACA,UACF,CAEA,qEAEE,sFACA,8BACF,CAEA,kCACE,8BACF,CAEA,mCACE,8BACF,CAEA,yEAEE,2CACF,CAEA,UACE,gBACA,cACA,wBACF,CAEA,gBACE,aACA,qBACA,YACA,yCACF,CAEA,eACE,aACA,mBACA,QACA,YACA,iBACA,gBAEA,yCACF,CAGA,sBACE,YACA,eACA,iBACF,CAEA,gCACE,WACA,YACA,iBACF,CAEA,mBACE,YACF,CAGA,iBACE,eACA,QACA,aACA,aACA,mBACA,uBACA,aACA,0BACF,CAEA,uBACE,aACA,uBACA,WACA,eACF,CAEA,+BACE,YACF,CDpPA,aACE,aACA,wBACF,CAEA,qBACE,cACA,cACA,WACA,YACA,iBACA,gBACF,CAEA,kCACE,aACA,mBACA,kBACA,mBACA,WACA,eACF,CAEA,sBACE,WACA,YACA,aACF,CAEA,qBACE,aACA,mBACA,WACF,CAEA,qBACE,iBACA,eACF,CAEA,oBACE,iBACA,gBACA,kBACA,eACA,mBACA,gBACA,4BACA,8BACF,CAEA,mBACE,iBACA,eACA,mBACA,sBACF,CAEA,YACE,aACA,sBACA,OACF,CAEA,qBACE,eACA,sBACF,CAEA,wBACE,aACA,mBACA,eACA,eACA,sBACF,CAGA,iBACE,aACA,sBACA,QACA,cACF,CAEA,gBACE,aACA,wCACA,iBACF,CAEA,sBACE,WACA,YACA,iBACA,mCACA,iBACA,yBACF,CAEA,yBACE,iBACF,CAEA,wBACE,aACA,mBACA,QACA,kBACA,eACF,CAEA,6BACE,WACA,YACA,iBACF,CAEA,uBACE,kBACA,gBACA,qBACF,CAEA,wBACE,aACA,eACA,QACA,cACF,CAEA,uBACE,aACF,CAEA,8BACE,yBACA,eACF,CAEA,6BACE,eACF,CAEA,uBACE,cACA,gBACA,eACA,iBACF,CAEA,wBACE,aACA,mBACA,QACA,eACA,eACA,sBACF,CAEA,6BACE,WACA,YACA,iBACF,CAGA,eACE,aACA,eACA,QACA,cACF,CAEA,qBACE,oBACA,mBACA,QACA,gBACA,mCACA,mBACA,+BACA,eACA,cACF,CAEA,sBACE,sBACA,eACF,CAGA,oBACE,aACA,mBACA,QACA,eACA,cACA,YACA,gBACA,sBACA,aACA,gBACA,cACF,CAEA,gCACE,yBACA,aACF,CASA,mCACE,gCACE,mBACA,mBACA,wBACA,qCACA,4BACA,0BACA,0BACA,2BACA,2BACA,gDACA,iDACA,6BACA,iBACA,oBACA,yBACA,yBACA,uBACA,wBACA,8BACA,sBACA,4BACA,qBACA,2BACA,8BACA,mFACA,qCACA,8BACA,6BACA,iCACA,0CACA,gCACA,kCACA,yBACA,iCACA,+BACA,uCACA,yCACA,sBACA,oEACA,iCACA,+BACA,kCACA,uEACA,4BACA,yBACA,2BACA,0BACA,0BACA,2BACA,0BACA,0BACA,0BACA,4BACA,kCACA,oCACA,wBACA,2BACA,gCACA,8BACA,iCACA,iCACA,2EACA,6BACA,+BACA,2BACA,8BACA,+BACA,gCACA,wBACA,6BACA,iCACA,iCACA,8BACA,iCACA,+BACA,iCACA,+BACA,+BACA,8BACA,6BACA,gCACA,gCACA,8BACA,2BACA,2BACA,2BACA,0BACF,CACF,CAEA,6CAEE,mBACA,mBACA,wBACA,qCACA,4BACA,0BACA,0BACA,2BACA,2BACA,gDACA,iDACA,6BACA,iBACA,oBACA,yBACA,yBACA,uBACA,wBACA,8BACA,sBACA,4BACA,qBACA,2BACA,8BACA,mFACA,qCACA,8BACA,6BACA,iCACA,0CACA,gCACA,kCACA,yBACA,iCACA,+BACA,uCACA,yCACA,sBACA,oEACA,iCACA,+BACA,kCACA,uEACA,4BACA,yBACA,2BACA,0BACA,0BACA,2BACA,0BACA,0BACA,0BACA,4BACA,kCACA,oCACA,wBACA,2BACA,gCACA,8BACA,iCACA,iCACA,2EACA,6BACA,+BACA,2BACA,8BACA,+BACA,gCACA,wBACA,6BACA,iCACA,iCACA,8BACA,iCACA,+BACA,iCACA,+BACA,+BACA,8BACA,6BACA,gCACA,gCACA,8BACA,2BACA,2BACA,2BACA,0BACF,CEhZA,mBACE,cACF,CAEA,iCACE,aACA,kCACF,CAEA,kBACE,eACA,aACA,aACA,SACA,YACA,aACA,sBACA,8BACA,kBACA,oCACF,CAEA,0BACE,cACA,WACA,YACA,kBACA,gBACF,CAEA,uCACE,aACA,mBACA,uBACA,8BACA,gCACA,eACA,eACF,CAEA,wBACE,YACA,aACA,sBACA,OACF,CAEA,wBACE,eACA,gBACA,oBACA,sBACF,CAEA,4BACE,gBACA,6BACA,eACA,eACF,CAEA,6BACE,6BACA,eACA,gBACF,CAEA,0BACE,aACA,mBACA,QACA,eACA,gBACF,CAEA,wBACE,6BACA,eACA,gBACF,CAIA,6BACE,cACA,oBACF,CAEA,mCACE,yBACF,CC5FA,sBACE,eACA,QACA,aACA,mBACA,uBACA,2BACA,YACF,CAEA,aACE,YACA,6BACA,yBACA,kBACA,kEAGA,aACA,2BACF,CAEA,oBACE,eACA,eACA,gBACA,qBACF,CAEA,mBACE,eACA,iBACA,sBACA,kBACF,CAEA,sBACE,aACA,yBACA,OACF,CAEA,qBACE,YACA,eACA,kBACA,0CACA,yBACA,sBACA,8BACA,cACF,CAEA,8BACE,SACA,8BACA,UACF,CAEA,6BACE,SACA,6BACA,UACF,CC5DA,wBACE,iBACF,CAGA,6BACE,kBACA,cACF,CAEA,mBACE,kBACA,UACA,SACA,WACA,aACA,YACA,8BACA,mBACA,2CACA,UACA,mBACF,CAEA,wJAGE,UACA,mBACF,CAEA,0BACE,SACA,UACF,CAEA,0BACE,SACA,UACF,CAEA,2BACE,aACA,mBACA,uBACA,WACA,YACA,UACA,SACA,kBACA,uBACA,oCACA,eACA,eACA,mGAGF,CAEA,4BACE,4BACF,CAEA,kFAEE,mCACA,qBACF,CAEA,yCACE,aACA,kCACF,CAEA,8BACE,iBACF,CC/EA,aACE,aACA,eACA,cACF,CAEA,qBACE,kBACF,CAIA,iCACE,cACA,UACF,CCbA,2BAEE,wCACA,uCACA,0CACA,sCACA,4CACA,uCACA,4CACA,sCACA,6CACA,sCACF,CAEA,WACE,aACA,aACA,kBACA,6BACA,iBACF,CAEA,iBACE,cACA,mBACF,CAEA,oBACE,YACA,sBACF,CAGA,8BACE,cACA,yBACF,CAEA,oBACE,sCACF,CACA,qCACE,mCACF,CACA,iBACE,mCACF,CACA,kCACE,gCACF,CACA,oBACE,sCACF,CACA,qCACE,mCACF,CACA,kBACE,oCACF,CACA,mCACE,iCACF,CACA,oBACE,sCACF,CACA,qCACE,mCACF,CClEA,2BAEE,yCACA,+BACA,8BACA,6BACA,gCACA,gCACA,6BACF,CAEA,aACE,aACA,2CACA,mBACA,eACF,CAEA,sCACE,YACF,CAEA,qCACE,eACF,CAIA,4BACE,aACA,sBACA,OACF,CAEA,8CACE,YACF,CAIA,uCACE,iBACF,CAGA,mEACE,iBACF,CClDA,UACE,YACF,CAEA,eACE,YACA,eACA,yBACA,qCACA,mBACA,eACF,CAEA,mBACE,aACA,sBACA,SACA,YACF,CAEA,gBACE,cACA,WACA,YACA,kBACA,gBACF,CAEA,kBACE,aAEA,mBACA,QACF,CAEA,gBACE,cACA,cACA,WACA,YACA,kBACA,gBACF,CAGA,uBACE,aACA,mBACA,uBACA,qBACF,CAEA,0BACE,aACA,mBACA,uBACA,+BACA,sBACF,CAEA,kBACE,WACA,WACF,CAEA,iBACE,gBACA,mBACA,gBACA,uBACA,kBACF,CAMA,8DAEE,eACA,kBACF,CAEA,oBACE,eACA,oBACA,oBACA,gBACA,uBACA,kBACF,CAEA,oEAEE,eACA,oBACA,aACF,CAEA,gBACE,gBACF,CAEA,mBACE,eACA,iBACA,sBACF,CAEA,kEAEE,eACA,iBACA,aACF,CAEA,mBACE,aACA,OACF,CAGA,+BACE,WACF,CAEA,yBACE,aACA,OACA,OACF,CClIA,cACE,kBACA,YACF,CAEA,wBACE,aACA,SACA,gBAGA,qBACA,6BACA,kBACA,kBACF,CAEA,oBACE,cACA,uBACF,CAEA,8BACE,QACF,CAEA,qBACE,aACA,mBACA,uBACA,kBACA,QACA,4BACA,WACA,YACA,UACA,SACA,qBACA,yBACA,oBACA,gFAGA,eACA,wCAGF,CAEA,2BACE,sCACF,CAGA,6BACE,UACA,oBACA,sCACF,CAEA,2BACE,SACF,CAEA,4BACE,UACF,CClEA,gBACE,aACA,WACF,CAEA,qBACE,aACA,iCACA,eACA,iBACA,kCACA,qCACA,mBACA,eACF,CAEA,wBACE,aACA,mBACA,8BACA,yBACA,4BACA,eACA,eACF,CAEA,0BACE,4BACF,CAEA,sBACE,oBACA,mBACA,uBACA,WACA,YACA,UACA,oBACA,gBACA,YACA,kBACA,cACF,CAEA,wBACE,aACA,qBACA,aACF,CAEA,iDAIE,oBACA,2BACF,CAEA,sBACE,SACA,kBACA,iBACA,sBACA,kBACA,WACA,eACF,CAEA,sBACE,cACA,eACF,CErEA,kBACE,aACA,uBACA,SACA,aACA,yBACA,qCACA,kBACF,CAEA,0BACE,cACA,cACA,WACA,YACA,kBACA,wCACF,CAEA,wBACE,aACA,sBACA,QACA,YACA,gBACA,eACA,mBACA,sBACF,CAEA,wBACE,gBACA,eACA,mBACA,qBACF,CAEA,4BACE,qBACA,YACA,WACA,qBACA,iCACF,CAGA,iBACE,eACA,eACA,gBACF,CAEA,0BACE,iBACA,oBACA,sBACA,WACF,CC3DA,eACE,gBACA,yBACA,wCACA,mBACA,eACF,CAGA,uBACE,eACF,CAEA,yBACE,eACF,CAEA,qBACE,eACF,CAEA,uBACE,aACA,WACA,aACA,SACA,gBACA,aACA,cACA,gBACA,cACF,CAEA,+BACE,cACF,CAEA,gCACE,mBACA,8CACF,CAGA,uBACE,aACA,mBACA,SACA,WACA,WACF,CAEA,qBACE,cACA,cACA,WACA,YACA,kBACA,gBACF,CAEA,0BACE,aACA,sBACA,WACA,WACF,CAEA,sBACE,gBACA,mBACA,gBACA,uBACA,kBACF,CAEA,yBACE,eACA,oBACA,6BACA,gBACA,uBACA,kBACF,CAEA,wBACE,aACA,cACA,mBACA,gBACA,yDACF,CAEA,mCACE,wBACF,CAEA,qBACE,mBACF,CAIA,sCACE,sDACF,CAEA,uCACE,8DAEE,eACF,CACF,CAIA,yDACE,YACF,CAKA,kDACE,YACF,CAIA,+MAME,YACF,CCrIA,aACE,aACA,eACA,uBACA,YACA,aACA,eACA,iBACA,sBACF,CAEA,sDAEE,eACA,iBACA,aACF,CAEA,wBACE,0BACF,CAIA,mBACE,iBACF,CAEA,yBACE,cACF,CAEA,oBACE,iBACA,kBACA,WACA,YACA,kBACA,gBACF,CCxCA,qBACE,aACA,kBACF,CCHA,2BAEE,wCACA,yCACA,+BACF,CAEA,gBACE,YACF,CAEA,wBACE,aACA,mBACA,gBACA,OACF,CAEA,yBACE,cACA,gBACA,mBACA,gBACA,sBACF,CAEA,yBACE,aACA,QACA,aACF,CAEA,0BACE,aACA,mBACA,uBACA,WACA,YACA,UACA,4BACA,gBACA,0CACA,kBACA,cACF,CAKA,uBACE,aACA,sBACA,gBACA,cACA,0CACA,kBACF,CAGA,0CACE,UACA,UACF,CAEA,iJAGE,sBACF,CAEA,gDACE,iBACF,CAEA,sDACE,6DACF,CAGA,sBACE,kBACA,qBACF,CAGA,iCACE,iBACF,CAEA,kDAEE,YACF,CAEA,4BACE,aACA,mBACA,YACA,eACA,gBACA,iBACA,2BACF,CAEA,mCACE,aACA,mBACA,8BACA,WACA,YACA,QACA,eACA,aACA,cACA,gBACA,YACA,kBACA,cACF,CAIA,0FAEE,yCACF,CAGA,4BACE,aACA,iBACA,SACF,CAEA,kJAEE,SACF,CAIA,2BACE,YACA,eACA,8BACA,kBACA,iCACF,CAEA,8BACE,iBACA,iCACA,4BACF,CAEA,2BACE,kBACA,aACA,mBACA,YACA,eACA,iCACA,sBACA,mBACA,cACF,CAEA,gDACE,mCACF,CAGA,mCACE,0BACF,CAEA,wCACE,qCACA,uCACF,CAGA,2BACE,aACA,WACA,YACA,gBACF,CAGA,4BACE,kBACA,QACA,SACA,aACA,WACA,WACF,CAEA,gCACE,aACF,CAEA,wCACE,WACA,cACA,8CACF,CAEA,2BACE,gBACA,mBACA,sBACF,CAEA,sBACE,kBACA,YACA,YACA,gBACA,8BACF,CAGA,uDACE,6CACF,CAEA,sDACE,gDACF,CAEA,kCACE,8CACF,CAEA,iCACE,+CACF,CAEA,iDACE,wCACF,CAEA,6DACE,kDACF,CAEA,mEACE,0BACF,CAEA,kEACE,2BACF,CAEA,kEACE,6BACF,CAEA,iEACE,8BACF,CAEA,8BACE,aACA,mBACA,YACA,cACF,CAGA,0BACE,gBACA,kBACF,CAGA,4BACE,gBACA,OACA,eACA,aACA,mBACA,uBACA,QACA,YACA,eACA,iBACA,2BACF,CAEA,0BACE,aACA,mBACA,uBACA,WACA,YACA,UACA,cACA,gBACA,YACA,kBACA,cACF,CAEA,mCACE,YACA,cACF,CAEA,0BACE,aACA,mBACA,uBACA,eACA,YACA,cACA,aACA,cACA,gBACA,YACA,kBACA,cACF,CAEA,kCACE,WACA,6CACF,CAEA,sJAEE,sBACA,2CACF,CAGA,wCACE,gCACF,CAEA,yCACE,8BACF,CAEA,kBACE,sBACA,oBACF,CAEA,wBACE,yBACF,CAEA,kBACE,iCACA,eACA,8BACA,wCACA,kBACA,eACF,CC3WA,2BAKE,oCACA,oCACA,oCACA,oCACA,yCACA,0BACF,CAEA,aACE,aACA,sBAEA,aACA,aACA,yCACA,2CACA,mBACA,eACF,CAEA,oBAEE,eACA,eACA,gBACA,qBACF,CAEA,mBACE,aACA,oBAGA,iBACF,CAEA,wBACE,sBACF,CAEA,sBACE,kBACA,OAEA,QACA,YACA,WACA,aACA,mBACA,uBACA,yBACA,yBACA,eACA,gBACA,kBACA,mBACF,CAEA,8BACE,OACA,WACF,CAEA,WACE,UACF,CAEA,gBACE,cACA,WACA,WACF,CAEA,iBACE,6BACA,cACF,CAEA,sBACE,qBACA,eACA,gBAEA,iBACA,iBACF,CAEA,qBACE,aACA,qBACA,QACA,eAEA,uBACA,gBACF,CAEA,0BACE,eACA,sBACF,CAEA,2BACE,aACA,mBACA,QACA,cACF,CAEA,yBACE,WACA,YACA,qBACA,qBACA,aACF,CCxHA,aACE,aACA,SACA,uCACF,CCHA,qBACE,YACF,CAIA,iFAEE,UACF,CCVA,UACE,aACA,mBACA,QACA,aACA,iBACA,gBACA,+BACA,mCACA,kBACA,sBACF,CAGA,gBACE,iCACA,sCACF,CAEA,gBACE,aACA,aACF,CAEA,gBACE,aACA,sBACA,WACF,CAEA,gBACE,sBACA,gBACA,uBACA,kBACF,CAEA,gBACE,eACA,yBACF,CCvCA,YACE,kBACA,eACF,CAEA,qBACE,eACA,oBACA,eACF,CAEA,qBACE,eACA,oBACA,eACF,CAEA,0CAEE,eACA,oBACA,eACF,CCvBA,WACE,YACF,CAIA,kBACE,eACA,iBACA,sBACF,CAEA,uBACE,qBACA,eACA,iBACA,qBACF,CAEA,oBACE,eACA,iBACA,kBACF,CAEA,mBACE,qBACA,WACA,gBACA,UACA,SACA,gBACA,eACA,iBACA,sBACA,cACF,CAEA,kBACE,qBACA,WACA,YACA,qBACF,CAEA,kBACE,kBAKA,eAEA,eACA,kBACA,kBACA,2CACA,gBAIA,4BACA,4BACA,uBACF,CAEA,gBACE,cACA,UACA,eACA,WACF,CAEA,qBACE,aACA,mBACA,uBACA,gBACA,WACA,+BACA,uBACA,eACA,aACA,iBACF,CCpFA,WACE,QACF,CAEA,kBACE,qCACA,sBACA,iBACF,CAEA,qBACE,gBACA,sBACF,CAIA,wGAGE,UACF,CAMA,uCACE,kBACF,CAIA,iBACE,oCACF,CAEA,sBACE,eACA,iBACA,sBACF,CAEA,gCACE,eACF,CAEA,sBACE,oBACA,mBACA,uBACA,WACA,WACF,CAEA,kBACE,eACA,qCACA,uBACF,CAEA,sCACE,qCACF,CC7DA,cACE,aACA,sBACA,4BACA,eACA,iBACA,sBACA,sBACF,CAEA,uBACE,aACF,CAEA,0BACE,aACF,CAIA,qBACE,yBACA,iBACA,aACF,CAEA,gDAEE,mBACA,YACA,gBACA,gBACA,mBACA,mBACA,8CACA,8CACF,CAGA,qCACE,mBACF,CAEA,wBACE,eACF,CAEA,mDACE,2CACF,CAEA,qCACE,4CACF,CAEA,8DACE,0BACF,CAEA,6DACE,2BACF,CAEA,4DACE,6BACF,CAEA,2DACE,8BACF,CCvEA,2BAEE,6BACF,CAEA,UACE,aACA,sBACA,YACF,CAEA,gBACE,aACA,sBACA,UACA,SACA,uBACA,mBACA,eACA,aACA,cACA,gBACA,cACF,CAIA,wBACE,cACA,kBACA,kBACA,eACA,gBACF,CAGA,sBACE,yCACF,CAEA,8BACE,wCACA,mBACF,CAGA,qBACE,oBACA,WAEA,oBACA,iBACA,eACA,mBACA,aACF,CAEA,sBACE,eAEA,iBACA,0BACF,CAEA,wBACE,oBACA,mBACA,sBACA,gBACA,WACA,YACA,cACA,0BACF,CAIA,0DAEE,4BACF,CAEA,0BACE,qBACF,CAEA,wBACE,0BACF,CAEA,sBACE,aACF,CAIA,iBACE,gBACA,SACA,SACF,CAEA,gBACE,aACA,eACA,sBACA,0BACF,CAEA,gBACE,aACA,cACA,sBACA,mBACA,OACF,CAEA,gBACE,UACA,iCACF,CAEA,qBACE,YACF,CAGA,iDACE,eACF,CAEA,wBACE,aACF,CAEA,mDACE,sBACF,CAGA,qBACE,aACA,cACA,mBACA,uBACA,WACA,WACA,YACF,CAEA,wBACE,cACA,YACA,eACF,CAEA,oDACE,eACF,CAGA,uBACE,aACA,mBACA,QACA,cACA,SACA,gBACA,aACA,cACA,iBACA,cACF,CAEA,6CACE,cACF,CAEA,qCACE,wCACA,mBACF,CAEA,sBACE,YACF,CAGA,sBACE,aACA,WACA,YACA,cACF,CAEA,qBACE,aACA,sBACA,OACF,CAEA,wBACE,gBACA,SACA,SACF,CAEA,4BACE,sBACA,oBACF,CAEA,kCACE,yBACF,CCtNA,eACE,4BACA,eACA,iBACA,sBACA,sBACF,CAEA,wBACE,aACF,CAEA,mBACE,cACA,UACF,CAEA,4BACE,oBACA,mBACA,OACF,CAEA,sBACE,aACA,kBACA,iBACF,CAEA,8BACE,WACA,kBACA,iBACA,UACA,kBACA,+BACF,CAEA,oBACE,cACA,kBACA,aACA,YACA,iCACA,eACA,oBACA,sBACA,8BACA,wCACA,kBACA,qBACA,sBACF,CAEA,yBACE,aACA,mBACA,uBACA,kBACA,QACA,UACA,WACA,YACA,oBACA,+BACA,kBAEA,SACF,CAEA,6GAEE,SACF,CAEA,6BACE,qBACA,sBACA,oBACA,WACA,YACA,kCACA,iBACF,CAEA,eACE,SACA,2BACF,CAEA,wBACE,kBACF,CAEA,uBACE,UACA,eACF,CAIA,oDACE,WACA,qBACA,WACA,YACA,kBACA,iBACA,oBACA,wBACA,mDACF,CAEA,iFACE,iSACF,CAEA,iFACE,kZACF,CAEA,iFACE,4SACF,CAEA,qBACE,iBACF,CAEA,6CACE,kBACA,gBACF,CAEA,4CACE,iBACF,CAGA,yBACE,kBACA,aACF,CAEA,iCACE,WACA,kBACA,iBACA,UACA,kBACA,+BACF,CCvJA,aACE,aACA,gBACF,CAEA,sBACE,WACA,WACF,CAEA,qBACE,aACA,cACF,CAEA,oBACE,sBACF,CAEA,oCACE,gBACF,CAEA,0CACE,eACF,CAEA,4BACE,oBACA,4BACA,eACF,CAEA,qBACE,cACA,eACA,UACA,SACA,gBACA,aACA,eACA,sBACA,cACF,CAEA,wBACE,aACA,kBACA,kBACF,CAEA,sBACE,qBACF,CAEA,8CACE,YACF,CCxDA,2BAEE,sCACF,CAEA,WACE,aACF,CAGA,mBACE,aACF,CAIA,kBACE,yBACA,iBACA,eACA,gBACF,CAEA,oCAEE,8BACF,CAEA,8BAEE,sBACA,YACA,mBACA,gBACA,mBACA,mBACA,+CACA,+CACF,CAEA,gDACE,4CACF,CAEA,kCACE,6CACF,CAEA,eACE,eACF,CAEA,gDACE,0BACF,CAEA,+CACE,2BACF,CAEA,+CACE,6BACF,CAEA,8CACE,8BACF,CCnEA,2BAEE,kCACF,CAEA,eACE,aACA,sBACA,YACF,CAEA,qBACE,aACA,sBACA,UACA,SACA,uBACA,mBACA,eACA,aACA,cACA,gBACA,cACF,CAIA,6BACE,cACA,kBACA,kBACA,eACA,gBACF,CAGA,2CACE,cACF,CAEA,uDACE,yCACF,CAEA,mCACE,wCACA,mBACF,CAGA,0BACE,oBACA,WAEA,oBACA,iBACA,eACA,mBACA,aACF,CAEA,2BACE,eAEA,iBACA,+BACF,CAEA,6BACE,oBACA,mBACA,sBACA,gBACA,WACA,YACA,cACA,+BACF,CAIA,qBACE,eACA,sBACA,+BACF,CAEA,wBACE,kBACA,cACF,CAEA,gCACE,WACA,kBACA,MACA,SACA,SACA,UACA,uCACF,CAGA,mFAEE,yBACF,CAEA,qBACE,aACA,OACF,CAEA,qBACE,aACA,cACA,sBACA,mBACA,cACF,CAEA,oBACE,aACA,kBACF,CAEA,qBACE,cACA,UACA,eACA,uCACF,CAEA,6BACE,cACA,WACF,CAEA,uBACE,iBACF,CAEA,wBACE,gBACA,SACA,SACF,CAEA,4BACE,sBACA,oBACF,CAEA,kCACE,yBACF,CC3JA,WACE,cACA,gBACA,gBACF,CAEA,mBACE,uBACA,kBACF,CAEA,0BACE,WACA,YACA,mBACA,kBACA,qBACF,CAEA,qBACE,gBACA,qBACF,CAEA,sBACE,uBACA,eACF,CAEA,wBACE,qBACF,CAEA,kBACE,qBACF,CAGA,oBACE,cACA,oBACF,CAEA,0BACE,yBACF,CAGA,mBACE,qBACA,oBACA,sBACA,gBACF,CAEA,kBACE,cACA,kBAGA,YACA,aACA,eACA,gBACA,eACF,CAGA,0BACE,WACA,kBACA,QACA,UACA,oBACA,UACA,oEACA,sDACF,CAEA,+GAGE,SACF,CAEA,kBACE,kBACA,QACA,WACA,YACA,kBACF,CAEA,iBACE,kBACA,UACA,YACA,aACA,mBACA,QACA,YACA,wBACA,gBACA,WACA,8BACA,kBACA,UACA,qGAGF,CC7GA,YACE,cACA,kBACA,YACA,eACA,kBACA,0CACA,kBACA,yBACA,4BACA,sBACA,uCACA,kBACA,mBACA,eACA,gBACA,4FAIF,CAKA,kBACE,4CACA,yCACF,CAEA,mBACE,4CACA,eACF,CAEA,yCAEE,SACA,UACF,CAEA,qBACE,6BACF,CAEA,4GAIE,sFACA,8BACF,CAEA,2BACE,+BACA,mCACF,CAEA,4BACE,+BACA,mCACF,CAEA,oBACE,4BACF,CAEA,0BACE,+BACA,kCACF,CAEA,2BACE,+BACA,kCACF,CC5EA,gBACE,aACA,sBAKA,kBACF,CAEA,wBACE,aACA,uBAIA,iBACA,cACF,CAEA,uBACE,gBACA,cACA,WACA,YACA,uBACA,0CACA,kBACA,yBACA,eACA,kBACA,8CACF,CAIA,mEACE,oCACA,2FACF,CAEA,4CACE,+FACF,CAEA,qCACE,wCACA,kBACF,CAIA,+BACE,yBACA,4CACF,CAEA,0GAEE,wGAIA,kDACF,CAEA,sCACE,4GAIA,kDACF,CAEA,sCACE,WACA,kBACA,SACA,QACA,UACA,WACA,qCACA,yBACA,uBACF,CAEA,sBACE,aACA,sBAEA,kBACA,QACF,CAEA,sEAEE,4BACF,CChGA,cACE,YACA,4BACA,eACA,iBACA,qBACF,CAEA,sBACE,aACA,mBACA,8BACA,YACA,mBACA,eACF,CAEA,mBACE,aACA,mBACA,uBACA,WACA,YACA,UACA,YACA,kBACA,gBACA,sBACA,eACA,2CACA,yBACA,yDACF,CAEA,yBACE,+BACF,CAEA,0BACE,gCACA,6BACF,CAEA,4CAEE,aAEA,qCACA,iBACF,CAEA,wBACE,iBACF,CAEA,6BACE,kBACA,eACA,4BACF,CAEA,oBACE,kBACA,gBACA,qBACA,eACA,aACA,iBACA,sBACA,yBACA,0CACA,cACF,CAEA,2BACE,yBACA,gBACA,cACF,CAGA,wFACE,UACA,kCACA,+BACF,CAEA,2BACE,qBACF,CAGA,kCACE,WACA,kBACA,QACA,SACA,WACA,YACA,sCACA,kBACA,+BACA,mBACF,CAEA,8BACE,UACA,8BACA,gCACA,kCACA,iBACF,CAEA,+DACE,oCACF,CAEA,kCACE,SACF,CAGA,sBACE,wBACA,oCACF,CAEA,qBACE,cACA,WACA,YACA,UACA,8BACA,sBACA,gBACA,YACA,0BACA,cACF,CAEA,8DAEE,qBACF,CC9IA,gBACE,kBACA,cACA,sBACF,CAEA,4BACE,iBACF,CAKA,sBACE,kBACA,SACA,QACA,6BACA,WACA,YACA,2BACF,CAEA,uBACE,WACA,YAEA,qBACA,iCACA,sBACA,yBACA,kCACA,kBACA,cACF,CAGA,yBACE,kBACA,UACA,QACA,WACA,YACA,6BACA,mBACF,CAEA,oCACE,sBACF,CAEA,uBACE,kBACA,WACA,MACA,OAEA,aACA,8BACA,kBACA,oCACF,CC/DA,oBACE,kBACA,cACA,UACF,CAIA,yBACE,aACA,OACF,CAGA,4BACE,WACA,WACF,CAEA,6BACE,aACA,mBACA,QACA,WACA,YACA,yBACA,0BACA,sBACA,yBACA,kCACA,kBACA,cACF,CAIA,mCACE,wBACF,CAGA,mCACE,iBACA,kBACF,CAEA,0BACE,cACA,WACA,YACA,2BACF,CAEA,4DAEE,OACA,YACA,gBACA,gBACA,mBACA,sBACF,CAEA,6BACE,cACA,WACA,YACA,2BACF,CAEA,iCACE,sBACF,CAEA,8BACE,eACA,eACA,iBACA,2BACF,CAEA,2BACE,kBACA,WACA,MACA,OAEA,aACA,8BACA,kBACA,oCACF,CAEA,8BACE,aACA,mBACA,QACA,YACA,sCACF,CAEA,gCACE,OACA,YACA,gBACA,kCACA,kBACA,yBACF,CAEA,2BACE,YACA,eACA,SACA,kBACA,8BACA,WACA,8BACA,cACF,CAEA,oCACE,YACA,cACF,CC5HA,sBACE,oBACA,kBACF,CAEA,yBACE,yBACA,8BACF,CCRA,gBAIE,kBACF,CAEA,wBACE,oBACA,mBACA,QACA,YACA,eACA,mBACA,0CACA,kBACA,yBACA,sBACA,8BACA,cACF,CAEA,4BACE,WACA,YACA,aACF,CAEA,wBACE,kBACA,UACA,WACA,gBACA,SACF,CAEA,sBACE,gBACA,eACA,SACF,CAEA,sBACE,eACA,sBACA,aACF,CC9CA,iBACE,aACA,mBACA,uBACA,WACA,YACA,UACA,YACA,gBACA,kBACA,oBACA,eACA,wDACA,yBACA,yDACF,CAIA,+CAEE,sBACA,gDACF,CAEA,wBACE,gGACA,kDACF,CAEA,qBACE,WACA,WACF,CCjCA,+BACE,gBACF,CAEA,mBACE,cACA,WACA,YACA,kBACA,gBACF,CCVA,cACE,kBACA,oBACF,CAEA,sBACE,aACA,mBACA,uBACA,WACA,YACA,kBACA,yBACA,0CACA,kBACA,sBACA,cACF,CAGA,4BACE,sCACA,yCACF,CAEA,6BACE,eACF,CAEA,oBACE,kBACA,WACA,MACA,QAEA,gBACA,gBACA,kBACA,eACA,8BACA,kBACA,iCACF,CAGA,sBACE,gBACA,eACA,iCACA,sBACA,gBACA,mBACA,uBACA,cACF,CAGA,mCACE,qCACA,uCACF,CC5DA,mBACE,aACA,sBAGA,kBACF,CAEA,2BACE,aACA,uBAGA,iBACA,cACF,CAEA,0BACE,cACA,WACA,YACA,qBACA,kBACA,cACF,CAEA,yBACE,aACA,sBAEA,kBACA,QACF,CAEA,4EAEE,4BACF,CClCA,qBACE,aACA,sBACA,WACA,iBACA,yBACA,qCACA,iBACF,CAEA,8BACE,aACA,mBACA,YACA,YACA,mBACA,yBACF,CAEA,2BACE,oBACA,mBACA,uBACA,WACA,YAEA,iBACA,yBACA,WACF,CAEA,gCACE,UACA,YACA,aACA,8BACF,CAEA,6BACE,OACA,iBACA,iCACA,sBACA,gBACA,YACF,CAEA,2CACE,+BACA,sBACF,CCrDA,YACE,kBACA,WACF,CAEA,qBACE,aACA,mBACA,QACA,WACA,YACA,gBACA,0BACA,sBACA,yBACA,kCACA,kBACA,cACF,CAKA,4DACE,YACA,0BACA,eACA,gBACF,CAGA,4DACE,YACA,gBACA,uBACA,sBACF,CAGA,sBACE,YACF,CAEA,0CACE,cACA,kBACA,eACA,iBACA,mBACF,CAGA,gEACE,mBACF,CAEA,4DACE,YACF,CAIA,2CACE,UACF,CAEA,gEACE,mBACA,gBACA,iCACA,iBACF,CAEA,oEACE,qBACF,CAEA,gEACE,YACF,CAIA,yCACE,YACA,iBACA,cACF,CAIA,qFACE,kBACF,CAEA,4CAEE,OACA,gBACA,gBACA,mBACA,sBACF,CAEA,yBACE,sBACF,CAKA,mBACE,gBACF,CAEA,qBACE,iBACF,CAGA,oBACE,aACA,mBACA,YACA,gBACF,CAEA,0BACE,cACA,gBACF,CAEA,yBACE,kBACA,gBACA,kBACF,CAEA,6BACE,oBACA,yBACA,+BACA,iBACF,CAEA,iCACE,qBACA,uBACF,CAIA,sBACE,aACA,mBACA,WACF,CAEA,6BACE,cACA,WACA,YACA,mBACA,4BACA,+CACF,CAEA,2BACE,cACA,YACA,WACA,eACA,eACF,CAEA,mCACE,WACA,cACA,YACA,WACA,4BACA,oBACF,CAEA,qBACE,cACA,WACA,YACA,2BACF,CAEA,mBACE,aACA,eACA,OACA,WACF,CAGA,kBACE,aACA,mBACA,mBACA,kBACA,eACA,gBACA,mBACA,mBACA,sBACA,iCACA,6BACA,iBACF,CAEA,wBACE,aACA,aACF,CAGA,uBACE,kBACA,eACF,CAEA,4BACE,eACA,gBACF,CAEA,yBACE,mBACA,eACA,gBACF,CAEA,mDACE,gBACF,CAEA,0DACE,WACA,YACA,uBACF,CAEA,yBACE,aACA,cACF,CAEA,kBACE,kBACA,WACA,MACA,OACA,sBACA,iBACA,gBAEA,8BACA,kBACA,qEAGA,cACF,CAEA,oBACE,aACA,mBACA,QACA,kBACA,mBACA,0CACA,sBACF,CAEA,0BACE,OACA,YACA,aACA,0BACA,qBACF,CAGA,yBACE,iBACA,eACA,oBACA,oCACF,CAEA,wCACE,cACF,CAGA,oBACE,aACA,sBACA,uBACA,gBACA,eACA,oCACA,sBACA,cACF,CAEA,yDACE,gBACA,kBACF,CAIA,8BACE,mCACF,CAEA,iCACE,qCACA,uCACF,CAEA,iEACE,aACF,CAEA,gCACE,gBACA,eACA,iBACA,oCACF,CAGA,oBACE,aACA,mBACA,gBACA,eACA,oCACA,sBACF,CCzVA,gBACE,WACA,YACA,oBACA,iCACA,sBACA,yBACA,kCACA,iBACF,CAEA,6BACE,sBACF,CAIA,wBACE,YACA,iBACA,cACF,CAEA,6DACE,iBACF,CAIA,2BACE,cACA,YACA,iBACA,qBACA,eACA,iBACA,eACF,CAEA,sBACE,iBACF,CAEA,sCACE,iBACF,CAEA,sBACE,kBACA,SACA,QACA,2BACA,uBACA,mBACF,CCtDA,gBACE,kBACA,WACF,CAEA,yBACE,aACA,mBACA,QACA,WACA,YAGA,gBACA,mCACA,sBACA,yBACA,kCACA,kBACA,cACF,CAEA,sBACE,cACA,WACA,YACA,2BACF,CAEA,oDAEE,OACA,gBACA,gBACA,mBACA,sBACF,CAEA,6BACE,sBACF,CAEA,yBACE,cACA,WACA,YACA,2BACF,CAEA,sBACE,kBACA,WACA,MACA,OACA,WACA,iBACA,gBACA,eACA,8BACA,kBACA,oEAGF,CAGA,wBACE,aACA,mBACA,gBACA,eACA,oCACA,sBACA,cACF,CAEA,kCACE,mCACF,CAEA,qCACE,qCACA,uCACF,CAEA,sBACE,eACA,eACA,sBACF,CCzFA,qBACE,oBACA,mBACA,OACF,CAEA,2BACE,WACA,YACA,SACF"}
1
+ {"version":3,"sources":["../src/styles.css","../src/base.css","../src/Message.css","../src/surfaces/Surfaces.css","../src/UserMention.css","../src/confirm/ConfirmDialog.css","../src/data/HoverActions.css","../src/blocks/Actions.css","../src/blocks/Alert.css","../src/blocks/Callout.css","../src/blocks/Card.css","../src/blocks/Carousel.css","../src/blocks/CodeBlock.css","../src/blocks/Condition.css","../src/blocks/ContactCard.css","../src/blocks/Container.css","../src/blocks/Context.css","../src/blocks/ContextActions.css","../src/blocks/DataTable.css","../src/blocks/DataVisualization.css","../src/blocks/Divider.css","../src/blocks/FallbackCanary.css","../src/blocks/File.css","../src/blocks/Header.css","../src/blocks/Image.css","../src/blocks/Input.css","../src/blocks/Markdown.css","../src/blocks/Plan.css","../src/blocks/RichText.css","../src/blocks/Section.css","../src/blocks/Table.css","../src/blocks/TaskCard.css","../src/blocks/Video.css","../src/elements/Button.css","../src/elements/Checkboxes.css","../src/elements/calendar/Calendar.css","../src/elements/DatePicker.css","../src/elements/DateTimePicker.css","../src/elements/FeedbackButtons.css","../src/elements/FileInput.css","../src/elements/IconButton.css","../src/elements/ImageElement.css","../src/elements/Overflow.css","../src/elements/RadioButtons.css","../src/elements/RichTextInput.css","../src/elements/Select.css","../src/elements/TextInput.css","../src/elements/TimePicker.css","../src/elements/WorkflowButton.css"],"sourcesContent":["/* Entry stylesheet. The build inlines these imports into dist/styles.css. */\n@import \"./base.css\";\n@import \"./Message.css\";\n@import \"./UserMention.css\";\n@import \"./confirm/ConfirmDialog.css\";\n@import \"./data/HoverActions.css\";\n@import \"./blocks/Actions.css\";\n@import \"./blocks/Alert.css\";\n@import \"./blocks/Callout.css\";\n@import \"./blocks/Card.css\";\n@import \"./blocks/Carousel.css\";\n@import \"./blocks/CodeBlock.css\";\n@import \"./blocks/Condition.css\";\n@import \"./blocks/ContactCard.css\";\n@import \"./blocks/Container.css\";\n@import \"./blocks/Context.css\";\n@import \"./blocks/ContextActions.css\";\n@import \"./blocks/DataTable.css\";\n@import \"./blocks/DataVisualization.css\";\n@import \"./blocks/Divider.css\";\n@import \"./blocks/FallbackCanary.css\";\n@import \"./blocks/File.css\";\n@import \"./blocks/Header.css\";\n@import \"./blocks/Image.css\";\n@import \"./blocks/Input.css\";\n@import \"./blocks/Markdown.css\";\n@import \"./blocks/Plan.css\";\n@import \"./blocks/RichText.css\";\n@import \"./blocks/Section.css\";\n@import \"./blocks/Table.css\";\n@import \"./blocks/TaskCard.css\";\n@import \"./blocks/Video.css\";\n@import \"./elements/Button.css\";\n@import \"./elements/Checkboxes.css\";\n@import \"./elements/DatePicker.css\";\n@import \"./elements/DateTimePicker.css\";\n@import \"./elements/FeedbackButtons.css\";\n@import \"./elements/FileInput.css\";\n@import \"./elements/IconButton.css\";\n@import \"./elements/ImageElement.css\";\n@import \"./elements/Overflow.css\";\n@import \"./elements/RadioButtons.css\";\n@import \"./elements/RichTextInput.css\";\n@import \"./elements/Select.css\";\n@import \"./elements/TextInput.css\";\n@import \"./elements/TimePicker.css\";\n@import \"./elements/WorkflowButton.css\";\n","/* Values measured from Slack's Block Kit Builder (light theme, desktop). */\n:root,\n[data-theme=\"light\"] {\n --sbk-hover-actions-shadow: 0 0 0 1px rgba(29, 28, 29, 0.13), 0 1px 3px 0 #00000014;\n --sbk-font: \"Slack-Lato\", Lato, appleLogo, sans-serif;\n --sbk-font-mono:\n \"Slack-Roboto-Mono\", \"Roboto Mono\", Monaco, Menlo, Consolas, \"Courier New\", monospace;\n --sbk-text: #1d1c1d;\n --sbk-link: #1264a3;\n --sbk-code-text: rgb(192, 19, 67);\n --sbk-code-bg: rgba(29, 28, 29, 0.04);\n --sbk-code-border: rgba(29, 28, 29, 0.13);\n --sbk-quote-bar: #dddddd;\n --sbk-skeleton-bg: #eaeaea;\n --sbk-mention-bg: rgba(29, 155, 209, 0.1);\n --sbk-mention-text: #1264a3;\n --sbk-mention-private-bg: rgba(29, 28, 29, 0.13);\n --sbk-mention-private-text: rgba(29, 28, 29, 0.7);\n --sbk-broadcast-bg: rgba(255, 198, 0, 0.18);\n --sbk-bg: #fff;\n --sbk-muted: #616061;\n --sbk-badge-text: #454447;\n --sbk-badge-bg: rgba(29, 28, 29, 0.06);\n --sbk-border: rgba(29, 28, 29, 0.13);\n --sbk-divider: rgba(94, 93, 96, 0.45);\n --sbk-button-border: rgba(94, 93, 96, 0.45);\n --sbk-primary: #007a5a;\n --sbk-primary-hover: #148567;\n --sbk-danger: #e01e5a;\n --sbk-danger-hover: #e23067;\n /* Interaction states, from the Builder's `c-button`, `c-icon_button`, `c-member_slug` and\n `c-select_options_list` hover/active rules. */\n --sbk-button-hover-bg: #f8f8f8;\n --sbk-button-hover-shadow: rgba(0, 0, 0, 0.098) 0 1px 3px, rgba(0, 0, 0, 0.098) 0 1px 2px -1px;\n --sbk-icon-button-hover-bg: #eaeaea;\n --sbk-hover-overlay: rgba(29, 28, 29, 0.06);\n --sbk-row-hover-bg: #f8f8f8;\n --sbk-mention-hover-bg: rgba(29, 155, 209, 0.2);\n --sbk-mention-hover-text: rgb(11, 76, 140);\n --sbk-menu-highlight-bg: #1264a3;\n --sbk-menu-highlight-text: #fff;\n --sbk-focus-ring: #1264a3;\n --sbk-focus-ring-invalid: #e01e5a;\n --sbk-checkbox-checked: #1264a3;\n --sbk-checkbox-checked-hover: #122a5921;\n --sbk-checkbox-checked-pressed: #122a5938;\n /* Menus and option lists (`c-menu`, `c-select_options_list`). */\n --sbk-menu-bg: #fff;\n --sbk-menu-shadow: 0 0 0 1px rgba(29, 28, 29, 0.13), 0 4px 12px 0 rgba(0, 0, 0, 0.12);\n --sbk-menu-selected-text: #1264a3;\n --sbk-menu-separator: rgba(29, 28, 29, 0.13);\n --sbk-menu-secondary-text: #454447;\n --sbk-popover-shadow: 0 0 0 1px rgba(29, 28, 29, 0.13), 0 4px 12px 0 rgba(0, 0, 0, 0.08);\n --sbk-spinner-track: #5e5d60;\n /* Tooltips (`c-tooltip__tip`). */\n --sbk-tooltip-bg: #1d1c1d;\n --sbk-tooltip-text: #fff;\n /* Slack design-token equivalents shared by component styles, so the dark theme can remap them\n in one place: `base-sec`, `ctr-pry`, `content-sec/ter`, `otl-pry/ter`, `base-pry-hover/pressed`,\n `base-inv-hgl-1`, and `--dt_blend-mode-interaction` (multiply in light, lighten in dark). */\n --sbk-surface-sec: #f8f8f8;\n --sbk-surface-ter: #eaeaea;\n --sbk-container-bg: #fff;\n --sbk-content-sec: #454447;\n --sbk-content-ter: #5e5d60;\n --sbk-outline-pry: #7c7a7f;\n --sbk-outline-ter: rgba(94, 93, 96, 0.13);\n --sbk-interaction-hover: #4544470f;\n --sbk-interaction-pressed: #45444721;\n --sbk-highlight: #1264a3;\n --sbk-on-highlight: #fff;\n --sbk-blend-interaction: multiply;\n --sbk-calendar-grid: rgb(221, 221, 221);\n --sbk-avatar-placeholder: #dddddd;\n --sbk-hover-actions-icon: #616061;\n}\n\n.sbk-root {\n font-family: var(--sbk-font);\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-text);\n font-variant-ligatures: common-ligatures;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n}\n\n/* Isolate rendering from the host page's global styles (Tailwind's preflight, a docs theme's heading\n fonts, `* { min-width: 0 }`): roll every element back to the browser's defaults, so only the rules\n below decide how a block looks. Component rules are more specific or come later, so they win.\n SVG and replaced elements keep their presentational attributes (width, height, fill), which\n `revert` would drop, and get just the properties preflight changes rolled back.\n Dialogs and tooltips portalled to <body> sit outside `.sbk-root`, so they get it too. */\n:is(.sbk-root, .sbk-confirm__overlay, .sbk-tooltip)\n :where(:not(svg, svg *, img, video, canvas, iframe, embed, object)),\n:is(.sbk-root, .sbk-confirm__overlay, .sbk-tooltip) :where(:not(svg, svg *))::before,\n:is(.sbk-root, .sbk-confirm__overlay, .sbk-tooltip) :where(:not(svg, svg *))::after {\n all: revert;\n}\n\n:is(.sbk-root, .sbk-confirm__overlay, .sbk-tooltip)\n :where(svg, img, video, canvas, iframe, embed, object) {\n display: revert;\n vertical-align: revert;\n max-width: revert;\n margin: revert;\n padding: revert;\n border: revert;\n min-width: revert;\n}\n\n.sbk-root *,\n.sbk-root *::before,\n.sbk-root *::after {\n box-sizing: border-box;\n}\n\n/* Text for screen readers only, such as a task's status, which the page shows as an icon. Taken\n out of the flow, so it never moves what is on screen. */\n.sbk-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n border: 0;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n}\n\n.sbk-unsupported {\n display: inline-block;\n padding: 2px 6px;\n font: 12px var(--sbk-font-mono);\n color: var(--sbk-muted);\n border: 1px dashed var(--sbk-border);\n border-radius: 4px;\n}\n\n.sbk-mrkdwn {\n font-family: var(--sbk-font);\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-text);\n overflow-wrap: anywhere;\n}\n\n.sbk-mrkdwn__code {\n font-family: var(--sbk-font-mono);\n font-size: 12px;\n line-height: 18px;\n color: var(--sbk-code-text);\n background: var(--sbk-code-bg);\n border: 1px solid var(--sbk-code-border);\n border-radius: 3px;\n padding: 2px 3px 1px;\n}\n\n.sbk-mrkdwn__pre {\n display: block;\n font-family: var(--sbk-font-mono);\n font-size: 12px;\n line-height: 1.50001;\n background: var(--sbk-code-bg);\n border: 1px solid var(--sbk-code-border);\n border-radius: 4px;\n padding: 8px;\n margin: 4px 0;\n white-space: pre-wrap;\n}\n\n.sbk-mrkdwn__quote {\n margin: 4px 0;\n padding-left: 16px;\n position: relative;\n}\n\n.sbk-mrkdwn__quote::before {\n content: \"\";\n position: absolute;\n inset: 0 auto 0 0;\n width: 4px;\n border-radius: 8px;\n background: var(--sbk-quote-bar);\n}\n\n.sbk-link {\n color: var(--sbk-link);\n text-decoration: underline;\n}\n\n.sbk-mention {\n color: var(--sbk-mention-text);\n background: var(--sbk-mention-bg);\n border-radius: 3px;\n padding: 0 2px 1px;\n}\n\n.sbk-mention:hover {\n color: var(--sbk-mention-hover-text);\n background: var(--sbk-mention-hover-bg);\n}\n\n/* A mention linked through `mentionHref` keeps the pill's look, without a link's underline. */\na.sbk-mention {\n text-decoration: none;\n}\n\n.sbk-mention--unresolved {\n display: inline-block;\n vertical-align: middle;\n width: 120px;\n height: 8px;\n background: var(--sbk-skeleton-bg);\n border-radius: 1000px;\n}\n\n.sbk-mention--broadcast {\n color: var(--sbk-text);\n background: var(--sbk-broadcast-bg);\n border-radius: 3px;\n padding: 1px 2px;\n font-weight: 700;\n}\n\n.sbk-mention--private {\n display: inline;\n color: var(--sbk-mention-private-text);\n background: var(--sbk-mention-private-bg);\n border-radius: 3px;\n padding: 0 2px 1px 0;\n}\n\n/* Slack butts the lock straight up against the channel name, dropped an eighth of an em. */\n.sbk-mention__lock-icon {\n display: inline-block;\n width: 15px;\n height: 15px;\n vertical-align: -0.125em;\n}\n\n.sbk-mention--loading {\n display: inline-block;\n vertical-align: middle;\n width: 120px;\n height: 8px;\n border: 1px solid var(--sbk-quote-bar);\n border-radius: 1000px;\n}\n\n.sbk-emoji {\n display: inline-flex;\n position: relative;\n align-items: center;\n vertical-align: top;\n}\n\n.sbk-emoji__img {\n display: block;\n position: absolute;\n object-fit: contain;\n}\n\n/* Slack's toggle-bar blocks (plan, task_card) slide open and shut: \\`transition: height 0.25s\\` on\n the block, clipped (data/Collapse.tsx). \\`flow-root\\` keeps the content's margins inside the\n height being animated. */\n.sbk-collapse {\n display: flow-root;\n overflow: clip;\n transition: height 0.25s;\n}\n\n/* Slack's c-infinite_spinner. */\n.sbk-spinner {\n position: relative;\n display: inline-block;\n flex-shrink: 0;\n}\n\n.sbk-spinner__arc {\n position: absolute;\n top: 0;\n left: 0;\n display: block;\n width: 100%;\n height: 100%;\n transform: rotate(-45deg);\n animation: sbk-spinner-spin 1.2s cubic-bezier(0.25, 0.29, 0.54, 0.86) infinite;\n}\n\n.sbk-spinner__tail {\n animation-timing-function: cubic-bezier(0.41, 0.24, 0.64, 0.69);\n}\n\n.sbk-spinner__bg {\n fill: none;\n stroke: var(--sbk-spinner-track);\n stroke-width: 8px;\n opacity: 0.25;\n}\n\n.sbk-spinner__path {\n fill: none;\n stroke: currentColor;\n stroke-width: 8px;\n stroke-dasharray: 55, 200;\n stroke-dashoffset: 90px;\n stroke-linecap: round;\n}\n\n@keyframes sbk-spinner-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n/* Slack's focus ring (`c-input_text:focus`, `c-select_button:focus`, `c-button--focus-visible`):\n a 1px solid ring plus a 4px 30% halo, replacing the border. Text fields show it on any focus;\n buttons only for keyboard focus. */\n.sbk-root {\n --sbk-focus-shadow:\n 0 0 0 1px var(--sbk-focus-ring),\n 0 0 0 5px color-mix(in srgb, var(--sbk-focus-ring) 30%, transparent);\n --sbk-focus-shadow-invalid:\n 0 0 0 1px var(--sbk-focus-ring-invalid),\n 0 0 0 5px color-mix(in srgb, var(--sbk-focus-ring-invalid) 30%, transparent);\n}\n\n.sbk-text-input,\n.sbk-rich-text-input,\n.sbk-datepicker__input,\n.sbk-datetimepicker__time-input,\n.sbk-select__control,\n.sbk-timepicker__control,\n.sbk-datetimepicker__control {\n transition:\n border 80ms ease-out,\n box-shadow 80ms ease-out;\n}\n\n.sbk-text-input:focus,\n.sbk-rich-text-input:focus-within,\n.sbk-datepicker__input:focus,\n.sbk-datetimepicker__time-input:focus,\n.sbk-select__control:focus-visible,\n.sbk-select__control[aria-expanded=\"true\"],\n.sbk-timepicker__control:focus-visible,\n.sbk-timepicker__control[aria-expanded=\"true\"],\n.sbk-datetimepicker__control:focus-visible,\n.sbk-datetimepicker__control[aria-expanded=\"true\"] {\n outline: none;\n border-color: transparent;\n box-shadow: var(--sbk-focus-shadow);\n}\n\n.sbk-text-input[aria-invalid=\"true\"],\n.sbk-text-input[aria-invalid=\"true\"]:focus {\n border-color: transparent;\n box-shadow: var(--sbk-focus-shadow-invalid);\n}\n\n.sbk-text-input:focus::placeholder,\n.sbk-datepicker__input:focus::placeholder {\n color: var(--sbk-content-ter);\n}\n\n.sbk-button:focus-visible,\n.sbk-modal__button:focus-visible,\n.sbk-overflow__button:focus-visible,\n.sbk-file-input__button:focus-visible,\n.sbk-icon-button:focus-visible,\n.sbk-code-block__copy:focus-visible,\n.sbk-carousel__arrow:focus-visible,\n.sbk-calendar__nav:focus-visible,\n.sbk-calendar__cell:focus-visible,\n.sbk-calendar__clear:focus-visible {\n outline: none;\n box-shadow: var(--sbk-focus-shadow);\n}\n\n/* Keyboard focus shouldn't also paint the pointer's hover shadow on outline buttons. */\n.sbk-button:focus-visible:hover,\n.sbk-overflow__button:focus-visible:hover {\n box-shadow: var(--sbk-focus-shadow);\n}\n\n/* Slack's menus and popovers open and close instantly (no transition on `c-menu` /\n `c-popover`), so the motion to tone down is the spinner and the plan/task_card slide. */\n@media (prefers-reduced-motion: reduce) {\n .sbk-spinner__arc {\n animation-duration: 2.4s;\n }\n\n .sbk-collapse {\n transition: none;\n }\n}\n\n/* Slack's `c-tooltip__tip`. Portalled to <body>, so it sets its own font. */\n.sbk-tooltip {\n position: fixed;\n z-index: 1100;\n max-width: 200px;\n padding: 8px 12px;\n font-family: var(--sbk-font);\n font-size: 13px;\n font-weight: 700;\n line-height: 1.38463;\n text-align: center;\n overflow-wrap: break-word;\n color: var(--sbk-tooltip-text);\n background: var(--sbk-tooltip-bg);\n border-radius: 8px;\n pointer-events: none;\n -webkit-font-smoothing: antialiased;\n}\n\n.sbk-tooltip__arrow {\n position: absolute;\n left: 50%;\n width: 9px;\n height: 9px;\n margin-left: -4.5px;\n background: var(--sbk-tooltip-bg);\n border-radius: 1px;\n transform: rotate(45deg);\n}\n\n.sbk-tooltip--top .sbk-tooltip__arrow {\n bottom: -4px;\n}\n\n.sbk-tooltip--bottom .sbk-tooltip__arrow {\n top: -4px;\n}\n\n.sbk-tooltip__secondary {\n display: block;\n font-weight: 400;\n color: rgba(255, 255, 255, 0.7);\n}\n\n/* The layer menus and calendars open in (elements/Popover.tsx), portalled to <body> and pinned to\n the control that opened them. */\n.sbk-popover {\n position: fixed;\n z-index: 1000;\n}\n","/* Message surface, measured from Block Kit Builder's preview (light theme, desktop). */\n@import \"./surfaces/Surfaces.css\";\n\n.sbk-message {\n display: flex;\n background: var(--sbk-bg);\n}\n\n.sbk-message__avatar {\n display: block;\n flex: 0 0 36px;\n width: 36px;\n height: 36px;\n margin-right: 8px;\n object-fit: cover;\n}\n\n.sbk-message__avatar--placeholder {\n display: grid;\n place-items: center;\n border-radius: 4px;\n background: #4a154b;\n color: #fff;\n font-weight: 700;\n}\n\n.sbk-message__content {\n flex: 1 1 0;\n min-width: 0;\n padding: 8px 0;\n}\n\n.sbk-message__header {\n display: flex;\n align-items: center;\n height: 22px;\n}\n\n.sbk-message__sender {\n margin-right: 5px;\n font-weight: 900;\n}\n\n.sbk-message__badge {\n margin-right: 5px;\n padding: 1px 3px;\n border-radius: 2px;\n font-size: 10px;\n line-height: 12.5px;\n font-weight: 700;\n color: var(--sbk-badge-text);\n background: var(--sbk-badge-bg);\n}\n\n.sbk-message__time {\n margin-right: 5px;\n font-size: 12px;\n line-height: 17.6px;\n color: var(--sbk-muted);\n}\n\n.sbk-blocks {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.sbk-message__edited {\n font-size: 12px;\n color: var(--sbk-muted);\n}\n\n.sbk-message__ephemeral {\n display: flex;\n align-items: center;\n margin-top: 4px;\n font-size: 12px;\n color: var(--sbk-muted);\n}\n\n/* Legacy attachments: colour bar, pretext, title, fields, footer, or raw blocks. */\n.sbk-attachments {\n display: flex;\n flex-direction: column;\n gap: 4px;\n margin-top: 4px;\n}\n\n.sbk-attachment {\n display: flex;\n border-left: 4px solid var(--sbk-border);\n border-radius: 4px;\n}\n\n.sbk-attachment__body {\n flex: 1 1 0;\n min-width: 0;\n padding: 8px 12px;\n border: 1px solid var(--sbk-border);\n border-left: none;\n border-radius: 0 4px 4px 0;\n}\n\n.sbk-attachment__pretext {\n margin-bottom: 4px;\n}\n\n.sbk-attachment__author {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-bottom: 4px;\n font-weight: 700;\n}\n\n.sbk-attachment__author-icon {\n width: 16px;\n height: 16px;\n border-radius: 2px;\n}\n\n.sbk-attachment__title {\n margin-bottom: 4px;\n font-weight: 700;\n color: var(--sbk-link);\n}\n\n.sbk-attachment__fields {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-top: 4px;\n}\n\n.sbk-attachment__field {\n flex: 1 1 100%;\n}\n\n.sbk-attachment__field--short {\n flex: 1 1 calc(50% - 8px);\n min-width: 120px;\n}\n\n.sbk-attachment__field-title {\n font-weight: 700;\n}\n\n.sbk-attachment__image {\n display: block;\n max-width: 360px;\n margin-top: 8px;\n border-radius: 4px;\n}\n\n.sbk-attachment__footer {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 8px;\n font-size: 12px;\n color: var(--sbk-muted);\n}\n\n.sbk-attachment__footer-icon {\n width: 16px;\n height: 16px;\n border-radius: 2px;\n}\n\n/* Reactions row. */\n.sbk-reactions {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 4px;\n}\n\n.sbk-reactions__item {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 2px 8px;\n border: 1px solid var(--sbk-border);\n border-radius: 12px;\n background: var(--sbk-badge-bg);\n font-size: 13px;\n cursor: default;\n}\n\n.sbk-reactions__count {\n color: var(--sbk-link);\n font-weight: 700;\n}\n\n/* Thread reply summary. */\n.sbk-thread-summary {\n display: flex;\n align-items: center;\n gap: 6px;\n margin-top: 4px;\n padding: 4px 0;\n border: none;\n background: none;\n color: var(--sbk-link);\n font: inherit;\n font-weight: 700;\n cursor: pointer;\n}\n\n.sbk-thread-summary__subscribed {\n color: var(--sbk-primary);\n font-size: 8px;\n}\n\n/* Dark theme: Slack's `.sk-client-theme--dark` design tokens (base-pry #1a1d21, content-pry\n #f8f8f8, content-hgl-1 #2ba5ce, ...), with hover/press overlays blended with `lighten` as Slack\n does. Applies under `prefers-color-scheme: dark` unless the root sets `data-theme=\"light\"`, and\n always inside an element with `data-theme=\"dark\"` (BlockKitProvider's `theme` prop sets it on its\n wrapper). Inside `data-theme=\"light\"` the light tokens apply again (base.css). Component tokens\n are remapped here too so the whole dark palette lives in one place. `:root[data-theme=\"dark\"]`\n outranks the `:root` light tokens of the block stylesheets loaded after this one. */\n@media (prefers-color-scheme: dark) {\n :root:not([data-theme=\"light\"]) {\n --sbk-text: #f8f8f8;\n --sbk-link: #2ba5ce;\n --sbk-code-text: #de678a;\n --sbk-code-bg: rgba(248, 248, 248, 0.06);\n --sbk-code-border: #797c814d;\n --sbk-quote-bar: #797c8180;\n --sbk-skeleton-bg: #35373b;\n --sbk-mention-bg: #03669640;\n --sbk-mention-text: #2ba5ce;\n --sbk-mention-private-bg: rgba(248, 248, 248, 0.13);\n --sbk-mention-private-text: rgba(248, 248, 248, 0.7);\n --sbk-broadcast-bg: #a073002e;\n --sbk-bg: #1a1d21;\n --sbk-muted: #9a9b9e;\n --sbk-badge-text: #b9babd;\n --sbk-badge-bg: #f8f8f80f;\n --sbk-border: #797c814d;\n --sbk-divider: #797c8180;\n --sbk-button-border: #797c8180;\n --sbk-primary: #177e56;\n --sbk-primary-hover: #268761;\n --sbk-danger: #d3305d;\n --sbk-danger-hover: #d63d68;\n --sbk-button-hover-bg: #323438;\n --sbk-button-hover-shadow: rgba(0, 0, 0, 0.3) 0 1px 3px, rgba(0, 0, 0, 0.3) 0 1px 2px -1px;\n --sbk-icon-button-hover-bg: #f8f8f814;\n --sbk-hover-overlay: #f8f8f80f;\n --sbk-row-hover-bg: #f8f8f80f;\n --sbk-mention-hover-bg: #03669673;\n --sbk-mention-hover-text: rgb(136, 187, 226);\n --sbk-menu-highlight-bg: #0a77a7;\n --sbk-menu-highlight-text: #f8f8f8;\n --sbk-focus-ring: #2ba5ce;\n --sbk-focus-ring-invalid: #d94c75;\n --sbk-checkbox-checked: #0a77a7;\n --sbk-checkbox-checked-hover: #d8eef614;\n --sbk-checkbox-checked-pressed: #d8eef62e;\n --sbk-menu-bg: #212428;\n --sbk-menu-shadow: 0 0 0 1px #797c814d, 0 4px 12px 0 rgba(0, 0, 0, 0.35);\n --sbk-menu-selected-text: #2ba5ce;\n --sbk-menu-separator: #797c814d;\n --sbk-menu-secondary-text: #b9babd;\n --sbk-popover-shadow: 0 0 0 1px #797c814d, 0 4px 12px 0 rgba(0, 0, 0, 0.35);\n --sbk-spinner-track: #9a9b9e;\n --sbk-tooltip-bg: #212428;\n --sbk-tooltip-text: #f8f8f8;\n --sbk-surface-sec: #212428;\n --sbk-surface-ter: #212428;\n --sbk-container-bg: #212428;\n --sbk-content-sec: #b9babd;\n --sbk-content-ter: #9a9b9e;\n --sbk-outline-pry: #797c81;\n --sbk-outline-ter: #797c814d;\n --sbk-interaction-hover: #f8f8f814;\n --sbk-interaction-pressed: #f8f8f82e;\n --sbk-highlight: #0a77a7;\n --sbk-on-highlight: #f8f8f8;\n --sbk-blend-interaction: lighten;\n --sbk-calendar-grid: #797c814d;\n --sbk-avatar-placeholder: #35373b;\n --sbk-hover-actions-icon: #b9babd;\n --sbk-hover-actions-shadow: 0 0 0 1px #797c814d, 0 1px 3px 0 rgba(0, 0, 0, 0.3);\n --sbk-table-border: #797c814d;\n --sbk-dataviz-border: #797c814d;\n --sbk-dataviz-tick: #9a9b9e;\n --sbk-data-table-bg: #f8f8f80f;\n --sbk-data-table-sep: #797c814d;\n --sbk-data-table-active: #3daa7c;\n --sbk-plan-text: #9a9b9e;\n --sbk-task-card-text: #9a9b9e;\n --sbk-alert-default-bg: #f8f8f81a;\n --sbk-alert-default-icon: #b9babd;\n --sbk-alert-info-icon: #2ba5ce;\n --sbk-alert-warning-icon: #e8a723;\n --sbk-alert-error-icon: #d94c75;\n --sbk-alert-success-icon: #3daa7c;\n --sbk-callout-border: #797c814d;\n --sbk-callout-green-bg: #203430;\n --sbk-callout-blue-bg: #1d333d;\n --sbk-callout-red-bg: #39252e;\n --sbk-callout-yellow-bg: #3b3321;\n --sbk-callout-purple-bg: #312c3f;\n --sbk-callout-gray-bg: #272a2e;\n --sbk-chart-area-1: #583422;\n --sbk-chart-area-2: #1c4539;\n --sbk-chart-area-3: #4d3756;\n --sbk-chart-area-4: #164356;\n }\n}\n\n:root[data-theme=\"dark\"],\n[data-theme=\"dark\"] {\n --sbk-text: #f8f8f8;\n --sbk-link: #2ba5ce;\n --sbk-code-text: #de678a;\n --sbk-code-bg: rgba(248, 248, 248, 0.06);\n --sbk-code-border: #797c814d;\n --sbk-quote-bar: #797c8180;\n --sbk-skeleton-bg: #35373b;\n --sbk-mention-bg: #03669640;\n --sbk-mention-text: #2ba5ce;\n --sbk-mention-private-bg: rgba(248, 248, 248, 0.13);\n --sbk-mention-private-text: rgba(248, 248, 248, 0.7);\n --sbk-broadcast-bg: #a073002e;\n --sbk-bg: #1a1d21;\n --sbk-muted: #9a9b9e;\n --sbk-badge-text: #b9babd;\n --sbk-badge-bg: #f8f8f80f;\n --sbk-border: #797c814d;\n --sbk-divider: #797c8180;\n --sbk-button-border: #797c8180;\n --sbk-primary: #177e56;\n --sbk-primary-hover: #268761;\n --sbk-danger: #d3305d;\n --sbk-danger-hover: #d63d68;\n --sbk-button-hover-bg: #323438;\n --sbk-button-hover-shadow: rgba(0, 0, 0, 0.3) 0 1px 3px, rgba(0, 0, 0, 0.3) 0 1px 2px -1px;\n --sbk-icon-button-hover-bg: #f8f8f814;\n --sbk-hover-overlay: #f8f8f80f;\n --sbk-row-hover-bg: #f8f8f80f;\n --sbk-mention-hover-bg: #03669673;\n --sbk-mention-hover-text: rgb(136, 187, 226);\n --sbk-menu-highlight-bg: #0a77a7;\n --sbk-menu-highlight-text: #f8f8f8;\n --sbk-focus-ring: #2ba5ce;\n --sbk-focus-ring-invalid: #d94c75;\n --sbk-checkbox-checked: #0a77a7;\n --sbk-checkbox-checked-hover: #d8eef614;\n --sbk-checkbox-checked-pressed: #d8eef62e;\n --sbk-menu-bg: #212428;\n --sbk-menu-shadow: 0 0 0 1px #797c814d, 0 4px 12px 0 rgba(0, 0, 0, 0.35);\n --sbk-menu-selected-text: #2ba5ce;\n --sbk-menu-separator: #797c814d;\n --sbk-menu-secondary-text: #b9babd;\n --sbk-popover-shadow: 0 0 0 1px #797c814d, 0 4px 12px 0 rgba(0, 0, 0, 0.35);\n --sbk-spinner-track: #9a9b9e;\n --sbk-tooltip-bg: #212428;\n --sbk-tooltip-text: #f8f8f8;\n --sbk-surface-sec: #212428;\n --sbk-surface-ter: #212428;\n --sbk-container-bg: #212428;\n --sbk-content-sec: #b9babd;\n --sbk-content-ter: #9a9b9e;\n --sbk-outline-pry: #797c81;\n --sbk-outline-ter: #797c814d;\n --sbk-interaction-hover: #f8f8f814;\n --sbk-interaction-pressed: #f8f8f82e;\n --sbk-highlight: #0a77a7;\n --sbk-on-highlight: #f8f8f8;\n --sbk-blend-interaction: lighten;\n --sbk-calendar-grid: #797c814d;\n --sbk-avatar-placeholder: #35373b;\n --sbk-hover-actions-icon: #b9babd;\n --sbk-hover-actions-shadow: 0 0 0 1px #797c814d, 0 1px 3px 0 rgba(0, 0, 0, 0.3);\n --sbk-table-border: #797c814d;\n --sbk-dataviz-border: #797c814d;\n --sbk-dataviz-tick: #9a9b9e;\n --sbk-data-table-bg: #f8f8f80f;\n --sbk-data-table-sep: #797c814d;\n --sbk-data-table-active: #3daa7c;\n --sbk-plan-text: #9a9b9e;\n --sbk-task-card-text: #9a9b9e;\n --sbk-alert-default-bg: #f8f8f81a;\n --sbk-alert-default-icon: #b9babd;\n --sbk-alert-info-icon: #2ba5ce;\n --sbk-alert-warning-icon: #e8a723;\n --sbk-alert-error-icon: #d94c75;\n --sbk-alert-success-icon: #3daa7c;\n --sbk-callout-border: #797c814d;\n --sbk-callout-green-bg: #203430;\n --sbk-callout-blue-bg: #1d333d;\n --sbk-callout-red-bg: #39252e;\n --sbk-callout-yellow-bg: #3b3321;\n --sbk-callout-purple-bg: #312c3f;\n --sbk-callout-gray-bg: #272a2e;\n --sbk-chart-area-1: #583422;\n --sbk-chart-area-2: #1c4539;\n --sbk-chart-area-3: #4d3756;\n --sbk-chart-area-4: #164356;\n}\n","/* Modal and Home tab surfaces, measured against Slack's own modal/home chrome (light theme, desktop). */\n\n.sbk-modal {\n display: flex;\n flex-direction: column;\n width: 600px;\n max-width: 100%;\n /* Slack caps a modal at 640px; past that the body scrolls between the pinned header and footer. */\n max-height: min(640px, 90vh);\n background: var(--sbk-bg);\n border-radius: 8px;\n box-shadow:\n 0 0 0 1px var(--sbk-border),\n 0 8px 28px rgba(0, 0, 0, 0.28);\n overflow: hidden;\n}\n\n.sbk-modal__header {\n position: relative;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n flex: 0 0 auto;\n padding: 16px 24px;\n}\n\n.sbk-modal__title-row {\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.sbk-modal__icon {\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n margin-right: 16px;\n border-radius: 4px;\n object-fit: cover;\n}\n\n.sbk-modal__title {\n flex: 1 1 auto;\n min-width: 0;\n margin: 0;\n font-size: 22px;\n font-weight: 900;\n line-height: 30px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sbk-modal__close {\n display: grid;\n flex: 0 0 auto;\n place-items: center;\n width: 33.4375px;\n height: 36px;\n margin-left: 16px;\n padding: 0;\n border: none;\n border-radius: 8px;\n background: none;\n color: var(--sbk-badge-text);\n cursor: pointer;\n}\n\n.sbk-modal__close:hover {\n background: var(--sbk-icon-button-hover-bg);\n}\n\n/* Slack pads the body 20px on the right, then a transparent 4px border and an 8px scrollbar track\n whose thumb only shows on hover. The track takes its width whether or not the body overflows. */\n.sbk-modal__body {\n flex: 1 1 auto;\n padding: 8px 20px 16px 24px;\n border-right: 4px solid transparent;\n overflow: hidden auto;\n}\n\n.sbk-modal__body::-webkit-scrollbar {\n width: 8px;\n}\n\n.sbk-modal__body::-webkit-scrollbar-track,\n.sbk-modal__body::-webkit-scrollbar-corner {\n background: transparent;\n}\n\n.sbk-modal__body::-webkit-scrollbar-thumb {\n min-height: 36px;\n background: transparent;\n background-clip: padding-box;\n border: 2px solid transparent;\n border-radius: 4px;\n}\n\n.sbk-modal__body:hover::-webkit-scrollbar-thumb {\n background-color: rgba(29, 28, 29, 0.52);\n}\n\n/* Builder's modal blocks are spaced further apart than the flat 4px message gap (measured via\n inspect.ts: consecutive block content boxes sit 16px apart). Scoped here so .sbk-blocks's base\n 4px (Message.css) stays untouched for message fixtures; Home's own reference blocks measured at\n the same 4px as messages, so it isn't overridden. */\n.sbk-modal .sbk-blocks {\n gap: 16px;\n}\n\n/* The modal's 16px block gap already spaces sections; Slack drops their message-surface margins. */\n.sbk-modal .sbk-section {\n margin: 0;\n}\n\n/* A checkbox group's trailing space is shorter in a modal (16px) than in a message (24px). */\n.sbk-modal .sbk-checkboxes {\n margin-bottom: 16px;\n}\n\n.sbk-modal__footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 12px;\n flex: 0 0 auto;\n padding: 20px 24px;\n border-top: 1px solid var(--sbk-border);\n}\n\n/* Modal buttons render bigger than message buttons in Slack; sized here since it's chrome, not\n the shared button component (agent B owns elements/Button.css). */\n.sbk-modal__button {\n height: 36px;\n min-width: 80px;\n padding: 0 12px 1px;\n border-radius: 8px;\n border: 1px solid var(--sbk-button-border);\n background: var(--sbk-bg);\n color: var(--sbk-text);\n font: inherit;\n font-weight: 700;\n font-size: 15px;\n cursor: pointer;\n transition:\n color 80ms,\n background-color 80ms,\n border-color 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n/* Same `c-button` hover model as elements/Button.css. */\n.sbk-modal__button:hover {\n box-shadow: var(--sbk-button-hover-shadow);\n}\n\n.sbk-modal__button:active {\n box-shadow: none;\n}\n\n.sbk-modal__button--primary {\n border-color: transparent;\n background: var(--sbk-primary);\n color: #fff;\n}\n\n.sbk-modal__button--primary:hover,\n.sbk-modal__button--primary:active {\n background-image: linear-gradient(var(--sbk-button-overlay), var(--sbk-button-overlay));\n background-blend-mode: multiply;\n}\n\n.sbk-modal__button--primary:hover {\n --sbk-button-overlay: #0a403221;\n}\n\n.sbk-modal__button--primary:active {\n --sbk-button-overlay: #0a403238;\n}\n\n.sbk-modal__button--secondary:hover,\n.sbk-modal__button--secondary:active {\n background-color: var(--sbk-button-hover-bg);\n}\n\n.sbk-home {\n max-width: 760px;\n margin: 0 auto;\n background: var(--sbk-bg);\n}\n\n.sbk-home__menu {\n display: flex;\n align-items: flex-end;\n height: 40px;\n border-bottom: 1px solid var(--sbk-border);\n}\n\n.sbk-home__tab {\n display: flex;\n align-items: center;\n gap: 4px;\n height: 32px;\n margin-left: 25px;\n font-weight: 700;\n /* Slack's aubergine, independent of the app's primary (green) buttons. */\n box-shadow: inset 0 -2px 0 0 rgb(74, 21, 75);\n}\n\n/* The Home tab uses Slack's \"medium\" buttons: 36px tall, 15px text, rounder corners. */\n.sbk-home .sbk-button {\n height: 36px;\n font-size: 15px;\n border-radius: 8px;\n}\n\n.sbk-home .sbk-overflow__button {\n width: 31px;\n height: 36px;\n border-radius: 8px;\n}\n\n.sbk-home__content {\n padding: 25px;\n}\n\n/* Modals opened through `views` sit centred on a dimmed, full-viewport overlay, as in Slack. */\n.sbk-modal-layer {\n position: fixed;\n inset: 0;\n z-index: 1000;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n background: rgba(0, 0, 0, 0.6);\n}\n\n.sbk-modal-layer__view {\n display: flex;\n justify-content: center;\n width: 100%;\n max-height: 100%;\n}\n\n.sbk-modal-layer__view[hidden] {\n display: none;\n}\n","/* A clickable user mention and its profile card popover (Slack's `p-member_profile_card`): a\n 300px card with the popover shadow, a 72px rounded avatar beside the name block. */\n.sbk-mention--user {\n cursor: pointer;\n}\n\n.sbk-mention--user:focus-visible {\n outline: none;\n box-shadow: var(--sbk-focus-shadow);\n}\n\n.sbk-profile-card {\n position: fixed;\n z-index: 1000;\n display: flex;\n gap: 16px;\n width: 300px;\n padding: 20px;\n color: var(--sbk-text);\n background: var(--sbk-menu-bg);\n border-radius: 6px;\n box-shadow: var(--sbk-popover-shadow);\n}\n\n.sbk-profile-card__avatar {\n flex: 0 0 auto;\n width: 72px;\n height: 72px;\n border-radius: 8px;\n object-fit: cover;\n}\n\n.sbk-profile-card__avatar--placeholder {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--sbk-on-highlight);\n background: var(--sbk-highlight);\n font-size: 32px;\n font-weight: 700;\n}\n\n.sbk-profile-card__body {\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.sbk-profile-card__name {\n font-size: 18px;\n font-weight: 900;\n line-height: 1.33334;\n overflow-wrap: anywhere;\n}\n\n.sbk-profile-card__pronouns {\n margin-left: 6px;\n color: var(--sbk-content-sec);\n font-size: 15px;\n font-weight: 400;\n}\n\n.sbk-profile-card__secondary {\n color: var(--sbk-content-sec);\n font-size: 15px;\n line-height: 22px;\n}\n\n.sbk-profile-card__status {\n display: flex;\n align-items: center;\n gap: 6px;\n font-size: 15px;\n line-height: 22px;\n}\n\n.sbk-profile-card__time {\n color: var(--sbk-content-ter);\n font-size: 13px;\n line-height: 18px;\n}\n\n/* With `mentionHref`, the name links to the app's profile page, like Slack's link to the full\n profile: the name's own look, underlined on hover. */\n.sbk-profile-card__name-link {\n color: inherit;\n text-decoration: none;\n}\n\n.sbk-profile-card__name-link:hover {\n text-decoration: underline;\n}\n",".sbk-confirm__overlay {\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n}\n\n.sbk-confirm {\n width: 400px;\n max-width: calc(100vw - 32px);\n background: var(--sbk-bg);\n border-radius: 8px;\n box-shadow:\n 0 0 0 1px rgba(0, 0, 0, 0.08),\n 0 8px 32px rgba(0, 0, 0, 0.35);\n padding: 20px;\n font-family: var(--sbk-font);\n}\n\n.sbk-confirm__title {\n margin: 0 0 8px;\n font-size: 18px;\n font-weight: 900;\n color: var(--sbk-text);\n}\n\n.sbk-confirm__text {\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-text);\n margin-bottom: 20px;\n}\n\n.sbk-confirm__actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n}\n\n.sbk-confirm__button {\n height: 36px;\n padding: 0 16px;\n border-radius: 4px;\n border: 1px solid var(--sbk-button-border);\n background: var(--sbk-bg);\n color: var(--sbk-text);\n font: 700 15px var(--sbk-font);\n cursor: pointer;\n}\n\n.sbk-confirm__button--primary {\n border: 0;\n background: var(--sbk-primary);\n color: #fff;\n}\n\n.sbk-confirm__button--danger {\n border: 0;\n background: var(--sbk-danger);\n color: #fff;\n}\n","/* Slack's `c-message_actions__group` as used on tables, images and charts: a white pill of 32px\n icon buttons pinned to the host's top-right corner, invisible until the host is hovered or\n holds focus. Offsets per host come from the Builder (table 12px, image 10px, chart 16px). */\n.sbk-hover-actions-host {\n position: relative;\n}\n\n/* Tables: Slack's wrapper hugs the table, so the group sits over the table's own corner. */\n.sbk-hover-actions-host--fit {\n width: fit-content;\n max-width: 100%;\n}\n\n.sbk-hover-actions {\n position: absolute;\n z-index: 2;\n top: 12px;\n right: 12px;\n display: flex;\n padding: 4px;\n background: var(--sbk-menu-bg);\n border-radius: 12px;\n box-shadow: var(--sbk-hover-actions-shadow);\n opacity: 0;\n pointer-events: none;\n}\n\n.sbk-hover-actions-host:hover > .sbk-hover-actions,\n.sbk-hover-actions-host:focus-within > .sbk-hover-actions,\n.sbk-hover-actions:has([aria-expanded=\"true\"]) {\n opacity: 1;\n pointer-events: auto;\n}\n\n.sbk-hover-actions--image {\n top: 10px;\n right: 10px;\n}\n\n.sbk-hover-actions--chart {\n top: 16px;\n right: 16px;\n}\n\n.sbk-hover-actions__button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: 0;\n border-radius: 8px;\n background: transparent;\n color: var(--sbk-hover-actions-icon);\n font-size: 18px;\n cursor: pointer;\n transition:\n color 80ms cubic-bezier(0.36, 0.19, 0.29, 1),\n background 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\na.sbk-hover-actions__button {\n color: var(--sbk-content-sec);\n}\n\n.sbk-hover-actions__button:hover,\n.sbk-hover-actions__button[aria-expanded=\"true\"] {\n background: var(--sbk-row-hover-bg);\n color: var(--sbk-text);\n}\n\n.sbk-hover-actions__button:focus-visible {\n outline: none;\n box-shadow: var(--sbk-focus-shadow);\n}\n\n.sbk-hover-actions__menu-root {\n position: relative;\n}\n",".sbk-actions {\n display: flex;\n flex-wrap: wrap;\n margin: 0 0 8px;\n}\n\n.sbk-actions__action {\n margin: 8px 8px 0 0;\n}\n\n/* Forces the element onto its own row: with the parent's `flex-wrap: wrap`, a 100%-wide item\n always wraps before and after itself. */\n.sbk-actions__action--full-width {\n flex: 1 1 100%;\n width: 100%;\n}\n","/* Measured from the Builder's modal preview (`c-alert--boxed`). Dark values aren't measured; they\n reuse the dark palette's matching hues. */\n:root,\n[data-theme=\"light\"] {\n --sbk-alert-default-bg: rgb(234, 234, 234);\n --sbk-alert-default-icon: rgb(94, 93, 96);\n --sbk-alert-info-bg: rgba(54, 197, 240, 0.13);\n --sbk-alert-info-icon: rgb(18, 100, 163);\n --sbk-alert-warning-bg: rgba(255, 198, 0, 0.18);\n --sbk-alert-warning-icon: rgb(107, 80, 0);\n --sbk-alert-error-bg: rgba(255, 129, 170, 0.13);\n --sbk-alert-error-icon: rgb(192, 19, 67);\n --sbk-alert-success-bg: rgba(76, 200, 148, 0.25);\n --sbk-alert-success-icon: rgb(0, 122, 90);\n}\n\n.sbk-alert {\n display: flex;\n margin: 8px 0;\n padding: 12px 16px;\n border: 1px solid transparent;\n border-radius: 8px;\n}\n\n.sbk-alert__icon {\n flex-shrink: 0;\n margin: 1px 12px 0 0;\n}\n\n.sbk-alert__message {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n\n/* Links keep the message's ink colour and stay underlined, as in the Builder. */\n.sbk-alert__message .sbk-link {\n color: inherit;\n text-decoration: underline;\n}\n\n.sbk-alert--default {\n background: var(--sbk-alert-default-bg);\n}\n.sbk-alert--default .sbk-alert__icon {\n color: var(--sbk-alert-default-icon);\n}\n.sbk-alert--info {\n background: var(--sbk-alert-info-bg);\n}\n.sbk-alert--info .sbk-alert__icon {\n color: var(--sbk-alert-info-icon);\n}\n.sbk-alert--warning {\n background: var(--sbk-alert-warning-bg);\n}\n.sbk-alert--warning .sbk-alert__icon {\n color: var(--sbk-alert-warning-icon);\n}\n.sbk-alert--error {\n background: var(--sbk-alert-error-bg);\n}\n.sbk-alert--error .sbk-alert__icon {\n color: var(--sbk-alert-error-icon);\n}\n.sbk-alert--success {\n background: var(--sbk-alert-success-bg);\n}\n.sbk-alert--success .sbk-alert__icon {\n color: var(--sbk-alert-success-icon);\n}\n","/* Light values measured from Builder references (green, blue); the other light values are\n extrapolated. Dark values (Message.css) aren't measured: each is its hue from the dark palette\n at 16% over the dark background (gray: 6% white), like the alert colours. */\n:root,\n[data-theme=\"light\"] {\n --sbk-callout-border: rgba(94, 93, 96, 0.13);\n --sbk-callout-green-bg: #f4ffdb;\n --sbk-callout-blue-bg: #e3f8ff;\n --sbk-callout-red-bg: #ffeceb;\n --sbk-callout-yellow-bg: #fff8db;\n --sbk-callout-purple-bg: #f3ecff;\n --sbk-callout-gray-bg: #f4f4f4;\n}\n\n.sbk-callout {\n padding: 12px;\n border: 1px solid var(--sbk-callout-border);\n border-radius: 12px;\n overflow: hidden;\n}\n\n.sbk-callout .sbk-block:first-child > * {\n margin-top: 0;\n}\n\n.sbk-callout .sbk-block:last-child > * {\n margin-bottom: 0;\n}\n\n/* In a container Slack lays a callout's blocks out in a flex column with an 8px gap, so their own\n margins no longer collapse into each other (catalog/container/with-callout). */\n.sbk-container .sbk-callout {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.sbk-container .sbk-callout .sbk-image__title {\n display: none;\n}\n\n/* Keeps the frame's 5px top margin from collapsing into the block's own now that the title row\n above it is hidden. */\n.sbk-container .sbk-callout .sbk-image {\n display: flow-root;\n}\n\n/* Slack keeps the unknown-block notice's bottom margin even as a callout's last child. */\n.sbk-container .sbk-callout .sbk-block:last-child > .sbk-block-error {\n margin-bottom: 6px;\n}\n",".sbk-card {\n margin: 8px 0;\n}\n\n.sbk-card__box {\n width: 340px;\n max-width: 100%;\n background: var(--sbk-bg);\n border: 1px solid rgba(94, 93, 96, 0.13);\n border-radius: 12px;\n overflow: hidden;\n}\n\n.sbk-card__content {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n}\n\n.sbk-card__hero {\n display: block;\n width: 100%;\n height: auto;\n border-radius: 4px;\n object-fit: cover;\n}\n\n.sbk-card__header {\n display: flex;\n /* A lone title centres on the 36px icon. */\n align-items: center;\n gap: 12px;\n}\n\n.sbk-card__icon {\n display: block;\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 8px;\n object-fit: cover;\n}\n\n/* Slack centres its 24px icon in the 36px slot, in the text colour and with no badge behind it. */\n.sbk-card__icon--slack {\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--sbk-text);\n}\n\n.sbk-card__icon--fallback {\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(29, 28, 29, 0.06);\n color: var(--sbk-muted);\n}\n\n.sbk-card__titles {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.sbk-card__title {\n font-weight: 700;\n line-height: 22.5px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Text/mrkdwn content renders its own `.sbk-mrkdwn`/`.sbk-plain-text` span with a fixed\n font-size/line-height (set in base.css), which otherwise overrides the size we want here\n since it's set directly on that inline element rather than inherited. Re-assert our sizing\n on the span itself so title/subtitle actually take the compact card typography. */\n.sbk-card__title .sbk-mrkdwn,\n.sbk-card__title .sbk-plain-text {\n font-size: 15px;\n line-height: 22.5px;\n}\n\n.sbk-card__subtitle {\n font-size: 13px;\n line-height: 16.25px;\n color: rgb(94, 93, 96);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sbk-card__subtitle .sbk-mrkdwn,\n.sbk-card__subtitle .sbk-plain-text {\n font-size: 13px;\n line-height: 16.25px;\n color: inherit;\n}\n\n.sbk-card__body {\n line-height: 22px;\n}\n\n.sbk-card__subtext {\n font-size: 13px;\n line-height: 18px;\n color: var(--sbk-muted);\n}\n\n.sbk-card__subtext .sbk-mrkdwn,\n.sbk-card__subtext .sbk-plain-text {\n font-size: 13px;\n line-height: 18px;\n color: inherit;\n}\n\n.sbk-card__actions {\n display: flex;\n gap: 8px;\n}\n\n/* Slack's card buttons size to their label: no 56px minimum, unlike an actions block's. */\n.sbk-card__actions .sbk-button {\n min-width: 0;\n}\n\n.sbk-card__actions-start {\n display: flex;\n flex: 1;\n gap: 8px;\n}\n",".sbk-carousel {\n position: relative;\n margin: 8px 0;\n}\n\n.sbk-carousel__scroller {\n display: flex;\n gap: 16px;\n overflow-x: auto;\n /* Slack hides the track; the arrow buttons scroll instead. Without this a classic-scrollbar\n system (a mouse on macOS, Windows, Linux) grows the carousel by 15px. */\n scrollbar-width: none;\n scroll-snap-type: x proximity;\n padding: 8px 0 4px;\n margin: -8px 0 -4px;\n}\n\n.sbk-carousel__item {\n flex: 0 0 auto;\n scroll-snap-align: start;\n}\n\n.sbk-carousel__item .sbk-card {\n margin: 0;\n}\n\n.sbk-carousel__arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 50%;\n transform: translateY(-16px);\n width: 32px;\n height: 32px;\n padding: 0;\n border: 0;\n border-radius: 9999px;\n background: var(--sbk-bg);\n color: rgb(69, 68, 71);\n box-shadow:\n rgba(0, 0, 0, 0.098) 0px 1px 3px 0px,\n rgba(0, 0, 0, 0.098) 0px 1px 2px -1px;\n cursor: pointer;\n transition:\n opacity 0.15s,\n transform 0.15s;\n}\n\n.sbk-carousel__arrow:hover {\n transform: translateY(-16px) scale(1.1);\n}\n\n/* At either end of the scroll Slack shrinks the arrow away rather than disabling it. */\n.sbk-carousel__arrow--hidden {\n opacity: 0;\n pointer-events: none;\n transform: translateY(-16px) scale(0.8);\n}\n\n.sbk-carousel__arrow--left {\n left: 12px;\n}\n\n.sbk-carousel__arrow--right {\n right: 12px;\n}\n",".sbk-code-block {\n margin: 4px 0;\n padding: 8px;\n}\n\n.sbk-code-block__box {\n margin: 4px 0;\n font-family: var(--sbk-font-mono);\n font-size: 12px;\n line-height: 18px;\n background: var(--sbk-surface-sec);\n border: 1px solid rgba(29, 28, 29, 0.06);\n border-radius: 12px;\n overflow: hidden;\n}\n\n.sbk-code-block__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 4px 4px 4px 12px;\n font-family: var(--sbk-font);\n font-size: 13px;\n font-weight: 700;\n}\n\n.sbk-code-block__language {\n color: var(--sbk-outline-pry);\n}\n\n.sbk-code-block__copy {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n color: rgb(69, 68, 71);\n background: none;\n border: none;\n border-radius: 8px;\n cursor: default;\n}\n\n.sbk-code-block__scroll {\n display: flex;\n padding: 0 12px 8px 0;\n overflow: auto;\n}\n\n.sbk-code-block__code,\n.sbk-code-block__code code {\n /* The UA stylesheet gives <pre> and <code> the generic `monospace`, which beats inheriting the\n box's Slack-Roboto-Mono. Slack also turns ligatures off for code. */\n font-family: inherit;\n font-variant-ligatures: none;\n}\n\n.sbk-code-block__code {\n margin: 0;\n padding: 0 8px 8px;\n line-height: 18px;\n color: var(--sbk-text);\n border-radius: 4px;\n tab-size: 4;\n -moz-tab-size: 4;\n}\n\n.sbk-code-block__line {\n display: block;\n white-space: pre;\n}\n","/* `condition` renders one branch's blocks in place; each child block supplies its own spacing. */\n","/* Slack's c-pillow_file: the avatar sits at the top of the row and the text column is pulled up 1px\n into it, so the card is 1px shorter than its content. */\n.sbk-contact-card {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 12px;\n background: var(--sbk-bg);\n border: 1px solid rgba(94, 93, 96, 0.13);\n border-radius: 12px;\n}\n\n.sbk-contact-card__avatar {\n display: block;\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 8px;\n background: var(--sbk-avatar-placeholder);\n}\n\n.sbk-contact-card__body {\n display: flex;\n flex-direction: column;\n gap: 4px;\n min-width: 0;\n margin-top: -1px;\n font-size: 13px;\n line-height: 15.6px;\n color: var(--sbk-muted);\n}\n\n.sbk-contact-card__name {\n font-weight: 700;\n font-size: 15px;\n line-height: 19.2px;\n color: var(--sbk-text);\n}\n\n.sbk-contact-card__skeleton {\n display: inline-block;\n width: 120px;\n height: 8px;\n border-radius: 1000px;\n background: var(--sbk-surface-ter);\n}\n\n/* Slack's p-block_kit_unknown_block_error, shown in place of a card it won't render. */\n.sbk-block-error {\n margin: 0 0 6px;\n font-size: 15px;\n line-height: 22px;\n}\n\n.sbk-block-error__message {\n font-size: 12.5px;\n line-height: 18.33px;\n color: var(--sbk-text);\n opacity: 0.5;\n}\n",".sbk-container {\n margin: 16px 0 0;\n background: var(--sbk-bg);\n border: 1px solid var(--sbk-outline-ter);\n border-radius: 12px;\n overflow: hidden;\n}\n\n/* Every width keeps the card frame; only the cap differs (`full` has none), per Slack's client. */\n.sbk-container--narrow {\n max-width: 320px;\n}\n\n.sbk-container--standard {\n max-width: 480px;\n}\n\n.sbk-container--wide {\n max-width: 642px;\n}\n\n.sbk-container__header {\n display: flex;\n width: 100%;\n padding: 12px;\n border: 0;\n background: none;\n font: inherit;\n color: inherit;\n text-align: left;\n cursor: default;\n}\n\n.sbk-container__header--button {\n cursor: pointer;\n}\n\n.sbk-container__header--divider {\n margin-bottom: 12px;\n border-bottom: 1px solid var(--sbk-outline-ter);\n}\n\n/* Slack centres the icon against the title and subtitle. */\n.sbk-container__titles {\n display: flex;\n align-items: center;\n gap: 12px;\n flex: 1 1 0;\n min-width: 0;\n}\n\n.sbk-container__icon {\n display: block;\n flex: 0 0 auto;\n width: 36px;\n height: 36px;\n border-radius: 8px;\n object-fit: cover;\n}\n\n.sbk-container__title-col {\n display: flex;\n flex-direction: column;\n flex: 1 1 0;\n min-width: 0;\n}\n\n.sbk-container__title {\n font-weight: 700;\n line-height: 22.5px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sbk-container__subtitle {\n font-size: 13px;\n line-height: 16.25px;\n color: var(--sbk-content-sec);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sbk-container__chevron {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n margin-left: 8px;\n transition: transform 0.16s cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n.sbk-container__chevron--collapsed {\n transform: rotate(-90deg);\n}\n\n.sbk-container__body {\n padding: 0 12px 12px;\n}\n\n/* Builder's `containerBlockContent` slides open and shut faster than plan and task_card, on the\n same curve as the chevron. */\n.sbk-collapse.sbk-container__collapse {\n transition: height 0.16s cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .sbk-container__chevron,\n .sbk-collapse.sbk-container__collapse {\n transition: none;\n }\n}\n\n/* Builder omits the image title/caret row when an `image` block is a direct child of a\n container (Callout.css does the same for one nested in a callout there). */\n.sbk-container__body > .sbk-block--image .sbk-image__title {\n display: none;\n}\n\n/* Builder's reference for an `image` block directly inside a container drops the block's own\n top margin (only the bottom margin remains) — the container's body padding provides the top\n spacing instead. */\n.sbk-container__body > .sbk-block--image .sbk-image {\n margin-top: 0;\n}\n\n/* Builder drops the top margin of a leading section: its text starts right under the header\n (catalog/container/icon-plus-subtitle), or 12px below a header divider (header-divider). */\n.sbk-container__header + .sbk-container__body > .sbk-block--section:first-child .sbk-section,\n.sbk-container__header\n + .sbk-container__collapse\n > .sbk-container__body\n > .sbk-block--section:first-child\n .sbk-section {\n margin-top: 0;\n}\n","/* Slack sets each element in a 15px/22px line box around 13px/18px text; an image sits on that\n line's baseline, which stretches a row holding one to 25px. */\n.sbk-context {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n row-gap: 4px;\n margin: 4px 0;\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-muted);\n}\n\n.sbk-context .sbk-mrkdwn,\n.sbk-context .sbk-plain-text {\n font-size: 13px;\n line-height: 18px;\n color: inherit;\n}\n\n.sbk-context .sbk-emoji {\n vertical-align: text-bottom;\n}\n\n/* Slack spaces context elements with a trailing spacer rather than a gap: 16px after text, 4px\n after an image, so consecutive images sit close together. Images hang from the top of the row. */\n.sbk-context__text {\n margin-right: 16px;\n}\n\n.sbk-context > :last-child {\n margin-right: 0;\n}\n\n.sbk-context__image {\n margin-right: 4px;\n margin-bottom: 5px;\n width: 20px;\n height: 20px;\n border-radius: 2px;\n object-fit: cover;\n}\n","/* Slack butts the 32px icon buttons against each other and against the block above. */\n.sbk-context-actions {\n display: flex;\n align-items: center;\n}\n","/* Values measured from Slack's Block Kit Builder for the `data_table` block. */\n:root,\n[data-theme=\"light\"] {\n --sbk-data-table-bg: rgba(29, 28, 29, 0.06);\n --sbk-data-table-sep: rgba(94, 93, 96, 0.13);\n --sbk-data-table-active: #007a5a;\n}\n\n.sbk-data-table {\n margin: 4px 0;\n}\n\n.sbk-data-table__header {\n display: flex;\n align-items: center;\n padding: 8px 4px;\n gap: 8px;\n}\n\n.sbk-data-table__caption {\n flex: 1 1 auto;\n font-weight: 900;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.sbk-data-table__toolbar {\n display: flex;\n gap: 8px;\n flex: 0 0 auto;\n}\n\n.sbk-data-table__icon-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n padding: 0;\n color: var(--sbk-badge-text);\n background: none;\n border: 1px solid var(--sbk-button-border);\n border-radius: 8px;\n cursor: pointer;\n}\n\n/* Slack's grey frame holds both the grid and the pagination footer below it, and scrolls them\n sideways together when the columns can't fit. Like Slack's, it's a flex column, so its end\n padding counts as scrollable space. */\n.sbk-data-table__frame {\n display: flex;\n flex-direction: column;\n overflow-x: auto;\n padding: 0 4px;\n background-color: var(--sbk-data-table-bg);\n border-radius: 12px;\n}\n\n/* Slack's scrollbar: an 8px track whose rounded thumb only shows while the table is hovered. */\n.sbk-data-table__frame::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n}\n\n.sbk-data-table__frame::-webkit-scrollbar-track,\n.sbk-data-table__frame::-webkit-scrollbar-thumb,\n.sbk-data-table__frame::-webkit-scrollbar-corner {\n background: transparent;\n}\n\n.sbk-data-table__frame::-webkit-scrollbar-thumb {\n border-radius: 4px;\n}\n\n.sbk-data-table__frame:hover::-webkit-scrollbar-thumb {\n background: color-mix(in srgb, var(--sbk-text) 52%, transparent);\n}\n\n/* Like Slack's <table>, the grid never narrows below its columns' 120px minimums. */\n.sbk-data-table__rows {\n position: relative;\n min-width: min-content;\n}\n\n/* Without pagination Slack's footer shrinks to a 4px strip. */\n.sbk-data-table__rows:last-child {\n margin-bottom: 4px;\n}\n\n.sbk-data-table__grid-header,\n.sbk-data-table__row {\n display: grid;\n}\n\n.sbk-data-table__col-header {\n display: flex;\n align-items: center;\n height: 36px;\n font-size: 13px;\n font-weight: 700;\n line-height: 18px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-data-table__col-header button {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 28px;\n gap: 4px;\n padding: 0 12px;\n font: inherit;\n color: inherit;\n background: none;\n border: none;\n border-radius: 8px;\n cursor: pointer;\n}\n\n/* Slack hides the unsorted caret until the header is hovered or focused, and tints the header\n with the same 6% overlay as its other hoverable table chrome. */\n.sbk-data-table__col-header button:hover,\n.sbk-data-table__col-header button:focus-visible {\n background-color: var(--sbk-hover-overlay);\n}\n\n/* Slack's caret stays hidden, even on a sorted column, until the header is hovered or focused. */\n.sbk-data-table__sort-caret {\n display: flex;\n margin-left: auto;\n opacity: 0;\n}\n\n.sbk-data-table__col-header button:hover .sbk-data-table__sort-caret,\n.sbk-data-table__col-header button:focus-visible .sbk-data-table__sort-caret {\n opacity: 1;\n}\n\n/* Slack's sort menu: a 200px `c-menu` flush below the header, a small \"Sort\" heading, then\n Ascending and Descending and, once sorted, a separator and a red Clear Sort. */\n.sbk-data-table__sort-menu {\n width: 200px;\n padding: 12px 0;\n background: var(--sbk-menu-bg);\n border-radius: 4px;\n box-shadow: var(--sbk-menu-shadow);\n}\n\n.sbk-data-table__sort-heading {\n padding: 4px 24px;\n font: 13px / 18px var(--sbk-font);\n color: var(--sbk-content-sec);\n}\n\n.sbk-data-table__sort-item {\n position: relative;\n display: flex;\n align-items: center;\n height: 28px;\n padding: 0 24px;\n font: 15px / 28px var(--sbk-font);\n color: var(--sbk-text);\n white-space: nowrap;\n cursor: pointer;\n}\n\n.sbk-data-table__sort-item[aria-checked=\"true\"] {\n color: var(--sbk-menu-selected-text);\n}\n\n/* Slack's danger red is the same token as its inline-code text. */\n.sbk-data-table__sort-item--danger {\n color: var(--sbk-code-text);\n}\n\n.sbk-data-table__sort-item[data-active] {\n color: var(--sbk-menu-highlight-text);\n background: var(--sbk-menu-highlight-bg);\n}\n\n/* Slack's 16px glyphs sit at the start of their 20px boxes. */\n.sbk-data-table__sort-icon {\n display: flex;\n width: 20px;\n height: 16px;\n margin-right: 8px;\n}\n\n/* The checked item's check hangs in the 24px gutter, 4px from the menu's edge. */\n.sbk-data-table__sort-check {\n position: absolute;\n top: 6px;\n left: 4px;\n display: flex;\n width: 20px;\n height: 16px;\n}\n\n.sbk-data-table__sort-separator {\n padding: 8px 0;\n}\n\n.sbk-data-table__sort-separator::before {\n content: \"\";\n display: block;\n border-top: 1px solid var(--sbk-menu-separator);\n}\n\n.sbk-data-table__col-label {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.sbk-data-table__cell {\n position: relative;\n min-width: 0;\n height: 48px;\n overflow: hidden;\n background-color: var(--sbk-bg);\n}\n\n/* The body's outline is drawn by its edge cells, inside the 48px rows as in Slack. */\n.sbk-data-table__row:first-child .sbk-data-table__cell {\n border-top: 1px solid var(--sbk-button-border);\n}\n\n.sbk-data-table__row:last-child .sbk-data-table__cell {\n border-bottom: 1px solid var(--sbk-button-border);\n}\n\n.sbk-data-table__cell:first-child {\n border-left: 1px solid var(--sbk-button-border);\n}\n\n.sbk-data-table__cell:last-child {\n border-right: 1px solid var(--sbk-button-border);\n}\n\n.sbk-data-table__row:hover .sbk-data-table__cell {\n background-color: var(--sbk-row-hover-bg);\n}\n\n.sbk-data-table__row:not(:first-child) .sbk-data-table__cell {\n box-shadow: inset 0 1px 0 var(--sbk-data-table-sep);\n}\n\n.sbk-data-table__row:first-child .sbk-data-table__cell:first-child {\n border-top-left-radius: 8px;\n}\n\n.sbk-data-table__row:first-child .sbk-data-table__cell:last-child {\n border-top-right-radius: 8px;\n}\n\n.sbk-data-table__row:last-child .sbk-data-table__cell:first-child {\n border-bottom-left-radius: 8px;\n}\n\n.sbk-data-table__row:last-child .sbk-data-table__cell:last-child {\n border-bottom-right-radius: 8px;\n}\n\n.sbk-data-table__cell-content {\n display: flex;\n align-items: center;\n height: 48px;\n padding: 0 12px;\n}\n\n/* Slack clips overlong cell text without an ellipsis. */\n.sbk-data-table__truncate {\n overflow: hidden;\n white-space: nowrap;\n}\n\n/* Pinned to the frame's left edge, so the pages stay in view while the columns scroll sideways. */\n.sbk-data-table__pagination {\n position: sticky;\n left: 0;\n max-width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n height: 32px;\n font-size: 13px;\n line-height: 18px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-data-table__page-nav {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n padding: 0;\n color: inherit;\n background: none;\n border: none;\n border-radius: 8px;\n cursor: pointer;\n}\n\n.sbk-data-table__page-nav:disabled {\n opacity: 0.4;\n cursor: default;\n}\n\n.sbk-data-table__page-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n font: inherit;\n color: inherit;\n background: none;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n}\n\n.sbk-data-table__page-btn--active {\n color: #fff;\n background-color: var(--sbk-data-table-active);\n}\n\n.sbk-data-table__page-btn:not(.sbk-data-table__page-btn--active):hover,\n.sbk-data-table__page-btn:not(.sbk-data-table__page-btn--active):focus-visible {\n color: var(--sbk-text);\n background-color: var(--sbk-button-hover-bg);\n}\n\n/* Same multiply darkening as a primary button: hover ≈ rgb(20,133,103), pressed ≈ rgb(0,110,81). */\n.sbk-data-table__page-btn--active:hover {\n background-color: rgb(20, 133, 103);\n}\n\n.sbk-data-table__page-btn--active:active {\n background-color: rgb(0, 110, 81);\n}\n\n.sbk-rtmini__link {\n color: var(--sbk-link);\n text-decoration: none;\n}\n\n.sbk-rtmini__link:hover {\n text-decoration: underline;\n}\n\n.sbk-rtmini__code {\n font-family: var(--sbk-font-mono);\n font-size: 12px;\n background: var(--sbk-code-bg);\n border: 1px solid var(--sbk-code-border);\n border-radius: 3px;\n padding: 1px 3px;\n}\n",":root,\n[data-theme=\"light\"] {\n /* Area fills: measured for the first two series colours, tinted 88% toward white for the\n others. Dark values (Message.css) aren't measured: the series colour at 30% over the dark\n background. */\n --sbk-chart-area-1: rgb(255, 237, 229);\n --sbk-chart-area-2: rgb(227, 255, 243);\n --sbk-chart-area-3: rgb(248, 238, 250);\n --sbk-chart-area-4: rgb(226, 243, 250);\n --sbk-dataviz-border: rgba(94, 93, 96, 0.13);\n --sbk-dataviz-tick: #5e5d60;\n}\n\n.sbk-dataviz {\n display: flex;\n flex-direction: column;\n /* Slack insets the chart card 8px from the block edges. */\n margin: 8px 0;\n padding: 12px;\n background-color: var(--sbk-container-bg);\n border: 1px solid var(--sbk-dataviz-border);\n border-radius: 12px;\n overflow: hidden;\n}\n\n.sbk-dataviz__title {\n /* Only the title is spaced off; the plot, axis label and legend stack flush. */\n margin: 0 0 8px;\n font-size: 18px;\n font-weight: 900;\n line-height: 24.0001px;\n}\n\n.sbk-dataviz__body {\n display: flex;\n align-items: stretch;\n /* The y-axis label is absolutely positioned (see below) so it doesn't steal width from the\n chart — Slack renders the chart at the container's full width and overlays the label. */\n position: relative;\n}\n\n.sbk-dataviz__body--pie {\n justify-content: center;\n}\n\n.sbk-dataviz__y-label {\n position: absolute;\n left: 0;\n /* Matches the reference: the label spans the plot area, not the tick/legend gutters below it. */\n top: 8px;\n bottom: 26px;\n width: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n writing-mode: vertical-rl;\n transform: rotate(180deg);\n font-size: 13px;\n font-weight: 700;\n text-align: center;\n pointer-events: none;\n}\n\n.sbk-dataviz__body > .sbk-chart {\n flex: 1;\n min-width: 0;\n}\n\n.sbk-chart {\n width: 100%;\n}\n\n.sbk-chart__svg {\n display: block;\n width: 100%;\n height: auto;\n}\n\n.sbk-chart__tick {\n fill: var(--sbk-dataviz-tick);\n font-size: 13px;\n}\n\n.sbk-dataviz__x-label {\n padding: 8px 0 0 74px;\n font-size: 13px;\n font-weight: 700;\n /* The label is centred within the remaining (post-gutter) width, not left-aligned. */\n line-height: 18px;\n text-align: center;\n}\n\n.sbk-dataviz__legend {\n display: flex;\n padding: 8px 0 0 74px;\n gap: 8px;\n flex-wrap: wrap;\n /* Centred under the plot area, like the x-axis label above it. */\n justify-content: center;\n line-height: 18px;\n}\n\n.sbk-dataviz__legend--pie {\n padding-left: 0;\n justify-content: center;\n}\n\n.sbk-dataviz__legend-entry {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 13px;\n}\n\n.sbk-dataviz__legend-dot {\n width: 10px;\n height: 10px;\n border-radius: 9999px;\n display: inline-block;\n flex-shrink: 0;\n}\n",".sbk-divider {\n margin: 8px 0;\n border: 0;\n border-top: 1px solid var(--sbk-divider);\n}\n","/* Slack drops every fallback block into the single (flex-row) wrapper of the unknown block. */\n.sbk-fallback-canary {\n display: flex;\n}\n\n/* Slack's header and section blocks are `width: 100%` there while a context block sizes to its\n content, so the row shrinks them in that proportion (174/174/84px of 432 in the reference). */\n.sbk-fallback-canary > .sbk-block--header,\n.sbk-fallback-canary > .sbk-block--section {\n width: 100%;\n}\n",".sbk-file {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 8px 0;\n padding: 8px 12px;\n max-width: 360px;\n background: rgba(29, 28, 29, 0.04);\n border: 1px solid var(--sbk-border);\n border-radius: 8px;\n color: var(--sbk-muted);\n}\n\n/* Slack's pillow file card: the border firms up and a soft shadow appears under the pointer. */\n.sbk-file:hover {\n border-color: rgba(94, 93, 96, 0.45);\n box-shadow: rgba(0, 0, 0, 0.047) 0 1px 2px;\n}\n\n.sbk-file__icon {\n display: flex;\n flex: 0 0 auto;\n}\n\n.sbk-file__body {\n display: flex;\n flex-direction: column;\n min-width: 0;\n}\n\n.sbk-file__name {\n color: var(--sbk-text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sbk-file__meta {\n font-size: 12px;\n text-transform: capitalize;\n}\n","/* Sizes measured from the Builder's level-1..4 header references (level 2 is Slack's default). */\n.sbk-header {\n margin: 15px 0 4px;\n font-weight: 400;\n}\n\n.sbk-header--level-1 {\n font-size: 18px;\n line-height: 1.33334;\n font-weight: 900;\n}\n\n.sbk-header--level-2 {\n font-size: 15px;\n line-height: 1.46668;\n font-weight: 900;\n}\n\n.sbk-header--level-3,\n.sbk-header--level-4 {\n font-size: 15px;\n line-height: 1.46668;\n font-weight: 700;\n}\n",".sbk-image {\n margin: 8px 0;\n}\n\n/* Slack sets the row as inline text on a 22px line: the title, then a nowrap caption holding the\n file size (which we can't know without fetching the image) and the caret button. */\n.sbk-image__title {\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-muted);\n}\n\n.sbk-image__title-text {\n display: inline-block;\n font-size: 13px;\n line-height: 18px;\n word-break: break-word;\n}\n\n.sbk-image__trigger {\n font-size: 13px;\n line-height: 18px;\n white-space: nowrap;\n}\n\n.sbk-image__toggle {\n display: inline-block;\n width: 15px;\n margin-top: -4px;\n padding: 0;\n border: 0;\n background: none;\n font-size: 15px;\n line-height: 15px;\n color: var(--sbk-link);\n cursor: pointer;\n}\n\n.sbk-image__caret {\n display: inline-block;\n width: 15px;\n height: 15px;\n vertical-align: middle;\n}\n\n.sbk-image__frame {\n position: relative;\n /* Slack always leaves a 5px gap above the image itself (the image container's own\n margin-top), independent of whether the title row above it has content or is hidden/0-height\n — so this lives on the frame rather than as the title row's margin-bottom, which would\n disappear along with the row when Container.css hides it for a direct-child image. */\n margin-top: 5px;\n /* Slack scales large images down to the message width but never upscales a small one. */\n max-width: 100%;\n width: fit-content;\n border-radius: 8px;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n /* Slack paints the photo as this box's background rather than an <img>. Chrome resamples the two\n differently when downscaling, which on a large photo shifts every high-contrast edge; painting\n it the same way makes our pixels match. The <img> stays for sizing and alt text. */\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: contain;\n}\n\n.sbk-image__img {\n display: block;\n opacity: 0;\n max-width: 100%;\n height: auto;\n}\n\n.sbk-image__fallback {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 88px;\n width: 100%;\n background: var(--sbk-badge-bg);\n color: var(--sbk-muted);\n font-size: 13px;\n padding: 16px;\n text-align: center;\n}\n",".sbk-input {\n margin: 0;\n}\n\n.sbk-input__label {\n font: 700 15px / 22px var(--sbk-font);\n color: var(--sbk-text);\n margin-bottom: 8px;\n}\n\n.sbk-input__optional {\n font-weight: 400;\n color: var(--sbk-muted);\n}\n\n/* Selects and date/time pickers default to a fixed ~190px width (their size as a section/actions accessory), but\n Slack's Builder stretches them to the full field width inside an `input` block. */\n.sbk-input__element .sbk-select,\n.sbk-input__element .sbk-datepicker,\n.sbk-input__element .sbk-timepicker {\n width: 100%;\n}\n\n/* Slack renders radio_buttons as a `<fieldset>` with a `<legend>` inside an `input` block, which\n carries ~24px of trailing space below the last option — 8px more than the bare-wrapper (no\n legend) rendering used in actions/section-accessory context. Confirmed via inspect.ts against\n catalog/input/radio-buttons vs catalog/actions/radio-buttons and catalog/section/radio-buttons. */\n.sbk-input__element .sbk-radio-buttons {\n margin-bottom: 24px;\n}\n\n/* Slack sets hints inline inside a body-text line box, so they sit flush under the element and the\n 13px text rides on a 22px line. */\n.sbk-input__hint {\n font: 400 15px / 22px var(--sbk-font);\n}\n\n.sbk-input__hint-text {\n font-size: 13px;\n line-height: 18px;\n color: var(--sbk-muted);\n}\n\n.sbk-input__hint-text--dispatch {\n margin-left: 4px;\n}\n\n.sbk-input__hint-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 13px;\n height: 20px;\n}\n\n.sbk-input__error {\n margin-top: 4px;\n font: 400 13px / 18px var(--sbk-font);\n color: var(--sbk-danger);\n}\n\n.sbk-input--error .sbk-input__element {\n --sbk-button-border: var(--sbk-danger);\n}\n","/* Slack expands a markdown block into one block per heading, paragraph, divider…, so their\n margins add up instead of collapsing (divider → heading is 8px + 15px). */\n.sbk-markdown {\n display: flex;\n flex-direction: column;\n font-family: var(--sbk-font);\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-text);\n overflow-wrap: anywhere;\n}\n\n.sbk-markdown__section {\n display: block;\n}\n\n.sbk-markdown__table-wrap {\n overflow: auto;\n}\n\n/* Slack draws the grid with separate borders (right + bottom on every cell, plus the outer top\n and left edges) so the corner cells can round off. */\n.sbk-markdown__table {\n border-collapse: separate;\n border-spacing: 0;\n padding: 4px 0;\n}\n\n.sbk-markdown__table th,\n.sbk-markdown__table td {\n padding: 2px 12px 0;\n height: 28px;\n font-weight: 400;\n text-align: left;\n vertical-align: top;\n white-space: nowrap;\n border-right: 1px solid var(--sbk-outline-ter);\n border-bottom: 1px solid var(--sbk-outline-ter);\n}\n\n/* Inline code keeps the cell's nowrap, even under a host's `.prose td > code` rule. */\n.sbk-markdown__table :is(th, td) code {\n white-space: inherit;\n}\n\n.sbk-markdown__table th {\n font-weight: 700;\n}\n\n.sbk-markdown__table > :first-child > tr:first-child > * {\n border-top: 1px solid var(--sbk-outline-ter);\n}\n\n.sbk-markdown__table tr > :first-child {\n border-left: 1px solid var(--sbk-outline-ter);\n}\n\n.sbk-markdown__table > :first-child > tr:first-child > :first-child {\n border-top-left-radius: 4px;\n}\n\n.sbk-markdown__table > :first-child > tr:first-child > :last-child {\n border-top-right-radius: 4px;\n}\n\n.sbk-markdown__table > :last-child > tr:last-child > :first-child {\n border-bottom-left-radius: 4px;\n}\n\n.sbk-markdown__table > :last-child > tr:last-child > :last-child {\n border-bottom-right-radius: 4px;\n}\n",":root,\n[data-theme=\"light\"] {\n --sbk-plan-text: rgb(94, 93, 96);\n}\n\n.sbk-plan {\n display: flex;\n flex-direction: column;\n margin: 8px 0;\n}\n\n.sbk-plan__pill {\n display: flex;\n align-self: flex-start;\n padding: 0;\n border: 0;\n background: transparent;\n border-radius: 12px;\n cursor: pointer;\n font: inherit;\n color: inherit;\n text-align: left;\n max-width: 100%;\n}\n\n/* Slack sets the toggle as inline text: the status icon hangs in a 20px indent and the icon and\n caret sit `vertical-align: middle` on the 13px title's line. */\n.sbk-plan__pill-content {\n display: block;\n padding-left: 20px;\n text-indent: -20px;\n font-size: 15px;\n line-height: 22px;\n}\n\n/* Slack's `toggleBarButton`: a 6% tint on hover, an inset blue ring for keyboard focus. */\n.sbk-plan__pill:hover {\n background-color: var(--sbk-hover-overlay);\n}\n\n.sbk-plan__pill:focus-visible {\n outline: 2px solid var(--sbk-focus-ring);\n outline-offset: -2px;\n}\n\n/* A 12px slot, as in Slack: the 13px check and warning overhang it rather than push the title. */\n.sbk-plan__pill-icon {\n display: inline-flex;\n width: 12px;\n /* Slack's `middle` lands here; ours sits 0.5px lower and grows the 22px line box. */\n vertical-align: -2px;\n margin: 0 8px 0 0;\n font-size: 13px;\n line-height: normal;\n text-indent: 0;\n}\n\n.sbk-plan__pill-title {\n font-size: 13px;\n /* Slack's is 19.5px, but with our Lato metrics that overhangs the 22px line by half a pixel. */\n line-height: 19px;\n color: var(--sbk-plan-text);\n}\n\n.sbk-plan__pill-chevron {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n margin-left: 4px;\n width: 13px;\n height: 13px;\n text-indent: 0;\n color: var(--sbk-plan-text);\n}\n\n/* Slack's toggle-bar status colours: a grey check once done, a red warning on failure, a blue\n spinner while running. The timeline's dots are grey, lighter while the step is waiting. */\n.sbk-status-icon--complete,\n.sbk-status-icon--dot-complete {\n color: var(--sbk-content-sec);\n}\n\n.sbk-status-icon--spinner {\n color: var(--sbk-link);\n}\n\n.sbk-status-icon--error {\n color: var(--sbk-code-text);\n}\n\n.sbk-status-icon--dot {\n display: block;\n}\n\n/* Slack's expanded plan is a timeline: each task is a row with a 12px step indicator (a 1px line\n in, the status icon, a 1px line out) and the task's content 8px to its right. */\n.sbk-plan__tasks {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.sbk-plan__task {\n display: flex;\n font-size: 13px;\n line-height: 19.0668px;\n color: var(--sbk-plan-text);\n}\n\n.sbk-plan__step {\n display: flex;\n flex: 0 0 12px;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n}\n\n.sbk-plan__line {\n width: 1px;\n background: var(--sbk-surface-ter);\n}\n\n.sbk-plan__line--top {\n flex: 0 0 6px;\n}\n\n/* Slack's first step sits 11px below the toggle, not 12. */\n.sbk-plan__task:first-child .sbk-plan__line--top {\n flex-basis: 11px;\n}\n\n.sbk-plan__line--bottom {\n flex: 1 1 auto;\n}\n\n.sbk-plan__task:last-child .sbk-plan__line--bottom {\n background: transparent;\n}\n\n/* A 12x8 box: the 5px dot centres in it; the 12px spinner and 13px warning overhang it evenly. */\n.sbk-plan__task-icon {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 8px;\n margin: 2px 0;\n}\n\n.sbk-plan__task-content {\n flex: 1 1 auto;\n min-width: 0;\n margin-left: 8px;\n}\n\n.sbk-plan__task:first-child .sbk-plan__task-content {\n padding-top: 6px;\n}\n\n/* Slack's `taskHeaderSlim`: an unstyled button, the title and a 13px caret 4px apart. A task with\n nothing to reveal gets the same header as a div, sized to its content like the button. */\n.sbk-plan__task-header {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 4px 0;\n border: 0;\n background: none;\n font: inherit;\n color: inherit;\n text-align: start;\n cursor: pointer;\n}\n\ndiv.sbk-plan__task-header {\n width: fit-content;\n cursor: default;\n}\n\n.sbk-plan__task-header:focus-visible {\n outline: 2px solid var(--sbk-focus-ring);\n outline-offset: -2px;\n}\n\n.sbk-plan__task-title {\n margin: 2px 0;\n}\n\n/* Slack's caret sits 1px below the header's centre line. */\n.sbk-plan__task-caret {\n display: flex;\n width: 13px;\n height: 13px;\n margin-top: 2px;\n}\n\n.sbk-plan__task-body {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.sbk-plan__task-sources {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.sbk-plan__task-source-link {\n color: var(--sbk-link);\n text-decoration: none;\n}\n\n.sbk-plan__task-source-link:hover {\n text-decoration: underline;\n}\n",".sbk-rich-text {\n font-family: var(--sbk-font);\n font-size: 15px;\n line-height: 22px;\n color: var(--sbk-text);\n overflow-wrap: anywhere;\n}\n\n.sbk-rich-text__section {\n display: block;\n}\n\n.sbk-rich-text__br {\n display: block;\n height: 8px;\n}\n\n.sbk-rich-text__jumbo-emoji {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.sbk-rich-text__quote {\n margin: 4px 0;\n padding-left: 16px;\n position: relative;\n}\n\n.sbk-rich-text__quote::before {\n content: \"\";\n position: absolute;\n inset: 0 auto 0 0;\n width: 4px;\n border-radius: 8px;\n background: var(--sbk-quote-bar);\n}\n\n.sbk-rich-text__pre {\n display: block;\n position: relative;\n margin: 4px 0;\n padding: 8px;\n font-family: var(--sbk-font-mono);\n font-size: 12px;\n line-height: 1.50001;\n color: var(--sbk-text);\n background: var(--sbk-code-bg);\n border: 1px solid var(--sbk-code-border);\n border-radius: 4px;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n}\n\n.sbk-rich-text__pre-copy {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 4px;\n right: 4px;\n width: 28px;\n height: 28px;\n color: rgb(69, 68, 71);\n background: rgba(29, 28, 29, 0.04);\n border-radius: 4px;\n /* Slack's copy control (`container__nrkPh`) is invisible until the code block is hovered. */\n opacity: 0;\n}\n\n.sbk-rich-text__pre:hover .sbk-rich-text__pre-copy,\n.sbk-rich-text__pre:focus-within .sbk-rich-text__pre-copy {\n opacity: 1;\n}\n\n.sbk-rich-text__color-swatch {\n display: inline-block;\n vertical-align: middle;\n margin: 0 0 -1px 2px;\n width: 13px;\n height: 13px;\n border: 1px solid var(--sbk-muted);\n border-radius: 3px;\n}\n\n.sbk-rich-list {\n margin: 0;\n list-style-position: outside;\n}\n\n.sbk-rich-list--ordered {\n padding: 0 0 0 11px;\n}\n\n.sbk-rich-list--bullet {\n padding: 0;\n list-style: none;\n}\n\n/* Slack's bullets are its icon font's presence glyphs, cycling dot, ring and square by indent,\n each 15px glyph centred in a 22px slot that hangs 28px left of the text. */\n.sbk-rich-list--bullet > .sbk-rich-list__item::before {\n content: \"\";\n display: inline-block;\n width: 22px;\n height: 15px;\n margin-left: -28px;\n margin-right: 6px;\n vertical-align: -2px;\n background: currentColor;\n mask: var(--sbk-bullet) center / 15px 15px no-repeat;\n}\n\n.sbk-rich-list--bullet:is([data-indent=\"0\"], [data-indent=\"3\"], [data-indent=\"6\"]) {\n --sbk-bullet: url(\"data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 2000 2000%22><path transform=%22matrix(1 0 0 -1 0 1700)%22 d=%22M1000 150C1249 150 1450 351 1450 600C1450 849 1249 1050 1000 1050C751 1050 550 849 550 600C550 351 751 150 1000 150Z%22/></svg>\");\n}\n\n.sbk-rich-list--bullet:is([data-indent=\"1\"], [data-indent=\"4\"], [data-indent=\"7\"]) {\n --sbk-bullet: url(\"data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 2000 2000%22><path transform=%22matrix(1 0 0 -1 0 1700)%22 d=%22M1000 150C1249 150 1450 351 1450 600C1450 849 1249 1050 1000 1050C751 1050 550 849 550 600C550 351 751 150 1000 150ZM1000 300C834 300 700 434 700 600C700 766 834 900 1000 900C1166 900 1300 766 1300 600C1300 434 1166 300 1000 300Z%22/></svg>\");\n}\n\n.sbk-rich-list--bullet:is([data-indent=\"2\"], [data-indent=\"5\"], [data-indent=\"8\"]) {\n --sbk-bullet: url(\"data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 2000 2000%22><path transform=%22matrix(1 0 0 -1 0 1700)%22 d=%22M550 303C550 214 614 150 703 150H1297C1386 150 1450 214 1450 303V897C1450 986 1386 1050 1297 1050H703C614 1050 550 986 550 897Z%22/></svg>\");\n}\n\n.sbk-rich-list__item {\n display: list-item;\n}\n\n.sbk-rich-list--ordered > .sbk-rich-list__item {\n margin: 0 0 0 20px;\n padding-left: 8px;\n}\n\n.sbk-rich-list--bullet > .sbk-rich-list__item {\n margin: 0 0 0 28px;\n}\n\n/* A list with `border: 1` carries the same left bar as a quote, so the two join visually. */\n.sbk-rich-list--bordered {\n position: relative;\n margin-left: 0;\n}\n\n.sbk-rich-list--bordered::before {\n content: \"\";\n position: absolute;\n inset: 0 auto 0 0;\n width: 4px;\n border-radius: 8px;\n background: var(--sbk-quote-bar);\n}\n",".sbk-section {\n display: flex;\n margin: 8px 0 4px;\n}\n\n.sbk-section__content {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.sbk-section__fields {\n display: flex;\n flex-wrap: wrap;\n}\n\n.sbk-section__field {\n width: calc(50% - 16px);\n}\n\n.sbk-section__field:nth-child(even) {\n margin-left: 16px;\n}\n\n.sbk-section__text + .sbk-section__fields {\n margin-top: 12px;\n}\n\n.sbk-section__text--clamped {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.sbk-section__toggle {\n display: block;\n margin-top: 2px;\n padding: 0;\n border: 0;\n background: none;\n font: inherit;\n font-size: 13px;\n color: var(--sbk-link);\n cursor: pointer;\n}\n\n.sbk-section__accessory {\n display: flex;\n position: relative;\n margin: 0 0 4px 8px;\n}\n\n.sbk-section--stacked {\n flex-direction: column;\n}\n\n.sbk-section--stacked .sbk-section__accessory {\n margin: 4px 0;\n}\n","/* Values measured from Slack's Block Kit Builder for the `table` block. */\n:root,\n[data-theme=\"light\"] {\n --sbk-table-border: rgba(94, 93, 96, 0.13);\n}\n\n.sbk-table {\n padding: 4px 0;\n}\n\n/* Scrolls wide tables while the hover actions stay pinned to the visible corner. */\n.sbk-table__scroll {\n overflow: auto;\n}\n\n/* Separate borders (right + bottom on every cell, plus the outer top and left edges), as Slack\n draws them: collapsed borders land the rows on half pixels. */\n.sbk-table__table {\n border-collapse: separate;\n border-spacing: 0;\n font-size: 15px;\n line-height: 22px;\n}\n\n.sbk-table__thead,\n.sbk-table__tbody {\n background-color: var(--sbk-bg);\n}\n\n.sbk-table__th,\n.sbk-table__td {\n box-sizing: border-box;\n height: 28px;\n padding: 2px 12px 0;\n text-align: left;\n vertical-align: top;\n white-space: nowrap;\n border-right: 1px solid var(--sbk-table-border);\n border-bottom: 1px solid var(--sbk-table-border);\n}\n\n.sbk-table__table > :first-child > tr:first-child > * {\n border-top: 1px solid var(--sbk-table-border);\n}\n\n.sbk-table__table tr > :first-child {\n border-left: 1px solid var(--sbk-table-border);\n}\n\n.sbk-table__th {\n font-weight: 700;\n}\n\n.sbk-table__thead tr:first-child th:first-child {\n border-top-left-radius: 4px;\n}\n\n.sbk-table__thead tr:first-child th:last-child {\n border-top-right-radius: 4px;\n}\n\n.sbk-table__tbody tr:last-child td:first-child {\n border-bottom-left-radius: 4px;\n}\n\n.sbk-table__tbody tr:last-child td:last-child {\n border-bottom-right-radius: 4px;\n}\n",":root,\n[data-theme=\"light\"] {\n --sbk-task-card-text: rgb(94, 93, 96);\n}\n\n.sbk-task-card {\n display: flex;\n flex-direction: column;\n margin: 8px 0;\n}\n\n.sbk-task-card__pill {\n display: flex;\n align-self: flex-start;\n padding: 0;\n border: 0;\n background: transparent;\n border-radius: 12px;\n cursor: pointer;\n font: inherit;\n color: inherit;\n text-align: left;\n max-width: 100%;\n}\n\n/* Slack sets the toggle as inline text: the status icon hangs in a 20px indent and the icon and\n caret sit `vertical-align: middle` on the 13px title's line. */\n.sbk-task-card__pill-content {\n display: block;\n padding-left: 20px;\n text-indent: -20px;\n font-size: 15px;\n line-height: 22px;\n}\n\n/* Slack's `toggleBarButton`: a 6% tint on hover, an inset blue ring for keyboard focus. A card with\n nothing to reveal gets the same pill as a div, without either. */\ndiv.sbk-task-card__pill {\n cursor: default;\n}\n\nbutton.sbk-task-card__pill:hover {\n background-color: var(--sbk-hover-overlay);\n}\n\n.sbk-task-card__pill:focus-visible {\n outline: 2px solid var(--sbk-focus-ring);\n outline-offset: -2px;\n}\n\n/* A 12px slot, as in Slack: the 13px check and warning overhang it rather than push the title. */\n.sbk-task-card__pill-icon {\n display: inline-flex;\n width: 12px;\n /* Slack's `middle` lands here; ours sits 0.5px lower and grows the 22px line box. */\n vertical-align: -2px;\n margin: 0 8px 0 0;\n font-size: 13px;\n line-height: normal;\n text-indent: 0;\n}\n\n.sbk-task-card__pill-title {\n font-size: 13px;\n /* Slack's is 19.5px, but with our Lato metrics that overhangs the 22px line by half a pixel. */\n line-height: 19px;\n color: var(--sbk-task-card-text);\n}\n\n.sbk-task-card__pill-chevron {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n margin-left: 4px;\n width: 13px;\n height: 13px;\n text-indent: 0;\n color: var(--sbk-task-card-text);\n}\n\n/* Slack's expanded card is a short timeline: the details, with a 1px rule 6px in from the left,\n then a step whose 5px dot and rule sit in a 12px rail 8px left of the output and sources. */\n.sbk-task-card__body {\n font-size: 13px;\n line-height: 19.0668px;\n color: var(--sbk-task-card-text);\n}\n\n.sbk-task-card__details {\n position: relative;\n padding: 0 20px;\n}\n\n.sbk-task-card__details::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 6px;\n width: 1px;\n background-color: var(--sbk-surface-ter);\n}\n\n/* Slack underlines the links inside a task's rich text. */\n.sbk-task-card__details .sbk-rtmini__link,\n.sbk-task-card__output .sbk-rtmini__link {\n text-decoration: underline;\n}\n\n.sbk-task-card__step {\n display: flex;\n gap: 8px;\n}\n\n.sbk-task-card__rail {\n display: flex;\n flex: 0 0 12px;\n flex-direction: column;\n align-items: center;\n margin-top: 7px;\n}\n\n.sbk-task-card__dot {\n display: flex;\n padding-bottom: 2px;\n}\n\n.sbk-task-card__line {\n flex: 1 1 auto;\n width: 1px;\n margin-top: 8px;\n background-color: var(--sbk-surface-ter);\n}\n\n.sbk-task-card__step-content {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.sbk-task-card__output {\n margin-bottom: 4px;\n}\n\n.sbk-task-card__sources {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.sbk-task-card__source-link {\n color: var(--sbk-link);\n text-decoration: none;\n}\n\n.sbk-task-card__source-link:hover {\n text-decoration: underline;\n}\n",".sbk-video {\n padding: 8px 0;\n max-width: 360px;\n line-height: 22px;\n}\n\n.sbk-video__byline {\n color: var(--sbk-muted);\n white-space: nowrap;\n}\n\n.sbk-video__provider-icon {\n width: 16px;\n height: 16px;\n margin: 0 8px 3px 0;\n border-radius: 2px;\n vertical-align: middle;\n}\n\n.sbk-video__provider {\n font-weight: 900;\n color: var(--sbk-text);\n}\n\n.sbk-video__separator {\n color: rgb(221, 221, 221);\n white-space: pre;\n}\n\n.sbk-video__description {\n color: var(--sbk-text);\n}\n\n.sbk-video__title {\n color: var(--sbk-link);\n}\n\n/* A plain `c-link`: underlined only on hover. */\n.sbk-video__title a {\n color: inherit;\n text-decoration: none;\n}\n\n.sbk-video__title a:hover {\n text-decoration: underline;\n}\n\n/* Slack's caret that expands the inline player. */\n.sbk-video__expand {\n display: inline-block;\n margin: -4px 0 0 3px;\n vertical-align: middle;\n line-height: 15px;\n}\n\n.sbk-video__frame {\n display: block;\n position: relative;\n /* Slack renders a fixed 360x283 box regardless of the thumbnail's own aspect ratio, letterboxing\n the thumbnail inside it. */\n width: 360px;\n height: 283px;\n max-width: 100%;\n background: #000;\n overflow: hidden;\n}\n\n/* Slack's p-video_overlay--controls: a bottom gradient fades in while hovered or focused. */\n.sbk-video__frame::before {\n content: \"\";\n position: absolute;\n inset: 0;\n z-index: 1;\n pointer-events: none;\n opacity: 0;\n background: linear-gradient(rgba(29, 28, 29, 0), rgba(29, 28, 29, 0.7) 70%);\n transition: opacity 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n.sbk-video__frame:hover::before,\n.sbk-video__frame:focus-within::before,\n.sbk-video__frame:focus-visible::before {\n opacity: 1;\n}\n\n.sbk-video__thumb {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.sbk-video__play {\n position: absolute;\n left: 16px;\n bottom: 16px;\n display: flex;\n align-items: center;\n gap: 8px;\n height: 30px;\n padding: 4px 8px 4px 6px;\n font-weight: 700;\n color: #fff;\n background: rgba(29, 28, 29, 0.8);\n border-radius: 4px;\n z-index: 2;\n transition:\n background 80ms cubic-bezier(0.36, 0.19, 0.29, 1),\n opacity 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n","/* Messages use Slack's small button variant. */\n.sbk-button {\n display: block;\n position: relative;\n height: 28px;\n min-width: 56px;\n padding: 0 8px 1px;\n border: 1px solid var(--sbk-button-border);\n border-radius: 4px;\n background: var(--sbk-bg);\n background-clip: padding-box;\n color: var(--sbk-text);\n font: 700 13px / normal var(--sbk-font);\n text-align: center;\n white-space: nowrap;\n cursor: pointer;\n appearance: none;\n transition:\n color 80ms,\n background-color 80ms,\n border-color 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n/* Slack's `c-button` hover model: outline buttons swap to a light gray fill, filled buttons\n darken through a `multiply` gradient overlay. Both raise a two-layer shadow on hover and drop\n it while pressed. Values read from the Block Kit Builder's live stylesheet. */\n.sbk-button:hover {\n background-color: var(--sbk-button-hover-bg);\n box-shadow: var(--sbk-button-hover-shadow);\n}\n\n.sbk-button:active {\n background-color: var(--sbk-button-hover-bg);\n box-shadow: none;\n}\n\n.sbk-button--primary,\n.sbk-button--danger {\n border: 0;\n color: #fff;\n}\n\n.sbk-button--primary {\n background: var(--sbk-primary);\n}\n\n.sbk-button--primary:hover,\n.sbk-button--primary:active,\n.sbk-button--danger:hover,\n.sbk-button--danger:active {\n background-image: linear-gradient(var(--sbk-button-overlay), var(--sbk-button-overlay));\n background-blend-mode: multiply;\n}\n\n.sbk-button--primary:hover {\n --sbk-button-overlay: #0a403221;\n background-color: var(--sbk-primary);\n}\n\n.sbk-button--primary:active {\n --sbk-button-overlay: #0a403238;\n background-color: var(--sbk-primary);\n}\n\n.sbk-button--danger {\n background: var(--sbk-danger);\n}\n\n.sbk-button--danger:hover {\n --sbk-button-overlay: #59000f17;\n background-color: var(--sbk-danger);\n}\n\n.sbk-button--danger:active {\n --sbk-button-overlay: #59000f38;\n background-color: var(--sbk-danger);\n}\n",".sbk-checkboxes {\n display: flex;\n flex-direction: column;\n /* Slack renders checkboxes inside a `<fieldset>` in every context (input, section accessory,\n actions), which carries a fixed ~24px bottom margin beyond the last option row — confirmed\n via inspect.ts against catalog/input/checkboxes, catalog/section/checkboxes, and\n catalog/actions/checkboxes (all measured 24px of trailing space). */\n margin-bottom: 24px;\n}\n\n.sbk-checkboxes__option {\n display: flex;\n align-items: flex-start;\n /* Slack's Builder packs option rows with zero gap between them — each row's own height (22px\n for a text-only option, 44px for a text+description option) sets the pitch on its own,\n confirmed via inspect.ts against the same three fixtures above. */\n line-height: 22px;\n cursor: pointer;\n}\n\n.sbk-checkboxes__input {\n appearance: none;\n flex: 0 0 auto;\n width: 14px;\n height: 14px;\n margin: 6px 4px 2px 4px;\n border: 1px solid var(--sbk-button-border);\n border-radius: 4px;\n background: var(--sbk-bg);\n cursor: pointer;\n position: relative;\n transition: 80ms cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n/* Slack's `.p-checkboxes_element .c-input_checkbox`: darker border plus a faint overlay on hover,\n a stronger overlay while pressed, and a 2px blue ring for keyboard focus. */\n.sbk-checkboxes__option:hover .sbk-checkboxes__input:not(:checked) {\n border-color: var(--sbk-outline-pry);\n background-image: linear-gradient(var(--sbk-interaction-hover), var(--sbk-interaction-hover));\n}\n\n.sbk-checkboxes__input:not(:checked):active {\n background-image: linear-gradient(var(--sbk-interaction-pressed), var(--sbk-interaction-pressed));\n}\n\n.sbk-checkboxes__input:focus-visible {\n outline: 2px solid var(--sbk-focus-ring);\n outline-offset: 1px;\n}\n\n/* Slack's checked box is solid blue with no border; hover/focus and press darken it with the same\n multiply overlays Slack's blue buttons use. */\n.sbk-checkboxes__input:checked {\n border-color: transparent;\n background-color: var(--sbk-checkbox-checked);\n}\n\n.sbk-checkboxes__option:hover .sbk-checkboxes__input:checked,\n.sbk-checkboxes__input:checked:focus-visible {\n background-image: linear-gradient(\n var(--sbk-checkbox-checked-hover),\n var(--sbk-checkbox-checked-hover)\n );\n background-blend-mode: var(--sbk-blend-interaction);\n}\n\n.sbk-checkboxes__input:checked:active {\n background-image: linear-gradient(\n var(--sbk-checkbox-checked-pressed),\n var(--sbk-checkbox-checked-pressed)\n );\n background-blend-mode: var(--sbk-blend-interaction);\n}\n\n.sbk-checkboxes__input:checked::after {\n content: \"\";\n position: absolute;\n left: 4px;\n top: 1px;\n width: 4px;\n height: 8px;\n border: solid var(--sbk-on-highlight);\n border-width: 0 2px 2px 0;\n transform: rotate(45deg);\n}\n\n.sbk-checkboxes__body {\n display: flex;\n flex-direction: column;\n /* Slack's c-label__text is nudged up a pixel with `position: relative; top: -1px`. */\n position: relative;\n top: -1px;\n}\n\n.sbk-checkboxes__description,\n.sbk-checkboxes__description .sbk-mrkdwn {\n color: var(--sbk-content-sec);\n}\n","/* Slack's `c-date_picker_calendar`. */\n.sbk-calendar {\n padding: 8px;\n font-family: var(--sbk-font);\n font-size: 15px;\n line-height: 20px;\n color: var(--sbk-text);\n}\n\n.sbk-calendar__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 32px;\n margin-bottom: 16px;\n font-weight: 700;\n}\n\n.sbk-calendar__nav {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: none;\n color: var(--sbk-text);\n cursor: pointer;\n transition-property: color, background-color;\n transition-duration: 80ms;\n transition-timing-function: cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n.sbk-calendar__nav:hover {\n background: rgba(29, 155, 209, 0.1);\n}\n\n.sbk-calendar__nav:active {\n background: var(--sbk-highlight);\n color: var(--sbk-on-highlight);\n}\n\n.sbk-calendar__weekdays,\n.sbk-calendar__grid {\n display: grid;\n /* 44px cells whose 1px borders overlap their neighbours (Slack's `margin: -1px`). */\n grid-template-columns: repeat(7, 43px);\n text-align: center;\n}\n\n.sbk-calendar__weekdays {\n padding-right: 1px;\n}\n\n.sbk-calendar__weekdays span {\n padding: 4px 0 6px;\n font-size: 13px;\n color: var(--sbk-content-sec);\n}\n\n.sbk-calendar__cell {\n position: relative;\n min-height: 42px;\n margin: 0 -1px -1px 0;\n padding: 10px 0;\n font: inherit;\n line-height: 20px;\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid var(--sbk-calendar-grid);\n cursor: pointer;\n}\n\n.sbk-calendar__cell--empty {\n border-color: transparent;\n background: none;\n cursor: default;\n}\n\n/* A light-blue wash with a matching border on hover, raised above its neighbours' borders. */\n.sbk-calendar__cell:hover:not(.sbk-calendar__cell--empty, .sbk-calendar__cell--selected) {\n z-index: 1;\n border-color: rgba(29, 155, 209, 0.3);\n background: rgba(29, 155, 209, 0.2);\n}\n\n.sbk-calendar__cell--today {\n color: var(--sbk-link);\n}\n\n/* Today gets a 32px ring centred in its cell (white when today is also selected). */\n.sbk-calendar__cell--today::after {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 32px;\n height: 32px;\n border: 1px solid var(--sbk-highlight);\n border-radius: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n}\n\n.sbk-calendar__cell--selected {\n z-index: 1;\n color: var(--sbk-on-highlight);\n background: var(--sbk-highlight);\n border-color: var(--sbk-highlight);\n border-radius: 4px;\n}\n\n.sbk-calendar__cell--selected.sbk-calendar__cell--today::after {\n border-color: var(--sbk-on-highlight);\n}\n\n.sbk-calendar__cell:focus-visible {\n z-index: 2;\n}\n\n/* Slack's `c-date_picker__clear_selection`: a full-width bold footer that turns blue on hover. */\n.sbk-calendar__footer {\n margin: 16px -16px -16px;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n.sbk-calendar__clear {\n display: block;\n width: 100%;\n height: 44px;\n padding: 0;\n font: 700 15px var(--sbk-font);\n color: var(--sbk-text);\n background: none;\n border: none;\n border-radius: 0 0 6px 6px;\n cursor: pointer;\n}\n\n.sbk-calendar__clear:hover,\n.sbk-calendar__clear:focus-visible {\n color: var(--sbk-link);\n}\n","@import \"./calendar/Calendar.css\";\n\n.sbk-datepicker {\n position: relative;\n width: 194.5px;\n color: var(--sbk-muted);\n}\n\n.sbk-datepicker__input_wrap {\n position: relative;\n}\n\n/* Slack's glyph sits on an 18px text line centred in the 28px field; the line's baseline rounds\n to a whole pixel, which drops the icon 0.45px below its 13px em box's true centre. Chrome snaps\n `top` to whole pixels, so the last fraction goes in a transform, as Slack's text glyph isn't. */\n.sbk-datepicker__icon {\n position: absolute;\n left: 8px;\n top: 8px;\n transform: translateY(-0.1px);\n width: 13px;\n height: 13px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-datepicker__input {\n width: 100%;\n height: 28px;\n /* Slack's small c-input_text: 8px / 7px vertical padding around an 18px line. */\n padding: 8px 28px 7px;\n font: 13px / 18px var(--sbk-font);\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n cursor: pointer;\n}\n\n/* Slack's c-date_picker__select_btn: a 28px square on the right with a 20px chevron. */\n.sbk-datepicker__chevron {\n position: absolute;\n right: 4px;\n top: 4px;\n width: 20px;\n height: 20px;\n color: var(--sbk-content-sec);\n pointer-events: none;\n}\n\n.sbk-datepicker__input::placeholder {\n color: var(--sbk-muted);\n}\n\n.sbk-datepicker__popup {\n position: absolute;\n z-index: 10;\n top: 0;\n left: 0;\n /* Slack's datepicker dropdown: 16px padding, hairline ring plus a soft drop shadow. */\n padding: 16px;\n background: var(--sbk-menu-bg);\n border-radius: 6px;\n box-shadow: var(--sbk-popover-shadow);\n}\n",".sbk-datetimepicker {\n position: relative;\n display: block;\n width: 100%;\n}\n\n/* Slack's Builder renders a datetimepicker as two side-by-side boxes (date, then time) rather\n than a single combined control. */\n.sbk-datetimepicker__row {\n display: flex;\n gap: 8px;\n}\n\n/* The time zone caption sits under the time box only, so each box gets its own column. */\n.sbk-datetimepicker__column {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.sbk-datetimepicker__control {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n height: 36px;\n padding: 4px 7px 4px 11px;\n font: 15px var(--sbk-font);\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n cursor: pointer;\n}\n\n/* Slack's medium date input: the icon sits 12px in, the text 32px in, and the chevron is centred\n in a 36px button. Our border is inside the box, so each inset is 1px smaller here. */\n.sbk-datetimepicker__control--date {\n padding: 4px 7px 4px 11px;\n}\n\n/* Slack's medium time select: 12px side padding, text on a 22.5px line 33px in. */\n.sbk-datetimepicker__control--time {\n padding: 4px 11px;\n line-height: 22.5px;\n}\n\n.sbk-datetimepicker__icon {\n flex: 0 0 auto;\n width: 15px;\n height: 15px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-datetimepicker__value,\n.sbk-datetimepicker__placeholder {\n flex: 1;\n min-width: 0;\n text-align: left;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.sbk-datetimepicker__chevron {\n flex: 0 0 auto;\n width: 20px;\n height: 20px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-datetimepicker__placeholder {\n color: var(--sbk-muted);\n}\n\n.sbk-datetimepicker__timezone {\n margin: 4px 0 0;\n font-size: 13px;\n line-height: 18px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-datetimepicker__popup {\n position: absolute;\n z-index: 10;\n top: 0;\n left: 0;\n /* Slack's datepicker dropdown: 16px padding, hairline ring plus a soft drop shadow. */\n padding: 16px;\n background: var(--sbk-menu-bg);\n border-radius: 6px;\n box-shadow: var(--sbk-popover-shadow);\n}\n\n.sbk-datetimepicker__time-row {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px;\n border-top: 1px solid var(--sbk-border);\n}\n\n.sbk-datetimepicker__time-input {\n flex: 1;\n height: 28px;\n padding: 4px 8px;\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n font: 13px var(--sbk-font);\n}\n\n.sbk-datetimepicker__apply {\n height: 28px;\n padding: 0 12px;\n border: 0;\n border-radius: 4px;\n background: var(--sbk-primary);\n color: #fff;\n font: 700 13px var(--sbk-font);\n cursor: pointer;\n}\n\n.sbk-datetimepicker__apply:disabled {\n opacity: 0.5;\n cursor: default;\n}\n",".sbk-feedback-buttons {\n display: inline-flex;\n align-items: center;\n}\n\n.sbk-icon-button--active {\n color: var(--sbk-primary);\n background: var(--sbk-badge-bg);\n}\n",".sbk-file-input {\n /* Slack renders a `file_input` element inside a `<fieldset>` that carries its own\n margin-bottom (~20px), on top of the label/hint spacing every other Input-block element\n shares — confirmed via inspect.ts against extra/modal/rich-and-file's reference. */\n margin-bottom: 20px;\n}\n\n.sbk-file-input__button {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n height: 36px;\n min-width: 80px;\n padding: 0 12px 1px;\n border: 1px solid var(--sbk-button-border);\n border-radius: 8px;\n background: var(--sbk-bg);\n color: var(--sbk-text);\n font: 700 15px var(--sbk-font);\n cursor: pointer;\n}\n\n.sbk-file-input__button svg {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n}\n\n.sbk-file-input__native {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n opacity: 0;\n}\n\n.sbk-file-input__list {\n list-style: none;\n margin: 8px 0 0;\n padding: 0;\n}\n\n.sbk-file-input__item {\n font-size: 13px;\n color: var(--sbk-text);\n padding: 2px 0;\n}\n",".sbk-icon-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n background: none;\n border-radius: 8px;\n color: rgb(69, 68, 71);\n cursor: pointer;\n transition-property: color, background-color, border-color;\n transition-duration: 80ms;\n transition-timing-function: cubic-bezier(0.36, 0.19, 0.29, 1);\n}\n\n/* Slack's `c-icon_button--default`: solid gray fill and full-strength text on hover, a darker\n multiply overlay while pressed. */\n.sbk-icon-button:hover,\n.sbk-icon-button:active {\n color: var(--sbk-text);\n background-color: var(--sbk-icon-button-hover-bg);\n}\n\n.sbk-icon-button:active {\n background-image: linear-gradient(var(--sbk-interaction-pressed), var(--sbk-interaction-pressed));\n background-blend-mode: var(--sbk-blend-interaction);\n}\n\n.sbk-icon-button svg {\n width: 18px;\n height: 18px;\n}\n",".sbk-section__accessory--image {\n margin-left: 12px;\n}\n\n.sbk-image-element {\n display: block;\n width: 88px;\n height: 88px;\n border-radius: 8px;\n object-fit: cover;\n}\n",".sbk-overflow {\n position: relative;\n display: inline-block;\n}\n\n.sbk-overflow__button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 28px;\n padding: 0 7px 1px;\n background: var(--sbk-bg);\n border: 1px solid var(--sbk-button-border);\n border-radius: 4px;\n color: var(--sbk-text);\n cursor: pointer;\n}\n\n/* The trigger is a small outline `c-button` in Slack, so it shares Button.css's hover. */\n.sbk-overflow__button:hover {\n background: var(--sbk-button-hover-bg);\n box-shadow: var(--sbk-button-hover-shadow);\n}\n\n.sbk-overflow__button:active {\n box-shadow: none;\n}\n\n.sbk-overflow__menu {\n position: absolute;\n z-index: 10;\n top: 0;\n right: 0;\n /* Slack's `c-menu`: 200-300px wide, hairline ring plus drop shadow, 12px list padding. */\n min-width: 200px;\n max-width: 300px;\n width: max-content;\n padding: 12px 0;\n background: var(--sbk-menu-bg);\n border-radius: 4px;\n box-shadow: var(--sbk-menu-shadow);\n}\n\n/* `c-menu_item__button`: 15px text on a 28px line, 24px side padding. */\n.sbk-overflow__option {\n min-height: 28px;\n padding: 0 24px;\n font: 15px / 28px var(--sbk-font);\n color: var(--sbk-text);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n}\n\n/* Highlighted (pointer or keyboard) `c-menu_item__button`: white on blue. */\n.sbk-overflow__option[data-active] {\n color: var(--sbk-menu-highlight-text);\n background: var(--sbk-menu-highlight-bg);\n}\n",".sbk-radio-buttons {\n display: flex;\n flex-direction: column;\n /* ~24px of trailing space below the last option in every context (actions, section accessory,\n input), matching checkboxes. Confirmed against catalog/{actions,section,input}/radio-buttons. */\n margin-bottom: 24px;\n}\n\n.sbk-radio-buttons__option {\n display: flex;\n align-items: flex-start;\n /* Zero gap between option rows — each row's own height (22px text-only, 44px with a\n description) sets the pitch, confirmed via inspect.ts against the same fixtures above. */\n line-height: 22px;\n cursor: pointer;\n}\n\n.sbk-radio-buttons__input {\n flex: 0 0 auto;\n width: 13px;\n height: 13px;\n margin: 7px 7px 0 5px;\n accent-color: #000;\n cursor: pointer;\n}\n\n.sbk-radio-buttons__body {\n display: flex;\n flex-direction: column;\n /* Slack's c-label__text is nudged up a pixel with `position: relative; top: -1px`. */\n position: relative;\n top: -1px;\n}\n\n.sbk-radio-buttons__description,\n.sbk-radio-buttons__description .sbk-mrkdwn {\n color: var(--sbk-content-sec);\n}\n","/* Slack's modal rich-text editor: a grey formatting toolbar over a text area, in a box that\n measures 118px tall in the reference (the Aa/emoji button row Slack draws below it overflows\n that frozen box in the capture, so it's left out). */\n.sbk-rich-text-input {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 118px;\n background: var(--sbk-bg);\n border: 1px solid rgba(29, 28, 29, 0.13);\n border-radius: 4px;\n}\n\n.sbk-rich-text-input__toolbar {\n display: flex;\n align-items: center;\n height: 38px;\n padding: 4px;\n background: #f8f8f8;\n border-radius: 8px 8px 0 0;\n}\n\n.sbk-rich-text-input__tool {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n /* Slack's buttons carry no bottom margin, so they sit 2px down the 30px bar, not centred in it. */\n margin: 2px 2px 0;\n color: rgba(29, 28, 29, 0.7);\n opacity: 0.3;\n}\n\n.sbk-rich-text-input__separator {\n width: 1px;\n height: 20px;\n margin: 0 4px;\n background: rgba(29, 28, 29, 0.13);\n}\n\n.sbk-rich-text-input__editor {\n flex: 1;\n padding: 8px 12px;\n font: 15px / 22px var(--sbk-font);\n color: var(--sbk-text);\n overflow-y: auto;\n outline: none;\n}\n\n.sbk-rich-text-input__editor:empty::before {\n content: attr(data-placeholder);\n color: var(--sbk-muted);\n}\n",".sbk-select {\n position: relative;\n width: 190px;\n}\n\n.sbk-select__control {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n height: 28px;\n padding: 4px 8px;\n font: 13px var(--sbk-font);\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n cursor: pointer;\n}\n\n/* In an input block, Slack's multi-select closed control uses a taller (36px) box than a\n single-select's (28px), to give its chip row breathing room, even with no chips selected yet.\n As a section/actions accessory it stays a 28px button. */\n.sbk-input__element .sbk-select--multi .sbk-select__control {\n height: 36px;\n padding: 4px 28px 4px 12px;\n font-size: 15px;\n line-height: 22px;\n}\n\n/* With chips it grows to fit their rows: each chip sits 4px in from the box and the one above. */\n.sbk-input__element .sbk-select--chips .sbk-select__control {\n height: auto;\n min-height: 36px;\n align-items: flex-start;\n padding: 0 28px 4px 4px;\n}\n\n/* Slack's p-block_kit_max_selected_items__info, tucked into the label's 8px bottom padding. */\n.sbk-select__max-info {\n display: none;\n}\n\n.sbk-input__element .sbk-select__max-info {\n display: block;\n margin: -8px 0 8px;\n font-size: 15px;\n line-height: 22px;\n color: rgb(97, 96, 97);\n}\n\n/* Its closed input-block box is a text field, not a dropdown: no chevron, 15px placeholder. */\n.sbk-input__element .sbk-select--multi .sbk-select__placeholder {\n color: rgb(94, 93, 96);\n}\n\n.sbk-input__element .sbk-select--multi .sbk-select__chevron {\n display: none;\n}\n\n/* As a section accessory, Slack collapses a multi-select into a content-sized outline button\n (\"Select conversations\") that opens the picker, rather than a 190px select with a chevron. */\n.sbk-section__accessory .sbk-select--multi {\n width: auto;\n}\n\n.sbk-section__accessory .sbk-select--multi .sbk-select__control {\n padding: 0 12px 1px;\n font-weight: 700;\n border-color: rgba(94, 93, 96, 0.45);\n border-radius: 4px;\n}\n\n.sbk-section__accessory .sbk-select--multi .sbk-select__placeholder {\n color: var(--sbk-text);\n}\n\n.sbk-section__accessory .sbk-select--multi .sbk-select__chevron {\n display: none;\n}\n\n/* Slack's Builder uses a taller \"medium\" control (with 15px text) on a modal/Home tab surface than the\n message-surface preview's 28px \"small\" control. */\n.sbk-select--medium .sbk-select__control {\n height: 36px;\n padding: 4px 12px;\n font-size: 15px;\n}\n\n/* Slack's single select is a full-width text input with the chevron laid over its right edge, so\n the text runs under the chevron and only truncates at the input's own 8px padding. */\n.sbk-select:not(.sbk-select--multi) :is(.sbk-select__value, .sbk-select__placeholder) {\n margin-right: -28px;\n}\n\n.sbk-select__value,\n.sbk-select__placeholder {\n flex: 1;\n text-align: left;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.sbk-select__placeholder {\n color: var(--sbk-muted);\n}\n\n/* Slack draws a chosen value in an unbordered layer 8px in, and its chevron 28px from the right;\n our border sits inside the control, so pull both 1px outwards. The placeholder keeps the\n border's inset, as Slack's lives in the bordered <input>. */\n.sbk-select__value {\n margin-left: -1px;\n}\n\n.sbk-select__chevron {\n margin-right: -1px;\n}\n\n/* An id Slack couldn't resolve: c-small_channel_entity with a c-missing_channel--private pill. */\n.sbk-select__entity {\n display: flex;\n align-items: center;\n height: 20px;\n line-height: 20px;\n}\n\n.sbk-select__channel-hash {\n flex: 0 0 auto;\n margin-right: 8px;\n}\n\n.sbk-select__entity-text {\n display: flow-root;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.sbk-select__missing-channel {\n padding: 0 2px 1px 0;\n color: rgba(29, 28, 29, 0.7);\n background: rgba(29, 28, 29, 0.13);\n border-radius: 3px;\n}\n\n.sbk-select__missing-channel svg {\n display: inline-block;\n vertical-align: -1.625px;\n}\n\n/* ... and c-small_member_list_entity while the member loads: a blank avatar and a name bar,\n clipped square where the name's box ends. */\n.sbk-select__skeleton {\n display: flex;\n align-items: center;\n height: 20px;\n}\n\n.sbk-select__skeleton-avatar {\n flex: 0 0 auto;\n width: 20px;\n height: 20px;\n margin: 0 8px 0 6px;\n background: rgb(234, 234, 234);\n border-radius: clamp(4px, min(22.222%, 12px), 12px);\n}\n\n.sbk-select__skeleton-name {\n flex: 0 0 auto;\n width: 109px;\n height: 8px;\n margin-top: 2px;\n overflow: hidden;\n}\n\n.sbk-select__skeleton-name::before {\n content: \"\";\n display: block;\n width: 120px;\n height: 8px;\n background: rgb(234, 234, 234);\n border-radius: 1000px;\n}\n\n.sbk-select__chevron {\n flex: 0 0 auto;\n width: 20px;\n height: 20px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-select__chips {\n display: flex;\n flex-wrap: wrap;\n flex: 1;\n min-width: 0;\n}\n\n/* Slack's c-token--medium: a 28px pale-blue tag with a bold 15px label and an 18px \"x\". */\n.sbk-select__chip {\n display: flex;\n align-items: center;\n margin: 4px 0 0 4px;\n padding: 0 4px 0 0;\n font-size: 18px;\n font-weight: 700;\n line-height: 26.4px;\n white-space: nowrap;\n color: var(--sbk-text);\n background: rgba(54, 197, 240, 0.13);\n border: 1px solid transparent;\n border-radius: 4px;\n}\n\n.sbk-select__chip-label {\n display: flex;\n padding: 0 4px;\n}\n\n/* The label is a flow-root on the chip's 18px strut, so 15px text makes its line 27px tall. */\n.sbk-select__chip-text {\n display: flow-root;\n overflow: hidden;\n}\n\n.sbk-select__chip-text > span {\n font-size: 15px;\n line-height: 26px;\n}\n\n.sbk-select__chip-entity {\n align-items: center;\n font-size: 15px;\n line-height: 26px;\n}\n\n.sbk-select__chip-entity .sbk-select__channel-hash {\n margin-right: 2px;\n}\n\n.sbk-select__chip-entity .sbk-select__missing-channel svg {\n width: 15px;\n height: 15px;\n vertical-align: -1.875px;\n}\n\n.sbk-select__chip-remove {\n display: flex;\n cursor: pointer;\n}\n\n.sbk-select__menu {\n position: absolute;\n z-index: 10;\n top: 0;\n left: 0;\n width: max(100%, 240px);\n max-height: 280px;\n overflow-y: auto;\n /* Slack's `c-select_options_list`: a hairline ring plus a soft drop shadow, no border. */\n background: var(--sbk-menu-bg);\n border-radius: 4px;\n box-shadow:\n 0 0 0 1px rgba(29, 28, 29, 0.13),\n 0 5px 10px rgba(0, 0, 0, 0.12);\n padding: 12px 0;\n}\n\n.sbk-select__search {\n display: flex;\n align-items: center;\n gap: 6px;\n margin: -4px 0 8px;\n padding: 0 24px 8px;\n border-bottom: 1px solid var(--sbk-border);\n color: var(--sbk-muted);\n}\n\n.sbk-select__search-input {\n flex: 1;\n border: none;\n outline: none;\n font: 13px var(--sbk-font);\n color: var(--sbk-text);\n}\n\n/* Slack's `c-menu_item__header`. */\n.sbk-select__group-label {\n padding: 4px 24px;\n font-size: 13px;\n line-height: 1.38463;\n color: var(--sbk-menu-secondary-text);\n}\n\n.sbk-select__group + .sbk-select__group {\n margin-top: 8px;\n}\n\n/* Slack's `c-select_options_list__option`: 15px rows, 24px side padding, 28px minimum height. */\n.sbk-select__option {\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: 28px;\n padding: 0 24px;\n font: 15px / 1.46668 var(--sbk-font);\n color: var(--sbk-text);\n cursor: pointer;\n}\n\n.sbk-select__option:has(.sbk-select__option-description) {\n padding-top: 4px;\n padding-bottom: 4px;\n}\n\n/* `--active` (pointer or keyboard highlight) inverts to white on blue; the chosen option keeps its\n row but turns blue. */\n.sbk-select__option--selected {\n color: var(--sbk-menu-selected-text);\n}\n\n.sbk-select__option[data-active] {\n color: var(--sbk-menu-highlight-text);\n background: var(--sbk-menu-highlight-bg);\n}\n\n.sbk-select__option[data-active] .sbk-select__option-description {\n color: inherit;\n}\n\n.sbk-select__option-description {\n margin-top: -2px;\n font-size: 13px;\n line-height: 1.25;\n color: var(--sbk-menu-secondary-text);\n}\n\n/* An external select's \"Loading…\" / \"No results\" row while it waits on the app's options. */\n.sbk-select__status {\n display: flex;\n align-items: center;\n min-height: 28px;\n padding: 0 24px;\n font: 15px / 1.46668 var(--sbk-font);\n color: var(--sbk-muted);\n}\n",".sbk-text-input {\n width: 100%;\n height: 28px;\n padding: 8px 8px 7px;\n font: 13px / 18px var(--sbk-font);\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n}\n\n.sbk-text-input::placeholder {\n color: var(--sbk-muted);\n}\n\n/* Slack's Builder uses a taller \"medium\" control on a modal/Home tab surface (36px, more\n horizontal padding, 15px text) instead of the message-surface preview's 28px \"small\" control. */\n.sbk-text-input--medium {\n height: 36px;\n padding: 4px 12px;\n font-size: 15px;\n}\n\n.sbk-text-input__wrap .sbk-text-input.sbk-text-input--medium {\n padding-left: 32px;\n}\n\n/* Slack's textarea is 104px tall on every surface, with less padding below the text than above.\n Block-level, so no inline baseline gap opens up under it. */\n.sbk-text-input--multiline {\n display: block;\n height: auto;\n min-height: 104px;\n padding: 8px 12px 4px;\n font-size: 15px;\n line-height: 22px;\n resize: vertical;\n}\n\n.sbk-text-input__wrap {\n position: relative;\n}\n\n.sbk-text-input__wrap .sbk-text-input {\n padding-left: 28px;\n}\n\n.sbk-text-input__icon {\n position: absolute;\n left: 8px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--sbk-muted);\n pointer-events: none;\n}\n",".sbk-timepicker {\n position: relative;\n width: 190px;\n}\n\n.sbk-timepicker__control {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n height: 28px;\n /* Slack's c-select_input--small pads 4px 8px outside a drawn ring; our border sits inside the\n box, so trim it from the padding to land the icon, text and chevron on the same pixels. */\n padding: 3px 7px;\n font: 13px / 19.5px var(--sbk-font);\n color: var(--sbk-text);\n background: var(--sbk-bg);\n border: 1px solid rgb(124, 122, 127);\n border-radius: 8px;\n cursor: pointer;\n}\n\n.sbk-timepicker__icon {\n flex: 0 0 auto;\n width: 13px;\n height: 20px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-timepicker__value,\n.sbk-timepicker__placeholder {\n flex: 1;\n text-align: left;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.sbk-timepicker__placeholder {\n color: var(--sbk-muted);\n}\n\n.sbk-timepicker__chevron {\n flex: 0 0 auto;\n width: 20px;\n height: 20px;\n color: var(--sbk-badge-text);\n}\n\n.sbk-timepicker__menu {\n position: absolute;\n z-index: 10;\n top: 0;\n left: 0;\n width: 100%;\n max-height: 240px;\n overflow-y: auto;\n padding: 12px 0;\n background: var(--sbk-menu-bg);\n border-radius: 4px;\n box-shadow:\n 0 0 0 1px rgba(29, 28, 29, 0.13),\n 0 5px 10px rgba(0, 0, 0, 0.12);\n}\n\n/* Same `c-select_options_list__option` rows as Select.css. */\n.sbk-timepicker__option {\n display: flex;\n align-items: center;\n min-height: 28px;\n padding: 0 24px;\n font: 15px / 1.46668 var(--sbk-font);\n color: var(--sbk-text);\n cursor: pointer;\n}\n\n.sbk-timepicker__option--selected {\n color: var(--sbk-menu-selected-text);\n}\n\n.sbk-timepicker__option[data-active] {\n color: var(--sbk-menu-highlight-text);\n background: var(--sbk-menu-highlight-bg);\n}\n\n.sbk-timepicker__hint {\n margin-top: 4px;\n font-size: 12px;\n color: var(--sbk-muted);\n}\n",".sbk-workflow-button {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.sbk-workflow-button__icon {\n width: 14px;\n height: 14px;\n flex: none;\n}\n"],"names":[],"mappings":"ACCA,2BAEE,+EACA,kDACA,gGAEA,mBACA,mBACA,+BACA,kCACA,sCACA,wBACA,0BACA,sCACA,2BACA,6CACA,8CACA,wCACA,cACA,oBACA,yBACA,mCACA,iCACA,kCACA,wCACA,sBACA,4BACA,qBACA,2BAGA,8BACA,uFACA,mCACA,wCACA,2BACA,4CACA,wCACA,gCACA,+BACA,yBACA,iCACA,+BACA,uCACA,yCAEA,mBACA,8EACA,iCACA,yCACA,kCACA,iFACA,4BAEA,yBACA,wBAIA,0BACA,0BACA,wBACA,0BACA,0BACA,0BACA,sCACA,kCACA,oCACA,wBACA,wBACA,iCACA,qCACA,iCACA,gCACF,CAEA,UACE,4BACA,eACA,iBACA,sBACA,wCACA,kCACA,kCACF,CAQA,kRAIE,UACF,CAEA,mGAEE,eACA,sBACA,iBACA,cACA,eACA,cACA,gBACF,CAEA,mDAGE,qBACF,CAIA,qBACE,kBACA,UACA,WACA,YACA,UACA,SACA,gBACA,qBACA,kBACF,CAEA,iBACE,qBACA,gBACA,+BACA,uBACA,oCACA,iBACF,CAEA,YACE,4BACA,eACA,iBACA,sBACA,sBACF,CAEA,kBACE,iCACA,eACA,iBACA,2BACA,8BACA,wCACA,kBACA,mBACF,CAEA,iBACE,cACA,iCACA,eACA,oBACA,8BACA,wCACA,kBACA,YACA,aACA,oBACF,CAEA,mBACE,aACA,kBACA,iBACF,CAEA,2BACE,WACA,kBACA,iBACA,UACA,kBACA,+BACF,CAEA,UACE,sBACA,yBACF,CAEA,aACE,8BACA,iCACA,kBACA,iBACF,CAEA,mBACE,oCACA,sCACF,CAGA,cACE,oBACF,CAEA,yBACE,qBACA,sBACA,YACA,WACA,kCACA,oBACF,CAEA,wBACE,sBACA,mCACA,kBACA,gBACA,eACF,CAEA,sBACE,eACA,sCACA,yCACA,kBACA,mBACF,CAGA,wBACE,qBACA,WACA,YACA,uBACF,CAEA,sBACE,qBACA,sBACA,YACA,WACA,sCACA,oBACF,CAEA,WACE,oBACA,kBACA,mBACA,kBACF,CAEA,gBACE,cACA,kBACA,kBACF,CAKA,cACE,kBACA,cACA,uBACF,CAGA,aACE,kBACA,qBACA,aACF,CAEA,kBACE,kBACA,MACA,OACA,cACA,WACA,YACA,yBACA,0EACF,CAEA,mBACE,2DACF,CAEA,iBACE,UACA,gCACA,iBACA,YACF,CAEA,mBACE,UACA,oBACA,iBACA,wBACA,uBACA,oBACF,CAEA,4BACE,GACE,sBACF,CACA,KACE,wBACF,CACF,CAKA,UACE,sHAGA,6IAGF,CAEA,uKAOE,wDAGF,CAEA,6XAUE,aACA,yBACA,kCACF,CAEA,gFAEE,yBACA,0CACF,CAEA,6EAEE,4BACF,CAEA,iVAUE,aACA,kCACF,CAGA,0EAEE,kCACF,CAIA,uCACE,kBACE,uBACF,CAEA,cACE,eACF,CACF,CAGA,aACE,eACA,aACA,gBACA,iBACA,4BACA,eACA,gBACA,oBACA,kBACA,yBACA,8BACA,iCACA,kBACA,oBACA,kCACF,CAEA,oBACE,kBACA,SACA,UACA,WACA,mBACA,iCACA,kBACA,uBACF,CAEA,sCACE,WACF,CAEA,yCACE,QACF,CAEA,wBACE,cACA,gBACA,2BACF,CAIA,aACE,eACA,YACF,CEjcA,WACE,aACA,sBACA,YACA,eAEA,2BACA,yBACA,kBACA,mEAGA,eACF,CAEA,mBACE,kBACA,aACA,uBACA,8BACA,cACA,iBACF,CAEA,sBACE,aACA,mBACA,cACA,WACF,CAEA,iBACE,cACA,WACA,YACA,kBACA,kBACA,gBACF,CAEA,kBACE,cACA,YACA,SACA,eACA,gBACA,iBACA,gBACA,uBACA,kBACF,CAEA,kBACE,aACA,cACA,mBACA,gBACA,YACA,iBACA,UACA,YACA,kBACA,gBACA,4BACA,cACF,CAEA,wBACE,0CACF,CAIA,iBACE,cACA,2BACA,mCACA,oBACF,CAEA,oCACE,SACF,CAEA,qFAEE,sBACF,CAEA,0CACE,gBACA,uBACA,4BACA,6BACA,iBACF,CAEA,gDACE,oCACF,CAMA,uBACE,QACF,CAGA,wBACE,QACF,CAGA,2BACE,kBACF,CAEA,mBACE,aACA,mBACA,yBACA,SACA,cACA,kBACA,sCACF,CAIA,mBACE,YACA,eACA,mBACA,kBACA,0CACA,yBACA,sBACA,aACA,gBACA,eACA,eACA,4FAIF,CAGA,yBACE,yCACF,CAEA,0BACE,eACF,CAEA,4BACE,yBACA,8BACA,UACF,CAEA,qEAEE,sFACA,8BACF,CAEA,kCACE,8BACF,CAEA,mCACE,8BACF,CAEA,yEAEE,2CACF,CAEA,UACE,gBACA,cACA,wBACF,CAEA,gBACE,aACA,qBACA,YACA,yCACF,CAEA,eACE,aACA,mBACA,QACA,YACA,iBACA,gBAEA,yCACF,CAGA,sBACE,YACA,eACA,iBACF,CAEA,gCACE,WACA,YACA,iBACF,CAEA,mBACE,YACF,CAGA,iBACE,eACA,QACA,aACA,aACA,mBACA,uBACA,aACA,0BACF,CAEA,uBACE,aACA,uBACA,WACA,eACF,CAEA,+BACE,YACF,CDpPA,aACE,aACA,wBACF,CAEA,qBACE,cACA,cACA,WACA,YACA,iBACA,gBACF,CAEA,kCACE,aACA,mBACA,kBACA,mBACA,WACA,eACF,CAEA,sBACE,WACA,YACA,aACF,CAEA,qBACE,aACA,mBACA,WACF,CAEA,qBACE,iBACA,eACF,CAEA,oBACE,iBACA,gBACA,kBACA,eACA,mBACA,gBACA,4BACA,8BACF,CAEA,mBACE,iBACA,eACA,mBACA,sBACF,CAEA,YACE,aACA,sBACA,OACF,CAEA,qBACE,eACA,sBACF,CAEA,wBACE,aACA,mBACA,eACA,eACA,sBACF,CAGA,iBACE,aACA,sBACA,QACA,cACF,CAEA,gBACE,aACA,wCACA,iBACF,CAEA,sBACE,WACA,YACA,iBACA,mCACA,iBACA,yBACF,CAEA,yBACE,iBACF,CAEA,wBACE,aACA,mBACA,QACA,kBACA,eACF,CAEA,6BACE,WACA,YACA,iBACF,CAEA,uBACE,kBACA,gBACA,qBACF,CAEA,wBACE,aACA,eACA,QACA,cACF,CAEA,uBACE,aACF,CAEA,8BACE,yBACA,eACF,CAEA,6BACE,eACF,CAEA,uBACE,cACA,gBACA,eACA,iBACF,CAEA,wBACE,aACA,mBACA,QACA,eACA,eACA,sBACF,CAEA,6BACE,WACA,YACA,iBACF,CAGA,eACE,aACA,eACA,QACA,cACF,CAEA,qBACE,oBACA,mBACA,QACA,gBACA,mCACA,mBACA,+BACA,eACA,cACF,CAEA,sBACE,sBACA,eACF,CAGA,oBACE,aACA,mBACA,QACA,eACA,cACA,YACA,gBACA,sBACA,aACA,gBACA,cACF,CAEA,gCACE,yBACA,aACF,CASA,mCACE,gCACE,mBACA,mBACA,wBACA,qCACA,4BACA,0BACA,0BACA,2BACA,2BACA,gDACA,iDACA,6BACA,iBACA,oBACA,yBACA,yBACA,uBACA,wBACA,8BACA,sBACA,4BACA,qBACA,2BACA,8BACA,mFACA,qCACA,8BACA,6BACA,iCACA,0CACA,gCACA,kCACA,yBACA,iCACA,+BACA,uCACA,yCACA,sBACA,oEACA,iCACA,+BACA,kCACA,uEACA,4BACA,yBACA,2BACA,0BACA,0BACA,2BACA,0BACA,0BACA,0BACA,4BACA,kCACA,oCACA,wBACA,2BACA,gCACA,8BACA,iCACA,iCACA,2EACA,6BACA,+BACA,2BACA,8BACA,+BACA,gCACA,wBACA,6BACA,iCACA,iCACA,8BACA,iCACA,+BACA,iCACA,+BACA,+BACA,8BACA,6BACA,gCACA,gCACA,8BACA,2BACA,2BACA,2BACA,0BACF,CACF,CAEA,6CAEE,mBACA,mBACA,wBACA,qCACA,4BACA,0BACA,0BACA,2BACA,2BACA,gDACA,iDACA,6BACA,iBACA,oBACA,yBACA,yBACA,uBACA,wBACA,8BACA,sBACA,4BACA,qBACA,2BACA,8BACA,mFACA,qCACA,8BACA,6BACA,iCACA,0CACA,gCACA,kCACA,yBACA,iCACA,+BACA,uCACA,yCACA,sBACA,oEACA,iCACA,+BACA,kCACA,uEACA,4BACA,yBACA,2BACA,0BACA,0BACA,2BACA,0BACA,0BACA,0BACA,4BACA,kCACA,oCACA,wBACA,2BACA,gCACA,8BACA,iCACA,iCACA,2EACA,6BACA,+BACA,2BACA,8BACA,+BACA,gCACA,wBACA,6BACA,iCACA,iCACA,8BACA,iCACA,+BACA,iCACA,+BACA,+BACA,8BACA,6BACA,gCACA,gCACA,8BACA,2BACA,2BACA,2BACA,0BACF,CEhZA,mBACE,cACF,CAEA,iCACE,aACA,kCACF,CAEA,kBACE,eACA,aACA,aACA,SACA,YACA,aACA,sBACA,8BACA,kBACA,oCACF,CAEA,0BACE,cACA,WACA,YACA,kBACA,gBACF,CAEA,uCACE,aACA,mBACA,uBACA,8BACA,gCACA,eACA,eACF,CAEA,wBACE,YACA,aACA,sBACA,OACF,CAEA,wBACE,eACA,gBACA,oBACA,sBACF,CAEA,4BACE,gBACA,6BACA,eACA,eACF,CAEA,6BACE,6BACA,eACA,gBACF,CAEA,0BACE,aACA,mBACA,QACA,eACA,gBACF,CAEA,wBACE,6BACA,eACA,gBACF,CAIA,6BACE,cACA,oBACF,CAEA,mCACE,yBACF,CC5FA,sBACE,eACA,QACA,aACA,mBACA,uBACA,2BACA,YACF,CAEA,aACE,YACA,6BACA,yBACA,kBACA,kEAGA,aACA,2BACF,CAEA,oBACE,eACA,eACA,gBACA,qBACF,CAEA,mBACE,eACA,iBACA,sBACA,kBACF,CAEA,sBACE,aACA,yBACA,OACF,CAEA,qBACE,YACA,eACA,kBACA,0CACA,yBACA,sBACA,8BACA,cACF,CAEA,8BACE,SACA,8BACA,UACF,CAEA,6BACE,SACA,6BACA,UACF,CC5DA,wBACE,iBACF,CAGA,6BACE,kBACA,cACF,CAEA,mBACE,kBACA,UACA,SACA,WACA,aACA,YACA,8BACA,mBACA,2CACA,UACA,mBACF,CAEA,wJAGE,UACA,mBACF,CAEA,0BACE,SACA,UACF,CAEA,0BACE,SACA,UACF,CAEA,2BACE,aACA,mBACA,uBACA,WACA,YACA,UACA,SACA,kBACA,uBACA,oCACA,eACA,eACA,mGAGF,CAEA,4BACE,4BACF,CAEA,kFAEE,mCACA,qBACF,CAEA,yCACE,aACA,kCACF,CAEA,8BACE,iBACF,CC/EA,aACE,aACA,eACA,cACF,CAEA,qBACE,kBACF,CAIA,iCACE,cACA,UACF,CCbA,2BAEE,wCACA,uCACA,0CACA,sCACA,4CACA,uCACA,4CACA,sCACA,6CACA,sCACF,CAEA,WACE,aACA,aACA,kBACA,6BACA,iBACF,CAEA,iBACE,cACA,mBACF,CAEA,oBACE,YACA,sBACF,CAGA,8BACE,cACA,yBACF,CAEA,oBACE,sCACF,CACA,qCACE,mCACF,CACA,iBACE,mCACF,CACA,kCACE,gCACF,CACA,oBACE,sCACF,CACA,qCACE,mCACF,CACA,kBACE,oCACF,CACA,mCACE,iCACF,CACA,oBACE,sCACF,CACA,qCACE,mCACF,CClEA,2BAEE,yCACA,+BACA,8BACA,6BACA,gCACA,gCACA,6BACF,CAEA,aACE,aACA,2CACA,mBACA,eACF,CAEA,sCACE,YACF,CAEA,qCACE,eACF,CAIA,4BACE,aACA,sBACA,OACF,CAEA,8CACE,YACF,CAIA,uCACE,iBACF,CAGA,mEACE,iBACF,CClDA,UACE,YACF,CAEA,eACE,YACA,eACA,yBACA,qCACA,mBACA,eACF,CAEA,mBACE,aACA,sBACA,SACA,YACF,CAEA,gBACE,cACA,WACA,YACA,kBACA,gBACF,CAEA,kBACE,aAEA,mBACA,QACF,CAEA,gBACE,cACA,cACA,WACA,YACA,kBACA,gBACF,CAGA,uBACE,aACA,mBACA,uBACA,qBACF,CAEA,0BACE,aACA,mBACA,uBACA,+BACA,sBACF,CAEA,kBACE,WACA,WACF,CAEA,iBACE,gBACA,mBACA,gBACA,uBACA,kBACF,CAMA,8DAEE,eACA,kBACF,CAEA,oBACE,eACA,oBACA,oBACA,gBACA,uBACA,kBACF,CAEA,oEAEE,eACA,oBACA,aACF,CAEA,gBACE,gBACF,CAEA,mBACE,eACA,iBACA,sBACF,CAEA,kEAEE,eACA,iBACA,aACF,CAEA,mBACE,aACA,OACF,CAGA,+BACE,WACF,CAEA,yBACE,aACA,OACA,OACF,CClIA,cACE,kBACA,YACF,CAEA,wBACE,aACA,SACA,gBAGA,qBACA,6BACA,kBACA,kBACF,CAEA,oBACE,cACA,uBACF,CAEA,8BACE,QACF,CAEA,qBACE,aACA,mBACA,uBACA,kBACA,QACA,4BACA,WACA,YACA,UACA,SACA,qBACA,yBACA,oBACA,gFAGA,eACA,wCAGF,CAEA,2BACE,sCACF,CAGA,6BACE,UACA,oBACA,sCACF,CAEA,2BACE,SACF,CAEA,4BACE,UACF,CClEA,gBACE,aACA,WACF,CAEA,qBACE,aACA,iCACA,eACA,iBACA,kCACA,qCACA,mBACA,eACF,CAEA,wBACE,aACA,mBACA,8BACA,yBACA,4BACA,eACA,eACF,CAEA,0BACE,4BACF,CAEA,sBACE,oBACA,mBACA,uBACA,WACA,YACA,UACA,oBACA,gBACA,YACA,kBACA,cACF,CAEA,wBACE,aACA,qBACA,aACF,CAEA,iDAIE,oBACA,2BACF,CAEA,sBACE,SACA,kBACA,iBACA,sBACA,kBACA,WACA,eACF,CAEA,sBACE,cACA,eACF,CErEA,kBACE,aACA,uBACA,SACA,aACA,yBACA,qCACA,kBACF,CAEA,0BACE,cACA,cACA,WACA,YACA,kBACA,wCACF,CAEA,wBACE,aACA,sBACA,QACA,YACA,gBACA,eACA,mBACA,sBACF,CAEA,wBACE,gBACA,eACA,mBACA,qBACF,CAEA,4BACE,qBACA,YACA,WACA,qBACA,iCACF,CAGA,iBACE,eACA,eACA,gBACF,CAEA,0BACE,iBACA,oBACA,sBACA,WACF,CC3DA,eACE,gBACA,yBACA,wCACA,mBACA,eACF,CAGA,uBACE,eACF,CAEA,yBACE,eACF,CAEA,qBACE,eACF,CAEA,uBACE,aACA,WACA,aACA,SACA,gBACA,aACA,cACA,gBACA,cACF,CAEA,+BACE,cACF,CAEA,gCACE,mBACA,8CACF,CAGA,uBACE,aACA,mBACA,SACA,WACA,WACF,CAEA,qBACE,cACA,cACA,WACA,YACA,kBACA,gBACF,CAEA,0BACE,aACA,sBACA,WACA,WACF,CAEA,sBACE,gBACA,mBACA,gBACA,uBACA,kBACF,CAEA,yBACE,eACA,oBACA,6BACA,gBACA,uBACA,kBACF,CAEA,wBACE,aACA,cACA,mBACA,gBACA,yDACF,CAEA,mCACE,wBACF,CAEA,qBACE,mBACF,CAIA,sCACE,sDACF,CAEA,uCACE,8DAEE,eACF,CACF,CAIA,yDACE,YACF,CAKA,kDACE,YACF,CAIA,+MAME,YACF,CCrIA,aACE,aACA,eACA,uBACA,YACA,aACA,eACA,iBACA,sBACF,CAEA,sDAEE,eACA,iBACA,aACF,CAEA,wBACE,0BACF,CAIA,mBACE,iBACF,CAEA,yBACE,cACF,CAEA,oBACE,iBACA,kBACA,WACA,YACA,kBACA,gBACF,CCxCA,qBACE,aACA,kBACF,CCHA,2BAEE,wCACA,yCACA,+BACF,CAEA,gBACE,YACF,CAEA,wBACE,aACA,mBACA,gBACA,OACF,CAEA,yBACE,cACA,gBACA,mBACA,gBACA,sBACF,CAEA,yBACE,aACA,QACA,aACF,CAEA,0BACE,aACA,mBACA,uBACA,WACA,YACA,UACA,4BACA,gBACA,0CACA,kBACA,cACF,CAKA,uBACE,aACA,sBACA,gBACA,cACA,0CACA,kBACF,CAGA,0CACE,UACA,UACF,CAEA,iJAGE,sBACF,CAEA,gDACE,iBACF,CAEA,sDACE,6DACF,CAGA,sBACE,kBACA,qBACF,CAGA,iCACE,iBACF,CAEA,kDAEE,YACF,CAEA,4BACE,aACA,mBACA,YACA,eACA,gBACA,iBACA,2BACF,CAEA,mCACE,aACA,mBACA,8BACA,WACA,YACA,QACA,eACA,aACA,cACA,gBACA,YACA,kBACA,cACF,CAIA,0FAEE,yCACF,CAGA,4BACE,aACA,iBACA,SACF,CAEA,kJAEE,SACF,CAIA,2BACE,YACA,eACA,8BACA,kBACA,iCACF,CAEA,8BACE,iBACA,iCACA,4BACF,CAEA,2BACE,kBACA,aACA,mBACA,YACA,eACA,iCACA,sBACA,mBACA,cACF,CAEA,gDACE,mCACF,CAGA,mCACE,0BACF,CAEA,wCACE,qCACA,uCACF,CAGA,2BACE,aACA,WACA,YACA,gBACF,CAGA,4BACE,kBACA,QACA,SACA,aACA,WACA,WACF,CAEA,gCACE,aACF,CAEA,wCACE,WACA,cACA,8CACF,CAEA,2BACE,gBACA,mBACA,sBACF,CAEA,sBACE,kBACA,YACA,YACA,gBACA,8BACF,CAGA,uDACE,6CACF,CAEA,sDACE,gDACF,CAEA,kCACE,8CACF,CAEA,iCACE,+CACF,CAEA,iDACE,wCACF,CAEA,6DACE,kDACF,CAEA,mEACE,0BACF,CAEA,kEACE,2BACF,CAEA,kEACE,6BACF,CAEA,iEACE,8BACF,CAEA,8BACE,aACA,mBACA,YACA,cACF,CAGA,0BACE,gBACA,kBACF,CAGA,4BACE,gBACA,OACA,eACA,aACA,mBACA,uBACA,QACA,YACA,eACA,iBACA,2BACF,CAEA,0BACE,aACA,mBACA,uBACA,WACA,YACA,UACA,cACA,gBACA,YACA,kBACA,cACF,CAEA,mCACE,YACA,cACF,CAEA,0BACE,aACA,mBACA,uBACA,eACA,YACA,cACA,aACA,cACA,gBACA,YACA,kBACA,cACF,CAEA,kCACE,WACA,6CACF,CAEA,sJAEE,sBACA,2CACF,CAGA,wCACE,gCACF,CAEA,yCACE,8BACF,CAEA,kBACE,sBACA,oBACF,CAEA,wBACE,yBACF,CAEA,kBACE,iCACA,eACA,8BACA,wCACA,kBACA,eACF,CC3WA,2BAKE,oCACA,oCACA,oCACA,oCACA,yCACA,0BACF,CAEA,aACE,aACA,sBAEA,aACA,aACA,yCACA,2CACA,mBACA,eACF,CAEA,oBAEE,eACA,eACA,gBACA,qBACF,CAEA,mBACE,aACA,oBAGA,iBACF,CAEA,wBACE,sBACF,CAEA,sBACE,kBACA,OAEA,QACA,YACA,WACA,aACA,mBACA,uBACA,yBACA,yBACA,eACA,gBACA,kBACA,mBACF,CAEA,8BACE,OACA,WACF,CAEA,WACE,UACF,CAEA,gBACE,cACA,WACA,WACF,CAEA,iBACE,6BACA,cACF,CAEA,sBACE,qBACA,eACA,gBAEA,iBACA,iBACF,CAEA,qBACE,aACA,qBACA,QACA,eAEA,uBACA,gBACF,CAEA,0BACE,eACA,sBACF,CAEA,2BACE,aACA,mBACA,QACA,cACF,CAEA,yBACE,WACA,YACA,qBACA,qBACA,aACF,CCxHA,aACE,aACA,SACA,uCACF,CCHA,qBACE,YACF,CAIA,iFAEE,UACF,CCVA,UACE,aACA,mBACA,QACA,aACA,iBACA,gBACA,+BACA,mCACA,kBACA,sBACF,CAGA,gBACE,iCACA,sCACF,CAEA,gBACE,aACA,aACF,CAEA,gBACE,aACA,sBACA,WACF,CAEA,gBACE,sBACA,gBACA,uBACA,kBACF,CAEA,gBACE,eACA,yBACF,CCvCA,YACE,kBACA,eACF,CAEA,qBACE,eACA,oBACA,eACF,CAEA,qBACE,eACA,oBACA,eACF,CAEA,0CAEE,eACA,oBACA,eACF,CCvBA,WACE,YACF,CAIA,kBACE,eACA,iBACA,sBACF,CAEA,uBACE,qBACA,eACA,iBACA,qBACF,CAEA,oBACE,eACA,iBACA,kBACF,CAEA,mBACE,qBACA,WACA,gBACA,UACA,SACA,gBACA,eACA,iBACA,sBACA,cACF,CAEA,kBACE,qBACA,WACA,YACA,qBACF,CAEA,kBACE,kBAKA,eAEA,eACA,kBACA,kBACA,2CACA,gBAIA,4BACA,4BACA,uBACF,CAEA,gBACE,cACA,UACA,eACA,WACF,CAEA,qBACE,aACA,mBACA,uBACA,gBACA,WACA,+BACA,uBACA,eACA,aACA,iBACF,CCpFA,WACE,QACF,CAEA,kBACE,qCACA,sBACA,iBACF,CAEA,qBACE,gBACA,sBACF,CAIA,wGAGE,UACF,CAMA,uCACE,kBACF,CAIA,iBACE,oCACF,CAEA,sBACE,eACA,iBACA,sBACF,CAEA,gCACE,eACF,CAEA,sBACE,oBACA,mBACA,uBACA,WACA,WACF,CAEA,kBACE,eACA,qCACA,uBACF,CAEA,sCACE,qCACF,CC7DA,cACE,aACA,sBACA,4BACA,eACA,iBACA,sBACA,sBACF,CAEA,uBACE,aACF,CAEA,0BACE,aACF,CAIA,qBACE,yBACA,iBACA,aACF,CAEA,gDAEE,mBACA,YACA,gBACA,gBACA,mBACA,mBACA,8CACA,8CACF,CAGA,qCACE,mBACF,CAEA,wBACE,eACF,CAEA,mDACE,2CACF,CAEA,qCACE,4CACF,CAEA,8DACE,0BACF,CAEA,6DACE,2BACF,CAEA,4DACE,6BACF,CAEA,2DACE,8BACF,CCvEA,2BAEE,6BACF,CAEA,UACE,aACA,sBACA,YACF,CAEA,gBACE,aACA,sBACA,UACA,SACA,uBACA,mBACA,eACA,aACA,cACA,gBACA,cACF,CAIA,wBACE,cACA,kBACA,kBACA,eACA,gBACF,CAGA,sBACE,yCACF,CAEA,8BACE,wCACA,mBACF,CAGA,qBACE,oBACA,WAEA,oBACA,iBACA,eACA,mBACA,aACF,CAEA,sBACE,eAEA,iBACA,0BACF,CAEA,wBACE,oBACA,mBACA,sBACA,gBACA,WACA,YACA,cACA,0BACF,CAIA,0DAEE,4BACF,CAEA,0BACE,qBACF,CAEA,wBACE,0BACF,CAEA,sBACE,aACF,CAIA,iBACE,gBACA,SACA,SACF,CAEA,gBACE,aACA,eACA,sBACA,0BACF,CAEA,gBACE,aACA,cACA,sBACA,mBACA,OACF,CAEA,gBACE,UACA,iCACF,CAEA,qBACE,YACF,CAGA,iDACE,eACF,CAEA,wBACE,aACF,CAEA,mDACE,sBACF,CAGA,qBACE,aACA,cACA,mBACA,uBACA,WACA,WACA,YACF,CAEA,wBACE,cACA,YACA,eACF,CAEA,oDACE,eACF,CAIA,uBACE,aACA,mBACA,QACA,cACA,SACA,gBACA,aACA,cACA,iBACA,cACF,CAEA,0BACE,kBACA,cACF,CAEA,qCACE,wCACA,mBACF,CAEA,sBACE,YACF,CAGA,sBACE,aACA,WACA,YACA,cACF,CAEA,qBACE,aACA,sBACA,OACF,CAEA,wBACE,gBACA,SACA,SACF,CAEA,4BACE,sBACA,oBACF,CAEA,kCACE,yBACF,CCxNA,eACE,4BACA,eACA,iBACA,sBACA,sBACF,CAEA,wBACE,aACF,CAEA,mBACE,cACA,UACF,CAEA,4BACE,oBACA,mBACA,OACF,CAEA,sBACE,aACA,kBACA,iBACF,CAEA,8BACE,WACA,kBACA,iBACA,UACA,kBACA,+BACF,CAEA,oBACE,cACA,kBACA,aACA,YACA,iCACA,eACA,oBACA,sBACA,8BACA,wCACA,kBACA,qBACA,sBACF,CAEA,yBACE,aACA,mBACA,uBACA,kBACA,QACA,UACA,WACA,YACA,oBACA,+BACA,kBAEA,SACF,CAEA,6GAEE,SACF,CAEA,6BACE,qBACA,sBACA,oBACA,WACA,YACA,kCACA,iBACF,CAEA,eACE,SACA,2BACF,CAEA,wBACE,kBACF,CAEA,uBACE,UACA,eACF,CAIA,oDACE,WACA,qBACA,WACA,YACA,kBACA,iBACA,oBACA,wBACA,mDACF,CAEA,iFACE,iSACF,CAEA,iFACE,kZACF,CAEA,iFACE,4SACF,CAEA,qBACE,iBACF,CAEA,6CACE,kBACA,gBACF,CAEA,4CACE,iBACF,CAGA,yBACE,kBACA,aACF,CAEA,iCACE,WACA,kBACA,iBACA,UACA,kBACA,+BACF,CCvJA,aACE,aACA,gBACF,CAEA,sBACE,WACA,WACF,CAEA,qBACE,aACA,cACF,CAEA,oBACE,sBACF,CAEA,oCACE,gBACF,CAEA,0CACE,eACF,CAEA,4BACE,oBACA,4BACA,eACF,CAEA,qBACE,cACA,eACA,UACA,SACA,gBACA,aACA,eACA,sBACA,cACF,CAEA,wBACE,aACA,kBACA,kBACF,CAEA,sBACE,qBACF,CAEA,8CACE,YACF,CCxDA,2BAEE,sCACF,CAEA,WACE,aACF,CAGA,mBACE,aACF,CAIA,kBACE,yBACA,iBACA,eACA,gBACF,CAEA,oCAEE,8BACF,CAEA,8BAEE,sBACA,YACA,mBACA,gBACA,mBACA,mBACA,+CACA,+CACF,CAEA,gDACE,4CACF,CAEA,kCACE,6CACF,CAEA,eACE,eACF,CAEA,gDACE,0BACF,CAEA,+CACE,2BACF,CAEA,+CACE,6BACF,CAEA,8CACE,8BACF,CCnEA,2BAEE,kCACF,CAEA,eACE,aACA,sBACA,YACF,CAEA,qBACE,aACA,sBACA,UACA,SACA,uBACA,mBACA,eACA,aACA,cACA,gBACA,cACF,CAIA,6BACE,cACA,kBACA,kBACA,eACA,gBACF,CAIA,wBACE,cACF,CAEA,iCACE,yCACF,CAEA,mCACE,wCACA,mBACF,CAGA,0BACE,oBACA,WAEA,oBACA,iBACA,eACA,mBACA,aACF,CAEA,2BACE,eAEA,iBACA,+BACF,CAEA,6BACE,oBACA,mBACA,sBACA,gBACA,WACA,YACA,cACA,+BACF,CAIA,qBACE,eACA,sBACA,+BACF,CAEA,wBACE,kBACA,cACF,CAEA,gCACE,WACA,kBACA,MACA,SACA,SACA,UACA,uCACF,CAGA,mFAEE,yBACF,CAEA,qBACE,aACA,OACF,CAEA,qBACE,aACA,cACA,sBACA,mBACA,cACF,CAEA,oBACE,aACA,kBACF,CAEA,qBACE,cACA,UACA,eACA,uCACF,CAEA,6BACE,cACA,WACF,CAEA,uBACE,iBACF,CAEA,wBACE,gBACA,SACA,SACF,CAEA,4BACE,sBACA,oBACF,CAEA,kCACE,yBACF,CC5JA,WACE,cACA,gBACA,gBACF,CAEA,mBACE,uBACA,kBACF,CAEA,0BACE,WACA,YACA,mBACA,kBACA,qBACF,CAEA,qBACE,gBACA,qBACF,CAEA,sBACE,uBACA,eACF,CAEA,wBACE,qBACF,CAEA,kBACE,qBACF,CAGA,oBACE,cACA,oBACF,CAEA,0BACE,yBACF,CAGA,mBACE,qBACA,oBACA,sBACA,gBACF,CAEA,kBACE,cACA,kBAGA,YACA,aACA,eACA,gBACA,eACF,CAGA,0BACE,WACA,kBACA,QACA,UACA,oBACA,UACA,oEACA,sDACF,CAEA,+GAGE,SACF,CAEA,kBACE,kBACA,QACA,WACA,YACA,kBACF,CAEA,iBACE,kBACA,UACA,YACA,aACA,mBACA,QACA,YACA,wBACA,gBACA,WACA,8BACA,kBACA,UACA,qGAGF,CC7GA,YACE,cACA,kBACA,YACA,eACA,kBACA,0CACA,kBACA,yBACA,4BACA,sBACA,uCACA,kBACA,mBACA,eACA,gBACA,4FAIF,CAKA,kBACE,4CACA,yCACF,CAEA,mBACE,4CACA,eACF,CAEA,yCAEE,SACA,UACF,CAEA,qBACE,6BACF,CAEA,4GAIE,sFACA,8BACF,CAEA,2BACE,+BACA,mCACF,CAEA,4BACE,+BACA,mCACF,CAEA,oBACE,4BACF,CAEA,0BACE,+BACA,kCACF,CAEA,2BACE,+BACA,kCACF,CC5EA,gBACE,aACA,sBAKA,kBACF,CAEA,wBACE,aACA,uBAIA,iBACA,cACF,CAEA,uBACE,gBACA,cACA,WACA,YACA,uBACA,0CACA,kBACA,yBACA,eACA,kBACA,8CACF,CAIA,mEACE,oCACA,2FACF,CAEA,4CACE,+FACF,CAEA,qCACE,wCACA,kBACF,CAIA,+BACE,yBACA,4CACF,CAEA,0GAEE,wGAIA,kDACF,CAEA,sCACE,4GAIA,kDACF,CAEA,sCACE,WACA,kBACA,SACA,QACA,UACA,WACA,qCACA,yBACA,uBACF,CAEA,sBACE,aACA,sBAEA,kBACA,QACF,CAEA,sEAEE,4BACF,CChGA,cACE,YACA,4BACA,eACA,iBACA,qBACF,CAEA,sBACE,aACA,mBACA,8BACA,YACA,mBACA,eACF,CAEA,mBACE,aACA,mBACA,uBACA,WACA,YACA,UACA,YACA,kBACA,gBACA,sBACA,eACA,2CACA,yBACA,yDACF,CAEA,yBACE,+BACF,CAEA,0BACE,gCACA,6BACF,CAEA,4CAEE,aAEA,qCACA,iBACF,CAEA,wBACE,iBACF,CAEA,6BACE,kBACA,eACA,4BACF,CAEA,oBACE,kBACA,gBACA,qBACA,eACA,aACA,iBACA,sBACA,yBACA,0CACA,cACF,CAEA,2BACE,yBACA,gBACA,cACF,CAGA,wFACE,UACA,kCACA,+BACF,CAEA,2BACE,qBACF,CAGA,kCACE,WACA,kBACA,QACA,SACA,WACA,YACA,sCACA,kBACA,+BACA,mBACF,CAEA,8BACE,UACA,8BACA,gCACA,kCACA,iBACF,CAEA,+DACE,oCACF,CAEA,kCACE,SACF,CAGA,sBACE,wBACA,oCACF,CAEA,qBACE,cACA,WACA,YACA,UACA,8BACA,sBACA,gBACA,YACA,0BACA,cACF,CAEA,8DAEE,qBACF,CC9IA,gBACE,kBACA,cACA,sBACF,CAEA,4BACE,iBACF,CAKA,sBACE,kBACA,SACA,QACA,6BACA,WACA,YACA,2BACF,CAEA,uBACE,WACA,YAEA,qBACA,iCACA,sBACA,yBACA,kCACA,kBACA,cACF,CAGA,yBACE,kBACA,UACA,QACA,WACA,YACA,6BACA,mBACF,CAEA,oCACE,sBACF,CAEA,uBACE,kBACA,WACA,MACA,OAEA,aACA,8BACA,kBACA,oCACF,CC/DA,oBACE,kBACA,cACA,UACF,CAIA,yBACE,aACA,OACF,CAGA,4BACE,WACA,WACF,CAEA,6BACE,aACA,mBACA,QACA,WACA,YACA,yBACA,0BACA,sBACA,yBACA,kCACA,kBACA,cACF,CAIA,mCACE,wBACF,CAGA,mCACE,iBACA,kBACF,CAEA,0BACE,cACA,WACA,YACA,2BACF,CAEA,4DAEE,OACA,YACA,gBACA,gBACA,mBACA,sBACF,CAEA,6BACE,cACA,WACA,YACA,2BACF,CAEA,iCACE,sBACF,CAEA,8BACE,eACA,eACA,iBACA,2BACF,CAEA,2BACE,kBACA,WACA,MACA,OAEA,aACA,8BACA,kBACA,oCACF,CAEA,8BACE,aACA,mBACA,QACA,YACA,sCACF,CAEA,gCACE,OACA,YACA,gBACA,kCACA,kBACA,yBACF,CAEA,2BACE,YACA,eACA,SACA,kBACA,8BACA,WACA,8BACA,cACF,CAEA,oCACE,YACA,cACF,CC5HA,sBACE,oBACA,kBACF,CAEA,yBACE,yBACA,8BACF,CCRA,gBAIE,kBACF,CAEA,wBACE,oBACA,mBACA,QACA,YACA,eACA,mBACA,0CACA,kBACA,yBACA,sBACA,8BACA,cACF,CAEA,4BACE,WACA,YACA,aACF,CAEA,wBACE,kBACA,UACA,WACA,gBACA,SACF,CAEA,sBACE,gBACA,eACA,SACF,CAEA,sBACE,eACA,sBACA,aACF,CC9CA,iBACE,aACA,mBACA,uBACA,WACA,YACA,UACA,YACA,gBACA,kBACA,oBACA,eACA,wDACA,yBACA,yDACF,CAIA,+CAEE,sBACA,gDACF,CAEA,wBACE,gGACA,kDACF,CAEA,qBACE,WACA,WACF,CCjCA,+BACE,gBACF,CAEA,mBACE,cACA,WACA,YACA,kBACA,gBACF,CCVA,cACE,kBACA,oBACF,CAEA,sBACE,aACA,mBACA,uBACA,WACA,YACA,kBACA,yBACA,0CACA,kBACA,sBACA,cACF,CAGA,4BACE,sCACA,yCACF,CAEA,6BACE,eACF,CAEA,oBACE,kBACA,WACA,MACA,QAEA,gBACA,gBACA,kBACA,eACA,8BACA,kBACA,iCACF,CAGA,sBACE,gBACA,eACA,iCACA,sBACA,gBACA,mBACA,uBACA,cACF,CAGA,mCACE,qCACA,uCACF,CC5DA,mBACE,aACA,sBAGA,kBACF,CAEA,2BACE,aACA,uBAGA,iBACA,cACF,CAEA,0BACE,cACA,WACA,YACA,qBACA,kBACA,cACF,CAEA,yBACE,aACA,sBAEA,kBACA,QACF,CAEA,4EAEE,4BACF,CClCA,qBACE,aACA,sBACA,WACA,iBACA,yBACA,qCACA,iBACF,CAEA,8BACE,aACA,mBACA,YACA,YACA,mBACA,yBACF,CAEA,2BACE,oBACA,mBACA,uBACA,WACA,YAEA,iBACA,yBACA,WACF,CAEA,gCACE,UACA,YACA,aACA,8BACF,CAEA,6BACE,OACA,iBACA,iCACA,sBACA,gBACA,YACF,CAEA,2CACE,+BACA,sBACF,CCrDA,YACE,kBACA,WACF,CAEA,qBACE,aACA,mBACA,QACA,WACA,YACA,gBACA,0BACA,sBACA,yBACA,kCACA,kBACA,cACF,CAKA,4DACE,YACA,0BACA,eACA,gBACF,CAGA,4DACE,YACA,gBACA,uBACA,sBACF,CAGA,sBACE,YACF,CAEA,0CACE,cACA,kBACA,eACA,iBACA,mBACF,CAGA,gEACE,mBACF,CAEA,4DACE,YACF,CAIA,2CACE,UACF,CAEA,gEACE,mBACA,gBACA,iCACA,iBACF,CAEA,oEACE,qBACF,CAEA,gEACE,YACF,CAIA,yCACE,YACA,iBACA,cACF,CAIA,qFACE,kBACF,CAEA,4CAEE,OACA,gBACA,gBACA,mBACA,sBACF,CAEA,yBACE,sBACF,CAKA,mBACE,gBACF,CAEA,qBACE,iBACF,CAGA,oBACE,aACA,mBACA,YACA,gBACF,CAEA,0BACE,cACA,gBACF,CAEA,yBACE,kBACA,gBACA,kBACF,CAEA,6BACE,oBACA,yBACA,+BACA,iBACF,CAEA,iCACE,qBACA,uBACF,CAIA,sBACE,aACA,mBACA,WACF,CAEA,6BACE,cACA,WACA,YACA,mBACA,4BACA,+CACF,CAEA,2BACE,cACA,YACA,WACA,eACA,eACF,CAEA,mCACE,WACA,cACA,YACA,WACA,4BACA,oBACF,CAEA,qBACE,cACA,WACA,YACA,2BACF,CAEA,mBACE,aACA,eACA,OACA,WACF,CAGA,kBACE,aACA,mBACA,mBACA,kBACA,eACA,gBACA,mBACA,mBACA,sBACA,iCACA,6BACA,iBACF,CAEA,wBACE,aACA,aACF,CAGA,uBACE,kBACA,eACF,CAEA,4BACE,eACA,gBACF,CAEA,yBACE,mBACA,eACA,gBACF,CAEA,mDACE,gBACF,CAEA,0DACE,WACA,YACA,uBACF,CAEA,yBACE,aACA,cACF,CAEA,kBACE,kBACA,WACA,MACA,OACA,sBACA,iBACA,gBAEA,8BACA,kBACA,qEAGA,cACF,CAEA,oBACE,aACA,mBACA,QACA,kBACA,mBACA,0CACA,sBACF,CAEA,0BACE,OACA,YACA,aACA,0BACA,qBACF,CAGA,yBACE,iBACA,eACA,oBACA,oCACF,CAEA,wCACE,cACF,CAGA,oBACE,aACA,sBACA,uBACA,gBACA,eACA,oCACA,sBACA,cACF,CAEA,yDACE,gBACA,kBACF,CAIA,8BACE,mCACF,CAEA,iCACE,qCACA,uCACF,CAEA,iEACE,aACF,CAEA,gCACE,gBACA,eACA,iBACA,oCACF,CAGA,oBACE,aACA,mBACA,gBACA,eACA,oCACA,sBACF,CCzVA,gBACE,WACA,YACA,oBACA,iCACA,sBACA,yBACA,kCACA,iBACF,CAEA,6BACE,sBACF,CAIA,wBACE,YACA,iBACA,cACF,CAEA,6DACE,iBACF,CAIA,2BACE,cACA,YACA,iBACA,qBACA,eACA,iBACA,eACF,CAEA,sBACE,iBACF,CAEA,sCACE,iBACF,CAEA,sBACE,kBACA,SACA,QACA,2BACA,uBACA,mBACF,CCtDA,gBACE,kBACA,WACF,CAEA,yBACE,aACA,mBACA,QACA,WACA,YAGA,gBACA,mCACA,sBACA,yBACA,kCACA,kBACA,cACF,CAEA,sBACE,cACA,WACA,YACA,2BACF,CAEA,oDAEE,OACA,gBACA,gBACA,mBACA,sBACF,CAEA,6BACE,sBACF,CAEA,yBACE,cACA,WACA,YACA,2BACF,CAEA,sBACE,kBACA,WACA,MACA,OACA,WACA,iBACA,gBACA,eACA,8BACA,kBACA,oEAGF,CAGA,wBACE,aACA,mBACA,gBACA,eACA,oCACA,sBACA,cACF,CAEA,kCACE,mCACF,CAEA,qCACE,qCACA,uCACF,CAEA,sBACE,eACA,eACA,sBACF,CCzFA,qBACE,oBACA,mBACA,OACF,CAEA,2BACE,WACA,YACA,SACF"}