/* Localsewa v32.9.7 — shadcn-compatible dialog & overlay system
   Adds semantic contracts and aligns existing overlays without changing business logic. */
:root {
  --ls-ui-overlay-bg: rgb(7 20 13 / .46);
  --ls-ui-dialog-w: min(32rem, calc(100vw - 2rem));
  --ls-ui-sheet-w: min(24rem, 84vw);
  --ls-ui-overlay-z: 9998;
  --ls-ui-content-z: 9999;
  --ls-ui-dialog-shadow: 0 24px 72px rgb(8 28 17 / .18), 0 8px 24px rgb(8 28 17 / .08);
}

.ls-ui-overlay {
  position: fixed; inset: 0; z-index: var(--ls-ui-overlay-z);
  background: var(--ls-ui-overlay-bg);
  backdrop-filter: blur(2px);
}
.ls-ui-dialog,
.ls-ui-alert-dialog {
  position: fixed; left: 50%; top: 50%; z-index: var(--ls-ui-content-z);
  width: var(--ls-ui-dialog-w); max-height: min(88dvh, 46rem);
  transform: translate(-50%, -50%); overflow: hidden;
  border: 1px solid var(--border); border-radius: 1.25rem;
  background: var(--popover); color: var(--popover-foreground);
  box-shadow: var(--ls-ui-dialog-shadow);
}
.ls-ui-dialog__header { padding: 1.25rem 1.25rem .75rem; }
.ls-ui-dialog__title { margin: 0; font-size: 1.0625rem; line-height: 1.3; font-weight: 650; letter-spacing: -.018em; }
.ls-ui-dialog__description { margin: .375rem 0 0; color: var(--muted-foreground); font-size: .875rem; line-height: 1.55; }
.ls-ui-dialog__body { min-height: 0; overflow-y: auto; padding: .5rem 1.25rem 1rem; overscroll-behavior: contain; }
.ls-ui-dialog__footer { display: flex; justify-content: flex-end; gap: .625rem; padding: .875rem 1.25rem 1.25rem; border-top: 1px solid var(--border); }
.ls-ui-dialog__close { position: absolute; top: .875rem; right: .875rem; width: 2.25rem; height: 2.25rem; border: 0; border-radius: .75rem; background: transparent; color: var(--muted-foreground); }
.ls-ui-dialog__close:hover { background: var(--muted); color: var(--foreground); }
.ls-ui-dialog__close:focus-visible { outline: none; box-shadow: var(--ls-ui-focus-ring); }

.ls-ui-sheet {
  position: fixed; z-index: var(--ls-ui-content-z); background: var(--popover); color: var(--popover-foreground);
  box-shadow: var(--ls-ui-dialog-shadow); overflow: hidden;
}
.ls-ui-sheet--left { inset: 0 auto 0 0; width: var(--ls-ui-sheet-w); border-right: 1px solid var(--border); }
.ls-ui-sheet--right { inset: 0 0 0 auto; width: var(--ls-ui-sheet-w); border-left: 1px solid var(--border); }
.ls-ui-sheet--bottom { inset: auto 0 0 0; max-height: calc(100dvh - 3rem); border: 1px solid var(--border); border-bottom: 0; border-radius: 1.5rem 1.5rem 0 0; }
.ls-ui-sheet__header { padding: 1rem 1rem .75rem; }
.ls-ui-sheet__body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.ls-ui-sheet__footer { padding: .875rem 1rem max(.875rem, env(safe-area-inset-bottom)); border-top: 1px solid var(--border); }

.ls-ui-drawer { border-radius: 1.5rem 1.5rem 0 0; }
.ls-ui-drawer__handle { width: 2.5rem; height: .25rem; margin: .625rem auto .25rem; border-radius: 999px; background: #cdd9d1; }

.ls-ui-popover {
  z-index: var(--ls-ui-content-z); width: min(22rem, calc(100vw - 1.5rem));
  border: 1px solid var(--border); border-radius: 1rem; background: var(--popover); color: var(--popover-foreground);
  box-shadow: 0 14px 42px rgb(8 28 17 / .14); padding: .75rem;
}
.ls-ui-scroll-area { min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.ls-ui-separator { flex: none; background: var(--border); }
.ls-ui-separator[data-orientation="horizontal"], .ls-ui-separator--horizontal { width: 100%; height: 1px; }
.ls-ui-separator[data-orientation="vertical"], .ls-ui-separator--vertical { width: 1px; align-self: stretch; }

/* Migration adapters: align existing Localsewa overlays with the new surface contract. */
[role="dialog"][aria-modal="true"] { isolation: isolate; }
[role="dialog"][aria-modal="true"] > button:first-child {
  -webkit-tap-highlight-color: transparent;
}
[role="dialog"][aria-label="Notifications"] > section {
  border-color: var(--border) !important;
  border-radius: 18px !important;
  background: var(--popover) !important;
  box-shadow: 0 14px 42px rgb(8 28 17 / .14) !important;
}
[role="dialog"][aria-label="Provider navigation"] > aside,
aside[aria-label="Customer navigation"] {
  box-shadow: 18px 0 48px rgb(8 28 17 / .14) !important;
}
[role="dialog"][aria-modal="true"].fixed.inset-0.flex.items-end > :last-child:not(button) {
  border-color: var(--border) !important;
  box-shadow: var(--ls-ui-dialog-shadow) !important;
}

@media (min-width: 640px) {
  [role="dialog"][aria-modal="true"].fixed.inset-0.flex.items-end > :last-child:not(button) {
    border-radius: 20px !important;
  }
}
@media (max-width: 639.98px) {
  .ls-ui-dialog__footer { flex-direction: column-reverse; }
  .ls-ui-dialog__footer > * { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .ls-ui-overlay, .ls-ui-dialog, .ls-ui-alert-dialog, .ls-ui-sheet, .ls-ui-drawer, .ls-ui-popover { scroll-behavior: auto !important; }
}
