:root { color-scheme: light; }
html.dark { color-scheme: dark; }
* { box-sizing: border-box; border-color: #e4e7ec; }
html { min-height: 100%; }
body { margin: 0; font-family: Outfit, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #f9fafb; color: #101828; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.dark body { background: #101828; color: rgba(255,255,255,.9); }
button:not(:disabled), [role="button"]:not(:disabled), a { cursor: pointer; }
svg { display: block; }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
.custom-scrollbar::-webkit-scrollbar { width: 6px; height: 6px; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #e4e7ec; border-radius: 999px; }
.dark .custom-scrollbar::-webkit-scrollbar-thumb { background: #344054; }
.svg-icon { display:inline-block; width:1.5rem; height:1.5rem; color: currentColor; background: currentColor; -webkit-mask: var(--icon-url) no-repeat center / contain; mask: var(--icon-url) no-repeat center / contain; flex-shrink:0; vertical-align: middle; }
.svg-icon.sm { width:1.25rem; height:1.25rem; }
.svg-icon.lg { width:1.75rem; height:1.75rem; }

.aswati-brand { min-width: 0; text-decoration: none; }
.brand-icon-wrap { display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border-radius: 10px; overflow: hidden; flex: 0 0 auto; }
.brand-icon { width: 34px; height: 34px; object-fit: contain; object-position: center; display: block; }
.brand-title { color:#101828; font-weight:700; font-size:20px; line-height:30px; letter-spacing:-.02em; white-space:nowrap; }
.dark .brand-title { color:rgba(255,255,255,.9); }
.logo-full { width: 176px; max-height: 42px; object-fit: contain; object-position: left center; }
.logo-mobile { width: 150px; max-height: 44px; object-fit: contain; }
.logo-icon { width: 42px; height: 42px; object-fit: contain; }
.sidebar-logo-only { width: 218px; height: auto; max-height: 104px; object-fit: contain; object-position: left center; display:block; }
[dir="rtl"] .sidebar-logo-only { object-position: right center; }
.logo-collapsed { display:none; }

.menu-item { position: relative; display:flex; align-items:center; width:100%; gap:.75rem; padding:.5rem .75rem; border-radius:.5rem; font-weight:500; font-size:14px; line-height:20px; transition: all .15s ease; border:0; background: transparent; text-align: inherit; min-height: 36px; }
.menu-item-active { background:#ecf3ff; color:#465fff; }
.menu-item-inactive { color:#344054; }
.menu-item-inactive:hover { background:#f2f4f7; color:#344054; }
.dark .menu-item-active { background: rgba(70,95,255,.12); color:#7592ff; }
.dark .menu-item-inactive { color:#d0d5dd; }
.dark .menu-item-inactive:hover { background: rgba(255,255,255,.05); color:#d0d5dd; }
.menu-item-icon-active { color:#465fff; display:inline-flex; }
.menu-item-icon-inactive { color:#667085; display:inline-flex; }
.dark .menu-item-icon-active { color:#7592ff; }
.dark .menu-item-icon-inactive { color:#98a2b3; }
.menu-item-text { flex: 0 1 auto; }
.menu-dropdown-item { position: relative; display:flex; align-items:center; gap:.75rem; border-radius:.5rem; padding:.5rem .75rem; font-size:14px; line-height:20px; font-weight:500; transition:all .15s ease; min-height: 36px; text-decoration: none; }
.menu-dropdown-item-active { color:#465fff; background:#ecf3ff; }
.menu-dropdown-item-inactive { color:#667085; }
.menu-dropdown-item-inactive:hover { color:#344054; background:#f2f4f7; }
.dark .menu-dropdown-item-active { color:#7592ff; background:rgba(70,95,255,.12); }
.dark .menu-dropdown-item-inactive { color:#98a2b3; }
.dark .menu-dropdown-item-inactive:hover { color:#d0d5dd; background:rgba(255,255,255,.05); }
.menu-new-badge { margin-inline-start:auto; display:inline-flex; align-items:center; border-radius:999px; padding:.125rem .5rem; background:#ecfdf3; color:#039855; font-size:11px; line-height:18px; font-weight:700; text-transform:uppercase; }
.dark .menu-new-badge { background:rgba(18,183,106,.15); color:#32d583; }

.app-sidebar { overflow: hidden; }
.app-sidebar .no-scrollbar { height: calc(100vh - 96px); padding-bottom: 90px; }
.sidebar-collapsed .sidebar-label, .sidebar-collapsed .sidebar-section-label, .sidebar-collapsed .sidebar-chevron, .sidebar-collapsed .sidebar-badge, .sidebar-collapsed .brand-title { display:none; }
.sidebar-collapsed .sidebar-nav-list { align-items:center; }
.sidebar-collapsed .menu-item { justify-content:center; padding-left:.75rem; padding-right:.75rem; width: 44px; }
.sidebar-collapsed .submenu-panel { display:none !important; }
.sidebar-collapsed .logo-expanded { display:none; }
.sidebar-collapsed .logo-collapsed { display:block; }
.sidebar-overlay { display:none; position:fixed; inset:0; z-index:40; background:rgba(16,24,40,.4); }
.sidebar-overlay.is-open { display:block; }
.dropdown-panel { display:none; }
.dropdown-panel.is-open { display:block; }
.submenu-panel { display:none; }
.submenu-panel.is-open { display:block; }
.submenu-chevron { transition: transform .2s ease, color .2s ease; }
.submenu-chevron.is-open { transform: rotate(180deg); color:#465fff; }
[dir="rtl"] .submenu-list { margin-left:0; margin-right:2.25rem; }
[dir="rtl"] .menu-item, [dir="rtl"] .menu-dropdown-item { text-align:right; }
[dir="rtl"] .sidebar-chevron { margin-left:0; margin-right:auto; }
[dir="rtl"] .menu-new-badge { margin-inline-start:0; margin-inline-end:auto; }

[dir="rtl"] .search-icon { left:auto; right:1rem; }
[dir="rtl"] .search-input { padding-left:3.5rem; padding-right:3rem; }
[dir="rtl"] .search-kbd { right:auto; left:.625rem; }
[dir="rtl"] .ms-auto { margin-left:0; margin-right:auto; }
[dir="rtl"] .me-auto { margin-right:0; margin-left:auto; }
[dir="rtl"] .absolute.right-0 { right:auto; left:0; }
.progress-bar { height:.5rem; border-radius:9999px; background:#465fff; transition: width .2s ease; }
.card-gradient { background: linear-gradient(135deg, rgba(70,95,255,.08), rgba(122,90,248,.08)); }
.install-step-line { height:2px; flex:1; background:#e4e7ec; }
.dark .install-step-line { background:#1d2939; }
.install-step-active { background:#465fff; }

.aswati-table { width:100%; border-collapse: collapse; }
.aswati-table th { padding: 12px 16px; text-align:left; font-size:12px; line-height:18px; font-weight:500; text-transform:uppercase; color:#667085; border-bottom:1px solid #f2f4f7; }
.aswati-table td { padding: 16px; font-size:14px; line-height:20px; color:#667085; border-bottom:1px solid #f9fafb; }
.aswati-table td:first-child { color:#101828; font-weight:500; }
.dark .aswati-table th { color:#98a2b3; border-color:#1d2939; }
.dark .aswati-table td { color:#98a2b3; border-color:#1d2939; }
.dark .aswati-table td:first-child { color:rgba(255,255,255,.9); }
[dir="rtl"] .aswati-table th { text-align:right; }

.chart-bars { display:flex; align-items:flex-end; gap:20px; height:180px; padding: 18px 8px 0; border-bottom: 1px solid #f2f4f7; }
.chart-bars span { flex:1; min-width:16px; max-width:26px; border-radius: 6px 6px 0 0; background:#465fff; opacity:.95; }
.dark .chart-bars { border-color:#1d2939; }
.area-chart { height:220px; width:100%; border-radius:14px; background: linear-gradient(180deg, rgba(70,95,255,.18), rgba(70,95,255,.02)); border-bottom:1px solid #f2f4f7; position:relative; overflow:hidden; }
.area-chart svg { width:100%; height:100%; }
.radial-card { position:relative; height:220px; display:flex; align-items:center; justify-content:center; }
.radial-card svg { position:absolute; width:220px; height:150px; }

@media (min-width:1024px){
  .app-main { margin-left:290px; }
  .app-main.sidebar-collapsed-main { margin-left:90px; }
}
@media (max-width:1023.98px){
  .app-sidebar { transform: translateX(-100%); }
  .app-sidebar.mobile-open { transform: translateX(0); }
  [dir="rtl"] .app-sidebar { transform: translateX(100%); left:auto; right:0; border-left:1px solid #e4e7ec; border-right:0; }
  [dir="rtl"] .app-sidebar.mobile-open { transform: translateX(0); }
}
[dir="rtl"] .app-sidebar { left:auto !important; right:0 !important; border-right:0 !important; border-left:1px solid #e4e7ec; }
html.dark[dir="rtl"] .app-sidebar { border-left-color:#1d2939; }
[dir="rtl"] .app-sidebar .justify-start { justify-content:flex-start; }
@media (min-width:1024px){
  [dir="rtl"] .app-main { margin-left:0; margin-right:290px; }
  [dir="rtl"] .app-main.sidebar-collapsed-main { margin-left:0; margin-right:90px; }
}


/* Audio preview controls */
.audio-preview-btn {
  position: relative;
  overflow: hidden;
}
.audio-preview-btn .audio-preview-stop {
  display: none;
}
.audio-preview-btn[data-audio-state="playing"] {
  border-color: #465fff;
  background: #ecf3ff;
  color: #465fff;
  box-shadow: 0 0 0 4px rgba(70, 95, 255, 0.08);
}
html.dark .audio-preview-btn[data-audio-state="playing"] {
  background: rgba(70, 95, 255, 0.14);
  border-color: rgba(70, 95, 255, 0.5);
  color: #9cb9ff;
}
.audio-preview-btn[data-audio-state="playing"] .audio-preview-play {
  display: none;
}
.audio-preview-btn[data-audio-state="playing"] .audio-preview-stop {
  display: inline-flex;
}
.audio-preview-btn[data-audio-state="playing"]::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 2px;
  background: linear-gradient(90deg, #465fff, #7c3aed, #0ea5e9);
  animation: aswatiAudioPulse 1.4s linear infinite;
}
@keyframes aswatiAudioPulse {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}


/* Aswati polished action buttons */
.aswati-actions-balanced a,
.aswati-actions-balanced button {
  min-width: 96px;
  justify-content: center;
  white-space: nowrap;
}
@media (max-width: 420px) {
  .aswati-actions-balanced {
    display: grid !important;
    grid-template-columns: 1fr;
  }
  .aswati-actions-balanced a,
  .aswati-actions-balanced button {
    width: 100%;
  }
}


/* Sidebar polish: reduce top whitespace and improve section separators */
.app-sidebar > div:first-of-type {
  padding-top: 1rem !important;
  padding-bottom: .75rem !important;
}
.sidebar-nav-list {
  gap: .45rem !important;
}
.sidebar-section-label {
  width: 100%;
  border-radius: .75rem;
  background: #f2f4f7;
  padding: .45rem .75rem;
  margin-bottom: .55rem !important;
  letter-spacing: .04em;
}
html.dark .sidebar-section-label {
  background: rgba(255,255,255,.045);
}
.app-sidebar nav > div {
  gap: .85rem !important;
}
.app-sidebar .menu-item {
  padding-top: .58rem !important;
  padding-bottom: .58rem !important;
}


/* Final UI completion: responsive tables, elegant confirmations, toasts, loading, empty states */
.aswati-table-scroll,
.overflow-x-auto {
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.overflow-x-auto table {
  min-width: 760px;
}
@media (max-width: 640px) {
  .overflow-x-auto {
    border-radius: 1rem;
  }
  .overflow-x-auto table th,
  .overflow-x-auto table td {
    white-space: nowrap;
    padding-inline: .875rem !important;
  }
}

.aswati-confirm-backdrop {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: grid;
  place-items: center;
  background: rgba(17, 24, 39, .55);
  padding: 1rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}
.aswati-confirm-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}
.aswati-confirm-dialog {
  width: min(100%, 420px);
  transform: translateY(8px) scale(.98);
  transition: transform .18s ease;
}
.aswati-confirm-backdrop.is-open .aswati-confirm-dialog {
  transform: translateY(0) scale(1);
}

.aswati-toast-region {
  position: fixed;
  inset-inline-end: 1rem;
  top: 1rem;
  z-index: 999999;
  display: grid;
  gap: .75rem;
  width: min(420px, calc(100vw - 2rem));
}
html[dir="rtl"] .aswati-toast-region {
  inset-inline-end: auto;
  inset-inline-start: 1rem;
}
.aswati-toast {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  border-radius: 1rem;
  border: 1px solid #e5e7eb;
  background: #fff;
  padding: .95rem 1rem;
  box-shadow: 0 12px 40px rgba(16, 24, 40, .16);
  animation: aswatiToastIn .22s ease-out;
}
html.dark .aswati-toast {
  border-color: #1f2937;
  background: #111827;
}
.aswati-toast-dot {
  margin-top: .25rem;
  height: .65rem;
  width: .65rem;
  border-radius: 999px;
  background: #465fff;
  flex: 0 0 auto;
}
.aswati-toast-success .aswati-toast-dot { background: #12b76a; }
.aswati-toast-error .aswati-toast-dot { background: #f04438; }
.aswati-toast-warning .aswati-toast-dot { background: #f79009; }
@keyframes aswatiToastIn {
  from { transform: translateY(-8px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

.aswati-loading {
  position: relative;
  pointer-events: none;
  opacity: .72;
}
.aswati-loading::after {
  content: "";
  width: 1rem;
  height: 1rem;
  margin-inline-start: .5rem;
  border-radius: 999px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  display: inline-block;
  vertical-align: -2px;
  animation: aswatiSpin .8s linear infinite;
}
@keyframes aswatiSpin { to { transform: rotate(360deg); } }

.aswati-empty-state {
  border: 1px dashed #d0d5dd;
  border-radius: 1.25rem;
  background: linear-gradient(180deg, rgba(249,250,251,.9), rgba(255,255,255,.98));
  padding: 2rem;
  text-align: center;
}
html.dark .aswati-empty-state {
  border-color: #344054;
  background: rgba(255,255,255,.03);
}
.aswati-card-equal {
  height: 100%;
}


/* Aswati voice picker library */
.aswati-voice-picker {
  border: 1px solid #e5e7eb;
  border-radius: 1.25rem;
  background: #fff;
  overflow: hidden;
}
html.dark .aswati-voice-picker {
  border-color: #1f2937;
  background: rgba(255,255,255,.03);
}
.aswati-voice-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid #e5e7eb;
  background: #fff;
}
html.dark .aswati-voice-tabs {
  border-color: #1f2937;
  background: rgba(17,24,39,.55);
}
.aswati-voice-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: 1rem .75rem;
  color: #667085;
  font-size: .92rem;
  font-weight: 600;
  border-bottom: 3px solid transparent;
  transition: all .18s ease;
}
.aswati-voice-tab.is-active {
  color: #10b981;
  border-bottom-color: #10b981;
  background: linear-gradient(180deg, rgba(16,185,129,.08), rgba(255,255,255,0));
}
html.dark .aswati-voice-tab.is-active {
  background: rgba(16,185,129,.10);
}
.aswati-voice-tools {
  padding: 1rem;
  border-bottom: 1px solid #eef2f7;
}
html.dark .aswati-voice-tools { border-color: #1f2937; }
.aswati-voice-search {
  display: flex;
  align-items: center;
  gap: .75rem;
  height: 3.4rem;
  border: 1px solid #d0d5dd;
  border-radius: .85rem;
  padding: 0 .9rem;
  color: #98a2b3;
  background: #fff;
}
html.dark .aswati-voice-search {
  border-color: #344054;
  background: #111827;
}
.aswati-voice-search input {
  width: 100%;
  height: 100%;
  outline: none;
  background: transparent;
  color: #101828;
  font-size: .95rem;
}
html.dark .aswati-voice-search input { color: #f9fafb; }
.aswati-voice-filter-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: .75rem;
  margin-top: .9rem;
}
.aswati-voice-filter-row select,
.aswati-voice-reset,
.aswati-voice-shuffle {
  height: 3rem;
  border: 1px solid #d0d5dd;
  border-radius: .8rem;
  background: #fff;
  color: #344054;
  font-weight: 600;
  padding: 0 .9rem;
}
html.dark .aswati-voice-filter-row select,
html.dark .aswati-voice-reset,
html.dark .aswati-voice-shuffle {
  border-color: #344054;
  background: #111827;
  color: #d0d5dd;
}
.aswati-voice-reset,
.aswati-voice-shuffle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
}
.aswati-voice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .95rem;
  max-height: 720px;
  overflow: auto;
  padding: 1rem;
}
@media (min-width: 1280px) {
  .aswati-voice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .aswati-voice-tabs { grid-template-columns: 1fr; }
  .aswati-voice-filter-row { grid-template-columns: 1fr; }
  .aswati-voice-grid { grid-template-columns: 1fr; max-height: none; }
}
.aswati-voice-card {
  min-height: 13.2rem;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  padding: 1rem;
  background: #fff;
  transition: all .18s ease;
}
html.dark .aswati-voice-card {
  border-color: #273142;
  background: rgba(255,255,255,.025);
}
.aswati-voice-card:hover {
  border-color: #86efac;
  box-shadow: 0 14px 30px rgba(16,24,40,.08);
  transform: translateY(-1px);
}
.aswati-voice-card.is-selected {
  border-color: #10b981;
  background: #ecfdf5;
  box-shadow: 0 0 0 2px rgba(16,185,129,.12), 0 16px 35px rgba(16,185,129,.12);
}
html.dark .aswati-voice-card.is-selected {
  background: rgba(16,185,129,.12);
}
.aswati-voice-card-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: .75rem;
}
.aswati-voice-card-head h3 {
  color: #101828;
  font-weight: 800;
  font-size: 1.02rem;
  line-height: 1.35;
}
html.dark .aswati-voice-card-head h3 { color: #fff; }
.aswati-voice-badge {
  border: 1px solid #6ee7b7;
  border-radius: .5rem;
  color: #059669;
  background: #ecfdf5;
  padding: .25rem .55rem;
  font-size: .72rem;
  font-weight: 800;
}
.aswati-voice-badge.is-pro {
  border-color: #c4b5fd;
  color: #6d28d9;
  background: #f5f3ff;
}
.aswati-voice-select-area {
  width: 100%;
  display: flex;
  justify-content: center;
  margin-top: .8rem;
}
.aswati-voice-select-area img {
  width: 4.2rem;
  height: 4.2rem;
  border-radius: 999px;
  object-fit: cover;
  border: 3px solid #fff;
  box-shadow: 0 10px 20px rgba(16,24,40,.13);
}
html.dark .aswati-voice-select-area img { border-color: #111827; }
.aswati-voice-tags {
  margin-top: .8rem;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .35rem;
}
.aswati-voice-tags span {
  border-radius: .45rem;
  background: #eff6ff;
  color: #2563eb;
  font-size: .68rem;
  font-weight: 800;
  padding: .18rem .48rem;
}
html.dark .aswati-voice-tags span {
  background: rgba(37,99,235,.16);
  color: #93c5fd;
}
.aswati-voice-actions {
  display: grid;
  grid-template-columns: 1fr 3rem;
  gap: .7rem;
  margin-top: .95rem;
}
.aswati-voice-sample,
.aswati-voice-heart {
  height: 2.8rem;
  border: 1px solid #d0d5dd;
  border-radius: .7rem;
  background: #f9fafb;
  color: #344054;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  font-weight: 700;
  transition: all .16s ease;
}
html.dark .aswati-voice-sample,
html.dark .aswati-voice-heart {
  border-color: #344054;
  background: #111827;
  color: #d0d5dd;
}
.aswati-voice-sample:hover,
.aswati-voice-heart:hover {
  background: #f3f4f6;
}
.aswati-voice-heart.is-favorite {
  border-color: #fecdd3;
  background: #fff1f2;
  color: #e11d48;
}
.aswati-voice-empty {
  margin: 1rem;
  border: 1px dashed #d0d5dd;
  border-radius: 1rem;
  padding: 1.5rem;
  color: #667085;
  text-align: center;
}
