/* SadrHelper custom themes and framework extensions */
[x-cloak] { display: none !important; }

:root,
[data-theme="sadr-ocean"] {
  color-scheme: light;
  --color-base-100: oklch(99% 0.004 245);
  --color-base-200: oklch(96% 0.012 245);
  --color-base-300: oklch(91% 0.022 245);
  --color-base-content: oklch(25% 0.04 255);
  --color-primary: oklch(57% 0.22 258);
  --color-primary-content: oklch(98% 0.01 250);
  --color-secondary: oklch(52% 0.12 180);
  --color-secondary-content: oklch(98% 0.01 184);
  --color-accent: oklch(70% 0.13 190);
  --color-accent-content: oklch(20% 0.04 190);
  --color-neutral: oklch(34% 0.04 255);
  --color-neutral-content: oklch(97% 0.01 250);
  --color-info: oklch(68% 0.15 230);
  --color-info-content: oklch(20% 0.04 230);
  --color-success: oklch(65% 0.17 150);
  --color-success-content: oklch(20% 0.04 150);
  --color-warning: oklch(80% 0.17 80);
  --color-warning-content: oklch(26% 0.06 80);
  --color-error: oklch(62% 0.23 25);
  --color-error-content: oklch(98% 0.01 25);
  --radius-selector: .65rem; --radius-field: .8rem; --radius-box: 1.15rem;
  --size-selector: .25rem; --size-field: .25rem; --border: 1px; --depth: 1; --noise: 0;
  --sadr-gradient: linear-gradient(135deg, oklch(57% 0.22 258), oklch(52% 0.12 180) 58%, oklch(70% 0.13 190));
}

[data-theme="sadr-violet"] {
  color-scheme: light;
  --color-base-100: oklch(99% 0.005 300);
  --color-base-200: oklch(96% 0.015 300);
  --color-base-300: oklch(91% 0.025 300);
  --color-base-content: oklch(25% 0.05 295);
  --color-primary: oklch(56% 0.24 292);
  --color-primary-content: oklch(98% 0.01 292);
  --color-secondary: oklch(63% 0.23 345);
  --color-secondary-content: oklch(98% 0.01 345);
  --color-accent: oklch(72% 0.14 220);
  --color-accent-content: oklch(22% 0.05 220);
  --color-neutral: oklch(32% 0.05 292);
  --color-neutral-content: oklch(97% 0.01 292);
  --color-info: oklch(69% 0.14 230); --color-info-content: oklch(20% 0.04 230);
  --color-success: oklch(66% 0.17 150); --color-success-content: oklch(20% 0.04 150);
  --color-warning: oklch(80% 0.17 80); --color-warning-content: oklch(25% 0.05 80);
  --color-error: oklch(62% 0.23 25); --color-error-content: oklch(98% 0.01 25);
  --radius-selector: .75rem; --radius-field: .9rem; --radius-box: 1.25rem;
  --size-selector: .25rem; --size-field: .25rem; --border: 1px; --depth: 1; --noise: 0;
  --sadr-gradient: linear-gradient(135deg, oklch(56% 0.24 292), oklch(63% 0.23 345) 58%, oklch(72% 0.14 220));
}

[data-theme="sadr-forest"] {
  color-scheme: light;
  --color-base-100: oklch(99% 0.006 155);
  --color-base-200: oklch(96% 0.016 155);
  --color-base-300: oklch(91% 0.028 155);
  --color-base-content: oklch(24% 0.045 160);
  --color-primary: oklch(58% 0.15 155);
  --color-primary-content: oklch(98% 0.01 155);
  --color-secondary: oklch(61% 0.12 190);
  --color-secondary-content: oklch(98% 0.01 190);
  --color-accent: oklch(78% 0.18 115);
  --color-accent-content: oklch(25% 0.06 115);
  --color-neutral: oklch(31% 0.045 165);
  --color-neutral-content: oklch(97% 0.01 165);
  --color-info: oklch(69% 0.14 230); --color-info-content: oklch(20% 0.04 230);
  --color-success: oklch(64% 0.18 145); --color-success-content: oklch(20% 0.04 145);
  --color-warning: oklch(81% 0.17 80); --color-warning-content: oklch(25% 0.05 80);
  --color-error: oklch(62% 0.23 25); --color-error-content: oklch(98% 0.01 25);
  --radius-selector: .65rem; --radius-field: .75rem; --radius-box: 1rem;
  --size-selector: .25rem; --size-field: .25rem; --border: 1px; --depth: 1; --noise: 0;
  --sadr-gradient: linear-gradient(135deg, oklch(58% 0.15 155), oklch(61% 0.12 190) 60%, oklch(78% 0.18 115));
}

[data-theme="sadr-sunset"] {
  color-scheme: light;
  --color-base-100: oklch(99% 0.008 55);
  --color-base-200: oklch(96% 0.02 55);
  --color-base-300: oklch(91% 0.035 55);
  --color-base-content: oklch(25% 0.05 35);
  --color-primary: oklch(66% 0.21 40);
  --color-primary-content: oklch(98% 0.01 40);
  --color-secondary: oklch(63% 0.23 15);
  --color-secondary-content: oklch(98% 0.01 15);
  --color-accent: oklch(80% 0.17 85);
  --color-accent-content: oklch(25% 0.06 85);
  --color-neutral: oklch(33% 0.05 35);
  --color-neutral-content: oklch(97% 0.01 35);
  --color-info: oklch(69% 0.14 230); --color-info-content: oklch(20% 0.04 230);
  --color-success: oklch(65% 0.17 150); --color-success-content: oklch(20% 0.04 150);
  --color-warning: oklch(81% 0.17 80); --color-warning-content: oklch(25% 0.05 80);
  --color-error: oklch(61% 0.24 25); --color-error-content: oklch(98% 0.01 25);
  --radius-selector: .75rem; --radius-field: .85rem; --radius-box: 1.2rem;
  --size-selector: .25rem; --size-field: .25rem; --border: 1px; --depth: 1; --noise: 0;
  --sadr-gradient: linear-gradient(135deg, oklch(66% 0.21 40), oklch(63% 0.23 15) 55%, oklch(80% 0.17 85));
}

[data-theme="sadr-royal"] {
  color-scheme: light;
  --color-base-100: oklch(99% 0.004 265);
  --color-base-200: oklch(96% 0.013 265);
  --color-base-300: oklch(91% 0.024 265);
  --color-base-content: oklch(23% 0.055 270);
  --color-primary: oklch(49% 0.24 275);
  --color-primary-content: oklch(98% 0.01 275);
  --color-secondary: oklch(72% 0.16 75);
  --color-secondary-content: oklch(24% 0.055 75);
  --color-accent: oklch(68% 0.14 215);
  --color-accent-content: oklch(20% 0.045 215);
  --color-neutral: oklch(29% 0.055 270);
  --color-neutral-content: oklch(97% 0.01 270);
  --color-info: oklch(68% 0.15 230); --color-info-content: oklch(20% 0.04 230);
  --color-success: oklch(64% 0.17 150); --color-success-content: oklch(20% 0.04 150);
  --color-warning: oklch(80% 0.17 80); --color-warning-content: oklch(25% 0.05 80);
  --color-error: oklch(62% 0.23 25); --color-error-content: oklch(98% 0.01 25);
  --radius-selector: .55rem; --radius-field: .7rem; --radius-box: 1rem;
  --size-selector: .25rem; --size-field: .25rem; --border: 1px; --depth: 1; --noise: 0;
  --sadr-gradient: linear-gradient(135deg, oklch(49% 0.24 275), oklch(68% 0.14 215) 58%, oklch(72% 0.16 75));
}

[data-theme="sadr-graphite"] {
  color-scheme: dark;
  --color-base-100: oklch(22% 0.025 265);
  --color-base-200: oklch(18% 0.022 265);
  --color-base-300: oklch(29% 0.028 265);
  --color-base-content: oklch(94% 0.012 260);
  --color-primary: oklch(72% 0.15 220);
  --color-primary-content: oklch(18% 0.035 220);
  --color-secondary: oklch(70% 0.18 300);
  --color-secondary-content: oklch(18% 0.035 300);
  --color-accent: oklch(72% 0.19 350);
  --color-accent-content: oklch(18% 0.035 350);
  --color-neutral: oklch(38% 0.035 265);
  --color-neutral-content: oklch(96% 0.01 265);
  --color-info: oklch(73% 0.14 230); --color-info-content: oklch(18% 0.035 230);
  --color-success: oklch(72% 0.16 150); --color-success-content: oklch(18% 0.035 150);
  --color-warning: oklch(82% 0.16 80); --color-warning-content: oklch(20% 0.045 80);
  --color-error: oklch(70% 0.2 25); --color-error-content: oklch(18% 0.035 25);
  --radius-selector: .65rem; --radius-field: .8rem; --radius-box: 1.15rem;
  --size-selector: .25rem; --size-field: .25rem; --border: 1px; --depth: 1; --noise: 0;
  --sadr-gradient: linear-gradient(135deg, oklch(72% 0.15 220), oklch(70% 0.18 300) 55%, oklch(72% 0.19 350));
}

html { scroll-behavior: smooth; }
html, body, button, input, select, textarea { font-family: "IRANSansX", Vazirmatn, Tahoma, Arial, sans-serif; }
body { font-feature-settings: "ss01" 1, "tnum" 1; }

.sadr-page-surface {
  background:
    radial-gradient(circle at 10% 0%, color-mix(in oklab, var(--color-primary) 9%, transparent), transparent 32rem),
    radial-gradient(circle at 90% 12%, color-mix(in oklab, var(--color-secondary) 8%, transparent), transparent 28rem),
    var(--color-base-200);
}
.sadr-brand-gradient { background: var(--sadr-gradient); }
.sadr-brand-text { background: var(--sadr-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sadr-glass { background: color-mix(in oklab, var(--color-base-100) 88%, transparent); backdrop-filter: blur(14px); }

.sadr-theme-swatch { display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; width: 2.5rem; height: 1.15rem; border-radius: 999px; border: 1px solid color-mix(in oklab, var(--color-base-content) 15%, transparent); }
.sadr-theme-swatch > span:nth-child(1) { background: var(--swatch-1); }
.sadr-theme-swatch > span:nth-child(2) { background: var(--swatch-2); }
.sadr-theme-swatch > span:nth-child(3) { background: var(--swatch-3); }

.sadr-card { position: relative; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.sadr-card::before { content: ""; position: absolute; inset-inline: 0; inset-block-start: 0; height: 3px; background: var(--sadr-gradient); opacity: .82; }
.sadr-card:hover { transform: translateY(-2px); box-shadow: 0 18px 45px color-mix(in oklab, var(--color-neutral) 14%, transparent); }
.sadr-card-icon, .sadr-stat-icon { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: .85rem; }
.sadr-stat-card { position: relative; overflow: hidden; }
.sadr-stat-card::after { content: ""; position: absolute; inset-inline-end: -2rem; inset-block-end: -2rem; width: 7rem; height: 7rem; border-radius: 999px; background: var(--sadr-gradient); opacity: .08; }

[data-variant="primary"] { --sadr-variant: var(--color-primary); }
[data-variant="secondary"] { --sadr-variant: var(--color-secondary); }
[data-variant="accent"] { --sadr-variant: var(--color-accent); }
[data-variant="info"] { --sadr-variant: var(--color-info); }
[data-variant="success"] { --sadr-variant: var(--color-success); }
[data-variant="warning"] { --sadr-variant: var(--color-warning); }
[data-variant="error"] { --sadr-variant: var(--color-error); }
[data-variant="neutral"] { --sadr-variant: var(--color-neutral); }
.sadr-variant-surface { color: var(--sadr-variant); background: color-mix(in oklab, var(--sadr-variant) 12%, transparent); }

.sadr-code-wrap { position: relative; }
.sadr-code {
  direction: ltr; text-align: left; overflow-x: auto; border-radius: .9rem; padding: 1rem;
  background: color-mix(in oklab, var(--color-neutral) 88%, black); color: white;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: .8rem; line-height: 1.8; tab-size: 2;
}
.sadr-copy-button { position: absolute; inset-block-start: .6rem; inset-inline-end: .6rem; }

.sadr-toast-host { position: fixed; z-index: 9999; inset-block-start: 1rem; inset-inline-end: 1rem; display: grid; gap: .65rem; width: min(24rem, calc(100vw - 2rem)); pointer-events: none; }
.sadr-toast-item { pointer-events: auto; display: flex; align-items: flex-start; gap: .65rem; border-radius: .9rem; padding: .85rem 1rem; background: var(--color-base-100); color: var(--color-base-content); box-shadow: 0 12px 35px rgba(0,0,0,.18); border-inline-start: 4px solid var(--color-info); animation: sadr-toast-in .22s ease-out; }
.sadr-toast-item[data-type="success"] { border-inline-start-color: var(--color-success); }
.sadr-toast-item[data-type="error"] { border-inline-start-color: var(--color-error); }
.sadr-toast-item[data-type="warning"] { border-inline-start-color: var(--color-warning); }
.sadr-toast-item.is-leaving { animation: sadr-toast-out .18s ease-in forwards; }

.htmx-indicator { opacity: 0; transition: opacity .2s ease; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { opacity: 1; }
[data-sadr-loading].is-loading { pointer-events: none; opacity: .78; }

.sadr-responsive-table { width: 100%; }
.sadr-responsive-table tr[hidden] { display: none !important; }

@keyframes sadr-toast-in { from { opacity: 0; transform: translateY(-8px) scale(.98); } }
@keyframes sadr-toast-out { to { opacity: 0; transform: translateY(-8px) scale(.98); } }

@media (max-width: 640px) { .sadr-toast-host { inset-inline: 1rem; width: auto; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }

.swal2-popup { background: var(--color-base-100) !important; color: var(--color-base-content) !important; border: 1px solid var(--color-base-300); border-radius: var(--radius-box) !important; font-family: inherit !important; }
.swal2-title, .swal2-html-container { color: inherit !important; }

/* Persian date picker */
.sadr-datepicker-popover {
  position: absolute;
  margin: 0;
  padding: 0;
  inset-inline-start: 0;
  inset-block-start: calc(100% + .5rem);
  z-index: 70;
  width: min(22rem, calc(100vw - 2rem));
  overflow: hidden;
  border: 1px solid var(--color-base-300);
  border-radius: var(--radius-box);
  background: var(--color-base-100);
  box-shadow: 0 24px 70px color-mix(in oklab, var(--color-neutral) 22%, transparent);
}
.sadr-datepicker-popover::backdrop { background: transparent; }
.sadr-datepicker-weekdays,
.sadr-datepicker-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .25rem;
  padding-inline: .75rem;
}
.sadr-datepicker-weekdays { padding-block: .35rem .55rem; color: color-mix(in oklab, var(--color-base-content) 55%, transparent); font-size: .75rem; text-align: center; }
.sadr-datepicker-grid { padding-block-end: .85rem; }
.sadr-datepicker-day {
  display: grid;
  aspect-ratio: 1;
  place-items: center;
  border-radius: .7rem;
  font-size: .84rem;
  transition: background-color .15s ease, color .15s ease, transform .15s ease;
}
.sadr-datepicker-day:not(:disabled):hover { background: color-mix(in oklab, var(--color-primary) 12%, transparent); color: var(--color-primary); transform: translateY(-1px); }
.sadr-datepicker-day.is-muted { opacity: .25; }
.sadr-datepicker-day.is-today { box-shadow: inset 0 0 0 1px var(--color-primary); color: var(--color-primary); }
.sadr-datepicker-day.is-selected { background: var(--color-primary); color: var(--color-primary-content); box-shadow: 0 6px 16px color-mix(in oklab, var(--color-primary) 30%, transparent); }
.sadr-date-range { min-width: 0; }

/* Monthly Persian calendar */
.sadr-month-calendar {
  overflow: hidden;
  border: 1px solid var(--color-base-300);
  border-radius: var(--radius-box);
  background: var(--color-base-100);
}
.sadr-month-calendar-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border-bottom: 1px solid var(--color-base-300); background: color-mix(in oklab, var(--color-base-200) 75%, transparent); }
.sadr-month-calendar-weekdays,
.sadr-month-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.sadr-month-calendar-weekdays { border-bottom: 1px solid var(--color-base-300); color: color-mix(in oklab, var(--color-base-content) 56%, transparent); font-size: .78rem; text-align: center; }
.sadr-month-calendar-weekdays > span { padding: .7rem .25rem; }
.sadr-month-calendar-grid { gap: 1px; background: var(--color-base-300); }
.sadr-month-calendar-day,
.sadr-month-calendar-empty {
  min-height: 5.75rem;
  background: var(--color-base-100);
}
.sadr-month-calendar-day { position: relative; display: flex; align-items: flex-start; justify-content: space-between; padding: .65rem; text-align: start; transition: background-color .16s ease, box-shadow .16s ease; }
button.sadr-month-calendar-day:hover { background: color-mix(in oklab, var(--color-primary) 9%, var(--color-base-100)); }
.sadr-month-calendar-day.is-today { box-shadow: inset 0 0 0 2px var(--color-primary); color: var(--color-primary); }
.sadr-month-calendar-day.is-selected { background: color-mix(in oklab, var(--color-primary) 14%, var(--color-base-100)); box-shadow: inset 0 0 0 2px var(--color-primary); }
.sadr-month-calendar-day small { display: grid; min-width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 999px; background: var(--color-secondary); color: var(--color-secondary-content); font-size: .65rem; }
.sadr-month-calendar.is-compact .sadr-month-calendar-day,
.sadr-month-calendar.is-compact .sadr-month-calendar-empty { min-height: 3.65rem; }
@media (max-width: 640px) {
  .sadr-month-calendar-day, .sadr-month-calendar-empty { min-height: 3.8rem; }
  .sadr-month-calendar-day { padding: .45rem; font-size: .78rem; }
  .sadr-month-calendar-day small { min-width: 1rem; height: 1rem; font-size: .55rem; }
}

/* Signature */
.sadr-signature-shell { position: relative; overflow: hidden; border: 1px dashed color-mix(in oklab, var(--color-primary) 45%, var(--color-base-300)); border-radius: var(--radius-box); background: linear-gradient(180deg, color-mix(in oklab, var(--color-base-100) 96%, transparent), var(--color-base-200)); }
.sadr-signature-canvas { display: block; width: 100%; touch-action: none; cursor: crosshair; }
.sadr-signature-line { pointer-events: none; position: absolute; inset-inline: 10%; inset-block-end: 2.2rem; border-top: 1px solid color-mix(in oklab, var(--color-base-content) 28%, transparent); color: color-mix(in oklab, var(--color-base-content) 45%, transparent); font-size: .7rem; text-align: center; }
.sadr-signature-line span { position: relative; inset-block-start: -.65rem; padding-inline: .75rem; background: var(--color-base-100); }

/* Charts */
.sadr-chart-shell { min-width: 0; border-radius: var(--radius-box); }
.sadr-chart-shell canvas { max-width: 100%; }

/* File upload */
.sadr-file-dropzone { display: grid; place-items: center; min-height: 12rem; padding: 1.5rem; border: 1px dashed color-mix(in oklab, var(--color-primary) 42%, var(--color-base-300)); border-radius: var(--radius-box); background: color-mix(in oklab, var(--color-primary) 4%, var(--color-base-100)); text-align: center; transition: border-color .16s ease, background-color .16s ease, transform .16s ease; }
.sadr-file-dropzone.is-dragging { border-color: var(--color-primary); background: color-mix(in oklab, var(--color-primary) 12%, var(--color-base-100)); transform: scale(1.01); }
.sadr-file-dropzone-icon { display: grid; width: 3.25rem; height: 3.25rem; place-items: center; border-radius: 1rem; background: color-mix(in oklab, var(--color-primary) 12%, transparent); color: var(--color-primary); }
.sadr-file-dropzone-icon svg { width: 1.6rem; height: 1.6rem; }

/* Workflow stepper */
.sadr-stepper { --sadr-step-color: var(--color-primary); display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 0; overflow-x: auto; padding: .35rem 0; }
.sadr-stepper[data-variant="secondary"] { --sadr-step-color: var(--color-secondary); }
.sadr-stepper[data-variant="accent"] { --sadr-step-color: var(--color-accent); }
.sadr-stepper[data-variant="success"] { --sadr-step-color: var(--color-success); }
.sadr-stepper-item { position: relative; display: flex; min-width: 8rem; flex-direction: column; align-items: center; gap: .55rem; color: color-mix(in oklab, var(--color-base-content) 45%, transparent); font-size: .78rem; text-align: center; }
.sadr-stepper-item::before { content: ""; position: absolute; z-index: 0; inset-inline-start: -50%; inset-block-start: 1rem; width: 100%; height: 2px; background: var(--color-base-300); }
.sadr-stepper-item:first-child::before { display: none; }
.sadr-stepper-marker { position: relative; z-index: 1; display: grid; width: 2rem; height: 2rem; place-items: center; border: 2px solid var(--color-base-300); border-radius: 999px; background: var(--color-base-100); }
.sadr-stepper-marker svg { width: 1rem; height: 1rem; }
.sadr-stepper-item.is-current, .sadr-stepper-item.is-complete { color: var(--color-base-content); }
.sadr-stepper-item.is-current .sadr-stepper-marker, .sadr-stepper-item.is-complete .sadr-stepper-marker { border-color: var(--sadr-step-color); background: var(--sadr-step-color); color: var(--color-primary-content); }
.sadr-stepper-item.is-complete::before, .sadr-stepper-item.is-current::before { background: var(--sadr-step-color); }
.sadr-stepper.is-vertical { grid-auto-flow: row; grid-auto-rows: auto; overflow: visible; }
.sadr-stepper.is-vertical .sadr-stepper-item { min-width: 0; flex-direction: row; align-items: flex-start; text-align: start; }
.sadr-stepper.is-vertical .sadr-stepper-item::before { inset-inline-start: 1rem; inset-block-start: -50%; width: 2px; height: 100%; }

/* ERP / CRM composition helpers */
.sadr-command-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; padding: .85rem; border: 1px solid var(--color-base-300); border-radius: var(--radius-box); background: color-mix(in oklab, var(--color-base-100) 92%, transparent); }
.sadr-filter-chip { display: inline-flex; align-items: center; gap: .35rem; border-radius: 999px; padding: .35rem .7rem; background: color-mix(in oklab, var(--color-primary) 10%, transparent); color: var(--color-primary); font-size: .75rem; }
.sadr-kanban { display: grid; grid-template-columns: repeat(4, minmax(16rem, 1fr)); gap: 1rem; overflow-x: auto; padding-bottom: .5rem; }
.sadr-kanban-column { min-height: 24rem; border: 1px solid var(--color-base-300); border-radius: var(--radius-box); background: color-mix(in oklab, var(--color-base-200) 76%, transparent); padding: .75rem; }
.sadr-kanban-card { border: 1px solid var(--color-base-300); border-radius: .9rem; background: var(--color-base-100); padding: .9rem; box-shadow: 0 6px 18px color-mix(in oklab, var(--color-neutral) 7%, transparent); }
.sadr-audit-timeline { position: relative; margin-inline-start: .75rem; padding-inline-start: 1.5rem; }
.sadr-audit-timeline::before { content: ""; position: absolute; inset-inline-start: 0; inset-block: .5rem; width: 2px; background: var(--color-base-300); }
.sadr-audit-item { position: relative; padding-block-end: 1.25rem; }
.sadr-audit-item::before { content: ""; position: absolute; inset-inline-start: -1.8rem; inset-block-start: .35rem; width: .65rem; height: .65rem; border: 2px solid var(--color-base-100); border-radius: 999px; background: var(--color-primary); box-shadow: 0 0 0 1px var(--color-primary); }
.sadr-activity-result { min-height: 9rem; }

@media (prefers-reduced-motion: reduce) {
  .sadr-datepicker-day, .sadr-file-dropzone { transition: none; }
}

/* SadrHelper 4 additions */
.sadr-icon svg { width: 100%; height: 100%; }
.sadr-image { display: block; background: var(--color-base-200); box-shadow: 0 8px 24px color-mix(in oklab, var(--color-neutral) 8%, transparent); }
.sadr-image-slider [x-cloak], .sadr-demo-code-tabs [x-cloak] { display: none !important; }

.sadr-demo-code-tabs .tabs { max-width: 100%; overflow-x: auto; }
.sadr-demo-code-tabs .tab { white-space: nowrap; }

/* Enhanced Persian date picker */
.sadr-datepicker-popover {
  width: min(24rem, calc(100vw - 1.5rem));
  max-height: calc(100dvh - 1rem);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border-color: color-mix(in oklab, var(--color-primary) 22%, var(--color-base-300));
  background:
    radial-gradient(circle at 100% 0, color-mix(in oklab, var(--color-secondary) 10%, transparent), transparent 38%),
    var(--color-base-100);
  box-shadow: 0 28px 80px color-mix(in oklab, var(--color-neutral) 24%, transparent), 0 1px 0 color-mix(in oklab, white 30%, transparent) inset;
}
.sadr-datepicker-head {
  position: relative;
  overflow: hidden;
  padding: 1rem;
  background: linear-gradient(135deg, color-mix(in oklab, var(--color-primary) 96%, white 4%), color-mix(in oklab, var(--color-secondary) 92%, black 8%));
  color: var(--color-primary-content);
}
.sadr-datepicker-head::after {
  content: "";
  position: absolute;
  inset-inline-end: -2.5rem;
  inset-block-start: -3rem;
  width: 9rem;
  height: 9rem;
  border-radius: 999px;
  background: color-mix(in oklab, white 14%, transparent);
}
.sadr-datepicker-quick { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .5rem; padding: .75rem; border-bottom: 1px solid var(--color-base-300); background: color-mix(in oklab, var(--color-base-200) 72%, transparent); }
.sadr-datepicker-quick button { min-height: 2.15rem; border-radius: .75rem; }
.sadr-datepicker-weekdays { padding-block: .55rem .65rem; font-weight: 600; }
.sadr-datepicker-grid { gap: .3rem; padding-inline: .85rem; padding-block-end: 1rem; }
.sadr-datepicker-day { border: 1px solid transparent; font-weight: 500; }
.sadr-datepicker-day.is-today { border-color: var(--color-primary); box-shadow: none; background: color-mix(in oklab, var(--color-primary) 7%, transparent); }
.sadr-datepicker-day.is-selected { border-color: var(--color-primary); background: linear-gradient(135deg, var(--color-primary), color-mix(in oklab, var(--color-secondary) 72%, var(--color-primary))); }
.sadr-datepicker-selected { display: flex; align-items: center; gap: .5rem; min-width: 0; color: color-mix(in oklab, var(--color-base-content) 60%, transparent); font-size: .75rem; }

/* Data table */
.sadr-data-table table { width: 100%; }
.sadr-data-table tbody tr { transition: background-color .15s ease, opacity .15s ease; }
.sadr-data-table tbody tr:hover { background: color-mix(in oklab, var(--color-primary) 5%, var(--color-base-100)); }
.sadr-sortable-header { position: relative; cursor: pointer; user-select: none; padding-inline-end: 1.8rem !important; }
.sadr-sortable-header::after { content: "↕"; position: absolute; inset-inline-end: .65rem; opacity: .35; font-size: .75rem; }
.sadr-row-actions svg { width: 1rem; height: 1rem; }

/* Sales funnel */
.sadr-funnel-stage { display: flex; justify-content: center; }
.sadr-funnel-bar {
  display: flex;
  width: var(--funnel-width);
  min-width: 17rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem 1.1rem;
  border-radius: 1rem;
  background: linear-gradient(135deg, color-mix(in oklab, var(--funnel-color) 92%, white 8%), color-mix(in oklab, var(--funnel-color) 72%, black 28%));
  color: white;
  clip-path: polygon(4% 0, 96% 0, 100% 50%, 96% 100%, 4% 100%, 0 50%);
  box-shadow: 0 10px 24px color-mix(in oklab, var(--funnel-color) 22%, transparent);
}
.sadr-funnel-bar strong, .sadr-funnel-bar small { display: block; }
.sadr-funnel-bar small { margin-top: .2rem; opacity: .78; font-size: .7rem; }

/* App launcher and notification */
.sadr-header .dropdown-content { transform-origin: top left; }
.sadr-header svg, .sadr-footer svg { width: 1.25rem; height: 1.25rem; }

/* Captcha */
.sadr-captcha-image { image-rendering: auto; }

/* Tailwind palette documentation */
.sadr-color-swatch { min-height: 4.5rem; border-radius: .9rem; padding: .65rem; color: white; box-shadow: inset 0 0 0 1px color-mix(in oklab, white 20%, transparent); }
.sadr-color-swatch.is-light { color: #111827; }

@media (max-width: 640px) {
  .sadr-funnel-bar { min-width: 14rem; padding-inline: .8rem; font-size: .8rem; }
  .sadr-data-table > div:first-child { align-items: stretch; }
}


/* Option-driven forms and responsive foundation */
*, *::before, *::after { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: clip; }
main, section, article, aside, header, footer, nav, form, fieldset, .card, .card-body,
.sadr-card, .sadr-form-shell, .sadr-auth-card, .sadr-auth-form, .sadr-data-table,
.sadr-image-slider, .sadr-month-calendar, .sadr-date-range, .sadr-command-bar,
.sadr-kanban, .sadr-stepper, .sadr-chart, .sadr-signature-shell { min-width: 0; max-width: 100%; }
img, video, canvas, svg { max-width: 100%; }

/* Primary action always follows the first color of the active theme. */
.btn.btn-primary:not(.btn-outline):not(.btn-soft):not(.btn-ghost):not(.btn-link),
.sadr-primary-action {
  border-color: var(--color-primary);
  background-color: var(--color-primary);
  color: var(--color-primary-content);
}
.btn.btn-primary:not(.btn-outline):not(.btn-soft):not(.btn-ghost):not(.btn-link):hover,
.sadr-primary-action:hover {
  border-color: color-mix(in oklab, var(--color-primary) 84%, black);
  background-color: color-mix(in oklab, var(--color-primary) 88%, black);
}

.sadr-form-shell { overflow: clip; }
.sadr-form-header h3 { overflow-wrap: anywhere; }
.sadr-form-actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem;
  border-top: 1px solid var(--color-base-300);
  padding: .85rem 1rem;
  background: color-mix(in oklab, var(--color-base-200) 72%, transparent);
}
.sadr-form-actions.is-sticky { position: sticky; z-index: 20; inset-block-end: 0; backdrop-filter: blur(12px); }
.sadr-form-actions .btn { min-width: min(9rem, 100%); }

.sadr-auth-card,
.sadr-auth-form { width: 100%; min-width: 0; }
.sadr-auth-card {
  overflow: clip;
  border: 1px solid color-mix(in oklab, var(--color-primary) 14%, var(--color-base-300));
  border-radius: var(--radius-box);
  background: var(--color-base-100);
  box-shadow: 0 22px 60px color-mix(in oklab, var(--color-neutral) 10%, transparent);
}
.sadr-auth-header {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: .85rem;
  border-bottom: 1px solid var(--color-base-300);
  padding: 1rem;
  background:
    radial-gradient(circle at 100% 0, color-mix(in oklab, var(--color-secondary) 12%, transparent), transparent 48%),
    color-mix(in oklab, var(--color-base-100) 94%, transparent);
}
.sadr-auth-header h2 { overflow-wrap: anywhere; font-size: 1.05rem; font-weight: 650; }
.sadr-auth-header p { margin-top: .25rem; color: color-mix(in oklab, var(--color-base-content) 55%, transparent); font-size: .78rem; line-height: 1.8; }
.sadr-auth-icon { display: grid; width: 2.8rem; height: 2.8rem; flex: 0 0 auto; place-items: center; border-radius: .9rem; background: color-mix(in oklab, var(--color-primary) 12%, transparent); color: var(--color-primary); }
.sadr-auth-body { display: grid; min-width: 0; gap: 1rem; padding: 1rem; }
.sadr-auth-card.is-compact .sadr-auth-header, .sadr-auth-form.is-compact .sadr-auth-header { padding: .8rem; }
.sadr-auth-card.is-compact .sadr-auth-body, .sadr-auth-form.is-compact .sadr-auth-body { gap: .75rem; padding: .85rem; }

.sadr-otp-boxes { display: grid; grid-template-columns: repeat(var(--sadr-otp-length, 6), minmax(0, 1fr)); gap: clamp(.3rem, 2vw, .65rem); width: 100%; }
.sadr-otp-boxes input {
  width: 100%; min-width: 0; aspect-ratio: 1; border: 1px solid var(--color-base-300); border-radius: .75rem;
  background: var(--color-base-100); color: var(--color-base-content); text-align: center; font-size: clamp(.9rem, 4vw, 1.15rem); outline: none;
}
.sadr-otp-boxes input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary) 14%, transparent); }

.sadr-datepicker-popover { max-width: calc(100vw - 1rem); }
.sadr-datepicker-selected span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sadr-month-calendar-header > * { min-width: 0; }
.sadr-month-calendar-header h3 { overflow-wrap: anywhere; }
.sadr-month-calendar-day { min-width: 0; overflow: hidden; }
.sadr-month-calendar-day > span { min-width: 0; }

.sadr-data-table { overflow: clip; }
.sadr-data-table > div:first-child { min-width: 0; flex-wrap: wrap; }
.sadr-data-table .sadr-row-actions, .sadr-row-actions { display: flex; min-width: 0; flex-wrap: wrap; gap: .25rem; }
.sadr-data-table .join { max-width: 100%; overflow-x: auto; }
.sadr-image-slider { overflow: clip; }
.sadr-image-slider img { width: 100%; }
.sadr-header .dropdown-content,
.sadr-footer .dropdown-content,
.dropdown-content { max-width: calc(100vw - 1rem); }

@media (max-width: 767px) {
  .sadr-card:hover { transform: none; }
  .sadr-form-actions { align-items: stretch; }
  .sadr-form-actions .btn { width: 100%; }
  .sadr-auth-header, .sadr-auth-body { padding-inline: .85rem; }
  .sadr-captcha-grid { grid-template-columns: minmax(0, 1fr); }
  .sadr-captcha-preview { width: 100%; }

  .sadr-datepicker-popover {
    position: fixed;
    inset-inline: .5rem;
    inset-block-start: auto;
    inset-block-end: max(.5rem, env(safe-area-inset-bottom));
    width: auto;
    max-width: none;
    max-height: calc(100dvh - 1rem - env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    border-radius: 1.1rem;
  }
  .sadr-datepicker-head { position: sticky; z-index: 2; inset-block-start: 0; padding: .8rem; }
  .sadr-datepicker-quick { gap: .35rem; padding: .55rem; }
  .sadr-datepicker-quick button { min-height: 2rem; padding-inline: .45rem; }
  .sadr-datepicker-grid { gap: .18rem; padding-inline: .45rem; padding-block-end: .65rem; }
  .sadr-datepicker-weekdays { padding-inline: .45rem; }
  .sadr-datepicker-day { border-radius: .55rem; font-size: .75rem; }
  .sadr-datepicker-selected { max-width: 55%; }

  .sadr-month-calendar-header { gap: .35rem; padding: .65rem .45rem; }
  .sadr-month-calendar-header .btn { min-height: 2rem; height: 2rem; min-width: 2rem; width: 2rem; padding: 0; }
  .sadr-month-calendar-weekdays > span { padding: .5rem .1rem; font-size: .66rem; }
  .sadr-month-calendar-day, .sadr-month-calendar-empty { min-height: clamp(2.8rem, 14vw, 3.55rem); }
  .sadr-month-calendar-day { padding: .3rem; font-size: .72rem; }
  .sadr-month-calendar-day small { min-width: 1rem; width: 1rem; height: 1rem; font-size: .55rem; }

  .sadr-responsive-table td { grid-template-columns: minmax(5rem, 32%) minmax(0, 1fr); overflow-wrap: anywhere; }
  .sadr-data-table > div:first-child > * { width: 100%; }
  .sadr-data-table > div:first-child .input,
  .sadr-data-table > div:first-child .select,
  .sadr-data-table > div:first-child .btn { max-width: 100%; }
  .sadr-funnel-bar { width: 100% !important; min-width: 0; clip-path: none; border-radius: .85rem; }
  .sadr-kanban { grid-template-columns: repeat(4, minmax(14rem, 78vw)); max-width: 100%; }
  .sadr-stepper { max-width: 100%; scroll-snap-type: inline proximity; }
  .sadr-stepper-item { scroll-snap-align: start; }
}

@media (max-width: 380px) {
  .sadr-otp-boxes { gap: .22rem; }
  .sadr-otp-boxes input { border-radius: .55rem; font-size: .85rem; }
  .sadr-datepicker-selected { display: none; }
  .sadr-month-calendar-header h3 { font-size: .8rem; }
  .sadr-month-calendar-header p { display: none; }
}

.sadr-header .navbar { min-width: 0; }
.sadr-header .navbar-end { min-width: 0; flex: 1 1 auto; justify-content: flex-end; overflow-x: auto; scrollbar-width: none; }
.sadr-header .navbar-end::-webkit-scrollbar { display: none; }
.sadr-footer section, .sadr-footer a, .sadr-footer p { min-width: 0; overflow-wrap: anywhere; }


/* Data-table layout modes */
.sadr-table-viewport { min-width: 0; max-width: 100%; }
.sadr-data-table[data-desktop-mode="table"] .sadr-table-viewport { overflow-x: auto; }
.sadr-data-table[data-desktop-mode="table"] table { min-width: 58rem; }
.sadr-data-table [data-sadr-table-layout].btn-active { border-color: var(--color-primary); background: color-mix(in oklab, var(--color-primary) 12%, transparent); color: var(--color-primary); }

@media (min-width: 768px) {
  .sadr-data-table[data-desktop-mode="cards"] .sadr-table-viewport { overflow: visible; padding: 1rem; }
  .sadr-data-table[data-desktop-mode="cards"] table,
  .sadr-data-table[data-desktop-mode="cards"] tbody { display: block; width: 100%; }
  .sadr-data-table[data-desktop-mode="cards"] thead { display: none; }
  .sadr-data-table[data-desktop-mode="cards"] tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
  .sadr-data-table[data-desktop-mode="cards"] tbody tr { display: block; min-width: 0; overflow: hidden; border: 1px solid var(--color-base-300); border-radius: var(--radius-box); background: var(--color-base-100); box-shadow: 0 10px 26px color-mix(in oklab, var(--color-neutral) 7%, transparent); }
  .sadr-data-table[data-desktop-mode="cards"] tbody td { display: grid; grid-template-columns: minmax(7rem, 34%) minmax(0, 1fr); align-items: center; gap: .75rem; border: 0; border-bottom: 1px dashed color-mix(in oklab, var(--color-base-300) 72%, transparent); padding: .72rem .9rem; overflow-wrap: anywhere; }
  .sadr-data-table[data-desktop-mode="cards"] tbody td:last-child { border-bottom: 0; }
  .sadr-data-table[data-desktop-mode="cards"] tbody td::before { content: attr(data-label); color: color-mix(in oklab, var(--color-base-content) 52%, transparent); font-size: .72rem; }
  .sadr-data-table[data-desktop-mode="cards"] .sadr-row-actions { justify-content: flex-start; }
}

@media (min-width: 1180px) {
  .sadr-data-table[data-desktop-mode="cards"] tbody { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
  .sadr-data-table[data-mobile-mode="scroll"] .sadr-table-viewport { overflow-x: auto; overscroll-behavior-inline: contain; }
  .sadr-data-table[data-mobile-mode="scroll"] table { display: table; width: 100%; min-width: 58rem; }
  .sadr-data-table[data-mobile-mode="scroll"] thead { display: table-header-group; }
  .sadr-data-table[data-mobile-mode="scroll"] tbody { display: table-row-group; }
  .sadr-data-table[data-mobile-mode="scroll"] tr { display: table-row; }
  .sadr-data-table[data-mobile-mode="scroll"] th,
  .sadr-data-table[data-mobile-mode="scroll"] td { display: table-cell; width: auto; white-space: nowrap; }
  .sadr-data-table[data-mobile-mode="scroll"] td::before { content: none; }

  .sadr-data-table[data-mobile-mode="cards"] .sadr-table-viewport { overflow: visible; padding: .75rem; }
  .sadr-data-table[data-mobile-mode="cards"] table,
  .sadr-data-table[data-mobile-mode="cards"] tbody { display: block; width: 100%; min-width: 0 !important; }
  .sadr-data-table[data-mobile-mode="cards"] thead { display: none; }
  .sadr-data-table[data-mobile-mode="cards"] tbody { display: grid; gap: .75rem; }
  .sadr-data-table[data-mobile-mode="cards"] tbody tr { display: block; width: 100%; min-width: 0; overflow: hidden; border: 1px solid var(--color-base-300); border-radius: var(--radius-box); background: var(--color-base-100); }
  .sadr-data-table[data-mobile-mode="cards"] tbody td { display: grid; width: 100%; grid-template-columns: minmax(5.5rem, 32%) minmax(0, 1fr); align-items: center; gap: .65rem; border: 0; border-bottom: 1px dashed color-mix(in oklab, var(--color-base-300) 72%, transparent); padding: .62rem .72rem; overflow-wrap: anywhere; }
  .sadr-data-table[data-mobile-mode="cards"] tbody td:last-child { border-bottom: 0; }
  .sadr-data-table[data-mobile-mode="cards"] tbody td::before { content: attr(data-label); color: color-mix(in oklab, var(--color-base-content) 52%, transparent); font-size: .7rem; }
  .sadr-data-table[data-mobile-mode="cards"] .sadr-row-actions { justify-content: flex-start; }
}

/* App launcher and notification contain full menus. */
.sadr-menu-popover { max-height: min(36rem, calc(100dvh - 5rem)); overflow-y: auto; overscroll-behavior: contain; }
.sadr-menu-popover .menu a { min-height: 2.35rem; border-radius: .7rem; }
.sadr-menu-popover .menu svg { width: 1rem; height: 1rem; }

@media (max-width: 767px) {
  .sadr-menu-dropdown .sadr-menu-popover {
    position: fixed;
    inset-inline: .5rem;
    inset-block-start: 4.25rem;
    width: auto !important;
    max-width: none;
    max-height: calc(100dvh - 4.75rem - env(safe-area-inset-bottom));
    transform-origin: top center;
  }
  .sadr-menu-popover ul[style*="grid-template-columns"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

@media (max-width: 380px) {
  .sadr-menu-popover ul[style*="grid-template-columns"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* Modal and option-driven forms remain inside the viewport. */
.modal-box [data-sadr-modal-body] { min-width: 0; max-width: 100%; }
.sadr-form-actions.is-mobile-stacked { min-width: 0; }
@media (max-width: 640px) {
  .sadr-form-actions.is-mobile-stacked { flex-direction: column-reverse; align-items: stretch; }
  .sadr-form-actions.is-mobile-stacked .btn { width: 100%; }
}

@media (max-width: 640px) {
  dialog.modal { padding: .5rem; }
  .modal-box {
    width: calc(100vw - 1rem);
    max-width: calc(100vw - 1rem);
    max-height: calc(100dvh - 1rem - env(safe-area-inset-bottom));
    padding: .85rem;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .modal-box > header { gap: .6rem; }
  .modal-box .sadr-form-grid { grid-template-columns: minmax(0, 1fr) !important; }
}

/* SadrHelper 5 enterprise components */
.sadr-datepicker-popover {
  position: fixed;
  z-index: 9990;
  inset: auto;
  overflow-y: auto;
  overscroll-behavior: contain;
  max-height: calc(100dvh - 1rem);
}

.sadr-lookup-results,
.sadr-multiselect-menu {
  position: absolute;
  z-index: 80;
  inset-inline: 0;
  inset-block-start: calc(100% + .4rem);
  max-height: min(20rem, 55dvh);
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--color-base-300);
  border-radius: var(--radius-box);
  background: var(--color-base-100);
  box-shadow: 0 20px 55px color-mix(in oklab, var(--color-neutral) 18%, transparent);
}
.sadr-lookup-item { display: flex; width: 100%; min-width: 0; align-items: center; gap: .65rem; padding: .7rem .8rem; text-align: start; }
.sadr-lookup-item:hover, .sadr-lookup-item.is-active { background: color-mix(in oklab, var(--color-primary) 9%, var(--color-base-100)); }
.sadr-lookup-item-icon { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border-radius: .65rem; background: color-mix(in oklab, var(--color-primary) 10%, transparent); color: var(--color-primary); }
.sadr-lookup-item-icon svg { width: 1rem; height: 1rem; }
.sadr-multiselect-control { display: flex; min-height: 3rem; width: 100%; min-width: 0; flex-wrap: wrap; align-items: center; gap: .4rem; border: 1px solid var(--color-base-300); border-radius: var(--radius-field); padding: .45rem .65rem; background: var(--color-base-100); cursor: text; }
.sadr-multiselect-control:focus-within { border-color: var(--color-primary); box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary) 12%, transparent); }
.sadr-multiselect-option { display: flex; min-width: 0; cursor: pointer; align-items: center; gap: .65rem; padding: .7rem .8rem; }
.sadr-multiselect-option:hover { background: var(--color-base-200); }
.sadr-multiselect-option.is-disabled { cursor: not-allowed; opacity: .5; }

.sadr-wizard { min-width: 0; overflow: hidden; border: 1px solid var(--color-base-300); border-radius: var(--radius-box); background: var(--color-base-100); }
.sadr-wizard-title { display: flex; align-items: center; gap: .75rem; border-bottom: 1px solid var(--color-base-300); padding: 1rem; }
.sadr-wizard-title > span { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: .8rem; background: color-mix(in oklab, var(--color-primary) 12%, transparent); color: var(--color-primary); }
.sadr-wizard-layout { display: grid; min-width: 0; grid-template-columns: minmax(13rem, 18rem) minmax(0, 1fr); }
.sadr-wizard-nav { display: grid; align-content: start; gap: .35rem; border-inline-end: 1px solid var(--color-base-300); padding: .8rem; background: color-mix(in oklab, var(--color-base-200) 55%, transparent); }
.sadr-wizard-nav-item { display: flex; width: 100%; min-width: 0; align-items: center; gap: .65rem; border-radius: .8rem; padding: .65rem; text-align: start; }
.sadr-wizard-nav-item > span:first-child { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border: 1px solid var(--color-base-300); border-radius: 999px; background: var(--color-base-100); font-size: .75rem; }
.sadr-wizard-nav-item strong, .sadr-wizard-nav-item small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sadr-wizard-nav-item small { margin-top: .2rem; color: color-mix(in oklab, var(--color-base-content) 48%, transparent); font-size: .68rem; }
.sadr-wizard-nav-item.is-current { background: color-mix(in oklab, var(--color-primary) 11%, transparent); color: var(--color-primary); }
.sadr-wizard-nav-item.is-current > span:first-child, .sadr-wizard-nav-item.is-complete > span:first-child { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-primary-content); }
.sadr-wizard-content { min-width: 0; padding: 1rem; }
.sadr-wizard-step { min-width: 0; }
.sadr-wizard-actions { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: .65rem; border-top: 1px solid var(--color-base-300); padding: .8rem 1rem; }
.sadr-wizard.is-vertical .sadr-wizard-layout { grid-template-columns: minmax(0, 1fr); }
.sadr-wizard.is-vertical .sadr-wizard-nav { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); border-inline-end: 0; border-bottom: 1px solid var(--color-base-300); }

.sadr-tree-view { min-width: 0; }
.sadr-tree-root, .sadr-tree-root ul { display: grid; gap: .25rem; min-width: 0; }
.sadr-tree-root ul { margin-inline-start: 1rem; border-inline-start: 1px dashed var(--color-base-300); padding-inline-start: .7rem; }
.sadr-tree-node summary, .sadr-tree-leaf { display: flex; min-width: 0; cursor: pointer; list-style: none; align-items: center; gap: .5rem; border-radius: .65rem; padding: .45rem .55rem; }
.sadr-tree-node summary::-webkit-details-marker { display: none; }
.sadr-tree-node summary:hover, .sadr-tree-leaf:hover { background: var(--color-base-200); }
.sadr-tree-toggle { transition: transform .15s ease; }
.sadr-tree-node details[open] > summary .sadr-tree-toggle { transform: rotate(180deg); }
.sadr-tree-node-icon { color: var(--color-primary); }
.sadr-tree-node-icon svg, .sadr-tree-toggle svg { width: 1rem; height: 1rem; }

.sadr-permission-viewport { max-width: 100%; overflow: auto; overscroll-behavior: contain; }
.sadr-permission-viewport table { min-width: 52rem; }
.sadr-permission-group td { position: sticky; inset-inline-start: 0; background: var(--color-base-200); font-size: .75rem; font-weight: 700; }
.sadr-permission-matrix tbody tr:not(.sadr-permission-group):hover { background: color-mix(in oklab, var(--color-primary) 5%, var(--color-base-100)); }

.sadr-attachment-manager { min-width: 0; overflow: hidden; }
.sadr-attachment-dropzone { display: flex; min-width: 0; align-items: center; justify-content: center; gap: .8rem; border-bottom: 1px dashed var(--color-base-300); padding: 1rem; background: color-mix(in oklab, var(--color-primary) 3%, transparent); text-align: center; }
.sadr-attachment-dropzone.is-dragging { background: color-mix(in oklab, var(--color-primary) 11%, var(--color-base-100)); }
.sadr-attachment-list { display: grid; min-width: 0; }
.sadr-attachment-item { display: flex; min-width: 0; align-items: center; gap: .75rem; border-bottom: 1px solid var(--color-base-300); padding: .8rem 1rem; }
.sadr-attachment-item:last-child { border-bottom: 0; }
.sadr-attachment-icon { display: grid; width: 2.4rem; height: 2.4rem; flex: 0 0 auto; place-items: center; border-radius: .75rem; background: color-mix(in oklab, var(--color-primary) 10%, transparent); color: var(--color-primary); }
.sadr-attachment-icon svg { width: 1.15rem; height: 1.15rem; }
.sadr-attachment-empty { display: flex; align-items: center; justify-content: center; gap: .5rem; padding: 1.5rem; color: color-mix(in oklab, var(--color-base-content) 48%, transparent); font-size: .85rem; }
.sadr-attachment-empty[hidden] { display: none; }

.sadr-scheduler { min-width: 0; overflow: hidden; }
.sadr-scheduler-toolbar { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: .75rem; border-bottom: 1px solid var(--color-base-300); padding: .85rem 1rem; }
.sadr-scheduler-viewport { max-width: 100%; overflow: auto; overscroll-behavior: contain; }
.sadr-scheduler-week { display: grid; min-width: 72rem; grid-template-columns: repeat(7, minmax(9.5rem, 1fr)); background: var(--color-base-300); gap: 1px; }
.sadr-scheduler-day { min-height: 24rem; background: var(--color-base-100); }
.sadr-scheduler-day > header { display: grid; gap: .2rem; border-bottom: 1px solid var(--color-base-300); padding: .65rem; }
.sadr-scheduler-day > header span { color: var(--color-primary); font-size: .72rem; font-weight: 700; }
.sadr-scheduler-day > header strong { font-size: .72rem; }
.sadr-scheduler-day > div { display: grid; gap: .45rem; padding: .5rem; }
.sadr-scheduler-day.is-today > header { background: color-mix(in oklab, var(--color-primary) 9%, transparent); }
.sadr-scheduler-event { --event-color: var(--color-primary); display: grid; gap: .2rem; border-inline-start: 3px solid var(--event-color); border-radius: .55rem; background: color-mix(in oklab, var(--event-color) 9%, var(--color-base-100)); padding: .5rem; font-size: .72rem; }
.sadr-scheduler-event[data-variant="secondary"] { --event-color: var(--color-secondary); }
.sadr-scheduler-event[data-variant="success"] { --event-color: var(--color-success); }
.sadr-scheduler-event[data-variant="warning"] { --event-color: var(--color-warning); }
.sadr-scheduler-event[data-variant="error"] { --event-color: var(--color-error); }
.sadr-scheduler-event[data-variant="info"] { --event-color: var(--color-info); }
.sadr-scheduler-event p { color: color-mix(in oklab, var(--color-base-content) 58%, transparent); }
.sadr-scheduler-event small { color: color-mix(in oklab, var(--color-base-content) 45%, transparent); }
.sadr-scheduler-empty { padding: 1rem .3rem; color: color-mix(in oklab, var(--color-base-content) 38%, transparent); font-size: .7rem; text-align: center; }
.sadr-scheduler-weekdays, .sadr-scheduler-month-grid { display: grid; grid-template-columns: repeat(7, minmax(7rem, 1fr)); min-width: 56rem; }
.sadr-scheduler-weekdays { background: var(--color-base-200); text-align: center; font-size: .72rem; }
.sadr-scheduler-weekdays span { padding: .55rem; }
.sadr-scheduler-month-grid { gap: 1px; background: var(--color-base-300); }
.sadr-scheduler-month-day { min-height: 8rem; overflow: hidden; background: var(--color-base-100); padding: .4rem; }
.sadr-scheduler-month-day.is-muted { opacity: .45; }
.sadr-scheduler-month-day.is-today { box-shadow: inset 0 0 0 2px var(--color-primary); }
.sadr-scheduler-month-day > header { margin-bottom: .35rem; color: var(--color-primary); font-weight: 700; }
.sadr-scheduler-month-day .sadr-scheduler-event { margin-block-end: .3rem; padding: .3rem; }

.sadr-import-wizard { min-width: 0; overflow: hidden; }
.sadr-import-steps { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .5rem; border-bottom: 1px solid var(--color-base-300); padding: .8rem; }
.sadr-import-steps li { display: flex; min-width: 0; align-items: center; justify-content: center; gap: .45rem; color: color-mix(in oklab, var(--color-base-content) 45%, transparent); font-size: .75rem; text-align: center; }
.sadr-import-steps li span { display: grid; width: 1.7rem; height: 1.7rem; flex: 0 0 auto; place-items: center; border: 1px solid var(--color-base-300); border-radius: 999px; }
.sadr-import-steps li.is-active, .sadr-import-steps li.is-complete { color: var(--color-primary); font-weight: 700; }
.sadr-import-steps li.is-active span, .sadr-import-steps li.is-complete span { border-color: var(--color-primary); background: var(--color-primary); color: var(--color-primary-content); }
.sadr-import-body { min-width: 0; padding: 1rem; }
.sadr-import-dropzone { display: grid; min-height: 12rem; cursor: pointer; place-items: center; gap: .55rem; border: 1px dashed color-mix(in oklab, var(--color-primary) 45%, var(--color-base-300)); border-radius: var(--radius-box); background: color-mix(in oklab, var(--color-primary) 4%, var(--color-base-100)); padding: 1.2rem; text-align: center; }
.sadr-import-dropzone.is-dragging { border-color: var(--color-primary); background: color-mix(in oklab, var(--color-primary) 11%, var(--color-base-100)); }
.sadr-import-dropzone small { color: color-mix(in oklab, var(--color-base-content) 50%, transparent); }
.sadr-import-preview { max-width: 100%; overflow: auto; border: 1px solid var(--color-base-300); border-radius: var(--radius-box); }
.sadr-import-preview table { min-width: 42rem; }
.sadr-import-actions { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: .6rem; border-top: 1px solid var(--color-base-300); padding: .8rem 1rem; }

.sadr-timeline { position: relative; display: grid; gap: .9rem; min-width: 0; }
.sadr-timeline::before { content: ""; position: absolute; inset-block: .7rem; inset-inline-start: 1.05rem; width: 2px; background: var(--color-base-300); }
.sadr-timeline-item { --timeline-color: var(--color-primary); position: relative; display: grid; min-width: 0; grid-template-columns: 2.2rem minmax(0,1fr); gap: .75rem; }
.sadr-timeline-item[data-variant="secondary"] { --timeline-color: var(--color-secondary); }
.sadr-timeline-item[data-variant="success"] { --timeline-color: var(--color-success); }
.sadr-timeline-item[data-variant="warning"] { --timeline-color: var(--color-warning); }
.sadr-timeline-item[data-variant="error"] { --timeline-color: var(--color-error); }
.sadr-timeline-item[data-variant="info"] { --timeline-color: var(--color-info); }
.sadr-timeline-marker { position: relative; z-index: 1; display: grid; width: 2.2rem; height: 2.2rem; place-items: center; border: 4px solid var(--color-base-100); border-radius: 999px; background: var(--timeline-color); color: white; }
.sadr-timeline-marker svg { width: .9rem; height: .9rem; }
.sadr-timeline-content { min-width: 0; border: 1px solid var(--color-base-300); border-radius: .85rem; background: var(--color-base-100); padding: .75rem; }
.sadr-timeline.is-compact .sadr-timeline-content { padding: .55rem .7rem; }

.sadr-column-hidden { display: none !important; }
.sadr-column-chooser { max-height: min(24rem, 65dvh); overflow-y: auto; }
.sadr-data-table tbody tr.is-selected { background: color-mix(in oklab, var(--color-primary) 10%, var(--color-base-100)); }
.sadr-data-table [data-sadr-filter-row] th { padding: .35rem; background: var(--color-base-200); }
.sadr-data-table.has-sticky-first-column[data-desktop-mode="table"] th:first-child,
.sadr-data-table.has-sticky-first-column[data-desktop-mode="table"] td:first-child { position: sticky; z-index: 2; inset-inline-start: 0; background: var(--color-base-100); }
.sadr-data-table.has-sticky-first-column[data-desktop-mode="table"] thead th:first-child { z-index: 4; background: var(--color-base-200); }

@media (max-width: 767px) {
  .sadr-datepicker-popover { z-index: 9999; }
  .sadr-lookup-results, .sadr-multiselect-menu { position: fixed; inset-inline: .5rem; inset-block-start: auto; inset-block-end: max(.5rem, env(safe-area-inset-bottom)); max-height: min(28rem, calc(100dvh - 1rem)); }
  .sadr-wizard-layout { grid-template-columns: minmax(0, 1fr); }
  .sadr-wizard-nav { grid-auto-flow: column; grid-auto-columns: minmax(10rem, 72vw); overflow-x: auto; border-inline-end: 0; border-bottom: 1px solid var(--color-base-300); scroll-snap-type: inline proximity; }
  .sadr-wizard-nav li { scroll-snap-align: start; }
  .sadr-wizard-content { padding: .75rem; }
  .sadr-wizard-actions { flex-direction: column-reverse; align-items: stretch; }
  .sadr-wizard-actions .grow { display: none; }
  .sadr-wizard-actions .btn { width: 100%; }
  .sadr-permission-viewport table { min-width: 46rem; }
  .sadr-attachment-dropzone { flex-direction: column; }
  .sadr-attachment-item { align-items: flex-start; flex-wrap: wrap; padding: .75rem; }
  .sadr-attachment-item > div:last-child { width: 100%; justify-content: flex-end; }
  .sadr-scheduler-toolbar > * { width: 100%; }
  .sadr-scheduler-toolbar .join { max-width: 100%; overflow-x: auto; }
  .sadr-scheduler-week { min-width: 62rem; }
  .sadr-import-steps { gap: .25rem; padding: .6rem .35rem; }
  .sadr-import-steps li { flex-direction: column; font-size: .64rem; }
  .sadr-import-body { padding: .75rem; }
  .sadr-import-actions { flex-direction: column-reverse; align-items: stretch; }
  .sadr-import-actions .grow { display: none; }
  .sadr-import-actions .btn { width: 100%; }
  .sadr-column-chooser { position: fixed; inset-inline: .5rem; inset-block-start: 4.5rem; width: auto; max-height: calc(100dvh - 5rem); }
}

@media (max-width: 380px) {
  .sadr-datepicker-quick { grid-template-columns: 1fr; }
  .sadr-datepicker-selected { display: flex; max-width: 100%; width: 100%; }
  .sadr-datepicker-popover > div:last-child { align-items: stretch; }
  .sadr-datepicker-popover > div:last-child > div:last-child { width: 100%; }
  .sadr-datepicker-popover > div:last-child .btn { flex: 1; }
  .sadr-tree-root ul { margin-inline-start: .35rem; padding-inline-start: .4rem; }
}

/* v6 additive components */
.sadr-image-upload { overflow: hidden; border: 1px dashed color-mix(in oklab, var(--color-primary) 40%, var(--color-base-300)); border-radius: var(--radius-box); background: color-mix(in oklab, var(--color-primary) 3%, var(--color-base-100)); transition: border-color .16s ease, background-color .16s ease; }
.sadr-image-upload.is-dragging { border-color: var(--color-primary); background: color-mix(in oklab, var(--color-primary) 9%, var(--color-base-100)); }
.sadr-image-upload-preview { display: grid; place-items: center; overflow: hidden; background: color-mix(in oklab, var(--color-base-200) 70%, transparent); }
.sadr-image-upload-preview img { display: block; width: 100%; max-height: 32rem; object-fit: contain; }
.sadr-image-upload-empty { display: grid; place-items: center; gap: .55rem; padding: 2rem; text-align: center; color: color-mix(in oklab, var(--color-base-content) 55%, transparent); }
.sadr-image-upload-empty > span { display: grid; width: 3.25rem; height: 3.25rem; place-items: center; border-radius: 1rem; background: color-mix(in oklab, var(--color-primary) 10%, transparent); color: var(--color-primary); }
.sadr-image-upload-empty small { font-size: .75rem; }
.sadr-nav-underline .is-active { color: var(--color-primary); border-color: var(--color-primary); }
.sadr-chip[x-cloak] { display: none !important; }
[data-sadr-image-upload] [hidden] { display: none !important; }

/* v6.0.3 image upload collection / multi-slot additions */
.sadr-image-upload-collection { display: grid; align-items: stretch; }
.sadr-image-upload-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .75rem; padding: .75rem; }
.sadr-image-upload-collection-item,
.sadr-image-upload-slot { overflow: hidden; border: 1px solid color-mix(in oklab, var(--color-base-content) 12%, transparent); border-radius: calc(var(--radius-box) * .8); background: var(--color-base-100); }
.sadr-image-upload-collection-thumb { aspect-ratio: 1 / 1; overflow: hidden; background: var(--color-base-200); }
.sadr-image-upload-collection-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sadr-image-upload-collection-footer,
.sadr-image-upload-slot-footer,
.sadr-image-upload-multi-actions { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem; border-top: 1px solid color-mix(in oklab, var(--color-base-content) 10%, transparent); }
.sadr-image-upload-collection-meta { min-width: 0; display: grid; gap: .2rem; }
.sadr-image-upload-collection-meta strong { display: block; max-width: 100%; font-size: .8rem; }
.sadr-image-upload-collection-meta small { color: color-mix(in oklab, var(--color-base-content) 55%, transparent); font-size: .7rem; }
.sadr-image-upload-slot .sadr-image-upload-preview { border-radius: 0; }
@media (max-width: 640px) {
  .sadr-image-upload-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding: .5rem; }
  .sadr-image-upload-collection-footer,
  .sadr-image-upload-slot-footer,
  .sadr-image-upload-multi-actions { align-items: flex-start; flex-direction: column; }
}

/* v6.1.0 visual refresh — appearance only, public markup/API unchanged. */
:root {
  --sadr-control-border: color-mix(in oklab, var(--color-base-content) 14%, var(--color-base-300));
  --sadr-control-border-strong: color-mix(in oklab, var(--color-base-content) 21%, var(--color-base-300));
  --sadr-surface-shadow: 0 14px 34px color-mix(in oklab, var(--color-neutral) 10%, transparent);
  --sadr-control-shadow: 0 2px 0 color-mix(in oklab, var(--color-neutral) 13%, transparent), 0 7px 18px color-mix(in oklab, var(--color-neutral) 10%, transparent);
  --sadr-control-shadow-hover: 0 3px 0 color-mix(in oklab, var(--color-neutral) 15%, transparent), 0 10px 24px color-mix(in oklab, var(--color-neutral) 13%, transparent);
}

/* Buttons — rounded, bordered and softly raised like the reference UI. */
.btn {
  border-width: 1px;
  border-style: solid;
  border-color: var(--sadr-control-border);
  border-radius: max(var(--radius-field), 1rem);
  box-shadow: var(--sadr-control-shadow);
  font-weight: 650;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease, background-color .14s ease, color .14s ease, filter .14s ease;
}

.btn.btn-square:not(.btn-circle) { border-radius: max(var(--radius-field), 1rem); }

.btn:hover:not(:disabled):not([disabled]) {
  transform: translateY(-1px);
  border-color: var(--sadr-control-border-strong);
  box-shadow: var(--sadr-control-shadow-hover);
}

.btn:active:not(:disabled):not([disabled]) {
  transform: translateY(1px);
  box-shadow: 0 1px 0 color-mix(in oklab, var(--color-neutral) 13%, transparent), 0 3px 8px color-mix(in oklab, var(--color-neutral) 8%, transparent);
}

.btn:focus-visible {
  outline: 3px solid color-mix(in oklab, var(--color-primary) 24%, transparent);
  outline-offset: 2px;
}

.btn.btn-primary:not(.btn-outline):not(.btn-soft):not(.btn-ghost):not(.btn-link),
.sadr-primary-action {
  border-color: color-mix(in oklab, var(--color-primary) 72%, var(--color-base-content));
  background: linear-gradient(135deg,
    color-mix(in oklab, var(--color-accent) 76%, var(--color-primary)) 0%,
    var(--color-primary) 68%,
    color-mix(in oklab, var(--color-primary) 84%, var(--color-secondary)) 100%);
  color: var(--color-primary-content);
  box-shadow: 0 2px 0 color-mix(in oklab, var(--color-primary) 58%, var(--color-base-content)), 0 9px 22px color-mix(in oklab, var(--color-primary) 25%, transparent);
}

.btn.btn-primary:not(.btn-outline):not(.btn-soft):not(.btn-ghost):not(.btn-link):hover,
.sadr-primary-action:hover {
  filter: saturate(1.05) brightness(1.035);
  box-shadow: 0 3px 0 color-mix(in oklab, var(--color-primary) 60%, var(--color-base-content)), 0 13px 27px color-mix(in oklab, var(--color-primary) 30%, transparent);
}

.btn.btn-secondary:not(.btn-outline):not(.btn-soft):not(.btn-link),
.btn.btn-ghost {
  border-color: color-mix(in oklab, var(--color-base-content) 13%, var(--color-base-300));
  background: color-mix(in oklab, var(--color-base-100) 96%, var(--color-base-200));
  color: var(--color-base-content);
}

.btn.btn-secondary:not(.btn-outline):not(.btn-soft):not(.btn-link):hover,
.btn.btn-ghost:hover {
  border-color: color-mix(in oklab, var(--color-primary) 24%, var(--color-base-300));
  background: color-mix(in oklab, var(--color-primary) 5%, var(--color-base-100));
  color: var(--color-base-content);
}

.btn.btn-success:not(.btn-outline):not(.btn-soft):not(.btn-link) {
  border-color: color-mix(in oklab, var(--color-success) 72%, var(--color-base-content));
  background: linear-gradient(135deg,
    color-mix(in oklab, var(--color-success) 86%, var(--color-secondary)),
    var(--color-success));
  color: var(--color-success-content);
}

.btn.btn-info:not(.btn-outline):not(.btn-soft):not(.btn-link),
.btn.btn-warning:not(.btn-outline):not(.btn-soft):not(.btn-link),
.btn.btn-error:not(.btn-outline):not(.btn-soft):not(.btn-link),
.btn.btn-accent:not(.btn-outline):not(.btn-soft):not(.btn-link),
.btn.btn-neutral:not(.btn-outline):not(.btn-soft):not(.btn-link) {
  box-shadow: var(--sadr-control-shadow);
}

.btn.btn-outline,
.btn.btn-soft {
  border-color: color-mix(in oklab, currentColor 28%, var(--color-base-300));
  box-shadow: 0 4px 12px color-mix(in oklab, var(--color-neutral) 7%, transparent);
}

/* Professional data table shell while keeping the existing DOM and behavior. */
.sadr-data-table {
  border-color: color-mix(in oklab, var(--color-base-content) 9%, var(--color-base-300)) !important;
  border-radius: max(var(--radius-box), 1.55rem) !important;
  background: var(--color-base-100);
  box-shadow: 0 12px 36px color-mix(in oklab, var(--color-neutral) 8%, transparent);
}

.sadr-data-table > div:first-child {
  border-bottom-color: color-mix(in oklab, var(--color-base-content) 9%, var(--color-base-300)) !important;
  background: linear-gradient(180deg,
    color-mix(in oklab, var(--color-base-100) 96%, var(--color-primary) 4%),
    var(--color-base-100));
}

.sadr-data-table .input,
.sadr-data-table .select {
  border-color: color-mix(in oklab, var(--color-base-content) 12%, var(--color-base-300));
  border-radius: max(var(--radius-field), .95rem);
  background: color-mix(in oklab, var(--color-base-100) 97%, var(--color-base-200));
  box-shadow: inset 0 1px 0 color-mix(in oklab, white 22%, transparent);
}

.sadr-data-table table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--color-base-100);
}

.sadr-data-table thead th {
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 10%, var(--color-base-300));
  background: color-mix(in oklab, var(--color-base-200) 62%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-base-content) 68%, transparent);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: -.01em;
}

.sadr-data-table th,
.sadr-data-table td {
  padding-block: .72rem;
  padding-inline: .82rem;
  vertical-align: middle;
}

.sadr-data-table tbody td {
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 7%, var(--color-base-300));
}

.sadr-data-table tbody tr:last-child td { border-bottom-color: transparent; }

.sadr-data-table tbody tr {
  background: var(--color-base-100);
  transition: background-color .15s ease, box-shadow .15s ease;
}

.sadr-data-table tbody tr:hover {
  background: color-mix(in oklab, var(--color-primary) 4.5%, var(--color-base-100));
}

.sadr-data-table .sadr-row-actions .btn,
.sadr-row-actions .btn {
  min-width: 2.15rem;
  border-radius: .8rem;
  box-shadow: 0 2px 7px color-mix(in oklab, var(--color-neutral) 7%, transparent);
}

.sadr-data-table > div:last-child {
  border-top-color: color-mix(in oklab, var(--color-base-content) 9%, var(--color-base-300)) !important;
  background: color-mix(in oklab, var(--color-base-200) 36%, var(--color-base-100));
}

.sadr-data-table [data-sadr-table-pagination] .btn,
.sadr-pagination .btn {
  min-width: 2.35rem;
  border-radius: .82rem;
}

/* Menus / app launcher / notifications — elevated rounded surfaces. */
.sadr-menu-popover {
  border-color: color-mix(in oklab, var(--color-base-content) 10%, var(--color-base-300)) !important;
  border-radius: max(var(--radius-box), 1.55rem) !important;
  background: color-mix(in oklab, var(--color-base-100) 97%, transparent) !important;
  box-shadow: 0 22px 58px color-mix(in oklab, var(--color-neutral) 18%, transparent) !important;
  backdrop-filter: blur(18px);
}

.sadr-menu-dropdown > .btn {
  border-radius: max(var(--radius-field), 1rem);
  background: color-mix(in oklab, var(--color-base-100) 96%, var(--color-base-200));
}

.sadr-menu-popover .menu a,
.sadr-menu-popover > ul > li > a {
  border-radius: .95rem;
  border: 1px solid transparent;
  transition: background-color .14s ease, border-color .14s ease, transform .14s ease;
}

.sadr-menu-popover .menu a:hover,
.sadr-menu-popover > ul > li > a:hover {
  border-color: color-mix(in oklab, var(--color-primary) 12%, transparent);
  background: color-mix(in oklab, var(--color-primary) 6%, var(--color-base-100));
  transform: translateX(-1px);
}

.sadr-menu-popover > ul.space-y-1 > li:not(:last-child) {
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 7%, var(--color-base-300));
  padding-bottom: .12rem;
}

.sadr-menu-popover .badge {
  border: 1px solid color-mix(in oklab, currentColor 18%, transparent);
}

/* Navigation controls inherit the same polished surface without changing layout. */
.tabs-box {
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, var(--color-base-300));
  border-radius: max(var(--radius-box), 1.15rem);
  background: color-mix(in oklab, var(--color-base-100) 96%, var(--color-base-200));
  box-shadow: 0 7px 18px color-mix(in oklab, var(--color-neutral) 7%, transparent);
}

.tabs-box .tab {
  border-radius: .85rem;
  transition: background-color .14s ease, color .14s ease, box-shadow .14s ease;
}

.tabs-box .tab.tab-active {
  background: color-mix(in oklab, var(--color-primary) 11%, var(--color-base-100));
  color: var(--color-primary);
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--color-primary) 16%, transparent);
}

nav .menu {
  border: 1px solid color-mix(in oklab, var(--color-base-content) 9%, var(--color-base-300));
  border-radius: max(var(--radius-box), 1.2rem);
  background: color-mix(in oklab, var(--color-base-100) 97%, var(--color-base-200));
  box-shadow: 0 8px 22px color-mix(in oklab, var(--color-neutral) 7%, transparent);
}

nav .menu a { border-radius: .85rem; }
nav .menu a.active { background: color-mix(in oklab, var(--color-primary) 12%, var(--color-base-100)); color: var(--color-primary); }

/* Modal — clean enterprise card, theme/dark-mode aware. */
.modal::backdrop {
  background: color-mix(in oklab, var(--color-neutral) 42%, transparent);
  backdrop-filter: blur(5px);
}

.modal-box {
  border: 1px solid color-mix(in oklab, var(--color-base-content) 10%, var(--color-base-300));
  border-radius: max(var(--radius-box), 1.7rem) !important;
  background: var(--color-base-100);
  box-shadow: 0 30px 90px color-mix(in oklab, var(--color-neutral) 28%, transparent);
}

.modal-box > header {
  border-bottom-color: color-mix(in oklab, var(--color-base-content) 9%, var(--color-base-300)) !important;
  background: linear-gradient(180deg,
    color-mix(in oklab, var(--color-base-100) 96%, var(--color-primary) 4%),
    var(--color-base-100));
}

.modal-box > header > div:first-child {
  border: 1px solid color-mix(in oklab, currentColor 15%, transparent);
  border-radius: 1rem;
  box-shadow: inset 0 1px 0 color-mix(in oklab, white 18%, transparent);
}

.modal-box > header .btn-circle {
  border-radius: 1rem;
  background: color-mix(in oklab, var(--color-base-200) 58%, var(--color-base-100));
}

.modal-box > footer {
  border-top-color: color-mix(in oklab, var(--color-base-content) 9%, var(--color-base-300)) !important;
  background: color-mix(in oklab, var(--color-base-200) 42%, var(--color-base-100)) !important;
}

.modal .btn {
  border-width: 1px;
  box-shadow: var(--sadr-control-shadow);
}

/* Header actions use the same compact elevated button language. */
.sadr-header .navbar-end > .btn,
.sadr-header .navbar-end > a.btn,
.sadr-header .navbar-end .dropdown > .btn {
  border-radius: max(var(--radius-field), 1rem);
}

/* Explicit dark-theme refinements without hard-coded light colors. */
[data-theme="sadr-graphite"] .btn.btn-secondary:not(.btn-outline):not(.btn-soft):not(.btn-link),
[data-theme="sadr-graphite"] .btn.btn-ghost,
[data-theme="sadr-graphite"] .sadr-menu-dropdown > .btn {
  background: color-mix(in oklab, var(--color-base-100) 90%, var(--color-base-300));
  border-color: color-mix(in oklab, var(--color-base-content) 13%, var(--color-base-300));
}

[data-theme="sadr-graphite"] .sadr-menu-popover,
[data-theme="sadr-graphite"] .modal-box,
[data-theme="sadr-graphite"] .sadr-data-table {
  box-shadow: 0 24px 70px color-mix(in oklab, black 46%, transparent);
}


.btn.btn-link {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  border-radius: .6rem;
}
.btn.btn-link:hover:not(:disabled):not([disabled]) { transform: none; box-shadow: none; }

/* v6.1.1 flat controls + compact professional tables. Appearance only. */
:root {
  --sadr-flat-border: color-mix(in oklab, var(--color-base-content) 13%, var(--color-base-300));
  --sadr-flat-border-hover: color-mix(in oklab, var(--color-primary) 32%, var(--color-base-300));
  --sadr-flat-surface: color-mix(in oklab, var(--color-base-100) 97%, var(--color-base-200));
  --sadr-flat-surface-hover: color-mix(in oklab, var(--color-primary) 5%, var(--color-base-100));
}

/* Buttons are intentionally flat: no 3D translate/gradient/depth shadow. */
.btn {
  gap: .48rem;
  border-width: 1px;
  border-style: solid;
  border-color: var(--sadr-flat-border);
  border-radius: max(var(--radius-field), .88rem);
  box-shadow: 0 1px 2px color-mix(in oklab, var(--color-neutral) 6%, transparent);
  font-weight: 650;
  letter-spacing: -.01em;
  transition: border-color .14s ease, background-color .14s ease, color .14s ease, box-shadow .14s ease, filter .14s ease;
}

.btn:hover:not(:disabled):not([disabled]) {
  transform: none;
  border-color: var(--sadr-flat-border-hover);
  box-shadow: 0 2px 7px color-mix(in oklab, var(--color-neutral) 8%, transparent);
}

.btn:active:not(:disabled):not([disabled]) {
  transform: none;
  box-shadow: 0 1px 2px color-mix(in oklab, var(--color-neutral) 6%, transparent);
}

.btn.btn-primary:not(.btn-outline):not(.btn-soft):not(.btn-ghost):not(.btn-link),
.sadr-primary-action {
  border-color: color-mix(in oklab, var(--color-primary) 78%, var(--color-base-content));
  background: var(--color-primary);
  color: var(--color-primary-content);
  box-shadow: 0 1px 2px color-mix(in oklab, var(--color-primary) 22%, transparent);
}

.btn.btn-primary:not(.btn-outline):not(.btn-soft):not(.btn-ghost):not(.btn-link):hover,
.sadr-primary-action:hover {
  filter: brightness(1.035) saturate(1.025);
  box-shadow: 0 2px 7px color-mix(in oklab, var(--color-primary) 20%, transparent);
}

.btn.btn-success:not(.btn-outline):not(.btn-soft):not(.btn-link) {
  border-color: color-mix(in oklab, var(--color-success) 75%, var(--color-base-content));
  background: var(--color-success);
  color: var(--color-success-content);
  box-shadow: 0 1px 2px color-mix(in oklab, var(--color-success) 18%, transparent);
}

.btn.btn-info:not(.btn-outline):not(.btn-soft):not(.btn-link) { box-shadow: 0 1px 2px color-mix(in oklab, var(--color-info) 16%, transparent); }
.btn.btn-warning:not(.btn-outline):not(.btn-soft):not(.btn-link) { box-shadow: 0 1px 2px color-mix(in oklab, var(--color-warning) 16%, transparent); }
.btn.btn-error:not(.btn-outline):not(.btn-soft):not(.btn-link) { box-shadow: 0 1px 2px color-mix(in oklab, var(--color-error) 16%, transparent); }
.btn.btn-accent:not(.btn-outline):not(.btn-soft):not(.btn-link) { box-shadow: 0 1px 2px color-mix(in oklab, var(--color-accent) 16%, transparent); }
.btn.btn-neutral:not(.btn-outline):not(.btn-soft):not(.btn-link) { box-shadow: 0 1px 2px color-mix(in oklab, var(--color-neutral) 12%, transparent); }

.btn.btn-secondary:not(.btn-outline):not(.btn-soft):not(.btn-link),
.btn.btn-ghost {
  border-color: var(--sadr-flat-border);
  background: var(--sadr-flat-surface);
  color: var(--color-base-content);
}

.btn.btn-secondary:not(.btn-outline):not(.btn-soft):not(.btn-link):hover,
.btn.btn-ghost:hover {
  border-color: var(--sadr-flat-border-hover);
  background: var(--sadr-flat-surface-hover);
}

.btn.btn-outline,
.btn.btn-soft {
  box-shadow: 0 1px 2px color-mix(in oklab, var(--color-neutral) 5%, transparent);
}

.btn-sm { min-height: 2.35rem; padding-inline: .9rem; }
.btn-xs { min-height: 2rem; padding-inline: .65rem; }

/* Data table: thinner shell, tighter cells, professional operation controls. */
.sadr-data-table {
  overflow: hidden;
  border-width: 1px !important;
  border-color: color-mix(in oklab, var(--color-base-content) 9%, var(--color-base-300)) !important;
  border-radius: max(var(--radius-box), 1.35rem) !important;
  box-shadow: 0 7px 22px color-mix(in oklab, var(--color-neutral) 6%, transparent);
}

.sadr-data-table > div:first-child {
  gap: .7rem;
  padding: .85rem 1rem;
  background: color-mix(in oklab, var(--color-base-100) 98%, var(--color-base-200));
}

.sadr-data-table > div:first-child > div:last-child {
  gap: .5rem;
}

.sadr-data-table .input,
.sadr-data-table .select {
  min-height: 2.35rem;
  border-radius: .8rem;
  box-shadow: none;
}

.sadr-data-table table {
  width: 100%;
  max-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--color-base-100);
}

.sadr-data-table thead th {
  padding-block: .58rem;
  padding-inline: .62rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 9%, var(--color-base-300));
  background: color-mix(in oklab, var(--color-base-200) 54%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-base-content) 68%, transparent);
  font-size: .73rem;
  font-weight: 750;
  line-height: 1.45;
}

.sadr-data-table tbody td {
  padding-block: .58rem;
  padding-inline: .62rem;
  border-bottom: 1px solid color-mix(in oklab, var(--color-base-content) 6.5%, var(--color-base-300));
  font-size: .78rem;
  line-height: 1.55;
}

.sadr-data-table tbody tr:hover {
  background: color-mix(in oklab, var(--color-primary) 3.8%, var(--color-base-100));
}

.sadr-row-actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .42rem;
}

.sadr-data-table .sadr-row-actions .btn,
.sadr-row-actions .btn,
.sadr-table-action {
  min-width: 0;
  min-height: 2rem;
  padding-inline: .58rem;
  border-radius: .72rem;
  border-width: 1px;
  box-shadow: none;
  font-size: .7rem;
  white-space: nowrap;
}

.sadr-table-action-view {
  border-color: color-mix(in oklab, var(--color-info) 34%, var(--color-base-300));
  background: color-mix(in oklab, var(--color-info) 8%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-info) 82%, var(--color-base-content));
}

.sadr-table-action-edit {
  border-color: color-mix(in oklab, var(--color-success) 34%, var(--color-base-300));
  background: color-mix(in oklab, var(--color-success) 8%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-success) 76%, var(--color-base-content));
}

.sadr-table-action-delete {
  border-color: color-mix(in oklab, var(--color-error) 34%, var(--color-base-300));
  background: color-mix(in oklab, var(--color-error) 7%, var(--color-base-100));
  color: var(--color-error);
}

.sadr-table-action-warning {
  border-color: color-mix(in oklab, var(--color-warning) 38%, var(--color-base-300));
  background: color-mix(in oklab, var(--color-warning) 8%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-warning) 72%, var(--color-base-content));
}

.sadr-table-action-success {
  border-color: color-mix(in oklab, var(--color-success) 34%, var(--color-base-300));
  background: color-mix(in oklab, var(--color-success) 8%, var(--color-base-100));
  color: color-mix(in oklab, var(--color-success) 76%, var(--color-base-content));
}

.sadr-table-action:hover {
  filter: brightness(1.01) saturate(1.03);
  box-shadow: none !important;
}

.sadr-data-table > div:last-child {
  gap: .7rem;
  padding: .7rem 1rem;
  background: color-mix(in oklab, var(--color-base-200) 24%, var(--color-base-100));
}

/* Desktop-first fit mode: avoid horizontal scrolling whenever practical. */
@media (min-width: 768px) {
  .sadr-data-table[data-desktop-mode="table"] .sadr-table-viewport {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  .sadr-data-table[data-desktop-mode="table"] table {
    width: 100%;
    min-width: 0 !important;
    max-width: 100%;
    table-layout: fixed;
  }

  .sadr-data-table[data-desktop-mode="table"] th,
  .sadr-data-table[data-desktop-mode="table"] td {
    min-width: 0;
    max-width: none;
    overflow: hidden;
    overflow-wrap: anywhere;
    text-overflow: ellipsis;
    white-space: normal;
  }

  .sadr-data-table[data-desktop-mode="table"] td > *,
  .sadr-data-table[data-desktop-mode="table"] th > * {
    max-width: 100%;
  }

  .sadr-data-table[data-desktop-mode="table"] td:has(.sadr-row-actions) {
    width: 10rem;
    overflow: visible;
  }

  .sadr-data-table[data-desktop-mode="table"] th[data-nosort]:last-child {
    width: 10rem;
  }
}

@media (min-width: 768px) and (max-width: 1279px) {
  .sadr-data-table[data-desktop-mode="table"] thead th,
  .sadr-data-table[data-desktop-mode="table"] tbody td {
    padding-inline: .45rem;
    font-size: .7rem;
  }

  .sadr-data-table[data-desktop-mode="table"] td:has(.sadr-row-actions),
  .sadr-data-table[data-desktop-mode="table"] th[data-nosort]:last-child {
    width: 7.2rem;
  }

  .sadr-row-actions .sadr-action-label {
    display: none;
  }

  .sadr-data-table .sadr-row-actions .btn,
  .sadr-row-actions .btn {
    width: 2rem;
    padding-inline: 0;
    justify-content: center;
  }
}

/* Mobile cards: standard spacing and full, easy-to-tap action row. */
@media (max-width: 767px) {
  .sadr-data-table > div:first-child {
    padding: .75rem;
  }

  .sadr-data-table > div:first-child > div:last-child {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
  }

  .sadr-data-table > div:first-child > div:last-child > * {
    min-width: 0;
    max-width: 100%;
  }

  .sadr-data-table > div:first-child > div:last-child .input {
    grid-column: 1 / -1;
    width: 100%;
  }

  .sadr-data-table > div:first-child > div:last-child .sadr-primary-action {
    grid-column: 1 / -1;
    width: 100%;
  }

  .sadr-data-table[data-mobile-mode="cards"] .sadr-table-viewport {
    padding: .68rem;
  }

  .sadr-data-table[data-mobile-mode="cards"] tbody {
    gap: .68rem;
  }

  .sadr-data-table[data-mobile-mode="cards"] tbody tr {
    border-radius: 1.15rem;
    box-shadow: 0 3px 12px color-mix(in oklab, var(--color-neutral) 5%, transparent);
  }

  .sadr-data-table[data-mobile-mode="cards"] tbody td {
    grid-template-columns: minmax(5rem, 30%) minmax(0, 1fr);
    gap: .55rem;
    padding: .58rem .68rem;
    font-size: .76rem;
  }

  .sadr-data-table[data-mobile-mode="cards"] tbody td:has(.sadr-row-actions) {
    display: block;
    padding-top: .7rem;
  }

  .sadr-data-table[data-mobile-mode="cards"] tbody td:has(.sadr-row-actions)::before {
    display: none;
  }

  .sadr-data-table[data-mobile-mode="cards"] .sadr-row-actions {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .48rem;
  }

  .sadr-data-table[data-mobile-mode="cards"] .sadr-row-actions .btn {
    width: 100%;
    min-height: 2.25rem;
    justify-content: center;
    padding-inline: .45rem;
    font-size: .68rem;
  }

  .sadr-data-table[data-mobile-mode="cards"] .sadr-row-actions .sadr-action-label {
    display: inline;
  }

  .sadr-data-table > div:last-child {
    padding: .68rem .75rem;
  }
}

/* ========================================================================
   SadrHelper 6.2 — Professional admin design system
   All additions are opt-in through data attributes while defaults stay sane.
   ======================================================================== */

:root {
  --sadr-control-h: 2.65rem;
  --sadr-control-h-sm: 2.25rem;
  --sadr-control-radius: .78rem;
  --sadr-panel-radius: 1rem;
  --sadr-hairline: color-mix(in oklab, var(--color-base-content) 8%, var(--color-base-300));
  --sadr-muted: color-mix(in oklab, var(--color-base-content) 56%, transparent);
  --sadr-shadow-xs: 0 1px 2px color-mix(in oklab, var(--color-neutral) 5%, transparent);
  --sadr-shadow-sm: 0 4px 14px color-mix(in oklab, var(--color-neutral) 6%, transparent);
  --sadr-shadow-md: 0 12px 32px color-mix(in oklab, var(--color-neutral) 10%, transparent);
}

/* Buttons: flat, restrained, theme-aware and option driven. */
.btn {
  min-height: var(--sadr-control-h);
  padding-inline: 1rem;
  border-radius: var(--sadr-control-radius);
  border-color: var(--sadr-hairline);
  box-shadow: var(--sadr-shadow-xs);
  font-weight: 600;
  line-height: 1;
}
.btn svg { flex: 0 0 auto; width: 1.05rem; height: 1.05rem; }
.btn[data-sadr-density="compact"] { min-height: 2.15rem; padding-inline: .72rem; gap: .36rem; font-size: .76rem; }
.btn[data-sadr-density="comfortable"] { min-height: 3rem; padding-inline: 1.2rem; gap: .6rem; }
.btn[data-sadr-radius="sm"] { border-radius: .45rem; }
.btn[data-sadr-radius="md"] { border-radius: .7rem; }
.btn[data-sadr-radius="lg"] { border-radius: 1rem; }
.btn[data-sadr-radius="pill"] { border-radius: 999px; }
.btn[data-sadr-radius="square"] { border-radius: .72rem; aspect-ratio: 1; padding-inline: 0; }
.sadr-button-icon-only { aspect-ratio: 1; padding-inline: 0 !important; }

/* Forms */
.sadr-field .label { padding-inline: .05rem; }
.sadr-field .label-text { font-size: .78rem; font-weight: 600; color: color-mix(in oklab, var(--color-base-content) 78%, transparent); }
.sadr-field .input,
.sadr-field .select,
.sadr-field .textarea {
  border-color: var(--sadr-hairline);
  background: var(--color-base-100);
  box-shadow: none;
  transition: border-color .14s ease, background-color .14s ease, box-shadow .14s ease;
}
.sadr-field .input:focus-within,
.sadr-field .select:focus,
.sadr-field .textarea:focus {
  border-color: color-mix(in oklab, var(--color-primary) 48%, var(--color-base-300));
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary) 9%, transparent);
  outline: none;
}
.sadr-field[data-appearance="soft"] .input,
.sadr-field[data-appearance="soft"] .select,
.sadr-field[data-appearance="soft"] .textarea { background: color-mix(in oklab, var(--color-base-200) 56%, var(--color-base-100)); border-color: transparent; }
.sadr-field[data-appearance="filled"] .input,
.sadr-field[data-appearance="filled"] .select,
.sadr-field[data-appearance="filled"] .textarea { background: var(--color-base-200); border-color: color-mix(in oklab, var(--color-base-content) 5%, transparent); }
.sadr-field[data-appearance="minimal"] .input,
.sadr-field[data-appearance="minimal"] .select,
.sadr-field[data-appearance="minimal"] .textarea { border-inline: 0; border-top: 0; border-radius: 0; background: transparent; box-shadow: none; }
.sadr-field[data-radius="sm"] .input,.sadr-field[data-radius="sm"] .select,.sadr-field[data-radius="sm"] .textarea { border-radius: .45rem; }
.sadr-field[data-radius="md"] .input,.sadr-field[data-radius="md"] .select,.sadr-field[data-radius="md"] .textarea { border-radius: .7rem; }
.sadr-field[data-radius="lg"] .input,.sadr-field[data-radius="lg"] .select,.sadr-field[data-radius="lg"] .textarea { border-radius: 1rem; }
.sadr-field[data-radius="pill"] .input,.sadr-field[data-radius="pill"] .select { border-radius: 999px; }
.sadr-field[data-density="compact"] .select,.sadr-field[data-density="compact"] .textarea { min-height: 2.2rem; font-size: .78rem; }
.sadr-field[data-density="comfortable"] .select { min-height: 3rem; }
.sadr-field[data-density="comfortable"] .textarea { padding-block: .85rem; }

/* Cards */
.sadr-card {
  border-color: var(--sadr-hairline) !important;
  border-radius: var(--sadr-panel-radius);
  box-shadow: var(--sadr-shadow-xs);
  overflow: clip;
}
.sadr-card::before { display: none; }
.sadr-card:hover { transform: none; box-shadow: var(--sadr-shadow-sm); }
.sadr-card[data-appearance="flat"] { box-shadow: none; }
.sadr-card[data-appearance="soft"] { background: color-mix(in oklab, var(--color-base-200) 44%, var(--color-base-100)); box-shadow: none; }
.sadr-card[data-appearance="glass"] { background: color-mix(in oklab, var(--color-base-100) 82%, transparent); backdrop-filter: blur(16px); }
.sadr-card[data-interactive="true"] { cursor: pointer; transition: border-color .14s ease, background-color .14s ease, box-shadow .14s ease; }
.sadr-card[data-interactive="true"]:hover { border-color: color-mix(in oklab, var(--color-primary) 25%, var(--color-base-300)) !important; background: color-mix(in oklab, var(--color-primary) 2.6%, var(--color-base-100)); }
.sadr-card[data-density="compact"] .card-title { font-size: .95rem; }
.sadr-card[data-density="comfortable"] .card-title { font-size: 1.08rem; }

/* Alerts */
.sadr-alert { border: 1px solid color-mix(in oklab, currentColor 15%, var(--color-base-300)); border-radius: .9rem; box-shadow: none; }
.sadr-alert[data-compact="true"] { padding: .7rem .8rem; gap: .6rem; }
.sadr-alert[data-appearance="soft"] { background: color-mix(in oklab, currentColor 7%, var(--color-base-100)); }
.sadr-alert[data-appearance="outline"] { background: var(--color-base-100); }
.sadr-alert[data-appearance="minimal"] { background: transparent; border-inline: 0; border-radius: 0; box-shadow: none; }

/* Navigation + menu */
.sadr-nav { min-width: 0; }
.sadr-nav > div { gap: .25rem; }
.sadr-nav[data-appearance="soft"] > div { background: color-mix(in oklab, var(--color-base-200) 60%, var(--color-base-100)); padding: .28rem; border-radius: .82rem; }
.sadr-nav[data-appearance="bordered"] > div { border: 1px solid var(--sadr-hairline); padding: .25rem; border-radius: .82rem; background: var(--color-base-100); }
.sadr-nav[data-appearance="minimal"] > div { background: transparent; border: 0; }
.sadr-nav-item { min-height: 2.2rem; border-radius: .66rem; font-size: .8rem; font-weight: 560; }
.sadr-nav-item[data-density="compact"] { min-height: 1.95rem; padding-block: .3rem; font-size: .74rem; }
.sadr-nav-item[data-density="comfortable"] { min-height: 2.65rem; padding-inline: 1rem; }
.sadr-nav[data-style="vertical"] > .menu { border: 1px solid var(--sadr-hairline); background: var(--color-base-100); box-shadow: var(--sadr-shadow-xs); }
.sadr-nav[data-style="vertical"] .sadr-nav-item.active { background: color-mix(in oklab, var(--color-primary) 10%, var(--color-base-100)); color: var(--color-primary); font-weight: 650; }
.dropdown-content,
.sadr-menu-dropdown .dropdown-content,
.menu.dropdown-content {
  border: 1px solid var(--sadr-hairline) !important;
  border-radius: .9rem !important;
  background: var(--color-base-100) !important;
  box-shadow: var(--sadr-shadow-md) !important;
  padding: .4rem !important;
}
.menu.dropdown-content li > a,
.menu.dropdown-content li > button { min-height: 2.2rem; border-radius: .58rem; padding-inline: .72rem; font-size: .78rem; gap: .55rem; }
.menu.dropdown-content li > a:hover,
.menu.dropdown-content li > button:hover { background: color-mix(in oklab, var(--color-primary) 6%, var(--color-base-100)); }

/* Accordions */
.sadr-accordion .sadr-accordion-item { border-color: var(--sadr-hairline) !important; border-radius: .82rem; box-shadow: none; }
.sadr-accordion[data-density="compact"] .collapse-title { min-height: 2.8rem; padding-block: .7rem; font-size: .82rem; }
.sadr-accordion[data-density="compact"] .collapse-content { font-size: .76rem; }
.sadr-accordion[data-density="comfortable"] .collapse-title { min-height: 4rem; padding-block: 1rem; }
.sadr-accordion[data-appearance="soft"] .sadr-accordion-item { background: color-mix(in oklab, var(--color-base-200) 46%, var(--color-base-100)); }
.sadr-accordion[data-appearance="minimal"] .sadr-accordion-item { border-inline: 0 !important; border-radius: 0; background: transparent; }

/* Modal */
.sadr-modal .modal-box { border: 1px solid var(--sadr-hairline); border-radius: 1rem; box-shadow: 0 24px 72px color-mix(in oklab, var(--color-neutral) 22%, transparent); background: var(--color-base-100); }
.sadr-modal .sadr-modal-header { padding-block: 1rem; }
.sadr-modal .sadr-modal-body { font-size: .84rem; }
.sadr-modal .sadr-modal-footer { background: color-mix(in oklab, var(--color-base-200) 32%, var(--color-base-100)); }
.sadr-modal[data-appearance="minimal"] .sadr-modal-header { border-bottom-color: transparent; padding-bottom: .45rem; }
.sadr-modal[data-appearance="minimal"] .sadr-modal-footer { background: transparent; }
.sadr-modal[data-appearance="soft"] .sadr-modal-header { background: color-mix(in oklab, var(--color-base-200) 38%, var(--color-base-100)); }
.sadr-modal[data-appearance="glass"] .modal-box { background: color-mix(in oklab, var(--color-base-100) 88%, transparent); backdrop-filter: blur(18px); }

/* Table shell and option system */
.sadr-data-table {
  border-radius: 1rem !important;
  box-shadow: var(--sadr-shadow-xs);
  background: var(--color-base-100);
}
.sadr-data-table .sadr-table-toolbar { padding: .72rem .85rem; gap: .55rem; }
.sadr-data-table[data-toolbar-compact="true"] .sadr-table-toolbar { padding-block: .58rem; }
.sadr-data-table .sadr-table-toolbar h3 { font-size: .88rem; font-weight: 700; }
.sadr-data-table .sadr-table-summary { margin-top: .18rem; font-size: .68rem; }
.sadr-data-table .sadr-table-footer { padding: .58rem .85rem; }
.sadr-data-table .input,
.sadr-data-table .select { min-height: 2.12rem; height: 2.12rem; font-size: .73rem; border-radius: .65rem; }
.sadr-data-table .sadr-table-toolbar .btn { min-height: 2.12rem; height: 2.12rem; padding-inline: .72rem; font-size: .72rem; border-radius: .65rem; }
.sadr-data-table table { font-variant-numeric: tabular-nums; }
.sadr-data-table thead th { font-size: .69rem; letter-spacing: -.01em; color: color-mix(in oklab, var(--color-base-content) 62%, transparent); }
.sadr-data-table tbody td { font-size: .75rem; color: color-mix(in oklab, var(--color-base-content) 90%, transparent); }
.sadr-data-table[data-density="compact"] thead th { padding: .46rem .48rem; font-size: .66rem; }
.sadr-data-table[data-density="compact"] tbody td { padding: .46rem .48rem; font-size: .71rem; line-height: 1.42; }
.sadr-data-table[data-density="comfortable"] thead th { padding: .78rem .75rem; }
.sadr-data-table[data-density="comfortable"] tbody td { padding: .82rem .75rem; font-size: .8rem; }
.sadr-data-table[data-header-style="plain"] thead th { background: var(--color-base-100); }
.sadr-data-table[data-header-style="primary"] thead th { background: color-mix(in oklab, var(--color-primary) 9%, var(--color-base-100)); color: color-mix(in oklab, var(--color-primary) 76%, var(--color-base-content)); border-bottom-color: color-mix(in oklab, var(--color-primary) 17%, var(--color-base-300)); }
.sadr-data-table[data-striped="true"] tbody tr:nth-child(even) { background: color-mix(in oklab, var(--color-base-200) 28%, var(--color-base-100)); }
.sadr-data-table[data-row-hover="false"] tbody tr:hover { background: inherit; }
.sadr-data-table[data-cell-style="stacked"] tbody td { vertical-align: top; }

/* Rich two-line table cell */
.sadr-table-cell { display: flex; min-width: 0; align-items: center; gap: .52rem; }
.sadr-table-cell[data-align="center"] { justify-content: center; text-align: center; }
.sadr-table-cell[data-align="end"] { justify-content: flex-end; text-align: end; }
.sadr-table-cell-icon { display: grid; place-items: center; flex: 0 0 auto; width: 1.75rem; height: 1.75rem; border-radius: .55rem; background: color-mix(in oklab, var(--color-primary) 8%, var(--color-base-100)); color: var(--color-primary); }
.sadr-table-cell-icon svg { width: .9rem; height: .9rem; }
.sadr-table-cell-copy { display: flex; min-width: 0; flex: 1 1 auto; flex-direction: column; gap: .12rem; }
.sadr-table-cell-title { min-width: 0; font-weight: 600; line-height: 1.45; }
.sadr-table-cell-subtitle { min-width: 0; font-size: .65rem; line-height: 1.4; color: var(--sadr-muted); }
.sadr-table-cell[data-truncate="true"] .sadr-table-cell-title,
.sadr-table-cell[data-truncate="true"] .sadr-table-cell-subtitle { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Row actions can inherit action-mode from the table or override locally. */
.sadr-row-actions { gap: .3rem; }
.sadr-row-actions[data-action-wrap="false"] { flex-wrap: nowrap; }
.sadr-row-actions[data-action-appearance="ghost"] .sadr-table-action { background: transparent; border-color: transparent; }
.sadr-row-actions[data-action-appearance="outline"] .sadr-table-action { background: var(--color-base-100); }
.sadr-table-action { min-height: 1.9rem !important; height: 1.9rem; padding-inline: .5rem !important; border-radius: .58rem !important; font-size: .67rem !important; font-weight: 600; }
.sadr-table-action svg { width: .85rem !important; height: .85rem !important; }
.sadr-row-actions[data-action-size="xsmall"] .sadr-table-action { min-height: 1.68rem !important; height: 1.68rem; padding-inline: .38rem !important; font-size: .62rem !important; }
.sadr-row-actions[data-action-size="medium"] .sadr-table-action { min-height: 2.2rem !important; height: 2.2rem; padding-inline: .65rem !important; }
.sadr-row-actions[data-action-mode="icon"] .sadr-action-label,
.sadr-data-table[data-action-mode="icon"] .sadr-row-actions .sadr-action-label { display: none !important; }
.sadr-row-actions[data-action-mode="icon"] .sadr-table-action,
.sadr-data-table[data-action-mode="icon"] .sadr-row-actions .sadr-table-action { width: 1.9rem; padding-inline: 0 !important; justify-content: center; }
.sadr-row-actions[data-action-mode="icontext"] .sadr-action-label,
.sadr-data-table[data-action-mode="icontext"] .sadr-row-actions .sadr-action-label { display: inline !important; }
.sadr-row-actions[data-action-mode="auto"] .sadr-action-label,
.sadr-data-table[data-action-mode="auto"] .sadr-row-actions .sadr-action-label { display: inline; }

/* Fit desktop is opt-in (default true). Turn it off to deliberately scroll. */
@media (min-width: 768px) {
  .sadr-data-table[data-fit-desktop="true"][data-desktop-mode="table"] .sadr-table-viewport { overflow-x: clip !important; }
  .sadr-data-table[data-fit-desktop="true"][data-desktop-mode="table"] table { min-width: 0 !important; table-layout: fixed; }
  .sadr-data-table[data-fit-desktop="false"][data-desktop-mode="table"] .sadr-table-viewport { overflow-x: auto !important; }
  .sadr-data-table[data-fit-desktop="false"][data-desktop-mode="table"] table { min-width: 58rem !important; table-layout: auto; }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .sadr-data-table[data-action-mode="auto"] .sadr-row-actions .sadr-action-label { display: none; }
  .sadr-data-table[data-action-mode="auto"] .sadr-row-actions .sadr-table-action { width: 1.9rem; padding-inline: 0 !important; justify-content: center; }
}

/* Mobile: larger tap targets, no crowded controls. */
@media (max-width: 767px) {
  .btn { min-height: 2.65rem; }
  .btn.btn-xs, .btn.btn-sm { min-height: 2.3rem; }
  .sadr-data-table .sadr-table-toolbar { padding: .65rem; }
  .sadr-data-table .sadr-table-toolbar > div:last-child { gap: .45rem; }
  .sadr-data-table[data-mobile-mode="cards"] tbody tr { border-radius: .9rem; box-shadow: var(--sadr-shadow-xs); }
  .sadr-data-table[data-mobile-mode="cards"] tbody td { padding: .58rem .62rem; font-size: .74rem; }
  .sadr-data-table[data-mobile-mode="cards"] .sadr-row-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sadr-data-table[data-mobile-mode="cards"] .sadr-row-actions .sadr-table-action { min-height: 2.35rem !important; height: auto; width: 100%; }
  .sadr-data-table[data-mobile-mode="cards"][data-action-mode="icon"] .sadr-row-actions { display: flex; justify-content: flex-start; }
  .sadr-data-table[data-mobile-mode="cards"][data-action-mode="icon"] .sadr-row-actions .sadr-table-action { width: 2.35rem; }
  .sadr-modal[data-mobile-mode="sheet"] { align-items: end; }
  .sadr-modal[data-mobile-mode="sheet"] .modal-box { width: 100%; max-width: none; margin: 0; border-end-start-radius: 0; border-end-end-radius: 0; border-start-start-radius: 1.15rem; border-start-end-radius: 1.15rem; }
  .sadr-modal .sadr-modal-footer .btn { flex: 1 1 0; }
}

/* Dynamic modal configurator hooks */
.sadr-modal[data-footer-align="start"] .sadr-modal-footer { justify-content: flex-start !important; }
.sadr-modal[data-footer-align="center"] .sadr-modal-footer { justify-content: center !important; }
.sadr-modal[data-footer-align="between"] .sadr-modal-footer { justify-content: space-between !important; }
.sadr-modal[data-footer-align="end"] .sadr-modal-footer { justify-content: flex-end !important; }
.sadr-modal[data-show-icon="false"] .sadr-modal-icon { display: none !important; }
.sadr-modal[data-size="sm"] .modal-box { max-width: 28rem !important; }
.sadr-modal[data-size="md"] .modal-box { max-width: 36rem !important; }
.sadr-modal[data-size="lg"] .modal-box { max-width: 48rem !important; }
.sadr-modal[data-size="xl"] .modal-box { max-width: 64rem !important; }

/* ========================================================================
   SadrHelper 7.0 — refined enterprise UI system
   Additive visual layer; existing markup/API remains compatible.
   ======================================================================== */
:root {
  --sadr-v7-radius-xs: .42rem;
  --sadr-v7-radius-sm: .62rem;
  --sadr-v7-radius-md: .78rem;
  --sadr-v7-radius-lg: 1rem;
  --sadr-v7-line: color-mix(in oklab, var(--color-base-content) 8%, var(--color-base-300));
  --sadr-v7-line-strong: color-mix(in oklab, var(--color-base-content) 13%, var(--color-base-300));
  --sadr-v7-surface-soft: color-mix(in oklab, var(--color-base-200) 38%, var(--color-base-100));
  --sadr-v7-shadow-float: 0 16px 44px color-mix(in oklab, var(--color-neutral) 12%, transparent);
}

/* Buttons — professional, flat, restrained and roomy enough for touch. */
.btn {
  min-height: 2.45rem;
  padding-inline: .92rem;
  gap: .45rem;
  border-radius: var(--sadr-v7-radius-md);
  border-width: 1px;
  border-color: var(--sadr-v7-line-strong);
  box-shadow: 0 1px 2px color-mix(in oklab, var(--color-neutral) 4%, transparent);
  font-weight: 600;
  letter-spacing: -.012em;
}
.btn:hover:not(:disabled):not([disabled]) {
  transform: none;
  border-color: color-mix(in oklab, var(--color-primary) 28%, var(--sadr-v7-line-strong));
  box-shadow: 0 3px 10px color-mix(in oklab, var(--color-neutral) 7%, transparent);
}
.btn:active:not(:disabled):not([disabled]) { transform: none; box-shadow: none; }
.btn-sm { min-height: 2.2rem; height: 2.2rem; padding-inline: .72rem; font-size: .74rem; }
.btn-xs { min-height: 1.9rem; height: 1.9rem; padding-inline: .55rem; font-size: .68rem; }
.btn-lg { min-height: 2.95rem; padding-inline: 1.18rem; }
.btn.btn-square { padding-inline: 0; }

/* Common surfaces */
.sadr-card,
.sadr-stat-card,
.sadr-empty-state,
.sadr-data-table,
.sadr-form-shell,
.sadr-auth-card {
  border-color: var(--sadr-v7-line) !important;
}
.sadr-card,
.sadr-stat-card,
.sadr-empty-state { border-radius: var(--sadr-v7-radius-lg); }

/* Header / footer */
.sadr-header { border-bottom-color: var(--sadr-v7-line); box-shadow: 0 1px 0 color-mix(in oklab, var(--color-neutral) 2%, transparent); }
.sadr-header[data-density="compact"] .navbar { min-height: 3.35rem; }
.sadr-header[data-density="compact"] .sadr-brand-gradient { width: 2rem; height: 2rem; border-radius: .58rem; }
.sadr-header[data-density="comfortable"] .navbar { min-height: 4.65rem; }
.sadr-header[data-appearance="soft"] { background: color-mix(in oklab, var(--color-base-200) 34%, var(--color-base-100)); }
.sadr-header[data-appearance="glass"] { background: color-mix(in oklab, var(--color-base-100) 82%, transparent); backdrop-filter: blur(18px); }
.sadr-header[data-appearance="minimal"] { border-bottom-color: transparent; background: var(--color-base-100); }
.sadr-footer[data-density="compact"] > div { padding-block: .8rem; }
.sadr-footer[data-density="comfortable"] > div { padding-block: 2rem; }
.sadr-footer[data-appearance="soft"] { background: var(--sadr-v7-surface-soft); }
.sadr-footer[data-appearance="minimal"] { border-top-color: transparent; }

/* Form controls — light borders and unobtrusive focus. */
.sadr-field .input,
.sadr-field .select,
.sadr-field .textarea,
.input.input-bordered,
.select.select-bordered,
.textarea.textarea-bordered {
  border-color: var(--sadr-v7-line-strong);
  box-shadow: none;
}
.sadr-field .input:hover,
.sadr-field .select:hover,
.sadr-field .textarea:hover { border-color: color-mix(in oklab, var(--color-primary) 22%, var(--sadr-v7-line-strong)); }

/* Menus / dropdowns — compact enterprise floating panels. */
.dropdown-content,
.sadr-menu-popover,
.sadr-popover-panel {
  border-color: var(--sadr-v7-line) !important;
  border-radius: .82rem !important;
  box-shadow: var(--sadr-v7-shadow-float) !important;
}
.menu.dropdown-content li > a,
.menu.dropdown-content li > button,
.sadr-menu-popover li > a,
.sadr-menu-popover li > button {
  min-height: 2.12rem;
  border-radius: .56rem;
  padding: .48rem .62rem;
  font-size: .76rem;
}
.sadr-menu-popover li > a:hover,
.sadr-menu-popover li > button:hover { background: color-mix(in oklab, var(--color-primary) 5%, var(--color-base-100)); }
.sadr-popover[data-density="compact"] .sadr-popover-panel { padding: .7rem; font-size: .75rem; }
.sadr-popover[data-density="comfortable"] .sadr-popover-panel { padding: 1.25rem; }
.sadr-popover[data-appearance="soft"] .sadr-popover-panel { background: color-mix(in oklab, var(--color-base-200) 38%, var(--color-base-100)); }
.sadr-popover[data-appearance="minimal"] .sadr-popover-panel { box-shadow: none !important; }
.sadr-popover[data-appearance="glass"] .sadr-popover-panel { background: color-mix(in oklab, var(--color-base-100) 86%, transparent); backdrop-filter: blur(16px); }

/* Breadcrumb */
.sadr-breadcrumbs[data-density="compact"] { font-size: .7rem; }
.sadr-breadcrumbs[data-density="comfortable"] { font-size: .86rem; }
.sadr-breadcrumbs[data-appearance="soft"] { display: inline-flex; border-radius: .72rem; background: var(--sadr-v7-surface-soft); padding: .35rem .58rem; }
.sadr-breadcrumbs[data-appearance="bordered"] { display: inline-flex; border: 1px solid var(--sadr-v7-line); border-radius: .72rem; padding: .35rem .58rem; }

/* Ads */
.sadr-ad[data-density="compact"] { padding: .62rem .72rem !important; font-size: .76rem; }
.sadr-ad[data-density="comfortable"] { padding: 1.1rem 1.2rem !important; }
.sadr-ad[data-appearance="outline"] { background: var(--color-base-100) !important; }
.sadr-ad[data-appearance="minimal"] { border-inline: 0 !important; border-radius: 0 !important; background: transparent !important; }
.sadr-ad[data-appearance="solid"] { background: color-mix(in oklab, currentColor 11%, var(--color-base-100)); }

/* Cards / stats */
.sadr-card { box-shadow: 0 1px 3px color-mix(in oklab, var(--color-neutral) 4%, transparent); }
.sadr-card[data-interactive="true"]:hover { box-shadow: 0 8px 24px color-mix(in oklab, var(--color-neutral) 7%, transparent); transform: none; }
.sadr-stat-card { border: 1px solid var(--sadr-v7-line); padding: 1rem; box-shadow: none; }
.sadr-stat-card[data-density="compact"] { padding: .75rem; }
.sadr-stat-card[data-density="comfortable"] { padding: 1.3rem; }
.sadr-stat-card[data-appearance="flat"] { border-color: transparent; box-shadow: none; }
.sadr-stat-card[data-appearance="soft"] { background: var(--sadr-v7-surface-soft); }
.sadr-stat-card[data-appearance="outline"] { background: transparent; }

/* Empty state */
.sadr-empty-state { padding: 2rem; border: 1px dashed var(--sadr-v7-line-strong); }
.sadr-empty-state[data-density="compact"] { padding: 1.25rem; }
.sadr-empty-state[data-density="comfortable"] { padding: 3rem; }
.sadr-empty-state[data-appearance="soft"] { border-style: solid; background: var(--sadr-v7-surface-soft); }
.sadr-empty-state[data-appearance="plain"] { border-color: transparent; background: transparent; }
.sadr-empty-state[data-appearance="bordered"] { border-style: solid; }

/* Chips */
.sadr-chip { min-height: 1.8rem; padding-inline: .65rem; border-radius: 999px; font-weight: 570; }
.sadr-chip[data-size="small"] { min-height: 1.55rem; padding-inline: .5rem; font-size: .65rem; }
.sadr-chip[data-size="large"] { min-height: 2.05rem; padding-inline: .8rem; }

/* Progress */
.sadr-progress progress { height: .48rem; }
.sadr-progress[data-size="small"] progress { height: .3rem; }
.sadr-progress[data-size="large"] progress { height: .7rem; }
.sadr-progress[data-appearance="thin"] progress { height: .22rem; }
.sadr-progress[data-appearance="soft"] progress { opacity: .82; }
.sadr-progress[data-size="small"] .sadr-progress-label { margin-bottom: .28rem; font-size: .72rem; }

/* Stepper / timeline */
.sadr-stepper[data-density="compact"] { gap: .45rem; }
.sadr-stepper[data-density="compact"] .sadr-stepper-marker { width: 1.75rem; height: 1.75rem; }
.sadr-stepper[data-density="comfortable"] .sadr-stepper-marker { width: 2.5rem; height: 2.5rem; }
.sadr-stepper[data-appearance="soft"] .sadr-stepper-item { background: var(--sadr-v7-surface-soft); border-radius: .72rem; padding: .5rem; }
.sadr-stepper[data-appearance="minimal"] .sadr-stepper-label { font-weight: 500; }
.sadr-timeline[data-density="compact"] .sadr-timeline-item { padding-block: .42rem; }
.sadr-timeline[data-density="comfortable"] .sadr-timeline-item { padding-block: 1rem; }
.sadr-timeline[data-appearance="soft"] .sadr-timeline-content { border: 1px solid var(--sadr-v7-line); border-radius: .72rem; background: var(--sadr-v7-surface-soft); padding: .72rem; }
.sadr-timeline[data-appearance="minimal"] .sadr-timeline-content { padding-inline: 0; }

/* Pagination */
.sadr-pagination { gap: .28rem; }
.sadr-pagination[data-compact="true"] { gap: .12rem; }
.sadr-pagination[data-compact="true"] .btn { border-radius: .5rem; }
.sadr-pagination[data-appearance="minimal"] .btn:not(.btn-primary) { border-color: transparent; background: transparent; box-shadow: none; }
.sadr-pagination[data-appearance="outline"] .btn:not(.btn-primary) { background: var(--color-base-100); }
.sadr-pagination[data-appearance="soft"] .btn:not(.btn-primary) { background: var(--sadr-v7-surface-soft); }

/* Modal — clean title bar, restrained footer and standard mobile sheet. */
.sadr-modal .modal-box { border-radius: 1rem !important; border-color: var(--sadr-v7-line) !important; box-shadow: 0 24px 70px color-mix(in oklab, var(--color-neutral) 20%, transparent) !important; }
.sadr-modal .sadr-modal-header { padding: .9rem 1rem; }
.sadr-modal .sadr-modal-body { padding: 1rem; }
.sadr-modal .sadr-modal-footer { padding: .7rem 1rem; gap: .45rem; }
.sadr-modal .sadr-modal-icon { width: 2.2rem; height: 2.2rem; border-radius: .65rem; }

/* DataTable — v7 reference appearance. Tight toolbar, rich cells and desktop fit. */
.sadr-data-table {
  border-radius: .9rem !important;
  border-color: var(--sadr-v7-line) !important;
  box-shadow: 0 1px 3px color-mix(in oklab, var(--color-neutral) 4%, transparent) !important;
}
.sadr-data-table .sadr-table-toolbar {
  padding: .58rem .68rem;
  gap: .45rem;
  min-height: 3.2rem;
}
.sadr-data-table[data-toolbar-compact="true"] .sadr-table-toolbar { padding-block: .45rem; }
.sadr-data-table .sadr-table-toolbar h3 { font-size: .82rem; font-weight: 700; }
.sadr-data-table .sadr-table-summary { font-size: .63rem; }
.sadr-data-table .sadr-table-toolbar .input,
.sadr-data-table .sadr-table-toolbar .select,
.sadr-data-table .sadr-table-toolbar .btn { min-height: 2rem; height: 2rem; border-radius: .58rem; font-size: .69rem; }
.sadr-data-table thead th { padding: .5rem .52rem; font-size: .66rem; font-weight: 680; background: color-mix(in oklab, var(--color-base-200) 42%, var(--color-base-100)); }
.sadr-data-table tbody td { padding: .5rem .52rem; font-size: .72rem; line-height: 1.45; }
.sadr-data-table[data-density="compact"] thead th,
.sadr-data-table[data-density="compact"] tbody td { padding: .4rem .42rem; }
.sadr-data-table[data-density="comfortable"] thead th,
.sadr-data-table[data-density="comfortable"] tbody td { padding: .72rem .68rem; }
.sadr-data-table .sadr-table-footer { padding: .5rem .68rem; }
.sadr-data-table .sadr-table-footer .btn { min-height: 1.9rem; height: 1.9rem; }
.sadr-table-cell { gap: .46rem; }
.sadr-table-cell-icon { width: 1.65rem; height: 1.65rem; border-radius: .48rem; }
.sadr-table-cell-title { font-size: .72rem; font-weight: 620; }
.sadr-table-cell-subtitle { font-size: .61rem; }
.sadr-row-actions { gap: .26rem; }
.sadr-table-action { min-height: 1.82rem !important; height: 1.82rem; border-radius: .52rem !important; padding-inline: .46rem !important; font-size: .64rem !important; }
.sadr-table-action svg { width: .8rem !important; height: .8rem !important; }

@media (min-width: 768px) {
  .sadr-data-table[data-fit-desktop="true"][data-desktop-mode="table"] .sadr-table-viewport { overflow-x: clip !important; }
  .sadr-data-table[data-fit-desktop="true"][data-desktop-mode="table"] table { table-layout: fixed; width: 100%; min-width: 0 !important; }
  .sadr-data-table[data-fit-desktop="true"] th,
  .sadr-data-table[data-fit-desktop="true"] td { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
}

@media (max-width: 767px) {
  .btn { min-height: 2.55rem; }
  .btn-sm { min-height: 2.25rem; height: 2.25rem; }
  .sadr-data-table { border-radius: .82rem !important; }
  .sadr-data-table .sadr-table-toolbar { padding: .58rem; }
  .sadr-data-table[data-mobile-mode="cards"] .sadr-table-viewport { padding: .55rem; }
  .sadr-data-table[data-mobile-mode="cards"] tbody tr { border-radius: .8rem; }
  .sadr-data-table[data-mobile-mode="cards"] tbody td { padding: .55rem .6rem; }
  .sadr-data-table[data-mobile-mode="cards"] .sadr-row-actions .sadr-table-action { min-height: 2.3rem !important; height: 2.3rem; }
  .sadr-header .navbar { min-height: 3.5rem; padding-inline: .65rem; }
  .sadr-modal .sadr-modal-footer .btn { min-width: 0; }
}

/* ============================================================
   SadrHelper 8 — additive enterprise catalog
   All selectors are component-scoped, theme-token based and responsive.
   ============================================================ */
:root {
  --sadr-v8-line: color-mix(in oklab, var(--color-base-content) 10%, transparent);
  --sadr-v8-soft: color-mix(in oklab, var(--color-base-200) 60%, var(--color-base-100));
  --sadr-v8-muted: color-mix(in oklab, var(--color-base-content) 54%, transparent);
  --sadr-v8-shadow: 0 10px 32px color-mix(in oklab, var(--color-neutral) 9%, transparent);
  --sadr-v8-radius: .9rem;
}

.sadr-enterprise-surface {
  border: 1px solid var(--sadr-v8-line);
  border-radius: var(--sadr-v8-radius);
  background: var(--color-base-100);
  color: var(--color-base-content);
  box-shadow: 0 1px 2px color-mix(in oklab, var(--color-neutral) 4%, transparent);
  min-width: 0;
}
.sadr-enterprise-toolbar { display:flex; align-items:center; gap:.5rem; padding:.65rem .75rem; border-bottom:1px solid var(--sadr-v8-line); min-width:0; flex-wrap:wrap; }
.sadr-enterprise-title { font-size:.84rem; font-weight:750; color:var(--color-base-content); }
.sadr-enterprise-subtitle { margin-top:.15rem; font-size:.67rem; color:var(--sadr-v8-muted); }
.sadr-enterprise-search { min-width:min(18rem,100%); }

/* V8 advanced DataTable options */
.sadr-data-table[data-sticky-header="true"] thead { position:sticky; top:0; z-index:12; }
.sadr-data-table[data-sticky-header="true"] thead th { backdrop-filter:blur(10px); }
.sadr-data-table[data-reorderable="true"] thead th:not([data-nosort]) { cursor:grab; }
.sadr-data-table[data-reorderable="true"] thead th.is-dragging { opacity:.45; }
.sadr-data-table[data-resizable="true"] thead th { position:relative; }
.sadr-column-resizer { position:absolute; inset-block:18%; inset-inline-end:-2px; width:5px; cursor:col-resize; border-radius:999px; background:transparent; }
.sadr-data-table[data-resizable="true"] th:hover > .sadr-column-resizer { background:color-mix(in oklab,var(--color-primary) 35%,transparent); }
.sadr-data-table[data-inline-edit="true"] tbody td:not([data-noedit]):focus,
.sadr-data-table[data-batch-edit="true"] tbody td:not([data-noedit]) { outline:none; }
.sadr-data-table tbody td.is-editing { background:color-mix(in oklab,var(--color-primary) 7%,var(--color-base-100)); box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--color-primary) 35%,transparent); }
.sadr-table-group-row td { background:var(--sadr-v8-soft)!important; color:var(--sadr-v8-muted); font-size:.67rem!important; font-weight:700; padding:.38rem .55rem!important; }
.sadr-data-table[data-page-mode="infinite"] .sadr-table-footer,
.sadr-data-table[data-page-mode="virtual"] .sadr-table-footer { display:none; }
.sadr-data-table[data-aggregate-footer="true"] tfoot { display:table-footer-group; background:var(--sadr-v8-soft); font-weight:700; }

/* TreeGrid */
.sadr-tree-grid { overflow:hidden; }
.sadr-tree-grid-viewport { overflow:auto; max-width:100%; }
.sadr-tree-grid table { width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.sadr-tree-grid th { padding:.55rem .6rem; font-size:.68rem; color:var(--sadr-v8-muted); background:var(--sadr-v8-soft); border-bottom:1px solid var(--sadr-v8-line); }
.sadr-tree-grid td { padding:.55rem .6rem; font-size:.72rem; border-bottom:1px solid var(--sadr-v8-line); overflow:hidden; text-overflow:ellipsis; }
.sadr-tree-grid tr:last-child td { border-bottom:0; }
.sadr-tree-grid [data-tree-level] { padding-inline-start:calc(.65rem + (var(--tree-level,0) * 1.1rem)); }
.sadr-tree-grid [data-tree-toggle] { width:1.6rem; height:1.6rem; border-radius:.45rem; display:inline-grid; place-items:center; color:var(--sadr-v8-muted); }
.sadr-tree-grid [data-tree-toggle]:hover { background:var(--sadr-v8-soft); color:var(--color-primary); }
.sadr-tree-grid[data-density="compact"] th,.sadr-tree-grid[data-density="compact"] td { padding:.4rem .45rem; }

/* File manager */
.sadr-file-manager { overflow:hidden; }
.sadr-file-manager-body { display:grid; grid-template-columns:13rem minmax(0,1fr); min-height:25rem; }
.sadr-file-tree { border-inline-end:1px solid var(--sadr-v8-line); padding:.65rem; background:color-mix(in oklab,var(--color-base-200) 30%,var(--color-base-100)); }
.sadr-file-tree > strong { display:block; padding:.35rem .45rem .65rem; font-size:.72rem; color:var(--sadr-v8-muted); }
.sadr-file-tree button { width:100%; display:flex; align-items:center; gap:.45rem; min-height:2.25rem; padding:.45rem .55rem; border-radius:.65rem; font-size:.72rem; text-align:start; }
.sadr-file-tree button:hover,.sadr-file-tree button.is-active { background:color-mix(in oklab,var(--color-primary) 9%,var(--color-base-100)); color:var(--color-primary); }
.sadr-file-items { padding:.75rem; display:grid; grid-template-columns:repeat(auto-fill,minmax(9rem,1fr)); gap:.55rem; align-content:start; min-width:0; }
.sadr-file-manager[data-view="list"] .sadr-file-items { display:flex; flex-direction:column; }
.sadr-file-item { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.55rem; padding:.62rem; border:1px solid var(--sadr-v8-line); border-radius:.72rem; background:var(--color-base-100); min-width:0; transition:border-color .15s,background .15s; }
.sadr-file-item:hover,.sadr-file-item.is-selected { border-color:color-mix(in oklab,var(--color-primary) 35%,var(--sadr-v8-line)); background:color-mix(in oklab,var(--color-primary) 5%,var(--color-base-100)); }
.sadr-file-item-icon { width:2.15rem; height:2.15rem; border-radius:.62rem; display:grid; place-items:center; color:var(--color-primary); background:color-mix(in oklab,var(--color-primary) 10%,transparent); }
.sadr-file-item-main { min-width:0; }
.sadr-file-item-main strong,.sadr-file-item-main small { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sadr-file-item-main strong { font-size:.72rem; }
.sadr-file-item-main small { margin-top:.12rem; font-size:.61rem; color:var(--sadr-v8-muted); }
.sadr-file-preview { border-top:1px solid var(--sadr-v8-line); padding:.75rem; }

/* Rich editor */
.sadr-rich-editor { display:grid; gap:.35rem; min-width:0; }
.sadr-field-label { font-size:.72rem; font-weight:650; }
.sadr-rich-toolbar { display:flex; gap:.2rem; flex-wrap:wrap; padding:.35rem; border:1px solid var(--sadr-v8-line); border-bottom:0; border-radius:.72rem .72rem 0 0; background:var(--sadr-v8-soft); }
.sadr-rich-toolbar button { min-height:1.85rem; padding:.25rem .5rem; border-radius:.48rem; font-size:.65rem; }
.sadr-rich-toolbar button:hover { background:var(--color-base-100); color:var(--color-primary); }
.sadr-rich-toolbar > span { width:1px; margin:.2rem; background:var(--sadr-v8-line); }
.sadr-rich-content { border:1px solid var(--sadr-v8-line); border-radius:0 0 .72rem .72rem; padding:.75rem; outline:none; background:var(--color-base-100); font-size:.76rem; line-height:1.9; overflow:auto; }
.sadr-rich-content:focus { border-color:color-mix(in oklab,var(--color-primary) 45%,var(--sadr-v8-line)); box-shadow:0 0 0 3px color-mix(in oklab,var(--color-primary) 8%,transparent); }
.sadr-rich-content:empty::before { content:attr(data-placeholder); color:color-mix(in oklab,var(--color-base-content) 35%,transparent); pointer-events:none; }
.sadr-rich-editor[data-toolbar="compact"] .sadr-rich-toolbar button:nth-of-type(n+7) { display:none; }

/* Spreadsheet */
.sadr-spreadsheet { overflow:hidden; }
.sadr-sheet-formula { display:grid; grid-template-columns:4rem minmax(0,1fr); gap:.4rem; align-items:center; padding:.4rem .6rem; border-bottom:1px solid var(--sadr-v8-line); background:var(--sadr-v8-soft); }
.sadr-sheet-formula > span { font:600 .7rem ui-monospace,monospace; color:var(--color-primary); }
.sadr-sheet-viewport { max-width:100%; overflow:auto; max-height:34rem; }
.sadr-spreadsheet table { border-collapse:separate; border-spacing:0; min-width:max-content; width:100%; }
.sadr-spreadsheet th,.sadr-spreadsheet td { min-width:7rem; height:2rem; border-inline-end:1px solid var(--sadr-v8-line); border-bottom:1px solid var(--sadr-v8-line); padding:.35rem .45rem; font-size:.68rem; outline:none; }
.sadr-spreadsheet th { position:sticky; top:0; z-index:4; background:var(--sadr-v8-soft); color:var(--sadr-v8-muted); text-align:center; }
.sadr-spreadsheet tbody th { inset-inline-start:0; z-index:3; min-width:2.5rem; width:2.5rem; }
.sadr-spreadsheet td.is-selected { box-shadow:inset 0 0 0 2px var(--color-primary); background:color-mix(in oklab,var(--color-primary) 5%,var(--color-base-100)); }

/* PDF */
.sadr-pdf-viewer { overflow:hidden; }
.sadr-pdf-frame { width:100%; border:0; background:var(--sadr-v8-soft); }

/* Splitter / resizable */
.sadr-splitter { display:grid; min-width:0; min-height:14rem; border:1px solid var(--sadr-v8-line); border-radius:var(--sadr-v8-radius); overflow:hidden; background:var(--color-base-100); }
.sadr-splitter[data-orientation="horizontal"] { grid-template-columns:var(--sadr-split-first,40%) .42rem minmax(0,1fr); }
.sadr-splitter[data-orientation="vertical"] { grid-template-rows:var(--sadr-split-first,40%) .42rem minmax(0,1fr); }
.sadr-split-pane { min-width:0; min-height:0; overflow:auto; }
.sadr-split-pane > header { padding:.55rem .7rem; border-bottom:1px solid var(--sadr-v8-line); font-size:.72rem; font-weight:700; }
.sadr-split-pane-body { padding:.7rem; }
.sadr-split-handle { background:var(--sadr-v8-soft); position:relative; touch-action:none; }
.sadr-splitter[data-orientation="horizontal"] .sadr-split-handle { cursor:col-resize; }
.sadr-splitter[data-orientation="vertical"] .sadr-split-handle { cursor:row-resize; }
.sadr-split-handle::after { content:""; position:absolute; inset:25%; border-radius:999px; background:color-mix(in oklab,var(--color-base-content) 20%,transparent); }

/* Drawer + sheet */
.sadr-drawer,.sadr-sheet { position:fixed; inset:0; z-index:120; display:grid; pointer-events:none; }
.sadr-drawer:not([hidden]),.sadr-sheet:not([hidden]) { pointer-events:auto; }
.sadr-drawer[hidden],.sadr-sheet[hidden] { display:none!important; }
.sadr-drawer-backdrop,.sadr-sheet-backdrop { position:absolute; inset:0; background:color-mix(in oklab,var(--color-neutral) 38%,transparent); backdrop-filter:blur(2px); }
.sadr-drawer-panel,.sadr-sheet-panel { position:absolute; display:flex; flex-direction:column; background:var(--color-base-100); color:var(--color-base-content); box-shadow:0 18px 60px color-mix(in oklab,var(--color-neutral) 25%,transparent); max-width:100vw; max-height:100dvh; }
.sadr-drawer-panel > header,.sadr-sheet-panel > header { display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.75rem .85rem; border-bottom:1px solid var(--sadr-v8-line); }
.sadr-drawer-panel > header h3,.sadr-sheet-panel > header h3 { font-size:.82rem; font-weight:750; }
.sadr-drawer-body,.sadr-sheet-body { padding:.85rem; overflow:auto; min-height:0; }
.sadr-drawer[data-side="end"] .sadr-drawer-panel { inset-block:0; inset-inline-end:0; width:var(--sadr-drawer-width,26rem); }
.sadr-drawer[data-side="start"] .sadr-drawer-panel { inset-block:0; inset-inline-start:0; width:var(--sadr-drawer-width,26rem); }
.sadr-drawer[data-side="bottom"] .sadr-drawer-panel { inset-inline:0; bottom:0; max-height:85dvh; border-radius:1rem 1rem 0 0; }
.sadr-drawer[data-side="top"] .sadr-drawer-panel { inset-inline:0; top:0; max-height:85dvh; border-radius:0 0 1rem 1rem; }
.sadr-drawer[data-width="sm"] { --sadr-drawer-width:20rem; }.sadr-drawer[data-width="md"] { --sadr-drawer-width:26rem; }.sadr-drawer[data-width="lg"] { --sadr-drawer-width:34rem; }.sadr-drawer[data-width="xl"] { --sadr-drawer-width:44rem; }.sadr-drawer[data-width="full"] { --sadr-drawer-width:100vw; }
.sadr-sheet-panel { inset:50% auto auto 50%; transform:translate(-50%,-50%); width:min(36rem,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); border-radius:1rem; }

/* Window */
.sadr-window { position:relative; overflow:hidden; min-width:15rem; }
.sadr-window-titlebar { display:flex; align-items:center; justify-content:space-between; gap:.5rem; min-height:2.55rem; padding:.5rem .65rem; border-bottom:1px solid var(--sadr-v8-line); background:var(--sadr-v8-soft); user-select:none; }
.sadr-window-titlebar h3 { font-size:.74rem; font-weight:750; }.sadr-window-titlebar > div{display:flex;gap:.1rem}.sadr-window-body{padding:.75rem;min-height:7rem}.sadr-window.is-maximized{position:fixed;inset:.5rem;z-index:130;max-width:none!important;max-height:none!important}

/* Command palette + context menu */
.sadr-command-palette { width:min(42rem,calc(100vw - 1.5rem)); max-height:min(34rem,calc(100dvh - 2rem)); padding:0; border:1px solid var(--sadr-v8-line); border-radius:1rem; background:var(--color-base-100); color:var(--color-base-content); box-shadow:0 28px 90px color-mix(in oklab,var(--color-neutral) 28%,transparent); }
.sadr-command-palette::backdrop { background:color-mix(in oklab,var(--color-neutral) 38%,transparent); backdrop-filter:blur(3px); }
.sadr-command-panel { display:flex; flex-direction:column; min-height:0; max-height:inherit; }
.sadr-command-search { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.5rem; padding:.7rem .8rem; border-bottom:1px solid var(--sadr-v8-line); }
.sadr-command-search input { outline:none; background:transparent; min-width:0; font-size:.78rem; }.sadr-command-search kbd,.sadr-command-item kbd{font-size:.6rem;color:var(--sadr-v8-muted);background:var(--sadr-v8-soft);border:1px solid var(--sadr-v8-line);border-radius:.38rem;padding:.12rem .35rem}.sadr-command-items{padding:.4rem;overflow:auto}.sadr-command-item{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.55rem .6rem;border-radius:.62rem;text-align:start}.sadr-command-item:hover,.sadr-command-item.is-active{background:color-mix(in oklab,var(--color-primary) 8%,var(--color-base-100));color:var(--color-primary)}.sadr-command-item strong,.sadr-command-item small{display:block}.sadr-command-item strong{font-size:.72rem}.sadr-command-item small{font-size:.61rem;color:var(--sadr-v8-muted);margin-top:.1rem}.sadr-command-icon{width:2rem;height:2rem;display:grid;place-items:center;border-radius:.55rem;background:var(--sadr-v8-soft)}.sadr-command-empty{padding:2rem;text-align:center;color:var(--sadr-v8-muted);font-size:.72rem}.sadr-context-menu{position:fixed;z-index:150;width:13rem;padding:.3rem;border:1px solid var(--sadr-v8-line);border-radius:.7rem;box-shadow:var(--sadr-v8-shadow)}.sadr-context-menu button{display:flex;align-items:center;gap:.45rem;width:100%;padding:.48rem .55rem;border-radius:.5rem;font-size:.7rem}.sadr-context-menu button:hover{background:var(--sadr-v8-soft)}

/* Rating */
.sadr-rating { display:inline-flex; align-items:center; gap:.12rem; color:color-mix(in oklab,var(--color-base-content) 20%,transparent); }.sadr-rating button{font-size:1.15rem;line-height:1;transition:transform .12s,color .12s}.sadr-rating button:not(:disabled):hover{transform:scale(1.12)}.sadr-rating[data-size="xs"] button{font-size:.75rem}.sadr-rating[data-size="sm"] button{font-size:.95rem}.sadr-rating[data-size="lg"] button{font-size:1.55rem}.sadr-rating[data-color="primary"] button.is-active{color:var(--color-primary)}.sadr-rating[data-color="secondary"] button.is-active{color:var(--color-secondary)}.sadr-rating[data-color="accent"] button.is-active{color:var(--color-accent)}.sadr-rating[data-color="warning"] button.is-active{color:var(--color-warning)}.sadr-rating[data-color="error"] button.is-active{color:var(--color-error)}.sadr-rating > span{font-size:.65rem;color:var(--sadr-v8-muted);margin-inline-start:.3rem}

/* Feed + comments */
.sadr-feed { display:grid; gap:.15rem; }.sadr-feed-item{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;padding:.58rem .2rem}.sadr-feed[data-connected="true"] .sadr-feed-item:not(:last-child)::after{content:"";position:absolute;inset-inline-start:1rem;top:2.2rem;bottom:-.3rem;width:1px;background:var(--sadr-v8-line)}.sadr-feed-marker{position:relative;z-index:1;width:2rem;height:2rem;display:grid;place-items:center;border-radius:.6rem;background:var(--sadr-v8-soft);color:var(--color-primary)}.sadr-feed-item strong,.sadr-feed-item p,.sadr-feed-item time{display:block}.sadr-feed-item strong{font-size:.72rem}.sadr-feed-item p{margin-top:.12rem;font-size:.67rem;color:var(--sadr-v8-muted)}.sadr-feed-item time{margin-top:.16rem;font-size:.58rem;color:color-mix(in oklab,var(--color-base-content) 36%,transparent)}.sadr-feed[data-compact="true"] .sadr-feed-item{padding-block:.35rem}.sadr-comments{padding:.75rem}.sadr-comments>header{padding-bottom:.55rem;border-bottom:1px solid var(--sadr-v8-line)}.sadr-comment-list{display:grid;gap:.55rem;padding-block:.65rem}.sadr-comment{display:flex;gap:.55rem;padding:.55rem;border-radius:.7rem}.sadr-comment.is-reply{margin-inline-start:2rem;background:var(--sadr-v8-soft)}.sadr-comment header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sadr-comment header strong{font-size:.7rem}.sadr-comment header time{font-size:.58rem;color:var(--sadr-v8-muted)}.sadr-comment-body{margin-top:.2rem;font-size:.7rem;line-height:1.75}.sadr-comment-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;border-top:1px solid var(--sadr-v8-line);padding-top:.65rem}

/* Reveal / sticky / visibility / calendar */
.sadr-reveal { position:relative; overflow:hidden; }.sadr-reveal > :nth-child(2){position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in oklab,var(--color-base-100) 90%,transparent);backdrop-filter:blur(3px);opacity:0;transition:opacity .2s,transform .2s}.sadr-reveal[data-direction="up"]>:nth-child(2){transform:translateY(12%)}.sadr-reveal[data-direction="down"]>:nth-child(2){transform:translateY(-12%)}.sadr-reveal[data-direction="start"]>:nth-child(2){transform:translateX(12%)}.sadr-reveal[data-direction="end"]>:nth-child(2){transform:translateX(-12%)}.sadr-reveal:hover>:nth-child(2),.sadr-reveal:focus-within>:nth-child(2),.sadr-reveal.is-open>:nth-child(2){opacity:1;transform:none}.sadr-sticky{position:sticky;top:var(--sadr-sticky-top,0);z-index:var(--sadr-sticky-z,20)}.sadr-visibility[data-show="mobile"]{display:none}.sadr-visibility[data-show="tablet"]{display:none}.sadr-visibility[data-show="desktop"]{display:none}.sadr-visibility[data-show="print"]{display:none}.sadr-visibility[data-animate="fade"]{animation:sadr-v8-fade .25s ease}.sadr-visibility[data-animate="slide"]{animation:sadr-v8-slide .25s ease}.sadr-visibility[data-animate="scale"]{animation:sadr-v8-scale .2s ease}@keyframes sadr-v8-fade{from{opacity:0}}@keyframes sadr-v8-slide{from{opacity:0;transform:translateY(.5rem)}}@keyframes sadr-v8-scale{from{opacity:0;transform:scale(.97)}}.sadr-calendar{padding:.7rem;min-height:12rem}.sadr-calendar[data-compact="true"]{padding:.45rem}

/* Scroll area / hover card / separator / aspect ratio / range */
.sadr-scroll-area{max-height:var(--sadr-scroll-height);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.sadr-scroll-area[data-orientation="horizontal"]{overflow-y:hidden;overflow-x:auto;white-space:nowrap}.sadr-scroll-area[data-orientation="both"]{overflow:auto}.sadr-hover-card{position:relative;display:inline-block}.sadr-hover-card>[data-hover-card-content],.sadr-hover-card>:nth-child(2){position:absolute;z-index:90;min-width:15rem;padding:.65rem;border:1px solid var(--sadr-v8-line);border-radius:.72rem;background:var(--color-base-100);box-shadow:var(--sadr-v8-shadow);opacity:0;visibility:hidden;transform:translateY(.25rem);transition:.15s}.sadr-hover-card:hover>:nth-child(2),.sadr-hover-card:focus-within>:nth-child(2){opacity:1;visibility:visible;transform:none}.sadr-separator{display:flex;align-items:center;gap:.55rem;color:var(--sadr-v8-muted);font-size:.64rem}.sadr-separator::before,.sadr-separator::after{content:"";height:1px;flex:1;background:var(--sadr-v8-line)}.sadr-separator[data-variant="dashed"]::before,.sadr-separator[data-variant="dashed"]::after{background:repeating-linear-gradient(90deg,var(--sadr-v8-line) 0 5px,transparent 5px 9px)}.sadr-separator[data-variant="primary"]::before,.sadr-separator[data-variant="primary"]::after{background:color-mix(in oklab,var(--color-primary) 40%,transparent)}.sadr-separator[data-orientation="vertical"]{width:1px;min-height:2rem}.sadr-separator[data-orientation="vertical"]::before{height:auto;width:1px;align-self:stretch}.sadr-separator[data-orientation="vertical"]::after,.sadr-separator[data-orientation="vertical"] span{display:none}.sadr-aspect-ratio{overflow:hidden}.sadr-aspect-ratio[data-rounded="sm"]{border-radius:.35rem}.sadr-aspect-ratio[data-rounded="md"]{border-radius:.55rem}.sadr-aspect-ratio[data-rounded="lg"]{border-radius:.8rem}.sadr-aspect-ratio[data-rounded="xl"]{border-radius:1.15rem}.sadr-aspect-ratio[data-rounded="full"]{border-radius:999px}.sadr-aspect-ratio>*{width:100%;height:100%;object-fit:cover}.sadr-range-slider{display:grid;gap:.35rem}.sadr-range-slider>div{font-size:.68rem}.sadr-range-slider output{color:var(--color-primary);font-weight:700}

/* Virtual list */
.sadr-virtual-list{overflow:auto;position:relative;contain:strict;border:1px solid var(--sadr-v8-line);border-radius:.72rem;background:var(--color-base-100)}.sadr-virtual-list>[data-virtual-item]{min-height:var(--sadr-virtual-item-height,48px);display:flex;align-items:center;border-bottom:1px solid var(--sadr-v8-line);padding:.45rem .65rem}

/* Kanban / Gantt / Pivot / Org / Dock / Report */
.sadr-kanban{overflow:hidden}.sadr-kanban-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(16rem,1fr);gap:.65rem;padding:.7rem;overflow-x:auto;align-items:start}.sadr-kanban-column{border:1px solid var(--sadr-v8-line);border-radius:.75rem;background:var(--sadr-v8-soft);padding:.45rem;min-height:12rem}.sadr-kanban-column>header{display:flex;align-items:center;justify-content:space-between;padding:.35rem .35rem .55rem;font-size:.7rem}.sadr-kanban-items{display:grid;gap:.4rem}.sadr-kanban-card{display:flex;justify-content:space-between;gap:.5rem;padding:.62rem;border:1px solid var(--sadr-v8-line);border-radius:.65rem;background:var(--color-base-100);box-shadow:0 1px 2px color-mix(in oklab,var(--color-neutral) 4%,transparent);cursor:grab}.sadr-kanban-card strong{font-size:.69rem}.sadr-kanban-card p{margin-top:.12rem;font-size:.61rem;color:var(--sadr-v8-muted)}.sadr-kanban-card.is-dragging{opacity:.45}.sadr-gantt{overflow:hidden}.sadr-gantt-body{min-height:14rem;overflow:auto;background:repeating-linear-gradient(90deg,transparent 0 calc(8.333% - 1px),var(--sadr-v8-line) calc(8.333% - 1px) 8.333%)}.sadr-gantt [data-gantt-task]{display:grid;grid-template-columns:12rem minmax(30rem,1fr);min-height:2.4rem;border-bottom:1px solid var(--sadr-v8-line);align-items:center}.sadr-gantt [data-gantt-bar]{height:1.15rem;border-radius:.4rem;background:var(--color-primary);min-width:2rem}.sadr-pivot-grid{overflow:hidden}.sadr-pivot-body{overflow:auto}.sadr-pivot-grid table{width:100%;border-collapse:collapse}.sadr-pivot-grid th,.sadr-pivot-grid td{padding:.48rem .55rem;border:1px solid var(--sadr-v8-line);font-size:.68rem}.sadr-pivot-grid th{background:var(--sadr-v8-soft);color:var(--sadr-v8-muted)}.sadr-org-chart{display:flex;justify-content:center;overflow:auto;padding:1rem}.sadr-org-chart ul{display:flex;gap:.7rem;position:relative}.sadr-org-chart li{list-style:none;text-align:center;position:relative}.sadr-org-chart .sadr-org-node{min-width:9rem;padding:.6rem;border:1px solid var(--sadr-v8-line);border-radius:.7rem;background:var(--color-base-100);box-shadow:0 1px 2px color-mix(in oklab,var(--color-neutral) 5%,transparent)}.sadr-dock-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.65rem}.sadr-dock-layout[data-gap="sm"]{gap:.35rem}.sadr-dock-layout[data-gap="lg"]{gap:1rem}.sadr-dock-layout>[data-dock-span="3"]{grid-column:span 3}.sadr-dock-layout>[data-dock-span="4"]{grid-column:span 4}.sadr-dock-layout>[data-dock-span="6"]{grid-column:span 6}.sadr-dock-layout>[data-dock-span="8"]{grid-column:span 8}.sadr-dock-layout>[data-dock-span="12"]{grid-column:span 12}.sadr-report-viewer{overflow:hidden}.sadr-report-body{padding:.75rem;min-height:12rem}.sadr-report-viewer[data-density="compact"] .sadr-report-body{padding:.45rem}.sadr-report-viewer[data-density="comfortable"] .sadr-report-body{padding:1rem}

/* Validation + theme builder */
.sadr-validation-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55rem;padding:.65rem .75rem;border:1px solid color-mix(in oklab,var(--color-error) 28%,var(--sadr-v8-line));border-radius:.72rem;background:color-mix(in oklab,var(--color-error) 6%,var(--color-base-100));color:var(--color-base-content)}.sadr-validation-summary[data-variant="warning"]{border-color:color-mix(in oklab,var(--color-warning) 30%,var(--sadr-v8-line));background:color-mix(in oklab,var(--color-warning) 7%,var(--color-base-100))}.sadr-validation-summary[data-variant="info"]{border-color:color-mix(in oklab,var(--color-info) 30%,var(--sadr-v8-line));background:color-mix(in oklab,var(--color-info) 7%,var(--color-base-100))}.sadr-validation-icon{width:2rem;height:2rem;border-radius:.55rem;display:grid;place-items:center;background:color-mix(in oklab,var(--color-error) 12%,transparent);color:var(--color-error)}.sadr-validation-summary strong{font-size:.7rem}.sadr-validation-content{margin-top:.2rem;font-size:.64rem;color:var(--sadr-v8-muted)}.sadr-validation-summary[data-compact="true"]{padding:.45rem .55rem}.sadr-theme-builder{overflow:hidden}.sadr-theme-builder-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;padding:.75rem}.sadr-theme-builder-grid label{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .6rem;border:1px solid var(--sadr-v8-line);border-radius:.65rem;font-size:.68rem}.sadr-theme-builder-grid input[type=color]{width:2rem;height:2rem;border:0;background:transparent}.sadr-theme-presets{display:flex;gap:.35rem;flex-wrap:wrap;padding:0 .75rem .75rem}.sadr-theme-presets button{padding:.35rem .6rem;border:1px solid var(--sadr-v8-line);border-radius:.55rem;font-size:.64rem}.sadr-theme-builder pre{margin:.75rem;padding:.65rem;border-radius:.65rem;background:var(--color-neutral);color:var(--color-neutral-content);font:500 .62rem ui-monospace,monospace;direction:ltr;text-align:left;white-space:pre-wrap}

/* Responsive contracts for every new V8 surface */
@media (max-width: 1023px){
  .sadr-file-manager-body{grid-template-columns:10rem minmax(0,1fr)}
  .sadr-dock-layout>[data-dock-span="3"],.sadr-dock-layout>[data-dock-span="4"]{grid-column:span 6}
  .sadr-theme-builder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 767px){
  .sadr-enterprise-toolbar{align-items:stretch}.sadr-enterprise-toolbar>*{max-width:100%}.sadr-enterprise-toolbar .input,.sadr-enterprise-toolbar .select,.sadr-enterprise-toolbar .btn{min-height:2.35rem}
  .sadr-file-manager-body{display:block}.sadr-file-tree{display:flex;gap:.25rem;overflow:auto;border-inline-end:0;border-bottom:1px solid var(--sadr-v8-line);padding:.45rem}.sadr-file-tree>strong{display:none}.sadr-file-tree button{width:auto;white-space:nowrap}.sadr-file-items{grid-template-columns:repeat(2,minmax(0,1fr));padding:.5rem}.sadr-file-manager[data-view="list"] .sadr-file-items{display:flex}
  .sadr-rich-toolbar{overflow-x:auto;flex-wrap:nowrap}.sadr-rich-toolbar button{white-space:nowrap}
  .sadr-splitter{display:block}.sadr-split-handle{display:none}.sadr-split-pane{min-height:10rem;border-bottom:1px solid var(--sadr-v8-line)}
  .sadr-drawer-panel{width:min(92vw,var(--sadr-drawer-width,26rem))!important}.sadr-sheet-panel{inset:auto 0 0 0;transform:none;width:100%;max-height:88dvh;border-radius:1rem 1rem 0 0}
  .sadr-command-palette{width:calc(100vw - 1rem);max-height:80dvh}
  .sadr-comment.is-reply{margin-inline-start:.75rem}.sadr-comment-composer{grid-template-columns:1fr}.sadr-comment-composer .btn{width:100%}
  .sadr-visibility[data-show="mobile"]{display:block}.sadr-visibility[data-show="desktop"]{display:none!important}
  .sadr-kanban-board{grid-auto-columns:min(82vw,18rem)}
  .sadr-dock-layout{display:flex;flex-direction:column}.sadr-dock-layout>*{width:100%}
  .sadr-theme-builder-grid{grid-template-columns:1fr}
  .sadr-tree-grid[data-mobile-mode="cards"] thead{display:none}.sadr-tree-grid[data-mobile-mode="cards"] tbody,.sadr-tree-grid[data-mobile-mode="cards"] tr{display:block}.sadr-tree-grid[data-mobile-mode="cards"] tr{margin:.5rem;border:1px solid var(--sadr-v8-line);border-radius:.72rem;overflow:hidden}.sadr-tree-grid[data-mobile-mode="cards"] td{display:grid;grid-template-columns:6rem minmax(0,1fr);gap:.5rem}.sadr-tree-grid[data-mobile-mode="cards"] td::before{content:attr(data-label);font-size:.62rem;color:var(--sadr-v8-muted)}
}
@media (min-width:768px) and (max-width:1199px){.sadr-visibility[data-show="tablet"]{display:block}}
@media (min-width:1200px){.sadr-visibility[data-show="desktop"]{display:block}}
@media print{.sadr-visibility[data-show="print"]{display:block}.sadr-enterprise-toolbar,.sadr-command-palette,.sadr-drawer,.sadr-sheet{display:none!important}}
@media (prefers-reduced-motion: reduce){.sadr-reveal>*:nth-child(2),.sadr-visibility{animation:none!important;transition:none!important}}

/* DataSource is configuration-only; ButtonGroup/List add shadcn+daisy style primitives. */
.sadr-button-group{display:inline-flex;align-items:stretch}.sadr-button-group[data-orientation="vertical"]{flex-direction:column}.sadr-button-group[data-attached="true"]>.btn{border-radius:0;margin-inline-start:-1px}.sadr-button-group[data-attached="true"]>.btn:first-child{border-start-start-radius:.65rem;border-end-start-radius:.65rem}.sadr-button-group[data-attached="true"]>.btn:last-child{border-start-end-radius:.65rem;border-end-end-radius:.65rem}.sadr-list{border:1px solid var(--sadr-v8-line);border-radius:.75rem;background:var(--color-base-100);overflow:hidden}.sadr-list-item{display:flex;align-items:center;gap:.55rem;padding:.6rem .7rem;color:var(--color-base-content)}.sadr-list[data-divided="true"]>.sadr-list-item:not(:last-child){border-bottom:1px solid var(--sadr-v8-line)}.sadr-list[data-hover="true"]>.sadr-list-item:hover{background:var(--sadr-v8-soft)}.sadr-list[data-density="compact"]>.sadr-list-item{padding:.42rem .55rem}.sadr-list[data-density="comfortable"]>.sadr-list-item{padding:.8rem .85rem}.sadr-list-icon{width:2rem;height:2rem;display:grid;place-items:center;border-radius:.55rem;background:var(--sadr-v8-soft);color:var(--color-primary)}.sadr-list-item strong,.sadr-list-item small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sadr-list-item strong{font-size:.7rem}.sadr-list-item small{margin-top:.1rem;font-size:.61rem;color:var(--sadr-v8-muted)}
@media(max-width:767px){.sadr-button-group[data-responsive="true"]{display:flex;width:100%;flex-wrap:wrap}.sadr-button-group[data-responsive="true"]>.btn{flex:1 1 auto}}

/* =========================================================
   SadrHelper 8 — Extra Enterprise & Cross-library primitives
   Additive only. Uses DaisyUI theme tokens and color-mix so
   dark mode / theme switching remain automatic.
   ========================================================= */
.sadr-v8-toolbar,.sadr-v8-appbar,.sadr-v8-property-grid,.sadr-v8-filter-builder,.sadr-v8-diagram,.sadr-v8-chat,.sadr-v8-ai-prompt{border:1px solid color-mix(in oklab,var(--color-base-content) 12%,transparent);background:var(--color-base-100);color:var(--color-base-content);box-shadow:0 10px 30px color-mix(in oklab,var(--color-base-content) 7%,transparent)}
.sadr-v8-toolbar{display:flex;align-items:center;gap:.55rem;min-width:0;padding:.65rem .75rem;border-radius:1rem;overflow:hidden}.sadr-v8-toolbar[data-density=compact]{padding:.4rem .55rem;gap:.35rem}.sadr-v8-toolbar[data-density=comfortable]{padding:.85rem 1rem;gap:.75rem}.sadr-v8-toolbar[data-sticky=true]{position:sticky;top:.5rem;z-index:35}.sadr-v8-toolbar-title{white-space:nowrap}.sadr-v8-toolbar-items{display:flex;align-items:center;gap:.45rem;min-width:0;flex:1}.sadr-v8-toolbar-more{display:none}@media(max-width:760px){.sadr-v8-toolbar[data-overflow=true] .sadr-v8-toolbar-items{overflow-x:auto;scrollbar-width:none}.sadr-v8-toolbar[data-overflow=true] .sadr-v8-toolbar-more{display:inline-flex}}
.sadr-v8-appbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border-radius:1.15rem}.sadr-v8-appbar[data-compact=true]{padding:.5rem .7rem}.sadr-v8-appbar[data-position=sticky]{position:sticky;top:.5rem;z-index:40}.sadr-v8-appbar[data-position=fixed]{position:fixed;inset-inline:1rem;top:.5rem;z-index:50}.sadr-v8-appbar[data-variant=primary]{background:var(--color-primary);color:var(--color-primary-content);border-color:transparent}.sadr-v8-appbar[data-variant=soft]{background:color-mix(in oklab,var(--color-primary) 10%,var(--color-base-100))}.sadr-v8-appbar[data-variant=glass]{background:color-mix(in oklab,var(--color-base-100) 76%,transparent);backdrop-filter:blur(14px)}.sadr-v8-appbar-brand{display:grid;gap:.12rem}.sadr-v8-appbar-brand small{opacity:.62}.sadr-v8-appbar-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.sadr-v8-bottom-nav{display:flex;align-items:center;justify-content:space-around;gap:.2rem;padding:.45rem max(.45rem,env(safe-area-inset-right)) max(.45rem,env(safe-area-inset-bottom)) max(.45rem,env(safe-area-inset-left));border:1px solid color-mix(in oklab,var(--color-base-content) 12%,transparent);background:color-mix(in oklab,var(--color-base-100) 94%,transparent);backdrop-filter:blur(16px);border-radius:1.1rem;color:var(--color-base-content)}.sadr-v8-bottom-nav[data-fixed=true]{position:fixed;z-index:60;bottom:.5rem;inset-inline:max(.5rem,env(safe-area-inset-left));box-shadow:0 14px 42px color-mix(in oklab,var(--color-base-content) 12%,transparent)}.sadr-v8-bottom-nav-item{position:relative;display:flex;flex:1;min-width:0;max-width:9rem;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding:.4rem .55rem;border-radius:.8rem;font-size:.72rem;color:color-mix(in oklab,var(--color-base-content) 65%,transparent);transition:.16s ease}.sadr-v8-bottom-nav-item:hover,.sadr-v8-bottom-nav-item.is-active{background:color-mix(in oklab,var(--color-primary) 11%,transparent);color:var(--color-primary)}.sadr-v8-bottom-nav[data-labels=false] .sadr-v8-bottom-nav-item>span:last-child{display:none}.sadr-v8-bottom-nav-icon{position:relative}.sadr-v8-bottom-nav-icon b{position:absolute;inset-block-start:-.35rem;inset-inline-end:-.5rem;min-width:1.1rem;height:1.1rem;padding:0 .25rem;display:grid;place-items:center;border-radius:999px;background:var(--color-error);color:var(--color-error-content);font-size:.62rem}
.sadr-v8-dropdown-content{z-index:80;min-width:13rem;margin-top:.4rem;padding:.45rem;border:1px solid color-mix(in oklab,var(--color-base-content) 12%,transparent);border-radius:.9rem;background:var(--color-base-100);box-shadow:0 18px 45px color-mix(in oklab,var(--color-base-content) 14%,transparent)}.sadr-v8-dropdown-content>*{width:100%}.sadr-v8-dropdown-button[data-align=start] .dropdown-content{inset-inline-start:0}.sadr-v8-dropdown-button[data-align=end] .dropdown-content{inset-inline-end:0}.sadr-v8-split-button>.btn:first-child{padding-inline:1rem}
.sadr-v8-fab{position:fixed;z-index:55;min-width:3.2rem;min-height:3.2rem;border-radius:999px;box-shadow:0 14px 35px color-mix(in oklab,var(--color-primary) 28%,transparent)}.sadr-v8-fab[data-position=bottomend]{bottom:1.25rem;inset-inline-end:1.25rem}.sadr-v8-fab[data-position=bottomstart]{bottom:1.25rem;inset-inline-start:1.25rem}.sadr-v8-fab[data-position=topend]{top:1.25rem;inset-inline-end:1.25rem}.sadr-v8-fab.is-extended{padding-inline:1.15rem}
.sadr-v8-panelbar{display:grid;gap:.45rem}.sadr-v8-panelbar[data-bordered=true]{padding:.5rem;border:1px solid color-mix(in oklab,var(--color-base-content) 12%,transparent);border-radius:1rem;background:var(--color-base-100)}.sadr-v8-panelbar[data-compact=true]{gap:.25rem}
.sadr-v8-tabs{display:grid;gap:.7rem;min-width:0}.sadr-v8-tabs>.sadr-v8-tabs-header{display:flex;gap:.3rem;min-width:0;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid color-mix(in oklab,var(--color-base-content) 12%,transparent)}.sadr-v8-tabs[data-full=true]>.sadr-v8-tabs-header>*{flex:1}.sadr-v8-tabs-header button{min-height:2.6rem;padding:.55rem .9rem;border-radius:.7rem .7rem 0 0;color:color-mix(in oklab,var(--color-base-content) 62%,transparent);white-space:nowrap}.sadr-v8-tabs-header button.is-active{color:var(--color-primary);background:color-mix(in oklab,var(--color-primary) 8%,transparent);box-shadow:inset 0 -2px var(--color-primary)}.sadr-v8-tabs[data-style=boxed]>.sadr-v8-tabs-header,.sadr-v8-tabs[data-style=pills]>.sadr-v8-tabs-header{border:0;padding:.3rem;background:var(--color-base-200);border-radius:.9rem}.sadr-v8-tabs[data-style=boxed] .sadr-v8-tabs-header button,.sadr-v8-tabs[data-style=pills] .sadr-v8-tabs-header button{border-radius:.65rem;box-shadow:none}.sadr-v8-tabs[data-style=boxed] .sadr-v8-tabs-header button.is-active,.sadr-v8-tabs[data-style=pills] .sadr-v8-tabs-header button.is-active{background:var(--color-base-100);box-shadow:0 3px 12px color-mix(in oklab,var(--color-base-content) 8%,transparent)}.sadr-v8-tab-panel[hidden]{display:none!important}
.sadr-v8-field{display:grid;gap:.35rem;min-width:0}.sadr-v8-field .sadr-field-label{font-size:.82rem;font-weight:600;color:color-mix(in oklab,var(--color-base-content) 75%,transparent)}.sadr-v8-autocomplete,.sadr-v8-combobox,.sadr-v8-dropdown-tree{position:relative}.sadr-v8-suggestion-panel,.sadr-v8-dropdown-tree-panel{position:absolute;z-index:85;inset-inline:0;top:calc(100% + .35rem);max-height:18rem;overflow:auto;padding:.4rem;border:1px solid color-mix(in oklab,var(--color-base-content) 12%,transparent);border-radius:.9rem;background:var(--color-base-100);box-shadow:0 18px 44px color-mix(in oklab,var(--color-base-content) 15%,transparent)}.sadr-v8-suggestion-panel button,.sadr-v8-dropdown-tree-panel [data-tree-value]{display:flex;width:100%;align-items:center;gap:.5rem;padding:.55rem .65rem;border-radius:.6rem;text-align:start}.sadr-v8-suggestion-panel button:hover,.sadr-v8-dropdown-tree-panel [data-tree-value]:hover{background:var(--color-base-200)}.sadr-v8-dropdown-tree-trigger{display:flex;align-items:center;justify-content:space-between;text-align:start}.sadr-v8-dropdown-tree-panel{position:relative;top:auto;margin-top:.35rem}.sadr-v8-color-main{display:flex;gap:.5rem;align-items:center}.sadr-v8-color-main input[type=color]{inline-size:2.8rem;block-size:2.4rem;padding:.1rem;border:1px solid color-mix(in oklab,var(--color-base-content) 16%,transparent);border-radius:.65rem;background:var(--color-base-100)}.sadr-v8-color-palette{display:flex;flex-wrap:wrap;gap:.35rem}.sadr-v8-color-swatch{width:1.8rem;height:1.8rem;border:2px solid var(--color-base-100);outline:1px solid color-mix(in oklab,var(--color-base-content) 16%,transparent);border-radius:.55rem;background:var(--swatch)}.sadr-v8-numeric .join{direction:ltr}.sadr-v8-numeric input{text-align:center}.sadr-v8-slider .sadr-field-label{display:flex;justify-content:space-between;gap:.5rem}
.sadr-v8-segmented{display:flex;padding:.22rem;background:var(--color-base-200);border-radius:.8rem;gap:.15rem}.sadr-v8-segmented label{border:0;background:transparent;box-shadow:none}.sadr-v8-segmented label:has(input:checked){background:var(--color-base-100);color:var(--color-primary);box-shadow:0 2px 9px color-mix(in oklab,var(--color-base-content) 8%,transparent)}.sadr-v8-segmented input{position:absolute;opacity:0;pointer-events:none}.sadr-v8-segmented.w-full label{flex:1}
.sadr-v8-tile-layout{display:grid;grid-template-columns:repeat(var(--tile-cols),minmax(0,1fr));gap:var(--tile-gap)}.sadr-v8-tile{grid-column:span min(var(--col-span),var(--tile-cols));grid-row:span var(--row-span);min-width:0;border:1px solid color-mix(in oklab,var(--color-base-content) 12%,transparent);border-radius:1rem;background:var(--color-base-100);box-shadow:0 8px 28px color-mix(in oklab,var(--color-base-content) 7%,transparent);overflow:hidden}.sadr-v8-tile>header{display:flex;align-items:center;justify-content:space-between;padding:.7rem .85rem;border-bottom:1px solid color-mix(in oklab,var(--color-base-content) 10%,transparent)}.sadr-v8-tile-body{padding:.85rem}.sadr-v8-tile.is-collapsed .sadr-v8-tile-body{display:none}@media(max-width:980px){.sadr-v8-tile-layout{grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--tile-min)),1fr))}.sadr-v8-tile{grid-column:auto!important;grid-row:auto!important}}
.sadr-v8-property-grid{overflow:hidden;border-radius:1rem}.sadr-v8-property-list{display:grid}.sadr-v8-property-item{display:grid;grid-template-columns:minmax(10rem,.8fr) minmax(0,1.2fr);gap:.7rem;align-items:center;padding:.55rem .75rem;border-top:1px solid color-mix(in oklab,var(--color-base-content) 8%,transparent)}.sadr-v8-property-item>span{display:grid}.sadr-v8-property-item small{font-size:.68rem;opacity:.52}.sadr-v8-property-grid[data-density=compact] .sadr-v8-property-item{padding:.38rem .6rem}.sadr-v8-property-grid[data-density=comfortable] .sadr-v8-property-item{padding:.8rem 1rem}@media(max-width:640px){.sadr-v8-property-item{grid-template-columns:1fr}}
.sadr-v8-filter-builder{display:grid;gap:.65rem;padding:.8rem;border-radius:1rem}.sadr-v8-filter-builder>header{display:flex;justify-content:space-between;gap:.6rem;align-items:center}.sadr-v8-filter-builder [data-filter-rules]{display:grid;gap:.45rem}.sadr-v8-filter-rule{display:grid;grid-template-columns:minmax(7rem,.7fr) minmax(8rem,.8fr) minmax(8rem,1fr) auto;gap:.4rem;align-items:center;padding:.45rem;border-radius:.75rem;background:var(--color-base-200)}.sadr-v8-filter-field{font-size:.8rem;font-weight:600}@media(max-width:700px){.sadr-v8-filter-rule{grid-template-columns:1fr 1fr}.sadr-v8-filter-rule input{grid-column:1/-1}.sadr-v8-filter-rule button{position:absolute;inset-inline-end:.6rem}}
.sadr-v8-sortable{display:flex;gap:.5rem}.sadr-v8-sortable[data-orientation=vertical]{flex-direction:column}.sadr-v8-sortable[data-orientation=horizontal]{overflow-x:auto}.sadr-v8-sortable[data-orientation=grid]{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr))}.sadr-v8-sortable>[draggable=true]{cursor:grab}.sadr-v8-sortable>.is-dragging{opacity:.45;transform:scale(.98)}
.sadr-v8-qr,.sadr-v8-barcode{display:grid;justify-items:center;gap:.55rem;padding:.75rem;border:1px solid color-mix(in oklab,var(--color-base-content) 12%,transparent);border-radius:1rem;background:var(--color-base-100)}.sadr-v8-qr canvas{image-rendering:pixelated;border-radius:.35rem;background:#fff;padding:.4rem}.sadr-v8-barcode-bars{width:min(100%,24rem);height:var(--barcode-height);background:repeating-linear-gradient(90deg,currentColor 0 2px,transparent 2px 4px,currentColor 4px 5px,transparent 5px 8px,currentColor 8px 11px,transparent 11px 13px);color:var(--color-base-content)}.sadr-v8-barcode figcaption{font-family:ui-monospace,monospace;letter-spacing:.18em}
.sadr-v8-diagram{overflow:hidden;border-radius:1rem}.sadr-v8-diagram-canvas{position:relative;height:var(--diagram-height);overflow:auto;transform-origin:center;background-color:var(--color-base-100)}.sadr-v8-diagram[data-grid=true] .sadr-v8-diagram-canvas{background-image:linear-gradient(color-mix(in oklab,var(--color-base-content) 7%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in oklab,var(--color-base-content) 7%,transparent) 1px,transparent 1px);background-size:24px 24px}.sadr-v8-diagram-node{position:absolute;inset-inline-start:var(--node-x);top:var(--node-y);display:flex;align-items:center;gap:.55rem;min-width:10rem;padding:.6rem .7rem;border:1px solid color-mix(in oklab,var(--color-primary) 24%,var(--color-base-content) 10%);border-radius:.8rem;background:var(--color-base-100);box-shadow:0 7px 20px color-mix(in oklab,var(--color-base-content) 10%,transparent);cursor:move}.sadr-v8-diagram-node>span{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:.65rem;background:color-mix(in oklab,var(--color-primary) 12%,transparent);color:var(--color-primary)}.sadr-v8-diagram-node>div{display:grid}.sadr-v8-diagram-node small{font-size:.7rem;opacity:.55}
.sadr-v8-chat{display:grid;grid-template-rows:auto 1fr auto;height:var(--chat-height);overflow:hidden;border-radius:1rem}.sadr-v8-chat>header{display:flex;align-items:center;gap:.55rem;padding:.7rem .85rem;border-bottom:1px solid color-mix(in oklab,var(--color-base-content) 10%,transparent)}.sadr-v8-chat-messages{display:flex;flex-direction:column;gap:.65rem;overflow:auto;padding:.85rem}.sadr-v8-chat>footer{display:flex;align-items:end;gap:.45rem;padding:.65rem;border-top:1px solid color-mix(in oklab,var(--color-base-content) 10%,transparent)}.sadr-v8-chat-message{align-self:flex-start;max-width:min(82%,34rem)}.sadr-v8-chat-message>div{padding:.65rem .8rem;border-radius:1rem 1rem 1rem .25rem;background:var(--color-base-200);line-height:1.8}.sadr-v8-chat-message.is-mine{align-self:flex-end}.sadr-v8-chat-message.is-mine>div{background:color-mix(in oklab,var(--color-primary) 15%,var(--color-base-100));border-radius:1rem 1rem .25rem 1rem}.sadr-v8-chat-author,.sadr-v8-chat-meta{display:block;padding:.12rem .3rem;font-size:.68rem;opacity:.5}.sadr-v8-typing{display:flex;gap:.25rem;padding:.55rem}.sadr-v8-typing i{width:.35rem;height:.35rem;border-radius:50%;background:var(--color-base-content);opacity:.35;animation:sadr-v8-typing .9s infinite alternate}.sadr-v8-typing i:nth-child(2){animation-delay:.2s}.sadr-v8-typing i:nth-child(3){animation-delay:.4s}@keyframes sadr-v8-typing{to{opacity:.9;transform:translateY(-3px)}}
.sadr-v8-ai-prompt{display:grid;gap:.65rem;padding:.8rem;border-radius:1rem}.sadr-v8-ai-prompt>header{display:flex;align-items:center;gap:.5rem}.sadr-v8-ai-suggestions{display:flex;gap:.35rem;flex-wrap:wrap}.sadr-v8-ai-composer{display:flex;align-items:end;gap:.4rem}.sadr-v8-ai-composer textarea{min-height:3rem;max-height:10rem}
.sadr-v8-diff{position:relative;overflow:hidden;aspect-ratio:var(--diff-ratio);border-radius:1rem;background:var(--color-base-200)}.sadr-v8-diff-after,.sadr-v8-diff-before{position:absolute;inset:0;background-size:cover;background-position:center}.sadr-v8-diff-before{clip-path:inset(0 calc(100% - var(--diff-pos)) 0 0)}[dir=rtl] .sadr-v8-diff-before{clip-path:inset(0 0 0 calc(100% - var(--diff-pos)))}.sadr-v8-diff input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize}
.sadr-v8-stack{display:grid;isolation:isolate}.sadr-v8-stack>*{grid-area:1/1;transform:translate(calc((var(--stack-index,0))*var(--stack-offset)),calc((var(--stack-index,0))*var(--stack-offset)));box-shadow:0 7px 20px color-mix(in oklab,var(--color-base-content) 8%,transparent)}.sadr-v8-radial{display:grid;place-items:center;align-content:center;gap:.05rem}.sadr-v8-radial strong{font-weight:700}.sadr-v8-radial small{font-size:.65rem;opacity:.6}.sadr-v8-status{display:inline-flex;align-items:center;gap:.4rem}.sadr-v8-status-xs .status{width:.35rem;height:.35rem}.sadr-v8-status-sm .status{width:.45rem;height:.45rem}.sadr-v8-status-lg .status{width:.7rem;height:.7rem}.sadr-v8-status.is-pulse .status{animation:sadr-v8-pulse 1.3s infinite}@keyframes sadr-v8-pulse{50%{box-shadow:0 0 0 .35rem currentColor;opacity:.5}}
.sadr-v8-mockup{position:relative;overflow:hidden;border:1px solid color-mix(in oklab,var(--color-base-content) 14%,transparent);background:var(--color-base-100);color:var(--color-base-content)}.sadr-v8-mockup-body{min-height:10rem;padding:1rem}.sadr-v8-mockup-browser{padding-top:2.5rem;border-radius:1rem}.sadr-v8-mockup-browser:before{content:'●  ●  ●';position:absolute;top:.65rem;inset-inline-start:.8rem;letter-spacing:.25rem;color:color-mix(in oklab,var(--color-base-content) 35%,transparent)}.sadr-v8-browser-url{position:absolute;top:.48rem;inset-inline:6rem 1rem;height:1.55rem;overflow:hidden;padding:.2rem .55rem;border-radius:.45rem;background:var(--color-base-200);font-size:.7rem;direction:ltr}.sadr-v8-mockup-phone{width:min(100%,20rem);margin-inline:auto;padding:.8rem;border-width:.55rem;border-radius:2.3rem}.sadr-v8-mockup-phone:before{content:'';display:block;width:5rem;height:.35rem;margin:.15rem auto .6rem;border-radius:99px;background:var(--color-base-content)}.sadr-v8-mockup-window{padding-top:2.2rem;border-radius:.75rem}.sadr-v8-mockup-window:before{content:'—  □  ×';position:absolute;top:.4rem;inset-inline-end:.7rem}.sadr-v8-mockup-code{border-radius:.75rem;background:#111827;color:#d1fae5;font-family:ui-monospace,monospace;direction:ltr;text-align:left}.sadr-v8-mockup-code .sadr-v8-mockup-body{white-space:pre-wrap}.sadr-v8-mockup-title{position:absolute;top:.45rem;inset-inline-start:.8rem;font-size:.72rem;opacity:.55}
.sadr-v8-carousel{position:relative;overflow:hidden;border-radius:1rem}.sadr-v8-carousel-track{display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.sadr-v8-carousel-item{flex:0 0 calc((100% - (var(--carousel-slides,1) - 1)*.75rem)/var(--carousel-slides,1));scroll-snap-align:start;min-width:0}.sadr-v8-carousel-prev,.sadr-v8-carousel-next{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:var(--color-base-100)}.sadr-v8-carousel-prev{inset-inline-start:.5rem}.sadr-v8-carousel-next{inset-inline-end:.5rem}.sadr-v8-carousel-dots{display:flex;justify-content:center;gap:.3rem;padding:.5rem}.sadr-v8-carousel-dots button{width:.45rem;height:.45rem;border-radius:50%;background:color-mix(in oklab,var(--color-base-content) 20%,transparent)}.sadr-v8-carousel-dots button.is-active{width:1.3rem;border-radius:99px;background:var(--color-primary)}
.sadr-v8-gauge{display:grid;justify-items:center;gap:.5rem}.sadr-v8-gauge-ring{width:var(--gauge-size);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(currentColor calc(var(--gauge)*1%),color-mix(in oklab,var(--color-base-content) 10%,transparent) 0);position:relative}.sadr-v8-gauge-ring:after{content:'';position:absolute;inset:13%;border-radius:50%;background:var(--color-base-100)}.sadr-v8-gauge-ring strong{position:relative;z-index:1;font-size:1.3rem}.sadr-v8-sparkline{width:100%;max-width:18rem;overflow:visible}.sadr-v8-sparkline .sadr-v8-spark-area{fill:color-mix(in oklab,currentColor 12%,transparent)}.sadr-v8-sparkline .sadr-v8-spark-line{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.sadr-v8-confirm .modal-box{text-align:center;max-width:28rem}.sadr-v8-confirm-icon{width:3.2rem;height:3.2rem;display:grid;place-items:center;margin:0 auto .7rem;border-radius:1rem;background:color-mix(in oklab,currentColor 12%,transparent)}.sadr-v8-confirm h3{font-size:1.1rem;font-weight:700}.sadr-v8-confirm p{margin-top:.35rem;color:color-mix(in oklab,var(--color-base-content) 62%,transparent);line-height:1.8}
@media(max-width:640px){.sadr-v8-appbar{align-items:flex-start;flex-direction:column}.sadr-v8-appbar-actions{width:100%}.sadr-v8-appbar-actions>.btn{flex:1}.sadr-v8-toolbar{border-radius:.85rem}.sadr-v8-chat-message{max-width:92%}.sadr-v8-ai-composer{align-items:stretch;flex-wrap:wrap}.sadr-v8-ai-composer textarea{flex-basis:70%}.sadr-v8-carousel-item{flex-basis:100%!important}.sadr-v8-fab{bottom:calc(5rem + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.sadr-v8-fab,.sadr-v8-status .status,.sadr-v8-typing i{animation:none!important;transition:none!important}}

/* ========================= SadrHelper v9 ========================= */
.sadr-v9{font-family:inherit;direction:rtl;min-width:0}.sadr-v9-surface{border:1px solid color-mix(in oklab,var(--color-base-300) 82%,transparent);background:var(--color-base-100);border-radius:1.35rem;box-shadow:0 12px 32px color-mix(in oklab,var(--color-base-content) 7%,transparent);overflow:hidden}.sadr-v9-surface[data-variant="soft"]{background:color-mix(in oklab,var(--color-base-100) 92%,var(--color-primary) 8%)}.sadr-v9-surface[data-variant="glass"]{background:color-mix(in oklab,var(--color-base-100) 78%,transparent);backdrop-filter:blur(16px)}.sadr-v9-surface[data-variant="minimal"]{box-shadow:none;border-color:transparent}.sadr-v9-surface[data-variant="primary"]{border-color:color-mix(in oklab,var(--color-primary) 35%,var(--color-base-300));background:color-mix(in oklab,var(--color-base-100) 94%,var(--color-primary) 6%)}.sadr-v9-surface[data-density="compact"] .sadr-v9-component-body{padding:.75rem}.sadr-v9-surface[data-density="comfortable"] .sadr-v9-component-body{padding:1.5rem}.sadr-v9-component-head{display:flex;align-items:center;gap:.75rem;padding:1rem 1.1rem;border-bottom:1px solid var(--color-base-300)}.sadr-v9-component-head strong{display:block;font-size:.92rem}.sadr-v9-component-head small{display:block;color:color-mix(in oklab,var(--color-base-content) 50%,transparent);font-size:.7rem;margin-top:.15rem}.sadr-v9-component-icon{display:grid;place-items:center;inline-size:2.45rem;block-size:2.45rem;border-radius:.95rem;background:color-mix(in oklab,var(--color-primary) 12%,var(--color-base-100));color:var(--color-primary);flex:none}.sadr-v9-component-body{padding:1rem;min-width:0}.sadr-v9-field{display:grid;gap:.4rem;min-width:0}.sadr-v9-field .sadr-field-label{font-weight:650;font-size:.82rem;color:color-mix(in oklab,var(--color-base-content) 80%,transparent)}.sadr-v9-field-hint{min-height:1rem;font-size:.7rem;color:color-mix(in oklab,var(--color-base-content) 55%,transparent)}.sadr-v9-field.is-invalid .input,.sadr-v9-field.is-invalid input{border-color:var(--color-error)}.sadr-v9-field.is-valid .input,.sadr-v9-field.is-valid input{border-color:var(--color-success)}

.sadr-v9-map .sadr-v9-component-body{min-height:18rem;background:radial-gradient(circle at 30% 25%,color-mix(in oklab,var(--color-primary) 8%,transparent),transparent 32%),linear-gradient(90deg,color-mix(in oklab,var(--color-base-300) 35%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in oklab,var(--color-base-300) 35%,transparent) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px;position:relative}.sadr-v9-map-marker{display:inline-flex;align-items:center;gap:.35rem;border:1px solid color-mix(in oklab,var(--color-primary) 30%,var(--color-base-300));background:var(--color-base-100);padding:.4rem .65rem;border-radius:999px;box-shadow:0 8px 20px color-mix(in oklab,var(--color-base-content) 12%,transparent);color:var(--color-primary)}
.sadr-v9-image-editor .sadr-v9-component-body,.sadr-v9-media-player .sadr-v9-component-body{min-height:16rem;display:grid;place-items:center;background:color-mix(in oklab,var(--color-base-200) 70%,transparent)}
.sadr-v9-sidebar .sadr-v9-component-body,.sadr-v9-mega-menu .sadr-v9-component-body,.sadr-v9-ribbon .sadr-v9-component-body{display:flex;gap:.5rem;flex-wrap:wrap}.sadr-v9-global-search .sadr-v9-component-body{display:grid;place-items:center;min-height:8rem}.sadr-v9-notification-center .sadr-v9-component-body{display:grid;gap:.5rem}.sadr-v9-key-value .sadr-v9-component-body,.sadr-v9-json-editor .sadr-v9-component-body,.sadr-v9-code-editor .sadr-v9-component-body,.sadr-v9-markdown-editor .sadr-v9-component-body{min-height:12rem}.sadr-v9-json-viewer .sadr-v9-component-body,.sadr-v9-log-viewer .sadr-v9-component-body,.sadr-v9-terminal .sadr-v9-component-body,.sadr-v9-diff-viewer .sadr-v9-component-body{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;direction:ltr;text-align:left;background:color-mix(in oklab,var(--color-neutral) 92%,black);color:var(--color-neutral-content);min-height:10rem}.sadr-v9-hero .sadr-v9-component-body{min-height:14rem;display:grid;align-items:center;background:linear-gradient(135deg,color-mix(in oklab,var(--color-primary) 12%,var(--color-base-100)),var(--color-base-100) 65%,color-mix(in oklab,var(--color-secondary) 9%,var(--color-base-100)))}.sadr-v9-fieldset .sadr-v9-component-body{display:grid;gap:.75rem}.sadr-v9-dimmer{position:relative}.sadr-v9-nag{border-inline-start:4px solid var(--color-primary)}.sadr-v9-flip-card{perspective:1000px}.sadr-v9-transition{transition:all .2s ease}.sadr-v9-resizable-panel{resize:both;overflow:auto;min-block-size:8rem;min-inline-size:14rem;max-inline-size:100%}.sadr-v9-floating-panel{position:relative;box-shadow:0 18px 42px color-mix(in oklab,var(--color-base-content) 14%,transparent)}

.sadr-v9-snackbar{display:flex;align-items:center;gap:.6rem;max-width:34rem;padding:.75rem .9rem;border:1px solid var(--color-base-300);border-radius:1rem;background:var(--color-neutral);color:var(--color-neutral-content);box-shadow:0 12px 30px #0002}.sadr-v9-snackbar[data-variant="success"]{background:color-mix(in oklab,var(--color-success) 18%,var(--color-base-100));color:var(--color-base-content);border-color:color-mix(in oklab,var(--color-success) 35%,var(--color-base-300))}.sadr-v9-snackbar[data-variant="error"]{background:color-mix(in oklab,var(--color-error) 15%,var(--color-base-100));color:var(--color-base-content);border-color:color-mix(in oklab,var(--color-error) 35%,var(--color-base-300))}
.sadr-v9-transfer-list{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:.75rem;align-items:center}.sadr-v9-transfer-list>section{border:1px solid var(--color-base-300);border-radius:1rem;padding:.75rem;background:var(--color-base-100)}.sadr-v9-transfer-list header{font-weight:700;font-size:.82rem;margin-bottom:.5rem}.sadr-v9-transfer-pane{display:grid;gap:.35rem;max-height:18rem;overflow:auto;margin-top:.5rem}.sadr-v9-transfer-actions{display:grid;gap:.4rem}.sadr-v9-transfer-item{display:grid;text-align:start;gap:.12rem;border:1px solid var(--color-base-300);border-radius:.75rem;padding:.55rem .7rem;background:var(--color-base-100)}.sadr-v9-transfer-item small{font-size:.68rem;color:color-mix(in oklab,var(--color-base-content) 50%,transparent)}.sadr-v9-transfer-item.is-selected{border-color:var(--color-primary);background:color-mix(in oklab,var(--color-primary) 8%,var(--color-base-100))}
.sadr-v9-tag-box{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;min-height:3rem;border:1px solid var(--color-base-300);border-radius:.9rem;padding:.38rem .55rem;background:var(--color-base-100)}.sadr-v9-tag-box [data-tag-list]{display:contents}.sadr-v9-tag-chip{display:inline-flex;align-items:center;gap:.25rem;border:1px solid color-mix(in oklab,var(--color-primary) 25%,var(--color-base-300));background:color-mix(in oklab,var(--color-primary) 9%,var(--color-base-100));color:var(--color-primary);border-radius:999px;padding:.25rem .5rem;font-size:.73rem}.sadr-v9-tag-box>input[type=text]{min-width:9rem;flex:1;background:transparent;outline:none;padding:.35rem}
.sadr-v9-suggestions{position:absolute;z-index:70;inset-inline:0;top:100%;margin-top:.3rem;border:1px solid var(--color-base-300);border-radius:.9rem;background:var(--color-base-100);box-shadow:0 16px 36px #0002;max-height:15rem;overflow:auto;padding:.35rem}.sadr-v9-mention{position:relative}.sadr-v9-suggestion{display:flex;width:100%;padding:.5rem .65rem;border-radius:.65rem}.sadr-v9-suggestion:hover{background:var(--color-base-200)}
.sadr-v9-countdown{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap}.sadr-v9-countdown>span{font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--color-primary)}.sadr-v9-countdown>small{font-size:.68rem;color:color-mix(in oklab,var(--color-base-content) 50%,transparent);margin-inline-end:.45rem}.sadr-v9-timer{display:grid;justify-items:center;gap:.75rem;padding:1rem}.sadr-v9-timer output{font:800 2rem/1 ui-monospace,monospace;direction:ltr}.sadr-v9-timer>div{display:flex;gap:.4rem}.sadr-v9-indicator{position:relative;display:inline-flex}.sadr-v9-indicator>[data-indicator]{position:absolute;inset-block-start:-.55rem;inset-inline-end:-.55rem;min-width:1.25rem}.sadr-v9-link{font-weight:650;text-underline-offset:3px}.sadr-v9-swap{display:inline-grid;place-items:center;border:1px solid var(--color-base-300);border-radius:.85rem;background:var(--color-base-100);padding:.5rem .8rem}.sadr-v9-swap [data-swap-on]{display:none}.sadr-v9-swap[aria-pressed="true"] [data-swap-off]{display:none}.sadr-v9-swap[aria-pressed="true"] [data-swap-on]{display:inline}.sadr-v9-toggle-group{display:inline-flex;gap:.25rem;padding:.25rem;border:1px solid var(--color-base-300);border-radius:1rem;background:var(--color-base-200)}.sadr-v9-toggle-group [aria-pressed="true"]{background:var(--color-primary);color:var(--color-primary-content);border-color:var(--color-primary)}.sadr-v9-theme-controller{display:flex;align-items:center;gap:.4rem}.sadr-v9-speed-dial{position:relative;display:inline-grid;justify-items:center}.sadr-v9-speed-items{position:absolute;bottom:calc(100% + .5rem);display:grid;gap:.4rem}.sadr-v9-recurrence{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:.5rem}.sadr-v9-multi-calendar [data-multi-calendar-host]{display:grid;grid-template-columns:repeat(var(--months,2),minmax(13rem,1fr));gap:.75rem}.sadr-v9-range-fields,.sadr-v9-location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.sadr-v9-location-grid{grid-template-columns:1fr 1fr auto}.sadr-v9-currency-input .input{display:flex;align-items:center;gap:.5rem}.sadr-v9-kpi-card{display:flex;gap:.8rem;align-items:center;border:1px solid var(--color-base-300);border-radius:1.15rem;background:var(--color-base-100);padding:.9rem 1rem}.sadr-v9-kpi-icon{display:grid;place-items:center;inline-size:2.8rem;block-size:2.8rem;border-radius:1rem;background:color-mix(in oklab,var(--color-primary) 10%,var(--color-base-100));color:var(--color-primary)}.sadr-v9-kpi-card small,.sadr-v9-kpi-card strong,.sadr-v9-kpi-change{display:block}.sadr-v9-kpi-card strong{font-size:1.35rem;margin-top:.12rem}.sadr-v9-kpi-change{font-size:.7rem;color:color-mix(in oklab,var(--color-base-content) 52%,transparent)}.sadr-v9-kpi-card[data-trend="up"] .sadr-v9-kpi-change{color:var(--color-success)}.sadr-v9-kpi-card[data-trend="down"] .sadr-v9-kpi-change{color:var(--color-error)}
.sadr-v9-range-navigator{padding:.9rem;border:1px solid var(--color-base-300);border-radius:1rem;background:var(--color-base-100)}.sadr-v9-range-track{display:grid;grid-template-areas:"stack"}.sadr-v9-range-track input{grid-area:stack;width:100%;pointer-events:none;background:transparent}.sadr-v9-range-track input::-webkit-slider-thumb{pointer-events:auto}.sadr-v9-range-navigator output{display:block;text-align:center;margin-top:.4rem;font-size:.75rem;color:color-mix(in oklab,var(--color-base-content) 55%,transparent)}.sadr-v9-chart-toolbar{display:flex;gap:.4rem;flex-wrap:wrap}.sadr-v9-grid-tool{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.sadr-v9-grid-filter-panel{border:1px solid var(--color-base-300);border-radius:1rem;padding:.75rem;background:var(--color-base-100)}.sadr-v9-grid-group-panel{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.25rem;border:1px dashed color-mix(in oklab,var(--color-primary) 40%,var(--color-base-300));border-radius:1rem;background:color-mix(in oklab,var(--color-primary) 5%,var(--color-base-100));color:color-mix(in oklab,var(--color-base-content) 58%,transparent);font-size:.78rem}

.sadr-v9-heatmap .sadr-v9-component-body,.sadr-v9-calendar-heatmap .sadr-v9-component-body{display:grid;grid-template-columns:repeat(12,1fr);gap:.3rem}.sadr-v9-heatmap .sadr-v9-component-body>*{aspect-ratio:1;border-radius:.25rem;background:color-mix(in oklab,var(--color-primary) calc(var(--level,1)*15%),var(--color-base-200))}.sadr-v9-funnel-chart .sadr-v9-component-body,.sadr-v9-waterfall-chart .sadr-v9-component-body,.sadr-v9-stock-chart .sadr-v9-component-body,.sadr-v9-sankey .sadr-v9-component-body,.sadr-v9-treemap .sadr-v9-component-body,.sadr-v9-geo-chart .sadr-v9-component-body,.sadr-v9-bullet-chart .sadr-v9-component-body{min-height:14rem;background:linear-gradient(180deg,color-mix(in oklab,var(--color-primary) 4%,var(--color-base-100)),var(--color-base-100));display:grid;place-items:center}.sadr-v9-dashboard-builder .sadr-v9-component-body,.sadr-v9-widget-grid .sadr-v9-component-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.75rem;min-height:16rem}.sadr-v9-dashboard-builder .sadr-v9-component-body>*{grid-column:span 4}.sadr-v9-workflow-designer .sadr-v9-component-body,.sadr-v9-rule-builder .sadr-v9-component-body,.sadr-v9-query-builder .sadr-v9-component-body{min-height:15rem;background:radial-gradient(circle,color-mix(in oklab,var(--color-base-300) 75%,transparent) 1px,transparent 1px);background-size:18px 18px}.sadr-v9-audit-timeline .sadr-v9-component-body,.sadr-v9-activity-log .sadr-v9-component-body{display:grid;gap:.5rem}.sadr-v9-role-editor .sadr-v9-component-body{overflow:auto}.sadr-v9-master-detail .sadr-v9-component-body{display:grid;grid-template-columns:minmax(16rem,1fr) minmax(18rem,1.2fr);gap:.75rem}.sadr-v9-accessibility .sadr-v9-component-body,.sadr-v9-keyboard-help .sadr-v9-component-body{display:grid;gap:.5rem}

/* V9 refinements for existing controls without breaking markup */
.sadr-data-table{box-shadow:0 12px 28px color-mix(in oklab,var(--color-base-content) 6%,transparent);border-radius:1.35rem!important}.sadr-data-table .sadr-table-toolbar{padding:.8rem 1rem!important;gap:.6rem!important}.sadr-data-table .sadr-table-viewport{overflow-x:auto;scrollbar-width:thin}.sadr-data-table[data-fit-desktop="true"] table{width:100%;table-layout:auto}.sadr-data-table[data-fit-desktop="true"] th,.sadr-data-table[data-fit-desktop="true"] td{padding-inline:.55rem;white-space:normal;line-height:1.5}.sadr-data-table[data-density="compact"] th,.sadr-data-table[data-density="compact"] td{padding-block:.5rem;font-size:.76rem}.sadr-data-table thead{background:color-mix(in oklab,var(--color-base-200) 64%,transparent)}.sadr-data-table tbody tr{border-color:color-mix(in oklab,var(--color-base-300) 78%,transparent)}.sadr-data-table[data-row-hover="true"] tbody tr:hover{background:color-mix(in oklab,var(--color-primary) 4%,var(--color-base-100))}.sadr-row-actions{gap:.28rem!important}.sadr-row-actions .btn{border-radius:.8rem;min-height:2rem;height:2rem;padding-inline:.55rem;box-shadow:none}.sadr-row-actions[data-mode="icon"] .btn{width:2rem;padding:0}.sadr-modal-box,.modal-box{border:1px solid var(--color-base-300);border-radius:1.5rem!important;box-shadow:0 24px 70px #0002}.sadr-modal-header{padding:.9rem 1.1rem!important}.sadr-modal-footer{padding:.75rem 1rem!important}.sadr-header,.sadr-footer,.sadr-card{transition:background-color .18s ease,border-color .18s ease,color .18s ease}

@media (max-width:1024px){.sadr-v9-transfer-list{grid-template-columns:1fr}.sadr-v9-transfer-actions{grid-template-columns:1fr 1fr}.sadr-v9-transfer-actions button svg{transform:rotate(90deg)}.sadr-v9-master-detail{grid-template-columns:1fr!important}.sadr-v9-dashboard-builder .sadr-v9-component-body>*{grid-column:span 6}.sadr-v9-recurrence{grid-template-columns:1fr 1fr}.sadr-v9-location-grid{grid-template-columns:1fr 1fr}.sadr-v9-location-grid .btn{grid-column:1/-1}}
@media (max-width:640px){.sadr-v9-surface{border-radius:1rem}.sadr-v9-component-head{padding:.8rem}.sadr-v9-component-body{padding:.75rem}.sadr-v9-range-fields,.sadr-v9-location-grid,.sadr-v9-recurrence{grid-template-columns:1fr}.sadr-v9-dashboard-builder .sadr-v9-component-body>*{grid-column:1/-1}.sadr-v9-multi-calendar [data-multi-calendar-host]{grid-template-columns:1fr}.sadr-v9-countdown>span{font-size:1.15rem}.sadr-data-table .sadr-table-toolbar>div:last-child{width:100%}.sadr-data-table .sadr-table-toolbar .btn{flex:1 1 auto}.sadr-row-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.sadr-row-actions .btn{width:100%!important}}
.sadr-v9-frozen-row{position:sticky;top:calc(var(--frozen-index,0)*2.4rem);z-index:3;background:var(--color-base-100)}.sadr-v9-reorderable-row{cursor:grab}.sadr-v9-reorderable-row.is-dragging{opacity:.5}.sadr-data-table td.is-selected{outline:2px solid var(--color-primary);outline-offset:-2px;background:color-mix(in oklab,var(--color-primary) 9%,var(--color-base-100))}

/* SadrHelper 10 — validation and production states */
[data-sadr-field-validation="true"].is-invalid .input,
[data-sadr-field-validation="true"].is-invalid .select,
[data-sadr-field-validation="true"].is-invalid .textarea,
[data-sadr-field-validation="true"].is-invalid input,
[data-sadr-field-validation="true"].is-invalid select,
[data-sadr-field-validation="true"].is-invalid textarea{border-color:color-mix(in oklab,var(--color-error) 72%,var(--color-base-300));outline-color:color-mix(in oklab,var(--color-error) 22%,transparent)}
[data-sadr-field-validation="true"].is-valid[data-show-valid-state="true"] .input,
[data-sadr-field-validation="true"].is-valid[data-show-valid-state="true"] .select,
[data-sadr-field-validation="true"].is-valid[data-show-valid-state="true"] .textarea,
[data-sadr-field-validation="true"].is-valid[data-show-valid-state="true"] input,
[data-sadr-field-validation="true"].is-valid[data-show-valid-state="true"] select,
[data-sadr-field-validation="true"].is-valid[data-show-valid-state="true"] textarea{border-color:color-mix(in oklab,var(--color-success) 58%,var(--color-base-300))}
[data-sadr-field-validation="true"].is-invalid [data-sadr-input-hint],
[data-sadr-field-validation="true"] .field-validation-error{color:var(--color-error);font-weight:600}
.sadr-validation-summary[hidden]{display:none!important}.sadr-validation-summary [data-sadr-validation-content] ul{margin:.35rem 0 0;padding-inline-start:1.2rem;display:grid;gap:.2rem}.sadr-validation-summary [data-sadr-validation-content] li{font-size:.72rem;line-height:1.75}
@media (prefers-reduced-motion:reduce){[data-sadr-field-validation="true"] *{scroll-behavior:auto!important;transition-duration:.01ms!important}}
