{"version":3,"file":"src_Components_Pages_BookingsPage_jsx.css","mappings":"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CE;EACA;EACA,SbcM;AaFV;AATE;ET8BE,eJ3DM;EI4DN,iBJjDS;EImFT,gBJrEU;EI4EZ,qBJvEe;EIwEf;ESvEE,cb7FQ;Aa4GZ;AAXE;EACE;EACA,mBbgBU;EafV,mBb/FM;EagGN,kEbuDW;Aa1Cf;AARE;EACE;EACA,QbVM;EaWN;AAUJ;AANE;EThIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;KAAA;UAAA;EA8QA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ASpIF;ATsIE;EACE;ASpIJ;AA7BE;ETnHA;EACA;EACA;EACA,QJgGQ;EI/FR;EACA,YJoHW;EInHX,eSgHyC;ET/GzC,mBJ2GU;EI1GV,kFJsDU;EIrDV,eJ0DQ;EIzDR,gBJ8EgB;EI1EhB;EACA;EACA;EACA;ASgJF;AT9IE;EACE,qBJ1BoB;Aa0KxB;AT7IE;EACE;EACA;EACA;AS+IJ;AAtDE;EAIE;EACA;EACA,mBbJU;EaKV,mBbnHM;EaoHN,cb3HU;Ea4HV,sDbeiB;EadjB,eb3DM;AagHV;AAnDI;EACE,qDbvHU;EawHV,gDbvHS;Aa4Kf;AAlDI;ETtBF;EACA;AS2EF;AAjDE;EACE,qBbhJoB;EaiJpB,mBbnJc;EaoJd,cbvJa;EawJb,kEbDkB;AaoDtB;AAjDI;EACE,qDbvIU;EawIV,gDbvIS;Aa0Lf;AA/CE;EACE;EACA;EACA;EACA,mBbpCU;EaqCV;AAiDJ;AA7CE;EACE,mBb3KM;Aa0NV;AA5CE;EACE,mBbjHG;Aa+JP;AAzCE;EACE;EACA;EACA,SbnEM;Aa8GV;AAtCE;ETWA;EACA;EA3DE,eJ/DM;EIgEN,iBJrDS;EIiFT,gBJtEc;EIsGhB,cJ9LY;EakLV,kBb/EM;Aa4HV;AA1CE;ETpDE,eJ/DM;EIgEN,iBJrDS;EIiFT,gBJvEY;EagGZ,cbrLQ;AamOZ;AAxCE;EACE;EACA,Sb1FM;Ea2FN;EACA;AA0CJ;AAxCI;EACE;AA0CN,C;;;;ACjQE;EACE;EACA;AAHJ;AAQE;EVDA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;KAAA;UAAA;EA8QA;EACA;EACA;EACA;EACA;E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M;EkBaN;EACA;EACA;AALJ;AAOI;EACE,qDlBhBU;EkBiBV,gDlBhBS;AkBWf;AAUE;EACE;AARJ;AAWE;EACE;AATJ;AAYE;EACE;EACA;AAVJ;AAeE;Ed4HA;EACA;EACA;EACA;EA5CE,eJ/DM;EIgEN,iBJrDS;EIiFT,gBJrEU;EkBxCV,clBlDG;AkB0CP;AAWE;EdsHA;EACA;EACA;EACA;EAzCE,eJjEM;EIkEN,iBJvDS;EIgFT,gBJrEU;EkBlCV;AAJJ;AAOE;EdgHA;EACA;EACA;EACA;EA5CE,eJ/DM;EIgEN,iBJrDS;EIiFT,gBJvEY;EkB1BZ,clB5Da;AkB4DjB;AAGE;Ed0GA;EACA;EACA;EACA;Ec3GE,elB+BM;EI6BN,eJ7DM;EI8DN,iBJnDS;EIkFT,gBJvEY;EkBnBZ,clBlEQ;AkBsEZ;AADE;Ed0DE,eJ/DM;EIgEN,iBJrDS;EIiFT,gBJrEU;EkBhBV,clB1EG;AkB+EP;AAFE;EdqDE,eJ/DM;EIgEN,iBJrDS;EIiFT,gBJtEc;EkBVd,clB5EQ;AkBkFZ;AAHE;EACE;EACA;EACA,QlBeM;EkBdN;EACA;EACA;EACA,mBlB6BU;EkB5BV,mBlBlFM;EkBmFN,clB1FU;EkB2FV,sDlB+Ce;EIZf,eJ7DM;EI8DN,iBJnDS;EIkFT,gBJrEU;AkBUd;AAJE;EACE,qBlBlEa;EkBmEb,mBlBpEc;EkBqEd,clBnEW;AkByEf;AAHE;EACE,qBlBlEa;EkBmEb,mBlBpEc;EkBqEd,clBnEW;AkBwEf;AAFE;EACE,qBlBhEY;EkBiEZ,mBlBlEa;EkBmEb,clBhEU;AkBoEd;AADE;EACE;EACA;EACA;EACA;EACA,mBlBnHe;EkBoHf;AAGJ;AAAE;EACE,mBlBhGM;EkBiGN;AAEJ;AACE;EACE,mBlB/FM;EkBgGN;AACJ;AAEE;EACE,mBlB9FK;EkB+FL;AAAJ;AAKE;EACE;EACA;EACA;EACA,QlB7CM;AkB0CV;AAME;Ed/JA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;KAAA;UAAA;EA8QA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AcjHF;AdmHE;EACE;AcjHJ;AAj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","sources":["webpack://servv-plugin/./src/Components/Pages/PageWrapper.module.scss","webpack://servv-plugin/./src/styles/_tokens.scss","webpack://servv-plugin/./src/styles/_motion.scss","webpack://servv-plugin/./src/Components/Containers/PageContent.module.scss","webpack://servv-plugin/./src/Components/Containers/PageHeader.module.scss","webpack://servv-plugin/./src/styles/_mixins.scss","webpack://servv-plugin/./src/Components/Containers/Dropdown.module.scss","webpack://servv-plugin/./src/Components/Controls/CheckboxItem.module.scss","webpack://servv-plugin/./src/Components/Controls/DisplayOptions.module.scss","webpack://servv-plugin/./src/Components/Controls/NewButtonGroup.module.scss","webpack://servv-plugin/./src/Components/Controls/NewInputFieldControl.module.scss","webpack://servv-plugin/./src/Components/Controls/CalendarInline.module.scss","webpack://servv-plugin/./src/Components/Controls/NewDatePickerControl.module.scss","webpack://servv-plugin/./src/Components/Controls/NewSelectControl.module.scss","webpack://servv-plugin/./src/Components/Containers/FiltersPanel.module.scss","webpack://servv-plugin/./src/Components/Containers/FiltersDropdown.module.scss","webpack://servv-plugin/./src/Components/Containers/BulkBar.module.scss","webpack://servv-plugin/./src/Components/Modals/ModalShell.module.scss","webpack://servv-plugin/./src/Components/Pages/SpinnerLoader.module.scss","webpack://servv-plugin/./src/Components/Pages/Bookings/BookingRows.module.scss","webpack://servv-plugin/./src/Components/Pages/BookingsPage.module.scss"],"sourcesContent":["@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  // The grey canvas behind a page that asks for one.\n  .backdrop {\n    position: fixed;\n    inset: 0;\n    background: t.$canvas;\n  }\n\n  .root {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    width: var(--servv-page-width, 100%);\n    height: var(--servv-page-height, 100%);\n    min-height: 0;\n    flex: 1 1 auto;\n  }\n\n  // Pages that do not frame themselves with <PageContent> keep the old gutter.\n  .gutterLeft {\n    padding-left: t.$space-8;\n  }\n\n  .gutterRight {\n    padding-right: t.$space-8;\n  }\n\n  .spinner {\n    position: absolute;\n    inset: 0;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    pointer-events: none;\n  }\n\n  .content {\n    display: flex;\n    flex: 1 1 auto;\n    flex-direction: column;\n    width: var(--servv-page-width, 100%);\n    height: var(--servv-page-height, 100%);\n    max-width: 100%;\n    min-width: 0;\n    min-height: 0;\n    overflow: visible;\n  }\n}\n","// ---------------------------------------------------------------------------\n// WPSE design tokens — single source of truth for the admin UI.\n// Values come from the \"Servv Admin Unified v2\" design export: a soft-UI\n// (neumorphic) system on a white canvas with a violet brand ramp.\n//\n// Usage from a component module:\n//   @use \"../../styles/tokens\" as t;\n//   .button { border-radius: t.$radius-lg; color: t.$text-strong; }\n// ---------------------------------------------------------------------------\n\n// --- Brand -----------------------------------------------------------------\n$primary: #6436c9;\n$primary-strong: #4d2aa3;\n$primary-grad-from: #7b4fdb;\n$primary-grad-to: #5730b4;\n$primary-surface: #eae2fb; // tinted chip / icon tile background\n$primary-border: #d7c8f7;\n$primary-border-strong: #c3a8f3; // focus border\n$primary-border-soft: #dfd6f3;\n$primary-ring: rgba(234, 226, 251, 0.85); // focus halo\n\n// --- Text ------------------------------------------------------------------\n$text: #151b2b; // headings, primary copy\n$text-strong: #39415a; // control labels, button faces\n$text-secondary: #414b63; // body copy\n$text-soft: #5b6680; // meta, captions\n$text-placeholder: #8e97ab;\n$text-on-primary: #ffffff;\n\n// --- Surfaces --------------------------------------------------------------\n$surface: #ffffff;\n$canvas: var(--servv-admin-canvas, #ffffff);\n$hover-surface: var(--servv-hover-surface, #fafbfd);\n$hover-border: var(--servv-hover-border, #c3a8f3);\n$surface-subtle: #fafbfd; // table row hover\n$surface-raised-tint: #fcfdfe;\n\n// --- Borders ---------------------------------------------------------------\n$border: #edf1f7; // cards, dividers\n$border-soft: #eff2f8; // secondary buttons\n$border-field: #e8edf5; // inputs, selects, textareas\n$border-hairline: rgba(21, 27, 43, 0.09); // segmented tracks, inner rules\n\n// --- Neumorphic shadow pigments -------------------------------------------\n$shade: #dce2ec; // dark side\n$shade-strong: #d4dbe8; // dark side, lifted states\n$light: #fbfcfe; // light side\n$light-alt: #fcfdfe;\n\n// --- Status ----------------------------------------------------------------\n$success: #17b26a;\n$success-strong: #079455;\n$success-surface: #ecfdf3;\n$success-border: #abefc6;\n$success-text: #067647;\n\n$warning: #f79009;\n$warning-strong: #dc6803;\n$warning-surface: #fffaeb;\n$warning-border: #fedf89;\n$warning-text: #b54708;\n\n$danger: #f04438;\n$danger-strong: #d92d20;\n$danger-grad-from: #e8554a;\n$danger-grad-to: #c12b1f;\n$danger-surface: #fef3f2;\n$danger-border: #fecdca;\n$danger-border-strong: #fda29b;\n$danger-text: #b42318;\n$danger-shade: #f1dbd9; // inset pigment on an errored field\n$danger-ring: rgba(254, 243, 242, 0.9);\n\n$info: #175cd3;\n$info-surface: #eff8ff;\n$info-border: #b2ddff;\n\n// --- WordPress admin chrome (sidebar / adminbar adjacency) -----------------\n$wp-chrome: #1d2327;\n$wp-chrome-deep: #15191c;\n$wp-chrome-line: #2c3338;\n$wp-chrome-text: #c3c4c7;\n$wp-chrome-muted: #a7aaad;\n\n// --- Typography ------------------------------------------------------------\n$font-sans: \"Plus Jakarta Sans\", system-ui, -apple-system, \"Segoe UI\", sans-serif;\n\n$text-11: 11px;\n$text-12: 12px;\n$text-13: 13px;\n$text-14: 14px;\n$text-15: 15px;\n$text-16: 16px;\n$text-18: 18px;\n$text-20: 20px;\n$text-24: 24px;\n$text-32: 32px;\n\n$leading-11: 16px;\n$leading-12: 18px;\n$leading-13: 19px;\n$leading-14: 20px;\n$leading-15: 23px;\n$leading-16: 24px;\n$leading-18: 24px;\n$leading-20: 28px;\n$leading-24: 32px;\n$leading-32: 40px;\n\n$weight-regular: 400;\n$weight-medium: 500;\n$weight-semibold: 600;\n$weight-bold: 700;\n$weight-extrabold: 800;\n\n$tracking-tight: -0.03em;\n$tracking-wide: 0.08em;\n$tracking-wider: 0.1em;\n\n// --- Spacing ---------------------------------------------------------------\n$space-1: 2px;\n$space-2: 4px;\n$space-3: 6px;\n$space-4: 8px;\n$space-5: 10px;\n$space-6: 12px;\n$space-7: 14px;\n$space-8: 16px;\n$space-9: 18px;\n$space-10: 20px;\n$space-12: 24px;\n$space-14: 28px;\n$space-16: 32px;\n\n// --- Radii -----------------------------------------------------------------\n$radius-sm: 7px;\n$radius-md: 9px;\n$radius-lg: 12px; // buttons, fields\n$radius-xl: 14px;\n$radius-2xl: 18px; // cards, modals\n$radius-pill: 99px;\n\n// --- Control heights -------------------------------------------------------\n$control-xs: 28px;\n$control-sm: 34px;\n$control-md: 38px;\n$control-lg: 40px;\n$control-xl: 46px;\n\n// --- Segmented control geometry --------------------------------------------\n// A segmented track is a box around chips, so its numbers are derived, not\n// picked: the radius has to clear the inner chip by the gutter (outer = inner\n// + padding) or the chip's corner pokes through, and the chip's height has to\n// leave room for the gutter and the 1px border so the whole track ends up the\n// same $control-lg as the buttons beside it in a toolbar.\n$segment-gutter: 3px; // track padding\n$radius-segment: 10px; // the chip itself\n$radius-segment-track: $radius-segment + $segment-gutter; // 13px\n$control-segment: $control-lg - 2 * $segment-gutter - 2px; // 32px\n\n// --- Elevation (soft-UI pairs) --------------------------------------------\n$shadow-raised-sm: 3px 3px 7px $shade, -2px -2px 5px $light;\n$shadow-raised-chip: 4px 4px 9px $shade, -2px -2px 6px $light; // chips, tabs\n$shadow-chip-pressed: inset 4px 4px 9px $primary-border-soft,\n  inset -2px -2px 6px $light; // a selected (pressed) brand chip\n$shadow-raised: 5px 5px 12px $shade, -2px -2px 8px $light;\n$shadow-raised-hover: 7px 7px 16px $shade, -3px -3px 10px $light;\n$shadow-raised-active: 4px 4px 10px $shade, -2px -2px 7px $light;\n// A filled button sits at exactly the same elevation as a raised white one —\n// only the inner gloss tells them apart — so a toolbar of mixed controls reads\n// as one row. Derived from the raised pair so the two can never drift.\n$shadow-brand: $shadow-raised, inset 0 1px 0 rgba(255, 255, 255, 0.2);\n$shadow-brand-hover: $shadow-raised-hover,\n  inset 0 1px 0 rgba(255, 255, 255, 0.24);\n$shadow-danger: $shadow-raised, inset 0 1px 0 rgba(255, 255, 255, 0.18);\n$shadow-card: 9px 9px 22px $shade, -4px -4px 12px $light;\n$shadow-card-hover: 14px 14px 30px $shade-strong, -6px -6px 16px $light;\n$shadow-modal: 18px 18px 44px $shade-strong, -6px -6px 18px rgba($light, 0.25);\n$shadow-field: inset 4px 4px 9px $shade, inset -2px -2px 6px $light;\n$shadow-field-focus: inset 4px 4px 10px $shade, inset -2px -2px 7px $light;\n$shadow-well: inset 6px 6px 14px $shade, inset -3px -3px 9px $light;\n$shadow-track: inset 2px 2px 4px $shade, inset -1px -1px 3px $light-alt;\n$shadow-popover: 0 12px 32px rgba(16, 24, 40, 0.14);\n$shadow-row-hover: inset 0 0 0 1px $border;\n\n// --- Motion ----------------------------------------------------------------\n$ease: cubic-bezier(0.22, 1, 0.36, 1);\n$ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);\n$duration-fast: 0.18s;\n$duration: 0.22s;\n$duration-slow: 0.42s;\n\n// --- Layers ----------------------------------------------------------------\n// The admin chrome WordPress paints around us: #adminmenuback 9990,\n// #adminmenuwrap 9999, the collapse button 10000, #wpadminbar 99999.\n// An overlay has to clear the menu while staying under the admin bar.\n$z-sticky: 20;\n$z-dropdown: 40;\n$z-overlay: 10001;\n","// ---------------------------------------------------------------------------\n// Keyframes from the design export, emitted as mixins.\n//\n// A `*.module.scss` hashes its own `@keyframes` names, and an animation-name\n// that points at keyframes declared elsewhere would not be rewritten — so each\n// module that animates emits the keyframes it needs, at the top level of the\n// file (outside `m.scoped`).\n// ---------------------------------------------------------------------------\n\n@use \"tokens\" as t;\n\n@mixin fade {\n  @keyframes svFade {\n    from {\n      opacity: 0;\n    }\n    to {\n      opacity: 1;\n    }\n  }\n}\n\n@mixin fade-out {\n  @keyframes svFadeOut {\n    from {\n      opacity: 1;\n    }\n    to {\n      opacity: 0;\n    }\n  }\n}\n\n// The dialog entrance: a short rise with a touch of scale.\n@mixin pop {\n  @keyframes svPop {\n    from {\n      opacity: 0;\n      transform: translateY(8px) scale(0.98);\n    }\n    to {\n      opacity: 1;\n      transform: none;\n    }\n  }\n}\n\n@mixin pop-out {\n  @keyframes svPopOut {\n    from {\n      opacity: 1;\n      transform: none;\n    }\n    to {\n      opacity: 0;\n      transform: translateY(8px) scale(0.98);\n    }\n  }\n}\n\n// Side drawer.\n@mixin slide {\n  @keyframes svSlide {\n    from {\n      transform: translateX(100%);\n    }\n    to {\n      transform: none;\n    }\n  }\n}\n\n// Page / section entrance.\n@mixin rise {\n  @keyframes svRise {\n    from {\n      opacity: 0;\n      transform: translateY(14px);\n    }\n    to {\n      opacity: 1;\n      transform: none;\n    }\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n@use \"../../styles/motion\" as motion;\n\n@include motion.rise;\n\n@include m.scoped {\n  // Reference: <main style=\"flex:1;min-width:0;padding:28px 32px 64px\">\n  .shell {\n    display: flex;\n    flex-direction: column;\n    flex: 1 1 auto;\n    min-width: 0;\n    width: var(--servv-page-width, 100%);\n    height: var(--servv-page-height, 100%);\n    padding: t.$space-14 t.$space-16 64px;\n  }\n\n  .flush {\n    padding: 0;\n  }\n\n  // Full-size content column with responsive gutters.\n  .container {\n    display: flex;\n    flex-direction: column;\n    gap: t.$space-12;\n    width: var(--servv-page-width, 100%);\n    height: var(--servv-page-height, 100%);\n    max-width: 100%;\n    flex: 1 1 auto;\n    min-width: 0;\n    margin: 0;\n    // `backwards`, not `both`: a filled-forwards transform keeps computing as a\n    // matrix, which would make this column the containing block for every\n    // position:fixed overlay inside it (the filters drawer, modals).\n    animation: svRise t.$duration-slow t.$ease backwards;\n  }\n\n  @media (max-width: 782px) {\n    .shell {\n      padding: t.$space-8 t.$space-7 t.$space-16;\n    }\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  // Reference: <header style=\"display:flex;flex-direction:column;gap:16px\">\n  .header {\n    display: flex;\n    flex-direction: column;\n    gap: t.$space-8;\n    width: 100%;\n    margin: 0;\n    padding: 0;\n  }\n\n  .bottomLine {\n    padding-bottom: t.$space-8;\n    border-bottom: 1px solid t.$border;\n  }\n\n  // The title/actions row: actions sit on the text baseline and wrap under it\n  // when the viewport runs out of room.\n  .row {\n    display: flex;\n    align-items: flex-end;\n    justify-content: space-between;\n    gap: t.$space-12;\n    flex-wrap: wrap;\n    width: 100%;\n  }\n\n  .text {\n    min-width: 0;\n  }\n\n  .eyebrow {\n    @include m.eyebrow;\n    margin-bottom: t.$space-4;\n    color: t.$primary;\n  }\n\n  .title {\n    margin: 0;\n    @include m.text(32, t.$weight-extrabold);\n  }\n\n  // One line, next to the actions — it ellipsises rather than wrapping under\n  // them and pushing the row's height around. `.text` already carries the\n  // `min-width: 0` that lets it shrink instead of forcing the actions to wrap.\n  .description {\n    @include m.truncate;\n    margin: t.$space-3 0 0;\n    @include m.text(15, t.$weight-medium);\n    color: t.$text-secondary;\n  }\n\n  .actions {\n    display: flex;\n    align-items: center;\n    gap: t.$space-5;\n  }\n\n  @media (max-width: 735px) {\n    .title {\n      @include m.text(24, t.$weight-extrabold);\n    }\n\n    // On a phone the actions sit on their own row, so the description has the\n    // full width and is better off wrapping than being cut.\n    .text {\n      width: 100%;\n    }\n\n    .description {\n      overflow: visible;\n      white-space: normal;\n    }\n\n    .actions {\n      width: 100%;\n    }\n  }\n}\n","// ---------------------------------------------------------------------------\n// Shared style recipes. Every mixin here is pure output — importing this file\n// emits nothing on its own, so modules can @use it freely.\n// ---------------------------------------------------------------------------\n\n@use \"sass:color\";\n@use \"tokens\" as t;\n\n// Reset a <button> down to a styleable box.\n@mixin button-reset {\n  margin: 0;\n  padding: 0;\n  border: 0;\n  background: none;\n  font: inherit;\n  color: inherit;\n  text-align: inherit;\n  cursor: pointer;\n  appearance: none;\n}\n\n// The shared geometry of every control that reads as a button.\n@mixin control-base($height: t.$control-lg, $padding: 0 t.$space-7) {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  gap: t.$space-3;\n  box-sizing: border-box;\n  height: $height;\n  padding: $padding;\n  border-radius: t.$radius-lg;\n  font-family: t.$font-sans;\n  font-size: t.$text-14;\n  font-weight: t.$weight-semibold;\n  // Not 1: these labels sit in a truncating (overflow:hidden) span, which\n  // would clip the descenders of \"Upcoming\", \"Page\" and the like. The control\n  // keeps its explicit height either way.\n  line-height: 1.4;\n  white-space: nowrap;\n  cursor: pointer;\n  transition: background t.$duration t.$ease, color t.$duration-fast t.$ease, border-color t.$duration-fast t.$ease;\n\n  &:active:not(:disabled) {\n    border-color: t.$primary-border-strong;\n  }\n\n  &:disabled {\n    opacity: 0.5;\n    cursor: not-allowed;\n    transform: none;\n  }\n}\n\n// A raised white surface — secondary buttons, icon buttons, chips.\n@mixin raised($hoverable: true) {\n  border: 1px solid t.$border-soft;\n  background: t.$surface;\n  color: t.$text-strong;\n  box-shadow: t.$shadow-raised;\n\n  @if $hoverable {\n    &:hover:not(:disabled) {\n      background-color: t.$hover-surface;\n      border-color: t.$hover-border;\n    }\n  }\n}\n\n// The brand gradient fill — primary buttons.\n@mixin brand-fill {\n  border: 1px solid t.$primary-strong;\n  background-color: t.$primary;\n  color: t.$text-on-primary;\n  box-shadow: t.$shadow-brand;\n\n  &:hover:not(:disabled) {\n      background-color: t.$primary-strong;\n    }\n}\n\n// A toolbar trigger — the date button and the Filters button on a list screen.\n// Reference: padding:0 12px;border-radius:12px;border:1px solid #EFF2F8;\n// background:#FFFFFF;box-shadow:5px 5px 12px/-2px -2px 8px, with a 16px\n// brand-stroked icon. Height and type come from $control-lg / control-base so\n// the trigger matches the PageActionButton and the segmented control it shares\n// a toolbar with — the reference's 38px/13px left them a step short.\n@mixin toolbar-trigger {\n  @include button-reset;\n  @include wp-reset-button;\n  @include control-base(t.$control-lg, 0 t.$space-6);\n  @include raised;\n  gap: t.$space-4;\n  justify-content: flex-start;\n\n  &:focus-visible {\n    @include focus-ring-raised;\n  }\n}\n\n// The 16px icon inside a toolbar trigger: brand-stroked, never shrinking.\n@mixin toolbar-trigger-icon {\n  width: 16px;\n  height: 16px;\n  flex: 0 0 16px;\n  color: t.$primary;\n}\n\n// A card / panel surface.\n@mixin card-surface($radius: t.$radius-2xl) {\n  border: 1px solid t.$border;\n  border-radius: $radius;\n  background: t.$surface;\n  box-shadow: t.$shadow-card;\n}\n\n// A recessed surface — inputs, selects, textareas, wells.\n@mixin field-surface {\n  border: 1px solid t.$border-field;\n  border-radius: t.$radius-lg;\n  background: t.$surface;\n  box-shadow: t.$shadow-field;\n  transition: border-color t.$duration-fast t.$ease, background-color t.$duration t.$ease, color t.$duration-fast t.$ease;\n}\n\n// Keyboard focus. Applied to the element that carries the field chrome.\n@mixin focus-ring {\n  outline: none;\n  border-color: t.$primary-border-strong;\n  box-shadow: t.$shadow-field-focus, 0 0 0 3px t.$primary-ring;\n}\n\n// Focus for a raised (non-recessed) control.\n@mixin focus-ring-raised {\n  outline: none;\n  box-shadow: t.$shadow-raised, 0 0 0 3px t.$primary-ring;\n}\n\n@mixin field-error {\n  border-color: t.$danger-border-strong;\n  box-shadow: inset 4px 4px 9px t.$danger-shade, inset -2px -2px 6px t.$light,\n    0 0 0 3px t.$danger-ring;\n}\n\n// Type scale helper: @include text(14) → size + matching line-height.\n@mixin text($size, $weight: null) {\n  @if $size == 11 {\n    font-size: t.$text-11;\n    line-height: t.$leading-11;\n  } @else if $size == 12 {\n    font-size: t.$text-12;\n    line-height: t.$leading-12;\n  } @else if $size == 13 {\n    font-size: t.$text-13;\n    line-height: t.$leading-13;\n  } @else if $size == 14 {\n    font-size: t.$text-14;\n    line-height: t.$leading-14;\n  } @else if $size == 15 {\n    font-size: t.$text-15;\n    line-height: t.$leading-15;\n  } @else if $size == 16 {\n    font-size: t.$text-16;\n    line-height: t.$leading-16;\n  } @else if $size == 18 {\n    font-size: t.$text-18;\n    line-height: t.$leading-18;\n  } @else if $size == 20 {\n    font-size: t.$text-20;\n    line-height: t.$leading-20;\n  } @else if $size == 24 {\n    font-size: t.$text-24;\n    line-height: t.$leading-24;\n  } @else if $size == 32 {\n    font-size: t.$text-32;\n    line-height: t.$leading-32;\n    letter-spacing: t.$tracking-tight;\n  } @else {\n    @error \"text(): unsupported size #{$size}\";\n  }\n\n  @if $weight {\n    font-weight: $weight;\n  }\n}\n\n// An all-caps eyebrow label.\n@mixin eyebrow {\n  @include text(11, t.$weight-bold);\n  letter-spacing: t.$tracking-wider;\n  text-transform: uppercase;\n}\n\n@mixin truncate {\n  min-width: 0;\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n\n// Honour the reduced-motion preference for decorative movement.\n@mixin reduced-motion {\n  @media (prefers-reduced-motion: reduce) {\n    @content;\n  }\n}\n\n// --- Form furniture --------------------------------------------------------\n\n// The label above a field.\n@mixin field-label {\n  display: block;\n  margin: 0;\n  @include text(13, t.$weight-semibold);\n  color: t.$text-strong;\n}\n\n// Helper copy under a field.\n@mixin field-hint {\n  @include text(12, t.$weight-medium);\n  color: t.$text-soft;\n}\n\n// Validation copy under a field.\n@mixin field-error-text {\n  display: flex;\n  align-items: center;\n  gap: t.$space-3;\n  @include text(12, t.$weight-semibold);\n  color: t.$danger-text;\n}\n\n// Vertical stack of label + control + message.\n@mixin field-stack {\n  display: flex;\n  flex-direction: column;\n  gap: t.$space-3;\n}\n\n// --- Isolation from the WordPress admin stylesheets -------------------------\n//\n// WordPress styles form controls with selectors like `input[type=\"text\"]`\n// (0,1,1) and `.wp-admin p input[type=\"checkbox\"]` (0,2,1). A bare CSS-module\n// class is only (0,1,0), so core would win. Wrapping a module's rules in\n// `:is(#servv-wrap, .servv-ui)` adds an id to the specificity — (1,1,0) — which\n// outranks every core admin selector that reaches into our subtree, without\n// `!important` anywhere.\n//\n// `.servv-ui` is the same hook for the public widget, where themes misbehave in\n// the same way; add the class to the widget root when those views migrate.\n//\n//   @include m.scoped {\n//     .button { ... }\n//   }\n// `:global()` is required: inside a *.module.scss, css-loader would otherwise\n// hash `#servv-wrap` and `.servv-ui` as local names.\n@mixin scoped {\n  :is(:global(#servv-wrap), :global(.servv-ui)) {\n    @content;\n  }\n}\n\n// Neutralise the properties WordPress' forms.css sets on a native control.\n// Surgical on purpose: a blanket `all: revert` would also strip the inline\n// chrome that react-select, Quill and MUI give their own inputs.\n@mixin wp-reset-control {\n  box-sizing: border-box;\n  min-height: 0;\n  margin: 0;\n  border: 0;\n  border-radius: 0;\n  background: transparent;\n  box-shadow: none;\n  color: inherit;\n  font-family: inherit;\n  line-height: normal;\n  outline: 0;\n  appearance: none;\n\n  &:focus,\n  &:focus-visible {\n    border-color: transparent;\n    box-shadow: none;\n    outline: 0;\n  }\n}\n\n// Same, for an element rendered as a button.\n@mixin wp-reset-button {\n  box-sizing: border-box;\n  min-height: 0;\n  margin: 0;\n  background: none;\n  box-shadow: none;\n  text-decoration: none;\n  text-shadow: none;\n  vertical-align: baseline;\n  appearance: none;\n\n  &:focus {\n    outline: 0;\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  .root {\n    position: relative;\n  }\n\n  // Reference popover: 8px below the activator, radius 18, flat drop shadow.\n  .menu {\n    position: absolute;\n    z-index: t.$z-dropdown;\n    margin-top: t.$space-4;\n  }\n\n  // Drawn only when the child is not a surface of its own.\n  .surface {\n    @include m.card-surface;\n    padding: t.$space-8;\n    box-shadow: t.$shadow-popover;\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  .item {\n    display: inline-flex;\n    align-items: center;\n    gap: t.$space-5;\n    cursor: pointer;\n    user-select: none;\n  }\n\n  .input {\n    position: absolute;\n    width: 0;\n    height: 0;\n    margin: 0;\n    padding: 0;\n    opacity: 0;\n    pointer-events: none;\n    appearance: none;\n  }\n\n  .box {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 auto;\n    width: 18px;\n    height: 18px;\n    border: 1px solid t.$border-field;\n    border-radius: t.$radius-sm - 1px;\n    background: t.$surface;\n    box-shadow: t.$shadow-field;\n    color: transparent;\n    transition: background t.$duration-fast t.$ease,\n      border-color t.$duration-fast t.$ease, box-shadow t.$duration t.$ease,\n      transform t.$duration-fast t.$ease-spring;\n  }\n\n  .item:hover .box {\n    border-color: t.$primary-border;\n  }\n\n  .input:checked + .box {\n    border-color: t.$primary-strong;\n    background: linear-gradient(145deg, t.$primary-grad-from, t.$primary-grad-to);\n    box-shadow: t.$shadow-raised-sm, inset 0 1px 0 rgba(255, 255, 255, 0.2);\n    color: t.$text-on-primary;\n    transform: scale(1.06);\n  }\n\n  .input:focus-visible + .box {\n    outline: none;\n    box-shadow: t.$shadow-field, 0 0 0 3px t.$primary-ring;\n  }\n\n  // Same fill as :checked, drawn by the parent because an indeterminate input\n  // has no CSS state of its own that a sibling selector can read reliably.\n  .mixed {\n    border-color: t.$primary-strong;\n    background: linear-gradient(145deg, t.$primary-grad-from, t.$primary-grad-to);\n    box-shadow: t.$shadow-raised-sm, inset 0 1px 0 rgba(255, 255, 255, 0.2);\n  }\n\n  .dash {\n    width: 9px;\n    height: 2px;\n    border-radius: t.$radius-pill;\n    background: t.$text-on-primary;\n  }\n\n  .check {\n    display: block;\n  }\n\n  .label {\n    @include m.text(13, t.$weight-medium);\n    color: t.$text-strong;\n  }\n\n  .disabled {\n    cursor: not-allowed;\n    opacity: 0.55;\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n// The \"Display settings\" popover from events-views.html: a raised trigger and\n// a 290px card of radio rows.\n@include m.scoped {\n  // inline-block, not inline-flex: an absolutely positioned child of a flex\n  // container takes its static position from the container's content box, so\n  // the popover would open over the button instead of under it.\n  .root {\n    position: relative;\n    display: inline-block;\n  }\n\n  .pop {\n    width: 290px;\n    max-width: calc(100vw - #{t.$space-16});\n    padding: t.$space-7;\n    border: 1px solid t.$border;\n    border-radius: t.$radius-xl;\n    background: t.$surface;\n    box-shadow: 12px 12px 28px t.$shade-strong, -5px -5px 16px t.$light;\n  }\n\n  .group + .group {\n    margin-top: t.$space-7;\n    padding-top: t.$space-7;\n    border-top: 1px solid t.$border;\n  }\n\n  .title {\n    margin: 0 0 2px;\n    @include m.text(14, t.$weight-bold);\n    color: t.$text;\n  }\n\n  .note {\n    margin: 0 0 t.$space-6;\n    @include m.text(12, t.$weight-medium);\n    color: t.$text-soft;\n  }\n\n  .checks {\n    display: flex;\n    flex-direction: column;\n    gap: t.$space-5;\n  }\n\n  // Reference `.opt`: a raised slab that presses in when it is the one chosen.\n  .opt {\n    @include m.button-reset;\n    @include m.wp-reset-button;\n    display: flex;\n    align-items: flex-start;\n    gap: 11px;\n    width: 100%;\n    padding: t.$space-6;\n    border: 1px solid t.$border;\n    border-radius: t.$radius-lg;\n    background: t.$surface;\n    box-shadow: t.$shadow-raised-sm;\n    color: t.$text;\n    text-align: left;\n    transition: background t.$duration t.$ease, color t.$duration-fast t.$ease, border-color t.$duration-fast t.$ease;\n\n    & + .opt {\n      margin-top: t.$space-4;\n    }\n\n    &:hover {\n      background-color: t.$hover-surface;\n      border-color: t.$hover-border;\n    }\n\n    &:focus-visible {\n      @include m.focus-ring-raised;\n    }\n  }\n\n  .optActive {\n    border-color: t.$primary-border;\n    background: t.$primary-surface;\n    box-shadow: t.$shadow-chip-pressed;\n    transform: none;\n\n    &:hover {\n      background-color: t.$hover-surface;\n      border-color: t.$hover-border;\n    }\n  }\n\n  // A radio drawn as a ring: 5px of surface inside the border, so the dot\n  // appears when the border takes the brand colour.\n  .mark {\n    width: 18px;\n    height: 18px;\n    flex: 0 0 18px;\n    margin-top: 2px;\n    border: 5px solid t.$surface;\n    border-radius: t.$radius-pill;\n    background: t.$surface;\n    box-shadow: t.$shadow-field;\n    transition: border-color t.$duration-fast t.$ease, background-color t.$duration t.$ease, color t.$duration-fast t.$ease;\n  }\n\n  .optActive .mark {\n    border-color: t.$primary;\n    box-shadow: 0 0 0 1px t.$primary, t.$shadow-raised-sm;\n  }\n\n  .label {\n    display: block;\n    @include m.text(13, t.$weight-bold);\n  }\n\n  .hint {\n    display: block;\n    margin-top: 2px;\n    @include m.text(12, t.$weight-medium);\n    color: t.$text-soft;\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  // Segmented control (`tabStyle` in the reference).\n  // Track: <div style=\"display:inline-flex;padding:3px;background:#FAFBFD;\n  // border:1px solid rgba(21,27,43,.09);gap:2px\"> — tinted, with the active\n  // segment as a raised WHITE chip, never a brand fill.\n  // Unlike the reference the track carries the same $shadow-raised and sits at\n  // the same height as every other control in a toolbar row; its radius is\n  // derived from the chip's ($radius-segment + $segment-gutter = 13px).\n  // flex-start keeps the track at its own width inside a stretching column —\n  // a labelled group in the filters drawer, say — instead of letting it run to\n  // the full width with the segments huddled on the left.\n  .wrapper {\n    @include m.field-stack;\n    align-items: flex-start;\n  }\n\n  .wrapperFull {\n    align-items: stretch;\n  }\n\n  .title {\n    @include m.field-label;\n  }\n\n  .track {\n    display: inline-flex;\n    align-items: center;\n    gap: t.$space-1;\n    box-sizing: border-box;\n    max-width: 100%;\n    padding: t.$segment-gutter;\n    border: 1px solid t.$border-soft;\n    border-radius: t.$radius-segment-track;\n    background: t.$surface-subtle;\n    box-shadow: t.$shadow-raised;\n    overflow-x: auto;\n    scrollbar-width: none;\n\n    &::-webkit-scrollbar {\n      display: none;\n    }\n  }\n\n  // $control-segment keeps the track itself at $control-lg — the height of the\n  // date trigger, the Filters trigger and the primary button next to it.\n  .segment {\n    @include m.button-reset;\n    @include m.wp-reset-button;\n    @include m.control-base(t.$control-segment, 0 t.$space-8);\n    flex: 0 0 auto;\n    border: 1px solid transparent;\n    border-radius: t.$radius-segment;\n\n    &:focus-visible {\n      @include m.focus-ring-raised;\n    }\n  }\n\n  .active {\n    background: t.$surface;\n    color: t.$primary-strong;\n    font-weight: t.$weight-bold;\n    box-shadow: t.$shadow-raised-chip;\n  }\n\n  .inactive {\n    color: t.$text-soft;\n    background: transparent;\n\n    &:hover:not(:disabled) {\n      color: t.$primary-strong;\n    }\n  }\n\n  .trackFull {\n    display: flex;\n    width: 100%;\n\n    .segment {\n      flex: 1 1 0;\n    }\n  }\n\n  // A segment carrying only an icon is square, like the icon buttons.\n  .iconOnly {\n    width: t.$control-segment;\n    padding: 0;\n    gap: 0;\n\n    &.compact {\n      width: t.$control-xs;\n    }\n  }\n\n  .icon {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 auto;\n\n    svg {\n      display: block;\n      width: 16px;\n      height: 16px;\n    }\n  }\n\n  .compact {\n    height: t.$control-xs;\n    padding: 0 t.$space-5;\n    font-size: t.$text-12;\n  }\n\n  .text {\n    @include m.truncate;\n  }\n\n  @media (max-width: 735px) {\n    .track {\n      display: flex;\n      width: 100%;\n    }\n\n    .segment {\n      flex: 1 1 0;\n    }\n\n    .iconOnly {\n      flex: 0 0 auto;\n    }\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  .field {\n    display: flex;\n    width: 100%;\n    max-width: 100%;\n  }\n\n  .content {\n    @include m.field-surface;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    height: t.$control-lg;\n    padding: 0 t.$space-6;\n\n    &:hover:not(.disabled) {\n      border-color: t.$primary-border-soft;\n    }\n\n    &:focus-within {\n      @include m.focus-ring;\n    }\n  }\n\n  .textarea {\n    height: auto;\n    padding: t.$space-5 t.$space-6;\n  }\n\n  .native {\n    @include m.wp-reset-control;\n    width: 100%;\n    min-width: 0;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    background: transparent;\n    box-shadow: none;\n    color: t.$text;\n    @include m.text(14, t.$weight-medium);\n    outline: none;\n    appearance: none;\n\n    &:focus {\n      outline: none;\n      box-shadow: none;\n    }\n\n    &::placeholder {\n      color: t.$text-placeholder;\n      font-weight: t.$weight-medium;\n    }\n\n    &:disabled {\n      color: t.$text-soft;\n      cursor: not-allowed;\n    }\n\n    // Hide the spinner on numeric inputs: the design pairs them with explicit\n    // stepper buttons instead.\n    &[type=\"number\"] {\n      -moz-appearance: textfield;\n    }\n\n    &::-webkit-outer-spin-button,\n    &::-webkit-inner-spin-button {\n      margin: 0;\n      appearance: none;\n    }\n  }\n\n  textarea.native {\n    line-height: 21px;\n    resize: vertical;\n  }\n\n  .left {\n    text-align: left;\n  }\n\n  .center {\n    text-align: center;\n  }\n\n  .right {\n    text-align: right;\n  }\n\n  .error .content {\n    @include m.field-error;\n  }\n\n  .disabled .content {\n    background: t.$surface-subtle;\n    box-shadow: none;\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  .surface {\n    width: 328px;\n    min-width: 0;\n    max-width: calc(100vw - 48px);\n    min-height: 0;\n    padding: 16px;\n    gap: 12px;\n    border: 1px solid t.$border;\n    border-radius: t.$radius-2xl;\n    background: t.$surface;\n    box-shadow:\n      12px 12px 28px t.$shade-strong,\n      -5px -5px 16px t.$light;\n    font-family: t.$font-sans;\n    :global(.rdp-root),\n    :global(.rdp-months),\n    :global(.rdp-month) {\n      width: 100%;\n    }\n    :global(.rdp-nav) {\n      height: 36px;\n      margin-bottom: 8px;\n    }\n    :global(.rdp-month_caption) {\n      height: 36px;\n      margin-top: -44px;\n      margin-bottom: 12px;\n      pointer-events: none;\n    }\n    :global(.rdp-caption_label) {\n      font-family: inherit;\n      color: t.$text;\n      font-size: 14px;\n      font-weight: 700;\n    }\n    :global(.rdp-button_previous),\n    :global(.rdp-button_next) {\n      width: 36px;\n      height: 36px;\n      border: 1px solid t.$border;\n      border-radius: 10px;\n      background: t.$surface;\n      box-shadow: t.$shadow-raised-sm;\n      &:hover {\n        background: t.$primary-surface;\n      }\n    }\n    :global(.rdp-chevron) {\n      width: 16px;\n      height: 16px;\n      fill: t.$primary;\n    }\n    :global(.rdp-month_grid) {\n      width: 100%;\n      margin: 0;\n    }\n    :global(.rdp-weekdays),\n    :global(.rdp-weeks .rdp-week) {\n      display: grid;\n      grid-template-columns: repeat(7, minmax(0, 1fr));\n      gap: 0;\n    }\n    :global(.rdp-weekday) {\n      font-family: inherit;\n      color: t.$text-soft;\n      font-size: 11px;\n      font-weight: 600;\n      padding: 6px 0;\n    }\n    :global(.rdp-day) {\n      width: 100%;\n      height: 40px;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    }\n    :global(.rdp-day_button) {\n      width: 100%;\n      max-width: 38px;\n      height: 38px;\n      border-radius: 12px;\n      font-family: inherit;\n      color: t.$text-strong;\n      font-size: 13px;\n      font-weight: 600;\n      &:hover {\n        background: t.$primary-surface;\n        color: t.$primary-strong;\n      }\n      &:focus-visible {\n        outline: 2px solid t.$primary;\n        outline-offset: -2px;\n      }\n    }\n    :global(.rdp-today .rdp-day_button) {\n      background: t.$surface-subtle;\n      color: t.$primary;\n    }\n    :global(.rdp-selected .rdp-day_button),\n    :global(.rdp-range_start .rdp-day_button),\n    :global(.rdp-range_end .rdp-day_button) {\n      background: linear-gradient(\n        145deg,\n        t.$primary-grad-from,\n        t.$primary-grad-to\n      );\n      color: t.$text-on-primary;\n      box-shadow: t.$shadow-raised-sm;\n    }\n    :global(.rdp-range_middle .rdp-day_button) {\n      background: t.$primary-surface;\n      color: t.$primary-strong;\n      border-radius: 0;\n      box-shadow: none;\n    }\n    :global(.rdp-outside:not(.rdp-selected) .rdp-day_button) {\n      color: t.$text-placeholder;\n    }\n    :global(.rdp-disabled .rdp-day_button) {\n      opacity: 0.4;\n      color: t.$text-soft;\n      background: transparent;\n      box-shadow: none;\n    }\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  .root {\n    position: relative;\n    display: inline-block;\n  }\n\n  // Reference: the toolbar date trigger next to the segmented control.\n  .button {\n    @include m.toolbar-trigger;\n  }\n  .button.field {\n    height: 40px;\n    border-color: t.$border-field;\n    border-radius: 12px;\n    box-shadow: t.$shadow-field;\n    justify-content: space-between;\n    flex-direction: row-reverse;\n  }\n\n  .icon {\n    @include m.toolbar-trigger-icon;\n  }\n\n  .label {\n    @include m.truncate;\n  }\n\n  // Fills its column instead of sitting at its own width.\n  .block,\n  .block .button {\n    width: 100%;\n  }\n\n  @media (max-width: 480px) {\n    .root,\n    .button {\n      width: 100%;\n    }\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  .wrapper {\n    @include m.field-stack;\n    width: 100%;\n  }\n\n  .label {\n    @include m.field-label;\n  }\n\n  .control {\n    @include m.field-surface;\n    position: relative;\n    display: flex;\n    align-items: center;\n    width: 100%;\n    height: t.$control-lg;\n    padding: 0 t.$space-5;\n\n    &:hover:not(.disabled) {\n      border-color: t.$primary-border-soft;\n    }\n\n    // The border carries the focus state; the halo from m.focus-ring is left\n    // off here so the recess does not gain a second outline.\n    &:focus-within {\n      outline: none;\n      border-color: t.$primary-border-strong;\n    }\n  }\n\n  .native {\n    @include m.wp-reset-control;\n    width: 100%;\n    min-width: 0;\n    height: 100%;\n    margin: 0;\n    padding: 0 t.$space-6 0 0;\n    border: 0;\n    background: transparent;\n    box-shadow: none;\n    color: t.$text;\n    @include m.text(14, t.$weight-medium);\n    cursor: pointer;\n    outline: none;\n    appearance: none;\n\n    &:focus {\n      outline: none;\n      box-shadow: none;\n    }\n\n    &:disabled {\n      color: t.$text-soft;\n      cursor: not-allowed;\n    }\n\n    // The caret is drawn by .caret; keep the IE/Edge arrow out of the way.\n    &::-ms-expand {\n      display: none;\n    }\n  }\n\n  // Native-select caret.\n  .caret {\n    position: absolute;\n    right: t.$space-5;\n    display: flex;\n    align-items: center;\n    pointer-events: none;\n    color: t.$text-soft;\n\n    svg {\n      display: block;\n      width: 18px;\n      height: 18px;\n    }\n  }\n\n  .icon {\n    display: flex;\n    align-items: center;\n    flex: 0 0 auto;\n    margin-left: t.$space-2;\n    color: t.$text-soft;\n  }\n\n  .disabled {\n    background: t.$surface-subtle;\n    box-shadow: none;\n    cursor: not-allowed;\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n@use \"../../styles/motion\" as motion;\n\n@include motion.fade;\n@include motion.slide;\n\n@include m.scoped {\n  // Reference: position:fixed;inset:0;display:flex;justify-content:flex-end;\n  // background:rgba(16,24,40,.45);animation:svFade .15s ease-out\n  .overlay {\n    position: fixed;\n    inset: 0;\n    // The drawer runs the full height of the admin canvas, so it has to start\n    // below the WordPress admin bar (32px, 46px on narrow screens).\n    top: var(--wp-admin--admin-bar--height, 0px);\n    z-index: t.$z-overlay;\n    display: flex;\n    justify-content: flex-end;\n    background: rgba(16, 24, 40, 0.45);\n    animation: svFade 0.15s ease-out;\n  }\n\n  // Reference: width:400px;max-width:92vw;height:100%;border-left:1px solid\n  // #EDF1F7;box-shadow:-18px 0 44px #D4DBE8,inset 8px 0 20px #FBFCFE\n  .panel {\n    display: flex;\n    flex-direction: column;\n    width: 400px;\n    max-width: 92vw;\n    height: 100%;\n    border-left: 1px solid t.$border;\n    background: t.$surface;\n    box-shadow: -18px 0 44px t.$shade-strong, inset 8px 0 20px t.$light;\n    animation: svSlide t.$duration t.$ease;\n  }\n\n  @include m.reduced-motion {\n    .overlay,\n    .panel {\n      animation: none;\n    }\n  }\n\n  // --- Header ---------------------------------------------------------------\n\n  .header {\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: t.$space-6;\n    padding: t.$space-10;\n    border-bottom: 1px solid t.$border-hairline;\n  }\n\n  .title {\n    margin: 0;\n    @include m.text(18, t.$weight-bold);\n    letter-spacing: -0.01em;\n  }\n\n  .subtitle {\n    margin: t.$space-2 0 0;\n    @include m.text(13, t.$weight-medium);\n    color: t.$text-soft;\n  }\n\n  // Reference: a 32px square raised button carrying the dismiss glyph.\n  .close {\n    @include m.button-reset;\n    @include m.wp-reset-button;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 auto;\n    width: 32px;\n    height: 32px;\n    border: 1px solid t.$border-soft;\n    border-radius: t.$radius-sm;\n    background: t.$surface;\n    color: t.$text-soft;\n    box-shadow: t.$shadow-raised-chip;\n    transition: color t.$duration-fast t.$ease, background-color t.$duration t.$ease, border-color t.$duration-fast t.$ease;\n\n    &:hover {\n      color: t.$text-strong;\n    }\n\n    &:focus-visible {\n      @include m.focus-ring-raised;\n    }\n\n    svg {\n      width: 16px;\n      height: 16px;\n    }\n  }\n\n  // --- Body -----------------------------------------------------------------\n\n  // Reference: flex:1;overflow:auto;padding:20px;gap:24px\n  .body {\n    display: flex;\n    flex-direction: column;\n    flex: 1;\n    gap: t.$space-12;\n    padding: t.$space-10;\n    overflow: auto;\n  }\n\n  .section {\n    display: flex;\n    flex-direction: column;\n    gap: t.$space-8;\n  }\n\n  .sectionTitle {\n    @include m.eyebrow;\n    color: t.$text-soft;\n  }\n\n  // The carved groove the reference uses between drawer sections.\n  .divider {\n    height: 3px;\n    border-radius: t.$radius-pill;\n    background: t.$surface;\n    box-shadow: t.$shadow-track;\n  }\n\n  // --- Format chips ---------------------------------------------------------\n\n  .chips {\n    display: flex;\n    gap: t.$space-4;\n    flex-wrap: wrap;\n  }\n\n  // Reference: `chipStyle` — a 34px pill that sits pressed when selected.\n  .chip {\n    @include m.button-reset;\n    @include m.wp-reset-button;\n    @include m.control-base(t.$control-sm, 0 t.$space-7);\n    gap: 7px;\n    border: 1px solid t.$border;\n    border-radius: t.$radius-pill;\n    background: t.$surface;\n    color: t.$text-strong;\n    box-shadow: t.$shadow-raised-chip;\n    font-size: t.$text-13;\n\n    &:hover:not(:disabled) {\n      background-color: t.$hover-surface;\n      border-color: t.$hover-border;\n    }\n\n    &:focus-visible {\n      @include m.focus-ring-raised;\n    }\n  }\n\n  .chipActive {\n    border-color: t.$primary-border-strong;\n    background: t.$primary-surface;\n    color: t.$primary-strong;\n    box-shadow: t.$shadow-chip-pressed;\n\n    &:hover:not(:disabled) {\n      background-color: t.$hover-surface;\n      border-color: t.$hover-border;\n    }\n  }\n\n  .dot {\n    width: 8px;\n    height: 8px;\n    flex: 0 0 8px;\n    border-radius: t.$radius-pill;\n    background: currentcolor;\n  }\n\n  // Reference: the type colours — In-person violet, Online blue.\n  .dotOffline {\n    background: t.$primary;\n  }\n\n  .dotZoom {\n    background: t.$info;\n  }\n\n  // --- Attributes -----------------------------------------------------------\n\n  .fields {\n    display: flex;\n    flex-direction: column;\n    gap: t.$space-8;\n  }\n\n  // The date picker is not a labelled control of its own, so the drawer gives\n  // it the same label treatment the selects get.\n  .fieldLabel {\n    @include m.field-label;\n    margin-bottom: t.$space-3;\n  }\n\n  .emptyGroups {\n    @include m.text(13, t.$weight-medium);\n    color: t.$text-soft;\n  }\n\n  // --- Footer ---------------------------------------------------------------\n\n  // Reference: padding:16px 20px;border-top;gap:10px; both buttons flex:1\n  .footer {\n    display: flex;\n    gap: t.$space-5;\n    padding: t.$space-8 t.$space-10;\n    border-top: 1px solid t.$border-hairline;\n\n    > * {\n      flex: 1 1 0;\n    }\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  .root {\n    position: relative;\n    display: inline-block;\n  }\n\n  // Reference: the toolbar Filters trigger — same soft 38px button as the date\n  // control, with the applied-count pill after the label.\n  .button {\n    @include m.toolbar-trigger;\n  }\n\n  .icon {\n    @include m.toolbar-trigger-icon;\n  }\n\n  // <span style=\"height:18px;padding:0 6px;border-radius:99px;background:#EAE2FB;\n  // color:#4D2AA3;font-size:11px;font-weight:700\">\n  .count {\n    display: inline-flex;\n    align-items: center;\n    height: 18px;\n    padding: 0 t.$space-3;\n    border-radius: t.$radius-pill;\n    background: t.$primary-surface;\n    color: t.$primary-strong;\n    @include m.text(11, t.$weight-bold);\n  }\n\n  @media (max-width: 480px) {\n    .root,\n    .button {\n      width: 100%;\n    }\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  // Reference (events-views.html, .bulkbar): a brand-tinted raised strip that\n  // slides up when the first row is picked.\n  .bar {\n    display: flex;\n    align-items: center;\n    gap: t.$space-5;\n    flex-wrap: wrap;\n    padding: t.$space-6 t.$space-8;\n    border: 1px solid t.$primary-border;\n    border-radius: t.$radius-xl;\n    background: t.$primary-surface;\n    box-shadow: 8px 8px 20px t.$shade, -4px -4px 12px t.$light;\n    animation: bulkSlideUp t.$duration-slow t.$ease backwards;\n  }\n\n  .count {\n    @include m.text(13, t.$weight-bold);\n    color: t.$primary-strong;\n  }\n\n  .spacer {\n    flex: 1;\n  }\n\n  @keyframes bulkSlideUp {\n    from {\n      opacity: 0;\n      transform: translateY(8px);\n    }\n\n    to {\n      opacity: 1;\n      transform: none;\n    }\n  }\n\n  @include m.reduced-motion {\n    .bar {\n      animation: none;\n    }\n  }\n\n  // The select-all row that sits above the list. Its box has to line up with\n  // the checkbox column of the rows below, and the two views inset that column\n  // differently — a floating row pads 20px inside a 1px border, a rail row\n  // pads 18px with no border at all.\n  .selectAll {\n    display: flex;\n    align-items: center;\n    gap: t.$space-5;\n    @include m.text(13, t.$weight-semibold);\n    color: t.$text-soft;\n  }\n\n  .insetRows {\n    padding-left: t.$space-10 + 1px;\n  }\n\n  .insetRail {\n    padding-left: t.$space-9;\n  }\n\n  @media (max-width: 735px) {\n    .spacer {\n      display: none;\n    }\n\n    .bar {\n      gap: t.$space-4;\n    }\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n@use \"../../styles/motion\" as motion;\n\n@include motion.fade;\n@include motion.pop;\n\n@include m.scoped {\n  // Reference: position:fixed;inset:0;z-index:70;display:flex;\n  // align-items:center;justify-content:center;padding:32px;\n  // background:rgba(16,24,40,.5);animation:svFade .15s ease-out\n  .overlay {\n    position: fixed;\n    inset: 0;\n    z-index: t.$z-overlay;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: t.$space-16;\n    background: rgba(16, 24, 40, 0.5);\n    animation: svFade 0.15s ease-out;\n  }\n\n  // Reference: width:760px;max-width:100%;max-height:100%;radius 18;\n  // box-shadow:18px 18px 44px #D4DBE8,-6px -6px 18px #FBFCFE\n  .dialog {\n    display: flex;\n    flex-direction: column;\n    width: 760px;\n    max-width: 100%;\n    max-height: 100%;\n    overflow: hidden;\n    border: 1px solid t.$border;\n    border-radius: t.$radius-2xl;\n    background: t.$surface;\n    box-shadow: t.$shadow-modal;\n    animation: svPop 0.2s t.$ease;\n  }\n\n  .sm {\n    width: 480px;\n  }\n\n  .md {\n    width: 640px;\n  }\n\n  .lg {\n    width: 760px;\n  }\n\n  .xl {\n    width: 960px;\n  }\n\n  // Reference: padding:20px 24px;border-bottom:1px solid rgba(21,27,43,.09);\n  // display:flex;align-items:flex-start;justify-content:space-between;gap:16px\n  .header {\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: t.$space-8;\n    padding: t.$space-10 t.$space-12;\n    border-bottom: 1px solid rgba(21, 27, 43, 0.09);\n  }\n\n  .eyebrow {\n    @include m.eyebrow;\n    color: t.$primary;\n  }\n\n  .title {\n    margin: t.$space-2 0 0;\n    @include m.text(20, t.$weight-bold);\n    letter-spacing: -0.01em;\n  }\n\n  .description {\n    margin: t.$space-2 0 0;\n    @include m.text(13, t.$weight-medium);\n    color: t.$text-soft;\n  }\n\n  // Reference: a 32px square raised button carrying the dismiss glyph.\n  .close {\n    @include m.button-reset;\n    @include m.wp-reset-button;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 auto;\n    width: 32px;\n    height: 32px;\n    border: 1px solid t.$border-soft;\n    border-radius: t.$radius-sm;\n    background: t.$surface;\n    color: t.$text-soft;\n    box-shadow: t.$shadow-raised-sm;\n    transition: color t.$duration-fast t.$ease, background-color t.$duration t.$ease, border-color t.$duration-fast t.$ease;\n\n    &:hover {\n      color: t.$text-strong;\n    }\n\n    &:focus-visible {\n      @include m.focus-ring-raised;\n    }\n\n    svg {\n      width: 16px;\n      height: 16px;\n    }\n  }\n\n  // Reference: padding:24px;overflow:auto;display:flex;\n  // flex-direction:column;gap:18px\n  .body {\n    display: flex;\n    flex-direction: column;\n    gap: t.$space-9;\n    padding: t.$space-12;\n    overflow: auto;\n  }\n\n  // Reference: padding:16px 24px;border-top:1px solid rgba(21,27,43,.09);\n  // display:flex;align-items:center;justify-content:space-between;gap:12px\n  .footer {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: t.$space-6;\n    padding: t.$space-8 t.$space-12;\n    border-top: 1px solid rgba(21, 27, 43, 0.09);\n  }\n\n  @media (max-width: 735px) {\n    .overlay {\n      padding: t.$space-6;\n    }\n\n    .header,\n    .footer {\n      padding-left: t.$space-8;\n      padding-right: t.$space-8;\n    }\n\n    .body {\n      padding: t.$space-8;\n    }\n  }\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  .root {\n    position: relative;\n  }\n\n  // Tailwind's blur-sm, kept as-is so loading states look unchanged.\n  .blurred {\n    filter: blur(4px);\n    pointer-events: none;\n  }\n\n  .overlay {\n    position: absolute;\n    inset: 0;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n}\n","@use \"../../../styles/tokens\" as t;\n@use \"../../../styles/mixins\" as m;\n\n// The events list's \"floating rows\" (option A), carrying bookings instead of\n// events. Which columns show is a per-browser preference, so the grid template\n// arrives as an inline style and only the chrome lives here.\n@include m.scoped {\n  .list {\n    container-type: inline-size;\n    min-width: 0;\n    display: flex;\n    flex-direction: column;\n    gap: t.$space-6;\n  }\n\n  // The template rides in on a custom property rather than an inline\n  // grid-template-columns, so the narrow layout below can still override it\n  // without !important.\n  .head {\n    display: grid;\n    grid-template-columns: var(--booking-cols);\n    gap: t.$space-7;\n    // The rows below have a 1px border; without the same inset here their\n    // flexible columns resolve 2px narrower and every heading sits a pixel off.\n    border: 1px solid transparent;\n    padding: 0 t.$space-10;\n    color: t.$text-placeholder;\n    @include m.eyebrow;\n    letter-spacing: t.$tracking-wide;\n  }\n\n  .row {\n    min-width: 0;\n    > div { min-width: 0; }\n    display: grid;\n    grid-template-columns: var(--booking-cols);\n    gap: t.$space-7;\n    align-items: center;\n    width: 100%;\n    padding: t.$space-9 t.$space-10;\n    border: 1px solid t.$border;\n    border-radius: t.$radius-2xl;\n    background: t.$surface;\n    box-shadow: 8px 8px 20px t.$shade, -4px -4px 12px t.$light;\n    text-align: left;\n    transition: background-color t.$duration t.$ease, color t.$duration-fast t.$ease, border-color t.$duration-fast t.$ease;\n\n    &:hover {\n      background-color: t.$hover-surface;\n      border-color: t.$hover-border;\n    }\n  }\n\n  // A cancelled booking stays readable but recedes.\n  .muted {\n    opacity: 0.72;\n  }\n\n  .picked {\n    background: rgba(100, 54, 201, 0.06);\n  }\n\n  .pick {\n    display: flex;\n    align-items: center;\n  }\n\n  // --- Cells ----------------------------------------------------------------\n\n  .strong {\n    @include m.truncate;\n    @include m.text(13, t.$weight-bold);\n    color: t.$text;\n  }\n\n  .title {\n    @include m.truncate;\n    @include m.text(14, t.$weight-bold);\n    letter-spacing: -0.01em;\n  }\n\n  .text {\n    @include m.truncate;\n    @include m.text(13, t.$weight-medium);\n    color: t.$text-secondary;\n  }\n\n  .sub {\n    @include m.truncate;\n    margin-top: t.$space-1;\n    @include m.text(12, t.$weight-medium);\n    color: t.$text-soft;\n  }\n\n  .money {\n    @include m.text(13, t.$weight-bold);\n    color: t.$text;\n  }\n\n  .free {\n    @include m.text(13, t.$weight-semibold);\n    color: t.$text-soft;\n  }\n\n  .status {\n    display: inline-flex;\n    align-items: center;\n    gap: t.$space-3;\n    height: 26px;\n    padding: 0 11px;\n    border: 1px solid t.$border;\n    border-radius: t.$radius-pill;\n    background: t.$surface;\n    color: t.$text-strong;\n    box-shadow: t.$shadow-raised-sm;\n    @include m.text(12, t.$weight-bold);\n  }\n\n  .statusActive {\n    border-color: t.$success-border;\n    background: t.$success-surface;\n    color: t.$success-text;\n  }\n\n  .statusRefunded {\n    border-color: t.$warning-border;\n    background: t.$warning-surface;\n    color: t.$warning-text;\n  }\n\n  .statusCanceled {\n    border-color: t.$danger-border;\n    background: t.$danger-surface;\n    color: t.$danger-text;\n  }\n\n  .dot {\n    width: 7px;\n    height: 7px;\n    flex: 0 0 7px;\n    border-radius: t.$radius-pill;\n    background: t.$text-placeholder;\n    box-shadow: 0 0 0 3px rgba(142, 151, 171, 0.15);\n  }\n\n  .dotActive {\n    background: t.$success;\n    box-shadow: 0 0 0 3px rgba(23, 178, 106, 0.15);\n  }\n\n  .dotRefunded {\n    background: t.$warning;\n    box-shadow: 0 0 0 3px rgba(247, 144, 9, 0.15);\n  }\n\n  .dotCanceled {\n    background: t.$danger;\n    box-shadow: 0 0 0 3px rgba(240, 68, 56, 0.15);\n  }\n\n  // --- Actions --------------------------------------------------------------\n\n  .actions {\n    flex-wrap: wrap;\n    display: flex;\n    justify-content: flex-end;\n    gap: t.$space-2;\n  }\n\n  .action {\n    @include m.button-reset;\n    @include m.wp-reset-button;\n    border: 1px solid transparent;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 32px;\n    width: 32px;\n    height: 32px;\n    border-radius: t.$radius-sm;\n    color: t.$text-soft;\n    transition: background t.$duration t.$ease, color t.$duration-fast t.$ease, border-color t.$duration-fast t.$ease;\n\n    svg {\n      width: 16px;\n      height: 16px;\n    }\n\n    &:hover:not(:disabled) {\n      background: t.$hover-surface;\n      border-color: t.$hover-border;\n      color: t.$primary;\n    }\n\n    &:disabled {\n      opacity: 0.4;\n      cursor: not-allowed;\n    }\n  }\n\n  .actionDanger:hover:not(:disabled) {\n    color: t.$danger-text;\n    background: t.$danger-surface;\n  }\n\n  .cellLabel {\n    display: none;\n  }\n\n  // Switch according to the available list width, including WordPress sidebar.\n  @container (max-width: 1050px) {\n    .head { display: none; }\n    .row {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      align-items: start;\n      gap: 16px;\n      padding: 18px;\n    }\n    .cellLabel {\n      display: block;\n      margin-bottom: 6px;\n      @include m.text(11, t.$weight-semibold);\n      color: t.$text-placeholder;\n    }\n    .pick, .actions, .eventCell {\n      grid-column: 1 / -1;\n    }\n    .actions {\n      justify-content: flex-start;\n      border-top: 1px solid t.$border;\n      padding-top: 12px;\n      gap: 8px;\n    }\n    .action { flex-basis: 44px; width: 44px; height: 44px; }\n    .title, .strong, .text, .sub {\n      white-space: normal;\n      overflow-wrap: anywhere;\n    }\n    .money, .status { max-width: 100%; height: auto; min-height: 26px; overflow-wrap: anywhere; }\n  }\n\n  @container (max-width: 480px) {\n    .row {\n      grid-template-columns: minmax(0, 1fr);\n      padding: 16px;\n    }\n  }\n  .payment { display: flex; flex-direction: column; align-items: center; width: max-content; max-width: 100%; gap: 6px; text-align: center; }\n  .compactDates, .compactDatesHeading { display: none; }\n\n  @media (min-width: 1024px) and (max-width: 1280px) {\n    @container (min-width: 600px) {\n      .head, .row {\n        grid-template-columns: var(--booking-compact-cols);\n        gap: 10px;\n        align-items: center;\n      }\n      .head { display: grid; }\n      .row { height: 114px; padding: t.$space-9 t.$space-10; }\n      .pick, .actions, .eventCell { grid-column: auto; }\n      .cellLabel, .mergedColumn { display: none; }\n      .title, .text {\n        display: -webkit-box;\n        -webkit-box-orient: vertical;\n        -webkit-line-clamp: 2;\n        white-space: normal;\n        overflow: hidden;\n        overflow-wrap: anywhere;\n        text-overflow: ellipsis;\n      }\n      .title { height: 40px; line-height: 20px; }\n      .text { height: 36px; line-height: 18px; }\n      .regularDates { display: none; }\n      .compactDatesHeading { display: inline; }\n      .compactDates { display: flex; flex-direction: column; gap: 8px; height: 76px; }\n      .dateLabel { display: block; @include m.text(11, t.$weight-semibold); line-height: 16px; color: t.$text-placeholder; }\n      .dateLine { @include m.truncate; @include m.text(12, t.$weight-bold); line-height: 18px; }\n      .dateTime { color: t.$text-soft; font-weight: t.$weight-medium; }\n      .actions {\n        display: grid;\n        grid-template-columns: repeat(2, 32px);\n        justify-content: end;\n        border-top: 0;\n        padding-top: 0;\n        gap: t.$space-2;\n      }\n      .action { flex-basis: 32px; width: 32px; height: 32px; }\n    }\n  }\n\n}\n","@use \"../../styles/tokens\" as t;\n@use \"../../styles/mixins\" as m;\n\n@include m.scoped {\n  .page {\n    display: flex;\n    flex-direction: column;\n    gap: t.$space-12;\n  }\n\n  // The carved groove under the page header, as on the dashboard.\n  .divider {\n    height: 3px;\n    border-radius: t.$radius-pill;\n    background: t.$surface;\n    box-shadow: t.$shadow-track;\n  }\n\n  .browser {\n    display: flex;\n    flex-direction: column;\n    gap: t.$space-8;\n  }\n\n  .toolbar {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: t.$space-8;\n    flex-wrap: wrap;\n  }\n\n  .toolbarTitle {\n    display: flex;\n    align-items: center;\n    gap: t.$space-5;\n  }\n\n  .heading {\n    margin: 0;\n    @include m.text(18, t.$weight-bold);\n    letter-spacing: -0.01em;\n  }\n\n  .count {\n    display: inline-flex;\n    align-items: center;\n    height: 22px;\n    padding: 0 t.$space-4;\n    border: 1px solid t.$primary-border;\n    border-radius: t.$radius-pill;\n    background: t.$primary-surface;\n    color: t.$primary-strong;\n    @include m.text(12, t.$weight-semibold);\n  }\n\n  .controls {\n    display: flex;\n    flex: 1 1 auto;\n    align-items: center;\n    justify-content: flex-end;\n    gap: t.$space-5;\n    flex-wrap: wrap;\n    min-width: 0;\n  }\n\n  // The raised controls beside it carry a shadow that falls below their box;\n  // the recessed field has none, so it reads as sitting high until nudged.\n  .search {\n    position: relative;\n    top: 2px;\n    flex: 0 1 240px;\n  }\n\n  .loader {\n    height: 50vh;\n  }\n\n  .empty {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    padding: 36px;\n    border: 1px solid #ebeff6;\n    border-radius: t.$radius-2xl;\n    background: t.$surface;\n    box-shadow: t.$shadow-well;\n    text-align: center;\n  }\n\n  .emptyTitle {\n    margin: 0;\n    @include m.text(18, t.$weight-bold);\n    letter-spacing: -0.01em;\n  }\n\n  .emptyText {\n    max-width: 420px;\n    margin: t.$space-3 0 0;\n    @include m.text(13, t.$weight-medium);\n    color: t.$text-soft;\n  }\n\n  .emptyAction {\n    margin-top: t.$space-8;\n  }\n\n  .confirmList {\n    margin: 0;\n    // WordPress' admin stylesheet drops the markers off a bare <ul>.\n    list-style: disc;\n    padding: 0 0 0 t.$space-8;\n    @include m.text(13, t.$weight-medium);\n    color: t.$text-secondary;\n\n    li {\n      margin: 0 0 t.$space-2;\n    }\n  }\n\n  @media (max-width: 735px) {\n    .toolbar,\n    .controls {\n      width: 100%;\n    }\n\n    .search {\n      flex: 1 1 100%;\n    }\n  }\n}\n"],"names":[],"sourceRoot":""}