/* ==========================================================================
   WranglerDesk — design system
   --------------------------------------------------------------------------
   Layered on top of vendored Bootstrap 5. Defines brand tokens (BRAND.md
   §4.3), typography rhythm (BRAND.md §4.4 / LOGO_BRIEF.md §3), saddle-stitch
   and brand-iron motifs (BRAND.md §4.8), and the touch-friendly UI rules for
   tablet + phone use ("phones in the arena, tablets in the barn").
   ========================================================================== */

/* ---- 1. Tokens --------------------------------------------------------- */

:root {
    /* Palette — never pure white, never pure black. */
    --wd-bone:   #F5F1EA;   /* page canvas */
    --wd-bone-2: #ECE5D8;   /* slightly deeper canvas, for sunken/secondary fills */
    --wd-bone-3: #F9F7F2;   /* lightest tint — raised surfaces (cards) that pop off the canvas */
    --wd-paper:  #FDFCFA;   /* near-white writing surface — inputs + calendar grid; sits
                               a clear step above bone-3 cards so data fields stand out
                               (kept just off pure white per the brand no-pure-white rule) */
    --wd-ink:    #1F1A14;
    --wd-ink-2:  #4A3E30;   /* muted ink */
    --wd-ink-3:  #7A6A55;   /* tertiary text / metadata */
    --wd-saddle: #A87C4F;
    --wd-saddle-deep: #8B5E32;
    --wd-barn:   #9C3B2E;
    --wd-sage:   #7C8466;
    --wd-wood:   #5A3F2A;
    --wd-dust:   #D9CFC1;
    --wd-gold:   #C99846;

    /* Type */
    --font-display: "Fraunces", ui-serif, Georgia, serif;
    --font-body:    "Inter", ui-sans-serif, system-ui, sans-serif;

    /* Spacing rhythm — slightly larger than Bootstrap defaults, for tablet
       touch targets. */
    --tap-target: 48px;
    --tap-target-lg: 56px;
    --gutter: 1.5rem;

    /* Shadows — soft, never harsh */
    --shadow-sm: 0 1px 2px rgba(31, 26, 20, 0.06);
    --shadow-md: 0 6px 24px rgba(31, 26, 20, 0.08);
    --shadow-lg: 0 18px 48px rgba(31, 26, 20, 0.10);

    /* Radius — slightly soft, no aggressive curvature */
    --radius-sm: 4px;
    --radius:    8px;
    --radius-lg: 14px;
}

/* Bootstrap overrides — color the framework to our palette without rewiring. */
:root {
    --bs-body-bg: var(--wd-bone);
    --bs-body-color: var(--wd-ink);
    --bs-body-font-family: var(--font-body);
    --bs-primary: var(--wd-saddle);
    --bs-link-color: var(--wd-saddle-deep);
    --bs-link-hover-color: var(--wd-wood);
    --bs-border-color: var(--wd-dust);
    --bs-border-color-translucent: rgba(90, 63, 42, 0.18);
}

/* ---- 2. Typography ----------------------------------------------------- */

body {
    font-family: var(--font-body);
    background: var(--wd-bone);
    color: var(--wd-ink);
    font-feature-settings: "ss01" 1, "cv11" 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.wd-display {
    font-family: var(--font-display);
    color: var(--wd-ink);
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 1.08;
    font-variation-settings: "opsz" 60, "SOFT" 30;
}

h1, .h1 { font-size: clamp(2.4rem, 4.2vw, 3.6rem); }
h2, .h2 { font-size: clamp(1.9rem, 3vw, 2.5rem); letter-spacing: -0.015em; }
h3, .h3 { font-size: clamp(1.5rem, 2.3vw, 1.85rem); }
h4, .h4 { font-size: 1.25rem; }
h5, .h5 { font-size: 1.05rem; }
h6, .h6 { font-size: 0.95rem; font-weight: 600; font-family: var(--font-body); letter-spacing: 0.02em; text-transform: none; }

/* Editorial-scale hero headlines for the marketing surface. */
.wd-hero-title {
    font-family: var(--font-display);
    font-size: clamp(2.8rem, 6.5vw, 5.2rem);
    font-variation-settings: "opsz" 144, "SOFT" 50, "WONK" 1;
    line-height: 0.98;
    letter-spacing: -0.025em;
    color: var(--wd-ink);
}

.wd-eyebrow {
    font-family: var(--font-body);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--wd-saddle-deep);
}

/* Data-grid figures: tabular + small caps for status labels. */
.wd-tabular { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1, "lnum" 1; }
.wd-allcaps { letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.72rem; font-weight: 600; }

/* ---- 3. Saddle-stitch divider ----------------------------------------- */
/*
   Horizontal line with paired short ticks above and below — evokes leather
   stitching. Pure CSS, scales with em. Used between page sections.
*/

.wd-stitch {
    position: relative;
    border: none;
    height: 1px;
    background: var(--wd-saddle);
    opacity: 0.35;
    margin: 3rem 0;
}
.wd-stitch::before,
.wd-stitch::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 0;
    border-top: 1px dashed var(--wd-saddle);
    opacity: 0.55;
}
.wd-stitch::before { top: -6px; }
.wd-stitch::after  { top: 6px; }

/* Compact variant — inline within cards. */
.wd-stitch-sm {
    border: none;
    height: 0;
    border-top: 1px dashed var(--wd-saddle);
    opacity: 0.5;
    margin: 1.25rem 0;
}

/* ---- 4. Brand-iron stamp ---------------------------------------------- */
/*
   Tiny stamped corner ornament for cards, callouts, and section corners.
   Drawn with a single span using radial overlap — looks branded into the
   surface. Use sparingly per BRAND.md §4.10 ("no more than 2 brand-touched
   icons visible at once").
*/

.wd-stamp {
    position: relative;
    display: inline-block;
    width: 14px;
    height: 14px;
}
.wd-stamp::before,
.wd-stamp::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid currentColor;
    opacity: 0.6;
}
.wd-stamp::before { border-radius: 50%; }
.wd-stamp::after  { transform: rotate(45deg) scale(0.7); border-radius: 1px; }

/* ---- 5. App shell + navigation ---------------------------------------- */

.wd-topbar {
    background: var(--wd-bone);
    border-bottom: 1px solid var(--bs-border-color-translucent);
    padding: 0.65rem 0;
}
.wd-topbar .navbar-brand { font-family: var(--font-display); font-weight: 500; letter-spacing: -0.015em; color: var(--wd-ink); }
.wd-topbar .navbar-brand .wd-mark { height: 28px; width: auto; margin-right: 0.55rem; }
.wd-topbar .nav-link { color: var(--wd-ink-2); font-weight: 500; padding: 0.55rem 0.9rem; }
.wd-topbar .nav-link:hover { color: var(--wd-saddle-deep); }
.wd-topbar .nav-link.active { color: var(--wd-ink); position: relative; }
.wd-topbar .nav-link.active::after {
    content: ""; position: absolute; left: 0.9rem; right: 0.9rem;
    bottom: 0.2rem; height: 2px; background: var(--wd-saddle); border-radius: 1px;
}

/* Admin sub-nav (the Phase 7+ pill row). Now condensed via grouped
   dropdowns — 4 standalone pills + 3 dropdown groups fit on one row at
   typical desktop widths and wrap (rather than scroll) on narrow screens.
   No overflow hidden so dropdown menus can pop out cleanly. */
.wd-subnav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
    margin-bottom: 1.5rem;
}
.wd-subnav .nav-link,
.wd-subnav .dropdown-toggle.nav-link {
    flex: 0 0 auto;
    padding: 0.45rem 0.95rem;
    border-radius: 999px;
    background: var(--wd-bone-2);
    color: var(--wd-ink-2);
    font-size: 0.88rem;
    font-weight: 500;
    border: 1px solid transparent;
    transition: background 200ms ease-out, color 200ms ease-out, border-color 200ms ease-out;
}
.wd-subnav .nav-link:hover,
.wd-subnav .dropdown-toggle.nav-link:hover {
    background: var(--wd-dust); color: var(--wd-ink);
}
.wd-subnav .nav-link.active,
.wd-subnav .dropdown-toggle.nav-link.active {
    background: var(--wd-ink); color: var(--wd-bone); border-color: var(--wd-ink);
}

/* Dropdown trigger uses a <button>; strip the default browser button
   appearance so it reads as a pill, not a form control. */
.wd-subnav .dropdown-toggle.nav-link {
    cursor: pointer;
    line-height: 1.5;   /* match anchor */
}
.wd-subnav .dropdown-toggle.nav-link::after {
    margin-left: 0.45rem;
    vertical-align: 0.18em;
    opacity: 0.6;
}
.wd-subnav .dropdown-toggle.nav-link.active::after { opacity: 0.85; }

/* Dropdown menu — warm canvas to match the wd palette instead of stark
   white. Tight item padding because admin nav items are short labels. */
.wd-subnav .wd-subnav-menu {
    background: var(--wd-bone);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--radius);
    box-shadow: var(--shadow-md);
    padding: 0.4rem;
    min-width: 12rem;
}
.wd-subnav .wd-subnav-menu .dropdown-item {
    border-radius: var(--radius-sm);
    padding: 0.5rem 0.75rem;
    color: var(--wd-ink-2);
    font-size: 0.92rem;
}
.wd-subnav .wd-subnav-menu .dropdown-item:hover,
.wd-subnav .wd-subnav-menu .dropdown-item:focus {
    background: var(--wd-bone-2);
    color: var(--wd-ink);
}
.wd-subnav .wd-subnav-menu .dropdown-item.active {
    background: var(--wd-ink);
    color: var(--wd-bone);
}

/* ---- 6. Buttons -------------------------------------------------------- */

.btn {
    font-family: var(--font-body);
    font-weight: 500;
    border-radius: var(--radius);
    padding: 0.65rem 1.1rem;
    transition: background 200ms ease-out, color 200ms ease-out, transform 200ms ease-out, box-shadow 200ms ease-out;
}
.btn-lg { padding: 0.85rem 1.4rem; font-size: 1.05rem; }

.btn-primary,
.btn-primary:focus {
    background: var(--wd-saddle);
    border-color: var(--wd-saddle);
    color: var(--wd-bone);
    box-shadow: inset 0 0 0 1px rgba(245, 241, 234, 0.4);
}
.btn-primary:hover { background: var(--wd-wood); border-color: var(--wd-wood); color: var(--wd-bone); }

.btn-outline-secondary {
    color: var(--wd-ink); border-color: var(--wd-ink-3); background: transparent;
}
.btn-outline-secondary:hover { background: var(--wd-ink); border-color: var(--wd-ink); color: var(--wd-bone); }

.btn-outline-primary {
    color: var(--wd-saddle-deep); border-color: var(--wd-saddle); background: transparent;
}
.btn-outline-primary:hover { background: var(--wd-saddle); border-color: var(--wd-saddle); color: var(--wd-bone); }

.btn-link {
    color: var(--wd-saddle-deep);
    text-decoration: none;
    padding-left: 0; padding-right: 0;
    border-bottom: 1px dashed transparent;
}
.btn-link:hover { color: var(--wd-wood); border-bottom-color: var(--wd-saddle); }

/* Hero CTA gets the signature "stamped" double border. */
.wd-cta {
    background: var(--wd-saddle);
    color: var(--wd-bone);
    border: 1px solid var(--wd-saddle);
    box-shadow: inset 0 0 0 1px rgba(245, 241, 234, 0.45), var(--shadow-md);
    padding: 0.95rem 1.6rem;
    font-weight: 600;
    border-radius: var(--radius);
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    text-decoration: none;
    transition: transform 250ms ease-out, background 250ms ease-out;
}
.wd-cta:hover { background: var(--wd-wood); color: var(--wd-bone); transform: translateY(-1px); }
.wd-cta .wd-cta-mark {
    width: 14px; height: 14px;
    transition: transform 250ms ease-out;
}
.wd-cta:hover .wd-cta-mark { transform: rotate(15deg); }

/* ---- 7. Cards + surfaces ---------------------------------------------- */

.card {
    background: var(--wd-bone-3);
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}
.card .card-body { color: var(--wd-ink); }
.card .text-muted { color: var(--wd-ink-3) !important; }

/* Editorial surface — for hero callouts and "feature" sections. */
.wd-surface {
    background: var(--wd-bone-3);
    border-radius: var(--radius-lg);
    padding: 2rem;
    position: relative;
    border: 1px solid var(--bs-border-color-translucent);
}
.wd-surface-wood {
    background: var(--wd-wood);
    color: var(--wd-bone);
    border-color: transparent;
}
.wd-surface-wood h1, .wd-surface-wood h2, .wd-surface-wood h3 { color: var(--wd-bone); }
.wd-surface-wood .text-muted { color: rgba(245, 241, 234, 0.6) !important; }

/* Brand-iron corner stamps on hero surfaces. Two diagonals only. */
.wd-surface-stamped::before,
.wd-surface-stamped::after {
    content: "";
    position: absolute;
    width: 22px; height: 22px;
    border: 1px solid var(--wd-saddle);
    opacity: 0.45;
}
.wd-surface-stamped::before { top: 14px; left: 14px; border-right: none; border-bottom: none; }
.wd-surface-stamped::after  { bottom: 14px; right: 14px; border-left: none; border-top: none; }

/* ---- 8. Forms --------------------------------------------------------- */

.form-control,
.form-select {
    background: var(--wd-paper);
    border: 1px solid var(--bs-border-color);
    border-radius: var(--radius);
    color: var(--wd-ink);
    padding: 0.65rem 0.85rem;
    min-height: var(--tap-target);
    transition: border-color 200ms ease-out, background 200ms ease-out, box-shadow 200ms ease-out;
}
.form-control:focus,
.form-select:focus {
    background: var(--wd-paper);
    border-color: var(--wd-saddle);
    color: var(--wd-ink);
    box-shadow: 0 0 0 4px rgba(168, 124, 79, 0.12);
}
.form-control-lg, .form-select-lg { min-height: var(--tap-target-lg); font-size: 1.05rem; }
.form-label { font-weight: 500; color: var(--wd-ink); font-size: 0.92rem; margin-bottom: 0.4rem; }
.form-text { color: var(--wd-ink-3); }
.form-check-input:checked { background-color: var(--wd-saddle); border-color: var(--wd-saddle); }

/* ---- 9. Badges -------------------------------------------------------- */

.badge { padding: 0.35em 0.65em; font-weight: 600; font-size: 0.72rem; letter-spacing: 0.04em; border-radius: 999px; }
.badge.bg-primary   { background: var(--wd-saddle) !important; color: var(--wd-bone); }
.badge.bg-success   { background: var(--wd-sage) !important; color: var(--wd-ink); }
.badge.bg-info      { background: var(--wd-dust) !important; color: var(--wd-wood); }
.badge.bg-warning   { background: var(--wd-gold) !important; color: var(--wd-ink); }
.badge.bg-danger    { background: var(--wd-barn) !important; color: var(--wd-bone); }
.badge.bg-secondary { background: var(--wd-dust) !important; color: var(--wd-wood); }
.badge.bg-light     { background: var(--wd-bone-2) !important; color: var(--wd-ink-2); border: 1px solid var(--bs-border-color); }
.badge.bg-dark      { background: var(--wd-ink) !important; color: var(--wd-bone); }

/* ---- 10. Tables ------------------------------------------------------- */

.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--wd-ink);
    --bs-table-border-color: var(--bs-border-color);
    --bs-table-hover-bg: var(--wd-bone-2);
    color: var(--wd-ink);
    font-variant-numeric: tabular-nums;
}
.table thead.table-light {
    --bs-table-bg: var(--wd-bone-2);
    --bs-table-color: var(--wd-ink-2);
}
.table thead th {
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--wd-ink-3);
    border-bottom: 1px solid var(--bs-border-color);
    padding: 0.85rem 0.65rem;
}
.table td { padding: 0.85rem 0.65rem; vertical-align: middle; }

/* ---- 11. Alerts ------------------------------------------------------- */

.alert { border-radius: var(--radius); border: 1px solid transparent; padding: 0.85rem 1rem; }
.alert-info     { background: var(--wd-bone-2); border-color: var(--wd-dust); color: var(--wd-ink); }
.alert-warning  { background: rgba(201, 152, 70, 0.12); border-color: var(--wd-gold); color: var(--wd-wood); }
.alert-success  { background: rgba(124, 132, 102, 0.15); border-color: var(--wd-sage); color: var(--wd-ink); }
.alert-danger   { background: rgba(156, 59, 46, 0.10); border-color: var(--wd-barn); color: var(--wd-barn); }
.alert-secondary{ background: var(--wd-bone-2); border-color: var(--bs-border-color); color: var(--wd-ink-2); }

/* ---- 12. Layouts ------------------------------------------------------ */

.wd-container { max-width: 1180px; margin-inline: auto; padding-inline: 1.25rem; }
.wd-container-narrow { max-width: 760px; margin-inline: auto; padding-inline: 1.25rem; }

@media (min-width: 768px) {
    .wd-container { padding-inline: 2rem; }
}

/* Footer */
.wd-footer {
    border-top: 1px solid var(--bs-border-color-translucent);
    background: var(--wd-bone);
    color: var(--wd-ink-3);
    padding: 2.5rem 0 3rem;
    margin-top: 4rem;
    font-size: 0.88rem;
}
.wd-footer a { color: var(--wd-ink-2); text-decoration: none; border-bottom: 1px dashed transparent; }
.wd-footer a:hover { color: var(--wd-ink); border-bottom-color: var(--wd-saddle); }

/* Mobiscroll palette overrides — pull its iOS theme into the WD palette. */
/* Mobiscroll paints the schedule grid (wrappers, headers, time column) from
   the --mbsc-eventcalendar-bg-color custom property, NOT the container's own
   background — the container is transparent, so a plain `background` override
   colors nothing the user sees. We must set the variable. The `body` prefix
   raises specificity above the theme's own `.mbsc-ios.mbsc-eventcalendar`
   declaration, which would otherwise win since mobiscroll's stylesheet loads
   after ours in the calendar view. */
body .mbsc-ios.mbsc-eventcalendar,
body .mbsc-ios.mbsc-drag-clone {
    --mbsc-eventcalendar-bg-color: var(--wd-paper);
}
.mbsc-ios.mbsc-eventcalendar { font-family: var(--font-body); background: var(--wd-paper); color: var(--wd-ink); }
.mbsc-ios.mbsc-schedule-time, .mbsc-ios.mbsc-schedule-time-cont { color: var(--wd-ink-3); }
.mbsc-ios.mbsc-schedule-event-inner { border-radius: var(--radius-sm); }
.mbsc-schedule-event.booking-makeup .mbsc-schedule-event-inner { border-style: dashed !important; border-width: 2px !important; }

/* Mobiscroll Popup overrides */
.mbsc-popup .mbsc-popup-wrapper { background: var(--wd-bone-3); color: var(--wd-ink); border-radius: var(--radius-lg); }
.mbsc-popup .mbsc-popup-header { font-family: var(--font-display); font-size: 1.15rem; color: var(--wd-ink); }
.mbsc-popup button.mbsc-button { font-family: var(--font-body); font-weight: 500; }

/* ---- 13. Marketing-specific ------------------------------------------- */

.wd-marketing { background: var(--wd-bone); }
.wd-marketing .wd-nav-marketing {
    padding: 1rem 0;
    background: rgba(245, 241, 234, 0.88);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--bs-border-color-translucent);
    position: sticky; top: 0; z-index: 50;
}
.wd-marketing .wd-nav-marketing a.nav-link {
    color: var(--wd-ink-2);
    font-size: 0.93rem;
    font-weight: 500;
    padding: 0.5rem 0.85rem;
}
.wd-marketing .wd-nav-marketing a.nav-link:hover { color: var(--wd-ink); }

/* Tier card per BRAND.md §4.7 + MARKETING_SITE_PLAN.md §6.5. */
.wd-tier {
    background: var(--wd-bone);
    border: 1px solid var(--wd-saddle);
    border-radius: var(--radius-lg);
    padding: 2rem 1.75rem;
    position: relative;
    display: flex; flex-direction: column;
    transition: transform 250ms ease-out, box-shadow 250ms ease-out;
    height: 100%;
}
.wd-tier:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.wd-tier .wd-tier-name {
    font-family: var(--font-body);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--wd-saddle-deep);
    margin-bottom: 0.75rem;
}
.wd-tier .wd-tier-price {
    font-family: var(--font-display);
    font-size: 3rem;
    font-variation-settings: "opsz" 96;
    line-height: 1;
    color: var(--wd-ink);
}
.wd-tier .wd-tier-price small { font-family: var(--font-body); font-size: 1rem; color: var(--wd-ink-3); font-weight: 500; }
.wd-tier .wd-tier-badge {
    position: absolute; top: 1rem; right: 1rem;
    font-size: 0.65rem; letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--wd-wood); background: var(--wd-bone-2);
    padding: 0.25rem 0.55rem; border-radius: 999px; font-weight: 600;
}
.wd-tier ul { list-style: none; padding: 0; margin: 1.25rem 0; }
.wd-tier ul li { padding: 0.35rem 0; color: var(--wd-ink-2); font-size: 0.95rem; }
.wd-tier ul li::before { content: "·"; color: var(--wd-saddle); margin-right: 0.5rem; font-weight: 700; }

.wd-tier-coming {
    background: var(--wd-dust);
    border: 1px dashed var(--wd-wood);
    opacity: 0.78;
}
.wd-tier-coming:hover { opacity: 0.95; }
.wd-tier-coming .wd-tier-price { color: var(--wd-wood); }
.wd-tier-coming .wd-tier-badge { background: var(--wd-bone); color: var(--wd-wood); }

.wd-tier-premium {
    background: var(--wd-wood);
    border-color: var(--wd-gold);
    color: var(--wd-bone);
}
.wd-tier-premium .wd-tier-name { color: var(--wd-gold); }
.wd-tier-premium .wd-tier-price,
.wd-tier-premium ul li { color: var(--wd-bone); }
.wd-tier-premium .wd-tier-price small { color: rgba(245, 241, 234, 0.6); }
.wd-tier-premium ul li::before { color: var(--wd-gold); }
.wd-tier-premium .wd-tier-badge { background: var(--wd-bone); color: var(--wd-wood); }

/* ---- 14. Status pills + onboarding wizard ----------------------------- */

.wd-step {
    display: inline-flex; align-items: center; gap: 0.5rem;
    font-size: 0.78rem; font-weight: 600;
    letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--wd-ink-3);
    background: var(--wd-bone-2);
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    border: 1px solid var(--bs-border-color);
}
.wd-step .wd-step-num {
    display: inline-flex; width: 18px; height: 18px;
    background: var(--wd-ink); color: var(--wd-bone);
    border-radius: 50%;
    align-items: center; justify-content: center;
    font-size: 0.65rem; font-weight: 700; letter-spacing: 0;
}

/* ---- 15. Accessibility + responsive ----------------------------------- */

@media (max-width: 575px) {
    h1, .h1 { font-size: 2.1rem; }
    .wd-hero-title { font-size: 2.6rem; }
    .wd-container, .wd-container-narrow { padding-inline: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Focus rings */
:focus-visible {
    outline: 2px solid var(--wd-saddle);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}
