/* ============================================================================
 * LOGIN PAGE - Premium desktop app
 * ============================================================================
 * - Body/html transparency when Tauri shell shows background (see transparent-shell.css).
 * - Container allows clicks to pass through transparent areas; card has pointer-events.
 * - Desktop (Tauri): draggable title bar; cursor and user-select overrides.
 * - Autofill (e.g. Norpass): isolation + containment + stable autofill styles so
 *   password-manager injection doesn't break layout or cause UI to vanish.
 * - NordPass AutoSave dialog: .login-page uses position:fixed + isolation:isolate
 *   to maintain stacking context above injected overlays.
 * ============================================================================ */

/* Login page open: fast, smooth entrance animation (card fade + scale) */
.login-form-card-enter-wrap {
  opacity: 0;
  transform: scale(0.98) translateY(6px);
  transition: opacity 0.22s ease-out, transform 0.22s ease-out;
  will-change: opacity, transform;
}
.login-form-card-enter-wrap--active {
  opacity: 1;
  transform: scale(1) translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .login-form-card-enter-wrap {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

body.login-page-active,
html.login-page-active {
  background: transparent !important;
  -webkit-text-size-adjust: 100% !important;
  -moz-text-size-adjust: 100% !important;
  text-size-adjust: 100% !important;
}

/* Transparent background: viewport shows through (Tauri shell / window background) */
.login-page-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  background: transparent;
  background-color: transparent;
}

/* Keep login UI visible and in place after error or any re-render (no vanish/position shift) */
.login-page,
.login-container,
.login-form-card {
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  position: relative;
}
.login-page {
  position: fixed;
  inset: 0;
  z-index: 50;
  isolation: isolate;
  background: transparent;
  pointer-events: none;
}
.login-container {
  pointer-events: none;
}

/* Isolate login card from password-manager/autofill (e.g. Norpass) so injected DOM doesn't break layout */
.login-form-card {
  z-index: 1;
  isolation: isolate;
  contain: layout style;
  /* Avoid transition-driven reflow that can cause flicker after login attempt */
  transition: none;
}
.login-container {
  isolation: isolate;
}

@keyframes login-autofill-start {
  from { opacity: 1; }
  to { opacity: 1; }
}

/* Autofill: keep inputs stable so extension/browser autofill doesn't cause vanish or layout shift */
.login-form input:-webkit-autofill,
.login-form input:-webkit-autofill:hover,
.login-form input:-webkit-autofill:focus,
.login-form input:-webkit-autofill:active {
  /* Prevent sudden background/box-shadow that can trigger repaint and break stacking */
  -webkit-transition: background-color 5000s ease-in-out 0s, box-shadow 5000s ease-in-out 0s;
  transition: background-color 5000s ease-in-out 0s, box-shadow 5000s ease-in-out 0s;
  animation-name: login-autofill-start;
  animation-duration: 0.01s;
}
.login-form input:-webkit-autofill {
  -webkit-text-fill-color: var(--text, #0f172a);
  caret-color: var(--text, #0f172a);
}
.dark .login-form input:-webkit-autofill,
[data-theme="dark"] .login-form input:-webkit-autofill,
[data-theme$="-dark"] .login-form input:-webkit-autofill {
  -webkit-text-fill-color: var(--text, #e2e8f0);
  caret-color: var(--text, #e2e8f0);
}

/* Card: frosted glass over animated bg (no border outline; soft elevation only) */
.login-form-card {
  background: rgba(255, 255, 255, 0.72);
  border: 0;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}
.dark .login-form-card,
[data-theme="dark"] .login-form-card,
[data-theme$="-dark"] .login-form-card {
  background: rgba(20, 20, 20, 0.9);
  border: 0;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
}

/* Brand logo: base size, fills space where allowed */
.login-logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
  flex-shrink: 0;
}

/* Left header (WISDOM): same structure and sizes as register page */
.login-header-unified {
  padding-top: 0.3rem;
  padding-bottom: 0.3rem;
}
.login-branding-header {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.login-branding-header .login-logo {
  width: 32px;
  height: 32px;
  min-width: 32px;
  min-height: 32px;
  max-width: 32px;
  max-height: 32px;
  flex-shrink: 0;
}
.login-branding-text {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 0.25rem;
}
.login-brand-name {
  font-size: 0.875rem;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.025em;
  color: var(--foreground, #0f172a);
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0;
}
.login-branding-header .login-tagline {
  font-size: 0.625rem;
  line-height: 1.2;
  margin: 0;
}
.login-tagline {
  color: var(--muted-foreground, #515e71);
  font-weight: 500;
  letter-spacing: 0.4px;
  display: block;
  width: 100%;
  max-width: 100%;
  overflow: visible;
}
.login-tagline-word {
  display: inline-block;
  white-space: nowrap;
}
.login-tagline-letter {
  display: inline-block;
  color: var(--muted-foreground, #515e71);
  font-weight: 500;
  animation: loginColorWave 5.5s ease-in-out infinite;
  transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  position: relative;
  font-kerning: normal;
  font-feature-settings: normal;
  font-variant-ligatures: none;
  font-synthesis: none;
}
@keyframes loginColorWave {
  0%, 100% { color: var(--muted-foreground, #515e71); }
  5% { color: #0f7bff; }
  10% { color: #0f7bff; }
  15% { color: var(--muted-foreground, #515e71); }
}

/* Footer branding (JMSIT): same sizes as register page */
.login-footer-branding {
  display: flex;
  flex-direction: column;
}
.login-footer-branding .login-branding-section {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  gap: 0.5rem;
}
.login-footer-branding .login-logo-wrapper {
  flex: 1;
  min-height: 0;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  overflow: hidden;
}
/* Company logo bigger via scale; no layout change so form dimensions stay fixed */
.login-footer-branding .login-logo-wrapper .login-logo {
  width: auto;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  transform: scale(1.35);
  transform-origin: center center;
}
.login-footer-branding h2 {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.025em;
  line-height: 1.25;
  margin: 0;
}
@media (min-width: 640px) {
  .login-footer-branding h2 {
    font-size: 1.125rem;
  }
}
.login-footer-branding p {
  font-size: 0.75rem;
  line-height: 1.25;
  margin: 0;
}

.login-form-card-inner {
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}

/* Reserved slot for error/session message to avoid card shift/flicker when it appears */
.login-form-message-slot {
  min-height: 1.25rem;
}

/* Form field wrappers: stable height so autofill-injected nodes don't collapse layout */
.login-form [data-login-field] {
  min-height: 0;
}
.login-form .relative {
  min-height: 2rem; /* h-8 */
}

.login-form-card,
.login-form-card-inner,
.login-form,
.login-header-unified,
.login-branding-header,
.login-window-controls,
.login-left-column,
.login-footer-branding {
  pointer-events: auto;
}

/* Premium footer refinements */
.login-form-card [data-testid="LoginPage-footer"] {
  letter-spacing: 0.02em;
}

/* Horizontal layout: balanced height */
@media (min-width: 640px) {
  .login-form-card {
    max-height: min(480px, 85vh);
  }
  .login-form-card-inner {
    overflow-y: auto;
  }
}

/* Desktop app: draggable region and cursor */
.login-page-desktop-draggable .login-form-card {
  cursor: default;
}

.login-page-desktop-draggable .login-left-column,
.login-page-desktop-draggable .login-header-unified,
.login-page-desktop-draggable .login-branding-header,
.login-page-desktop-draggable .login-footer-branding,
.login-page-desktop-draggable .login-branding-section {
  cursor: grab;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.login-page-desktop-draggable .login-left-column:active,
.login-page-desktop-draggable .login-header-unified:active {
  cursor: grabbing;
}

/* Interactive elements: default cursor, no drag */
.login-page-desktop-draggable .login-form,
.login-page-desktop-draggable [data-login-field],
.login-page-desktop-draggable .login-window-controls,
.login-page-desktop-draggable .login-window-controls *,
.login-page-desktop-draggable button,
.login-page-desktop-draggable input,
.login-page-desktop-draggable label,
.login-page-desktop-draggable a {
  cursor: auto;
  -webkit-user-select: auto;
  -moz-user-select: auto;
  user-select: auto;
}
/* Make body and html transparent when register page is active */
body.register-page-active,
html.register-page-active {
  background: transparent !important;
  /* Prevent text size adjustment when keyboard appears/disappears */
  -webkit-text-size-adjust: 100% !important;
  -moz-text-size-adjust: 100% !important;
  text-size-adjust: 100% !important;
}

/* ---------------------------------------------------------------------------
 * Platform invitation: premium layout, solid background (no floating artifacts)
 * --------------------------------------------------------------------------- */
.register-page-platform-invite {
  background: transparent;
  pointer-events: none;
}
.register-platform-invite-container {
  pointer-events: none;
}
.register-platform-invite-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  background-color: var(--bg);
}
.dark .register-platform-invite-bg,
[data-theme="dark"] .register-platform-invite-bg,
[data-theme$="-dark"] .register-platform-invite-bg {
  background-color: var(--bg);
}
.register-platform-invite-card {
  z-index: 1;
  isolation: isolate;
  contain: layout style;
  background: hsl(var(--card));
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.08);
}
.dark .register-platform-invite-card,
[data-theme="dark"] .register-platform-invite-card,
[data-theme$="-dark"] .register-platform-invite-card {
  background: hsl(var(--card));
  border-color: hsl(var(--border));
}
.register-platform-invite-form-body {
  flex: 1 1 auto;
  min-height: 0;
}

.register-page {
  min-height: 100vh;
  width: 100%;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  overflow: hidden;
  position: relative;
  opacity: 1;
  visibility: visible;
  /* Prevent text size adjustment on viewport changes */
  -webkit-text-size-adjust: 100% !important;
  -moz-text-size-adjust: 100% !important;
  text-size-adjust: 100% !important;
}

.register-container {
  display: grid;
  grid-template-columns: 0.45fr 0.55fr;
  width: 100%;
  min-height: 100vh;
  max-width: 1400px;
  margin: 0 auto;
  align-items: stretch;
  padding: 0 24px;
  box-sizing: border-box;
  gap: 0;
}

/* Large desktop screens (1920px and above) */
@media (min-width: 1920px) {
  .register-container {
    max-width: 1600px;
    padding: 0 40px;
  }
  
  .register-form-card {
    max-width: 480px;
  }
  
  .register-form-card-inner {
    padding: 56px 48px;
  }
  
  .register-branding {
    padding: 48px 32px 48px 40px;
  }
  
  .register-form-section {
    padding: 60px 40px;
  }
  
  .register-logo {
    max-height: 64px;
    max-width: 220px;
  }
  
  .register-branding-header {
    gap: 24px;
  }
}

/* Medium-large desktop (1645px to 1919px) - maintain responsiveness */
@media (min-width: 1645px) and (max-width: 1919px) {
  .register-container {
    max-width: 1500px;
    padding: 0 32px;
  }
  
  .register-form-card-inner {
    padding: 52px 44px;
  }
  
  .register-branding {
    padding: 46px 30px 46px 38px;
  }
  
  .register-form-section {
    padding: 58px 38px;
  }
  
  .register-form-card {
    max-width: 470px;
  }
  
  .register-logo {
    max-height: 60px;
    max-width: 200px;
  }
  
  .register-branding-header {
    gap: 22px;
  }
}

/* Standard desktop (1367px to 1644px) - ensure proper responsiveness */
@media (min-width: 1367px) and (max-width: 1644px) {
  .register-container {
    max-width: 1300px;
    padding: 0 28px;
  }
  
  .register-form-card-inner {
    padding: 50px 42px;
  }
  
  .register-branding {
    padding: 44px 28px 44px 36px;
  }
  
  .register-form-section {
    padding: 56px 36px;
  }
  
  .register-form-card {
    max-width: 460px;
  }
  
  .register-logo {
    max-height: 58px;
    max-width: 190px;
  }
  
  .register-branding-header {
    gap: 20px;
  }
}

/* Tablet and smaller desktop (969px to 1366px) */
@media (max-width: 1366px) and (min-width: 969px) {
  .register-container {
    max-width: 1200px;
    padding: 0 32px;
  }
  
  .register-form-card-inner {
    padding: 48px 40px;
  }
  
  .register-branding {
    padding: 40px 28px 40px 32px;
  }
  
  .register-form-section {
    padding: 52px 36px;
  }
  
  .register-form-card {
    max-width: 450px;
  }
  
  .register-logo {
    max-height: 56px;
    max-width: 180px;
  }
  
  .register-branding-header {
    gap: 20px;
  }
}

/* Branding Section - same height as register-form-card-inner */
.register-branding {
  position: relative;
  background: transparent;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  padding: 48px 32px 48px 40px;
  overflow: hidden;
  border-radius: 0;
  min-height: 600px;
  box-sizing: border-box;
  align-self: center;
  opacity: 1;
  transform: translateX(0);
}

/* Floating Work Artifacts */
.register-floating-artifacts {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 0;
}

.floating-artifact {
  position: absolute;
  color: hsl(var(--primary) / 0.12);
  opacity: 0.8;
  animation: floatArtifact 20s ease-in-out infinite;
}

/* Ensure form floating artifacts are more visible */
.login-form-floating-artifacts .floating-artifact,
.register-form-floating-artifacts .floating-artifact {
  color: hsl(var(--primary) / 0.15);
  opacity: 0.9;
}

.floating-artifact svg {
  width: 100%;
  height: 100%;
}

/* Artifact positions and random patterns (each uses a different keyframe for varied motion) */
.artifact-1 {
  top: 8%;
  left: 6%;
  width: 40px;
  height: 40px;
  animation: floatArtifact 18s ease-in-out 0s infinite;
}
.artifact-2 {
  top: 22%;
  right: 7%;
  width: 32px;
  height: 32px;
  animation: floatArtifact2 22s ease-in-out 2s infinite;
}
.artifact-3 {
  top: 58%;
  left: 12%;
  width: 36px;
  height: 36px;
  animation: floatArtifact3 20s ease-in-out 4s infinite;
}
.artifact-4 {
  bottom: 18%;
  right: 10%;
  width: 38px;
  height: 38px;
  animation: floatArtifact4 24s ease-in-out 1s infinite;
}
.artifact-5 {
  top: 38%;
  right: 6%;
  width: 34px;
  height: 34px;
  animation: floatArtifact5 19s ease-in-out 3s infinite;
}
.artifact-6 {
  bottom: 28%;
  left: 14%;
  width: 30px;
  height: 30px;
  animation: floatArtifact 21s ease-in-out 5s infinite;
}
.artifact-7 {
  top: 28%;
  left: 9%;
  width: 35px;
  height: 35px;
  animation: floatArtifact2 23s ease-in-out 2.5s infinite;
}
.artifact-8 {
  bottom: 38%;
  right: 16%;
  width: 28px;
  height: 28px;
  animation: floatArtifact3 17s ease-in-out 4.5s infinite;
}
.artifact-9 {
  top: 12%;
  right: 14%;
  width: 36px;
  height: 36px;
  animation: floatArtifact4 26s ease-in-out 0.5s infinite;
}
.artifact-10 {
  bottom: 12%;
  left: 8%;
  width: 30px;
  height: 30px;
  animation: floatArtifact5 19s ease-in-out 6s infinite;
}
.artifact-11 {
  top: 48%;
  left: 4%;
  width: 34px;
  height: 34px;
  animation: floatArtifact 21s ease-in-out 1.5s infinite;
}
.artifact-12 {
  top: 5%;
  right: 22%;
  width: 32px;
  height: 32px;
  animation: floatArtifact2 23s ease-in-out 3.5s infinite;
}
.artifact-13 {
  bottom: 45%;
  right: 4%;
  width: 33px;
  height: 33px;
  animation: floatArtifact3 18s ease-in-out 5.5s infinite;
}
.artifact-14 {
  top: 65%;
  right: 20%;
  width: 29px;
  height: 29px;
  animation: floatArtifact4 25s ease-in-out 0.8s infinite;
}
.artifact-15 {
  top: 42%;
  left: 18%;
  width: 35px;
  height: 35px;
  animation: floatArtifact5 20s ease-in-out 2.2s infinite;
}
.artifact-16 {
  bottom: 8%;
  right: 28%;
  width: 31px;
  height: 31px;
  animation: floatArtifact 22s ease-in-out 4.2s infinite;
}
.artifact-17 {
  top: 72%;
  left: 6%;
  width: 30px;
  height: 30px;
  animation: floatArtifact2 17s ease-in-out 1.2s infinite;
}
.artifact-18 {
  top: 15%;
  left: 24%;
  width: 34px;
  height: 34px;
  animation: floatArtifact3 24s ease-in-out 3.8s infinite;
}
.artifact-19 {
  bottom: 32%;
  left: 22%;
  width: 32px;
  height: 32px;
  animation: floatArtifact4 19s ease-in-out 5.2s infinite;
}
.artifact-20 {
  top: 52%;
  right: 24%;
  width: 33px;
  height: 33px;
  animation: floatArtifact5 21s ease-in-out 0.3s infinite;
}

@keyframes floatArtifact {
  0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.4; }
  25% { transform: translate(30px, -40px) rotate(5deg); opacity: 0.7; }
  50% { transform: translate(-20px, -60px) rotate(-5deg); opacity: 0.6; }
  75% { transform: translate(40px, -30px) rotate(3deg); opacity: 0.8; }
}

@keyframes floatArtifact2 {
  0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.5; }
  20% { transform: translate(-35px, 25px) rotate(-4deg); opacity: 0.75; }
  40% { transform: translate(25px, -45px) rotate(6deg); opacity: 0.65; }
  60% { transform: translate(-15px, -25px) rotate(-2deg); opacity: 0.85; }
  80% { transform: translate(40px, 15px) rotate(4deg); opacity: 0.6; }
}

@keyframes floatArtifact3 {
  0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.45; }
  33% { transform: translate(45px, 20px) rotate(7deg); opacity: 0.7; }
  66% { transform: translate(-30px, -50px) rotate(-6deg); opacity: 0.8; }
}

@keyframes floatArtifact4 {
  0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.5; }
  25% { transform: translate(-40px, -35px) rotate(-3deg); opacity: 0.65; }
  50% { transform: translate(20px, 30px) rotate(5deg); opacity: 0.75; }
  75% { transform: translate(-25px, 40px) rotate(-4deg); opacity: 0.6; }
}

@keyframes floatArtifact5 {
  0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.4; }
  20% { transform: translate(28px, 38px) rotate(4deg); opacity: 0.8; }
  50% { transform: translate(-38px, -28px) rotate(-7deg); opacity: 0.55; }
  80% { transform: translate(15px, -42px) rotate(3deg); opacity: 0.7; }
}

/* Form Floating Artifacts - z-index above form card so icons appear in front of the card as intended */
.register-form-floating-artifacts {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 2;
  overflow: hidden;
  /* Ensure artifacts are always visible, even when parent is transitioning */
  opacity: 1 !important;
  visibility: visible !important;
  /* Ensure artifacts are not affected by parent transforms/opacity */
  isolation: isolate;
}


.register-branding-content {
  position: relative;
  z-index: 1;
  color: var(--text);
  max-width: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  gap: 0;
  align-items: flex-start;
  justify-content: flex-start;
  overflow: visible;
  box-sizing: border-box;
  min-width: 0;
}

.register-branding-footer {
  margin-top: 0;
}

/* Company branding section - same layout/dimensions as login footer (JMSIT) */
.register-company-branding {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem;
  width: 100%;
  box-sizing: border-box;
}

.register-company-branding .register-company-logo-wrapper {
  flex: 1;
  min-height: 0;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  overflow: hidden;
}

.register-company-branding .register-company-logo-wrapper .register-company-logo {
  width: auto;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.1));
}

.register-company-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  flex-shrink: 0;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}

.register-company-name {
  font-family: 'Montserrat', 'Poppins', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
  margin: 0;
  letter-spacing: 0.025em;
  line-height: 1.25;
  text-align: center;
}

@media (min-width: 640px) {
  .register-company-name {
    font-size: 1.125rem;
  }
}

.register-company-tagline {
  font-size: 0.75rem;
  color: var(--muted);
  margin: 0;
  font-weight: 400;
  letter-spacing: 0.025em;
  line-height: 1.25;
  text-align: center;
  max-width: 100%;
}

/* Brand header - logo and text centered vertically */
.register-branding-header {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex: 1;
  min-height: 0;
  flex-wrap: nowrap;
  width: 100%;
  max-width: 100%;
  contain: layout style;
  min-width: 0;
  box-sizing: border-box;
  padding-top: 0.3rem;
  padding-bottom: 0.3rem;
  gap: 0.5rem;
}

/* Ensure logo appears first in order */
.register-branding-header > .register-logo,
.register-branding-header img.register-logo {
  order: 1;
}

/* Ensure branding text appears after logo */
.register-branding-header > .register-branding-text {
  order: 2;
}

/* Brand text - fills remaining width, vertically centered with logo */
.register-branding-header .register-branding-text {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 0.25rem;
}

.register-branding-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 8px;
  flex: 1;
  min-width: 0;
  overflow: visible;
}

.register-branding-button {
  width: 100%;
  max-width: 320px;
  padding: 16px 32px;
  border-radius: 14px;
  background: hsl(var(--primary)) !important;
  color: var(--primary-foreground, white) !important;
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: none !important;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 8px 24px hsl(var(--primary) / 0.25);
}

.register-branding-button:hover:not(:disabled) {
  background: hsl(var(--primary) / 0.9) !important;
  transform: translateY(-2px);
  box-shadow: 0 12px 32px hsl(var(--primary) / 0.35);
}

.register-branding-button:active:not(:disabled) {
  transform: translateY(0);
  box-shadow: 0 6px 20px hsl(var(--primary) / 0.3);
}

/* Brand logo - capped size, aligned with text */
.register-branding-header .register-logo {
  width: 32px;
  height: 32px;
  min-width: 32px;
  min-height: 32px;
  max-width: 32px;
  max-height: 32px;
  object-fit: contain;
  object-position: center center;
  display: block;
  flex-shrink: 0;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.1));
  box-sizing: border-box;
}

.register-logo {
  height: auto;
  width: auto;
  max-height: 64px;
  max-width: 220px;
  min-height: 40px;
  min-width: 120px;
  object-fit: contain;
  object-position: center center;
  display: block;
  flex-shrink: 0;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.1));
  box-sizing: border-box;
  aspect-ratio: auto;
}

.register-branding-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 8px;
  flex: 1;
  min-width: 0;
  overflow: visible;
  width: 100%;
  max-width: 100%;
  opacity: 1;
  contain: layout style paint;
  box-sizing: border-box;
}

/* Brand name - header text aligned with logo */
.register-branding-header .register-brand-name {
  font-size: 0.875rem;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.025em;
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0;
}

.register-brand-name {
  font-family: 'Montserrat', 'Poppins', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  font-size: 42px;
  font-weight: 800;
  color: var(--text);
  margin: 0;
  letter-spacing: 3px;
  line-height: 1.1;
  white-space: nowrap;
  width: 100%;
  overflow: visible;
  opacity: 1;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-display: optional;
  text-rendering: optimizeLegibility;
  contain: layout style paint;
  backface-visibility: hidden;
  font-kerning: normal;
  font-feature-settings: normal;
  font-variant-ligatures: none;
  font-synthesis: none;
}

@media (max-width: 968px) {
  .register-brand-name {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Brand tagline - header text aligned with logo */
.register-branding-header .register-tagline {
  font-size: 0.625rem;
  line-height: 1.2;
  margin: 0;
}

.register-tagline {
  font-size: 10px;
  color: var(--muted);
  margin: 0;
  font-weight: 500;
  letter-spacing: 0.4px;
  line-height: 1.6;
  display: block;
  text-transform: uppercase;
  white-space: nowrap;
  width: 100%;
  max-width: 100%;
  overflow: visible;
  text-overflow: clip;
  contain: layout style paint;
  font-display: optional;
}

.register-tagline-word {
  display: inline-block;
  white-space: nowrap;
}

.register-tagline-letter {
  display: inline-block;
  color: var(--muted);
  font-weight: 500;
  animation: colorWave 5.5s ease-in-out infinite;
  transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  position: relative;
  /* Lock font metrics to prevent reflow */
  font-kerning: normal;
  font-feature-settings: normal;
  font-variant-ligatures: none;
  font-synthesis: none;
}

@keyframes colorWave {
  0%, 100% {
    color: var(--muted);
  }
  5%, 10% {
    color: hsl(var(--primary));
  }
  15% {
    color: var(--muted);
  }
}

.register-branding-footer {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: auto;
}

/* Form Section */
.register-form-section {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  padding: 60px 40px;
  background: transparent;
  position: relative;
  min-height: 0;
  opacity: 1;
  overflow: hidden;
}

/* Light mode: form area (no solid card background to avoid visual clash) */
.register-page:not([data-theme-id*="-dark"]) .register-form-section {
  background: transparent;
}

.register-form-section.register-form-section-active {
  opacity: 1;
  visibility: visible;
}

/* Mobile: fade transitions between branding and form */
@media (max-width: 968px) {
  .register-form-section {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0s linear 0.6s;
  }

  .register-form-section.register-form-section-active {
    opacity: 1 !important;
    visibility: visible !important;
    transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0s;
  }

  .register-form-section.register-form-section-hidden {
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0s linear 0.6s;
  }
}

/* Ensure form card renders consistently */
.register-page .register-form-card {
  transform: translateZ(0);
  backface-visibility: hidden;
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  contain: layout style;
}

/* Disable desktop form-card-ready transitions on mobile to prevent flicker */
@media (max-width: 968px) {
  .register-form-card.form-card-ready {
    transition: none !important;
  }
  
  .register-form-card.form-card-ready .register-form-title,
  .register-form-card.form-card-ready .register-form-subtitle,
  .register-form-card.form-card-ready .register-input,
  .register-form-card.form-card-ready .register-submit-button {
    transition: none !important;
  }
}

.register-form-card {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  background: transparent;
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  backdrop-filter: blur(20px) saturate(180%);
  border-radius: 28px;
  padding: 0;
  width: 100%;
  max-width: 480px;
  box-sizing: border-box;
  position: relative;
  z-index: 1; /* Below .register-form-floating-artifacts (z-index: 2) so background icons appear above the card */
  overflow: hidden;
  opacity: 1;
  transform: none;
  /* Prevent layout shifts */
  contain: layout style;
  /* Lock all font-related properties */
  font-display: optional;
  /* Prevent subpixel rendering issues */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Ensure consistent rendering */
  isolation: isolate;
}

/* Removed blue borderline - no longer needed */

/* Form card inner content wrapper */
.register-form-card-inner {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  padding: 56px 48px;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  margin: 0;
}

/* Form body: grows to fill space so footer sits at bottom with no gap */
.register-form-body {
  overflow-y: auto;
  min-height: 0;
}

/* Form card ready - visible immediately */
.register-form-card.form-card-ready {
  opacity: 1;
  transform: none;
}


.register-form-title {
  font-family: 'Poppins', 'Montserrat', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  font-size: 36px;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 12px 0;
  letter-spacing: -0.8px;
  line-height: 1.2;
  /* Lock font metrics to prevent reflow and flicker */
  font-kerning: normal;
  font-feature-settings: normal;
  font-variant-ligatures: none;
  font-synthesis: none;
  font-display: swap; /* Use swap to prevent FOIT and reduce flicker */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  contain: layout style paint;
  backface-visibility: hidden;
  transform: translateZ(0);
  /* Always visible from start - no opacity animation to prevent flicker */
  opacity: 1 !important;
  transform: translateZ(0) translateY(0) !important;
  transition: none !important;
  /* Lock dimensions to prevent reflow when fonts load */
  min-height: 1.2em; /* Lock to line-height */
  will-change: auto; /* Don't animate */
}

.register-form-card.form-card-ready .register-form-title {
  opacity: 1 !important;
  transform: translateZ(0) translateY(0) !important;
  transition: none !important; /* No transition to prevent flicker */
}

.register-form-subtitle {
  font-family: 'Poppins', 'Montserrat', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  font-size: 15px;
  color: var(--muted);
  margin: 0 0 40px 0;
  font-weight: 400;
  line-height: 1.6;
  /* Reserve space to prevent layout shift when content changes */
  min-height: 48px; /* Approximate height for 2-3 lines of text */
  /* Lock font metrics to prevent reflow and flicker */
  font-kerning: normal;
  font-feature-settings: normal;
  font-variant-ligatures: none;
  font-synthesis: none;
  font-display: swap; /* Use swap to prevent FOIT and reduce flicker */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  contain: layout style paint;
  backface-visibility: hidden;
  transform: translateZ(0);
  /* Always visible from start - no opacity animation to prevent flicker */
  opacity: 1 !important;
  transform: translateZ(0) translateY(0) !important;
  transition: none !important;
  will-change: auto; /* Don't animate */
}

.register-form-card.form-card-ready .register-form-subtitle {
  opacity: 1 !important;
  transform: translateZ(0) translateY(0) !important;
  transition: none !important; /* No transition to prevent flicker */
}

/* Base form styles - applied from start to prevent layout shifts */
.register-form {
  display: flex;
  flex-direction: column;
  gap: 24px; /* Consistent gap for desktop */
  /* Prevent layout shifts without being too aggressive */
  contain: layout;
  /* Ensure form maintains structure */
  min-width: 0;
  /* Prevent any margin/padding changes */
  margin: 0;
  padding: 0;
  /* Lock gap to prevent readjustment */
  box-sizing: border-box;
}

/* Mobile-specific form spacing */
@media (max-width: 968px) {
  .register-form {
    gap: 20px; /* Reduced gap for better mobile spacing */
  }
}

.register-field {
  display: flex;
  flex-direction: column;
  gap: 0; /* No gap - errors are conditionally rendered and add their own margin-top */
  /* Prevent margin/padding from affecting layout */
  margin: 0;
  padding: 0;
  /* Lock properties to prevent layout shifts */
  box-sizing: border-box;
  min-width: 0;
}

/* Password requirements container - doesn't occupy space when hidden */
.register-password-requirements {
  /* Ensure consistent spacing when visible */
  margin-bottom: 0;
  /* When hidden (max-height: 0), element takes no space in layout */
  /* Smooth animation when appearing/disappearing */
  will-change: max-height, opacity;
}

.register-input {
  width: 100%;
  padding: 16px 18px;
  border-radius: 14px;
  border: 2px solid hsl(var(--border));
  background: hsl(var(--card));
  font-size: 15px;
  color: var(--text);
  font-weight: 500;
  transition: background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1),
              border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  box-sizing: border-box;
  font-family: 'Poppins', 'Montserrat', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  font-kerning: normal;
  font-feature-settings: normal;
  font-variant-ligatures: none;
  font-synthesis: none;
  font-display: optional;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  contain: layout style paint;
  backface-visibility: hidden;
  transform: translateZ(0);
  opacity: 1;
}

.register-input::-moz-placeholder {
  color: hsl(var(--muted-foreground));
  font-weight: 400;
}

.register-input::placeholder {
  color: hsl(var(--muted-foreground));
  font-weight: 400;
}

.register-input:focus {
  outline: none;
  background: hsl(var(--card));
  border-color: hsl(var(--primary));
  box-shadow: 0 0 0 4px hsl(var(--primary) / 0.12),
              0 6px 16px hsl(var(--primary) / 0.1),
              inset 0 1px 2px hsl(var(--primary) / 0.05);
  transform: translateZ(0) translateY(-1px);
}

.register-input:hover:not(:focus) {
  background: hsl(var(--secondary));
  border-color: hsl(var(--ring));
  transform: translateZ(0) translateY(-1px);
}

.register-password-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.register-password-toggle {
  position: absolute;
  right: 16px; /* Better spacing on mobile */
  background: none;
  border: none;
  cursor: pointer;
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px; /* Larger touch target */
  min-width: 48px; /* Minimum touch target (updated to match new standard) */
  min-height: 48px;
  transition: color 0.2s;
  -webkit-tap-highlight-color: hsl(var(--primary) / 0.1);
  touch-action: manipulation;
  border-radius: 8px;
}

.register-password-toggle:hover {
  color: hsl(var(--primary));
}

.register-password-toggle:focus-visible {
  outline: 2px solid hsl(var(--primary));
  outline-offset: 2px;
  border-radius: 4px;
}

.register-forgot-password {
  text-align: right;
  margin-top: -8px;
  margin-bottom: -4px;
}

.register-forgot-link {
  font-size: 13px;
  color: hsl(var(--primary));
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s ease;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: 'Poppins', 'Montserrat', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  /* Lock font metrics to prevent reflow */
  font-kerning: normal;
  font-feature-settings: normal;
  font-variant-ligatures: none;
  font-synthesis: none;
  font-display: optional;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  contain: layout style paint;
  backface-visibility: hidden;
  transform: translateZ(0);
}

.register-forgot-link:hover {
  color: hsl(var(--primary) / 0.85);
  text-decoration: underline;
}

.register-forgot-link:focus-visible {
  outline: 2px solid hsl(var(--primary));
  outline-offset: 2px;
  border-radius: 4px;
}

.register-forgot-text {
  font-size: 12px;
  color: var(--muted);
  margin: 0;
  font-weight: 400;
  line-height: 1.5;
  padding: 12px 16px;
  background: hsl(var(--primary) / 0.04);
  border-radius: 8px;
  border: 1px solid hsl(var(--primary) / 0.1);
  text-align: center;
  animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.register-error {
  font-size: 13px; /* Slightly larger for mobile readability */
  color: hsl(var(--destructive-text));
  margin-top: 6px; /* Better spacing on mobile */
  margin-bottom: 0; /* Ensure no bottom margin */
  line-height: 1.4;
  /* Element is conditionally rendered, so no space when not in DOM */
  display: block; /* Ensure proper block display */
}

.register-error-message {
  padding: 12px;
  margin: 0 0 16px 0; /* Only margin when visible */
  background: hsl(var(--destructive) / 0.1);
  border: 1px solid hsl(var(--destructive) / 0.2);
  border-radius: 8px;
  color: hsl(var(--destructive-text));
  font-size: 14px;
  text-align: center;
  /* Element is conditionally rendered, so no space when not in DOM */
  display: block; /* Ensure proper block display */
}

/* Submit button: Shadcn Button (primary) with layout only - no visual overrides */
.register-submit-button {
  width: 100%;
  margin-top: 0.5rem;
}

/* Mobile Responsive Design */
@media (max-width: 968px) {
  .register-container {
    grid-template-columns: 1fr;
    min-height: 100vh;
    max-width: 100% !important;
    width: 100%;
    margin: 0;
    padding: 0;
    position: relative;
    overflow: hidden;
    align-items: stretch;
  }

  .register-branding {
    padding: 0;
    min-height: 100vh;
    height: 100vh;
    width: 100vw;
    max-width: 100vw !important;
    border-radius: 0;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    background: var(--bg) !important;
    overflow: hidden;
    /* Smooth transition for slide left */
    opacity: 1;
    transform: translateX(0);
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), 
                opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform, opacity;
  }

  .register-branding-active {
    transform: translateX(0) !important;
    opacity: 1 !important;
    pointer-events: auto;
    visibility: visible;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), 
                opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0s !important;
  }

  .register-branding-hidden {
    transform: translateX(-100%) !important;
    opacity: 0 !important;
    pointer-events: none;
    visibility: hidden;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1), 
                opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0s linear 0.5s;
  }
  
  /* Slide left animation for branding */
  .register-branding.register-branding-scrolling {
    transform: translateX(-100%) translateZ(0) !important;
    opacity: 0 !important;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0s linear 0.5s;
    pointer-events: none;
    visibility: hidden;
    will-change: transform, opacity;
    contain: layout style paint;
    backface-visibility: hidden;
  }

  .register-logo {
    max-height: 120px !important;
    max-width: 280px !important;
    min-height: 100px;
    min-width: 240px;
    width: auto;
    height: auto;
    margin: 0 auto !important;
    display: block !important;
    object-fit: contain !important;
    object-position: center center !important;
    text-align: center !important;
  }
  
  .register-branding-header {
    gap: 32px !important;
    flex-wrap: nowrap;
    /* Maintain premium design */
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
  }
  
  /* Ensure floating artifacts are visible on mobile */
  .register-floating-artifacts {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
    z-index: 0;
    width: 100%;
    height: 100%;
  }
  
  /* Ensure branding content maintains design and is centered - full screen */
  .register-branding-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 100%;
    height: 100vh;
    min-height: 100vh;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 40px 24px 32px;
    gap: 0;
    overflow: visible;
  }
  
  /* Ensure branding header is centered and larger - logo on top */
  .register-branding-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 36px !important;
    flex-wrap: nowrap !important;
    flex: 1;
    min-height: 0;
  }
  
  /* Ensure logo appears FIRST (above text) - explicit order and positioning */
  .register-branding-header > .register-logo,
  .register-branding-header img.register-logo {
    order: -1 !important; /* Negative order to ensure it's first */
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    display: block !important;
    align-self: center !important;
    position: relative !important;
    z-index: 1 !important;
  }
  
  /* Ensure branding text appears AFTER logo (below) */
  .register-branding-header > .register-branding-text {
    order: 0 !important; /* After logo */
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
  }
  
  /* Center logo on mobile - make it 2x bigger */
  .register-logo {
    margin: 0 auto !important;
    display: block !important;
    max-height: 240px !important;
    max-width: 560px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
    text-align: center !important;
    align-self: center !important;
  }
  
  /* Center branding text - make it bigger */
  .register-branding-text {
    align-items: center !important;
    text-align: center !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 16px !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  
  /* Center brand name - make it bigger */
  .register-brand-name {
    text-align: center !important;
    width: 100% !important;
    margin: 0 auto !important;
    font-size: 56px !important;
    letter-spacing: 2px !important;
    line-height: 1.1 !important;
  }
  
  /* Center tagline - make it bigger */
  .register-tagline {
    text-align: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    letter-spacing: 0.5px !important;
  }
  
  /* Premium loading indicator - shows authentication/validation */
  .register-loading-indicator {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 32px 20px 40px;
    margin-top: auto;
    margin-bottom: 0;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    position: relative;
    z-index: 2;
    /* Prevent cropping during animation */
    overflow: visible;
    min-height: 140px;
  }
  
  /* Premium multi-ring spinner */
  .register-loading-spinner {
    position: relative;
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .register-spinner-ring {
    position: absolute;
    width: 100%;
    height: 100%;
    border: 3px solid transparent;
    border-top-color: hsl(var(--primary));
    border-radius: 50%;
    animation: register-spin 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  }
  
  .register-spinner-ring:nth-child(1) {
    width: 64px;
    height: 64px;
    border-top-color: hsl(var(--primary));
    animation-duration: 1.2s;
  }
  
  .register-spinner-ring:nth-child(2) {
    width: 48px;
    height: 48px;
    border-top-color: hsl(var(--primary) / 0.85);
    animation-duration: 1s;
    animation-direction: reverse;
  }
  
  .register-spinner-ring:nth-child(3) {
    width: 32px;
    height: 32px;
    border-top-color: hsl(var(--primary) / 0.7);
    animation-duration: 0.8s;
  }
  
  @keyframes register-spin {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  }
  
  .register-loading-text {
    font-size: 14px;
    font-weight: 500;
    color: var(--muted);
    letter-spacing: 0.3px;
    text-align: center;
    font-family: 'Poppins', 'Montserrat', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
    animation: register-pulse 2s ease-in-out infinite;
  }
  
  @keyframes register-pulse {
    0%, 100% {
      opacity: 0.6;
    }
    50% {
      opacity: 1;
    }
  }

  .register-brand-name {
    font-size: 56px !important;
    letter-spacing: 2px !important;
    white-space: nowrap;
    width: 100%;
    overflow: visible;
    /* Maintain premium typography */
    font-family: 'Montserrat', 'Poppins', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif !important;
    font-weight: 800 !important;
    color: var(--text) !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    line-height: 1.1 !important;
    margin: 0 !important;
  }

  .register-tagline {
    font-size: 14px !important;
    line-height: 1.6 !important;
    white-space: normal;
    word-wrap: break-word;
    width: 100%;
    max-width: 100%;
    overflow: visible;
    /* Maintain premium typography */
    color: var(--muted) !important;
    font-weight: 500 !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    letter-spacing: 0.5px !important;
    margin: 0 !important;
  }
  
  /* Ensure tagline animation works on mobile */
  .register-tagline-letter {
    display: inline-block;
    color: var(--muted);
    font-weight: 500;
    animation: colorWave 5.5s ease-in-out infinite;
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    position: relative;
  }

  .register-form-section {
    padding: 0;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    max-width: 100vw !important;
    /* Use 100dvh (dynamic viewport height) to handle keyboard better, fallback to 100vh */
    min-height: 100dvh;
    min-height: 100vh; /* Fallback */
    height: 100dvh;
    height: 100vh; /* Fallback */
    z-index: 3;
    overflow-y: auto;
    overflow-x: hidden;
    touch-action: pan-y;
    /* Default hidden state - fade out */
    opacity: 0 !important;
    transform: translateZ(0) !important;
    visibility: hidden !important;
    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important, 
                visibility 0s linear 0.2s !important;
    will-change: transform, opacity;
    /* GPU acceleration and rendering optimization - allow artifacts to show */
    contain: layout style; /* Removed 'paint' to allow artifacts visibility */
    backface-visibility: hidden;
    /* Smooth scroll behavior */
    scroll-behavior: smooth;
    background-color: transparent;
  }

  @supports (overscroll-behavior: contain) {
    .register-form-section {
      overscroll-behavior: contain;
    }
  }

  /* Active state - slide left animation */
  .register-form-section-active {
    transform: translateX(0) !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    visibility: visible !important;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important, 
                opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important, 
                visibility 0s !important;
    will-change: transform, opacity;
    /* GPU acceleration and rendering isolation - but allow artifacts to show */
    contain: layout style;
    backface-visibility: hidden;
  }
  
  /* Ensure floating artifacts are visible in active state */
  .register-form-section-active .register-form-floating-artifacts {
    opacity: 1 !important;
    visibility: visible !important;
  }
  
  /* Hidden state - slide left out */
  .register-form-section-hidden {
    transform: translateX(100%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important, 
                opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important, 
                visibility 0s linear 0.5s !important;
  }
  
  /* Default state when no class is applied - hidden with slide */
  .register-form-section:not(.register-form-section-active):not(.register-form-section-hidden) {
    transform: translateX(100%) !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }
  
  /* Ensure floating artifacts are visible even when form section is hidden */
  .register-form-section .register-form-floating-artifacts {
    opacity: 1 !important;
    visibility: visible !important;
  }

  .register-form-card {
    /* Mobile-optimized form card */
    padding: 0;
    max-width: 100% !important;
    width: 100%;
    margin: 0;
    border-radius: 0 !important; /* Full-width on mobile, no rounded corners */
    position: relative; /* For floating artifacts positioning */
    z-index: 1; /* Above floating artifacts */
    /* Fast fade animation - no initial delay */
    opacity: 0;
    transform: translateZ(0) scale(1);
    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0s;
    /* GPU acceleration for smooth animation */
    will-change: opacity;
    contain: layout style paint;
    backface-visibility: hidden;
    /* Semi-transparent background to show floating artifacts */
    background: hsl(var(--card) / 0.95) !important;
    -webkit-backdrop-filter: blur(10px) saturate(180%) !important;
    backdrop-filter: blur(10px) saturate(180%) !important;
    box-shadow: 
      0 -4px 24px rgba(0, 0, 0, 0.08),
      0 -2px 8px rgba(0, 0, 0, 0.04) !important; /* Top shadow only for mobile */
    border: none !important;
    border-top: 1px solid hsl(var(--border) / 0.8) !important;
  }
  
  /* Form card fades in when form section is active */
  .register-form-section-active .register-form-card {
    opacity: 1 !important;
    transform: translateZ(0) scale(1) !important;
    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1) 0s;
    /* Semi-transparent background to show floating artifacts */
    -webkit-backdrop-filter: blur(10px) saturate(180%) !important;
    backdrop-filter: blur(10px) saturate(180%) !important;
    background: hsl(var(--card) / 0.95) !important;
  }
  
  /* Prevent desktop form-card-ready transitions from applying on mobile */
  .register-form-section-active .register-form-card.form-card-ready {
    transition: none !important;
  }
  
  /* Reset form card ready state for mobile - no transitions to prevent flicker */
  .register-form-card.form-card-ready {
    opacity: 1 !important;
    transform: translateZ(0) scale(1) !important;
    transition: none !important;
    /* Lock all properties to prevent reflow */
    will-change: auto !important;
    /* Semi-transparent background to show floating artifacts */
    -webkit-backdrop-filter: blur(10px) saturate(180%) !important;
    backdrop-filter: blur(10px) saturate(180%) !important;
    background: hsl(var(--card) / 0.95) !important;
  }

  .register-form-card-inner {
    padding: 32px 20px 32px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    /* Prevent layout shifts from dynamic content on mobile */
    /* Ensure inner content maintains premium spacing */
    position: relative;
    z-index: 1; /* Above floating artifacts */
    /* Ensure form is centered on screen */
    display: flex;
    flex-direction: column;
    align-items: stretch;
    /* Better mobile spacing */
    gap: 0;
  }
  
  /* Mobile form section - full screen, scrollable */
  .register-form-section-active {
    display: flex;
    flex-direction: column;
    align-items: flex-start; /* Align to top on mobile */
    justify-content: flex-start;
    padding: 0;
    overflow-y: auto;
    height: 100vh;
    width: 100%;
    padding-bottom: 100px; /* Space for fixed button at bottom */
  }
  
  .register-form-section-active .register-form-card {
    max-width: 100%;
    width: 100%;
    margin: 0;
    align-self: flex-start; /* Align to top */
    flex: 1;
    display: flex;
    flex-direction: column;
  }
  
  /* Move submit button to bottom on mobile */
  .register-form-card-inner {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding-bottom: 100px; /* Space for fixed button */
  }
  
  .register-form {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 20px !important; /* Ensure gap is consistent on mobile */
  }
  
  .register-submit-button {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    border-radius: 0 !important;
    z-index: 10 !important;
    box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.1), 
                0 -2px 8px rgba(0, 0, 0, 0.05) !important;
  }
  
  /* Mobile-optimized inputs - larger touch targets, better spacing */
  .register-input {
    width: 100% !important;
    padding: 18px 20px !important;
    border-radius: 16px !important;
    border: 2px solid hsl(var(--border)) !important;
    background: hsl(var(--card)) !important;
    font-size: 16px !important; /* 16px prevents iOS zoom on focus */
    color: var(--text) !important;
    font-weight: 500 !important;
    box-sizing: border-box !important;
    min-height: 56px !important; /* Minimum touch target size (44px + padding) */
    /* Prevent text size adjustment on viewport changes (keyboard) */
    -webkit-text-size-adjust: 100% !important;
    -moz-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    /* Lock font rendering to prevent flicker */
    font-kerning: normal !important;
    font-variant-ligatures: none !important;
    font-synthesis: none !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    /* Maintain premium styling */
    font-family: 'Poppins', 'Montserrat', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif !important;
    opacity: 1 !important;
    transform: none !important;
    /* Better mobile interaction */
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
         appearance: none !important;
  }
  
  .register-input:focus {
    outline: none !important;
    background: hsl(var(--card)) !important;
    border-color: hsl(var(--primary)) !important;
    box-shadow: 0 0 0 4px hsl(var(--primary) / 0.12),
                0 6px 16px hsl(var(--primary) / 0.1),
                inset 0 1px 2px hsl(var(--primary) / 0.05) !important;
    transform: none !important;
  }
  
  .register-input:hover:not(:focus) {
    background: hsl(var(--secondary)) !important;
    border-color: hsl(var(--ring)) !important;
    transform: none !important;
  }
  
  /* Mobile: submit button - layout/touch only (Shadcn primary styles) */
  .register-submit-button {
    width: 100% !important;
    min-height: 56px !important;
    padding: 1rem 1.5rem !important;
    -webkit-tap-highlight-color: hsl(var(--primary) / 0.2) !important;
    touch-action: manipulation !important;
  }

  
  /* Ensure branding button maintains premium design */
  .register-branding-button {
    width: 100%;
    max-width: 320px;
    padding: 18px 36px;
    border-radius: 14px;
    background: hsl(var(--primary)) !important;
    color: var(--primary-foreground, white) !important;
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    border: none !important;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 8px 24px hsl(var(--primary) / 0.25) !important;
    position: relative;
    overflow: hidden;
  }
  
  .register-branding-button:hover:not(:disabled) {
    background: hsl(var(--primary) / 0.9) !important;
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 12px 32px hsl(var(--primary) / 0.35) !important;
  }
  
  .register-branding-button:active:not(:disabled) {
    transform: translateY(0) scale(0.98);
    box-shadow: 0 6px 20px hsl(var(--primary) / 0.3) !important;
  }

  .register-form-title {
    font-size: 32px !important; /* Larger for mobile readability */
    margin: 0 0 8px 0 !important;
    padding: 0 !important;
    letter-spacing: -0.8px;
    line-height: 1.2 !important;
    /* Maintain premium typography */
    font-family: 'Poppins', 'Montserrat', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
    font-weight: 700;
    color: var(--text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* Always visible - no animation to prevent flicker */
    opacity: 1 !important;
    transform: translateZ(0) translateY(0) !important;
    transition: none !important;
    /* Lock dimensions to prevent reflow */
    min-height: 1.2em !important;
    will-change: auto !important;
    font-display: swap !important; /* Prevent FOIT */
  }
  
  .register-form-card.form-card-ready .register-form-title {
    opacity: 1 !important;
    transform: translateZ(0) translateY(0) !important;
    transition: none !important;
  }

  .register-form-subtitle {
    font-size: 14px !important; /* Slightly larger for mobile readability */
    margin: 0 0 28px 0 !important; /* Better spacing */
    /* Maintain premium typography */
    font-family: 'Poppins', 'Montserrat', 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
    color: var(--muted);
    font-weight: 400 !important;
    line-height: 1.6;
    min-height: 48px !important; /* Reserve space */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* Prevent text size adjustment on viewport changes */
    -webkit-text-size-adjust: 100% !important;
    -moz-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    /* Lock font rendering to prevent flicker */
    font-kerning: normal !important;
    font-variant-ligatures: none !important;
    font-synthesis: none !important;
    font-display: swap !important; /* Prevent FOIT */
    /* Always visible - no animation to prevent flicker */
    opacity: 1 !important;
    transform: translateZ(0) translateY(0) !important;
    transition: none !important;
    will-change: auto !important;
  }
  
  .register-form-card.form-card-ready .register-form-subtitle {
    opacity: 1 !important;
    transform: translateZ(0) translateY(0) !important;
    transition: none !important;
    /* Lock font properties to prevent flicker */
    font-size: 14px !important;
    font-weight: 400 !important;
  }
  
  /* Reset input animations for mobile - maintain premium styling */
  .register-form-card.form-card-ready .register-input {
    opacity: 1 !important;
    transform: none !important;
    transition: background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), 
                border-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), 
                box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
    /* Lock font properties to prevent flicker */
    font-size: 15px !important;
    font-weight: 500 !important;
  }
  
  .register-form-card.form-card-ready .register-submit-button {
    opacity: 1 !important;
    transition: opacity 0.6s ease-out 1.1s !important;
  }
}

@media (max-width: 480px) {
  .register-branding {
    padding: 32px 20px 32px 24px;
  }

  .register-branding-content {
    gap: 28px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .register-branding-header {
    gap: 16px;
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  .register-branding-text {
    overflow: visible;
    min-width: 0;
  }

  .register-logo {
    max-height: 48px;
    max-width: 140px;
    min-height: 40px;
    min-width: 100px;
    width: auto;
    height: auto;
  }
  
  .register-branding-header {
    gap: 16px;
    flex-wrap: wrap;
  }

  .register-brand-name {
    font-size: 28px;
    letter-spacing: 1.5px;
    white-space: nowrap;
    width: 100%;
    overflow: visible;
  }

  .register-tagline {
    font-size: 9px;
    line-height: 1.4;
    white-space: normal;
    word-wrap: break-word;
    width: 100%;
    max-width: 100%;
    overflow: visible;
  }

  .register-branding-button {
    max-width: 100%;
  }

  .register-form-card {
    /* Mobile-optimized styling on small mobile */
    padding: 0;
    margin-top: 0;
    border-radius: 0 !important; /* Full-width on small mobile */
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    background: transparent !important;
  }

  .register-form-card-inner {
    padding: 28px 20px 28px; /* Reduced padding on small mobile */
  }


  .register-form-title {
    font-size: 28px !important; /* Larger for small mobile */
    letter-spacing: -0.6px;
    margin: 0 0 8px 0 !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    /* Prevent text size adjustment */
    -webkit-text-size-adjust: 100% !important;
    -moz-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    font-kerning: normal !important;
    font-variant-ligatures: none !important;
    font-synthesis: none !important;
    font-display: swap !important; /* Prevent FOIT */
    /* Always visible - no animation to prevent flicker */
    opacity: 1 !important;
    transform: translateZ(0) translateY(0) !important;
    transition: none !important;
    min-height: 1.2em !important;
    will-change: auto !important;
  }
  
  .register-form-subtitle {
    font-size: 13px !important; /* Slightly larger for readability */
    margin: 0 0 24px 0 !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
    /* Prevent text size adjustment */
    -webkit-text-size-adjust: 100% !important;
    -moz-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    font-kerning: normal !important;
    font-variant-ligatures: none !important;
    font-synthesis: none !important;
  }

  .register-input {
    padding: 18px 20px !important; /* Larger touch target */
    font-size: 16px !important; /* Prevent zoom on iOS */
    min-height: 56px !important; /* Minimum touch target */
    border-radius: 16px !important;
    /* Prevent text size adjustment on viewport changes */
    -webkit-text-size-adjust: 100% !important;
    -moz-text-size-adjust: 100% !important;
    text-size-adjust: 100% !important;
    font-weight: 500 !important;
    /* Lock font rendering */
    font-kerning: normal !important;
    font-variant-ligatures: none !important;
    font-synthesis: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
         appearance: none !important;
  }
  
  .register-submit-button {
    min-height: 56px !important;
    padding: 1rem 1.5rem !important;
    -webkit-tap-highlight-color: hsl(var(--primary) / 0.2) !important;
    touch-action: manipulation !important;
  }
  
  /* Ensure all animations work on small mobile */
  .register-form-card.form-card-ready {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* ---------------------------------------------------------------------------
 * Dark mode: prevent white backgrounds and light-only text on register page.
 * Matches base.css and platform-invite: .dark, [data-theme="dark"], [data-theme$="-dark"].
 * --------------------------------------------------------------------------- */
.dark .register-page,
[data-theme="dark"] .register-page,
[data-theme$="-dark"] .register-page {
  background-color: var(--bg);
}

.dark .register-container,
[data-theme="dark"] .register-container,
[data-theme$="-dark"] .register-container {
  background-color: transparent;
}

.dark .register-form-section,
[data-theme="dark"] .register-form-section,
[data-theme$="-dark"] .register-form-section {
  background-color: var(--bg);
}

.dark .register-branding,
[data-theme="dark"] .register-branding,
[data-theme$="-dark"] .register-branding {
  background: transparent;
}

/* Dark: form card uses theme only - no box-shadow; border and background for contrast (text/inputs use --foreground, --card, --border from theme) */
.dark .register-form-card,
[data-theme="dark"] .register-form-card,
[data-theme$="-dark"] .register-form-card {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
}

.dark .register-form-card.form-card-ready,
[data-theme="dark"] .register-form-card.form-card-ready,
[data-theme$="-dark"] .register-form-card.form-card-ready {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
}

.dark .register-page.fonts-loaded.register-page-loaded .register-form-card,
[data-theme="dark"] .register-page.fonts-loaded.register-page-loaded .register-form-card,
[data-theme$="-dark"] .register-page.fonts-loaded.register-page-loaded .register-form-card {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
}

/* Dark: form text and inputs use theme vars only - contrast from --foreground on --card, --muted-foreground for secondary */
.dark .register-form-title,
[data-theme="dark"] .register-form-title,
[data-theme$="-dark"] .register-form-title {
  color: hsl(var(--foreground));
}

.dark .register-form-subtitle,
[data-theme="dark"] .register-form-subtitle,
[data-theme$="-dark"] .register-form-subtitle {
  color: hsl(var(--muted-foreground));
}

.dark .register-input,
[data-theme="dark"] .register-input,
[data-theme$="-dark"] .register-input {
  color: hsl(var(--foreground));
  background: hsl(var(--card));
  border-color: hsl(var(--border));
}

.dark .register-input::-moz-placeholder, [data-theme="dark"] .register-input::-moz-placeholder, [data-theme$="-dark"] .register-input::-moz-placeholder {
  color: hsl(var(--muted-foreground));
}

.dark .register-input::placeholder,
[data-theme="dark"] .register-input::placeholder,
[data-theme$="-dark"] .register-input::placeholder {
  color: hsl(var(--muted-foreground));
}

.dark .register-password-toggle:hover,
[data-theme="dark"] .register-password-toggle:hover,
[data-theme$="-dark"] .register-password-toggle:hover {
  color: hsl(var(--primary));
}

.dark .register-forgot-link,
[data-theme="dark"] .register-forgot-link,
[data-theme$="-dark"] .register-forgot-link {
  color: hsl(var(--primary));
}

.dark .register-forgot-link:hover,
[data-theme="dark"] .register-forgot-link:hover,
[data-theme$="-dark"] .register-forgot-link:hover {
  color: hsl(var(--primary) / 0.85);
}

/* Mobile dark: form card uses theme background and border only */
@media (max-width: 968px) {
  .dark .register-form-section-active .register-form-card,
  [data-theme="dark"] .register-form-section-active .register-form-card,
  [data-theme$="-dark"] .register-form-section-active .register-form-card,
  .dark .register-form-card.form-card-ready,
  [data-theme="dark"] .register-form-card.form-card-ready,
  [data-theme$="-dark"] .register-form-card.form-card-ready {
    background: hsl(var(--card));
    border: 1px solid hsl(var(--border));
  }
}

@media (max-width: 480px) {
  .dark .register-form-card,
  [data-theme="dark"] .register-form-card,
  [data-theme$="-dark"] .register-form-card {
    background: hsl(var(--card)) !important;
    border: 1px solid hsl(var(--border));
  }
}

@keyframes registerFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}
.register-fade-in {
  animation: registerFadeIn 0.45s ease-out both;
}
/* ============================================================================
 * GLOBAL CSS - Main Entry Point
 * ============================================================================
 * Import Order (CRITICAL):
 * 1. All @import statements MUST come first (before @tailwind)
 * 2. Layout styles
 * 3. Base styles (CSS variables, animations)
 * 4. Tauri base (transparency when .tauri-transparent, zoom)
 * 5. Tauri transparent-shell (glass when .tauri-transparent - login page only)
 * 6. Mobile responsive styles (excluded from desktop app via :not(.desktop-app))
 * 7. Tauri layout overrides (only apply when .desktop-app) so Jobs and all pages
 *    match browser desktop layout in Tauri regardless of reported viewport.
 * 8. Tailwind directives (must come after all @import)
 * ============================================================================ */

/* All @import statements must come before @tailwind directives */

:root {
  /* Eye-safe white palette (Option B - warm paper white) */
  --bg: #f5f3f0;
  --surface: #f0eeea;
  --border: #e2ded8;
  /* --primary and --accent injected by ThemeContext from theme/palettes */
  --text: #0f172a;
  --muted: #475569;
  --radius: 10px;
  /* Modal width: up to 95% of page width (safe-area aware). */
  --modal-max-width: min(1520px, 95vw);
  --modal-max-width-narrow: min(1200px, 95vw);
  --modal-max-width-compact: min(520px, 95vw);
  --modal-max-width-medium: min(720px, 95vw);
  --modal-viewport-cap: min(
    95vw,
    calc(
      100vw - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px) -
        max(0.5rem, 2.5vw)
    )
  );
  --modal-max-height-mobile: min(
    95dvh,
    calc(
      100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) -
        max(0.5rem, 2.5dvh)
    )
  );
  --modal-max-height-desktop: min(
    95dvh,
    calc(
      100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) -
        max(0.75rem, 2.5dvh)
    )
  );
  /* Floating chat panel (fixed); overridden below mobile bottom nav when that bar is visible */
  --chat-panel-bottom-offset: 1rem;
  --chat-panel-right-offset: 1rem;
}

/* Dark mode: black/neutral layout tokens (no blue tint).
   Hierarchy: --bg (deepest) < --surface (elevated panels) < --border (edges).
   Content area uses --bg; sidebar/topbar/cards use --surface so they appear elevated. */

.dark,
[data-theme="dark"],
[data-theme$="-dark"] {
  color-scheme: dark;
  --bg: #0c0c0c;
  --surface: #1a1a1a;
  --border: #2e2e2e;
  --text: #fafafa;
  --muted: #a3a3a3;
}

/* Full-screen overlay during Tauri auth→app resize so user doesn't see reflow/flicker */

.tauri-resize-overlay {
  position: fixed;
  inset: 0;
  background: var(--bg);
  z-index: 2147483646;
  pointer-events: none;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  /* Background set conditionally - transparent for Tauri transparent windows */
  /* When running in Tauri with transparent background, this should be transparent */
  background: var(--bg);
  color: var(--text);
}

/* Tauri transparent window support - ensure root elements are transparent */

/* This allows Tauri windows with transparent backgrounds to work correctly */

html.tauri-transparent,
body.tauri-transparent,
html.tauri-transparent #root,
body.tauri-transparent #root {
  background: transparent !important;
  background-color: transparent !important;
}

a {
  color: inherit;
  text-decoration: none;
}

/* Zoom compensation: root and layout fill 100% of window at any zoom (--zoom-level set by Tauri user-menu zoom) */

#root {
  width: calc(100vw / var(--zoom-level, 1));
  min-width: calc(100vw / var(--zoom-level, 1));
  height: calc(100vh / var(--zoom-level, 1));
  min-height: calc(100vh / var(--zoom-level, 1));
}

/* When zoomed, root and layout use solid background so no transparent strip on right/bottom */

html.desktop-app.zoom-active #root,
html.desktop-app.zoom-active .layout {
  background: var(--bg);
}

/* When zoomed out, cover entire viewport so right/bottom never show transparent (Tauri or browser) */

html.desktop-app.zoom-active::before {
  content: '';
  position: fixed;
  inset: 0;
  background: var(--bg);
  z-index: -1;
}

/* Fixed viewport size so only .body scrolls; navbar stays visible on all pages */

/* overflow-y: visible so dropdowns (e.g. user menu) below topbar are not clipped */

.layout {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 100%;
  max-width: 100%;
  height: 100%;
  min-height: 100%;
  max-height: 100%;
  overflow-x: hidden;
  overflow-y: visible;
}

.topbar {
  height: 60px;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 0 20px;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 10;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  overflow: visible;
  min-width: 0;
}

.dark .topbar,
[data-theme$="-dark"] .topbar {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}

/* Brand wrapper: never grow; only take space needed so navbar + user-menu get remaining space */

.topbar .topbar-brand-wrap {
  flex: 0 0 auto !important;
  min-width: 0;
}

/* Wrapper that contains navbar: in browser it is a flex child of .topbar; must shrink so user-menu stays visible */

.topbar .topbar-navbar-wrap {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  overflow: hidden !important; /* Constrain width so inner navbar scroll works */
}

/* Navbar (nav) inside wrapper: also shrink so scroll container gets bounded width */

.topbar .navbar {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

/* Desktop app: Draggable topbar */

.topbar-desktop-draggable {
  /* Prevent text selection during drag for better UX */
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  /* Cursor indicates draggable area (will be overridden by interactive elements) */
  cursor: default;
}

/* Interactive elements should allow text selection and prevent drag */

.topbar-desktop-draggable button,
.topbar-desktop-draggable a,
.topbar-desktop-draggable input,
.topbar-desktop-draggable select,
.topbar-desktop-draggable textarea,
.topbar-desktop-draggable [role="button"],
.topbar-desktop-draggable .user-menu,
.topbar-desktop-draggable .brand {
  -webkit-user-select: auto;
  -moz-user-select: auto;
  user-select: auto;
  cursor: auto;
}

/* Window controls container - in flow by default */

.window-controls {
  flex-shrink: 0;
  margin-left: 8px;
}

/* Desktop app: fix window controls to top-right; counter-scale so they stay full size when page is zoomed */

html.desktop-app .window-controls {
  position: fixed;
  top: 0;
  right: 0;
  height: 60px;
  margin-left: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  padding-right: 4px;
  transform-origin: top right;
  transform: scale(calc(1 / var(--zoom-level, 1)));
}

/* Reserve space in topbar so user menu doesn't sit under fixed window controls */

html.desktop-app .user-menu {
  padding-right: 112px; /* ~3 buttons + gap so content doesn't overlap fixed controls */
}

/* Window control buttons - premium Windows 11 style */

.window-controls button {
  /* Square buttons, no rounded corners */
  border-radius: 0;
  /* Smooth transitions */
  transition: background-color 200ms ease, color 200ms ease;
}

/* Window controls are handled via JavaScript drag exclusion in AppLayout */

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto; /* Never grow or shrink; leave remaining space for navbar + user-menu */
}

/* Top bar logo: one token set so wide marks never crowd the nav strip */

.brand-logo {
  --brand-logo-h: 34px;
  --brand-logo-max-w: min(10rem, 30vw);
  height: var(--brand-logo-h);
  max-height: var(--brand-logo-h);
  width: auto;
  max-width: var(--brand-logo-max-w);
  object-fit: contain;
  object-position: left center;
  flex-shrink: 0;
  display: block;
}

@media (min-width: 968px) {
  .brand-logo {
    --brand-logo-h: 36px;
    --brand-logo-max-w: min(11rem, 26vw);
  }
}

.brand-text {
  font-size: 17px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.02em;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-shrink: 1; /* Allow text to shrink if needed */
  min-width: 0; /* Allow text to truncate */
}

/* Navbar: must not grow so scroll container gets bounded width and overflow-x works (all viewports including 1405px and below) */

.navbar {
  position: relative; /* Required for dropdown positioning */
  min-width: 0 !important; /* Allow shrink in topbar so user-menu stays visible */
  overflow: hidden !important; /* Clip so inner scroll container is the only scrolling area */
}

/* Navbar item wrappers - motion.div elements; never shrink so overflow triggers horizontal scroll */

.navbar-item-wrapper {
  flex-shrink: 0 !important;
}

/* Nav items container: scrollable when items don't fit (same approach as sidebar) */

/* At 968px–1405px and below (browser): no html.desktop-app, so base rule must win; use !important to avoid overrides. */

.navbar .desktop-only {
  order: 1;
  flex: 1 1 0% !important; /* Take remaining space between brand and user-menu */
  min-width: 0 !important; /* Allow shrink so container doesn't expand; required at 1405px and below */
  overflow-x: auto !important; /* Enforce horizontal scroll at all desktop widths (968px+) */
  overflow-y: hidden !important;
}

/* Wrapper that holds scroll container + arrows: do not scroll; inner .navbar-nav-scroll scrolls */

.navbar .navbar-nav-scroll-wrap {
  overflow: hidden !important;
}

/* Horizontal scroll for nav items; scrollbar hidden, wheel scrolls horizontally via JS */

.navbar .navbar-nav-scroll {
  flex: 1 1 0%;
  min-width: 0;
  overflow-x: auto !important;
  overflow-y: hidden !important;
}

.navbar-nav-scroll {
  -ms-overflow-style: none; /* Legacy Edge */
}

.navbar-nav-scroll::-webkit-scrollbar {
  display: none; /* Safari / iOS / older Chromium */
}

@supports (scrollbar-width: none) {
  .navbar-nav-scroll {
    scrollbar-width: none; /* Firefox / Chromium 121+ */
  }
}

/* User menu always visible on the right (same as sidebar: user section fixed at bottom) */

.topbar .user-menu {
  flex: 0 0 auto !important; /* Never grow or shrink; always visible on the right */
  margin-left: auto; /* Push to the right */
}

.user-menu {
  display: flex;
  align-items: center;
  gap: 12px;
}

.user-menu-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
  color: var(--muted);
  font-weight: 500;
  font-size: 14px;
}

.user-menu-trigger:hover {
  background: transparent !important;
  color: var(--text);
}

.user-name {
  font-size: 14px;
  color: var(--muted);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px; /* Prevent email from being too long */
}

/* Scroll container: only this area scrolls so navbar (topbar) always stays visible */

/* Explicit background so bottom/sides never show transparent (desktop app) or wrong color */

.body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  position: relative;
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--surface);
}

/* Prevent collapse during page transitions; ensures no blank/white flash when switching pages */

.content {
  flex: 1;
  min-height: 0;
  padding: 8px;
  background: var(--surface);
  /* Prevent layout shifts during page transitions */
  position: relative;
  /* Flex column so Suspense fallback (PageLoadingFallback) can fill the content area (logo bottom-right) */
  display: flex;
  flex-direction: column;
  /* Avoid overflow: hidden here so exit animation and dropdowns/modals are not clipped */
}

/* Tauri: stable content area during page swap so layout does not jump when opening a new page */

/* min-height compensates for zoom so content area fills viewport below topbar when zoomed out */

html.desktop-app .content {
  /* Prevent content area from shrinking when swapping to a page with less content */
  min-height: calc((100vh - 60px) / var(--zoom-level, 1));
}

/* Content wrapper (PageTransitionWrapper): flex chain so Suspense fallback fills the content area (loading logo bottom-right).
   This div is the scroll container so entity (and other) pages scroll when sidebar/window height changes. */

.content > div {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
}

html.desktop-app .content > div {
  transform: translateZ(0);
  /* Contain layout so inner reflow when new page mounts does not shift navbar/rest of page */
  contain: layout;
}

/* ============================================================================
 * Sidebar Layout
 * ============================================================================
 * When layout mode is "sidebar", the .layout div gets .layout-sidebar.
 * The topbar vanishes entirely; the sidebar owns brand + nav + user menu.
 * .body switches to row flex so the aside + main sit side by side.
 * ============================================================================ */

/*
 * Sidebar shell: lock to the viewport, then use a 1-row CSS grid for
 * ``aside | main``. Flex stretch + ``height: 100%`` kept collapsing to content
 * height when the flex percentage chain was indefinite: grid ``1fr`` rows give
 * both columns a definite full-rail height so the user-menu can pin to the bottom.
 */

.layout.layout-sidebar {
  height: 100vh;
  height: 100dvh;
  max-height: 100vh;
  max-height: 100dvh;
  overflow: hidden;
}

/* In sidebar mode, .body is a single full-height grid row (aside | main).
   The body itself does NOT scroll – only .content > div scrolls. */

.layout-sidebar .body {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  flex: 1 1 auto;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
  align-items: stretch;
}

/*
 * Sidebar aside – fixed expanded width (not ``max-content``). Content-sized width
 * + width transitions made ``app-shell-sidebar-brand`` shift on every route swap
 * (scrollbar gutter, logo settle, switcher chrome). Collapse still animates width.
 */

.app-sidebar {
  --app-sidebar-expanded-width: 15rem; /* 240px: between prior 180–300px content range */
  --app-sidebar-collapsed-width: 4rem;
  width: var(--app-sidebar-expanded-width);
  min-width: var(--app-sidebar-expanded-width);
  max-width: var(--app-sidebar-expanded-width);
  height: 100%;
  min-height: 0;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--border);
  background: var(--surface);
  overflow-x: hidden;
  overflow-y: hidden;
  transition: width 300ms cubic-bezier(0.4, 0, 0.2, 1),
              min-width 300ms cubic-bezier(0.4, 0, 0.2, 1),
              max-width 300ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* Nav grows; user section stays at the bottom of the full-height rail. */

.app-sidebar nav {
  flex: 1 1 0%;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  /* Keep brand/nav width stable when the overflow scrollbar appears after layout settle. */
  scrollbar-gutter: stable;
}

.app-sidebar > [data-testid='app-shell-sidebar-user-section'] {
  flex-shrink: 0;
  margin-top: auto;
}

.app-sidebar-collapsed {
  width: var(--app-sidebar-collapsed-width);
  min-width: var(--app-sidebar-collapsed-width);
  max-width: var(--app-sidebar-collapsed-width);
}

/* Main column: same grid row height as the aside; inner wrapper scrolls. */

.layout-sidebar .content {
  min-width: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: hidden;
}

.layout-sidebar .content > div {
  flex: 1 1 0%;
  min-height: 0;
  height: 100%;
  max-height: 100%;
}

/* ── Sidebar mobile: same flex row as navbar (brand + spacer + user-menu with hamburger) ── */

/* Hidden on desktop viewports; only visible on mobile (<968px) browsers */

.topbar-sidebar-mobile {
  display: none;
}

@media (max-width: 967px) {
  html:not(.desktop-app):not([data-tauri="1"]) .topbar-sidebar-mobile {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    position: sticky;
    top: 0;
    /* Match main topbar: stay above fixed bottom nav so hamburger stays usable */
    z-index: 120;
  }

  /* Brand must shrink so the menu control stays on the trailing edge (right in LTR). */
  html:not(.desktop-app):not([data-tauri="1"]) .topbar-sidebar-mobile .topbar-brand-wrap {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    overflow: hidden;
  }

  html:not(.desktop-app):not([data-tauri="1"]) .topbar-sidebar-mobile .topbar-brand-wrap .brand {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: 100%;
  }

  html:not(.desktop-app):not([data-tauri="1"]) .topbar-sidebar-mobile .user-menu {
    flex-shrink: 0 !important;
    margin-left: auto !important;
  }
}

/* ── Sidebar Tauri: thin drag region + window controls ── */

.topbar-sidebar-desktop {
  display: flex;
  align-items: center;
  height: 36px;
  padding: 0 4px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

/* Tauri: body fills below the 36px drag strip (layout is still 100dvh with the strip as a sibling). */

html.desktop-app .layout.layout-sidebar,
html[data-tauri="1"] .layout.layout-sidebar {
  height: calc(100vh / var(--zoom-level, 1));
  max-height: calc(100vh / var(--zoom-level, 1));
}

html.desktop-app .layout-sidebar .body,
html[data-tauri="1"] .layout-sidebar .body {
  height: calc((100vh - 36px) / var(--zoom-level, 1));
  max-height: calc((100vh - 36px) / var(--zoom-level, 1));
}

/* Tauri sidebar: content fills the same body row as the aside */

html.desktop-app .layout-sidebar .content,
html[data-tauri="1"] .layout-sidebar .content {
  height: 100%;
  min-height: 0;
  max-height: 100%;
}

/* Tauri sidebar: window controls height matches the 36px drag strip */

html.desktop-app .layout-sidebar .window-controls {
  height: 36px;
}

/* Mobile: hide permanent sidebar (Sheet handles it) */

@media (max-width: 967px) {
  html:not(.desktop-app):not([data-tauri="1"]) .app-sidebar {
    display: none !important;
  }
}

/* Desktop app: sidebar always visible in sidebar mode */

html.desktop-app .layout-sidebar .app-sidebar,
html[data-tauri="1"] .layout-sidebar .app-sidebar {
  display: flex !important;
}

/* ============================================================================
 * SIDEBAR LOCKDOWN - Desktop App (Tauri)
 * ============================================================================
 * Ensure the sidebar renders identically at EVERY viewport width in Tauri.
 * Prevents Tailwind-generated responsive CSS from altering sidebar elements
 * when the Tauri window crosses the xl (1644px) or other breakpoints.
 * ============================================================================ */

/* Sidebar aside - lock expanded/collapsed widths & flex behaviour */

html.desktop-app .app-sidebar,
html[data-tauri="1"] .app-sidebar {
  width: var(--app-sidebar-expanded-width) !important;
  min-width: var(--app-sidebar-expanded-width) !important;
  max-width: var(--app-sidebar-expanded-width) !important;
  flex-shrink: 0 !important;
  flex-direction: column !important;
  display: flex !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: 100% !important;
  overflow-x: hidden !important;
}

html.desktop-app .app-sidebar.app-sidebar-collapsed,
html[data-tauri="1"] .app-sidebar.app-sidebar-collapsed {
  width: var(--app-sidebar-collapsed-width) !important;
  min-width: var(--app-sidebar-collapsed-width) !important;
  max-width: var(--app-sidebar-collapsed-width) !important;
}

/* Sidebar brand header - always visible with correct sizing (desktop app only).
 * In browser at tablet (968–1279px) the app hides the brand; first child is then <nav>, so these
 * selectors do not apply. They are intentionally scoped to desktop-app so no conflict. */

html.desktop-app .app-sidebar > div:first-child,
html[data-tauri="1"] .app-sidebar > div:first-child {
  display: flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
}

/* Brand logo - lock size, prevent responsive resize */

html.desktop-app .app-sidebar > div:first-child img,
html[data-tauri="1"] .app-sidebar > div:first-child img {
  height: 2rem !important;   /* h-8 = 32px */
  width: auto !important;
  max-height: 2rem !important;
  object-fit: contain !important;
  flex-shrink: 0 !important;
}

html.desktop-app .app-sidebar.app-sidebar-collapsed > div:first-child img,
html[data-tauri="1"] .app-sidebar.app-sidebar-collapsed > div:first-child img {
  height: 1.75rem !important; /* h-7 = 28px */
  max-height: 1.75rem !important;
}

/* Brand text - always visible when expanded, correct font sizing */

html.desktop-app .app-sidebar > div:first-child span,
html[data-tauri="1"] .app-sidebar > div:first-child span {
  display: inline !important;
  font-size: 0.875rem !important;  /* text-sm = 14px */
  font-weight: 700 !important;     /* font-bold */
  white-space: nowrap !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* …except when collapsed: React does not render the span (conditional),
   but if it somehow renders, hide it defensively. */

html.desktop-app .app-sidebar.app-sidebar-collapsed > div:first-child span:not(:only-child),
html[data-tauri="1"] .app-sidebar.app-sidebar-collapsed > div:first-child span:not(:only-child) {
  /* span only appears if React renders it (collapsed === false) */
}

/* Sidebar nav - lock flex-col and scrolling behaviour */

html.desktop-app .app-sidebar nav,
html[data-tauri="1"] .app-sidebar nav {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 0% !important;
  overflow-y: auto !important;
}

/* Sidebar nav items - always row, consistent gap & sizing */

html.desktop-app .app-sidebar nav button,
html[data-tauri="1"] .app-sidebar nav button {
  display: inline-flex !important;
  align-items: center !important;
  width: 100% !important;
}

/* ============================================================================
 * End Sidebar Layout
 * ============================================================================ */

/* Zoom-aware heights: use var(--zoom-level, 1) so viewport-based heights fill correctly when zoomed (Tauri user-menu zoom). */

.metrics-page-fill {
  height: calc((100vh - 48px) / var(--zoom-level, 1));
}

.calendar-page-fill {
  /* Calendar page needs to fill viewport minus navbar/padding; the flex-col layout
     ensures the header area takes natural height and the card stretches to fill. */
  height: calc((100vh - 56px) / var(--zoom-level, 1));
  display: flex;
  flex-direction: column;
}

html.desktop-app .calendar-page-fill {
  /* Tauri non-sidebar: topbar 60px + .content padding 24px×2 = 108px */
  height: calc((100vh - 108px) / var(--zoom-level, 1));
}

.layout-sidebar .calendar-page-fill {
  height: calc((100vh - 16px) / var(--zoom-level, 1));
}

html.desktop-app .layout-sidebar .calendar-page-fill {
  /* Tauri sidebar: topbar 36px + .content padding 24px×2 = 84px */
  height: calc((100vh - 84px) / var(--zoom-level, 1));
}

/* ============================================================================
 * CALENDAR PAGE - Desktop App (Tauri) Overrides
 * ============================================================================
 * The calendar sidebar uses `hidden lg:flex` which depends on the lg breakpoint
 * (1280px). In Tauri the default window is 1280×800 but the effective viewport
 * is smaller after subtracting the drag strip and scrollbars. The generic Tauri
 * CSS in cards.css / components.css / responsive.css / grid.css uses broad
 * attribute selectors that can interfere with the calendar page's flex layout.
 *
 * These explicit rules override ALL conflicting Tauri CSS to ensure the
 * calendar page renders identically in Tauri and in the browser at desktop
 * viewport. They have higher specificity than the generic selectors.
 * ============================================================================ */

/* ── Calendar sidebar ── always visible, fixed width, column layout ── */

html.desktop-app .calendar-page-fill aside,
html[data-tauri="1"] .calendar-page-fill aside {
  display: flex !important;
  flex-direction: column !important;
  width: 220px !important;
  min-width: 220px !important;
  max-width: 220px !important;
  flex-shrink: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  border-right-width: 1px !important;
  border-right-style: solid !important;
  border-right-color: hsl(var(--border)) !important;
}

/* ── Calendar main card (sidebar + grid wrapper) ── */

html.desktop-app .calendar-page-fill > .flex,
html[data-tauri="1"] .calendar-page-fill > .flex {
  display: flex !important;
  flex-direction: row !important;
  flex: 1 1 0% !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

/* ── Calendar grid area (flex-1 sibling of aside) ── */

html.desktop-app .calendar-page-fill aside ~ div,
html[data-tauri="1"] .calendar-page-fill aside ~ div {
  flex: 1 1 0% !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 0 !important;
  min-width: 0 !important;
}

/* ── Sidebar internal sections ── correct padding/borders ── */

html.desktop-app .calendar-page-fill aside > div,
html[data-tauri="1"] .calendar-page-fill aside > div {
  padding: 0.75rem !important; /* p-3 */
}

/* ── Calendar page: tighter vertical spacing in Tauri ──
 * .content provides 24px padding in Tauri (vs 8px in browser).
 * Reduce page-container top padding and internal mb-3 margins
 * so total vertical spacing matches the browser desktop layout. */

html.desktop-app .calendar-page-fill,
html[data-tauri="1"] .calendar-page-fill {
  padding-top: 0.25rem !important; /* 4px - .content already adds 24px above */
}

html.desktop-app .calendar-page-fill > .mb-3,
html[data-tauri="1"] .calendar-page-fill > .mb-3 {
  margin-bottom: 0.375rem !important; /* 6px vs default 12px */
}

/* ── ALL calendar page buttons ── undo 48px min-h-touch from Button component ──
 * The Button base class includes min-h-touch min-w-touch (48px) for mobile
 * touch targets, but CalendarHeader buttons are compact (h-8 = 32px).
 * Applied to BOTH browser and Tauri for consistent button sizing. */

.calendar-page-fill button {
  min-height: unset !important;
  min-width: unset !important;
}

/* ── Mini-calendar inside sidebar ── preserve grid and aspect ratio ── */

html.desktop-app .calendar-page-fill aside .grid.grid-cols-7,
html[data-tauri="1"] .calendar-page-fill aside .grid.grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
}

/* ── Mini-calendar card ── undo components.css card overrides that
   force full-opacity border and wrong padding ── */

html.desktop-app .calendar-page-fill aside [class*="rounded-lg"][class*="border"][class*="bg-card"],
html[data-tauri="1"] .calendar-page-fill aside [class*="rounded-lg"][class*="border"][class*="bg-card"] {
  border-color: hsl(var(--border) / 0.5) !important; /* match border-border/50 */
  padding: 0.5rem !important; /* match p-2 */
}

/* ── Ensure sm:/lg: responsive visibility in calendar page ── */

html.desktop-app .calendar-page-fill [class*="hidden"][class*="sm:inline"],
html[data-tauri="1"] .calendar-page-fill [class*="hidden"][class*="sm:inline"] {
  display: inline !important;
}

html.desktop-app .calendar-page-fill [class*="hidden"][class*="sm:flex"],
html[data-tauri="1"] .calendar-page-fill [class*="hidden"][class*="sm:flex"] {
  display: flex !important;
}

html.desktop-app .calendar-page-fill [class*="hidden"][class*="lg:flex"],
html[data-tauri="1"] .calendar-page-fill [class*="hidden"][class*="lg:flex"] {
  display: flex !important;
}

/* ── Calendar grids: undo the global overflow:hidden from grid.css ── */

html.desktop-app .calendar-page-fill .grid > div,
html.desktop-app .calendar-page-fill .grid > button,
html[data-tauri="1"] .calendar-page-fill .grid > div,
html[data-tauri="1"] .calendar-page-fill .grid > button,
.calendar-page-fill .grid > button {
  overflow: visible !important;
}

/* ── Entity list table: fit in viewport, no horizontal scroll; all header/content visible ── */

.entity-list-table-wrapper.table-responsive {
  overflow-x: hidden;
  overflow-y: visible !important;
  max-height: none !important;
  width: 100%;
  max-width: 100%;
}

.entity-list-table-scroll-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

/* Keep table-layout: fixed so thead/tbody columns align; table is 100% width so no scroll */

body .entity-list-table-wrapper.table-responsive .entity-list-table {
  table-layout: fixed !important;
  width: 100% !important;
  min-width: 0 !important;
}

/* Override Tauri (tauri/tables.css + tauri/components.css) so entity list table is not forced to
   overflow-x: auto or table-layout: auto. These selectors have higher specificity and must win. */

html.desktop-app:not(.tauri-transparent) body .entity-list-table-wrapper.table-responsive {
  overflow-x: hidden !important;
  overflow-y: visible !important;
}

html.desktop-app:not(.tauri-transparent) body .entity-list-table-wrapper.table-responsive .entity-list-table {
  table-layout: fixed !important;
  width: 100% !important;
  min-width: 0 !important;
}

/* Entity list table: compact action buttons on desktop table only (>=968px). Mobile cards use min-h-touch. */

@media (min-width: 968px) {
  html body .entity-list-table-wrapper.table-responsive .entity-list-table .entity-list-actions-cell {
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    padding: 4px !important;
    overflow: hidden;
    box-sizing: border-box;
    vertical-align: middle;
  }

  html body .entity-list-table-wrapper.table-responsive .entity-list-table .entity-list-row-actions {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 2px;
    max-width: 100%;
  }

  html body .entity-list-table-wrapper.table-responsive .entity-list-table .entity-list-action-btn {
    height: 20px !important;
    width: 20px !important;
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    flex-shrink: 0;
  }
  html body .entity-list-table-wrapper.table-responsive .entity-list-table .entity-list-action-btn svg {
    width: 14px !important;
    height: 14px !important;
    flex-shrink: 0;
  }
}

/* ── Calendar header (controls bar) ── always row, never wrap ── */

html.desktop-app .calendar-page-fill .flex.flex-wrap,
html[data-tauri="1"] .calendar-page-fill .flex.flex-wrap {
  flex-wrap: wrap !important;
  align-items: center !important;
}

/* ── CalendarHeader date picker dropdown ── correct z-index ── */

html.desktop-app .calendar-page-fill .absolute.z-50,
html[data-tauri="1"] .calendar-page-fill .absolute.z-50 {
  z-index: 50 !important;
}

/* ── Month view day header row: force 7 cols ── */

html.desktop-app .calendar-page-fill .grid-cols-7,
html[data-tauri="1"] .calendar-page-fill .grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
}

/* ── Month view weeks grid: respect inline grid-template-rows from component ── */

/* (No forced override - component sets rows via inline style for adaptive 5/6-week grids) */

/* Min-height only: alignment is owned by the route shell (e.g. ProtectedRoute flex + items-end). */

.zoom-fill-viewport {
  min-height: calc(100vh / var(--zoom-level, 1));
}

.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04);
}

.dark .card,
[data-theme$="-dark"] .card {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.dark .content,
[data-theme$="-dark"] .content {
  background: var(--bg);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.button {
  background: hsl(var(--primary));
  color: white;
  border: none;
  padding: 10px 16px;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
}

.button:focus-visible,
.ghost:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid hsl(var(--accent));
  outline-offset: 2px;
}

.ghost {
  background: transparent;
  border: 1px solid var(--border);
  padding: 8px 14px;
  border-radius: 8px;
  cursor: pointer;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.label {
  font-weight: 600;
  color: var(--muted);
}

.input, .select, .textarea {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  /* Primary-tinted edge: plain --border/--input disappears on soft lavender panels. */
  border: 1px solid hsl(var(--primary) / 0.25);
  font-size: 14px;
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  transition: border-color 0.2s;
}

.input:hover, .select:hover, .textarea:hover {
  border-color: hsl(var(--primary) / 0.4);
}

.input:focus, .select:focus, .textarea:focus {
  outline: none;
  border-color: hsl(var(--primary) / 0.55);
}

.input::-moz-placeholder, .textarea::-moz-placeholder {
  color: hsl(var(--muted-foreground));
}

.input::placeholder, .textarea::placeholder {
  color: hsl(var(--muted-foreground));
}

.error {
  color: hsl(var(--destructive, 0 84% 60%));
  font-size: 12px;
}

.table {
  width: 100%;
  border-collapse: collapse;
}

.table th,
.table td {
  padding: 12px;
  border-bottom: 1px solid var(--border);
  text-align: left;
}

.badge {
  display: inline-flex;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  background: color-mix(in srgb, hsl(var(--primary)) 10%, transparent);
  color: hsl(var(--primary));
}

/* Mobile Menu Toggle Button */

/* Hidden by default - only shown on mobile via media query */

.mobile-menu-toggle {
  display: none;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 8px;
  color: var(--text);
  align-items: center;
  justify-content: center;
  min-width: 48px; /* Touch target size (updated to match new standard) */
  min-height: 48px;
  border-radius: 6px;
  transition: background 0.2s;
}

.mobile-menu-toggle:hover {
  background: var(--bg);
}

.mobile-menu-toggle:active {
  background: rgba(0, 0, 0, 0.05);
}

.dark .mobile-menu-toggle:active,
[data-theme$="-dark"] .mobile-menu-toggle:active {
  background: rgba(255, 255, 255, 0.06);
}

.mobile-menu-toggle:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Desktop-only elements */

/* Visible by default - hidden on mobile via media query */

/* NOTE: Do NOT set display here - let Tailwind classes handle it */

/* Components use Tailwind classes like 'flex' alongside 'desktop-only' */

/* Setting display: block here would conflict with Tailwind's flex */

/* Display is handled by Tailwind utility classes in components */

/* Mobile Hamburger Menu */

.mobile-menu-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1000;
  animation: fadeIn 0.2s ease-out;
}

.mobile-menu {
  position: fixed;
  top: 0;
  right: 0;
  width: 320px;
  max-width: 85vw;
  /* 100vh fallback, 100dvh avoids mobile browser chrome clipping the drawer */
  height: 100vh;
  height: 100dvh;
  max-height: 100vh;
  max-height: 100dvh;
  background: var(--surface);
  box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  /* Contain absolutely positioned close (same pattern as Sheet) */
  isolation: isolate;
}

.dark .mobile-menu,
[data-theme$="-dark"] .mobile-menu {
  box-shadow: -4px 0 24px rgba(0, 0, 0, 0.45);
  animation: slideInRight 0.3s ease-out;
  overflow-y: auto;
}

.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 20px;
  /* Leave space for absolutely positioned close (top-end of panel) */
  padding-top: max(1.25rem, calc(env(safe-area-inset-top, 0px) + 0.25rem));
  padding-inline-end: 3.25rem;
  border-bottom: 1px solid var(--border);
}

.mobile-user-info {
  flex: 1;
  min-width: 0;
}

.mobile-user-email {
  font-weight: 600;
  color: var(--text);
  font-size: 14px;
}

.mobile-menu-close {
  position: absolute;
  top: max(0.75rem, env(safe-area-inset-top, 0px));
  right: max(0.75rem, env(safe-area-inset-right, 0px));
  z-index: 2;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 8px;
  color: var(--text);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  opacity: 0.85;
  transition: opacity 0.15s ease, color 0.15s ease;
}

.mobile-menu-close:hover {
  opacity: 1;
  background: transparent;
}

.dark .mobile-menu-close:hover,
[data-theme$="-dark"] .mobile-menu-close:hover {
  background: transparent;
  opacity: 1;
}

.mobile-menu-close:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.mobile-menu-nav {
  flex: 1;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mobile-nav-item {
  display: block;
  padding: 12px 16px;
  border-radius: 8px;
  color: var(--muted);
  font-weight: 500;
  transition: all 0.2s;
  text-decoration: none;
}

.mobile-nav-item:hover {
  background: var(--bg);
  color: var(--muted);
}

.dark .mobile-nav-item:hover,
[data-theme$="-dark"] .mobile-nav-item:hover {
  background: rgba(255, 255, 255, 0.06);
}

.mobile-nav-item.active {
  background: color-mix(in srgb, hsl(var(--primary)) 12%, transparent);
  color: var(--text);
  font-weight: 600;
}

.mobile-menu-footer {
  padding: 20px;
  border-top: 1px solid var(--border);
}

/* Mobile Bottom Navigation */

.mobile-bottom-nav {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--surface);
  border-top: 1px solid var(--border);
  padding-top: 8px;
  padding-left: max(0px, env(safe-area-inset-left, 0px));
  padding-right: max(0px, env(safe-area-inset-right, 0px));
  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
  z-index: 100;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05);
  flex-wrap: nowrap;
  justify-content: stretch;
  width: 100%;
  gap: 0;
}

.dark .mobile-bottom-nav,
[data-theme$="-dark"] .mobile-bottom-nav {
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.3);
}

.mobile-nav-icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 6px 4px;
  color: var(--muted);
  text-decoration: none;
  font-size: 11px;
  font-weight: 500;
  transition: all 0.2s;
  flex: 1 1 0;
  min-width: 0;
}

.mobile-nav-icon-disabled {
  cursor: not-allowed;
  opacity: 0.65;
}

.mobile-nav-icon svg {
  transition: color 0.2s;
}

/* Visible label removed (icon-only bar); optional .mobile-nav-item-label uses .sr-only from Tailwind */

.mobile-nav-icon .mobile-nav-item-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.mobile-nav-icon:hover {
  color: var(--muted);
}

/* Selected tab: primary text/icon only (no pill background). */

.mobile-nav-icon.active {
  color: hsl(var(--primary));
  font-weight: 600;
}

.mobile-nav-icon.active svg {
  color: hsl(var(--primary));
}

/* Notifications + account slots (browser mobile <968px: bottom shell; navbar + sidebar parity) */

.mobile-bottom-shell-slot {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 6px 4px;
  flex: 1 1 0;
  min-width: 0;
  min-height: 0;
  color: var(--muted);
}

.mobile-bottom-shell-slot-user {
  align-items: stretch;
}

.mobile-bottom-shell-label {
  font-size: 11px;
  font-weight: 500;
  line-height: 1.2;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
}

/* Animations */

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes slideInRight {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}

/* Responsive Design - Mobile View (below md breakpoint - 968px) */

/* CRITICAL: In Tauri desktop app, NEVER apply mobile styles regardless of window size */

/* Desktop app windows can be small (500px) but should always use desktop layout */

/* Using 968px (Tailwind md: breakpoint) to match Tailwind responsive classes */

/* Hide rule must NOT match when html has .desktop-app OR data-tauri="1" (set by index.html or boot.ts). */

@media (max-width: 967px) {
  /* Only apply mobile styles if NOT in desktop app (no .desktop-app and no data-tauri="1" on html) */
  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .desktop-only,
  html:not(.desktop-app):not([data-tauri="1"]) .desktop-only {
    display: none !important;
  }
  
  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .mobile-menu-toggle,
  html:not(.desktop-app):not([data-tauri="1"]) .mobile-menu-toggle {
    display: flex;
  }
  
  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .mobile-menu-overlay,
  html:not(.desktop-app):not([data-tauri="1"]) .mobile-menu-overlay {
    display: block;
  }
  
  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .mobile-bottom-nav,
  html:not(.desktop-app):not([data-tauri="1"]) .mobile-bottom-nav {
    display: flex;
  }
  
  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .body,
  html:not(.desktop-app):not([data-tauri="1"]) .body {
    /* Bottom nav (~56-64px) + vertical padding + home indicator / safe area */
    padding-bottom: calc(70px + env(safe-area-inset-bottom, 0px));
    overflow-x: hidden;
  }

  /* Chat panel + toast stack: sit above .mobile-bottom-nav (same clearance as sonner.css 5.25rem) */
  html:not(.desktop-app):not([data-tauri="1"]) {
    --chat-panel-bottom-offset: calc(5.25rem + env(safe-area-inset-bottom, 0px));
  }
  
  
  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .content,
  html:not(.desktop-app):not([data-tauri="1"]) .content {
    padding: 16px;
    overflow-x: hidden;
    box-sizing: border-box;
  }
  
  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .topbar,
  html:not(.desktop-app):not([data-tauri="1"]) .topbar {
    padding: 0 16px;
    height: 56px; /* Slightly smaller on mobile */
    /* Above .mobile-bottom-nav (z-index 100) so user menu and dropdowns are not covered */
    z-index: 120;
  }

  /* Let user-menu column shrink inside the topbar flex row so the trigger never clips horizontally */
  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .topbar .user-menu,
  html:not(.desktop-app):not([data-tauri="1"]) .topbar .user-menu {
    min-width: 0;
  }
  
  /* Browser only: at 967px .desktop-only is hidden so desktop navbar is not shown; mobile menu/bottom nav used instead. */

  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .brand,
  html:not(.desktop-app):not([data-tauri="1"]) .brand {
    gap: 10px; /* Slightly smaller gap on mobile */
    max-width: calc(100% - 60px); /* Leave space for menu button */
    flex-shrink: 0; /* Prevent brand from shrinking */
  }

  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .brand-text,
  html:not(.desktop-app):not([data-tauri="1"]) .brand-text {
    font-size: 16px; /* Smaller text on mobile */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px; /* Prevent text from being too long on mobile */
  }

  /* On very small screens, hide text if logo is present (only in web, not desktop app) */
  @media (max-width: 360px) {
    html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .brand-logo + .brand-text,
    html:not(.desktop-app):not([data-tauri="1"]) .brand-logo + .brand-text {
      display: none; /* Hide app name on very small screens if logo exists */
    }
  }

  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .brand-logo,
  html:not(.desktop-app):not([data-tauri="1"]) .brand-logo {
    --brand-logo-h: 30px;
    --brand-logo-max-w: min(8.75rem, 40vw);
  }

  /* Prevent body content from horizontal scroll while allowing topbar logo */
  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .body,
  html:not(.desktop-app):not([data-tauri="1"]) .body {
    overflow-x: hidden;
  }
}

/* ============================================================================
 * CRITICAL: Desktop App Overrides
 * ============================================================================
 * In Tauri desktop app, ALWAYS hide mobile UI elements regardless of window size.
 * Mobile menu toggle and bottom navbar should ONLY appear in mobile browsers/devices.
 * 
 * The .desktop-app class and/or data-tauri="1" are set on html when running in Tauri
 * (index.html inline script or boot.ts). Use both so overrides apply even if .desktop-app
 * is added late (e.g. after first paint); data-tauri is set in the same code paths.
 * ============================================================================ */

/* ALWAYS hide mobile UI elements in desktop app - regardless of window size */

html.desktop-app body.desktop-app .mobile-menu-toggle,
html.desktop-app body.desktop-app .mobile-menu-overlay,
html.desktop-app body.desktop-app .mobile-bottom-nav,
html.desktop-app .mobile-menu-toggle,
html.desktop-app .mobile-menu-overlay,
html.desktop-app .mobile-bottom-nav,
html[data-tauri="1"] .mobile-menu-toggle,
html[data-tauri="1"] .mobile-menu-overlay,
html[data-tauri="1"] .mobile-bottom-nav {
  display: none !important;
}

/* Desktop-only elements in desktop app - never hidden by mobile @media (max-width: 967px) */

/* Nav items container: lock min-width and overflow so scroll works after full load (no post-load expansion). */

html.desktop-app .navbar .desktop-only,
html[data-tauri="1"] .navbar .desktop-only {
  display: flex !important;
  min-width: 0 !important; /* Prevent flex item from growing to fit content after load */
  overflow-x: auto !important; /* Enforce horizontal scroll; must win over any later styles */
  overflow-y: hidden !important;
}

@media (max-width: 967px) {
  html.desktop-app .navbar .desktop-only,
  html[data-tauri="1"] .navbar .desktop-only {
    order: 1 !important;
    min-width: 0 !important;
  }
}

html.desktop-app body.desktop-app .body,
html.desktop-app .body,
html[data-tauri="1"] .body {
  padding-bottom: 0 !important; /* No bottom nav padding */
}

html.desktop-app body.desktop-app .content,
html.desktop-app .content,
html[data-tauri="1"] .content {
  padding: 24px !important; /* Desktop padding */
}

/* ============================================================================
 * BASE STYLES
 * ============================================================================
 * Base CSS variables, animations, and global styles
 * ============================================================================ */

/* Light mode: hover uses --hover-surface-light from theme palette (injectThemeCssVars); single source of truth. */

html:not(.dark):not([data-theme$="-dark"]) [class*="hover:bg-primary"]:hover {
  background-color: var(--hover-surface-light) !important;
}

html:not(.dark):not([data-theme$="-dark"]) .user-menu .user-menu-trigger:hover,
html:not(.dark):not([data-theme$="-dark"]) .user-menu [role="menuitem"]:hover {
  background-color: var(--hover-surface-light) !important;
}

html:not(.dark):not([data-theme$="-dark"]) [class*="hover:bg-accent"]:hover {
  background-color: var(--hover-surface-light) !important;
}

:focus:not(:focus-visible) {
  outline: none;
}

/* Mobile text inflation: every engine that implements the control */

html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.app-shell {
  min-height: 100vh;
}

h1 {
  margin: 0 0 16px;
  font-size: 24px;
}

h2 {
  margin: 0 0 12px;
  font-size: 18px;
}

p {
  margin: 0 0 10px;
  color: hsl(var(--muted-foreground, 215.4 16.3% 38%));
}

.table-empty {
  padding: 1.5rem 1rem;
  text-align: center;
  color: hsl(var(--muted-foreground, 215.4 16.3% 38%));
}

@media (min-width: 640px) {
  .table-empty {
    padding: 2.5rem 1.5rem;
  }
}

@keyframes report-spin {
  to { transform: rotate(360deg); }
}

/* Base: Hide mobile cards by default (shown on mobile via media query) */

.mobile-table-cards {
  display: none;
}

/* ============================================================================
 * TAURI BASE STYLES
 * ============================================================================
 * Tauri-specific base styles: transparency, zoom support
 * ============================================================================ */

/* Tauri transparent window support */

/* Ensure html, body, and root elements are transparent when Tauri window is transparent */

/* This is critical for Layer 3 of the three-layer transparency requirement */

html.tauri-transparent,
body.tauri-transparent,
html.tauri-transparent #root,
body.tauri-transparent #root {
  background: transparent !important;
  background-color: transparent !important;
  margin: 0;
}

/* Tauri zoom support */

/* Ensure zoom works correctly with layout */

html {
  /* Zoom will be applied via JavaScript */
  overflow-x: auto;
  overflow-y: auto;
}

body {
  /* Prevent double scaling when zoom is applied */
  transform-origin: top left;
}

/* Optional: If you have an #app wrapper, make it transparent too */

html.tauri-transparent #app,
body.tauri-transparent #app {
  background: transparent !important;
  background-color: transparent !important;
}

/* ============================================================================
 * TAURI TRANSPARENT SHELL – Match desktop connection page
 * ============================================================================
 * When the app runs inside the Tauri frameless+transparent window (html/body
 * have .tauri-transparent), surfaces use the same glass/translucent style as
 * the connection page: white/90, backdrop-blur, border white/20.
 * ============================================================================ */

/* Topbar: glass bar matching connection page panel */

html.tauri-transparent .topbar,
body.tauri-transparent .topbar {
  background: rgba(250, 249, 247, 0.9) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

/* Layout and content: transparent so window shows through */

html.tauri-transparent .layout,
body.tauri-transparent .layout,
html.tauri-transparent .body,
body.tauri-transparent .body,
html.tauri-transparent .content,
body.tauri-transparent .content {
  background: transparent !important;
  background-color: transparent !important;
}

/* Layout .card (layout.css): glass panel */

html.tauri-transparent .card,
body.tauri-transparent .card {
  background: rgba(250, 249, 247, 0.9) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

/* Mobile menu (when shown in Tauri): glass */

html.tauri-transparent .mobile-menu,
body.tauri-transparent .mobile-menu {
  background: rgba(250, 249, 247, 0.95) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-left: 1px solid rgba(255, 255, 255, 0.2) !important;
}

/* Mobile bottom nav: glass */

html.tauri-transparent .mobile-bottom-nav,
body.tauri-transparent .mobile-bottom-nav {
  background: rgba(250, 249, 247, 0.9) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255, 255, 255, 0.2) !important;
}

/* Tailwind-style card surfaces (rounded-lg + bg-card / border) – glass in transparent mode */

html.tauri-transparent [class*="rounded-lg"][class*="border"][class*="bg-card"],
html.tauri-transparent [class*="rounded-lg"][class*="border"][class*="shadow-sm"],
body.tauri-transparent [class*="rounded-lg"][class*="border"][class*="bg-card"],
body.tauri-transparent [class*="rounded-lg"][class*="border"][class*="shadow-sm"] {
  background: rgba(250, 249, 247, 0.9) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-color: rgba(255, 255, 255, 0.2) !important;
}

/* ============================================================================
 * MOBILE RESPONSIVE STYLES
 * ============================================================================
 * CONTRACT: Mobile UI rules must NOT apply when frontend is open in Tauri
 * desktop app. In Tauri, boot.ts sets document.documentElement.classList
 * .add('desktop-app'), so html has .desktop-app. Every rule in the block below
 * is scoped with html:not(.desktop-app) (and often body:not(.desktop-app)) so
 * none of them match when .desktop-app is set. Do not add rules without that
 * scope; desktop app must always use desktop layout.
 * ============================================================================ */

/* Responsive Utilities - Mobile View (below 968px) - NEVER apply in desktop app.
 * Aligned with layout.css @media (max-width: 967px) so 968px+ gets desktop layout.
 * Previously 1644px caused 1280-1644px to show mobile layout (cards, stacked grids) in browser. */

@media (max-width: 967px) {
  /* Page Container Responsive Styles - only apply if NOT in desktop app */
  html:not(.desktop-app) body:not(.desktop-app) .page-container,
  html:not(.desktop-app) .page-container {
    padding: 12px !important;
    max-width: 100% !important;
  }

  /* Typography adjustments - only apply if NOT in desktop app */
  html:not(.desktop-app) body:not(.desktop-app) h1,
  html:not(.desktop-app) h1 {
    font-size: 24px !important;
    margin-bottom: 12px !important;
  }

  html:not(.desktop-app) body:not(.desktop-app) h2,
  html:not(.desktop-app) h2 {
    font-size: 20px !important;
    margin-bottom: 10px !important;
  }

  /* Card padding adjustments - only apply if NOT in desktop app */
  html:not(.desktop-app) body:not(.desktop-app) .card,
  html:not(.desktop-app) .card {
    padding: 16px !important;
  }

  /* Prevent horizontal scrollbar - only apply if NOT in desktop app */
  /* max-width: 100vw removed - it caused transparent strip on right when zooming */
  html:not(.desktop-app) body:not(.desktop-app),
  html:not(.desktop-app) {
    overflow-x: hidden !important;
    width: 100% !important;
  }

  /* Page container - ensure no overflow - only apply if NOT in desktop app */
  html:not(.desktop-app) body:not(.desktop-app) .page-container,
  html:not(.desktop-app) .page-container {
    overflow-x: hidden !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Table responsive - hide desktop tables, show mobile cards - only apply if NOT in desktop app */
  html:not(.desktop-app) body:not(.desktop-app) .table-responsive,
  html:not(.desktop-app) .table-responsive {
    overflow-x: visible !important;
    width: 100%;
    margin: 0;
    padding: 0;
    position: relative;
  }

  /* Hide desktop tables on mobile - only apply if NOT in desktop app */
  html:not(.desktop-app) body:not(.desktop-app) .table-responsive table,
  html:not(.desktop-app) body:not(.desktop-app) .table-responsive .table,
  html:not(.desktop-app) .table-responsive table,
  html:not(.desktop-app) .table-responsive .table {
    display: none !important;
  }

  /* Show mobile table cards - only apply if NOT in desktop app */
  html:not(.desktop-app) body:not(.desktop-app) .table-responsive .mobile-table-cards,
  html:not(.desktop-app) .table-responsive .mobile-table-cards {
    display: block !important;
  }

  /*
   * Opt-in: keep a real <table> on small viewports (horizontal scroll).
   * Default .table-responsive still hides tables so .mobile-table-cards can replace them.
   * Dashboard recent items and similar simple tables use this modifier.
   */
  html:not(.desktop-app) body:not(.desktop-app) .table-responsive.table-responsive-scroll-mobile,
  html:not(.desktop-app) .table-responsive.table-responsive-scroll-mobile {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }

  html:not(.desktop-app) body:not(.desktop-app) .table-responsive.table-responsive-scroll-mobile table,
  html:not(.desktop-app) .table-responsive.table-responsive-scroll-mobile table {
    display: table !important;
    width: max(100%, -moz-max-content);
    width: max(100%, max-content);
    min-width: min(100%, -moz-max-content);
    min-width: min(100%, max-content);
  }

  /* Table layout adjustments for mobile - only when NOT desktop app */
  html:not(.desktop-app) .table[style*="tableLayout: 'fixed'"],
  html:not(.desktop-app) .table[style*='tableLayout: "fixed"'] {
    table-layout: auto !important;
  }

  html:not(.desktop-app) .filter-section {
    flex-direction: column !important;
    gap: 12px !important;
  }

  /* Mobile table card styles - only when NOT desktop app */
  html:not(.desktop-app) .mobile-table-card {
    background: var(--surface);
    border: 1px solid #e3e8f0;
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    transition: all 0.2s ease;
    position: relative;
    width: 100%;
    box-sizing: border-box;
  }

  html:not(.desktop-app) .mobile-table-card-clickable {
    cursor: pointer;
  }

  @media (hover: hover) and (pointer: fine) {
    html:not(.desktop-app) .mobile-table-card-clickable:hover {
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
      transform: translateY(-2px);
    }
  }

  html:not(.desktop-app) .mobile-table-card-clickable:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  }

  html:not(.desktop-app) .mobile-table-card-clickable:focus-visible {
    outline: 2px solid var(--accent, #0ea5e9);
    outline-offset: 2px;
  }

  html:not(.desktop-app) .mobile-table-card-title {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--foreground, #0f172a);
    padding-bottom: 10px;
    margin-bottom: 4px;
    border-bottom: 1px solid #e3e8f0;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  html:not(.desktop-app) .mobile-table-card-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
    gap: 12px;
  }

  html:not(.desktop-app) .mobile-table-card-row:last-child {
    border-bottom: none;
  }

  html:not(.desktop-app) .mobile-table-card-label {
    font-size: 12px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    min-width: 100px;
    flex-shrink: 0;
    line-height: 1.4;
  }

  html:not(.desktop-app) .mobile-table-card-value {
    flex: 1;
    font-size: 14px;
    color: #0f172a;
    text-align: right;
    word-break: break-word;
    overflow-wrap: break-word;
    line-height: 1.5;
    min-width: 0; /* Allow flex item to shrink below content size */
  }

  html:not(.desktop-app) .mobile-table-card-actions {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #f1f5f9;
    flex-wrap: wrap;
    width: 100%;
  }

  html:not(.desktop-app) .mobile-table-card-actions > button,
  html:not(.desktop-app) .mobile-table-card-actions > a,
  html:not(.desktop-app) .mobile-table-card-actions .button {
    flex: 1;
    min-width: 0;
    min-height: 48px; /* Minimum touch target size */
    padding: 10px 16px; /* Adequate padding for touch */
  }

  @media (max-width: 400px) {
    html:not(.desktop-app) .mobile-table-card-actions {
      flex-direction: column;
    }
    html:not(.desktop-app) .mobile-table-card-actions > button,
    html:not(.desktop-app) .mobile-table-card-actions > a,
    html:not(.desktop-app) .mobile-table-card-actions .button {
      width: 100%;
      flex: none;
    }
  }

  html:not(.desktop-app) .summary-tiles > div {
    min-width: 0 !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
    border: 1px solid #e3e8f0 !important;
    transition: transform 0.2s, box-shadow 0.2s !important;
  }

  html:not(.desktop-app) .summary-tiles > div:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
  }

  html:not(.desktop-app) .card {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
    border: 1px solid #e3e8f0 !important;
  }

  html:not(.desktop-app) img,
  html:not(.desktop-app) svg,
  html:not(.desktop-app) video,
  html:not(.desktop-app) iframe {
    max-width: 100% !important;
    height: auto !important;
  }

  html:not(.desktop-app) button,
  html:not(.desktop-app) input,
  html:not(.desktop-app) select,
  html:not(.desktop-app) textarea {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  html:not(.desktop-app) button:not(.mobile-table-card-actions button),
  html:not(.desktop-app) a.button,
  html:not(.desktop-app) .button:not(.mobile-table-card-actions .button) {
    min-height: 48px;
    min-width: 48px;
  }

  /* App toasts (Radix): title action, dismiss, and cancel stay content-sized; the
   * global 48px touch slab would stretch the title row and leave a large gap above
   * the description, and vertically center the close icon in that slab. */
  html:not(.desktop-app) [data-app-toast] button[data-toast-action-trigger],
  html:not(.desktop-app) [data-app-toast] button[data-toast-close-button],
  html:not(.desktop-app) [data-app-toast] button[data-toast-cancel-button] {
    min-height: 0 !important;
    min-width: 0 !important;
  }

  /*
   * Portaled account menu: toolbar uses native <button> for dense controls; the
   * global 48px touch target would dwarf <a role=menuitem> rows. Logout is a
   * ``button[role=menuitem]`` and should match the same density.
   * Global ``svg { height: auto }`` also breaks Lucide ``h-* w-*`` in this panel.
   */
  html:not(.desktop-app) [data-user-menu-panel] button[role="menuitem"],
  html:not(.desktop-app) [data-user-menu-panel] [data-component="UserMenuToolbarRow"] button,
  html:not(.desktop-app) [data-testid="user-menu-item-row-toolbar"] button {
    min-height: 0 !important;
    min-width: 0 !important;
  }

  html:not(.desktop-app) [data-user-menu-panel] svg.h-3,
  html:not(.desktop-app) [data-user-menu-nested] svg.h-3 {
    height: 0.75rem !important;
    width: 0.75rem !important;
    max-width: none !important;
  }

  html:not(.desktop-app) [data-user-menu-panel] svg.h-3\.5,
  html:not(.desktop-app) [data-user-menu-nested] svg.h-3\.5 {
    height: 0.875rem !important;
    width: 0.875rem !important;
    max-width: none !important;
  }

  html:not(.desktop-app) [data-user-menu-panel] svg.h-4,
  html:not(.desktop-app) [data-user-menu-panel] svg.size-4,
  html:not(.desktop-app) [data-user-menu-nested] svg.h-4,
  html:not(.desktop-app) [data-user-menu-nested] svg.size-4 {
    height: 1rem !important;
    width: 1rem !important;
    max-width: none !important;
  }

  html:not(.desktop-app) [data-user-menu-nested] svg.h-2 {
    height: 0.5rem !important;
    width: 0.5rem !important;
    max-width: none !important;
  }

  html:not(.desktop-app) .mobile-table-card-actions button {
    min-height: 48px;
  }

  html:not(.desktop-app) .button-group {
    flex-direction: column !important;
    width: 100%;
    gap: 8px !important;
  }

  html:not(.desktop-app) .button-group button,
  html:not(.desktop-app) .button-group .button {
    width: 100%;
    min-height: 48px;
  }

  html:not(.desktop-app) .summary-tiles {
    grid-template-columns: 1fr !important;
  }

  html:not(.desktop-app) .report-cards-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  html:not(.desktop-app) .report-cards-grid > div {
    min-width: 0 !important;
    width: 100% !important;
  }

  /* Form grids - single column on mobile only.
   * Does NOT apply in desktop app: selector requires html without .desktop-app and without [data-tauri="1"].
   * Boot runs before global.css (main imports boot first); desktop override in tauri/utilities.css. */
  html:not(.desktop-app):not([data-tauri="1"]) body:not(.desktop-app) .form-grid,
  html:not(.desktop-app):not([data-tauri="1"]) .form-grid {
    grid-template-columns: 1fr !important;
  }

  html:not(.desktop-app) .page-header {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
  }

  html:not(.desktop-app) .modal-content {
    max-width: 95vw !important;
    margin: 20px !important;
    max-height: 90vh !important;
    padding: 16px !important;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  html:not(.desktop-app) .modal-content > div[style*="padding: '24px'"],
  html:not(.desktop-app) .modal-content > div[style*='padding: "24px"'] {
    padding: 16px !important;
  }

  html:not(.desktop-app) .modal-overlay {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  html:not(.desktop-app) td > div[style*="display: 'flex'"] {
    flex-wrap: wrap !important;
    gap: 4px !important;
  }

  html:not(.desktop-app) td > div[style*="display: 'flex'"] > button,
  html:not(.desktop-app) td > div[style*="display: 'flex'"] > .button {
    min-height: 36px; /* Smaller for desktop table cells */
    min-width: 60px;
  }

  html:not(.desktop-app) .pagination {
    flex-direction: column !important;
    gap: 12px !important;
    align-items: stretch !important;
  }

  html:not(.desktop-app) .pagination > div {
    width: 100%;
    justify-content: center !important;
  }

  html:not(.desktop-app) .pagination button {
    min-height: 48px;
    min-width: 80px;
  }

  html:not(.desktop-app) .empty-state {
    padding: 40px 16px !important;
  }

  html:not(.desktop-app) .filter-section > div {
    width: 100% !important;
    min-width: 0 !important;
  }

  /* Form inputs and selects should be full width on mobile - only when NOT desktop app */
  html:not(.desktop-app) body:not(.desktop-app) .form-grid .field,
  html:not(.desktop-app) .form-grid .field {
    width: 100% !important;
  }

  html:not(.desktop-app) body:not(.desktop-app) .form-grid .field input,
  html:not(.desktop-app) body:not(.desktop-app) .form-grid .field select,
  html:not(.desktop-app) body:not(.desktop-app) .form-grid .field textarea,
  html:not(.desktop-app) .form-grid .field input,
  html:not(.desktop-app) .form-grid .field select,
  html:not(.desktop-app) .form-grid .field textarea {
    width: 100% !important;
    min-height: 48px; /* Touch target size */
    box-sizing: border-box;
  }

  html:not(.desktop-app) .auth-page {
    padding: 16px !important;
  }

  html:not(.desktop-app) .auth-page .card {
    max-width: 100% !important;
    margin: 20px auto !important;
    padding: 20px !important;
  }
}

/* Desktop View (above 967px) - Hide mobile cards, show tables.
 * Must match layout.css mobile cutoff (967px) so 968px+ gets desktop layout. */

@media (min-width: 968px) {
  .mobile-table-cards {
    display: none !important;
  }
  .table-responsive table,
  .table-responsive .table {
    display: table !important;
  }
}

/* ============================================================================
 * TAURI RESPONSIVE BREAKPOINT OVERRIDES
 * ============================================================================
 * DESIGN PARITY: All overrides must match browser at desktop viewport (>= md 968px).
 * In Tauri we force sm:/md: variants to apply at ALL viewport sizes so layout
 * does not flip when exiting a page. We only override when the element HAS a
 * responsive variant (e.g. sm:flex-row); standalone classes keep Tailwind defaults.
 * Excluded when .tauri-transparent (login/register) for full browser parity.
 * ============================================================================ */

/* ============================================================================
 * TAURI PAGE CONTAINER OVERRIDES
 * ============================================================================
 * DESIGN PARITY: Values must match browser at desktop viewport (>= md 968px).
 * Only the page-container ROOT is overridden here (padding, max-width, width, overflow).
 * Descendant layout (flex-col, w-full, etc.) is handled in responsive.css only when
 * the element has a responsive variant (sm:flex-row, etc.) so design matches browser.
 * ============================================================================ */

/* Force desktop padding on page-container in desktop app; full width (no max-width cap) so pages use full content area.
 * CRITICAL: Padding must be IDENTICAL at ALL viewport sizes so resizing the Tauri window never changes the layout.
 * The previous @media (max-width: 1644px) override was the primary cause of layout shifting below 1645px. */

html.desktop-app:not(.tauri-transparent) .page-container,
html.desktop-app:not(.tauri-transparent) body.desktop-app:not(.tauri-transparent) .page-container {
  padding: 1rem !important; /* 16px - consistent at every window size */
  width: 100% !important; /* Page container fills content area */
  box-sizing: border-box !important;
  overflow-x: hidden !important; /* Match Jobs: no horizontal scroll when navigating */
}

/* Additional general overrides for any padding classes on page-container */

html.desktop-app:not(.tauri-transparent) .page-container[class*="p-"],
html.desktop-app:not(.tauri-transparent) body.desktop-app:not(.tauri-transparent) .page-container[class*="p-"] {
  padding: 1rem !important; /* 16px - same as browser desktop */
}

/* ============================================================================
 * TAURI CARD-SPECIFIC OVERRIDES
 * ============================================================================
 * DESIGN PARITY: Card layout and spacing must match browser at desktop viewport.
 * Preserve vertical layout (flex-col) and internal spacing for Card components
 * so cards look the same in Tauri as in browser.
 * ============================================================================ */

/* ============================================================================
 * TAURI GRID-SPECIFIC OVERRIDES
 * ============================================================================
 * In Tauri desktop app, layout must not depend on window size (match refresh).
 * We apply desktop grid layout at ALL viewport sizes via window-size-independent
 * rules below. The @media blocks are kept for browsers where they still apply.
 *
 * BREAKPOINT ORDER (custom config): sm(640) < md(968) < lg(1280) < 2xl(1536) < xl(1644)
 * Note: 2xl keeps the Tailwind default (1536px) which is below our custom xl (1644px).
 * Window-size-independent rules must cascade correctly: xl > 2xl > lg > md > sm.
 * ============================================================================ */

/* ============================================================================
 * GRID - Desktop App Overrides (Outside @layer for higher specificity)
 * ============================================================================
 * These rules are outside @layer utilities to ensure they override Tailwind's
 * responsive grid classes. They use attribute selectors to match Tailwind's
 * class names which contain colons (e.g., "sm:grid-cols-2").
 * ============================================================================ */

/* ============================================================================
 * GRID - Desktop App Overrides (Cascading Media Queries)
 * ============================================================================
 * CRITICAL: These rules must cascade like Tailwind - higher breakpoints
 * override lower ones. Media query order ensures proper cascade.
 * 
 * Tailwind's cascade behavior:
 * - Multiple responsive classes can be present simultaneously
 * - Media queries apply in order (min-width ascending)
 * - Higher breakpoints override lower ones (last one wins)
 * 
 * Example: grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4
 * - < 968px: 1 column (grid-cols-1)
 * - >= 968px: 2 columns (md:grid-cols-2 overrides grid-cols-1)
 * - >= 1280px: 3 columns (lg:grid-cols-3 overrides md:grid-cols-2)
 * - >= 1536px: 2xl: if present
 * - >= 1644px: 4 columns (xl:grid-cols-4 overrides everything)
 * ============================================================================ */

/* md: breakpoint (968px) - Apply md:grid-cols-2 when window >= 968px */

/* This applies when window >= 968px, will be overridden by lg: or xl: if they match */

@media (min-width: 968px) {
  html.desktop-app:not(.tauri-transparent) .grid[class*="grid-cols-1"][class*="md:grid-cols-2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* lg: breakpoint (1280px) - Apply lg:grid-cols-3 when window >= 1280px */

/* This overrides md:grid-cols-2, will be overridden by 2xl: or xl: if they match */

@media (min-width: 1280px) {
  html.desktop-app:not(.tauri-transparent) .grid[class*="grid-cols-1"][class*="lg:grid-cols-3"] {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="md:grid-cols-2"][class*="lg:grid-cols-3"] {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="md:grid-cols-3"][class*="lg:grid-cols-3"] {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="lg:grid-cols-6"] {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }
}

/* 2xl: breakpoint (1536px) */

@media (min-width: 1536px) {
  html.desktop-app:not(.tauri-transparent) .grid[class*="2xl:grid-cols-2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="2xl:grid-cols-3"] {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="2xl:grid-cols-4"] {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

/* xl: breakpoint (1644px) - Apply xl:grid-cols-N when window >= 1644px */

/* This overrides ALL lower breakpoints - highest priority */

@media (min-width: 1644px) {
  html.desktop-app:not(.tauri-transparent) .grid[class*="xl:grid-cols-2"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="xl:grid-cols-3"] {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="xl:grid-cols-4"] {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="xl:grid-cols-5"] {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="xl:grid-cols-6"] {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }
  /* Combined patterns for highest specificity */
  html.desktop-app:not(.tauri-transparent) .grid[class*="grid-cols-1"][class*="md:grid-cols-2"][class*="lg:grid-cols-3"][class*="xl:grid-cols-4"] {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="grid-cols-1"][class*="lg:grid-cols-3"][class*="xl:grid-cols-4"] {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="md:grid-cols-2"][class*="lg:grid-cols-3"][class*="xl:grid-cols-4"] {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="lg:grid-cols-3"][class*="xl:grid-cols-4"] {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .grid[class*="md:grid-cols-2"][class*="xl:grid-cols-4"] {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

/* ============================================================================
 * GRID - Window-size independent (Tauri desktop app)
 * ============================================================================
 * Apply desktop grid columns at ALL viewport sizes so resizing the Tauri window
 * does not change layout. Order: sm, md, lg, 2xl, xl so the highest breakpoint
 * class present on the element always wins.
 *
 * IMPORTANT: The custom breakpoint order is sm(640) < md(968) < lg(1280) <
 * 2xl(1536 default) < xl(1644 custom). Rules cascade accordingly:
 * elements with xl: override 2xl:, 2xl: overrides lg:, etc.
 * ============================================================================ */

/* ── sm: (640px) ── only when no higher breakpoint present */

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="grid-cols-1"][class*="sm:grid-cols-2"]:not([class*="md:grid-cols"]):not([class*="lg:grid-cols"]):not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="sm:grid-cols-2"][class*="md:grid-cols-2"]:not([class*="lg:grid-cols"]):not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* ── md: (968px) ── only when no higher breakpoint present */

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="grid-cols-1"][class*="md:grid-cols-2"]:not([class*="lg:grid-cols"]):not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* ── lg: (1280px) ── only when no 2xl: or xl: present */

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="grid-cols-1"][class*="lg:grid-cols-3"]:not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="sm:grid-cols-2"][class*="lg:grid-cols-3"]:not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="md:grid-cols-2"][class*="lg:grid-cols-3"]:not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="lg:grid-cols-6"]:not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

/* ── 2xl: (1536px default) ── only when no xl: present (2xl < xl in our config) */

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="2xl:grid-cols-2"]:not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="2xl:grid-cols-3"]:not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="2xl:grid-cols-4"]:not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* ── xl: (1644px) ── highest breakpoint, always wins */

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="xl:grid-cols-2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="xl:grid-cols-3"] {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="xl:grid-cols-4"] {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="xl:grid-cols-5"] {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="xl:grid-cols-6"] {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

/* ── Duplicate selectors with .grid class for higher specificity ── */

html.desktop-app:not(.tauri-transparent) .grid[class*="grid-cols-1"][class*="md:grid-cols-2"]:not([class*="lg:grid-cols"]):not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) .grid[class*="grid-cols-1"][class*="lg:grid-cols-3"]:not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) .grid[class*="md:grid-cols-2"][class*="lg:grid-cols-3"]:not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) .grid[class*="lg:grid-cols-6"]:not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) .grid[class*="2xl:grid-cols-2"]:not([class*="xl:grid-cols"]) {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) .grid[class*="xl:grid-cols-4"] {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) .grid[class*="xl:grid-cols-6"] {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) .grid[class*="md:grid-cols-2"][class*="lg:grid-cols-3"][class*="xl:grid-cols-4"] {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) .grid[class*="lg:grid-cols-3"][class*="xl:grid-cols-4"] {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

html.desktop-app:not(.tauri-transparent) .grid[class*="md:grid-cols-2"][class*="xl:grid-cols-4"] {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

/* ============================================================================
 * GRID ITEMS - Ensure grid items work correctly
 * ============================================================================ */

/* Card wrapper divs should also be full width */

html.desktop-app:not(.tauri-transparent) .grid > [class*="h-full"],
html.desktop-app:not(.tauri-transparent) .grid > div[class*="h-full"] {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

/* Ensure grid items don't overflow */

html.desktop-app:not(.tauri-transparent) .grid > div {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

/* ============================================================================
 * TAURI UTILITY OVERRIDES
 * ============================================================================
 * DESIGN PARITY: All values must match browser at desktop viewport (>= md 968px).
 * Reinforces Tailwind utilities in Tauri WebView so buttons, cards, tables
 * look the same as in browser. Excluded when .tauri-transparent (login/register).
 * ============================================================================ */

/* ============================================================================
 * PAGE CONTAINER - Ensure page-container utilities work correctly
 * ============================================================================ */

/* mx-auto needs to work correctly */

html.desktop-app:not(.tauri-transparent) .mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Form grid - desktop app must never use single-column (grid-template-columns: 1fr).
 * Override any 1fr rule; parity with browser at desktop viewport: multi-column layout.
 * html[data-tauri="1"] ensures override applies even if .desktop-app is added late by JS.
 * No @media wrapper: rule must be identical at ALL viewport sizes for layout consistency. */

html.desktop-app:not(.tauri-transparent) .form-grid,
html.desktop-app body.desktop-app .form-grid,
html[data-tauri="1"] .form-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
  gap: 16px !important;
}

/* ============================================================================
 * COMPREHENSIVE UTILITY OVERRIDES - Ensure ALL Tailwind utilities work
 * ============================================================================ */

/* These rules ensure that ALL Tailwind utilities work correctly in desktop app */

/* Margin utilities */

html.desktop-app:not(.tauri-transparent) .mb-1\.5 {
  margin-bottom: 0.375rem !important; /* 6px */
}

html.desktop-app:not(.tauri-transparent) .mb-0\.5 {
  margin-bottom: 0.125rem !important; /* 2px */
}

html.desktop-app:not(.tauri-transparent) .mb-2 {
  margin-bottom: 0.5rem !important; /* 8px */
}

html.desktop-app:not(.tauri-transparent) .mb-4 {
  margin-bottom: 1rem !important; /* 16px */
}

html.desktop-app:not(.tauri-transparent) .mt-2 {
  margin-top: 0.5rem !important; /* 8px */
}

html.desktop-app:not(.tauri-transparent) .mt-6 {
  margin-top: 1.5rem !important; /* 24px */
}

html.desktop-app:not(.tauri-transparent) .mt-auto {
  margin-top: auto !important;
}

/* Padding utilities - ensure all work */

html.desktop-app:not(.tauri-transparent) .px-2 {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

html.desktop-app:not(.tauri-transparent) .px-3 {
  padding-left: 0.75rem !important;
  padding-right: 0.75rem !important;
}

html.desktop-app:not(.tauri-transparent) .py-0\.5 {
  padding-top: 0.125rem !important;
  padding-bottom: 0.125rem !important;
}

html.desktop-app:not(.tauri-transparent) .py-2 {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

html.desktop-app:not(.tauri-transparent) .pt-3 {
  padding-top: 0.75rem !important; /* 12px */
}

html.desktop-app:not(.tauri-transparent) .pt-5 {
  padding-top: 1.25rem !important; /* 20px */
}

/* Text utilities */

html.desktop-app:not(.tauri-transparent) .text-sm {
  font-size: 0.875rem !important; /* 14px */
  line-height: 1.25rem !important; /* 20px */
}

html.desktop-app:not(.tauri-transparent) .text-xs {
  font-size: 0.75rem !important; /* 12px */
  line-height: 1rem !important; /* 16px */
}

html.desktop-app:not(.tauri-transparent) .font-semibold {
  font-weight: 600 !important;
}

html.desktop-app:not(.tauri-transparent) .font-medium {
  font-weight: 500 !important;
}

html.desktop-app:not(.tauri-transparent) .font-bold {
  font-weight: 700 !important;
}

html.desktop-app:not(.tauri-transparent) .uppercase {
  text-transform: uppercase !important;
}

html.desktop-app:not(.tauri-transparent) .tracking-wider {
  letter-spacing: 0.05em !important;
}

html.desktop-app:not(.tauri-transparent) .tracking-tight {
  letter-spacing: -0.025em !important;
}

html.desktop-app:not(.tauri-transparent) .truncate {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* Border utilities */

html.desktop-app:not(.tauri-transparent) .border-t {
  border-top-width: 1px !important;
}

html.desktop-app:not(.tauri-transparent) .border-slate-100 {
  border-color: rgb(241 245 249) !important;
}

html.desktop-app:not(.tauri-transparent) .border-slate-200 {
  border-color: rgb(226 232 240) !important;
}

/* Background utilities */

html.desktop-app:not(.tauri-transparent) .bg-slate-100 {
  background-color: rgb(241 245 249) !important;
}

html.desktop-app:not(.tauri-transparent) .bg-slate-200 {
  background-color: rgb(226 232 240) !important;
}

/* Text color utilities */

html.desktop-app:not(.tauri-transparent) .text-slate-400 {
  color: rgb(148 163 184) !important;
}

html.desktop-app:not(.tauri-transparent) .text-slate-500 {
  color: rgb(100 116 139) !important;
}

html.desktop-app:not(.tauri-transparent) .text-slate-600 {
  color: rgb(71 85 105) !important;
}

html.desktop-app:not(.tauri-transparent) .text-slate-700 {
  color: rgb(51 65 85) !important;
}

html.desktop-app:not(.tauri-transparent) .text-slate-900 {
  color: rgb(15 23 42) !important;
}

/* Rounded utilities */

html.desktop-app:not(.tauri-transparent) .rounded-full {
  border-radius: 9999px !important;
}

html.desktop-app:not(.tauri-transparent) .rounded-md {
  border-radius: 0.375rem !important;
}

/* Size utilities */

html.desktop-app:not(.tauri-transparent) .w-10 {
  width: 2.5rem !important; /* 40px */
}

html.desktop-app:not(.tauri-transparent) .h-10 {
  height: 2.5rem !important; /* 40px */
}

html.desktop-app:not(.tauri-transparent) .h-5 {
  height: 1.25rem !important; /* 20px */
}

html.desktop-app:not(.tauri-transparent) .w-5 {
  width: 1.25rem !important; /* 20px */
}

html.desktop-app:not(.tauri-transparent) .h-9 {
  height: 2.25rem !important; /* 36px */
}

html.desktop-app:not(.tauri-transparent) .h-4 {
  height: 1rem !important; /* 16px */
}

html.desktop-app:not(.tauri-transparent) .w-4 {
  width: 1rem !important; /* 16px */
}

html.desktop-app:not(.tauri-transparent) .h-8 {
  height: 2rem !important; /* 32px – sidebar brand logo expanded */
}

html.desktop-app:not(.tauri-transparent) .h-7 {
  height: 1.75rem !important; /* 28px – sidebar brand logo collapsed */
}

html.desktop-app:not(.tauri-transparent) .w-auto {
  width: auto !important;
}

/* ============================================================================
 * PREMIUM DESIGN UTILITIES - Enhanced design elements
 * ============================================================================ */

/* Shadow utilities - ensure premium shadows work */

html.desktop-app:not(.tauri-transparent) .shadow-sm {
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
}

html.desktop-app:not(.tauri-transparent) .shadow-md {
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important;
}

html.desktop-app:not(.tauri-transparent) .shadow-lg {
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1) !important;
}

html.desktop-app:not(.tauri-transparent) .shadow-xl {
  box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1) !important;
}

/* Rounded utilities - ensure premium rounded corners work */

html.desktop-app:not(.tauri-transparent) .rounded-xl {
  border-radius: 0.75rem !important; /* 12px */
}

html.desktop-app:not(.tauri-transparent) .rounded-lg {
  border-radius: 0.5rem !important; /* 8px */
}

/* Gap utilities - ensure premium spacing works */

html.desktop-app:not(.tauri-transparent) .gap-2 {
  gap: 0.5rem !important; /* 8px */
}

html.desktop-app:not(.tauri-transparent) .gap-3 {
  gap: 0.75rem !important; /* 12px */
}

html.desktop-app:not(.tauri-transparent) .gap-4 {
  gap: 1rem !important; /* 16px */
}

/* Font weight utilities */

html.desktop-app:not(.tauri-transparent) .font-bold {
  font-weight: 700 !important;
}

html.desktop-app:not(.tauri-transparent) .font-semibold {
  font-weight: 600 !important;
}

/* Text size utilities for premium design */

html.desktop-app:not(.tauri-transparent) .text-\[10px\] {
  font-size: 0.625rem !important; /* 10px */
  line-height: 1rem !important;
}

/* Padding utilities for premium spacing */

html.desktop-app:not(.tauri-transparent) .px-2\.5 {
  padding-left: 0.625rem !important; /* 10px */
  padding-right: 0.625rem !important;
}

html.desktop-app:not(.tauri-transparent) .py-1 {
  padding-top: 0.25rem !important; /* 4px */
  padding-bottom: 0.25rem !important;
}

html.desktop-app:not(.tauri-transparent) .pt-4 {
  padding-top: 1rem !important; /* 16px */
}

/* Margin utilities for premium spacing */

html.desktop-app:not(.tauri-transparent) .mb-0\.5 {
  margin-bottom: 0.125rem !important; /* 2px */
}

html.desktop-app:not(.tauri-transparent) .mb-1 {
  margin-bottom: 0.25rem !important; /* 4px */
}

html.desktop-app:not(.tauri-transparent) .mb-1\.5 {
  margin-bottom: 0.375rem !important; /* 6px */
}

html.desktop-app:not(.tauri-transparent) .mb-2 {
  margin-bottom: 0.5rem !important; /* 8px */
}

/* Ring utilities for premium borders */

html.desktop-app:not(.tauri-transparent) .ring-1 {
  box-shadow: 0 0 0 1px var(--tw-ring-color, rgb(0 0 0 / 0.05)) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="ring-primary/10"] {
  box-shadow: 0 0 0 1px hsl(var(--primary) / 0.1) !important;
}

html.desktop-app:not(.tauri-transparent) [class*="ring-black/5"] {
  box-shadow: 0 0 0 1px rgb(0 0 0 / 0.05) !important;
}

/* ============================================================================
 * BUTTON COLORS - Ensure button colors work correctly in Tauri desktop app
 * ============================================================================ */

/* Primary buttons - use theme primary (software=blue, effigy=purple) */

html.desktop-app:not(.tauri-transparent) .bg-blue-600,
html.desktop-app:not(.tauri-transparent) button.bg-blue-600,
html.desktop-app:not(.tauri-transparent) [class*="bg-blue-600"] {
  background-color: hsl(var(--primary)) !important;
}

html.desktop-app:not(.tauri-transparent) .bg-blue-700,
html.desktop-app:not(.tauri-transparent) button.bg-blue-700,
html.desktop-app:not(.tauri-transparent) [class*="hover:bg-blue-700"]:hover {
  background-color: hsl(var(--primary)) !important;
}

html.desktop-app:not(.tauri-transparent) .text-white,
html.desktop-app:not(.tauri-transparent) button.text-white,
html.desktop-app:not(.tauri-transparent) [class*="text-white"] {
  color: rgb(255 255 255) !important;
}

/* Indigo buttons */

html.desktop-app:not(.tauri-transparent) .bg-indigo-600,
html.desktop-app:not(.tauri-transparent) button.bg-indigo-600,
html.desktop-app:not(.tauri-transparent) [class*="bg-indigo-600"] {
  background-color: rgb(79 70 229) !important; /* indigo-600 */
}

html.desktop-app:not(.tauri-transparent) .bg-indigo-500,
html.desktop-app:not(.tauri-transparent) [class*="from-indigo-500"] {
  background-color: rgb(99 102 241) !important; /* indigo-500 */
}

/* Red buttons */

html.desktop-app:not(.tauri-transparent) .bg-red-600,
html.desktop-app:not(.tauri-transparent) button.bg-red-600,
html.desktop-app:not(.tauri-transparent) [class*="bg-red-600"] {
  background-color: rgb(220 38 38) !important; /* red-600 */
}

html.desktop-app:not(.tauri-transparent) .bg-red-500,
html.desktop-app:not(.tauri-transparent) [class*="from-red-500"] {
  background-color: rgb(239 68 68) !important; /* red-500 */
}

/* Blue border and background utilities - use theme primary for theme-aware components */

html.desktop-app:not(.tauri-transparent) .border-blue-200 {
  border-color: hsl(var(--primary) / 0.5) !important;
}

html.desktop-app:not(.tauri-transparent) .border-blue-300,
html.desktop-app:not(.tauri-transparent) [class*="hover:border-blue-300"]:hover {
  border-color: hsl(var(--primary) / 0.6) !important;
}

html.desktop-app:not(.tauri-transparent) .bg-blue-50,
html.desktop-app:not(.tauri-transparent) [class*="bg-blue-50"] {
  background-color: hsl(var(--primary) / 0.1) !important;
}

/* Ensure button text is white on colored backgrounds */

html.desktop-app:not(.tauri-transparent) button.bg-blue-600,
html.desktop-app:not(.tauri-transparent) button.bg-blue-700,
html.desktop-app:not(.tauri-transparent) button.bg-indigo-600,
html.desktop-app:not(.tauri-transparent) button.bg-red-600,
html.desktop-app:not(.tauri-transparent) button[class*="bg-blue-600"],
html.desktop-app:not(.tauri-transparent) button[class*="bg-blue-700"],
html.desktop-app:not(.tauri-transparent) button[class*="bg-indigo-600"],
html.desktop-app:not(.tauri-transparent) button[class*="bg-red-600"] {
  color: rgb(255 255 255) !important;
}

/* Button hover effects - prevent flickering */

html.desktop-app:not(.tauri-transparent) button[class*="group"] {
  will-change: transform;
  backface-visibility: hidden;
  transform: translateZ(0);
}

/* Gradient overlays for smooth hover effects */

html.desktop-app:not(.tauri-transparent) button .group-hover\:opacity-100 {
  transition: opacity 200ms ease-in-out !important;
}

/* Font weight for better visibility */

html.desktop-app:not(.tauri-transparent) .font-semibold {
  font-weight: 600 !important;
}

/* Gap utilities for button icons */

html.desktop-app:not(.tauri-transparent) .gap-1\.5 {
  gap: 0.375rem !important; /* 6px */
}

/* ============================================================================
 * TAURI TABLE OVERRIDES
 * ============================================================================
 * DESIGN PARITY: Table display must match browser at desktop viewport (>= md).
 * Desktop tables shown, mobile card view hidden - same as browser at desktop.
 * ============================================================================ */

/* Always hide mobile table cards in desktop app */

html.desktop-app:not(.tauri-transparent) body.desktop-app:not(.tauri-transparent) .mobile-table-cards,
html.desktop-app:not(.tauri-transparent) .mobile-table-cards {
  display: none !important;
}

/* Always show desktop tables in desktop app */

html.desktop-app:not(.tauri-transparent) body.desktop-app:not(.tauri-transparent) .table-responsive table,
html.desktop-app:not(.tauri-transparent) body.desktop-app:not(.tauri-transparent) .table-responsive .table,
html.desktop-app:not(.tauri-transparent) .table-responsive table,
html.desktop-app:not(.tauri-transparent) .table-responsive .table {
  display: table !important;
}

/* Ensure table-responsive container works correctly in desktop app */

html.desktop-app:not(.tauri-transparent) body.desktop-app:not(.tauri-transparent) .table-responsive,
html.desktop-app:not(.tauri-transparent) .table-responsive {
  overflow-x: auto !important;
  width: 100%;
}

/* ============================================================================
 * TAURI COMPONENT FALLBACKS - Buttons, Cards, Tables
 * ============================================================================
 * DESIGN PARITY: Values must match browser at desktop viewport.
 * Fallbacks so buttons, cards, tables render the same in Tauri WebView as in
 * browser when Tailwind/base CSS apply. Excluded when .tauri-transparent.
 * ============================================================================ */

/* ----------------------------------------------------------------------------
 * BUTTONS - Base and variant styles when html.desktop-app
 * ---------------------------------------------------------------------------- */

html.desktop-app:not(.tauri-transparent) button[class*="inline-flex"],
html.desktop-app:not(.tauri-transparent) [role="button"][class*="inline-flex"] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  border-radius: calc(var(--radius) - 2px) !important;
  font-size: 0.875rem !important;
  line-height: 1.25rem !important;
  font-weight: 500 !important;
  transition: color, background-color, border-color 0.15s ease !important;
  min-height: 48px !important;
  min-width: 48px !important;
}

/* Primary button (bg-primary, text-primary-foreground) */

html.desktop-app:not(.tauri-transparent) button[class*="bg-primary"]:not([class*="bg-primary/"]),
html.desktop-app:not(.tauri-transparent) [class*="bg-primary"]:not([class*="bg-primary/"]) {
  background-color: hsl(var(--primary)) !important;
  color: hsl(var(--primary-foreground)) !important;
}

html.desktop-app:not(.tauri-transparent) button[class*="bg-primary"]:not([class*="bg-primary/"]):hover:not(:disabled),
html.desktop-app:not(.tauri-transparent) [class*="bg-primary"]:not([class*="bg-primary/"]):hover:not(:disabled) {
  opacity: 0.9;
}

/* Destructive button */

html.desktop-app:not(.tauri-transparent) button[class*="bg-destructive"],
html.desktop-app:not(.tauri-transparent) [class*="bg-destructive"] {
  background-color: hsl(var(--destructive)) !important;
  color: hsl(var(--destructive-foreground)) !important;
}

/* Outline / ghost buttons */

html.desktop-app:not(.tauri-transparent) button[class*="border-input"],
html.desktop-app:not(.tauri-transparent) button[class*="bg-background"] {
  border-width: 1px !important;
  background-color: hsl(var(--background)) !important;
  color: hsl(var(--foreground)) !important;
}

/* ----------------------------------------------------------------------------
 * CARDS - rounded-lg border bg-card shadow-sm
 * ---------------------------------------------------------------------------- */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"][class*="border"][class*="bg-card"],
html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"][class*="border"][class*="shadow-sm"] {
  border-radius: var(--radius) !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-color: hsl(var(--border)) !important;
  background-color: hsl(var(--card)) !important;
  color: hsl(var(--card-foreground)) !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
}

/* Card inner spacing (CardHeader, CardContent, CardFooter) */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="flex-col"][class*="space-y-1"],
html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="flex-col"][class*="p-4"] {
  padding: 1rem 1.5rem !important;
}

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="p-4"][class*="pt-0"],
html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="p-4"][class*="pt-0"] {
  padding-top: 0 !important;
  padding-left: 1rem !important;
  padding-right: 1rem !important;
  padding-bottom: 1rem !important;
}

/* ----------------------------------------------------------------------------
 * TABLES - table, thead, tbody, th, td
 * ---------------------------------------------------------------------------- */

html.desktop-app:not(.tauri-transparent) .table-responsive table,
html.desktop-app:not(.tauri-transparent) .table-responsive .table,
html.desktop-app:not(.tauri-transparent) table[class*="w-full"] {
  width: 100% !important;
  border-collapse: collapse !important;
  table-layout: auto !important;
}

html.desktop-app:not(.tauri-transparent) .table-responsive th,
html.desktop-app:not(.tauri-transparent) .table-responsive td,
html.desktop-app:not(.tauri-transparent) table[class*="w-full"] th,
html.desktop-app:not(.tauri-transparent) table[class*="w-full"] td {
  padding: 0.75rem 1rem !important;
  text-align: left !important;
  border-bottom-width: 1px !important;
  border-color: hsl(var(--border)) !important;
}

html.desktop-app:not(.tauri-transparent) .table-responsive thead th,
html.desktop-app:not(.tauri-transparent) table[class*="w-full"] thead th {
  font-weight: 600 !important;
  color: hsl(var(--foreground)) !important;
  background-color: hsl(var(--muted)) !important;
}

/* ============================================================================
 * SCROLLBAR
 * ============================================================================
 * Default: hide scrollbars app-wide (overflow still works).
 * Opt-in: `.scroll-thin-themed` for in-page scrollports (FINE card, lists, …).
 * Theme tokens: --muted / --muted-foreground / --primary (palette + dark).
 * ============================================================================ */

/* Firefox: hide scrollbar on viewport and all elements */

html,
body,
* {
  scrollbar-width: none;
}

/* WebKit (Chrome, Safari, Edge): hide scrollbar everywhere */

*::-webkit-scrollbar {
  width: 0;
  height: 0;
}

/* Keep momentum scrolling on iOS / WebKit touch */

* {
  -webkit-overflow-scrolling: touch;
}

/**
 * Thin themed scrollbar (class specificity beats the `*` hide rules above).
 * Use via {@link SCROLL_THIN_THEMED_CLASS} / {@link PAGE_SCROLLPORT_Y_CLASS}.
 */

.scroll-thin-themed {
  scrollbar-width: thin;
  scrollbar-color: hsl(var(--muted-foreground) / 0.5) hsl(var(--muted) / 0.35);
}

.scroll-thin-themed::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.scroll-thin-themed::-webkit-scrollbar-track {
  background: hsl(var(--muted) / 0.35);
  border-radius: 9999px;
}

.scroll-thin-themed::-webkit-scrollbar-thumb {
  background-color: hsl(var(--muted-foreground) / 0.45);
  border-radius: 9999px;
  border: 1px solid hsl(var(--background) / 0.4);
  background-clip: padding-box;
}

.scroll-thin-themed::-webkit-scrollbar-thumb:hover {
  background-color: hsl(var(--primary) / 0.55);
}

.scroll-thin-themed::-webkit-scrollbar-corner {
  background: transparent;
}

/**
 * Native OS scrollbar (class specificity beats the `*` hide rules above).
 * Use via {@link SCROLL_SYSTEM_CLASS} / {@link OVERLAY_SCROLLPORT_SYSTEM_Y_CLASS}.
 * Avoid thumb/track styling so the platform chrome stays visible.
 */

.scroll-system {
  scrollbar-width: auto;
  scrollbar-color: auto;
}

.scroll-system::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

/* ============================================================================
 * App toast styles. Companion to `frontend/src/components/ui/sonner/`
 * (barrel `sonner.tsx`), which uses Radix Toast (`@radix-ui/react-toast`)
 * instead of the `sonner` package.
 *
 * Most chrome (border, shadow, background, layout) lives on the JSX as
 * Tailwind utility classes. This file owns:
 *   1. enter / exit / swipe / progress keyframes
 *   2. small visual tweaks for the viewport scroll region
 *   3. hide peeking rows when ``data-toast-edge-hidden`` is set
 * ============================================================================ */

@keyframes app-toast-slide-in {
  from {
    transform: translateX(calc(100% + 1.25rem)) scale(0.94);
    opacity: 0;
    filter: blur(4px);
  }
  to {
    transform: translateX(0) scale(1);
    opacity: 1;
    filter: blur(0);
  }
}

@keyframes app-toast-slide-out {
  from {
    transform: translateX(0) scale(1);
    opacity: 1;
    filter: blur(0);
  }
  to {
    transform: translateX(calc(100% + 1.25rem)) scale(0.96);
    opacity: 0;
    filter: blur(3px);
  }
}

@keyframes app-toast-swipe-out {
  from {
    transform: translateX(var(--radix-toast-swipe-end-x));
  }
  to {
    transform: translateX(calc(100% + 1.25rem));
    opacity: 0;
  }
}

@keyframes app-toast-slide-in-from-bottom {
  from {
    transform: translateY(calc(100% + 1.25rem)) scale(0.94);
    opacity: 0;
    filter: blur(4px);
  }
  to {
    transform: translateY(0) scale(1);
    opacity: 1;
    filter: blur(0);
  }
}

@keyframes app-toast-slide-out-to-bottom {
  from {
    transform: translateY(0) scale(1);
    opacity: 1;
    filter: blur(0);
  }
  to {
    transform: translateY(calc(100% + 1.25rem)) scale(0.96);
    opacity: 0;
    filter: blur(3px);
  }
}

@keyframes app-toast-progress-shrink {
  from {
    transform: scaleX(1);
  }
  to {
    transform: scaleX(0);
  }
}

@keyframes app-toast-accent-glow {
  0%,
  100% {
    opacity: 0.85;
    filter: brightness(1);
  }
  50% {
    opacity: 1;
    filter: brightness(1.15);
  }
}

[data-app-toast] {
  will-change: transform, opacity, filter;
}

/* Viewport stacks toasts in a flex column with a max-height; default flex-shrink: 1 would squash them. */

[data-app-toaster] [data-app-toast] {
  flex-shrink: 0;
}

[data-app-toast][data-state='open'] {
  animation: app-toast-slide-in 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

[data-app-toast][data-state='closed'] {
  animation: app-toast-slide-out 260ms cubic-bezier(0.4, 0, 1, 1) forwards;
}

[data-app-toast][data-swipe='move'] {
  transform: translateX(var(--radix-toast-swipe-move-x));
  transition: none;
}

[data-app-toast][data-swipe='cancel'] {
  transform: translateX(0);
  transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1);
}

[data-app-toast][data-swipe='end'] {
  animation: app-toast-swipe-out 220ms ease forwards;
}

[data-app-toaster][data-toaster-position='bottom-right'] [data-app-toast][data-state='open'] {
  animation: app-toast-slide-in-from-bottom 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

[data-app-toaster][data-toaster-position='bottom-right'] [data-app-toast][data-state='closed'] {
  animation: app-toast-slide-out-to-bottom 260ms cubic-bezier(0.4, 0, 1, 1) forwards;
}

[data-app-toaster][data-toaster-position='bottom-right'] [data-app-toast][data-swipe='end'] {
  animation: app-toast-swipe-out 220ms ease forwards;
}

/* Soft accent rail pulse while open (typed toasts). */

[data-app-toast][data-toast-mode='typed'][data-state='open'] [data-toast-accent-rail] {
  animation: app-toast-accent-glow 2.8s ease-in-out 0.42s infinite;
}

@media (prefers-reduced-motion: reduce) {
  [data-app-toast][data-state='open'],
  [data-app-toast][data-state='closed'],
  [data-app-toast][data-swipe='end'],
  [data-app-toast] [data-toast-accent-rail],
  [data-app-toast] [data-toast-progress-bar] {
    animation: none !important;
    filter: none !important;
  }
}

/* Viewport scrollbar polish (right-aligned column accumulates many toasts). */

[data-app-toaster] {
  scrollbar-gutter: stable;
}

/*
 * Partially clipped toast: hide it so the stack does not show a cut-off card; ``+N`` pills carry the cue.
 * Layout space is preserved so scroll height and positions stay stable.
 */

[data-app-toast][data-toast-edge-hidden] {
  visibility: hidden;
  pointer-events: none;
  animation: none !important;
  transition: none !important;
  will-change: auto;
}

/*
 * Bottom-right stack: optional lift above chat dock/panel (``--app-toast-stack-bottom`` set
 * from ``useChatToastViewportInset``). Mobile browser shell adds tab-bar clearance on top.
 */

[data-app-toaster][data-toaster-position='bottom-right'] {
  bottom: calc(var(--app-toast-stack-bottom, 0px) + env(safe-area-inset-bottom, 0px));
  max-height: var(
    --app-toast-stack-max-height,
    min(26.25rem, calc(100dvh - 5rem - env(safe-area-inset-bottom, 0px) - env(safe-area-inset-top, 0px)))
  );
}

@media (max-width: 967px) {
  html:not(.desktop-app):not([data-tauri='1'])
    [data-app-toaster][data-toaster-position='bottom-right'] {
    bottom: calc(var(--app-toast-stack-bottom, 0px) + 5.25rem + env(safe-area-inset-bottom, 0px)) !important;
    right: max(0.375rem, env(safe-area-inset-right, 0px)) !important;
  }
}

/* Tailwind directives - must come after all @import statements */

*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

:root {
    color-scheme: light;
    /* Light mode: eye-safe white palette (Option B). Fallback before theme injection; injectThemeCssVars overrides from palette. */
    --hover-surface-light: #eae8e5;
    --background: 48 6% 96%;
    --foreground: 222.2 84% 4.9%;
    --card: 48 6% 96%;
    --card-foreground: 222.2 84% 4.9%;
    --popover: 48 6% 96%;
    --popover-foreground: 222.2 84% 4.9%;
    --primary: 221.2 83.2% 53.3%;
    --primary-foreground: 210 40% 98%;
    --secondary: 48 6% 93%;
    --secondary-foreground: 222.2 47.4% 11.2%;
    --muted: 48 6% 93%;
    /* Secondary body/labels: AA 4.5:1 on lavender/hyacinth/neutral light surfaces (see theme/contrast.ts). */
    --muted-foreground: 215.4 16.3% 38%;
    --accent: 48 6% 93%;
    --accent-foreground: 222.2 47.4% 11.2%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 210 40% 98%;
    --destructive-text: 0 72% 51%;
    --border: 48 8% 90%;
    --input: 48 8% 90%;
    --ring: 48 10% 78%;
    --radius: 0.5rem;
    /* Chart palette (metrics, dashboards) */
    --chart-1: 217 91% 60%;
    --chart-2: 142 76% 36%;
    --chart-3: 38 92% 50%;
    --chart-4: 25 95% 53%;
    --chart-5: 0 84% 60%;

    /* List filter bars (ProcessosListFiltersCard + EntityListFilters) - align with listFiltersClasses.ts */
    --list-filters-control-height: 1.75rem;
    --list-filters-font-size: 0.75rem;
    --list-filters-section-label-size: 0.6875rem;
  }

/* Dark mode: black/neutral (no blue tint). Theme-defined --primary/--accent remain from injectThemeCssVars.
   * Matches: .dark (Tailwind), [data-theme="dark"] (auth), [data-theme$="-dark"] (effigy-dark, software-dark, etc.) */

/* Dark mode: aligned with layout.css (--bg ≈ 5%, --surface ≈ 10%, --border ≈ 18%).
   * --background matches --bg (deepest layer), --card matches --surface (elevated panels). */

.dark,
  [data-theme="dark"],
  [data-theme$="-dark"] {
    color-scheme: dark;
    --background: 0 0% 5%;
    --foreground: 0 0% 98%;
    --card: 0 0% 10%;
    --card-foreground: 0 0% 98%;
    --popover: 0 0% 10%;
    --popover-foreground: 0 0% 98%;
    --secondary: 0 0% 15%;
    --secondary-foreground: 0 0% 98%;
    --muted: 0 0% 15%;
    --muted-foreground: 0 0% 64%;
    --accent: 0 0% 15%;
    --accent-foreground: 0 0% 98%;
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 0 0% 98%;
    --destructive-text: 0 91% 82%;
    --border: 0 0% 18%;
    --input: 0 0% 18%;
    --ring: 0 0% 40%;
    --chart-1: 220 70% 50%;
    --chart-2: 160 60% 45%;
    --chart-3: 30 80% 55%;
    --chart-4: 20 90% 55%;
    --chart-5: 340 75% 55%;
  }

.container {
  width: 100%;
}

@media (min-width: 640px) {

  .container {
    max-width: 640px;
  }
}

@media (min-width: 968px) {

  .container {
    max-width: 968px;
  }
}

@media (min-width: 1280px) {

  .container {
    max-width: 1280px;
  }
}

@media (min-width: 1536px) {

  .container {
    max-width: 1536px;
  }
}

@media (min-width: 1644px) {

  .container {
    max-width: 1644px;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.pointer-events-none {
  pointer-events: none;
}

.pointer-events-auto {
  pointer-events: auto;
}

.visible {
  visibility: visible;
}

.invisible {
  visibility: hidden;
}

.collapse {
  visibility: collapse;
}

.static {
  position: static;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.sticky {
  position: sticky;
}

.-inset-1 {
  inset: -0.25rem;
}

.inset-0 {
  inset: 0px;
}

.inset-x-0 {
  left: 0px;
  right: 0px;
}

.inset-x-6 {
  left: 1.5rem;
  right: 1.5rem;
}

.inset-y-0 {
  top: 0px;
  bottom: 0px;
}

.inset-y-0\.5 {
  top: 0.125rem;
  bottom: 0.125rem;
}

.inset-y-2 {
  top: 0.5rem;
  bottom: 0.5rem;
}

.inset-y-2\.5 {
  top: 0.625rem;
  bottom: 0.625rem;
}

.-bottom-0\.5 {
  bottom: -0.125rem;
}

.-left-1 {
  left: -0.25rem;
}

.-left-1\/2 {
  left: -50%;
}

.-left-\[0\.45rem\] {
  left: -0.45rem;
}

.-left-\[4px\] {
  left: -4px;
}

.-right-0\.5 {
  right: -0.125rem;
}

.-right-1 {
  right: -0.25rem;
}

.-right-1\.5 {
  right: -0.375rem;
}

.-top-0\.5 {
  top: -0.125rem;
}

.-top-1 {
  top: -0.25rem;
}

.-top-\[3px\] {
  top: -3px;
}

.bottom-0 {
  bottom: 0px;
}

.bottom-2 {
  bottom: 0.5rem;
}

.bottom-20 {
  bottom: 5rem;
}

.bottom-4 {
  bottom: 1rem;
}

.bottom-\[2px\] {
  bottom: 2px;
}

.bottom-\[var\(--chat-panel-bottom-offset\2c 1rem\)\] {
  bottom: var(--chat-panel-bottom-offset,1rem);
}

.bottom-px {
  bottom: 1px;
}

.left-0 {
  left: 0px;
}

.left-0\.5 {
  left: 0.125rem;
}

.left-1 {
  left: 0.25rem;
}

.left-1\/2 {
  left: 50%;
}

.left-2 {
  left: 0.5rem;
}

.left-2\.5 {
  left: 0.625rem;
}

.left-3 {
  left: 0.75rem;
}

.left-4 {
  left: 1rem;
}

.left-\[7px\] {
  left: 7px;
}

.left-px {
  left: 1px;
}

.right-0 {
  right: 0px;
}

.right-0\.5 {
  right: 0.125rem;
}

.right-1 {
  right: 0.25rem;
}

.right-10 {
  right: 2.5rem;
}

.right-2 {
  right: 0.5rem;
}

.right-2\.5 {
  right: 0.625rem;
}

.right-3 {
  right: 0.75rem;
}

.right-4 {
  right: 1rem;
}

.right-9 {
  right: 2.25rem;
}

.right-\[var\(--chat-panel-right-offset\2c 1rem\)\] {
  right: var(--chat-panel-right-offset,1rem);
}

.top-0 {
  top: 0px;
}

.top-0\.5 {
  top: 0.125rem;
}

.top-1 {
  top: 0.25rem;
}

.top-1\.5 {
  top: 0.375rem;
}

.top-1\/2 {
  top: 50%;
}

.top-11 {
  top: 2.75rem;
}

.top-2 {
  top: 0.5rem;
}

.top-2\.5 {
  top: 0.625rem;
}

.top-3 {
  top: 0.75rem;
}

.top-4 {
  top: 1rem;
}

.top-5 {
  top: 1.25rem;
}

.top-\[18px\] {
  top: 18px;
}

.top-full {
  top: 100%;
}

.top-px {
  top: 1px;
}

.isolate {
  isolation: isolate;
}

.\!z-\[99999\] {
  z-index: 99999 !important;
}

.z-0 {
  z-index: 0;
}

.z-10 {
  z-index: 10;
}

.z-20 {
  z-index: 20;
}

.z-30 {
  z-index: 30;
}

.z-40 {
  z-index: 40;
}

.z-50 {
  z-index: 50;
}

.z-\[10050\] {
  z-index: 10050;
}

.z-\[100\] {
  z-index: 100;
}

.z-\[105\] {
  z-index: 105;
}

.z-\[110\] {
  z-index: 110;
}

.z-\[120\] {
  z-index: 120;
}

.z-\[141\] {
  z-index: 141;
}

.z-\[150\] {
  z-index: 150;
}

.z-\[1\] {
  z-index: 1;
}

.z-\[200\] {
  z-index: 200;
}

.z-\[201\] {
  z-index: 201;
}

.z-\[210\] {
  z-index: 210;
}

.z-\[220\] {
  z-index: 220;
}

.z-\[250\] {
  z-index: 250;
}

.z-\[2\] {
  z-index: 2;
}

.z-\[300\] {
  z-index: 300;
}

.z-\[5\] {
  z-index: 5;
}

.z-\[60\] {
  z-index: 60;
}

.z-\[85\] {
  z-index: 85;
}

.z-\[90\] {
  z-index: 90;
}

.z-\[9998\] {
  z-index: 9998;
}

.z-\[9999\] {
  z-index: 9999;
}

.z-\[var\(--status-footer-z-index\2c 40\)\] {
  z-index: var(--status-footer-z-index,40);
}

.order-1 {
  order: 1;
}

.order-2 {
  order: 2;
}

.order-3 {
  order: 3;
}

.col-span-2 {
  grid-column: span 2 / span 2;
}

.col-span-full {
  grid-column: 1 / -1;
}

.m-0 {
  margin: 0px;
}

.-mx-0\.5 {
  margin-left: -0.125rem;
  margin-right: -0.125rem;
}

.-mx-1 {
  margin-left: -0.25rem;
  margin-right: -0.25rem;
}

.-mx-4 {
  margin-left: -1rem;
  margin-right: -1rem;
}

.-mx-px {
  margin-left: -1px;
  margin-right: -1px;
}

.mx-1 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}

.mx-1\.5 {
  margin-left: 0.375rem;
  margin-right: 0.375rem;
}

.mx-2 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}

.mx-3 {
  margin-left: 0.75rem;
  margin-right: 0.75rem;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.my-0 {
  margin-top: 0px;
  margin-bottom: 0px;
}

.my-0\.5 {
  margin-top: 0.125rem;
  margin-bottom: 0.125rem;
}

.my-1 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}

.my-2 {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.my-auto {
  margin-top: auto;
  margin-bottom: auto;
}

.\!mt-0 {
  margin-top: 0px !important;
}

.-mt-6 {
  margin-top: -1.5rem;
}

.mb-0 {
  margin-bottom: 0px;
}

.mb-0\.5 {
  margin-bottom: 0.125rem;
}

.mb-1 {
  margin-bottom: 0.25rem;
}

.mb-1\.5 {
  margin-bottom: 0.375rem;
}

.mb-10 {
  margin-bottom: 2.5rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.mb-2\.5 {
  margin-bottom: 0.625rem;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.mb-5 {
  margin-bottom: 1.25rem;
}

.mb-6 {
  margin-bottom: 1.5rem;
}

.mb-7 {
  margin-bottom: 1.75rem;
}

.mb-8 {
  margin-bottom: 2rem;
}

.ml-0\.5 {
  margin-left: 0.125rem;
}

.ml-1 {
  margin-left: 0.25rem;
}

.ml-1\.5 {
  margin-left: 0.375rem;
}

.ml-2 {
  margin-left: 0.5rem;
}

.ml-3 {
  margin-left: 0.75rem;
}

.ml-auto {
  margin-left: auto;
}

.ml-px {
  margin-left: 1px;
}

.mr-1 {
  margin-right: 0.25rem;
}

.mr-2 {
  margin-right: 0.5rem;
}

.mr-auto {
  margin-right: auto;
}

.mt-0 {
  margin-top: 0px;
}

.mt-0\.5 {
  margin-top: 0.125rem;
}

.mt-1 {
  margin-top: 0.25rem;
}

.mt-1\.5 {
  margin-top: 0.375rem;
}

.mt-10 {
  margin-top: 2.5rem;
}

.mt-12 {
  margin-top: 3rem;
}

.mt-2 {
  margin-top: 0.5rem;
}

.mt-2\.5 {
  margin-top: 0.625rem;
}

.mt-3 {
  margin-top: 0.75rem;
}

.mt-4 {
  margin-top: 1rem;
}

.mt-5 {
  margin-top: 1.25rem;
}

.mt-6 {
  margin-top: 1.5rem;
}

.mt-8 {
  margin-top: 2rem;
}

.mt-auto {
  margin-top: auto;
}

.mt-px {
  margin-top: 1px;
}

.box-border {
  box-sizing: border-box;
}

.line-clamp-1 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

.inline {
  display: inline;
}

.\!flex {
  display: flex !important;
}

.flex {
  display: flex;
}

.inline-flex {
  display: inline-flex;
}

.table {
  display: table;
}

.table-header-group {
  display: table-header-group;
}

.table-row-group {
  display: table-row-group;
}

.grid {
  display: grid;
}

.contents {
  display: contents;
}

.list-item {
  display: list-item;
}

.\!hidden {
  display: none !important;
}

.hidden {
  display: none;
}

.aspect-square {
  aspect-ratio: 1 / 1;
}

.size-1\.5 {
  width: 0.375rem;
  height: 0.375rem;
}

.size-10 {
  width: 2.5rem;
  height: 2.5rem;
}

.size-2\.5 {
  width: 0.625rem;
  height: 0.625rem;
}

.size-3 {
  width: 0.75rem;
  height: 0.75rem;
}

.size-3\.5 {
  width: 0.875rem;
  height: 0.875rem;
}

.size-4 {
  width: 1rem;
  height: 1rem;
}

.size-5 {
  width: 1.25rem;
  height: 1.25rem;
}

.size-6 {
  width: 1.5rem;
  height: 1.5rem;
}

.size-7 {
  width: 1.75rem;
  height: 1.75rem;
}

.size-8 {
  width: 2rem;
  height: 2rem;
}

.size-full {
  width: 100%;
  height: 100%;
}

.\!h-5 {
  height: 1.25rem !important;
}

.\!h-7 {
  height: 1.75rem !important;
}

.\!h-8 {
  height: 2rem !important;
}

.\!h-9 {
  height: 2.25rem !important;
}

.\!h-\[14px\] {
  height: 14px !important;
}

.\!h-auto {
  height: auto !important;
}

.h-0 {
  height: 0px;
}

.h-0\.5 {
  height: 0.125rem;
}

.h-1 {
  height: 0.25rem;
}

.h-1\.5 {
  height: 0.375rem;
}

.h-10 {
  height: 2.5rem;
}

.h-11 {
  height: 2.75rem;
}

.h-12 {
  height: 3rem;
}

.h-14 {
  height: 3.5rem;
}

.h-16 {
  height: 4rem;
}

.h-2 {
  height: 0.5rem;
}

.h-2\.5 {
  height: 0.625rem;
}

.h-20 {
  height: 5rem;
}

.h-24 {
  height: 6rem;
}

.h-28 {
  height: 7rem;
}

.h-3 {
  height: 0.75rem;
}

.h-3\.5 {
  height: 0.875rem;
}

.h-32 {
  height: 8rem;
}

.h-36 {
  height: 9rem;
}

.h-4 {
  height: 1rem;
}

.h-40 {
  height: 10rem;
}

.h-48 {
  height: 12rem;
}

.h-5 {
  height: 1.25rem;
}

.h-6 {
  height: 1.5rem;
}

.h-64 {
  height: 16rem;
}

.h-7 {
  height: 1.75rem;
}

.h-8 {
  height: 2rem;
}

.h-9 {
  height: 2.25rem;
}

.h-\[1\.125rem\] {
  height: 1.125rem;
}

.h-\[1\.25rem\] {
  height: 1.25rem;
}

.h-\[100dvh\] {
  height: 100dvh;
}

.h-\[100vh\] {
  height: 100vh;
}

.h-\[140px\] {
  height: 140px;
}

.h-\[152px\] {
  height: 152px;
}

.h-\[15px\] {
  height: 15px;
}

.h-\[1rem\] {
  height: 1rem;
}

.h-\[200px\] {
  height: 200px;
}

.h-\[22px\] {
  height: 22px;
}

.h-\[240px\] {
  height: 240px;
}

.h-\[280px\] {
  height: 280px;
}

.h-\[2px\] {
  height: 2px;
}

.h-\[5\.5rem\] {
  height: 5.5rem;
}

.h-\[7\.25rem\] {
  height: 7.25rem;
}

.h-\[72px\] {
  height: 72px;
}

.h-\[8px\] {
  height: 8px;
}

.h-\[calc\(100\%\)\] {
  height: calc(100%);
}

.h-\[min\(24rem\2c calc\(100dvh-var\(--chat-panel-bottom-offset\2c 1rem\)-5rem\)\)\] {
  height: min(24rem, calc(100dvh - var(--chat-panel-bottom-offset,1rem) - 5rem));
}

.h-\[min\(28rem\2c 55vh\)\] {
  height: min(28rem, 55vh);
}

.h-auto {
  height: auto;
}

.h-fit {
  height: -moz-fit-content;
  height: fit-content;
}

.h-full {
  height: 100%;
}

.h-px {
  height: 1px;
}

.h-screen {
  height: 100vh;
}

.\!max-h-5 {
  max-height: 1.25rem !important;
}

.\!max-h-9 {
  max-height: 2.25rem !important;
}

.\!max-h-none {
  max-height: none !important;
}

.max-h-0 {
  max-height: 0px;
}

.max-h-10 {
  max-height: 2.5rem;
}

.max-h-24 {
  max-height: 6rem;
}

.max-h-28 {
  max-height: 7rem;
}

.max-h-32 {
  max-height: 8rem;
}

.max-h-40 {
  max-height: 10rem;
}

.max-h-48 {
  max-height: 12rem;
}

.max-h-5 {
  max-height: 1.25rem;
}

.max-h-52 {
  max-height: 13rem;
}

.max-h-56 {
  max-height: 14rem;
}

.max-h-64 {
  max-height: 16rem;
}

.max-h-7 {
  max-height: 1.75rem;
}

.max-h-72 {
  max-height: 18rem;
}

.max-h-8 {
  max-height: 2rem;
}

.max-h-80 {
  max-height: 20rem;
}

.max-h-9 {
  max-height: 2.25rem;
}

.max-h-\[100dvh\] {
  max-height: 100dvh;
}

.max-h-\[200px\] {
  max-height: 200px;
}

.max-h-\[22px\] {
  max-height: 22px;
}

.max-h-\[28rem\] {
  max-height: 28rem;
}

.max-h-\[340px\] {
  max-height: 340px;
}

.max-h-\[360px\] {
  max-height: 360px;
}

.max-h-\[50vh\] {
  max-height: 50vh;
}

.max-h-\[72px\] {
  max-height: 72px;
}

.max-h-\[90vh\] {
  max-height: 90vh;
}

.max-h-\[95vh\] {
  max-height: 95vh;
}

.max-h-\[calc\(100dvh-5rem-env\(safe-area-inset-bottom\2c 0px\)-env\(safe-area-inset-top\2c 0px\)\)\] {
  max-height: calc(100dvh - 5rem - env(safe-area-inset-bottom,0px) - env(safe-area-inset-top,0px));
}

.max-h-\[calc\(90vh-80px\)\] {
  max-height: calc(90vh - 80px);
}

.max-h-\[min\(26rem\2c calc\(100dvh-8rem\)\)\] {
  max-height: min(26rem, calc(100dvh - 8rem));
}

.max-h-\[min\(28rem\2c calc\(100dvh-var\(--chat-panel-bottom-offset\2c 1rem\)-4rem\)\)\] {
  max-height: min(28rem, calc(100dvh - var(--chat-panel-bottom-offset,1rem) - 4rem));
}

.max-h-\[min\(50vh\2c 28rem\)\] {
  max-height: min(50vh, 28rem);
}

.max-h-\[min\(calc\(92vh-2\.75rem\)\2c 60rem\)\] {
  max-height: min(calc(92vh - 2.75rem), 60rem);
}

.max-h-\[var\(--modal-max-height-desktop\)\] {
  max-height: var(--modal-max-height-desktop);
}

.max-h-\[var\(--modal-max-height-mobile\)\] {
  max-height: var(--modal-max-height-mobile);
}

.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\] {
  max-height: var(--radix-dropdown-menu-content-available-height);
}

.max-h-full {
  max-height: 100%;
}

.max-h-none {
  max-height: none;
}

.\!min-h-0 {
  min-height: 0px !important;
}

.\!min-h-5 {
  min-height: 1.25rem !important;
}

.\!min-h-7 {
  min-height: 1.75rem !important;
}

.\!min-h-8 {
  min-height: 2rem !important;
}

.\!min-h-9 {
  min-height: 2.25rem !important;
}

.\!min-h-\[1\.75rem\] {
  min-height: 1.75rem !important;
}

.min-h-0 {
  min-height: 0px;
}

.min-h-10 {
  min-height: 2.5rem;
}

.min-h-14 {
  min-height: 3.5rem;
}

.min-h-5 {
  min-height: 1.25rem;
}

.min-h-7 {
  min-height: 1.75rem;
}

.min-h-8 {
  min-height: 2rem;
}

.min-h-9 {
  min-height: 2.25rem;
}

.min-h-\[1\.25rem\] {
  min-height: 1.25rem;
}

.min-h-\[1\.35rem\] {
  min-height: 1.35rem;
}

.min-h-\[100dvh\] {
  min-height: 100dvh;
}

.min-h-\[100px\] {
  min-height: 100px;
}

.min-h-\[116px\] {
  min-height: 116px;
}

.min-h-\[124px\] {
  min-height: 124px;
}

.min-h-\[130px\] {
  min-height: 130px;
}

.min-h-\[132px\] {
  min-height: 132px;
}

.min-h-\[152px\] {
  min-height: 152px;
}

.min-h-\[15rem\] {
  min-height: 15rem;
}

.min-h-\[180px\] {
  min-height: 180px;
}

.min-h-\[1rem\] {
  min-height: 1rem;
}

.min-h-\[2\.5rem\] {
  min-height: 2.5rem;
}

.min-h-\[2\.75rem\] {
  min-height: 2.75rem;
}

.min-h-\[200px\] {
  min-height: 200px;
}

.min-h-\[220px\] {
  min-height: 220px;
}

.min-h-\[22px\] {
  min-height: 22px;
}

.min-h-\[280px\] {
  min-height: 280px;
}

.min-h-\[28px\] {
  min-height: 28px;
}

.min-h-\[3\.25rem\] {
  min-height: 3.25rem;
}

.min-h-\[3\.5rem\] {
  min-height: 3.5rem;
}

.min-h-\[32px\] {
  min-height: 32px;
}

.min-h-\[4\.25rem\] {
  min-height: 4.25rem;
}

.min-h-\[4\.75rem\] {
  min-height: 4.75rem;
}

.min-h-\[40vh\] {
  min-height: 40vh;
}

.min-h-\[4rem\] {
  min-height: 4rem;
}

.min-h-\[5\.25rem\] {
  min-height: 5.25rem;
}

.min-h-\[5\.5rem\] {
  min-height: 5.5rem;
}

.min-h-\[52px\] {
  min-height: 52px;
}

.min-h-\[5rem\] {
  min-height: 5rem;
}

.min-h-\[60px\] {
  min-height: 60px;
}

.min-h-\[68px\] {
  min-height: 68px;
}

.min-h-\[70vh\] {
  min-height: 70vh;
}

.min-h-\[72px\] {
  min-height: 72px;
}

.min-h-\[80px\] {
  min-height: 80px;
}

.min-h-\[88px\] {
  min-height: 88px;
}

.min-h-\[8rem\] {
  min-height: 8rem;
}

.min-h-\[min\(52vh\2c 420px\)\] {
  min-height: min(52vh, 420px);
}

.min-h-\[min\(55vh\2c 480px\)\] {
  min-height: min(55vh, 480px);
}

.min-h-\[min\(56vh\2c 480px\)\] {
  min-height: min(56vh, 480px);
}

.min-h-\[min\(70vh\2c 520px\)\] {
  min-height: min(70vh, 520px);
}

.min-h-\[min\(72vh\2c 640px\)\] {
  min-height: min(72vh, 640px);
}

.min-h-\[min\(78vh\2c 720px\)\] {
  min-height: min(78vh, 720px);
}

.min-h-\[min\(80vh\2c 760px\)\] {
  min-height: min(80vh, 760px);
}

.min-h-\[min\(82vh\2c 760px\)\] {
  min-height: min(82vh, 760px);
}

.min-h-\[min\(82vh\2c 780px\)\] {
  min-height: min(82vh, 780px);
}

.min-h-\[min\(85vh\2c 800px\)\] {
  min-height: min(85vh, 800px);
}

.min-h-\[min\(88vh\2c 820px\)\] {
  min-height: min(88vh, 820px);
}

.min-h-\[min\(88vh\2c 840px\)\] {
  min-height: min(88vh, 840px);
}

.min-h-full {
  min-height: 100%;
}

.min-h-screen {
  min-height: 100vh;
}

.min-h-touch {
  min-height: 48px;
}

.\!w-5 {
  width: 1.25rem !important;
}

.\!w-7 {
  width: 1.75rem !important;
}

.\!w-8 {
  width: 2rem !important;
}

.\!w-auto {
  width: auto !important;
}

.w-0 {
  width: 0px;
}

.w-0\.5 {
  width: 0.125rem;
}

.w-1 {
  width: 0.25rem;
}

.w-1\.5 {
  width: 0.375rem;
}

.w-1\/2 {
  width: 50%;
}

.w-1\/3 {
  width: 33.333333%;
}

.w-10 {
  width: 2.5rem;
}

.w-11 {
  width: 2.75rem;
}

.w-12 {
  width: 3rem;
}

.w-14 {
  width: 3.5rem;
}

.w-16 {
  width: 4rem;
}

.w-2 {
  width: 0.5rem;
}

.w-2\.5 {
  width: 0.625rem;
}

.w-2\/3 {
  width: 66.666667%;
}

.w-20 {
  width: 5rem;
}

.w-24 {
  width: 6rem;
}

.w-28 {
  width: 7rem;
}

.w-3 {
  width: 0.75rem;
}

.w-3\.5 {
  width: 0.875rem;
}

.w-3\/4 {
  width: 75%;
}

.w-32 {
  width: 8rem;
}

.w-36 {
  width: 9rem;
}

.w-4 {
  width: 1rem;
}

.w-4\/5 {
  width: 80%;
}

.w-40 {
  width: 10rem;
}

.w-44 {
  width: 11rem;
}

.w-48 {
  width: 12rem;
}

.w-5 {
  width: 1.25rem;
}

.w-5\/6 {
  width: 83.333333%;
}

.w-52 {
  width: 13rem;
}

.w-56 {
  width: 14rem;
}

.w-6 {
  width: 1.5rem;
}

.w-60 {
  width: 15rem;
}

.w-64 {
  width: 16rem;
}

.w-7 {
  width: 1.75rem;
}

.w-72 {
  width: 18rem;
}

.w-8 {
  width: 2rem;
}

.w-80 {
  width: 20rem;
}

.w-9 {
  width: 2.25rem;
}

.w-\[1\.125rem\] {
  width: 1.125rem;
}

.w-\[10\%\] {
  width: 10%;
}

.w-\[10\.5rem\] {
  width: 10.5rem;
}

.w-\[14\%\] {
  width: 14%;
}

.w-\[15\%\] {
  width: 15%;
}

.w-\[15px\] {
  width: 15px;
}

.w-\[20\%\] {
  width: 20%;
}

.w-\[22\%\] {
  width: 22%;
}

.w-\[220px\] {
  width: 220px;
}

.w-\[260px\] {
  width: 260px;
}

.w-\[30\%\] {
  width: 30%;
}

.w-\[32\%\] {
  width: 32%;
}

.w-\[3px\] {
  width: 3px;
}

.w-\[48px\] {
  width: 48px;
}

.w-\[5\.5rem\] {
  width: 5.5rem;
}

.w-\[5\.75rem\] {
  width: 5.75rem;
}

.w-\[60px\] {
  width: 60px;
}

.w-\[7\.5rem\] {
  width: 7.5rem;
}

.w-\[85\%\] {
  width: 85%;
}

.w-\[8px\] {
  width: 8px;
}

.w-\[9rem\] {
  width: 9rem;
}

.w-\[calc\(50\%-2px\)\] {
  width: calc(50% - 2px);
}

.w-\[min\(\$\{FINE_REVIEW_MODAL_PREFERRED_WIDTH_PX\}px\2c var\(--modal-viewport-cap\)\)\] {
  width: min(${FINE REVIEW MODAL PREFERRED WIDTH PX}px, var(--modal-viewport-cap));
}

.w-\[min\(100\%\2c 20rem\)\] {
  width: min(100%, 20rem);
}

.w-\[min\(100\%\2c 21rem\)\] {
  width: min(100%, 21rem);
}

.w-\[min\(100\%\2c 22rem\)\] {
  width: min(100%, 22rem);
}

.w-\[min\(100\%\2c 280px\)\] {
  width: min(100%, 280px);
}

.w-\[min\(100\%\2c calc\(100vw-0\.75rem\)\)\] {
  width: min(100%, calc(100vw - 0.75rem));
}

.w-\[min\(100vw\2c 20rem\)\] {
  width: min(100vw, 20rem);
}

.w-\[min\(20rem\2c calc\(100vw-1rem\)\)\] {
  width: min(20rem, calc(100vw - 1rem));
}

.w-\[min\(20rem\2c calc\(100vw-2rem\)\)\] {
  width: min(20rem, calc(100vw - 2rem));
}

.w-\[min\(22rem\2c calc\(100vw-1\.5rem\)\)\] {
  width: min(22rem, calc(100vw - 1.5rem));
}

.w-\[min\(22rem\2c calc\(100vw-1rem\)\)\] {
  width: min(22rem, calc(100vw - 1rem));
}

.w-auto {
  width: auto;
}

.w-fit {
  width: -moz-fit-content;
  width: fit-content;
}

.w-full {
  width: 100%;
}

.w-max {
  width: -moz-max-content;
  width: max-content;
}

.w-px {
  width: 1px;
}

.w-sidebar {
  width: 256px;
}

.w-sidebar-collapsed {
  width: 64px;
}

.\!min-w-0 {
  min-width: 0px !important;
}

.\!min-w-7 {
  min-width: 1.75rem !important;
}

.\!min-w-8 {
  min-width: 2rem !important;
}

.min-w-0 {
  min-width: 0px;
}

.min-w-3\.5 {
  min-width: 0.875rem;
}

.min-w-4 {
  min-width: 1rem;
}

.min-w-5 {
  min-width: 1.25rem;
}

.min-w-8 {
  min-width: 2rem;
}

.min-w-\[0\.875rem\] {
  min-width: 0.875rem;
}

.min-w-\[1\.125rem\] {
  min-width: 1.125rem;
}

.min-w-\[1\.25rem\] {
  min-width: 1.25rem;
}

.min-w-\[1\.35rem\] {
  min-width: 1.35rem;
}

.min-w-\[10rem\] {
  min-width: 10rem;
}

.min-w-\[12rem\] {
  min-width: 12rem;
}

.min-w-\[140px\] {
  min-width: 140px;
}

.min-w-\[16rem\] {
  min-width: 16rem;
}

.min-w-\[180px\] {
  min-width: 180px;
}

.min-w-\[1rem\] {
  min-width: 1rem;
}

.min-w-\[2\.1rem\] {
  min-width: 2.1rem;
}

.min-w-\[2\.67rem\] {
  min-width: 2.67rem;
}

.min-w-\[2\.75rem\] {
  min-width: 2.75rem;
}

.min-w-\[200px\] {
  min-width: 200px;
}

.min-w-\[240px\] {
  min-width: 240px;
}

.min-w-\[28px\] {
  min-width: 28px;
}

.min-w-\[28rem\] {
  min-width: 28rem;
}

.min-w-\[2rem\] {
  min-width: 2rem;
}

.min-w-\[3\.5rem\] {
  min-width: 3.5rem;
}

.min-w-\[32rem\] {
  min-width: 32rem;
}

.min-w-\[4\.5rem\] {
  min-width: 4.5rem;
}

.min-w-\[480px\] {
  min-width: 480px;
}

.min-w-\[4rem\] {
  min-width: 4rem;
}

.min-w-\[5\.5rem\] {
  min-width: 5.5rem;
}

.min-w-\[5\.75rem\] {
  min-width: 5.75rem;
}

.min-w-\[520px\] {
  min-width: 520px;
}

.min-w-\[560px\] {
  min-width: 560px;
}

.min-w-\[640px\] {
  min-width: 640px;
}

.min-w-\[6rem\] {
  min-width: 6rem;
}

.min-w-\[7\.5rem\] {
  min-width: 7.5rem;
}

.min-w-\[720px\] {
  min-width: 720px;
}

.min-w-\[7rem\] {
  min-width: 7rem;
}

.min-w-\[8rem\] {
  min-width: 8rem;
}

.min-w-\[min\(100\%\2c 260px\)\] {
  min-width: min(100%, 260px);
}

.min-w-\[min\(100\%\2c 280px\)\] {
  min-width: min(100%, 280px);
}

.min-w-\[min\(100\%\2c 36rem\)\] {
  min-width: min(100%, 36rem);
}

.min-w-full {
  min-width: 100%;
}

.min-w-max {
  min-width: -moz-max-content;
  min-width: max-content;
}

.min-w-touch {
  min-width: 48px;
}

.\!max-w-\[min\(600px\2c calc\(100vw-env\(safe-area-inset-left\2c 0px\)-env\(safe-area-inset-right\2c 0px\)-1rem\)\)\] {
  max-width: min(600px, calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px) - 1rem)) !important;
}

.max-w-2xl {
  max-width: 42rem;
}

.max-w-3xl {
  max-width: 48rem;
}

.max-w-4xl {
  max-width: 56rem;
}

.max-w-5xl {
  max-width: 64rem;
}

.max-w-7 {
  max-width: 1.75rem;
}

.max-w-9 {
  max-width: 2.25rem;
}

.max-w-\[100px\] {
  max-width: 100px;
}

.max-w-\[100vw\] {
  max-width: 100vw;
}

.max-w-\[10rem\] {
  max-width: 10rem;
}

.max-w-\[11rem\] {
  max-width: 11rem;
}

.max-w-\[120px\] {
  max-width: 120px;
}

.max-w-\[12rem\] {
  max-width: 12rem;
}

.max-w-\[140px\] {
  max-width: 140px;
}

.max-w-\[14rem\] {
  max-width: 14rem;
}

.max-w-\[180px\] {
  max-width: 180px;
}

.max-w-\[18rem\] {
  max-width: 18rem;
}

.max-w-\[2\.5rem\] {
  max-width: 2.5rem;
}

.max-w-\[200px\] {
  max-width: 200px;
}

.max-w-\[20rem\] {
  max-width: 20rem;
}

.max-w-\[220px\] {
  max-width: 220px;
}

.max-w-\[240px\] {
  max-width: 240px;
}

.max-w-\[280px\] {
  max-width: 280px;
}

.max-w-\[3\.25rem\] {
  max-width: 3.25rem;
}

.max-w-\[3\.5rem\] {
  max-width: 3.5rem;
}

.max-w-\[320px\] {
  max-width: 320px;
}

.max-w-\[34rem\] {
  max-width: 34rem;
}

.max-w-\[360px\] {
  max-width: 360px;
}

.max-w-\[40\%\] {
  max-width: 40%;
}

.max-w-\[480px\] {
  max-width: 480px;
}

.max-w-\[5\.75rem\] {
  max-width: 5.75rem;
}

.max-w-\[520px\] {
  max-width: 520px;
}

.max-w-\[55\%\] {
  max-width: 55%;
}

.max-w-\[60\%\] {
  max-width: 60%;
}

.max-w-\[7\.5rem\] {
  max-width: 7.5rem;
}

.max-w-\[70\%\] {
  max-width: 70%;
}

.max-w-\[720px\] {
  max-width: 720px;
}

.max-w-\[75\%\] {
  max-width: 75%;
}

.max-w-\[7rem\] {
  max-width: 7rem;
}

.max-w-\[80\%\] {
  max-width: 80%;
}

.max-w-\[85\%\] {
  max-width: 85%;
}

.max-w-\[8rem\] {
  max-width: 8rem;
}

.max-w-\[9\.5rem\] {
  max-width: 9.5rem;
}

.max-w-\[90px\] {
  max-width: 90px;
}

.max-w-\[95vw\] {
  max-width: 95vw;
}

.max-w-\[9rem\] {
  max-width: 9rem;
}

.max-w-\[calc\(100vw-1rem\)\] {
  max-width: calc(100vw - 1rem);
}

.max-w-\[min\(\$\{FINE_REVIEW_MODAL_PREFERRED_WIDTH_PX\}px\2c var\(--modal-viewport-cap\)\)\] {
  max-width: min(${FINE REVIEW MODAL PREFERRED WIDTH PX}px, var(--modal-viewport-cap));
}

.max-w-\[min\(100\%\2c 14rem\)\] {
  max-width: min(100%, 14rem);
}

.max-w-\[min\(100\%\2c 18rem\)\] {
  max-width: min(100%, 18rem);
}

.max-w-\[min\(100\%\2c 20rem\)\] {
  max-width: min(100%, 20rem);
}

.max-w-\[min\(100\%\2c 22rem\)\] {
  max-width: min(100%, 22rem);
}

.max-w-\[min\(100\%\2c 9\.5rem\)\] {
  max-width: min(100%, 9.5rem);
}

.max-w-\[min\(100\%\2c calc\(100vw-0\.75rem\)\)\] {
  max-width: min(100%, calc(100vw - 0.75rem));
}

.max-w-\[min\(100vw-2rem\2c 20rem\)\] {
  max-width: min(100vw - 2rem, 20rem);
}

.max-w-\[min\(20rem\2c calc\(100vw-24px\)\)\] {
  max-width: min(20rem, calc(100vw - 24px));
}

.max-w-\[min\(22rem\2c calc\(100vw-2\.5rem\)\)\] {
  max-width: min(22rem, calc(100vw - 2.5rem));
}

.max-w-\[min\(7rem\2c 36vw\)\] {
  max-width: min(7rem, 36vw);
}

.max-w-\[min\(9rem\2c 42vw\)\] {
  max-width: min(9rem, 42vw);
}

.max-w-\[min\(calc\(100vw-1\.5rem\)\2c 20rem\)\] {
  max-width: min(calc(100vw - 1.5rem), 20rem);
}

.max-w-\[min\(calc\(100vw-1rem\)\2c 36rem\)\] {
  max-width: min(calc(100vw - 1rem), 36rem);
}

.max-w-container-lg {
  max-width: 1280px;
}

.max-w-container-md {
  max-width: 768px;
}

.max-w-container-sm {
  max-width: 640px;
}

.max-w-container-xl {
  max-width: 1440px;
}

.max-w-full {
  max-width: 100%;
}

.max-w-lg {
  max-width: 32rem;
}

.max-w-md {
  max-width: 28rem;
}

.max-w-none {
  max-width: none;
}

.max-w-sm {
  max-width: 24rem;
}

.max-w-xl {
  max-width: 36rem;
}

.max-w-xs {
  max-width: 20rem;
}

.flex-1 {
  flex: 1 1 0%;
}

.flex-none {
  flex: none;
}

.flex-shrink {
  flex-shrink: 1;
}

.flex-shrink-0 {
  flex-shrink: 0;
}

.shrink {
  flex-shrink: 1;
}

.shrink-0 {
  flex-shrink: 0;
}

.grow {
  flex-grow: 1;
}

.basis-0 {
  flex-basis: 0px;
}

.basis-\[min\(100\%\2c 12rem\)\] {
  flex-basis: min(100%, 12rem);
}

.basis-full {
  flex-basis: 100%;
}

.table-fixed {
  table-layout: fixed;
}

.caption-bottom {
  caption-side: bottom;
}

.border-collapse {
  border-collapse: collapse;
}

.origin-\[--radix-dropdown-menu-content-transform-origin\] {
  transform-origin: var(--radix-dropdown-menu-content-transform-origin);
}

.origin-\[var\(--radix-hover-card-content-transform-origin\)\] {
  transform-origin: var(--radix-hover-card-content-transform-origin);
}

.origin-\[var\(--radix-tooltip-content-transform-origin\)\] {
  transform-origin: var(--radix-tooltip-content-transform-origin);
}

.origin-left {
  transform-origin: left;
}

.\!translate-x-0 {
  --tw-translate-x: 0px !important;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}

.\!translate-y-0 {
  --tw-translate-y: 0px !important;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}

.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.translate-x-0\.5 {
  --tw-translate-x: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.translate-y-0 {
  --tw-translate-y: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.-rotate-90 {
  --tw-rotate: -90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.rotate-90 {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.skew-x-\[-18deg\] {
  --tw-skew-x: -18deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.\!scale-100 {
  --tw-scale-x: 1 !important;
  --tw-scale-y: 1 !important;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}

.scale-110 {
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.scale-90 {
  --tw-scale-x: .9;
  --tw-scale-y: .9;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.scale-\[1\.015\] {
  --tw-scale-x: 1.015;
  --tw-scale-y: 1.015;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.scale-\[1\.02\] {
  --tw-scale-x: 1.02;
  --tw-scale-y: 1.02;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

@keyframes action-flash {

  0% {
    background-color: hsl(var(--primary) / 0.32);
    color: hsl(var(--primary));
  }

  100% {
    background-color: transparent;
  }
}

.animate-action-flash {
  animation: action-flash 420ms ease-out 1;
}

@keyframes action-flash-destructive {

  0% {
    background-color: hsl(var(--destructive) / 0.28);
    color: hsl(var(--destructive));
  }

  100% {
    background-color: transparent;
  }
}

.animate-action-flash-destructive {
  animation: action-flash-destructive 420ms ease-out 1;
}

.animate-none {
  animation: none;
}

@keyframes pulse {

  50% {
    opacity: .5;
  }
}

.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes spin {

  to {
    transform: rotate(360deg);
  }
}

.animate-spin {
  animation: spin 1s linear infinite;
}

.cursor-default {
  cursor: default;
}

.cursor-ew-resize {
  cursor: ew-resize;
}

.cursor-grab {
  cursor: grab;
}

.cursor-not-allowed {
  cursor: not-allowed;
}

.cursor-pointer {
  cursor: pointer;
}

.touch-auto {
  touch-action: auto;
}

.touch-none {
  touch-action: none;
}

.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.select-text {
  -webkit-user-select: text;
     -moz-user-select: text;
          user-select: text;
}

.select-all {
  -webkit-user-select: all;
     -moz-user-select: all;
          user-select: all;
}

.resize-none {
  resize: none;
}

.resize-y {
  resize: vertical;
}

.resize {
  resize: both;
}

.scroll-mt-1 {
  scroll-margin-top: 0.25rem;
}

.scroll-mt-20 {
  scroll-margin-top: 5rem;
}

.scroll-mt-24 {
  scroll-margin-top: 6rem;
}

.scroll-pe-1 {
  scroll-padding-inline-end: 0.25rem;
}

.scroll-ps-1 {
  scroll-padding-inline-start: 0.25rem;
}

.list-inside {
  list-style-position: inside;
}

.list-decimal {
  list-style-type: decimal;
}

.list-disc {
  list-style-type: disc;
}

.list-none {
  list-style-type: none;
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.grid-cols-\[1fr_auto\] {
  grid-template-columns: 1fr auto;
}

.grid-cols-\[48px_repeat\(7\2c 1fr\)\] {
  grid-template-columns: 48px repeat(7,1fr);
}

.grid-cols-\[56px_repeat\(7\2c 1fr\)\] {
  grid-template-columns: 56px repeat(7,1fr);
}

.grid-cols-\[72px_minmax\(0\2c 1fr\)\] {
  grid-template-columns: 72px minmax(0,1fr);
}

.grid-cols-\[auto_1fr\] {
  grid-template-columns: auto 1fr;
}

.grid-cols-\[minmax\(0\2c 1fr\)_5\.75rem\] {
  grid-template-columns: minmax(0,1fr) 5.75rem;
}

.grid-cols-\[minmax\(0\2c 1fr\)_auto\] {
  grid-template-columns: minmax(0,1fr) auto;
}

.grid-cols-\[minmax\(0\2c auto\)_minmax\(0\2c 1fr\)\] {
  grid-template-columns: minmax(0,auto) minmax(0,1fr);
}

.grid-rows-3 {
  grid-template-rows: repeat(3, minmax(0, 1fr));
}

.grid-rows-\[0fr\] {
  grid-template-rows: 0fr;
}

.grid-rows-\[1fr\] {
  grid-template-rows: 1fr;
}

.flex-row {
  flex-direction: row;
}

.flex-row-reverse {
  flex-direction: row-reverse;
}

.flex-col {
  flex-direction: column;
}

.flex-col-reverse {
  flex-direction: column-reverse;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-nowrap {
  flex-wrap: nowrap;
}

.content-start {
  align-content: flex-start;
}

.items-start {
  align-items: flex-start;
}

.items-end {
  align-items: flex-end;
}

.\!items-center {
  align-items: center !important;
}

.items-center {
  align-items: center;
}

.items-baseline {
  align-items: baseline;
}

.items-stretch {
  align-items: stretch;
}

.justify-start {
  justify-content: flex-start;
}

.justify-end {
  justify-content: flex-end;
}

.justify-center {
  justify-content: center;
}

.\!justify-between {
  justify-content: space-between !important;
}

.justify-between {
  justify-content: space-between;
}

.justify-stretch {
  justify-content: stretch;
}

.\!gap-1 {
  gap: 0.25rem !important;
}

.gap-0 {
  gap: 0px;
}

.gap-0\.5 {
  gap: 0.125rem;
}

.gap-1 {
  gap: 0.25rem;
}

.gap-1\.5 {
  gap: 0.375rem;
}

.gap-2 {
  gap: 0.5rem;
}

.gap-2\.5 {
  gap: 0.625rem;
}

.gap-3 {
  gap: 0.75rem;
}

.gap-3\.5 {
  gap: 0.875rem;
}

.gap-4 {
  gap: 1rem;
}

.gap-5 {
  gap: 1.25rem;
}

.gap-6 {
  gap: 1.5rem;
}

.gap-8 {
  gap: 2rem;
}

.gap-\[1px\] {
  gap: 1px;
}

.gap-\[2px\] {
  gap: 2px;
}

.gap-px {
  gap: 1px;
}

.gap-x-0\.5 {
  -moz-column-gap: 0.125rem;
       column-gap: 0.125rem;
}

.gap-x-1 {
  -moz-column-gap: 0.25rem;
       column-gap: 0.25rem;
}

.gap-x-1\.5 {
  -moz-column-gap: 0.375rem;
       column-gap: 0.375rem;
}

.gap-x-2 {
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}

.gap-x-2\.5 {
  -moz-column-gap: 0.625rem;
       column-gap: 0.625rem;
}

.gap-x-3 {
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}

.gap-x-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}

.gap-y-0 {
  row-gap: 0px;
}

.gap-y-0\.5 {
  row-gap: 0.125rem;
}

.gap-y-1 {
  row-gap: 0.25rem;
}

.gap-y-1\.5 {
  row-gap: 0.375rem;
}

.gap-y-2 {
  row-gap: 0.5rem;
}

.gap-y-2\.5 {
  row-gap: 0.625rem;
}

.gap-y-3\.5 {
  row-gap: 0.875rem;
}

.gap-y-4 {
  row-gap: 1rem;
}

.space-y-0 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0px * var(--tw-space-y-reverse));
}

.space-y-0\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
}

.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}

.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}

.space-y-10 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2.5rem * var(--tw-space-y-reverse));
}

.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

.space-y-2\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}

.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}

.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}

.space-y-5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}

.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}

.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}

.divide-border > :not([hidden]) ~ :not([hidden]) {
  border-color: hsl(var(--border));
}

.divide-border\/50 > :not([hidden]) ~ :not([hidden]) {
  border-color: hsl(var(--border) / 0.5);
}

.divide-border\/70 > :not([hidden]) ~ :not([hidden]) {
  border-color: hsl(var(--border) / 0.7);
}

.self-start {
  align-self: flex-start;
}

.self-end {
  align-self: flex-end;
}

.self-center {
  align-self: center;
}

.self-stretch {
  align-self: stretch;
}

.overflow-auto {
  overflow: auto;
}

.overflow-hidden {
  overflow: hidden;
}

.overflow-visible {
  overflow: visible;
}

.overflow-x-auto {
  overflow-x: auto;
}

.overflow-y-auto {
  overflow-y: auto;
}

.overflow-x-hidden {
  overflow-x: hidden;
}

.overflow-y-hidden {
  overflow-y: hidden;
}

.overflow-y-visible {
  overflow-y: visible;
}

.overscroll-contain {
  overscroll-behavior: contain;
}

.overscroll-y-auto {
  overscroll-behavior-y: auto;
}

.overscroll-y-contain {
  overscroll-behavior-y: contain;
}

.overscroll-x-contain {
  overscroll-behavior-x: contain;
}

.scroll-smooth {
  scroll-behavior: smooth;
}

.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-ellipsis {
  text-overflow: ellipsis;
}

.whitespace-normal {
  white-space: normal;
}

.whitespace-nowrap {
  white-space: nowrap;
}

.whitespace-pre-wrap {
  white-space: pre-wrap;
}

.text-balance {
  text-wrap: balance;
}

.text-pretty {
  text-wrap: pretty;
}

.break-words {
  overflow-wrap: break-word;
}

.break-all {
  word-break: break-all;
}

.\!rounded-lg {
  border-radius: var(--radius) !important;
}

.rounded {
  border-radius: 0.25rem;
}

.rounded-2xl {
  border-radius: 1rem;
}

.rounded-3xl {
  border-radius: 1.5rem;
}

.rounded-\[4px\] {
  border-radius: 4px;
}

.rounded-full {
  border-radius: 9999px;
}

.rounded-lg {
  border-radius: var(--radius);
}

.rounded-md {
  border-radius: calc(var(--radius) - 2px);
}

.rounded-none {
  border-radius: 0px;
}

.rounded-sm {
  border-radius: calc(var(--radius) - 4px);
}

.rounded-xl {
  border-radius: 0.75rem;
}

.\!rounded-l-none {
  border-top-left-radius: 0px !important;
  border-bottom-left-radius: 0px !important;
}

.rounded-b-xl {
  border-bottom-right-radius: 0.75rem;
  border-bottom-left-radius: 0.75rem;
}

.rounded-l {
  border-top-left-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}

.rounded-l-md {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}

.rounded-l-none {
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}

.rounded-r {
  border-top-right-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}

.rounded-r-md {
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}

.rounded-r-none {
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
}

.rounded-t {
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}

.rounded-t-2xl {
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}

.rounded-t-lg {
  border-top-left-radius: var(--radius);
  border-top-right-radius: var(--radius);
}

.rounded-t-xl {
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
}

.rounded-tl-md {
  border-top-left-radius: calc(var(--radius) - 2px);
}

.\!border-0 {
  border-width: 0px !important;
}

.border {
  border-width: 1px;
}

.border-0 {
  border-width: 0px;
}

.border-2 {
  border-width: 2px;
}

.border-x-0 {
  border-left-width: 0px;
  border-right-width: 0px;
}

.border-y {
  border-top-width: 1px;
  border-bottom-width: 1px;
}

.\!border-l-0 {
  border-left-width: 0px !important;
}

.border-b {
  border-bottom-width: 1px;
}

.border-b-0 {
  border-bottom-width: 0px;
}

.border-b-2 {
  border-bottom-width: 2px;
}

.border-l {
  border-left-width: 1px;
}

.border-l-2 {
  border-left-width: 2px;
}

.border-l-\[3px\] {
  border-left-width: 3px;
}

.border-r {
  border-right-width: 1px;
}

.border-r-0 {
  border-right-width: 0px;
}

.border-r-2 {
  border-right-width: 2px;
}

.border-t {
  border-top-width: 1px;
}

.border-t-0 {
  border-top-width: 0px;
}

.border-t-2 {
  border-top-width: 2px;
}

.border-solid {
  border-style: solid;
}

.border-dashed {
  border-style: dashed;
}

.border-none {
  border-style: none;
}

.\!border-transparent {
  border-color: transparent !important;
}

.border-amber-100 {
  --tw-border-opacity: 1;
  border-color: rgb(254 243 199 / var(--tw-border-opacity, 1));
}

.border-amber-200 {
  --tw-border-opacity: 1;
  border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}

.border-amber-200\/50 {
  border-color: rgb(253 230 138 / 0.5);
}

.border-amber-200\/60 {
  border-color: rgb(253 230 138 / 0.6);
}

.border-amber-200\/70 {
  border-color: rgb(253 230 138 / 0.7);
}

.border-amber-200\/80 {
  border-color: rgb(253 230 138 / 0.8);
}

.border-amber-300 {
  --tw-border-opacity: 1;
  border-color: rgb(252 211 77 / var(--tw-border-opacity, 1));
}

.border-amber-400 {
  --tw-border-opacity: 1;
  border-color: rgb(251 191 36 / var(--tw-border-opacity, 1));
}

.border-amber-400\/50 {
  border-color: rgb(251 191 36 / 0.5);
}

.border-amber-400\/90 {
  border-color: rgb(251 191 36 / 0.9);
}

.border-amber-500\/25 {
  border-color: rgb(245 158 11 / 0.25);
}

.border-amber-500\/30 {
  border-color: rgb(245 158 11 / 0.3);
}

.border-amber-500\/40 {
  border-color: rgb(245 158 11 / 0.4);
}

.border-amber-500\/45 {
  border-color: rgb(245 158 11 / 0.45);
}

.border-amber-500\/60 {
  border-color: rgb(245 158 11 / 0.6);
}

.border-amber-600\/80 {
  border-color: rgb(217 119 6 / 0.8);
}

.border-black\/\[0\.06\] {
  border-color: rgb(0 0 0 / 0.06);
}

.border-blue-200 {
  --tw-border-opacity: 1;
  border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}

.border-border {
  border-color: hsl(var(--border));
}

.border-border\/30 {
  border-color: hsl(var(--border) / 0.3);
}

.border-border\/35 {
  border-color: hsl(var(--border) / 0.35);
}

.border-border\/40 {
  border-color: hsl(var(--border) / 0.4);
}

.border-border\/50 {
  border-color: hsl(var(--border) / 0.5);
}

.border-border\/55 {
  border-color: hsl(var(--border) / 0.55);
}

.border-border\/60 {
  border-color: hsl(var(--border) / 0.6);
}

.border-border\/70 {
  border-color: hsl(var(--border) / 0.7);
}

.border-border\/80 {
  border-color: hsl(var(--border) / 0.8);
}

.border-cyan-200 {
  --tw-border-opacity: 1;
  border-color: rgb(165 243 252 / var(--tw-border-opacity, 1));
}

.border-destructive {
  border-color: hsl(var(--destructive));
}

.border-destructive\/20 {
  border-color: hsl(var(--destructive) / 0.2);
}

.border-destructive\/25 {
  border-color: hsl(var(--destructive) / 0.25);
}

.border-destructive\/30 {
  border-color: hsl(var(--destructive) / 0.3);
}

.border-destructive\/35 {
  border-color: hsl(var(--destructive) / 0.35);
}

.border-destructive\/40 {
  border-color: hsl(var(--destructive) / 0.4);
}

.border-destructive\/45 {
  border-color: hsl(var(--destructive) / 0.45);
}

.border-destructive\/50 {
  border-color: hsl(var(--destructive) / 0.5);
}

.border-emerald-100 {
  --tw-border-opacity: 1;
  border-color: rgb(209 250 229 / var(--tw-border-opacity, 1));
}

.border-emerald-200 {
  --tw-border-opacity: 1;
  border-color: rgb(167 243 208 / var(--tw-border-opacity, 1));
}

.border-emerald-300 {
  --tw-border-opacity: 1;
  border-color: rgb(110 231 183 / var(--tw-border-opacity, 1));
}

.border-emerald-500\/25 {
  border-color: rgb(16 185 129 / 0.25);
}

.border-emerald-500\/30 {
  border-color: rgb(16 185 129 / 0.3);
}

.border-emerald-500\/70 {
  border-color: rgb(16 185 129 / 0.7);
}

.border-green-200 {
  --tw-border-opacity: 1;
  border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));
}

.border-green-200\/80 {
  border-color: rgb(187 247 208 / 0.8);
}

.border-indigo-200 {
  --tw-border-opacity: 1;
  border-color: rgb(199 210 254 / var(--tw-border-opacity, 1));
}

.border-input {
  border-color: hsl(var(--input));
}

.border-input\/80 {
  border-color: hsl(var(--input) / 0.8);
}

.border-muted-foreground\/35 {
  border-color: hsl(var(--muted-foreground) / 0.35);
}

.border-orange-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 215 170 / var(--tw-border-opacity, 1));
}

.border-pink-200 {
  --tw-border-opacity: 1;
  border-color: rgb(251 207 232 / var(--tw-border-opacity, 1));
}

.border-primary {
  border-color: hsl(var(--primary));
}

.border-primary\/10 {
  border-color: hsl(var(--primary) / 0.1);
}

.border-primary\/15 {
  border-color: hsl(var(--primary) / 0.15);
}

.border-primary\/20 {
  border-color: hsl(var(--primary) / 0.2);
}

.border-primary\/25 {
  border-color: hsl(var(--primary) / 0.25);
}

.border-primary\/30 {
  border-color: hsl(var(--primary) / 0.3);
}

.border-primary\/40 {
  border-color: hsl(var(--primary) / 0.4);
}

.border-primary\/50 {
  border-color: hsl(var(--primary) / 0.5);
}

.border-primary\/55 {
  border-color: hsl(var(--primary) / 0.55);
}

.border-red-100 {
  --tw-border-opacity: 1;
  border-color: rgb(254 226 226 / var(--tw-border-opacity, 1));
}

.border-red-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}

.border-red-200\/60 {
  border-color: rgb(254 202 202 / 0.6);
}

.border-red-300 {
  --tw-border-opacity: 1;
  border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));
}

.border-sky-400\/50 {
  border-color: rgb(56 189 248 / 0.5);
}

.border-sky-500\/50 {
  border-color: rgb(14 165 233 / 0.5);
}

.border-slate-100 {
  --tw-border-opacity: 1;
  border-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
}

.border-slate-200 {
  --tw-border-opacity: 1;
  border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));
}

.border-slate-200\/60 {
  border-color: rgb(226 232 240 / 0.6);
}

.border-slate-300 {
  --tw-border-opacity: 1;
  border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
}

.border-teal-200 {
  --tw-border-opacity: 1;
  border-color: rgb(153 246 228 / var(--tw-border-opacity, 1));
}

.border-transparent {
  border-color: transparent;
}

.border-violet-200 {
  --tw-border-opacity: 1;
  border-color: rgb(221 214 254 / var(--tw-border-opacity, 1));
}

.border-white\/20 {
  border-color: rgb(255 255 255 / 0.2);
}

.border-zinc-300 {
  --tw-border-opacity: 1;
  border-color: rgb(212 212 216 / var(--tw-border-opacity, 1));
}

.border-l-amber-500\/75 {
  border-left-color: rgb(245 158 11 / 0.75);
}

.border-l-blue-500\/70 {
  border-left-color: rgb(59 130 246 / 0.7);
}

.border-l-border {
  border-left-color: hsl(var(--border));
}

.border-l-emerald-500\/75 {
  border-left-color: rgb(16 185 129 / 0.75);
}

.border-l-emerald-500\/80 {
  border-left-color: rgb(16 185 129 / 0.8);
}

.border-l-indigo-500\/70 {
  border-left-color: rgb(99 102 241 / 0.7);
}

.border-l-muted-foreground\/50 {
  border-left-color: hsl(var(--muted-foreground) / 0.5);
}

.border-l-red-500\/70 {
  border-left-color: rgb(239 68 68 / 0.7);
}

.border-l-sky-500\/75 {
  border-left-color: rgb(14 165 233 / 0.75);
}

.border-l-slate-500\/70 {
  border-left-color: rgb(100 116 139 / 0.7);
}

.border-l-violet-500\/70 {
  border-left-color: rgb(139 92 246 / 0.7);
}

.\!bg-background {
  background-color: hsl(var(--background)) !important;
}

.\!bg-transparent {
  background-color: transparent !important;
}

.bg-\[var\(--surface\)\] {
  background-color: var(--surface);
}

.bg-accent {
  background-color: hsl(var(--accent));
}

.bg-amber-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}

.bg-amber-100\/60 {
  background-color: rgb(254 243 199 / 0.6);
}

.bg-amber-100\/80 {
  background-color: rgb(254 243 199 / 0.8);
}

.bg-amber-200\/80 {
  background-color: rgb(253 230 138 / 0.8);
}

.bg-amber-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 191 36 / var(--tw-bg-opacity, 1));
}

.bg-amber-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}

.bg-amber-50\/40 {
  background-color: rgb(255 251 235 / 0.4);
}

.bg-amber-50\/50 {
  background-color: rgb(255 251 235 / 0.5);
}

.bg-amber-50\/60 {
  background-color: rgb(255 251 235 / 0.6);
}

.bg-amber-50\/80 {
  background-color: rgb(255 251 235 / 0.8);
}

.bg-amber-50\/90 {
  background-color: rgb(255 251 235 / 0.9);
}

.bg-amber-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}

.bg-amber-500\/10 {
  background-color: rgb(245 158 11 / 0.1);
}

.bg-amber-500\/15 {
  background-color: rgb(245 158 11 / 0.15);
}

.bg-amber-500\/75 {
  background-color: rgb(245 158 11 / 0.75);
}

.bg-amber-500\/80 {
  background-color: rgb(245 158 11 / 0.8);
}

.bg-amber-500\/95 {
  background-color: rgb(245 158 11 / 0.95);
}

.bg-amber-500\/\[0\.04\] {
  background-color: rgb(245 158 11 / 0.04);
}

.bg-amber-500\/\[0\.05\] {
  background-color: rgb(245 158 11 / 0.05);
}

.bg-amber-500\/\[0\.06\] {
  background-color: rgb(245 158 11 / 0.06);
}

.bg-amber-500\/\[0\.08\] {
  background-color: rgb(245 158 11 / 0.08);
}

.bg-background {
  background-color: hsl(var(--background));
}

.bg-background\/40 {
  background-color: hsl(var(--background) / 0.4);
}

.bg-background\/45 {
  background-color: hsl(var(--background) / 0.45);
}

.bg-background\/50 {
  background-color: hsl(var(--background) / 0.5);
}

.bg-background\/55 {
  background-color: hsl(var(--background) / 0.55);
}

.bg-background\/60 {
  background-color: hsl(var(--background) / 0.6);
}

.bg-background\/70 {
  background-color: hsl(var(--background) / 0.7);
}

.bg-background\/75 {
  background-color: hsl(var(--background) / 0.75);
}

.bg-background\/80 {
  background-color: hsl(var(--background) / 0.8);
}

.bg-background\/90 {
  background-color: hsl(var(--background) / 0.9);
}

.bg-background\/95 {
  background-color: hsl(var(--background) / 0.95);
}

.bg-background\/\[0\.07\] {
  background-color: hsl(var(--background) / 0.07);
}

.bg-black\/25 {
  background-color: rgb(0 0 0 / 0.25);
}

.bg-black\/60 {
  background-color: rgb(0 0 0 / 0.6);
}

.bg-black\/80 {
  background-color: rgb(0 0 0 / 0.8);
}

.bg-blue-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}

.bg-blue-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}

.bg-blue-500\/15 {
  background-color: rgb(59 130 246 / 0.15);
}

.bg-border {
  background-color: hsl(var(--border));
}

.bg-border\/30 {
  background-color: hsl(var(--border) / 0.3);
}

.bg-border\/35 {
  background-color: hsl(var(--border) / 0.35);
}

.bg-border\/55 {
  background-color: hsl(var(--border) / 0.55);
}

.bg-border\/60 {
  background-color: hsl(var(--border) / 0.6);
}

.bg-border\/80 {
  background-color: hsl(var(--border) / 0.8);
}

.bg-card {
  background-color: hsl(var(--card));
}

.bg-card\/40 {
  background-color: hsl(var(--card) / 0.4);
}

.bg-card\/50 {
  background-color: hsl(var(--card) / 0.5);
}

.bg-card\/80 {
  background-color: hsl(var(--card) / 0.8);
}

.bg-card\/95 {
  background-color: hsl(var(--card) / 0.95);
}

.bg-cyan-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 254 255 / var(--tw-bg-opacity, 1));
}

.bg-cyan-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(6 182 212 / var(--tw-bg-opacity, 1));
}

.bg-destructive {
  background-color: hsl(var(--destructive));
}

.bg-destructive\/10 {
  background-color: hsl(var(--destructive) / 0.1);
}

.bg-destructive\/15 {
  background-color: hsl(var(--destructive) / 0.15);
}

.bg-destructive\/5 {
  background-color: hsl(var(--destructive) / 0.05);
}

.bg-destructive\/75 {
  background-color: hsl(var(--destructive) / 0.75);
}

.bg-emerald-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1));
}

.bg-emerald-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
}

.bg-emerald-50\/30 {
  background-color: rgb(236 253 245 / 0.3);
}

.bg-emerald-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}

.bg-emerald-500\/10 {
  background-color: rgb(16 185 129 / 0.1);
}

.bg-emerald-500\/15 {
  background-color: rgb(16 185 129 / 0.15);
}

.bg-emerald-500\/20 {
  background-color: rgb(16 185 129 / 0.2);
}

.bg-emerald-500\/85 {
  background-color: rgb(16 185 129 / 0.85);
}

.bg-emerald-500\/\[0\.06\] {
  background-color: rgb(16 185 129 / 0.06);
}

.bg-emerald-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(5 150 105 / var(--tw-bg-opacity, 1));
}

.bg-green-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}

.bg-green-50\/40 {
  background-color: rgb(240 253 244 / 0.4);
}

.bg-green-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));
}

.bg-indigo-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(238 242 255 / var(--tw-bg-opacity, 1));
}

.bg-indigo-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(99 102 241 / var(--tw-bg-opacity, 1));
}

.bg-muted {
  background-color: hsl(var(--muted));
}

.bg-muted-foreground {
  background-color: hsl(var(--muted-foreground));
}

.bg-muted-foreground\/20 {
  background-color: hsl(var(--muted-foreground) / 0.2);
}

.bg-muted-foreground\/45 {
  background-color: hsl(var(--muted-foreground) / 0.45);
}

.bg-muted-foreground\/50 {
  background-color: hsl(var(--muted-foreground) / 0.5);
}

.bg-muted\/10 {
  background-color: hsl(var(--muted) / 0.1);
}

.bg-muted\/15 {
  background-color: hsl(var(--muted) / 0.15);
}

.bg-muted\/20 {
  background-color: hsl(var(--muted) / 0.2);
}

.bg-muted\/25 {
  background-color: hsl(var(--muted) / 0.25);
}

.bg-muted\/30 {
  background-color: hsl(var(--muted) / 0.3);
}

.bg-muted\/35 {
  background-color: hsl(var(--muted) / 0.35);
}

.bg-muted\/40 {
  background-color: hsl(var(--muted) / 0.4);
}

.bg-muted\/5 {
  background-color: hsl(var(--muted) / 0.05);
}

.bg-muted\/50 {
  background-color: hsl(var(--muted) / 0.5);
}

.bg-muted\/55 {
  background-color: hsl(var(--muted) / 0.55);
}

.bg-muted\/60 {
  background-color: hsl(var(--muted) / 0.6);
}

.bg-muted\/70 {
  background-color: hsl(var(--muted) / 0.7);
}

.bg-muted\/80 {
  background-color: hsl(var(--muted) / 0.8);
}

.bg-muted\/90 {
  background-color: hsl(var(--muted) / 0.9);
}

.bg-orange-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));
}

.bg-orange-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1));
}

.bg-orange-500\/15 {
  background-color: rgb(249 115 22 / 0.15);
}

.bg-pink-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 242 248 / var(--tw-bg-opacity, 1));
}

.bg-pink-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(236 72 153 / var(--tw-bg-opacity, 1));
}

.bg-popover {
  background-color: hsl(var(--popover));
}

.bg-primary {
  background-color: hsl(var(--primary));
}

.bg-primary-foreground {
  background-color: hsl(var(--primary-foreground));
}

.bg-primary\/10 {
  background-color: hsl(var(--primary) / 0.1);
}

.bg-primary\/15 {
  background-color: hsl(var(--primary) / 0.15);
}

.bg-primary\/20 {
  background-color: hsl(var(--primary) / 0.2);
}

.bg-primary\/25 {
  background-color: hsl(var(--primary) / 0.25);
}

.bg-primary\/5 {
  background-color: hsl(var(--primary) / 0.05);
}

.bg-primary\/60 {
  background-color: hsl(var(--primary) / 0.6);
}

.bg-primary\/70 {
  background-color: hsl(var(--primary) / 0.7);
}

.bg-primary\/\[0\.02\] {
  background-color: hsl(var(--primary) / 0.02);
}

.bg-primary\/\[0\.03\] {
  background-color: hsl(var(--primary) / 0.03);
}

.bg-primary\/\[0\.04\] {
  background-color: hsl(var(--primary) / 0.04);
}

.bg-primary\/\[0\.05\] {
  background-color: hsl(var(--primary) / 0.05);
}

.bg-primary\/\[0\.06\] {
  background-color: hsl(var(--primary) / 0.06);
}

.bg-primary\/\[0\.07\] {
  background-color: hsl(var(--primary) / 0.07);
}

.bg-primary\/\[0\.08\] {
  background-color: hsl(var(--primary) / 0.08);
}

.bg-primary\/\[0\.12\] {
  background-color: hsl(var(--primary) / 0.12);
}

.bg-purple-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(250 245 255 / var(--tw-bg-opacity, 1));
}

.bg-red-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}

.bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}

.bg-red-50\/60 {
  background-color: rgb(254 242 242 / 0.6);
}

.bg-red-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}

.bg-red-500\/10 {
  background-color: rgb(239 68 68 / 0.1);
}

.bg-rose-400\/70 {
  background-color: rgb(251 113 133 / 0.7);
}

.bg-rose-500\/15 {
  background-color: rgb(244 63 94 / 0.15);
}

.bg-secondary {
  background-color: hsl(var(--secondary));
}

.bg-sky-200\/80 {
  background-color: rgb(186 230 253 / 0.8);
}

.bg-sky-50\/80 {
  background-color: rgb(240 249 255 / 0.8);
}

.bg-sky-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(14 165 233 / var(--tw-bg-opacity, 1));
}

.bg-sky-500\/15 {
  background-color: rgb(14 165 233 / 0.15);
}

.bg-sky-500\/85 {
  background-color: rgb(14 165 233 / 0.85);
}

.bg-sky-500\/\[0\.08\] {
  background-color: rgb(14 165 233 / 0.08);
}

.bg-slate-100\/90 {
  background-color: rgb(241 245 249 / 0.9);
}

.bg-slate-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1));
}

.bg-slate-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(148 163 184 / var(--tw-bg-opacity, 1));
}

.bg-slate-400\/80 {
  background-color: rgb(148 163 184 / 0.8);
}

.bg-slate-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
}

.bg-slate-50\/40 {
  background-color: rgb(248 250 252 / 0.4);
}

.bg-slate-50\/50 {
  background-color: rgb(248 250 252 / 0.5);
}

.bg-slate-50\/80 {
  background-color: rgb(248 250 252 / 0.8);
}

.bg-slate-50\/95 {
  background-color: rgb(248 250 252 / 0.95);
}

.bg-teal-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(204 251 241 / var(--tw-bg-opacity, 1));
}

.bg-teal-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 250 / var(--tw-bg-opacity, 1));
}

.bg-teal-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(20 184 166 / var(--tw-bg-opacity, 1));
}

.bg-teal-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(13 148 136 / var(--tw-bg-opacity, 1));
}

.bg-transparent {
  background-color: transparent;
}

.bg-violet-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 243 255 / var(--tw-bg-opacity, 1));
}

.bg-violet-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1));
}

.bg-violet-500\/75 {
  background-color: rgb(139 92 246 / 0.75);
}

.bg-violet-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(124 58 237 / var(--tw-bg-opacity, 1));
}

.bg-white\/10 {
  background-color: rgb(255 255 255 / 0.1);
}

.bg-white\/35 {
  background-color: rgb(255 255 255 / 0.35);
}

.bg-zinc-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(244 244 245 / var(--tw-bg-opacity, 1));
}

.bg-zinc-500\/55 {
  background-color: rgb(113 113 122 / 0.55);
}

.bg-zinc-500\/80 {
  background-color: rgb(113 113 122 / 0.8);
}

.bg-zinc-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(39 39 42 / var(--tw-bg-opacity, 1));
}

.bg-\[radial-gradient\(ellipse_120\%_80\%_at_50\%_-20\%\2c hsl\(var\(--primary\)\/0\.06\)\2c transparent_55\%\)\] {
  background-image: radial-gradient(ellipse 120% 80% at 50% -20%,hsl(var(--primary)/0.06),transparent 55%);
}

.bg-\[radial-gradient\(ellipse_at_top_right\2c _var\(--tw-gradient-stops\)\)\] {
  background-image: radial-gradient(ellipse at top right, var(--tw-gradient-stops));
}

.bg-gradient-to-b {
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}

.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}

.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}

.bg-gradient-to-t {
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
}

.from-amber-50 {
  --tw-gradient-from: #fffbeb var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 251 235 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-amber-500\/80 {
  --tw-gradient-from: rgb(245 158 11 / 0.8) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-background {
  --tw-gradient-from: hsl(var(--background)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-border {
  --tw-gradient-from: hsl(var(--border)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--border) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-card\/90 {
  --tw-gradient-from: hsl(var(--card) / 0.9) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--card) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-card\/95 {
  --tw-gradient-from: hsl(var(--card) / 0.95) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--card) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-destructive\/85 {
  --tw-gradient-from: hsl(var(--destructive) / 0.85) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--destructive) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-muted {
  --tw-gradient-from: hsl(var(--muted)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--muted) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-muted-foreground\/50 {
  --tw-gradient-from: hsl(var(--muted-foreground) / 0.5) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--muted-foreground) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-muted\/25 {
  --tw-gradient-from: hsl(var(--muted) / 0.25) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--muted) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-muted\/40 {
  --tw-gradient-from: hsl(var(--muted) / 0.4) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--muted) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-muted\/45 {
  --tw-gradient-from: hsl(var(--muted) / 0.45) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--muted) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-muted\/50 {
  --tw-gradient-from: hsl(var(--muted) / 0.5) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--muted) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-muted\/\[0\.12\] {
  --tw-gradient-from: hsl(var(--muted) / 0.12) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--muted) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-popover {
  --tw-gradient-from: hsl(var(--popover)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--popover) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-primary {
  --tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-primary\/20 {
  --tw-gradient-from: hsl(var(--primary) / 0.2) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-primary\/70 {
  --tw-gradient-from: hsl(var(--primary) / 0.7) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-primary\/80 {
  --tw-gradient-from: hsl(var(--primary) / 0.8) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-primary\/\[0\.06\] {
  --tw-gradient-from: hsl(var(--primary) / 0.06) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-primary\/\[0\.07\] {
  --tw-gradient-from: hsl(var(--primary) / 0.07) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-red-50 {
  --tw-gradient-from: #fef2f2 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(254 242 242 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-slate-100 {
  --tw-gradient-from: #f1f5f9 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(241 245 249 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-slate-50 {
  --tw-gradient-from: #f8fafc var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-transparent {
  --tw-gradient-from: transparent var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-35\% {
  --tw-gradient-from-position: 35%;
}

.via-amber-500 {
  --tw-gradient-to: rgb(245 158 11 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #f59e0b var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-background {
  --tw-gradient-to: hsl(var(--background) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-border {
  --tw-gradient-to: hsl(var(--border) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--border)) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-card\/70 {
  --tw-gradient-to: hsl(var(--card) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--card) / 0.7) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-card\/80 {
  --tw-gradient-to: hsl(var(--card) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--card) / 0.8) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-destructive {
  --tw-gradient-to: hsl(var(--destructive) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--destructive)) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-muted-foreground\/40 {
  --tw-gradient-to: hsl(var(--muted-foreground) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--muted-foreground) / 0.4) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-muted-foreground\/70 {
  --tw-gradient-to: hsl(var(--muted-foreground) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--muted-foreground) / 0.7) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-muted\/15 {
  --tw-gradient-to: hsl(var(--muted) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--muted) / 0.15) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-muted\/25 {
  --tw-gradient-to: hsl(var(--muted) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--muted) / 0.25) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-muted\/40 {
  --tw-gradient-to: hsl(var(--muted) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--muted) / 0.4) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-muted\/90 {
  --tw-gradient-to: hsl(var(--muted) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--muted) / 0.9) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-popover\/70 {
  --tw-gradient-to: hsl(var(--popover) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--popover) / 0.7) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-primary {
  --tw-gradient-to: hsl(var(--primary) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary)) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-primary\/90 {
  --tw-gradient-to: hsl(var(--primary) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / 0.9) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-primary\/\[0\.02\] {
  --tw-gradient-to: hsl(var(--primary) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / 0.02) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-primary\/\[0\.03\] {
  --tw-gradient-to: hsl(var(--primary) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--primary) / 0.03) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-slate-100 {
  --tw-gradient-to: rgb(241 245 249 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #f1f5f9 var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-transparent {
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-white\/45 {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / 0.45) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-yellow-50\/80 {
  --tw-gradient-to: rgb(254 252 232 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(254 252 232 / 0.8) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.to-amber-400\/70 {
  --tw-gradient-to: rgb(251 191 36 / 0.7) var(--tw-gradient-to-position);
}

.to-amber-50 {
  --tw-gradient-to: #fffbeb var(--tw-gradient-to-position);
}

.to-background {
  --tw-gradient-to: hsl(var(--background)) var(--tw-gradient-to-position);
}

.to-border {
  --tw-gradient-to: hsl(var(--border)) var(--tw-gradient-to-position);
}

.to-card\/60 {
  --tw-gradient-to: hsl(var(--card) / 0.6) var(--tw-gradient-to-position);
}

.to-destructive\/70 {
  --tw-gradient-to: hsl(var(--destructive) / 0.7) var(--tw-gradient-to-position);
}

.to-muted {
  --tw-gradient-to: hsl(var(--muted)) var(--tw-gradient-to-position);
}

.to-muted-foreground\/40 {
  --tw-gradient-to: hsl(var(--muted-foreground) / 0.4) var(--tw-gradient-to-position);
}

.to-muted\/10 {
  --tw-gradient-to: hsl(var(--muted) / 0.1) var(--tw-gradient-to-position);
}

.to-muted\/30 {
  --tw-gradient-to: hsl(var(--muted) / 0.3) var(--tw-gradient-to-position);
}

.to-muted\/50 {
  --tw-gradient-to: hsl(var(--muted) / 0.5) var(--tw-gradient-to-position);
}

.to-popover\/0 {
  --tw-gradient-to: hsl(var(--popover) / 0) var(--tw-gradient-to-position);
}

.to-primary\/60 {
  --tw-gradient-to: hsl(var(--primary) / 0.6) var(--tw-gradient-to-position);
}

.to-primary\/70 {
  --tw-gradient-to: hsl(var(--primary) / 0.7) var(--tw-gradient-to-position);
}

.to-rose-50\/50 {
  --tw-gradient-to: rgb(255 241 242 / 0.5) var(--tw-gradient-to-position);
}

.to-slate-50 {
  --tw-gradient-to: #f8fafc var(--tw-gradient-to-position);
}

.to-transparent {
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}

.to-white {
  --tw-gradient-to: #fff var(--tw-gradient-to-position);
}

.fill-current {
  fill: currentColor;
}

.stroke-border\/50 {
  stroke: hsl(var(--border) / 0.5);
}

.object-contain {
  object-fit: contain;
}

.\!p-0 {
  padding: 0px !important;
}

.p-0 {
  padding: 0px;
}

.p-0\.5 {
  padding: 0.125rem;
}

.p-1 {
  padding: 0.25rem;
}

.p-1\.5 {
  padding: 0.375rem;
}

.p-10 {
  padding: 2.5rem;
}

.p-2 {
  padding: 0.5rem;
}

.p-2\.5 {
  padding: 0.625rem;
}

.p-20 {
  padding: 5rem;
}

.p-3 {
  padding: 0.75rem;
}

.p-3\.5 {
  padding: 0.875rem;
}

.p-4 {
  padding: 1rem;
}

.p-5 {
  padding: 1.25rem;
}

.p-6 {
  padding: 1.5rem;
}

.p-8 {
  padding: 2rem;
}

.p-px {
  padding: 1px;
}

.\!px-1\.5 {
  padding-left: 0.375rem !important;
  padding-right: 0.375rem !important;
}

.\!px-2 {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

.\!px-3 {
  padding-left: 0.75rem !important;
  padding-right: 0.75rem !important;
}

.\!py-0 {
  padding-top: 0px !important;
  padding-bottom: 0px !important;
}

.\!py-0\.5 {
  padding-top: 0.125rem !important;
  padding-bottom: 0.125rem !important;
}

.\!py-2\.5 {
  padding-top: 0.625rem !important;
  padding-bottom: 0.625rem !important;
}

.px-0 {
  padding-left: 0px;
  padding-right: 0px;
}

.px-0\.5 {
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}

.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}

.px-12 {
  padding-left: 3rem;
  padding-right: 3rem;
}

.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}

.px-\[var\(--member-list-card-x\)\] {
  padding-left: var(--member-list-card-x);
  padding-right: var(--member-list-card-x);
}

.px-content-padding-desktop {
  padding-left: 24px;
  padding-right: 24px;
}

.py-0 {
  padding-top: 0px;
  padding-bottom: 0px;
}

.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}

.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}

.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}

.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.py-14 {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}

.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.py-\[1px\] {
  padding-top: 1px;
  padding-bottom: 1px;
}

.py-\[3px\] {
  padding-top: 3px;
  padding-bottom: 3px;
}

.py-px {
  padding-top: 1px;
  padding-bottom: 1px;
}

.\!pt-2\.5 {
  padding-top: 0.625rem !important;
}

.pb-0 {
  padding-bottom: 0px;
}

.pb-0\.5 {
  padding-bottom: 0.125rem;
}

.pb-1 {
  padding-bottom: 0.25rem;
}

.pb-1\.5 {
  padding-bottom: 0.375rem;
}

.pb-2 {
  padding-bottom: 0.5rem;
}

.pb-2\.5 {
  padding-bottom: 0.625rem;
}

.pb-3 {
  padding-bottom: 0.75rem;
}

.pb-4 {
  padding-bottom: 1rem;
}

.pb-5 {
  padding-bottom: 1.25rem;
}

.pb-6 {
  padding-bottom: 1.5rem;
}

.pb-8 {
  padding-bottom: 2rem;
}

.pb-\[max\(0\.5rem\2c env\(safe-area-inset-bottom\2c 0px\)\)\] {
  padding-bottom: max(0.5rem, env(safe-area-inset-bottom,0px));
}

.pb-\[max\(var\(--select-workspace-inset\)\2c env\(safe-area-inset-bottom\)\)\] {
  padding-bottom: max(var(--select-workspace-inset), env(safe-area-inset-bottom));
}

.pb-\[var\(--member-list-card-y\)\] {
  padding-bottom: var(--member-list-card-y);
}

.pb-px {
  padding-bottom: 1px;
}

.pl-0\.5 {
  padding-left: 0.125rem;
}

.pl-1 {
  padding-left: 0.25rem;
}

.pl-1\.5 {
  padding-left: 0.375rem;
}

.pl-10 {
  padding-left: 2.5rem;
}

.pl-2\.5 {
  padding-left: 0.625rem;
}

.pl-3 {
  padding-left: 0.75rem;
}

.pl-3\.5 {
  padding-left: 0.875rem;
}

.pl-4 {
  padding-left: 1rem;
}

.pl-5 {
  padding-left: 1.25rem;
}

.pl-6 {
  padding-left: 1.5rem;
}

.pl-7 {
  padding-left: 1.75rem;
}

.pl-8 {
  padding-left: 2rem;
}

.pl-9 {
  padding-left: 2.25rem;
}

.pl-\[max\(var\(--select-workspace-inset\)\2c env\(safe-area-inset-left\)\)\] {
  padding-left: max(var(--select-workspace-inset), env(safe-area-inset-left));
}

.pr-0\.5 {
  padding-right: 0.125rem;
}

.pr-1 {
  padding-right: 0.25rem;
}

.pr-1\.5 {
  padding-right: 0.375rem;
}

.pr-10 {
  padding-right: 2.5rem;
}

.pr-12 {
  padding-right: 3rem;
}

.pr-14 {
  padding-right: 3.5rem;
}

.pr-2 {
  padding-right: 0.5rem;
}

.pr-3 {
  padding-right: 0.75rem;
}

.pr-5 {
  padding-right: 1.25rem;
}

.pr-8 {
  padding-right: 2rem;
}

.pr-9 {
  padding-right: 2.25rem;
}

.pr-\[max\(var\(--select-workspace-inset\)\2c env\(safe-area-inset-right\)\)\] {
  padding-right: max(var(--select-workspace-inset), env(safe-area-inset-right));
}

.pt-0 {
  padding-top: 0px;
}

.pt-0\.5 {
  padding-top: 0.125rem;
}

.pt-1 {
  padding-top: 0.25rem;
}

.pt-1\.5 {
  padding-top: 0.375rem;
}

.pt-10 {
  padding-top: 2.5rem;
}

.pt-2 {
  padding-top: 0.5rem;
}

.pt-2\.5 {
  padding-top: 0.625rem;
}

.pt-3 {
  padding-top: 0.75rem;
}

.pt-4 {
  padding-top: 1rem;
}

.pt-5 {
  padding-top: 1.25rem;
}

.pt-6 {
  padding-top: 1.5rem;
}

.pt-8 {
  padding-top: 2rem;
}

.pt-\[max\(0px\2c env\(safe-area-inset-top\2c 0px\)\)\] {
  padding-top: max(0px, env(safe-area-inset-top,0px));
}

.pt-\[max\(var\(--select-workspace-inset\)\2c env\(safe-area-inset-top\)\)\] {
  padding-top: max(var(--select-workspace-inset), env(safe-area-inset-top));
}

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.align-top {
  vertical-align: top;
}

.align-middle {
  vertical-align: middle;
}

.font-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.font-sans {
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

.\!text-\[10px\] {
  font-size: 10px !important;
}

.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}

.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-\[0\.6875rem\] {
  font-size: 0.6875rem;
}

.text-\[0\.8rem\] {
  font-size: 0.8rem;
}

.text-\[10px\] {
  font-size: 10px;
}

.text-\[11\.5px\] {
  font-size: 11.5px;
}

.text-\[11px\] {
  font-size: 11px;
}

.text-\[12px\] {
  font-size: 12px;
}

.text-\[13px\] {
  font-size: 13px;
}

.text-\[15px\] {
  font-size: 15px;
}

.text-\[5px\] {
  font-size: 5px;
}

.text-\[6px\] {
  font-size: 6px;
}

.text-\[7px\] {
  font-size: 7px;
}

.text-\[8px\] {
  font-size: 8px;
}

.text-\[9\.5px\] {
  font-size: 9.5px;
}

.text-\[9px\] {
  font-size: 9px;
}

.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}

.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.font-bold {
  font-weight: 700;
}

.font-medium {
  font-weight: 500;
}

.font-normal {
  font-weight: 400;
}

.font-semibold {
  font-weight: 600;
}

.uppercase {
  text-transform: uppercase;
}

.lowercase {
  text-transform: lowercase;
}

.capitalize {
  text-transform: capitalize;
}

.normal-case {
  text-transform: none;
}

.italic {
  font-style: italic;
}

.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}

.\!leading-none {
  line-height: 1 !important;
}

.leading-4 {
  line-height: 1rem;
}

.leading-5 {
  line-height: 1.25rem;
}

.leading-\[18px\] {
  line-height: 18px;
}

.leading-none {
  line-height: 1;
}

.leading-relaxed {
  line-height: 1.625;
}

.leading-snug {
  line-height: 1.375;
}

.leading-tight {
  line-height: 1.25;
}

.tracking-\[0\.08em\] {
  letter-spacing: 0.08em;
}

.tracking-\[0\.12em\] {
  letter-spacing: 0.12em;
}

.tracking-\[0\.14em\] {
  letter-spacing: 0.14em;
}

.tracking-\[0\.35em\] {
  letter-spacing: 0.35em;
}

.tracking-normal {
  letter-spacing: 0em;
}

.tracking-tight {
  letter-spacing: -0.025em;
}

.tracking-wide {
  letter-spacing: 0.025em;
}

.tracking-wider {
  letter-spacing: 0.05em;
}

.tracking-widest {
  letter-spacing: 0.1em;
}

.text-\[var\(--muted\)\] {
  color: var(--muted);
}

.text-\[var\(--text\)\] {
  color: var(--text);
}

.text-\[var\(--text-muted\)\] {
  color: var(--text-muted);
}

.text-accent-foreground {
  color: hsl(var(--accent-foreground));
}

.text-amber-500 {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}

.text-amber-600 {
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}

.text-amber-700 {
  --tw-text-opacity: 1;
  color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}

.text-amber-700\/80 {
  color: rgb(180 83 9 / 0.8);
}

.text-amber-800 {
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}

.text-amber-800\/80 {
  color: rgb(146 64 14 / 0.8);
}

.text-amber-900 {
  --tw-text-opacity: 1;
  color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}

.text-amber-950 {
  --tw-text-opacity: 1;
  color: rgb(69 26 3 / var(--tw-text-opacity, 1));
}

.text-black {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}

.text-blue-400 {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}

.text-blue-500 {
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}

.text-blue-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}

.text-blue-700 {
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}

.text-border {
  color: hsl(var(--border));
}

.text-card-foreground {
  color: hsl(var(--card-foreground));
}

.text-cyan-700 {
  --tw-text-opacity: 1;
  color: rgb(14 116 144 / var(--tw-text-opacity, 1));
}

.text-destructive {
  color: hsl(var(--destructive));
}

.text-destructive-foreground {
  color: hsl(var(--destructive-foreground));
}

.text-emerald-500 {
  --tw-text-opacity: 1;
  color: rgb(16 185 129 / var(--tw-text-opacity, 1));
}

.text-emerald-600 {
  --tw-text-opacity: 1;
  color: rgb(5 150 105 / var(--tw-text-opacity, 1));
}

.text-emerald-700 {
  --tw-text-opacity: 1;
  color: rgb(4 120 87 / var(--tw-text-opacity, 1));
}

.text-emerald-700\/60 {
  color: rgb(4 120 87 / 0.6);
}

.text-emerald-800 {
  --tw-text-opacity: 1;
  color: rgb(6 95 70 / var(--tw-text-opacity, 1));
}

.text-emerald-900 {
  --tw-text-opacity: 1;
  color: rgb(6 78 59 / var(--tw-text-opacity, 1));
}

.text-foreground {
  color: hsl(var(--foreground));
}

.text-foreground\/80 {
  color: hsl(var(--foreground) / 0.8);
}

.text-foreground\/90 {
  color: hsl(var(--foreground) / 0.9);
}

.text-foreground\/95 {
  color: hsl(var(--foreground) / 0.95);
}

.text-green-500 {
  --tw-text-opacity: 1;
  color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}

.text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}

.text-green-700 {
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}

.text-indigo-700 {
  --tw-text-opacity: 1;
  color: rgb(67 56 202 / var(--tw-text-opacity, 1));
}

.text-muted-foreground {
  color: hsl(var(--muted-foreground));
}

.text-muted-foreground\/25 {
  color: hsl(var(--muted-foreground) / 0.25);
}

.text-muted-foreground\/30 {
  color: hsl(var(--muted-foreground) / 0.3);
}

.text-muted-foreground\/40 {
  color: hsl(var(--muted-foreground) / 0.4);
}

.text-muted-foreground\/50 {
  color: hsl(var(--muted-foreground) / 0.5);
}

.text-muted-foreground\/55 {
  color: hsl(var(--muted-foreground) / 0.55);
}

.text-muted-foreground\/60 {
  color: hsl(var(--muted-foreground) / 0.6);
}

.text-muted-foreground\/70 {
  color: hsl(var(--muted-foreground) / 0.7);
}

.text-muted-foreground\/75 {
  color: hsl(var(--muted-foreground) / 0.75);
}

.text-muted-foreground\/80 {
  color: hsl(var(--muted-foreground) / 0.8);
}

.text-muted-foreground\/85 {
  color: hsl(var(--muted-foreground) / 0.85);
}

.text-muted-foreground\/90 {
  color: hsl(var(--muted-foreground) / 0.9);
}

.text-muted-foreground\/95 {
  color: hsl(var(--muted-foreground) / 0.95);
}

.text-orange-600 {
  --tw-text-opacity: 1;
  color: rgb(234 88 12 / var(--tw-text-opacity, 1));
}

.text-orange-700 {
  --tw-text-opacity: 1;
  color: rgb(194 65 12 / var(--tw-text-opacity, 1));
}

.text-pink-700 {
  --tw-text-opacity: 1;
  color: rgb(190 24 93 / var(--tw-text-opacity, 1));
}

.text-popover-foreground {
  color: hsl(var(--popover-foreground));
}

.text-primary {
  color: hsl(var(--primary));
}

.text-primary-foreground {
  color: hsl(var(--primary-foreground));
}

.text-primary\/50 {
  color: hsl(var(--primary) / 0.5);
}

.text-primary\/80 {
  color: hsl(var(--primary) / 0.8);
}

.text-primary\/85 {
  color: hsl(var(--primary) / 0.85);
}

.text-primary\/90 {
  color: hsl(var(--primary) / 0.9);
}

.text-purple-700 {
  --tw-text-opacity: 1;
  color: rgb(126 34 206 / var(--tw-text-opacity, 1));
}

.text-red-300 {
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / var(--tw-text-opacity, 1));
}

.text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}

.text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}

.text-red-600\/60 {
  color: rgb(220 38 38 / 0.6);
}

.text-red-700 {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

.text-red-700\/80 {
  color: rgb(185 28 28 / 0.8);
}

.text-red-800 {
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}

.text-rose-600 {
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}

.text-secondary-foreground {
  color: hsl(var(--secondary-foreground));
}

.text-sky-600 {
  --tw-text-opacity: 1;
  color: rgb(2 132 199 / var(--tw-text-opacity, 1));
}

.text-sky-700 {
  --tw-text-opacity: 1;
  color: rgb(3 105 161 / var(--tw-text-opacity, 1));
}

.text-sky-800 {
  --tw-text-opacity: 1;
  color: rgb(7 89 133 / var(--tw-text-opacity, 1));
}

.text-slate-400 {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}

.text-slate-500 {
  --tw-text-opacity: 1;
  color: rgb(100 116 139 / var(--tw-text-opacity, 1));
}

.text-slate-500\/60 {
  color: rgb(100 116 139 / 0.6);
}

.text-slate-600 {
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}

.text-slate-700 {
  --tw-text-opacity: 1;
  color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

.text-slate-800 {
  --tw-text-opacity: 1;
  color: rgb(30 41 59 / var(--tw-text-opacity, 1));
}

.text-slate-900 {
  --tw-text-opacity: 1;
  color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}

.text-slate-950 {
  --tw-text-opacity: 1;
  color: rgb(2 6 23 / var(--tw-text-opacity, 1));
}

.text-teal-700 {
  --tw-text-opacity: 1;
  color: rgb(15 118 110 / var(--tw-text-opacity, 1));
}

.text-teal-900 {
  --tw-text-opacity: 1;
  color: rgb(19 78 74 / var(--tw-text-opacity, 1));
}

.text-transparent {
  color: transparent;
}

.text-violet-600 {
  --tw-text-opacity: 1;
  color: rgb(124 58 237 / var(--tw-text-opacity, 1));
}

.text-violet-700 {
  --tw-text-opacity: 1;
  color: rgb(109 40 217 / var(--tw-text-opacity, 1));
}

.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.text-white\/70 {
  color: rgb(255 255 255 / 0.7);
}

.text-white\/80 {
  color: rgb(255 255 255 / 0.8);
}

.text-white\/90 {
  color: rgb(255 255 255 / 0.9);
}

.text-zinc-900 {
  --tw-text-opacity: 1;
  color: rgb(24 24 27 / var(--tw-text-opacity, 1));
}

.underline {
  text-decoration-line: underline;
}

.line-through {
  text-decoration-line: line-through;
}

.no-underline {
  text-decoration-line: none;
}

.underline-offset-2 {
  text-underline-offset: 2px;
}

.underline-offset-4 {
  text-underline-offset: 4px;
}

.accent-primary {
  accent-color: hsl(var(--primary));
}

.opacity-0 {
  opacity: 0;
}

.opacity-100 {
  opacity: 1;
}

.opacity-40 {
  opacity: 0.4;
}

.opacity-50 {
  opacity: 0.5;
}

.opacity-60 {
  opacity: 0.6;
}

.opacity-70 {
  opacity: 0.7;
}

.opacity-75 {
  opacity: 0.75;
}

.opacity-80 {
  opacity: 0.8;
}

.opacity-90 {
  opacity: 0.9;
}

.opacity-95 {
  opacity: 0.95;
}

.opacity-\[0\.88\] {
  opacity: 0.88;
}

.\!shadow-none {
  --tw-shadow: 0 0 #0000 !important;
  --tw-shadow-colored: 0 0 #0000 !important;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}

.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-\[0_0_0_1px_hsl\(var\(--primary\)\/0\.06\)\] {
  --tw-shadow: 0 0 0 1px hsl(var(--primary)/0.06);
  --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-\[0_0_10px_rgba\(234\2c 88\2c 12\2c 0\.45\)\] {
  --tw-shadow: 0 0 10px rgba(234,88,12,0.45);
  --tw-shadow-colored: 0 0 10px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-\[0_10px_40px_-12px_rgba\(0\2c 0\2c 0\2c 0\.28\)\2c 0_0_0_1px_rgba\(255\2c 255\2c 255\2c 0\.04\)_inset\] {
  --tw-shadow: 0 10px 40px -12px rgba(0,0,0,0.28),0 0 0 1px rgba(255,255,255,0.04) inset;
  --tw-shadow-colored: 0 10px 40px -12px var(--tw-shadow-color), inset 0 0 0 1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-\[0_12px_40px_rgba\(0\2c 0\2c 0\2c 0\.1\)\] {
  --tw-shadow: 0 12px 40px rgba(0,0,0,0.1);
  --tw-shadow-colored: 0 12px 40px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-\[0_1px_3px_rgba\(0\2c 0\2c 0\2c 0\.14\)\] {
  --tw-shadow: 0 1px 3px rgba(0,0,0,0.14);
  --tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-\[0_25px_50px_-12px_rgba\(0\2c 0\2c 0\2c 0\.35\)\] {
  --tw-shadow: 0 25px 50px -12px rgba(0,0,0,0.35);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-inner {
  --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-none {
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-black\/20 {
  --tw-shadow-color: rgb(0 0 0 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}

.shadow-black\/\[0\.12\] {
  --tw-shadow-color: rgb(0 0 0 / 0.12);
  --tw-shadow: var(--tw-shadow-colored);
}

.shadow-primary\/15 {
  --tw-shadow-color: hsl(var(--primary) / 0.15);
  --tw-shadow: var(--tw-shadow-colored);
}

.shadow-primary\/20 {
  --tw-shadow-color: hsl(var(--primary) / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}

.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.outline {
  outline-style: solid;
}

.ring {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring-0 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring-1 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring-4 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.ring-inset {
  --tw-ring-inset: inset;
}

.ring-amber-500\/20 {
  --tw-ring-color: rgb(245 158 11 / 0.2);
}

.ring-amber-500\/30 {
  --tw-ring-color: rgb(245 158 11 / 0.3);
}

.ring-amber-500\/35 {
  --tw-ring-color: rgb(245 158 11 / 0.35);
}

.ring-amber-500\/45 {
  --tw-ring-color: rgb(245 158 11 / 0.45);
}

.ring-background {
  --tw-ring-color: hsl(var(--background));
}

.ring-black\/5 {
  --tw-ring-color: rgb(0 0 0 / 0.05);
}

.ring-border\/40 {
  --tw-ring-color: hsl(var(--border) / 0.4);
}

.ring-border\/45 {
  --tw-ring-color: hsl(var(--border) / 0.45);
}

.ring-border\/50 {
  --tw-ring-color: hsl(var(--border) / 0.5);
}

.ring-border\/60 {
  --tw-ring-color: hsl(var(--border) / 0.6);
}

.ring-border\/70 {
  --tw-ring-color: hsl(var(--border) / 0.7);
}

.ring-border\/80 {
  --tw-ring-color: hsl(var(--border) / 0.8);
}

.ring-card {
  --tw-ring-color: hsl(var(--card));
}

.ring-destructive\/30 {
  --tw-ring-color: hsl(var(--destructive) / 0.3);
}

.ring-emerald-500\/25 {
  --tw-ring-color: rgb(16 185 129 / 0.25);
}

.ring-emerald-500\/40 {
  --tw-ring-color: rgb(16 185 129 / 0.4);
}

.ring-primary {
  --tw-ring-color: hsl(var(--primary));
}

.ring-primary\/10 {
  --tw-ring-color: hsl(var(--primary) / 0.1);
}

.ring-primary\/15 {
  --tw-ring-color: hsl(var(--primary) / 0.15);
}

.ring-primary\/20 {
  --tw-ring-color: hsl(var(--primary) / 0.2);
}

.ring-primary\/25 {
  --tw-ring-color: hsl(var(--primary) / 0.25);
}

.ring-primary\/30 {
  --tw-ring-color: hsl(var(--primary) / 0.3);
}

.ring-primary\/35 {
  --tw-ring-color: hsl(var(--primary) / 0.35);
}

.ring-primary\/40 {
  --tw-ring-color: hsl(var(--primary) / 0.4);
}

.ring-primary\/50 {
  --tw-ring-color: hsl(var(--primary) / 0.5);
}

.ring-sky-500\/25 {
  --tw-ring-color: rgb(14 165 233 / 0.25);
}

.ring-offset-1 {
  --tw-ring-offset-width: 1px;
}

.ring-offset-2 {
  --tw-ring-offset-width: 2px;
}

.ring-offset-background {
  --tw-ring-offset-color: hsl(var(--background));
}

.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.blur-\[3px\] {
  --tw-blur: blur(3px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.blur-md {
  --tw-blur: blur(12px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.brightness-75 {
  --tw-brightness: brightness(.75);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.drop-shadow-sm {
  --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.backdrop-blur-md {
  --tw-backdrop-blur: blur(12px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.backdrop-filter {
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.\!transition-none {
  transition-property: none !important;
}

.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[background-color\2c box-shadow\] {
  transition-property: background-color,box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[background-color\2c color\2c box-shadow\] {
  transition-property: background-color,color,box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[background-color\2c transform\] {
  transition-property: background-color,transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[box-shadow\2c background-color\2c opacity\2c transform\] {
  transition-property: box-shadow,background-color,opacity,transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[box-shadow\2c background-color\2c ring-color\] {
  transition-property: box-shadow,background-color,ring-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[box-shadow\2c transform\2c border-color\] {
  transition-property: box-shadow,transform,border-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[color\2c background-color\2c border-color\2c box-shadow\2c transform\2c opacity\] {
  transition-property: color,background-color,border-color,box-shadow,transform,opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[color\2c max-height\] {
  transition-property: color,max-height;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[filter\] {
  transition-property: filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[grid-template-rows\] {
  transition-property: grid-template-rows;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[max-height\2c opacity\2c padding\2c margin-top\] {
  transition-property: max-height,opacity,padding,margin-top;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[max-height\] {
  transition-property: max-height;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[opacity\2c background-color\2c color\2c transform\] {
  transition-property: opacity,background-color,color,transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[transform\2c background-color\2c color\] {
  transition-property: transform,background-color,color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[transform\2c background-color\] {
  transition-property: transform,background-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[transform\2c box-shadow\2c background-color\] {
  transition-property: transform,box-shadow,background-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[transform\2c color\] {
  transition-property: transform,color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[transform\2c opacity\] {
  transition-property: transform,opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-\[width\] {
  transition-property: width;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-none {
  transition-property: none;
}

.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.duration-100 {
  transition-duration: 100ms;
}

.duration-150 {
  transition-duration: 150ms;
}

.duration-200 {
  transition-duration: 200ms;
}

.duration-300 {
  transition-duration: 300ms;
}

.duration-\[220ms\] {
  transition-duration: 220ms;
}

.duration-\[280ms\] {
  transition-duration: 280ms;
}

.duration-fade {
  transition-duration: 75ms;
}

.ease-\[cubic-bezier\(0\.22\2c 1\2c 0\.36\2c 1\)\] {
  transition-timing-function: cubic-bezier(0.22,1,0.36,1);
}

.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.ease-out {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

.will-change-\[transform\2c opacity\] {
  will-change: transform,opacity;
}

/* Accordion animations */

@keyframes accordion-down {
    from {
      height: 0;
    }
    to {
      height: var(--radix-accordion-content-height);
    }
  }

@keyframes accordion-up {
    from {
      height: var(--radix-accordion-content-height);
    }
    to {
      height: 0;
    }
  }

/* Brand logo loading: subtle ring spinner + pulsing image */

@keyframes brand-logo-neon-spin {
    to {
      transform: rotate(360deg);
    }
  }

@keyframes brand-logo-pulse {
    0%, 100% {
      opacity: 1;
    }
    50% {
      opacity: 0.6;
    }
  }

.brand-logo-neon-wrap {
    /* Tight around h-24 (6rem) logo: ~4px gap between ring and image */
    width: 7rem;
    height: 7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

.brand-logo-neon-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: hsl(var(--primary) / 0.5);
    animation: brand-logo-neon-spin 1s linear infinite;
  }

.brand-logo-pulse {
    animation: brand-logo-pulse 1.2s ease-in-out infinite;
  }

/* Sidebar collapse button: hover pulse, no background */

@keyframes sidebar-collapse-pulse {
    0%, 100% {
      transform: scale(1);
    }
    50% {
      transform: scale(1.12);
    }
  }

.sidebar-collapse-btn:hover {
    background-color: transparent !important;
  }

.sidebar-collapse-btn:hover svg {
    animation: sidebar-collapse-pulse 0.6s ease-in-out infinite;
  }

/* ============================================================================
   * TYPOGRAPHY - Stable page title size in desktop app (avoid flip on exit)
   * ============================================================================
   * In Tauri, page title h1s (text-2xl sm:text-[32px]) must not change size when
   * exiting the page. Overrides above are inside @media (max-width: 967px), so
   * at desktop width they don't apply and Tailwind sm: can flip during layout
   * changes (unmount/repaint). Always force 32px in desktop-app for these h1s.
   */

html.desktop-app:not(.tauri-transparent) h1[class*="text-2xl"][class*="sm:text"] {
    font-size: 2rem !important; /* 32px */
    line-height: 1.2 !important;
  }

html.desktop-app:not(.tauri-transparent) h1.text-2xl {
    font-size: 2rem !important; /* 32px */
    line-height: 1.2 !important;
  }

/* Apply at all viewport sizes in desktop-app so no flip on page exit. */

/* ============================================================================
   * FLEXBOX - Override base classes that have sm: variants
   * ============================================================================ */

/* Flex Direction: Override flex-col only when sm:flex-row exists (same as browser desktop) */

html.desktop-app:not(.tauri-transparent) [class*="flex-col"][class*="sm:flex-row"] {
    flex-direction: row !important;
  }

/* Align Items: Override items-start only when sm:items-center exists (same as browser desktop) */

html.desktop-app:not(.tauri-transparent) [class*="items-start"][class*="sm:items-center"] {
    align-items: center !important;
  }

/* Align Items: Override items-stretch when sm:items-end exists */

html.desktop-app:not(.tauri-transparent) [class*="items-stretch"][class*="sm:items-end"] {
    align-items: flex-end !important;
  }

/* Ensure items-center works correctly */

html.desktop-app:not(.tauri-transparent) .items-center {
    align-items: center !important;
  }

html.desktop-app:not(.tauri-transparent) .\!items-center {
    align-items: center !important;
  }

/* Justify Content: Ensure justify-between works correctly */

html.desktop-app:not(.tauri-transparent) .justify-between {
    justify-content: space-between !important;
  }

html.desktop-app:not(.tauri-transparent) .\!justify-between {
    justify-content: space-between !important;
  }

/* Justify Content: Ensure justify-center works correctly */

html.desktop-app:not(.tauri-transparent) .justify-center {
    justify-content: center !important;
  }

/* Justify Content: Ensure justify-start works correctly */

html.desktop-app:not(.tauri-transparent) .justify-start {
    justify-content: flex-start !important;
  }

/* Flex: Override flex-1 only when sm:flex-initial exists (same as browser desktop) */

html.desktop-app:not(.tauri-transparent) [class*="flex-1"][class*="sm:flex-initial"] {
    flex: 0 1 auto !important; /* flex-initial */
  }

html.desktop-app:not(.tauri-transparent) [class*="sm:flex-initial"] {
    flex: 0 1 auto !important;
  }

/* ============================================================================
   * WIDTH - Override base classes that have sm: variants
   * ============================================================================ */

/* Width: Override w-full when sm:w-auto exists */

html.desktop-app:not(.tauri-transparent) [class*="w-full"][class*="sm:w-auto"] {
    width: auto !important;
  }

/* Width: Override w-full when sm:w-[200px] exists */

html.desktop-app:not(.tauri-transparent) [class*="w-full"][class*="sm:w-\[200px\]"] {
    width: 200px !important;
  }

/* Width: Override w-full when sm:min-w-0 exists */

html.desktop-app:not(.tauri-transparent) [class*="w-full"][class*="sm:min-w-0"] {
    width: 100% !important;
    min-width: 0 !important;
  }

/* Card components and grid items keep w-full (same as browser desktop) */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"][class*="border"][class*="w-full"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"][class*="w-full"],
  html.desktop-app:not(.tauri-transparent) [class*="h-full"][class*="w-full"] {
    width: 100% !important;
  }

/* Grid items should keep w-full */

html.desktop-app:not(.tauri-transparent) .grid > [class*="w-full"],
  html.desktop-app:not(.tauri-transparent) .grid > div[class*="w-full"] {
    width: 100% !important;
  }

/* Buttons inside flex-1 links should also keep w-full */

html.desktop-app:not(.tauri-transparent) a[class*="flex-1"] button[class*="w-full"],
  html.desktop-app:not(.tauri-transparent) [class*="flex-1"] button[class*="w-full"] {
    width: 100% !important;
  }

/* ============================================================================
   * SPACING - Padding - Override base classes that have sm: variants
   * ============================================================================ */

/* Padding: Override p-4 only when sm:p-5 or sm:p-6 exists (same as browser desktop) */

html.desktop-app:not(.tauri-transparent) [class*="p-4"][class*="sm:p-5"],
  html.desktop-app:not(.tauri-transparent) [class*="p-4"][class*="sm:p-6"] {
    padding: 1.5rem !important; /* 24px - sm:p-6 value */
  }

/* Padding: Override p-6 when sm:p-10 exists */

html.desktop-app:not(.tauri-transparent) [class*="p-6"][class*="sm:p-10"] {
    padding: 2.5rem !important; /* 40px */
  }

/* Padding Bottom: Ensure pb-3, pb-4 work correctly */

html.desktop-app:not(.tauri-transparent) [class*="pb-3"] {
    padding-bottom: 0.75rem !important; /* 12px */
  }

html.desktop-app:not(.tauri-transparent) [class*="pb-4"] {
    padding-bottom: 1rem !important; /* 16px */
  }

/* Padding Top: Ensure pt-0 works correctly */

html.desktop-app:not(.tauri-transparent) [class*="pt-0"] {
    padding-top: 0 !important;
  }

/* ============================================================================
   * SPACING - Margin - Override base classes that have sm: variants
   * ============================================================================ */

/* Margin: Override mb-6 only when sm:mb-8 exists (same as browser desktop; mb-6 = 1.5rem, sm:mb-8 = 2rem) */

html.desktop-app:not(.tauri-transparent) [class*="mb-6"][class*="sm:mb-8"] {
    margin-bottom: 2rem !important; /* 32px */
  }

/* ============================================================================
   * TYPOGRAPHY - Override base classes that have sm: variants
   * ============================================================================
   * (h1 text-2xl / sm:text-[32px] overrides moved to top of file for stable size in desktop-app) */

/* Text Size: Override text-lg only when sm:text-xl exists (same as browser desktop) */

html.desktop-app:not(.tauri-transparent) [class*="text-lg"][class*="sm:text-xl"] {
    font-size: 1.25rem !important; /* 20px */
    line-height: 1.75rem !important; /* 28px */
  }

/* ============================================================================
   * GAP - Context-specific overrides
   * ============================================================================ */

/* Gap: Override gap-3 when sm:gap-0 exists (pagination) */

html.desktop-app:not(.tauri-transparent) .pagination [class*="gap-3"][class*="sm:gap-0"] {
    gap: 0 !important;
  }

/* Also override standalone gap-3 in pagination */

html.desktop-app:not(.tauri-transparent) .pagination .gap-3 {
    gap: 0 !important;
  }

/* General gap-3 when sm:gap-0 exists */

html.desktop-app:not(.tauri-transparent) [class*="gap-3"][class*="sm:gap-0"] {
    gap: 0 !important;
  }

/* ============================================================================
   * CRITICAL: Force ALL Tailwind responsive variants to apply in desktop app
   * ============================================================================ */

/* In desktop app, ALL responsive variants (sm:, md:, lg:, xl:) apply as if
   * viewport is always large enough. No media wrapper = stable layout on exit.
   */

/* ============================================================================
   * CARD FLEXBOX - Preserve card vertical layout
   * ============================================================================ */

/* EXCEPTION: Card components need flex-col for vertical stacking */

/* These must come AFTER the general override to have higher specificity */

/* Target elements that have both Card styling classes AND flex-col */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"][class*="border"][class*="flex-col"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"][class*="flex-col"],
  html.desktop-app:not(.tauri-transparent) [class*="shadow-sm"][class*="flex-col"],
  html.desktop-app:not(.tauri-transparent) [class*="shadow-md"][class*="flex-col"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"][class*="flex-col"] {
    flex-direction: column !important;
  }

/* Card headers should keep items-start */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="items-start"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="items-start"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="items-start"],
  html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="flex"][class*="items-start"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="flex"][class*="items-start"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="flex"][class*="items-start"] {
    align-items: flex-start !important;
  }

/* EXCEPTION: Card components need flex-1 for vertical layout (CardContent) */

/* These must come AFTER the general override to have higher specificity */

/* Target elements that have both Card styling classes AND flex-1 */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"][class*="border"][class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"][class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"][class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="shadow-sm"][class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="shadow-md"][class*="flex-1"] {
    flex: 1 1 0% !important; /* Keep flex-1 behavior for cards */
  }

/* EXCEPTION: Buttons and links inside cards need flex-1 for equal distribution */

/* Action buttons in card footers should have equal width */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] button[class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] button[class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] button[class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] a[class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] a[class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] a[class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="flex"][class*="gap-2"] button[class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="flex"][class*="gap-2"] button[class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="flex"][class*="gap-2"] button[class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="flex"][class*="gap-2"] a[class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="flex"][class*="gap-2"] a[class*="flex-1"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="flex"][class*="gap-2"] a[class*="flex-1"] {
    flex: 1 1 0% !important; /* Keep flex-1 behavior for buttons/links in cards */
  }

/* ============================================================================
   * CARD GAP - Ensure gap utilities work correctly in cards
   * ============================================================================ */

/* Cards need gap-3, gap-2, gap-1.5 to work correctly */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="gap-3"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="gap-3"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="gap-3"] {
    gap: 0.75rem !important; /* gap-3 = 12px */
  }

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="gap-2"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="gap-2"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="gap-2"] {
    gap: 0.5rem !important; /* gap-2 = 8px */
  }

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="gap-1\.5"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="gap-1\.5"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="gap-1\.5"] {
    gap: 0.375rem !important; /* gap-1.5 = 6px */
  }

/* ============================================================================
   * CARD SPACING - Ensure space-y utilities work correctly in cards
   * ============================================================================ */

/* CardHeader uses space-y-1.5 */

/* Ensure space-y utilities work correctly - they apply margin-top to children */

html.desktop-app:not(.tauri-transparent) [class*="space-y-1\.5"] > * + * {
    margin-top: 0.375rem !important; /* space-y-1.5 = 6px */
  }

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="space-y-1\.5"] > * + *,
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="space-y-1\.5"] > * + *,
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="space-y-1\.5"] > * + * {
    margin-top: 0.375rem !important; /* space-y-1.5 = 6px */
  }

/* ============================================================================
   * CARD FLEX UTILITIES - Ensure flex utilities work correctly in cards
   * ============================================================================ */

/* min-w-0 needs to work correctly in cards */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="min-w-0"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="min-w-0"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="min-w-0"] {
    min-width: 0 !important;
  }

/* flex-shrink-0 needs to work correctly in cards */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="flex-shrink-0"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="flex-shrink-0"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="flex-shrink-0"] {
    flex-shrink: 0 !important;
  }

/* flex-wrap needs to work correctly in cards */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="flex-wrap"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="flex-wrap"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="flex-wrap"] {
    flex-wrap: wrap !important;
  }

/* mt-auto needs to work correctly in cards */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="mt-auto"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="mt-auto"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="mt-auto"] {
    margin-top: auto !important;
  }

/* ============================================================================
   * CARD TEXT WRAPPING - Prevent unwanted text wrapping in cards
   * ============================================================================ */

/* Explicitly allow whitespace-nowrap to work in cards */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] [class*="whitespace-nowrap"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] [class*="whitespace-nowrap"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] [class*="whitespace-nowrap"] {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

/* ============================================================================
   * CARD PREMIUM DESIGN - Enhanced shadows and gradients
   * ============================================================================ */

/* Ensure premium shadow effects work correctly */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"][class*="hover:shadow-xl"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"][class*="hover:shadow-xl"],
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"][class*="hover:shadow-xl"] {
    /* Hover shadow is handled by Tailwind, but ensure it works */
  }

/* Ensure gradient backgrounds work correctly */

html.desktop-app:not(.tauri-transparent) [class*="bg-gradient-to-br"] {
    background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)) !important;
  }

/* Ensure ring utilities work correctly */

html.desktop-app:not(.tauri-transparent) [class*="ring-1"] {
    box-shadow: 0 0 0 1px var(--tw-ring-color) !important;
  }

/* Ensure border opacity works correctly */

html.desktop-app:not(.tauri-transparent) [class*="border-slate-200/60"],
  html.desktop-app:not(.tauri-transparent) [class*="border-slate-100/50"],
  html.desktop-app:not(.tauri-transparent) [class*="border-primary/20"],
  html.desktop-app:not(.tauri-transparent) [class*="border-primary/40"],
  html.desktop-app:not(.tauri-transparent) [class*="border-blue-100/50"] {
    /* Border opacity is handled by Tailwind */
  }

/* Ensure background opacity works correctly */

html.desktop-app:not(.tauri-transparent) [class*="bg-primary/5"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-primary/3"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-primary/10"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-primary/15"],
  html.desktop-app:not(.tauri-transparent) [class*="bg-primary/20"],
  html.desktop-app:not(.tauri-transparent) [class*="from-blue-50/50"],
  html.desktop-app:not(.tauri-transparent) [class*="to-indigo-50/30"],
  html.desktop-app:not(.tauri-transparent) [class*="to-slate-50/50"] {
    /* Background opacity is handled by Tailwind */
  }

/* ============================================================================
   * CARD NESTED GRIDS - Ensure nested grids inside cards work correctly
   * ============================================================================ */

/* Nested grids inside cards - ensure grid-cols-2 works correctly */

/* These are non-responsive grids (no breakpoint prefix) */

html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] .grid[class*="grid-cols-2"]:not([class*="md:grid-cols"]):not([class*="lg:grid-cols"]):not([class*="xl:grid-cols"]):not([class*="sm:grid-cols"]),
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] .grid[class*="grid-cols-2"]:not([class*="md:grid-cols"]):not([class*="lg:grid-cols"]):not([class*="xl:grid-cols"]):not([class*="sm:grid-cols"]),
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] .grid[class*="grid-cols-2"]:not([class*="md:grid-cols"]):not([class*="lg:grid-cols"]):not([class*="xl:grid-cols"]):not([class*="sm:grid-cols"]) {
    width: 100% !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

/* ============================================================================
   * CARD WIDTH - Ensure cards fill their grid cell properly
   * ============================================================================ */

/* Cards inside grid should fill their cell width */

html.desktop-app:not(.tauri-transparent) .grid > div > [class*="rounded-lg"][class*="border"],
  html.desktop-app:not(.tauri-transparent) .grid > div > [class*="bg-card"],
  html.desktop-app:not(.tauri-transparent) .grid > [class*="h-full"] > [class*="rounded-lg"],
  html.desktop-app:not(.tauri-transparent) .grid > div[class*="h-full"] > [class*="rounded-lg"] {
    width: 100% !important;
    min-width: 0 !important; /* Allow card to shrink if needed */
    max-width: 100% !important; /* Prevent overflow */
  }

/* ============================================================================
   * GRID - Override grid columns for responsive breakpoints
   * ============================================================================ */

/* Grid: Force responsive grid columns to apply in desktop app based on window width */

/* Use media queries matching Tailwind breakpoints: sm:640px, md:968px, lg:1280px, 2xl:1536px, xl:1644px */

/* CRITICAL: These rules must override Tailwind's default responsive behavior */

/* Base: grid-cols-1 (applies by default) */

/* No override needed - this is the base state */

/* sm: breakpoint (640px) - Apply sm:grid-cols-2 when window >= 640px */

/* Only apply if no higher breakpoints are present */

@media (min-width: 640px) {
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="grid-cols-1"][class*="sm:grid-cols-2"]:not([class*="md:grid-cols"]):not([class*="lg:grid-cols"]):not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
  }

/* md: breakpoint (968px) - Apply md:grid-cols-2 when window >= 968px */

/* This overrides sm:grid-cols-2 if both are present */

@media (min-width: 968px) {
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="grid-cols-1"][class*="md:grid-cols-2"]:not([class*="lg:grid-cols"]):not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="sm:grid-cols-2"][class*="md:grid-cols-2"]:not([class*="lg:grid-cols"]):not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
  }

/* lg: breakpoint (1280px) - Apply lg:grid-cols-3 when window >= 1280px */

/* This overrides md:grid-cols-2 and sm:grid-cols-2 if present */

@media (min-width: 1280px) {
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="grid-cols-1"][class*="lg:grid-cols-3"]:not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="sm:grid-cols-2"][class*="lg:grid-cols-3"]:not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="md:grid-cols-2"][class*="lg:grid-cols-3"]:not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="lg:grid-cols-6"]:not([class*="2xl:grid-cols"]):not([class*="xl:grid-cols"]) {
      grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
  }

/* 2xl: breakpoint (1536px) - Apply 2xl: when window >= 1536px */

/* Overrides lg:, overridden by xl: */

@media (min-width: 1536px) {
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="2xl:grid-cols-2"]:not([class*="xl:grid-cols"]) {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="2xl:grid-cols-3"]:not([class*="xl:grid-cols"]) {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="2xl:grid-cols-4"]:not([class*="xl:grid-cols"]) {
      grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
  }

/* xl: breakpoint (1644px) - Apply xl:grid-cols-N when window >= 1644px */

/* This overrides all lower breakpoints - highest priority */

@media (min-width: 1644px) {
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="xl:grid-cols-2"] {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="xl:grid-cols-3"] {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="xl:grid-cols-4"] {
      grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="xl:grid-cols-5"] {
      grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }
    html.desktop-app:not(.tauri-transparent) [class*="grid"][class*="xl:grid-cols-6"] {
      grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
  }

.\[--member-list-card-x\:0\.75rem\] {
  --member-list-card-x: 0.75rem;
}

.\[--member-list-card-y\:0\.5rem\] {
  --member-list-card-y: 0.5rem;
}

.\[--scroll-count-ring\:var\(--surface\2c hsl\(var\(--background\)\)\)\] {
  --scroll-count-ring: var(--surface,hsl(var(--background)));
}

.\[--tw-ring-color\:var\(--scroll-count-ring\)\] {
  --tw-ring-color: var(--scroll-count-ring);
}

.\[-moz-user-select\:none\] {
  -moz-user-select: none;
}

.\[-ms-overflow-style\:none\] {
  -ms-overflow-style: none;
}

.\[-webkit-backdrop-filter\:blur\(16px\)\] {
  -webkit-backdrop-filter: blur(16px);
}

.\[-webkit-backdrop-filter\:blur\(2px\)\] {
  -webkit-backdrop-filter: blur(2px);
}

.\[-webkit-overflow-scrolling\:touch\] {
  -webkit-overflow-scrolling: touch;
}

.\[-webkit-user-select\:none\] {
  -webkit-user-select: none;
}

.\[backdrop-filter\:blur\(16px\)\] {
  -webkit-backdrop-filter: blur(16px);
          backdrop-filter: blur(16px);
}

.\[backdrop-filter\:blur\(2px\)\] {
  -webkit-backdrop-filter: blur(2px);
          backdrop-filter: blur(2px);
}

.\[background\:color-mix\(in_srgb\2c var\(--surface\2c hsl\(var\(--background\)\)\)_88\%\2c transparent\)\] {
  background: color-mix(in srgb,var(--surface,hsl(var(--background))) 88%,transparent);
}

.\[background\:var\(--surface\2c hsl\(var\(--background\)\)\)\] {
  background: var(--surface,hsl(var(--background)));
}

.\[background\:var\(--surface-floating\2c var\(--surface\2c hsl\(var\(--background\)\)\)\)\] {
  background: var(--surface-floating,var(--surface,hsl(var(--background))));
}

.\[border-color\:color-mix\(in_srgb\2c var\(--hover-surface-light\2c hsl\(var\(--border\)\)\)_85\%\2c transparent\)\] {
  border-color: color-mix(in srgb,var(--hover-surface-light,hsl(var(--border))) 85%,transparent);
}

.\[border-color\:var\(--hover-surface-light\2c hsl\(var\(--border\)\)\)\] {
  border-color: var(--hover-surface-light,hsl(var(--border)));
}

.\[filter\:blur\(3px\)\] {
  filter: blur(3px);
}

.\[grid-auto-rows\:minmax\(0\2c auto\)\] {
  grid-auto-rows: minmax(0,auto);
}

.\[grid-column\:var\(--grid-col\)\] {
  grid-column: var(--grid-col);
}

.\[overflow-wrap\:anywhere\] {
  overflow-wrap: anywhere;
}

.\[scrollbar-width\:none\] {
  scrollbar-width: none;
}

.\[scrollbar-width\:thin\] {
  scrollbar-width: thin;
}

.\[transition-timing-function\:cubic-bezier\(0\.16\2c 1\2c 0\.3\2c 1\)\] {
  transition-timing-function: cubic-bezier(0.16,1,0.3,1);
}

.\[transition-timing-function\:cubic-bezier\(0\.4\2c 0\2c 1\2c 1\)\] {
  transition-timing-function: cubic-bezier(0.4,0,1,1);
}

.\[user-select\:none\] {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

/* Processos list: compact toolbar + stage tabs. Tauri (styles/tauri/components.css) forces
 * min-height/min-width 48px !important on all inline-flex buttons; specificity beats Tailwind.
 * Unset here so h-[22px] / max-h from components apply (matches calendar-page-fill button reset). */

html.desktop-app:not(.tauri-transparent)
  body
  [data-testid='processos-list-toolbar']
  button[class*='inline-flex'],
html.desktop-app:not(.tauri-transparent)
  body
  [data-testid='processos-list-stage-tabs']
  button[class*='inline-flex'] {
  min-height: unset !important;
  min-width: unset !important;
}

/* Chat panel roster row hover (after Tailwind + Tauri so it always wins). */

@media (hover: hover) {
  [data-component='ChatPanel'] [data-component='ChatPanelRosterRow']:hover,
  [data-component='ChatPanel'] [data-component='ChatPanelRosterRow']:focus-visible {
    background-color: color-mix(
      in srgb,
      var(--surface-floating, hsl(var(--background))) 86%,
      hsl(var(--foreground)) 14%
    ) !important;
  }
}

.dark [data-component='ChatPanel'] [data-component='ChatPanelRosterRow']:hover,
.dark [data-component='ChatPanel'] [data-component='ChatPanelRosterRow']:focus-visible,
[data-theme='dark'] [data-component='ChatPanel'] [data-component='ChatPanelRosterRow']:hover,
[data-theme='dark'] [data-component='ChatPanel'] [data-component='ChatPanelRosterRow']:focus-visible,
[data-theme$='-dark'] [data-component='ChatPanel'] [data-component='ChatPanelRosterRow']:hover,
[data-theme$='-dark'] [data-component='ChatPanel'] [data-component='ChatPanelRosterRow']:focus-visible {
  background-color: hsl(var(--accent)) !important;
}

html.desktop-app:not(.tauri-transparent)
  body
  [data-component='ChatPanel']
  [data-component='ChatPanelRosterRow'] {
  min-height: unset !important;
  min-width: unset !important;
}

/* Open chat window: pulse ring when a peer message arrives before hover/click mark-read. */

@keyframes chat-window-unread-attention {
  0%,
  100% {
    box-shadow:
      0 0 0 0 hsl(var(--primary) / 0),
      0 25px 50px -12px rgb(0 0 0 / 0.12);
  }
  50% {
    box-shadow:
      0 0 0 3px hsl(var(--primary) / 0.42),
      0 25px 50px -12px rgb(0 0 0 / 0.18);
  }
}

[data-component='ChatWindow'].chat-window-unread-attention,
[data-component='ChatDockMinimizedTab'].chat-dock-minimized-unread-attention {
  animation: chat-window-unread-attention 1.15s ease-in-out infinite;
}

.dark [data-component='ChatWindow'].chat-window-unread-attention,
.dark [data-component='ChatDockMinimizedTab'].chat-dock-minimized-unread-attention,
[data-theme$='-dark'] [data-component='ChatWindow'].chat-window-unread-attention,
[data-theme$='-dark'] [data-component='ChatDockMinimizedTab'].chat-dock-minimized-unread-attention {
  animation-name: chat-window-unread-attention;
}

.marker\:text-primary *::marker {
  color: hsl(var(--primary));
}

.marker\:text-primary::marker {
  color: hsl(var(--primary));
}

.file\:mr-2::file-selector-button {
  margin-right: 0.5rem;
}

.file\:mr-3::file-selector-button {
  margin-right: 0.75rem;
}

.file\:border-0::file-selector-button {
  border-width: 0px;
}

.file\:bg-transparent::file-selector-button {
  background-color: transparent;
}

.file\:text-sm::file-selector-button {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.file\:font-medium::file-selector-button {
  font-weight: 500;
}

.placeholder\:text-muted-foreground::-moz-placeholder {
  color: hsl(var(--muted-foreground));
}

.placeholder\:text-muted-foreground::placeholder {
  color: hsl(var(--muted-foreground));
}

.placeholder\:text-muted-foreground\/60::-moz-placeholder {
  color: hsl(var(--muted-foreground) / 0.6);
}

.placeholder\:text-muted-foreground\/60::placeholder {
  color: hsl(var(--muted-foreground) / 0.6);
}

.placeholder\:text-muted-foreground\/80::-moz-placeholder {
  color: hsl(var(--muted-foreground) / 0.8);
}

.placeholder\:text-muted-foreground\/80::placeholder {
  color: hsl(var(--muted-foreground) / 0.8);
}

.after\:absolute::after {
  content: var(--tw-content);
  position: absolute;
}

.after\:inset-y-0::after {
  content: var(--tw-content);
  top: 0px;
  bottom: 0px;
}

.after\:left-1\/2::after {
  content: var(--tw-content);
  left: 50%;
}

.after\:w-1::after {
  content: var(--tw-content);
  width: 0.25rem;
}

.after\:-translate-x-1\/2::after {
  content: var(--tw-content);
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.first\:mt-0:first-child {
  margin-top: 0px;
}

.first\:border-t-0:first-child {
  border-top-width: 0px;
}

.first\:pt-0:first-child {
  padding-top: 0px;
}

.last\:mb-0:last-child {
  margin-bottom: 0px;
}

.last\:border-0:last-child {
  border-width: 0px;
}

.last\:border-b-0:last-child {
  border-bottom-width: 0px;
}

.last\:pb-0:last-child {
  padding-bottom: 0px;
}

.focus-within\:relative:focus-within {
  position: relative;
}

.focus-within\:z-20:focus-within {
  z-index: 20;
}

.focus-within\:border-primary\/55:focus-within {
  border-color: hsl(var(--primary) / 0.55);
}

.hover\:-translate-y-0\.5:hover {
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:\!scale-100:hover {
  --tw-scale-x: 1 !important;
  --tw-scale-y: 1 !important;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}

.hover\:scale-100:hover {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-105:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-\[1\.01\]:hover {
  --tw-scale-x: 1.01;
  --tw-scale-y: 1.01;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-\[1\.02\]:hover {
  --tw-scale-x: 1.02;
  --tw-scale-y: 1.02;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-\[1\.03\]:hover {
  --tw-scale-x: 1.03;
  --tw-scale-y: 1.03;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:animate-none:hover {
  animation: none;
}

@keyframes pulse-minimal {

  0%, 100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.04);
  }
}

.hover\:animate-pulse-minimal:hover {
  animation: pulse-minimal 1.2s ease-in-out infinite;
}

.hover\:\!border-0:hover {
  border-width: 0px !important;
}

.hover\:border-border:hover {
  border-color: hsl(var(--border));
}

.hover\:border-border\/80:hover {
  border-color: hsl(var(--border) / 0.8);
}

.hover\:border-destructive\/40:hover {
  border-color: hsl(var(--destructive) / 0.4);
}

.hover\:border-destructive\/55:hover {
  border-color: hsl(var(--destructive) / 0.55);
}

.hover\:border-emerald-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(52 211 153 / var(--tw-border-opacity, 1));
}

.hover\:border-green-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(74 222 128 / var(--tw-border-opacity, 1));
}

.hover\:border-input\/80:hover {
  border-color: hsl(var(--input) / 0.8);
}

.hover\:border-muted-foreground\/30:hover {
  border-color: hsl(var(--muted-foreground) / 0.3);
}

.hover\:border-orange-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(251 146 60 / var(--tw-border-opacity, 1));
}

.hover\:border-primary\/30:hover {
  border-color: hsl(var(--primary) / 0.3);
}

.hover\:border-primary\/35:hover {
  border-color: hsl(var(--primary) / 0.35);
}

.hover\:border-primary\/40:hover {
  border-color: hsl(var(--primary) / 0.4);
}

.hover\:border-red-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));
}

.hover\:border-red-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(248 113 113 / var(--tw-border-opacity, 1));
}

.hover\:border-slate-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(148 163 184 / var(--tw-border-opacity, 1));
}

.hover\:\!bg-amber-500\/25:hover {
  background-color: rgb(245 158 11 / 0.25) !important;
}

.hover\:\!bg-emerald-500\/25:hover {
  background-color: rgb(16 185 129 / 0.25) !important;
}

.hover\:\!bg-muted:hover {
  background-color: hsl(var(--muted)) !important;
}

.hover\:\!bg-primary:hover {
  background-color: hsl(var(--primary)) !important;
}

.hover\:\!bg-sky-500\/25:hover {
  background-color: rgb(14 165 233 / 0.25) !important;
}

.hover\:\!bg-transparent:hover {
  background-color: transparent !important;
}

.hover\:bg-\[var\(--hover-surface-light\)\]:hover {
  background-color: var(--hover-surface-light);
}

.hover\:bg-accent:hover {
  background-color: hsl(var(--accent));
}

.hover\:bg-accent\/30:hover {
  background-color: hsl(var(--accent) / 0.3);
}

.hover\:bg-accent\/40:hover {
  background-color: hsl(var(--accent) / 0.4);
}

.hover\:bg-accent\/50:hover {
  background-color: hsl(var(--accent) / 0.5);
}

.hover\:bg-accent\/60:hover {
  background-color: hsl(var(--accent) / 0.6);
}

.hover\:bg-amber-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}

.hover\:bg-background\/60:hover {
  background-color: hsl(var(--background) / 0.6);
}

.hover\:bg-black\/40:hover {
  background-color: rgb(0 0 0 / 0.4);
}

.hover\:bg-card:hover {
  background-color: hsl(var(--card));
}

.hover\:bg-destructive\/10:hover {
  background-color: hsl(var(--destructive) / 0.1);
}

.hover\:bg-destructive\/15:hover {
  background-color: hsl(var(--destructive) / 0.15);
}

.hover\:bg-destructive\/20:hover {
  background-color: hsl(var(--destructive) / 0.2);
}

.hover\:bg-destructive\/5:hover {
  background-color: hsl(var(--destructive) / 0.05);
}

.hover\:bg-destructive\/90:hover {
  background-color: hsl(var(--destructive) / 0.9);
}

.hover\:bg-emerald-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1));
}

.hover\:bg-emerald-50\/40:hover {
  background-color: rgb(236 253 245 / 0.4);
}

.hover\:bg-emerald-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(4 120 87 / var(--tw-bg-opacity, 1));
}

.hover\:bg-green-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(187 247 208 / var(--tw-bg-opacity, 1));
}

.hover\:bg-muted:hover {
  background-color: hsl(var(--muted));
}

.hover\:bg-muted-foreground\/15:hover {
  background-color: hsl(var(--muted-foreground) / 0.15);
}

.hover\:bg-muted-foreground\/20:hover {
  background-color: hsl(var(--muted-foreground) / 0.2);
}

.hover\:bg-muted\/20:hover {
  background-color: hsl(var(--muted) / 0.2);
}

.hover\:bg-muted\/25:hover {
  background-color: hsl(var(--muted) / 0.25);
}

.hover\:bg-muted\/30:hover {
  background-color: hsl(var(--muted) / 0.3);
}

.hover\:bg-muted\/40:hover {
  background-color: hsl(var(--muted) / 0.4);
}

.hover\:bg-muted\/50:hover {
  background-color: hsl(var(--muted) / 0.5);
}

.hover\:bg-muted\/55:hover {
  background-color: hsl(var(--muted) / 0.55);
}

.hover\:bg-muted\/60:hover {
  background-color: hsl(var(--muted) / 0.6);
}

.hover\:bg-muted\/70:hover {
  background-color: hsl(var(--muted) / 0.7);
}

.hover\:bg-muted\/80:hover {
  background-color: hsl(var(--muted) / 0.8);
}

.hover\:bg-orange-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1));
}

.hover\:bg-primary\/10:hover {
  background-color: hsl(var(--primary) / 0.1);
}

.hover\:bg-primary\/15:hover {
  background-color: hsl(var(--primary) / 0.15);
}

.hover\:bg-primary\/20:hover {
  background-color: hsl(var(--primary) / 0.2);
}

.hover\:bg-primary\/5:hover {
  background-color: hsl(var(--primary) / 0.05);
}

.hover\:bg-primary\/80:hover {
  background-color: hsl(var(--primary) / 0.8);
}

.hover\:bg-primary\/90:hover {
  background-color: hsl(var(--primary) / 0.9);
}

.hover\:bg-primary\/\[0\.12\]:hover {
  background-color: hsl(var(--primary) / 0.12);
}

.hover\:bg-red-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(254 202 202 / var(--tw-bg-opacity, 1));
}

.hover\:bg-red-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}

.hover\:bg-red-50\/40:hover {
  background-color: rgb(254 242 242 / 0.4);
}

.hover\:bg-red-500\/20:hover {
  background-color: rgb(239 68 68 / 0.2);
}

.hover\:bg-secondary\/80:hover {
  background-color: hsl(var(--secondary) / 0.8);
}

.hover\:bg-slate-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}

.hover\:bg-slate-50\/40:hover {
  background-color: rgb(248 250 252 / 0.4);
}

.hover\:bg-slate-50\/50:hover {
  background-color: rgb(248 250 252 / 0.5);
}

.hover\:bg-transparent:hover {
  background-color: transparent;
}

.hover\:bg-white\/10:hover {
  background-color: rgb(255 255 255 / 0.1);
}

.hover\:bg-white\/20:hover {
  background-color: rgb(255 255 255 / 0.2);
}

.hover\:text-\[var\(--text\)\]:hover {
  color: var(--text);
}

.hover\:text-accent-foreground:hover {
  color: hsl(var(--accent-foreground));
}

.hover\:text-destructive:hover {
  color: hsl(var(--destructive));
}

.hover\:text-destructive\/90:hover {
  color: hsl(var(--destructive) / 0.9);
}

.hover\:text-foreground:hover {
  color: hsl(var(--foreground));
}

.hover\:text-foreground\/80:hover {
  color: hsl(var(--foreground) / 0.8);
}

.hover\:text-indigo-600:hover {
  --tw-text-opacity: 1;
  color: rgb(79 70 229 / var(--tw-text-opacity, 1));
}

.hover\:text-muted-foreground:hover {
  color: hsl(var(--muted-foreground));
}

.hover\:text-orange-700:hover {
  --tw-text-opacity: 1;
  color: rgb(194 65 12 / var(--tw-text-opacity, 1));
}

.hover\:text-primary:hover {
  color: hsl(var(--primary));
}

.hover\:text-primary\/90:hover {
  color: hsl(var(--primary) / 0.9);
}

.hover\:text-red-200:hover {
  --tw-text-opacity: 1;
  color: rgb(254 202 202 / var(--tw-text-opacity, 1));
}

.hover\:text-red-600:hover {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}

.hover\:text-red-700:hover {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

.hover\:text-slate-700:hover {
  --tw-text-opacity: 1;
  color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}

.hover\:text-slate-900:hover {
  --tw-text-opacity: 1;
  color: rgb(15 23 42 / var(--tw-text-opacity, 1));
}

.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.hover\:underline:hover {
  text-decoration-line: underline;
}

.hover\:no-underline:hover {
  text-decoration-line: none;
}

.hover\:opacity-100:hover {
  opacity: 1;
}

.hover\:opacity-80:hover {
  opacity: 0.8;
}

.hover\:opacity-90:hover {
  opacity: 0.9;
}

.hover\:shadow-\[0_14px_44px_-10px_rgba\(0\2c 0\2c 0\2c 0\.34\)\]:hover {
  --tw-shadow: 0 14px 44px -10px rgba(0,0,0,0.34);
  --tw-shadow-colored: 0 14px 44px -10px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-md:hover {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:ring-0:hover {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.hover\:ring-primary\/25:hover {
  --tw-ring-color: hsl(var(--primary) / 0.25);
}

.hover\:ring-primary\/30:hover {
  --tw-ring-color: hsl(var(--primary) / 0.3);
}

.hover\:ring-primary\/35:hover {
  --tw-ring-color: hsl(var(--primary) / 0.35);
}

.hover\:brightness-\[0\.92\]:hover {
  --tw-brightness: brightness(0.92);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.hover\:brightness-\[0\.97\]:hover {
  --tw-brightness: brightness(0.97);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.hover\:\[filter\:blur\(0\)\]:hover {
  filter: blur(0);
}

.focus\:border-input:focus {
  border-color: hsl(var(--input));
}

.focus\:border-primary\/55:focus {
  border-color: hsl(var(--primary) / 0.55);
}

.focus\:border-red-300:focus {
  --tw-border-opacity: 1;
  border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));
}

.focus\:border-ring:focus {
  border-color: hsl(var(--ring));
}

.focus\:bg-\[var\(--hover-surface-light\)\]:focus {
  background-color: var(--hover-surface-light);
}

.focus\:bg-destructive\/10:focus {
  background-color: hsl(var(--destructive) / 0.1);
}

.focus\:bg-transparent:focus {
  background-color: transparent;
}

.focus\:text-destructive:focus {
  color: hsl(var(--destructive));
}

.focus\:text-foreground:focus {
  color: hsl(var(--foreground));
}

.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus\:ring-0:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-primary:focus {
  --tw-ring-color: hsl(var(--primary));
}

.focus\:ring-ring:focus {
  --tw-ring-color: hsl(var(--ring));
}

.focus\:ring-offset-0:focus {
  --tw-ring-offset-width: 0px;
}

.focus\:ring-offset-2:focus {
  --tw-ring-offset-width: 2px;
}

.focus-visible\:\!border-0:focus-visible {
  border-width: 0px !important;
}

.focus-visible\:border-destructive:focus-visible {
  border-color: hsl(var(--destructive));
}

.focus-visible\:border-primary\/35:focus-visible {
  border-color: hsl(var(--primary) / 0.35);
}

.focus-visible\:border-primary\/40:focus-visible {
  border-color: hsl(var(--primary) / 0.4);
}

.focus-visible\:border-primary\/55:focus-visible {
  border-color: hsl(var(--primary) / 0.55);
}

.focus-visible\:border-red-400:focus-visible {
  --tw-border-opacity: 1;
  border-color: rgb(248 113 113 / var(--tw-border-opacity, 1));
}

.focus-visible\:border-ring:focus-visible {
  border-color: hsl(var(--ring));
}

.focus-visible\:\!bg-transparent:focus-visible {
  background-color: transparent !important;
}

.focus-visible\:text-primary:focus-visible {
  color: hsl(var(--primary));
}

.focus-visible\:opacity-100:focus-visible {
  opacity: 1;
}

.focus-visible\:outline-none:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus-visible\:ring-0:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-1:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-2:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus-visible\:ring-inset:focus-visible {
  --tw-ring-inset: inset;
}

.focus-visible\:ring-destructive\/25:focus-visible {
  --tw-ring-color: hsl(var(--destructive) / 0.25);
}

.focus-visible\:ring-primary\/25:focus-visible {
  --tw-ring-color: hsl(var(--primary) / 0.25);
}

.focus-visible\:ring-primary\/35:focus-visible {
  --tw-ring-color: hsl(var(--primary) / 0.35);
}

.focus-visible\:ring-red-300:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity, 1));
}

.focus-visible\:ring-ring:focus-visible {
  --tw-ring-color: hsl(var(--ring));
}

.focus-visible\:ring-ring\/60:focus-visible {
  --tw-ring-color: hsl(var(--ring) / 0.6);
}

.focus-visible\:ring-slate-300:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(203 213 225 / var(--tw-ring-opacity, 1));
}

.focus-visible\:ring-offset-0:focus-visible {
  --tw-ring-offset-width: 0px;
}

.focus-visible\:ring-offset-1:focus-visible {
  --tw-ring-offset-width: 1px;
}

.focus-visible\:ring-offset-2:focus-visible {
  --tw-ring-offset-width: 2px;
}

.focus-visible\:ring-offset-background:focus-visible {
  --tw-ring-offset-color: hsl(var(--background));
}

.active\:translate-y-0:active {
  --tw-translate-y: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:\!scale-100:active {
  --tw-scale-x: 1 !important;
  --tw-scale-y: 1 !important;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}

.active\:scale-90:active {
  --tw-scale-x: .9;
  --tw-scale-y: .9;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:scale-95:active {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:scale-\[0\.97\]:active {
  --tw-scale-x: 0.97;
  --tw-scale-y: 0.97;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:scale-\[0\.985\]:active {
  --tw-scale-x: 0.985;
  --tw-scale-y: 0.985;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:scale-\[0\.98\]:active {
  --tw-scale-x: 0.98;
  --tw-scale-y: 0.98;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:scale-\[0\.99\]:active {
  --tw-scale-x: 0.99;
  --tw-scale-y: 0.99;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.active\:cursor-grabbing:active {
  cursor: grabbing;
}

.active\:\!bg-destructive\/20:active {
  background-color: hsl(var(--destructive) / 0.2) !important;
}

.active\:\!bg-primary\/20:active {
  background-color: hsl(var(--primary) / 0.2) !important;
}

.active\:\!bg-primary\/25:active {
  background-color: hsl(var(--primary) / 0.25) !important;
}

.active\:bg-muted\/65:active {
  background-color: hsl(var(--muted) / 0.65);
}

.active\:text-destructive:active {
  color: hsl(var(--destructive));
}

.active\:text-primary:active {
  color: hsl(var(--primary));
}

.disabled\:pointer-events-none:disabled {
  pointer-events: none;
}

.disabled\:cursor-default:disabled {
  cursor: default;
}

.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}

.disabled\:border-primary\/15:disabled {
  border-color: hsl(var(--primary) / 0.15);
}

.disabled\:opacity-40:disabled {
  opacity: 0.4;
}

.disabled\:opacity-50:disabled {
  opacity: 0.5;
}

.disabled\:opacity-80:disabled {
  opacity: 0.8;
}

.disabled\:hover\:scale-100:hover:disabled {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.disabled\:hover\:\!bg-transparent:hover:disabled {
  background-color: transparent !important;
}

.disabled\:hover\:text-muted-foreground:hover:disabled {
  color: hsl(var(--muted-foreground));
}

.disabled\:active\:scale-100:active:disabled {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group\/notification:focus-within .group-focus-within\/notification\:line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.group\/toast:focus-within .group-focus-within\/toast\:line-clamp-4 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

.group\/toast:focus-within .group-focus-within\/toast\:max-h-24 {
  max-height: 6rem;
}

.group\/notification:hover .group-hover\/notification\:line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.group\/toast:hover .group-hover\/toast\:line-clamp-4 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

.group\/toast:hover .group-hover\/toast\:max-h-24 {
  max-height: 6rem;
}

.group:hover .group-hover\:max-h-8 {
  max-height: 2rem;
}

.group\/action:hover .group-hover\/action\:translate-x-0\.5 {
  --tw-translate-x: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:rotate-\[8deg\] {
  --tw-rotate: 8deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:bg-muted\/80 {
  background-color: hsl(var(--muted) / 0.8);
}

.group:hover .group-hover\:bg-primary\/20 {
  background-color: hsl(var(--primary) / 0.2);
}

.group\/action:hover .group-hover\/action\:text-primary {
  color: hsl(var(--primary));
}

.group\/dismiss:hover .group-hover\/dismiss\:text-destructive {
  color: hsl(var(--destructive));
}

.group\/toast:hover .group-hover\/toast\:text-primary {
  color: hsl(var(--primary));
}

.group:hover .group-hover\:text-emerald-700\/90 {
  color: rgb(4 120 87 / 0.9);
}

.group:hover .group-hover\:text-foreground\/60 {
  color: hsl(var(--foreground) / 0.6);
}

.group:hover .group-hover\:text-red-600\/90 {
  color: rgb(220 38 38 / 0.9);
}

.group:hover .group-hover\:text-slate-500\/90 {
  color: rgb(100 116 139 / 0.9);
}

.group:hover .group-hover\:underline {
  text-decoration-line: underline;
}

.group\/action:hover .group-hover\/action\:opacity-100 {
  opacity: 1;
}

.group\/helptip:hover .group-hover\/helptip\:opacity-100 {
  opacity: 1;
}

.group\/toast:hover .group-hover\/toast\:opacity-100 {
  opacity: 1;
}

.group\/helptip:focus-visible .group-focus-visible\/helptip\:opacity-100 {
  opacity: 1;
}

.peer:disabled ~ .peer-disabled\:cursor-not-allowed {
  cursor: not-allowed;
}

.peer:disabled ~ .peer-disabled\:opacity-70 {
  opacity: 0.7;
}

.aria-busy\:pointer-events-none[aria-busy="true"] {
  pointer-events: none;
}

.aria-busy\:opacity-100[aria-busy="true"] {
  opacity: 1;
}

.aria-busy\:hover\:scale-100:hover[aria-busy="true"] {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.aria-busy\:active\:scale-100:active[aria-busy="true"] {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.aria-selected\:opacity-100[aria-selected="true"] {
  opacity: 1;
}

.data-\[disabled\]\:pointer-events-none[data-disabled] {
  pointer-events: none;
}

.data-\[state\=inactive\]\:pointer-events-none[data-state="inactive"] {
  pointer-events: none;
}

.data-\[state\=inactive\]\:invisible[data-state="inactive"] {
  visibility: hidden;
}

.data-\[state\=inactive\]\:block[data-state="inactive"] {
  display: block;
}

.data-\[state\=inactive\]\:hidden[data-state="inactive"] {
  display: none;
}

.data-\[state\=checked\]\:translate-x-5[data-state="checked"] {
  --tw-translate-x: 1.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[state\=unchecked\]\:translate-x-0[data-state="unchecked"] {
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[state\=closed\]\:animate-none[data-state="closed"] {
  animation: none;
}

.data-\[state\=open\]\:animate-none[data-state="open"] {
  animation: none;
}

.data-\[state\=active\]\:border-border[data-state="active"] {
  border-color: hsl(var(--border));
}

.data-\[state\=active\]\:border-primary[data-state="active"] {
  border-color: hsl(var(--primary));
}

.data-\[highlighted\]\:bg-\[var\(--hover-surface-light\)\][data-highlighted] {
  background-color: var(--hover-surface-light);
}

.data-\[state\=active\]\:bg-background[data-state="active"] {
  background-color: hsl(var(--background));
}

.data-\[state\=active\]\:bg-primary[data-state="active"] {
  background-color: hsl(var(--primary));
}

.data-\[state\=active\]\:bg-primary\/10[data-state="active"] {
  background-color: hsl(var(--primary) / 0.1);
}

.data-\[state\=checked\]\:bg-primary[data-state="checked"] {
  background-color: hsl(var(--primary));
}

.data-\[state\=inactive\]\:bg-transparent[data-state="inactive"] {
  background-color: transparent;
}

.data-\[state\=on\]\:bg-accent[data-state="on"] {
  background-color: hsl(var(--accent));
}

.data-\[state\=open\]\:\!bg-transparent[data-state="open"] {
  background-color: transparent !important;
}

.data-\[state\=open\]\:bg-\[var\(--hover-surface-light\)\][data-state="open"] {
  background-color: var(--hover-surface-light);
}

.data-\[state\=open\]\:bg-accent[data-state="open"] {
  background-color: hsl(var(--accent));
}

.data-\[state\=open\]\:bg-transparent[data-state="open"] {
  background-color: transparent;
}

.data-\[state\=unchecked\]\:bg-muted-foreground\/25[data-state="unchecked"] {
  background-color: hsl(var(--muted-foreground) / 0.25);
}

.data-\[highlighted\]\:text-foreground[data-highlighted] {
  color: hsl(var(--foreground));
}

.data-\[state\=active\]\:text-foreground[data-state="active"] {
  color: hsl(var(--foreground));
}

.data-\[state\=active\]\:text-primary[data-state="active"] {
  color: hsl(var(--primary));
}

.data-\[state\=active\]\:text-primary-foreground[data-state="active"] {
  color: hsl(var(--primary-foreground));
}

.data-\[state\=inactive\]\:text-muted-foreground[data-state="inactive"] {
  color: hsl(var(--muted-foreground));
}

.data-\[state\=on\]\:text-accent-foreground[data-state="on"] {
  color: hsl(var(--accent-foreground));
}

.data-\[state\=open\]\:text-foreground[data-state="open"] {
  color: hsl(var(--foreground));
}

.data-\[state\=open\]\:text-muted-foreground[data-state="open"] {
  color: hsl(var(--muted-foreground));
}

.data-\[disabled\]\:opacity-50[data-disabled] {
  opacity: 0.5;
}

.data-\[state\=active\]\:shadow-none[data-state="active"] {
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.data-\[state\=active\]\:shadow-sm[data-state="active"] {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.data-\[state\=checked\]\:shadow-\[inset_0_1px_0_rgba\(255\2c 255\2c 255\2c 0\.12\)\][data-state="checked"] {
  --tw-shadow: inset 0 1px 0 rgba(255,255,255,0.12);
  --tw-shadow-colored: inset 0 1px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.data-\[state\=inactive\]\:shadow-none[data-state="inactive"] {
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.data-\[state\=active\]\:ring-1[data-state="active"] {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.data-\[state\=inactive\]\:ring-1[data-state="inactive"] {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.data-\[state\=active\]\:ring-inset[data-state="active"] {
  --tw-ring-inset: inset;
}

.data-\[state\=inactive\]\:ring-inset[data-state="inactive"] {
  --tw-ring-inset: inset;
}

.data-\[state\=active\]\:ring-primary\/25[data-state="active"] {
  --tw-ring-color: hsl(var(--primary) / 0.25);
}

.data-\[state\=inactive\]\:ring-primary\/15[data-state="inactive"] {
  --tw-ring-color: hsl(var(--primary) / 0.15);
}

.data-\[state\=closed\]\:duration-300[data-state="closed"] {
  transition-duration: 300ms;
}

.data-\[state\=open\]\:duration-500[data-state="open"] {
  transition-duration: 500ms;
}

.data-\[state\=open\]\:animate-accordion-down[data-state="open"] {
    animation: accordion-down 0.2s ease-out;
  }

.data-\[state\=closed\]\:animate-accordion-up[data-state="closed"] {
    animation: accordion-up 0.2s ease-out;
  }

.data-\[state\=active\]\:hover\:bg-primary\/15:hover[data-state="active"] {
  background-color: hsl(var(--primary) / 0.15);
}

.data-\[state\=inactive\]\:hover\:bg-primary\/5:hover[data-state="inactive"] {
  background-color: hsl(var(--primary) / 0.05);
}

.data-\[state\=inactive\]\:hover\:text-foreground:hover[data-state="inactive"] {
  color: hsl(var(--foreground));
}

.data-\[state\=inactive\]\:hover\:ring-primary\/25:hover[data-state="inactive"] {
  --tw-ring-color: hsl(var(--primary) / 0.25);
}

@supports ((-webkit-backdrop-filter: var(--tw)) or (backdrop-filter: var(--tw))) {

  .supports-\[backdrop-filter\]\:bg-background\/70 {
    background-color: hsl(var(--background) / 0.7);
  }

  .supports-\[backdrop-filter\]\:bg-background\/80 {
    background-color: hsl(var(--background) / 0.8);
  }

  .supports-\[backdrop-filter\]\:bg-card\/90 {
    background-color: hsl(var(--card) / 0.9);
  }

  .supports-\[backdrop-filter\]\:bg-muted\/25 {
    background-color: hsl(var(--muted) / 0.25);
  }

  .supports-\[backdrop-filter\]\:backdrop-blur-\[1px\] {
    --tw-backdrop-blur: blur(1px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  }

  .supports-\[backdrop-filter\]\:backdrop-blur-sm {
    --tw-backdrop-blur: blur(4px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  }

  .supports-\[backdrop-filter\]\:backdrop-blur-xl {
    --tw-backdrop-blur: blur(24px);
    -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  }

  .supports-\[backdrop-filter\]\:backdrop-saturate-150 {
    --tw-backdrop-saturate: saturate(1.5);
    -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  }
}

@media (prefers-reduced-motion: no-preference) {

  .motion-safe\:translate-x-0 {
    --tw-translate-x: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .motion-safe\:translate-x-\[calc\(100\%\+1rem\)\] {
    --tw-translate-x: calc(100% + 1rem);
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  @keyframes rail-action-pulse {

    0%, 100% {
      background-color: hsl(var(--primary) / 0);
    }

    50% {
      background-color: hsl(var(--primary) / 0.14);
    }
  }

  .motion-safe\:animate-rail-action-pulse {
    animation: rail-action-pulse 1.6s ease-in-out infinite;
  }

  @keyframes stepper-check-in {

    0% {
      opacity: 0;
      transform: scale(0.72);
    }

    100% {
      opacity: 1;
      transform: scale(1);
    }
  }

  .motion-safe\:animate-stepper-check-in {
    animation: stepper-check-in 280ms cubic-bezier(0.22, 1, 0.36, 1) both;
  }

  @keyframes stepper-current-glow {

    0%, 100% {
      opacity: 0.28;
      transform: scale(0.96);
    }

    50% {
      opacity: 0.9;
      transform: scale(1.12);
    }
  }

  .motion-safe\:animate-stepper-current-glow {
    animation: stepper-current-glow 1.6s cubic-bezier(0.45, 0, 0.55, 1) infinite;
  }

  @keyframes stepper-current-shimmer {

    0% {
      transform: translateX(-130%) skewX(-18deg);
    }

    100% {
      transform: translateX(260%) skewX(-18deg);
    }
  }

  .motion-safe\:animate-stepper-current-shimmer {
    animation: stepper-current-shimmer 2.4s ease-in-out infinite;
  }

  .motion-safe\:transition-opacity {
    transition-property: opacity;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
  }
}

@media (prefers-reduced-motion: reduce) {

  .motion-reduce\:hidden {
    display: none;
  }

  .motion-reduce\:transform-none {
    transform: none;
  }

  .motion-reduce\:animate-none {
    animation: none;
  }

  .motion-reduce\:opacity-100 {
    opacity: 1;
  }

  .motion-reduce\:transition-none {
    transition-property: none;
  }

  .motion-reduce\:hover\:scale-100:hover {
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .motion-reduce\:hover\:transform-none:hover {
    transform: none;
  }

  .motion-reduce\:hover\:animate-none:hover {
    animation: none;
  }

  .motion-reduce\:active\:scale-100:active {
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .motion-reduce\:data-\[state\=closed\]\:animate-none[data-state="closed"] {
    animation: none;
  }
}

.dark\:border:is(.dark *) {
  border-width: 1px;
}

.dark\:border-amber-500\/35:is(.dark *) {
  border-color: rgb(245 158 11 / 0.35);
}

.dark\:border-amber-600\/50:is(.dark *) {
  border-color: rgb(217 119 6 / 0.5);
}

.dark\:border-amber-600\/60:is(.dark *) {
  border-color: rgb(217 119 6 / 0.6);
}

.dark\:border-amber-700\/40:is(.dark *) {
  border-color: rgb(180 83 9 / 0.4);
}

.dark\:border-amber-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(146 64 14 / var(--tw-border-opacity, 1));
}

.dark\:border-amber-900:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(120 53 15 / var(--tw-border-opacity, 1));
}

.dark\:border-amber-900\/50:is(.dark *) {
  border-color: rgb(120 53 15 / 0.5);
}

.dark\:border-amber-900\/60:is(.dark *) {
  border-color: rgb(120 53 15 / 0.6);
}

.dark\:border-blue-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(30 64 175 / var(--tw-border-opacity, 1));
}

.dark\:border-border:is(.dark *) {
  border-color: hsl(var(--border));
}

.dark\:border-border\/70:is(.dark *) {
  border-color: hsl(var(--border) / 0.7);
}

.dark\:border-cyan-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(21 94 117 / var(--tw-border-opacity, 1));
}

.dark\:border-emerald-500\/50:is(.dark *) {
  border-color: rgb(16 185 129 / 0.5);
}

.dark\:border-emerald-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(6 95 70 / var(--tw-border-opacity, 1));
}

.dark\:border-emerald-900:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(6 78 59 / var(--tw-border-opacity, 1));
}

.dark\:border-green-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(22 101 52 / var(--tw-border-opacity, 1));
}

.dark\:border-green-900\/60:is(.dark *) {
  border-color: rgb(20 83 45 / 0.6);
}

.dark\:border-indigo-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(55 48 163 / var(--tw-border-opacity, 1));
}

.dark\:border-orange-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(154 52 18 / var(--tw-border-opacity, 1));
}

.dark\:border-orange-900\/50:is(.dark *) {
  border-color: rgb(124 45 18 / 0.5);
}

.dark\:border-pink-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(157 23 77 / var(--tw-border-opacity, 1));
}

.dark\:border-primary\/40:is(.dark *) {
  border-color: hsl(var(--primary) / 0.4);
}

.dark\:border-red-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(153 27 27 / var(--tw-border-opacity, 1));
}

.dark\:border-red-900:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(127 29 29 / var(--tw-border-opacity, 1));
}

.dark\:border-slate-700:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(51 65 85 / var(--tw-border-opacity, 1));
}

.dark\:border-teal-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(17 94 89 / var(--tw-border-opacity, 1));
}

.dark\:border-transparent:is(.dark *) {
  border-color: transparent;
}

.dark\:border-violet-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(91 33 182 / var(--tw-border-opacity, 1));
}

.dark\:border-white\/\[0\.08\]:is(.dark *) {
  border-color: rgb(255 255 255 / 0.08);
}

.dark\:border-zinc-700:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(63 63 70 / var(--tw-border-opacity, 1));
}

.dark\:bg-amber-300\/40:is(.dark *) {
  background-color: rgb(252 211 77 / 0.4);
}

.dark\:bg-amber-400\/10:is(.dark *) {
  background-color: rgb(251 191 36 / 0.1);
}

.dark\:bg-amber-500\/15:is(.dark *) {
  background-color: rgb(245 158 11 / 0.15);
}

.dark\:bg-amber-600:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1));
}

.dark\:bg-amber-600\/35:is(.dark *) {
  background-color: rgb(217 119 6 / 0.35);
}

.dark\:bg-amber-900\/20:is(.dark *) {
  background-color: rgb(120 53 15 / 0.2);
}

.dark\:bg-amber-900\/30:is(.dark *) {
  background-color: rgb(120 53 15 / 0.3);
}

.dark\:bg-amber-900\/40:is(.dark *) {
  background-color: rgb(120 53 15 / 0.4);
}

.dark\:bg-amber-950:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(69 26 3 / var(--tw-bg-opacity, 1));
}

.dark\:bg-amber-950\/20:is(.dark *) {
  background-color: rgb(69 26 3 / 0.2);
}

.dark\:bg-amber-950\/30:is(.dark *) {
  background-color: rgb(69 26 3 / 0.3);
}

.dark\:bg-amber-950\/35:is(.dark *) {
  background-color: rgb(69 26 3 / 0.35);
}

.dark\:bg-amber-950\/40:is(.dark *) {
  background-color: rgb(69 26 3 / 0.4);
}

.dark\:bg-amber-950\/90:is(.dark *) {
  background-color: rgb(69 26 3 / 0.9);
}

.dark\:bg-background\/35:is(.dark *) {
  background-color: hsl(var(--background) / 0.35);
}

.dark\:bg-background\/\[0\.11\]:is(.dark *) {
  background-color: hsl(var(--background) / 0.11);
}

.dark\:bg-blue-950\/40:is(.dark *) {
  background-color: rgb(23 37 84 / 0.4);
}

.dark\:bg-cyan-950\/40:is(.dark *) {
  background-color: rgb(8 51 68 / 0.4);
}

.dark\:bg-destructive\/15:is(.dark *) {
  background-color: hsl(var(--destructive) / 0.15);
}

.dark\:bg-emerald-500\/10:is(.dark *) {
  background-color: rgb(16 185 129 / 0.1);
}

.dark\:bg-emerald-950\/20:is(.dark *) {
  background-color: rgb(2 44 34 / 0.2);
}

.dark\:bg-emerald-950\/40:is(.dark *) {
  background-color: rgb(2 44 34 / 0.4);
}

.dark\:bg-green-950:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(5 46 22 / var(--tw-bg-opacity, 1));
}

.dark\:bg-green-950\/20:is(.dark *) {
  background-color: rgb(5 46 22 / 0.2);
}

.dark\:bg-indigo-950\/40:is(.dark *) {
  background-color: rgb(30 27 75 / 0.4);
}

.dark\:bg-orange-950\/40:is(.dark *) {
  background-color: rgb(67 20 7 / 0.4);
}

.dark\:bg-pink-950\/40:is(.dark *) {
  background-color: rgb(80 7 36 / 0.4);
}

.dark\:bg-primary\/15:is(.dark *) {
  background-color: hsl(var(--primary) / 0.15);
}

.dark\:bg-primary\/20:is(.dark *) {
  background-color: hsl(var(--primary) / 0.2);
}

.dark\:bg-primary\/45:is(.dark *) {
  background-color: hsl(var(--primary) / 0.45);
}

.dark\:bg-purple-600\/40:is(.dark *) {
  background-color: rgb(147 51 234 / 0.4);
}

.dark\:bg-red-500\/10:is(.dark *) {
  background-color: rgb(239 68 68 / 0.1);
}

.dark\:bg-red-950\/30:is(.dark *) {
  background-color: rgb(69 10 10 / 0.3);
}

.dark\:bg-red-950\/40:is(.dark *) {
  background-color: rgb(69 10 10 / 0.4);
}

.dark\:bg-red-950\/60:is(.dark *) {
  background-color: rgb(69 10 10 / 0.6);
}

.dark\:bg-sky-300\/40:is(.dark *) {
  background-color: rgb(125 211 252 / 0.4);
}

.dark\:bg-sky-600:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(2 132 199 / var(--tw-bg-opacity, 1));
}

.dark\:bg-slate-600:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(71 85 105 / var(--tw-bg-opacity, 1));
}

.dark\:bg-slate-900\/40:is(.dark *) {
  background-color: rgb(15 23 42 / 0.4);
}

.dark\:bg-teal-500:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(20 184 166 / var(--tw-bg-opacity, 1));
}

.dark\:bg-teal-950\/40:is(.dark *) {
  background-color: rgb(4 47 46 / 0.4);
}

.dark\:bg-teal-950\/55:is(.dark *) {
  background-color: rgb(4 47 46 / 0.55);
}

.dark\:bg-violet-500:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1));
}

.dark\:bg-violet-950\/40:is(.dark *) {
  background-color: rgb(46 16 101 / 0.4);
}

.dark\:bg-white\/25:is(.dark *) {
  background-color: rgb(255 255 255 / 0.25);
}

.dark\:bg-zinc-300:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(212 212 216 / var(--tw-bg-opacity, 1));
}

.dark\:bg-zinc-900\/50:is(.dark *) {
  background-color: rgb(24 24 27 / 0.5);
}

.dark\:from-amber-950\/30:is(.dark *) {
  --tw-gradient-from: rgb(69 26 3 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(69 26 3 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-background:is(.dark *) {
  --tw-gradient-from: hsl(var(--background)) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-card\/90:is(.dark *) {
  --tw-gradient-from: hsl(var(--card) / 0.9) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--card) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-muted\/\[0\.08\]:is(.dark *) {
  --tw-gradient-from: hsl(var(--muted) / 0.08) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--muted) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:from-primary\/\[0\.1\]:is(.dark *) {
  --tw-gradient-from: hsl(var(--primary) / 0.1) var(--tw-gradient-from-position);
  --tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:via-amber-900\/20:is(.dark *) {
  --tw-gradient-to: rgb(120 53 15 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(120 53 15 / 0.2) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.dark\:via-background:is(.dark *) {
  --tw-gradient-to: hsl(var(--background) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.dark\:via-card\/70:is(.dark *) {
  --tw-gradient-to: hsl(var(--card) / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), hsl(var(--card) / 0.7) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.dark\:to-amber-950\/30:is(.dark *) {
  --tw-gradient-to: rgb(69 26 3 / 0.3) var(--tw-gradient-to-position);
}

.dark\:to-background:is(.dark *) {
  --tw-gradient-to: hsl(var(--background)) var(--tw-gradient-to-position);
}

.dark\:to-card\/50:is(.dark *) {
  --tw-gradient-to: hsl(var(--card) / 0.5) var(--tw-gradient-to-position);
}

.dark\:text-amber-100:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(254 243 199 / var(--tw-text-opacity, 1));
}

.dark\:text-amber-200:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(253 230 138 / var(--tw-text-opacity, 1));
}

.dark\:text-amber-200\/80:is(.dark *) {
  color: rgb(253 230 138 / 0.8);
}

.dark\:text-amber-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / var(--tw-text-opacity, 1));
}

.dark\:text-amber-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}

.dark\:text-amber-50:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(255 251 235 / var(--tw-text-opacity, 1));
}

.dark\:text-amber-500:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}

.dark\:text-blue-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(147 197 253 / var(--tw-text-opacity, 1));
}

.dark\:text-blue-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}

.dark\:text-cyan-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(103 232 249 / var(--tw-text-opacity, 1));
}

.dark\:text-emerald-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(110 231 183 / var(--tw-text-opacity, 1));
}

.dark\:text-emerald-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}

.dark\:text-foreground:is(.dark *) {
  color: hsl(var(--foreground));
}

.dark\:text-green-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 239 172 / var(--tw-text-opacity, 1));
}

.dark\:text-green-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(74 222 128 / var(--tw-text-opacity, 1));
}

.dark\:text-indigo-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(165 180 252 / var(--tw-text-opacity, 1));
}

.dark\:text-muted-foreground:is(.dark *) {
  color: hsl(var(--muted-foreground));
}

.dark\:text-orange-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(253 186 116 / var(--tw-text-opacity, 1));
}

.dark\:text-orange-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 146 60 / var(--tw-text-opacity, 1));
}

.dark\:text-pink-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(249 168 212 / var(--tw-text-opacity, 1));
}

.dark\:text-primary-foreground:is(.dark *) {
  color: hsl(var(--primary-foreground));
}

.dark\:text-purple-50:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(250 245 255 / var(--tw-text-opacity, 1));
}

.dark\:text-red-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / var(--tw-text-opacity, 1));
}

.dark\:text-red-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}

.dark\:text-rose-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.dark\:text-sky-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(125 211 252 / var(--tw-text-opacity, 1));
}

.dark\:text-sky-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(56 189 248 / var(--tw-text-opacity, 1));
}

.dark\:text-slate-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(203 213 225 / var(--tw-text-opacity, 1));
}

.dark\:text-teal-100:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(204 251 241 / var(--tw-text-opacity, 1));
}

.dark\:text-teal-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(94 234 212 / var(--tw-text-opacity, 1));
}

.dark\:text-violet-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(196 181 253 / var(--tw-text-opacity, 1));
}

.dark\:text-zinc-100:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(244 244 245 / var(--tw-text-opacity, 1));
}

.dark\:shadow-\[0_0_10px_rgba\(251\2c 191\2c 36\2c 0\.35\)\]:is(.dark *) {
  --tw-shadow: 0 0 10px rgba(251,191,36,0.35);
  --tw-shadow-colored: 0 0 10px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.dark\:shadow-\[0_12px_40px_rgba\(0\2c 0\2c 0\2c 0\.3\)\]:is(.dark *) {
  --tw-shadow: 0 12px 40px rgba(0,0,0,0.3);
  --tw-shadow-colored: 0 12px 40px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.dark\:shadow-\[0_16px_48px_-16px_rgba\(0\2c 0\2c 0\2c 0\.65\)\2c 0_0_0_1px_rgba\(255\2c 255\2c 255\2c 0\.06\)_inset\]:is(.dark *) {
  --tw-shadow: 0 16px 48px -16px rgba(0,0,0,0.65),0 0 0 1px rgba(255,255,255,0.06) inset;
  --tw-shadow-colored: 0 16px 48px -16px var(--tw-shadow-color), inset 0 0 0 1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.dark\:shadow-black\/40:is(.dark *) {
  --tw-shadow-color: rgb(0 0 0 / 0.4);
  --tw-shadow: var(--tw-shadow-colored);
}

.dark\:shadow-black\/50:is(.dark *) {
  --tw-shadow-color: rgb(0 0 0 / 0.5);
  --tw-shadow: var(--tw-shadow-colored);
}

.dark\:ring-amber-400\/25:is(.dark *) {
  --tw-ring-color: rgb(251 191 36 / 0.25);
}

.dark\:ring-primary\/30:is(.dark *) {
  --tw-ring-color: hsl(var(--primary) / 0.3);
}

.dark\:\[background\:var\(--surface\2c hsl\(var\(--background\)\)\)\]:is(.dark *) {
  background: var(--surface,hsl(var(--background)));
}

.dark\:hover\:border-green-700:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(21 128 61 / var(--tw-border-opacity, 1));
}

.dark\:hover\:border-red-700:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(185 28 28 / var(--tw-border-opacity, 1));
}

.dark\:hover\:\!bg-amber-500\/20:hover:is(.dark *) {
  background-color: rgb(245 158 11 / 0.2) !important;
}

.dark\:hover\:\!bg-destructive\/25:hover:is(.dark *) {
  background-color: hsl(var(--destructive) / 0.25) !important;
}

.dark\:hover\:\!bg-emerald-500\/20:hover:is(.dark *) {
  background-color: rgb(16 185 129 / 0.2) !important;
}

.dark\:hover\:\!bg-muted:hover:is(.dark *) {
  background-color: hsl(var(--muted)) !important;
}

.dark\:hover\:\!bg-sky-500\/20:hover:is(.dark *) {
  background-color: rgb(14 165 233 / 0.2) !important;
}

.dark\:hover\:\!bg-transparent:hover:is(.dark *) {
  background-color: transparent !important;
}

.dark\:hover\:bg-accent:hover:is(.dark *) {
  background-color: hsl(var(--accent));
}

.dark\:hover\:bg-amber-900\/50:hover:is(.dark *) {
  background-color: rgb(120 53 15 / 0.5);
}

.dark\:hover\:bg-destructive\/15:hover:is(.dark *) {
  background-color: hsl(var(--destructive) / 0.15);
}

.dark\:hover\:bg-green-950\/40:hover:is(.dark *) {
  background-color: rgb(5 46 22 / 0.4);
}

.dark\:hover\:bg-orange-950\/40:hover:is(.dark *) {
  background-color: rgb(67 20 7 / 0.4);
}

.dark\:hover\:bg-red-950\/30:hover:is(.dark *) {
  background-color: rgb(69 10 10 / 0.3);
}

.dark\:hover\:bg-red-950\/40:hover:is(.dark *) {
  background-color: rgb(69 10 10 / 0.4);
}

.dark\:hover\:text-indigo-400:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(129 140 248 / var(--tw-text-opacity, 1));
}

.dark\:hover\:text-red-300:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(252 165 165 / var(--tw-text-opacity, 1));
}

.dark\:hover\:text-red-400:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}

.dark\:hover\:shadow-\[0_20px_52px_-14px_rgba\(0\2c 0\2c 0\2c 0\.72\)\]:hover:is(.dark *) {
  --tw-shadow: 0 20px 52px -14px rgba(0,0,0,0.72);
  --tw-shadow-colored: 0 20px 52px -14px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.dark\:hover\:brightness-110:hover:is(.dark *) {
  --tw-brightness: brightness(1.1);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.dark\:focus\:bg-accent:focus:is(.dark *) {
  background-color: hsl(var(--accent));
}

.dark\:focus\:bg-destructive\/15:focus:is(.dark *) {
  background-color: hsl(var(--destructive) / 0.15);
}

.dark\:focus\:text-accent-foreground:focus:is(.dark *) {
  color: hsl(var(--accent-foreground));
}

.dark\:data-\[highlighted\]\:bg-accent[data-highlighted]:is(.dark *) {
  background-color: hsl(var(--accent));
}

.dark\:data-\[state\=active\]\:bg-primary\/15[data-state="active"]:is(.dark *) {
  background-color: hsl(var(--primary) / 0.15);
}

.dark\:data-\[state\=open\]\:\!bg-transparent[data-state="open"]:is(.dark *) {
  background-color: transparent !important;
}

.dark\:data-\[state\=open\]\:bg-accent[data-state="open"]:is(.dark *) {
  background-color: hsl(var(--accent));
}

.dark\:data-\[highlighted\]\:text-accent-foreground[data-highlighted]:is(.dark *) {
  color: hsl(var(--accent-foreground));
}

.dark\:data-\[state\=open\]\:text-accent-foreground[data-state="open"]:is(.dark *) {
  color: hsl(var(--accent-foreground));
}

.dark\:data-\[state\=active\]\:ring-primary\/30[data-state="active"]:is(.dark *) {
  --tw-ring-color: hsl(var(--primary) / 0.3);
}

@media not all and (min-width: 968px) {

  .max-md\:w-\[min\(100\%\2c calc\(100vw-0\.75rem\)\)\] {
    width: min(100%, calc(100vw - 0.75rem));
  }

  .max-md\:leading-tight {
    line-height: 1.25;
  }
}

@media not all and (min-width: 640px) {

  .max-sm\:hidden {
    display: none;
  }
}

@media (min-width: 420px) {

  .min-\[420px\]\:inline {
    display: inline;
  }

  .min-\[420px\]\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 480px) {

  .min-\[480px\]\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 560px) {

  .min-\[560px\]\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 640px) {

  .sm\:inset-x-10 {
    left: 2.5rem;
    right: 2.5rem;
  }

  .sm\:top-4 {
    top: 1rem;
  }

  .sm\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  .sm\:-mx-5 {
    margin-left: -1.25rem;
    margin-right: -1.25rem;
  }

  .sm\:-mx-6 {
    margin-left: -1.5rem;
    margin-right: -1.5rem;
  }

  .sm\:mx-0 {
    margin-left: 0px;
    margin-right: 0px;
  }

  .sm\:mx-4 {
    margin-left: 1rem;
    margin-right: 1rem;
  }

  .sm\:-mt-8 {
    margin-top: -2rem;
  }

  .sm\:mb-10 {
    margin-bottom: 2.5rem;
  }

  .sm\:mb-12 {
    margin-bottom: 3rem;
  }

  .sm\:mb-2 {
    margin-bottom: 0.5rem;
  }

  .sm\:mb-4 {
    margin-bottom: 1rem;
  }

  .sm\:mb-6 {
    margin-bottom: 1.5rem;
  }

  .sm\:mb-8 {
    margin-bottom: 2rem;
  }

  .sm\:ml-auto {
    margin-left: auto;
  }

  .sm\:mr-2 {
    margin-right: 0.5rem;
  }

  .sm\:mt-0 {
    margin-top: 0px;
  }

  .sm\:mt-1\.5 {
    margin-top: 0.375rem;
  }

  .sm\:line-clamp-2 {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .sm\:block {
    display: block;
  }

  .sm\:inline-block {
    display: inline-block;
  }

  .sm\:inline {
    display: inline;
  }

  .sm\:flex {
    display: flex;
  }

  .sm\:inline-flex {
    display: inline-flex;
  }

  .sm\:table-cell {
    display: table-cell;
  }

  .sm\:size-11 {
    width: 2.75rem;
    height: 2.75rem;
  }

  .sm\:h-10 {
    height: 2.5rem;
  }

  .sm\:h-11 {
    height: 2.75rem;
  }

  .sm\:h-24 {
    height: 6rem;
  }

  .sm\:h-3 {
    height: 0.75rem;
  }

  .sm\:h-3\.5 {
    height: 0.875rem;
  }

  .sm\:h-4 {
    height: 1rem;
  }

  .sm\:h-40 {
    height: 10rem;
  }

  .sm\:h-5 {
    height: 1.25rem;
  }

  .sm\:h-6 {
    height: 1.5rem;
  }

  .sm\:h-7 {
    height: 1.75rem;
  }

  .sm\:h-9 {
    height: 2.25rem;
  }

  .sm\:h-\[1\.125rem\] {
    height: 1.125rem;
  }

  .sm\:h-\[160px\] {
    height: 160px;
  }

  .sm\:h-auto {
    height: auto;
  }

  .sm\:min-h-0 {
    min-height: 0px;
  }

  .sm\:min-h-6 {
    min-height: 1.5rem;
  }

  .sm\:min-h-9 {
    min-height: 2.25rem;
  }

  .sm\:min-h-\[100px\] {
    min-height: 100px;
  }

  .sm\:min-h-\[2\.75rem\] {
    min-height: 2.75rem;
  }

  .sm\:w-10 {
    width: 2.5rem;
  }

  .sm\:w-14 {
    width: 3.5rem;
  }

  .sm\:w-16 {
    width: 4rem;
  }

  .sm\:w-20 {
    width: 5rem;
  }

  .sm\:w-24 {
    width: 6rem;
  }

  .sm\:w-28 {
    width: 7rem;
  }

  .sm\:w-3\.5 {
    width: 0.875rem;
  }

  .sm\:w-32 {
    width: 8rem;
  }

  .sm\:w-36 {
    width: 9rem;
  }

  .sm\:w-4 {
    width: 1rem;
  }

  .sm\:w-44 {
    width: 11rem;
  }

  .sm\:w-48 {
    width: 12rem;
  }

  .sm\:w-5 {
    width: 1.25rem;
  }

  .sm\:w-56 {
    width: 14rem;
  }

  .sm\:w-6 {
    width: 1.5rem;
  }

  .sm\:w-64 {
    width: 16rem;
  }

  .sm\:w-7 {
    width: 1.75rem;
  }

  .sm\:w-72 {
    width: 18rem;
  }

  .sm\:w-96 {
    width: 24rem;
  }

  .sm\:w-\[200px\] {
    width: 200px;
  }

  .sm\:w-\[220px\] {
    width: 220px;
  }

  .sm\:w-\[280px\] {
    width: 280px;
  }

  .sm\:w-auto {
    width: auto;
  }

  .sm\:min-w-0 {
    min-width: 0px;
  }

  .sm\:min-w-24 {
    min-width: 6rem;
  }

  .sm\:min-w-4 {
    min-width: 1rem;
  }

  .sm\:min-w-\[10rem\] {
    min-width: 10rem;
  }

  .sm\:min-w-\[12rem\] {
    min-width: 12rem;
  }

  .sm\:min-w-\[7rem\] {
    min-width: 7rem;
  }

  .sm\:\!max-w-\[600px\] {
    max-width: 600px !important;
  }

  .sm\:max-w-24 {
    max-width: 6rem;
  }

  .sm\:max-w-6xl {
    max-width: 72rem;
  }

  .sm\:max-w-\[11rem\] {
    max-width: 11rem;
  }

  .sm\:max-w-\[12rem\] {
    max-width: 12rem;
  }

  .sm\:max-w-\[14rem\] {
    max-width: 14rem;
  }

  .sm\:max-w-\[18rem\] {
    max-width: 18rem;
  }

  .sm\:max-w-\[200px\] {
    max-width: 200px;
  }

  .sm\:max-w-\[22rem\] {
    max-width: 22rem;
  }

  .sm\:max-w-\[280px\] {
    max-width: 280px;
  }

  .sm\:max-w-\[3\.5rem\] {
    max-width: 3.5rem;
  }

  .sm\:max-w-\[32\%\] {
    max-width: 32%;
  }

  .sm\:max-w-\[7\.5rem\] {
    max-width: 7.5rem;
  }

  .sm\:max-w-\[min\(100\%\2c 14rem\)\] {
    max-width: min(100%, 14rem);
  }

  .sm\:max-w-md {
    max-width: 28rem;
  }

  .sm\:max-w-none {
    max-width: none;
  }

  .sm\:max-w-xs {
    max-width: 20rem;
  }

  .sm\:flex-1 {
    flex: 1 1 0%;
  }

  .sm\:flex-initial {
    flex: 0 1 auto;
  }

  .sm\:flex-none {
    flex: none;
  }

  .sm\:shrink {
    flex-shrink: 1;
  }

  .sm\:shrink-0 {
    flex-shrink: 0;
  }

  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sm\:grid-rows-2 {
    grid-template-rows: repeat(2, minmax(0, 1fr));
  }

  .sm\:flex-row {
    flex-direction: row;
  }

  .sm\:flex-wrap {
    flex-wrap: wrap;
  }

  .sm\:flex-nowrap {
    flex-wrap: nowrap;
  }

  .sm\:items-start {
    align-items: flex-start;
  }

  .sm\:items-end {
    align-items: flex-end;
  }

  .sm\:items-center {
    align-items: center;
  }

  .sm\:items-stretch {
    align-items: stretch;
  }

  .sm\:justify-start {
    justify-content: flex-start;
  }

  .sm\:justify-end {
    justify-content: flex-end;
  }

  .sm\:justify-center {
    justify-content: center;
  }

  .sm\:justify-between {
    justify-content: space-between;
  }

  .sm\:gap-0 {
    gap: 0px;
  }

  .sm\:gap-0\.5 {
    gap: 0.125rem;
  }

  .sm\:gap-1 {
    gap: 0.25rem;
  }

  .sm\:gap-1\.5 {
    gap: 0.375rem;
  }

  .sm\:gap-2 {
    gap: 0.5rem;
  }

  .sm\:gap-2\.5 {
    gap: 0.625rem;
  }

  .sm\:gap-3 {
    gap: 0.75rem;
  }

  .sm\:gap-3\.5 {
    gap: 0.875rem;
  }

  .sm\:gap-4 {
    gap: 1rem;
  }

  .sm\:gap-5 {
    gap: 1.25rem;
  }

  .sm\:gap-6 {
    gap: 1.5rem;
  }

  .sm\:gap-x-1 {
    -moz-column-gap: 0.25rem;
         column-gap: 0.25rem;
  }

  .sm\:gap-x-2 {
    -moz-column-gap: 0.5rem;
         column-gap: 0.5rem;
  }

  .sm\:gap-x-3 {
    -moz-column-gap: 0.75rem;
         column-gap: 0.75rem;
  }

  .sm\:gap-x-4 {
    -moz-column-gap: 1rem;
         column-gap: 1rem;
  }

  .sm\:gap-y-2 {
    row-gap: 0.5rem;
  }

  .sm\:space-x-0 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0px * var(--tw-space-x-reverse));
    margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse)));
  }

  .sm\:space-x-2 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .sm\:space-y-2\.5 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
  }

  .sm\:space-y-3 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
  }

  .sm\:space-y-4 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1rem * var(--tw-space-y-reverse));
  }

  .sm\:space-y-5 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
  }

  .sm\:divide-x > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-x-reverse: 0;
    border-right-width: calc(1px * var(--tw-divide-x-reverse));
    border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
  }

  .sm\:divide-border\/50 > :not([hidden]) ~ :not([hidden]) {
    border-color: hsl(var(--border) / 0.5);
  }

  .sm\:divide-border\/80 > :not([hidden]) ~ :not([hidden]) {
    border-color: hsl(var(--border) / 0.8);
  }

  .sm\:self-auto {
    align-self: auto;
  }

  .sm\:overflow-x-auto {
    overflow-x: auto;
  }

  .sm\:rounded-2xl {
    border-radius: 1rem;
  }

  .sm\:rounded-3xl {
    border-radius: 1.5rem;
  }

  .sm\:rounded-xl {
    border-radius: 0.75rem;
  }

  .sm\:p-0 {
    padding: 0px;
  }

  .sm\:p-0\.5 {
    padding: 0.125rem;
  }

  .sm\:p-1 {
    padding: 0.25rem;
  }

  .sm\:p-10 {
    padding: 2.5rem;
  }

  .sm\:p-2 {
    padding: 0.5rem;
  }

  .sm\:p-2\.5 {
    padding: 0.625rem;
  }

  .sm\:p-3 {
    padding: 0.75rem;
  }

  .sm\:p-3\.5 {
    padding: 0.875rem;
  }

  .sm\:p-4 {
    padding: 1rem;
  }

  .sm\:p-5 {
    padding: 1.25rem;
  }

  .sm\:p-6 {
    padding: 1.5rem;
  }

  .sm\:p-7 {
    padding: 1.75rem;
  }

  .sm\:p-8 {
    padding: 2rem;
  }

  .sm\:px-1 {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }

  .sm\:px-1\.5 {
    padding-left: 0.375rem;
    padding-right: 0.375rem;
  }

  .sm\:px-12 {
    padding-left: 3rem;
    padding-right: 3rem;
  }

  .sm\:px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .sm\:px-2\.5 {
    padding-left: 0.625rem;
    padding-right: 0.625rem;
  }

  .sm\:px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  .sm\:px-3\.5 {
    padding-left: 0.875rem;
    padding-right: 0.875rem;
  }

  .sm\:px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .sm\:px-5 {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .sm\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .sm\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .sm\:px-\[var\(--member-list-card-x\)\] {
    padding-left: var(--member-list-card-x);
    padding-right: var(--member-list-card-x);
  }

  .sm\:py-0 {
    padding-top: 0px;
    padding-bottom: 0px;
  }

  .sm\:py-0\.5 {
    padding-top: 0.125rem;
    padding-bottom: 0.125rem;
  }

  .sm\:py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
  }

  .sm\:py-1\.5 {
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
  }

  .sm\:py-16 {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .sm\:py-2\.5 {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
  }

  .sm\:py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }

  .sm\:py-3\.5 {
    padding-top: 0.875rem;
    padding-bottom: 0.875rem;
  }

  .sm\:py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .sm\:py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
  }

  .sm\:py-6 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  .sm\:py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .sm\:pb-0 {
    padding-bottom: 0px;
  }

  .sm\:pb-1 {
    padding-bottom: 0.25rem;
  }

  .sm\:pb-3 {
    padding-bottom: 0.75rem;
  }

  .sm\:pb-4 {
    padding-bottom: 1rem;
  }

  .sm\:pb-5 {
    padding-bottom: 1.25rem;
  }

  .sm\:pb-6 {
    padding-bottom: 1.5rem;
  }

  .sm\:pb-\[var\(--member-list-card-y\)\] {
    padding-bottom: var(--member-list-card-y);
  }

  .sm\:pl-5 {
    padding-left: 1.25rem;
  }

  .sm\:pr-1 {
    padding-right: 0.25rem;
  }

  .sm\:pr-16 {
    padding-right: 4rem;
  }

  .sm\:pr-5 {
    padding-right: 1.25rem;
  }

  .sm\:pt-0 {
    padding-top: 0px;
  }

  .sm\:pt-1 {
    padding-top: 0.25rem;
  }

  .sm\:pt-1\.5 {
    padding-top: 0.375rem;
  }

  .sm\:pt-2 {
    padding-top: 0.5rem;
  }

  .sm\:pt-2\.5 {
    padding-top: 0.625rem;
  }

  .sm\:pt-4 {
    padding-top: 1rem;
  }

  .sm\:pt-5 {
    padding-top: 1.25rem;
  }

  .sm\:pt-6 {
    padding-top: 1.5rem;
  }

  .sm\:pt-7 {
    padding-top: 1.75rem;
  }

  .sm\:text-left {
    text-align: left;
  }

  .sm\:text-right {
    text-align: right;
  }

  .sm\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .sm\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .sm\:text-\[0\.9375rem\] {
    font-size: 0.9375rem;
  }

  .sm\:text-\[1\.7rem\] {
    font-size: 1.7rem;
  }

  .sm\:text-\[10px\] {
    font-size: 10px;
  }

  .sm\:text-\[11px\] {
    font-size: 11px;
  }

  .sm\:text-\[13px\] {
    font-size: 13px;
  }

  .sm\:text-\[15px\] {
    font-size: 15px;
  }

  .sm\:text-\[28px\] {
    font-size: 28px;
  }

  .sm\:text-\[32px\] {
    font-size: 32px;
  }

  .sm\:text-\[9px\] {
    font-size: 9px;
  }

  .sm\:text-base {
    font-size: 1rem;
    line-height: 1.5rem;
  }

  .sm\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .sm\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }

  .sm\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }

  .sm\:text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
  }

  .sm\:leading-none {
    line-height: 1;
  }

  .sm\:tracking-\[0\.4em\] {
    letter-spacing: 0.4em;
  }
  html.desktop-app:not(.tauri-transparent) h1.sm\:text-2xl {
    font-size: 2rem !important; /* 32px */
    line-height: 1.2 !important;
  }
  html.desktop-app:not(.tauri-transparent) .sm\:items-center {
    align-items: center !important;
  }
  html.desktop-app:not(.tauri-transparent) .sm\:justify-between {
    justify-content: space-between !important;
  }
  html.desktop-app:not(.tauri-transparent) .sm\:justify-center {
    justify-content: center !important;
  }
  html.desktop-app:not(.tauri-transparent) .sm\:justify-start {
    justify-content: flex-start !important;
  }
  html.desktop-app:not(.tauri-transparent) .pagination .sm\:gap-3 {
    gap: 0 !important;
  }
  .sm\:\[--member-list-card-x\:1rem\] {
    --member-list-card-x: 1rem;
  }
  .sm\:\[--member-list-card-y\:0\.625rem\] {
    --member-list-card-y: 0.625rem;
  }
}

@media (min-width: 968px) {

  .md\:sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
  }

  .md\:bottom-6 {
    bottom: 1.5rem;
  }

  .md\:left-1\/2 {
    left: 50%;
  }

  .md\:right-6 {
    right: 1.5rem;
  }

  .md\:top-1\/2 {
    top: 50%;
  }

  .md\:mx-0 {
    margin-left: 0px;
    margin-right: 0px;
  }

  .md\:mb-0 {
    margin-bottom: 0px;
  }

  .md\:mb-8 {
    margin-bottom: 2rem;
  }

  .md\:block {
    display: block;
  }

  .md\:inline {
    display: inline;
  }

  .md\:flex {
    display: flex;
  }

  .md\:table {
    display: table;
  }

  .md\:table-cell {
    display: table-cell;
  }

  .md\:grid {
    display: grid;
  }

  .md\:hidden {
    display: none;
  }

  .md\:\!h-6 {
    height: 1.5rem !important;
  }

  .md\:h-12 {
    height: 3rem;
  }

  .md\:h-3\.5 {
    height: 0.875rem;
  }

  .md\:h-6 {
    height: 1.5rem;
  }

  .md\:h-auto {
    height: auto;
  }

  .md\:\!max-h-6 {
    max-height: 1.5rem !important;
  }

  .md\:max-h-6 {
    max-height: 1.5rem;
  }

  .md\:max-h-\[var\(--modal-max-height-desktop\)\] {
    max-height: var(--modal-max-height-desktop);
  }

  .md\:\!min-h-6 {
    min-height: 1.5rem !important;
  }

  .md\:min-h-0 {
    min-height: 0px;
  }

  .md\:min-h-6 {
    min-height: 1.5rem;
  }

  .md\:min-h-\[3\.25rem\] {
    min-height: 3.25rem;
  }

  .md\:min-h-\[4\.25rem\] {
    min-height: 4.25rem;
  }

  .md\:min-h-full {
    min-height: 100%;
  }

  .md\:w-28 {
    width: 7rem;
  }

  .md\:w-3 {
    width: 0.75rem;
  }

  .md\:w-3\.5 {
    width: 0.875rem;
  }

  .md\:w-36 {
    width: 9rem;
  }

  .md\:w-6 {
    width: 1.5rem;
  }

  .md\:w-auto {
    width: auto;
  }

  .md\:w-fit {
    width: -moz-fit-content;
    width: fit-content;
  }

  .md\:w-full {
    width: 100%;
  }

  .md\:min-w-0 {
    min-width: 0px;
  }

  .md\:min-w-\[10rem\] {
    min-width: 10rem;
  }

  .md\:min-w-\[180px\] {
    min-width: 180px;
  }

  .md\:max-w-4xl {
    max-width: 56rem;
  }

  .md\:max-w-\[12rem\] {
    max-width: 12rem;
  }

  .md\:max-w-\[4\.75rem\] {
    max-width: 4.75rem;
  }

  .md\:max-w-\[5\.5rem\] {
    max-width: 5.5rem;
  }

  .md\:max-w-\[6rem\] {
    max-width: 6rem;
  }

  .md\:max-w-\[min\(100\%\2c 22rem\)\] {
    max-width: min(100%, 22rem);
  }

  .md\:max-w-lg {
    max-width: 32rem;
  }

  .md\:max-w-none {
    max-width: none;
  }

  .md\:max-w-sm {
    max-width: 24rem;
  }

  .md\:max-w-xl {
    max-width: 36rem;
  }

  .md\:flex-1 {
    flex: 1 1 0%;
  }

  .md\:flex-none {
    flex: none;
  }

  .md\:basis-0 {
    flex-basis: 0px;
  }

  .md\:basis-auto {
    flex-basis: auto;
  }

  .md\:-translate-x-1\/2 {
    --tw-translate-x: -50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .md\:-translate-y-1\/2 {
    --tw-translate-y: -50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .md\:rotate-0 {
    --tw-rotate: 0deg;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .md\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .md\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .md\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .md\:grid-cols-\[minmax\(9rem\2c 12rem\)_minmax\(0\2c 1fr\)_minmax\(11\.5rem\2c auto\)\] {
    grid-template-columns: minmax(9rem,12rem) minmax(0,1fr) minmax(11.5rem,auto);
  }

  .md\:grid-cols-\[minmax\(9rem\2c 12rem\)_minmax\(0\2c 1fr\)_minmax\(5\.5rem\2c 7rem\)_minmax\(11\.5rem\2c auto\)\] {
    grid-template-columns: minmax(9rem,12rem) minmax(0,1fr) minmax(5.5rem,7rem) minmax(11.5rem,auto);
  }

  .md\:grid-rows-1 {
    grid-template-rows: repeat(1, minmax(0, 1fr));
  }

  .md\:flex-row {
    flex-direction: row;
  }

  .md\:flex-col {
    flex-direction: column;
  }

  .md\:flex-wrap {
    flex-wrap: wrap;
  }

  .md\:flex-nowrap {
    flex-wrap: nowrap;
  }

  .md\:items-start {
    align-items: flex-start;
  }

  .md\:items-center {
    align-items: center;
  }

  .md\:items-stretch {
    align-items: stretch;
  }

  .md\:justify-start {
    justify-content: flex-start;
  }

  .md\:justify-end {
    justify-content: flex-end;
  }

  .md\:justify-center {
    justify-content: center;
  }

  .md\:justify-between {
    justify-content: space-between;
  }

  .md\:gap-0 {
    gap: 0px;
  }

  .md\:gap-0\.5 {
    gap: 0.125rem;
  }

  .md\:gap-1 {
    gap: 0.25rem;
  }

  .md\:gap-1\.5 {
    gap: 0.375rem;
  }

  .md\:gap-2 {
    gap: 0.5rem;
  }

  .md\:gap-3 {
    gap: 0.75rem;
  }

  .md\:gap-4 {
    gap: 1rem;
  }

  .md\:gap-x-4 {
    -moz-column-gap: 1rem;
         column-gap: 1rem;
  }

  .md\:space-x-2 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .md\:overflow-visible {
    overflow: visible;
  }

  .md\:overflow-x-visible {
    overflow-x: visible;
  }

  .md\:rounded-2xl {
    border-radius: 1rem;
  }

  .md\:p-0\.5 {
    padding: 0.125rem;
  }

  .md\:p-4 {
    padding: 1rem;
  }

  .md\:p-5 {
    padding: 1.25rem;
  }

  .md\:p-6 {
    padding: 1.5rem;
  }

  .md\:px-0\.5 {
    padding-left: 0.125rem;
    padding-right: 0.125rem;
  }

  .md\:px-1\.5 {
    padding-left: 0.375rem;
    padding-right: 0.375rem;
  }

  .md\:px-10 {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }

  .md\:px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .md\:px-5 {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .md\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  .md\:py-0\.5 {
    padding-top: 0.125rem;
    padding-bottom: 0.125rem;
  }

  .md\:py-1\.5 {
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
  }

  .md\:py-10 {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }

  .md\:py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .md\:py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .md\:pb-0 {
    padding-bottom: 0px;
  }

  .md\:pb-1\.5 {
    padding-bottom: 0.375rem;
  }

  .md\:pl-7 {
    padding-left: 1.75rem;
  }

  .md\:pt-1\.5 {
    padding-top: 0.375rem;
  }

  .md\:pt-7 {
    padding-top: 1.75rem;
  }

  .md\:text-left {
    text-align: left;
  }

  .md\:\!text-\[11px\] {
    font-size: 11px !important;
  }

  .md\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .md\:text-\[11px\] {
    font-size: 11px;
  }

  .md\:text-base {
    font-size: 1rem;
    line-height: 1.5rem;
  }

  .md\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .md\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
  html.desktop-app:not(.tauri-transparent) .md\:items-center {
    align-items: center !important;
  }
  html.desktop-app:not(.tauri-transparent) .md\:justify-between {
    justify-content: space-between !important;
  }
  html.desktop-app:not(.tauri-transparent) .md\:justify-center {
    justify-content: center !important;
  }
  html.desktop-app:not(.tauri-transparent) .md\:justify-start {
    justify-content: flex-start !important;
  }
  html.desktop-app:not(.tauri-transparent) .md\:grid > [class*="w-full"],
  html.desktop-app:not(.tauri-transparent) .md\:grid > div[class*="w-full"] {
    width: 100% !important;
  }
  html.desktop-app:not(.tauri-transparent) .pagination .md\:gap-3 {
    gap: 0 !important;
  }
  html.desktop-app:not(.tauri-transparent) [class*="rounded-lg"] .md\:grid[class*="grid-cols-2"]:not([class*="md:grid-cols"]):not([class*="lg:grid-cols"]):not([class*="xl:grid-cols"]):not([class*="sm:grid-cols"]),
  html.desktop-app:not(.tauri-transparent) [class*="bg-card"] .md\:grid[class*="grid-cols-2"]:not([class*="md:grid-cols"]):not([class*="lg:grid-cols"]):not([class*="xl:grid-cols"]):not([class*="sm:grid-cols"]),
  html.desktop-app:not(.tauri-transparent) [class*="text-card-foreground"] .md\:grid[class*="grid-cols-2"]:not([class*="md:grid-cols"]):not([class*="lg:grid-cols"]):not([class*="xl:grid-cols"]):not([class*="sm:grid-cols"]) {
    width: 100% !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  html.desktop-app:not(.tauri-transparent) .md\:grid > div > [class*="rounded-lg"][class*="border"],
  html.desktop-app:not(.tauri-transparent) .md\:grid > div > [class*="bg-card"],
  html.desktop-app:not(.tauri-transparent) .md\:grid > [class*="h-full"] > [class*="rounded-lg"],
  html.desktop-app:not(.tauri-transparent) .md\:grid > div[class*="h-full"] > [class*="rounded-lg"] { /* Allow card to shrink if needed */ /* Prevent overflow */ /* Allow card to shrink if needed */ /* Prevent overflow */ /* Allow card to shrink if needed */ /* Prevent overflow */
    width: 100% !important;
    min-width: 0 !important; /* Allow card to shrink if needed */
    max-width: 100% !important; /* Prevent overflow */
  }
  .md\:\[grid-auto-rows\:minmax\(0\2c 1fr\)\] {
    grid-auto-rows: minmax(0,1fr);
  }
  .min-\[968px\]\:size-4 {
    width: 1rem;
    height: 1rem;
  }
  .min-\[968px\]\:size-9 {
    width: 2.25rem;
    height: 2.25rem;
  }
  .min-\[968px\]\:min-h-\[60px\] {
    min-height: 60px;
  }
  .min-\[968px\]\:w-9 {
    width: 2.25rem;
  }
  .min-\[968px\]\:w-\[min\(26\.25rem\2c calc\(100vw-1\.5rem\)\)\] {
    width: min(26.25rem, calc(100vw - 1.5rem));
  }
  .min-\[968px\]\:max-w-\[calc\(100vw-1\.5rem\)\] {
    max-width: calc(100vw - 1.5rem);
  }
  .min-\[968px\]\:gap-2 {
    gap: 0.5rem;
  }
  .min-\[968px\]\:gap-2\.5 {
    gap: 0.625rem;
  }
  .min-\[968px\]\:gap-3 {
    gap: 0.75rem;
  }
  .min-\[968px\]\:gap-x-1\.5 {
    -moz-column-gap: 0.375rem;
         column-gap: 0.375rem;
  }
  .min-\[968px\]\:gap-y-1\.5 {
    row-gap: 0.375rem;
  }
  .min-\[968px\]\:rounded-2xl {
    border-radius: 1rem;
  }
  .min-\[968px\]\:p-3 {
    padding: 0.75rem;
  }
  .min-\[968px\]\:p-4 {
    padding: 1rem;
  }
  .min-\[968px\]\:px-3\.5 {
    padding-left: 0.875rem;
    padding-right: 0.875rem;
  }
  .min-\[968px\]\:pb-3\.5 {
    padding-bottom: 0.875rem;
  }
  .min-\[968px\]\:pl-4 {
    padding-left: 1rem;
  }
  .min-\[968px\]\:pt-3 {
    padding-top: 0.75rem;
  }
  .min-\[968px\]\:text-\[11px\] {
    font-size: 11px;
  }
  .min-\[968px\]\:text-\[13px\] {
    font-size: 13px;
  }
  .min-\[968px\]\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
  .min-\[968px\]\:text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
  }
  html.desktop-app:not(.tauri-transparent) .pagination .min-\[968px\]\:gap-3 {
    gap: 0 !important;
  }
}

@media (min-width: 1280px) {

  .lg\:col-span-1 {
    grid-column: span 1 / span 1;
  }

  .lg\:col-start-1 {
    grid-column-start: 1;
  }

  .lg\:col-start-2 {
    grid-column-start: 2;
  }

  .lg\:row-span-2 {
    grid-row: span 2 / span 2;
  }

  .lg\:row-start-1 {
    grid-row-start: 1;
  }

  .lg\:row-start-2 {
    grid-row-start: 2;
  }

  .lg\:mx-0 {
    margin-left: 0px;
    margin-right: 0px;
  }

  .lg\:mx-4 {
    margin-left: 1rem;
    margin-right: 1rem;
  }

  .lg\:my-2 {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
  }

  .lg\:mb-2 {
    margin-bottom: 0.5rem;
  }

  .lg\:ml-auto {
    margin-left: auto;
  }

  .lg\:mr-0 {
    margin-right: 0px;
  }

  .lg\:block {
    display: block;
  }

  .lg\:flex {
    display: flex;
  }

  .lg\:table-cell {
    display: table-cell;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:h-0 {
    height: 0px;
  }

  .lg\:h-11 {
    height: 2.75rem;
  }

  .lg\:h-\[1\.15rem\] {
    height: 1.15rem;
  }

  .lg\:h-\[5rem\] {
    height: 5rem;
  }

  .lg\:h-\[min\(32rem\2c 60vh\)\] {
    height: min(32rem, 60vh);
  }

  .lg\:h-auto {
    height: auto;
  }

  .lg\:h-full {
    height: 100%;
  }

  .lg\:h-px {
    height: 1px;
  }

  .lg\:max-h-\[var\(--modal-max-height-desktop\)\] {
    max-height: var(--modal-max-height-desktop);
  }

  .lg\:max-h-none {
    max-height: none;
  }

  .lg\:min-h-0 {
    min-height: 0px;
  }

  .lg\:min-h-\[4\.25rem\] {
    min-height: 4.25rem;
  }

  .lg\:w-56 {
    width: 14rem;
  }

  .lg\:w-64 {
    width: 16rem;
  }

  .lg\:w-\[1\.15rem\] {
    width: 1.15rem;
  }

  .lg\:w-auto {
    width: auto;
  }

  .lg\:w-full {
    width: 100%;
  }

  .lg\:w-px {
    width: 1px;
  }

  .lg\:min-w-0 {
    min-width: 0px;
  }

  .lg\:min-w-\[11\.5rem\] {
    min-width: 11.5rem;
  }

  .lg\:min-w-\[16rem\] {
    min-width: 16rem;
  }

  .lg\:min-w-\[220px\] {
    min-width: 220px;
  }

  .lg\:max-w-3xl {
    max-width: 48rem;
  }

  .lg\:max-w-56 {
    max-width: 14rem;
  }

  .lg\:max-w-\[14rem\] {
    max-width: 14rem;
  }

  .lg\:max-w-\[5\.75rem\] {
    max-width: 5.75rem;
  }

  .lg\:max-w-\[6rem\] {
    max-width: 6rem;
  }

  .lg\:max-w-none {
    max-width: none;
  }

  .lg\:flex-1 {
    flex: 1 1 0%;
  }

  .lg\:flex-none {
    flex: none;
  }

  .lg\:shrink-0 {
    flex-shrink: 0;
  }

  .lg\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lg\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .lg\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .lg\:grid-cols-\[14rem_minmax\(0\2c 1fr\)\] {
    grid-template-columns: 14rem minmax(0,1fr);
  }

  .lg\:grid-cols-\[280px_1fr\] {
    grid-template-columns: 280px 1fr;
  }

  .lg\:grid-cols-\[minmax\(0\2c 0\.95fr\)_minmax\(0\2c 1\.05fr\)\] {
    grid-template-columns: minmax(0,0.95fr) minmax(0,1.05fr);
  }

  .lg\:grid-cols-\[minmax\(0\2c 1\.05fr\)_minmax\(0\2c 1fr\)\] {
    grid-template-columns: minmax(0,1.05fr) minmax(0,1fr);
  }

  .lg\:grid-cols-\[minmax\(0\2c 1\.1fr\)_minmax\(0\2c 1fr\)_minmax\(180px\2c 220px\)\] {
    grid-template-columns: minmax(0,1.1fr) minmax(0,1fr) minmax(180px,220px);
  }

  .lg\:grid-cols-\[repeat\(auto-fit\2c minmax\(10\.5rem\2c 1fr\)\)\] {
    grid-template-columns: repeat(auto-fit,minmax(10.5rem,1fr));
  }

  .lg\:grid-rows-\[minmax\(0\2c 1fr\)_auto\] {
    grid-template-rows: minmax(0,1fr) auto;
  }

  .lg\:flex-row {
    flex-direction: row;
  }

  .lg\:flex-col {
    flex-direction: column;
  }

  .lg\:flex-wrap {
    flex-wrap: wrap;
  }

  .lg\:items-start {
    align-items: flex-start;
  }

  .lg\:items-end {
    align-items: flex-end;
  }

  .lg\:items-center {
    align-items: center;
  }

  .lg\:items-stretch {
    align-items: stretch;
  }

  .lg\:justify-end {
    justify-content: flex-end;
  }

  .lg\:justify-center {
    justify-content: center;
  }

  .lg\:justify-between {
    justify-content: space-between;
  }

  .lg\:gap-0 {
    gap: 0px;
  }

  .lg\:gap-1 {
    gap: 0.25rem;
  }

  .lg\:gap-1\.5 {
    gap: 0.375rem;
  }

  .lg\:gap-2 {
    gap: 0.5rem;
  }

  .lg\:gap-3 {
    gap: 0.75rem;
  }

  .lg\:gap-6 {
    gap: 1.5rem;
  }

  .lg\:gap-x-8 {
    -moz-column-gap: 2rem;
         column-gap: 2rem;
  }

  .lg\:gap-y-1\.5 {
    row-gap: 0.375rem;
  }

  .lg\:gap-y-3 {
    row-gap: 0.75rem;
  }

  .lg\:self-stretch {
    align-self: stretch;
  }

  .lg\:overflow-hidden {
    overflow: hidden;
  }

  .lg\:overflow-visible {
    overflow: visible;
  }

  .lg\:overflow-y-auto {
    overflow-y: auto;
  }

  .lg\:overflow-x-visible {
    overflow-x: visible;
  }

  .lg\:overflow-y-visible {
    overflow-y: visible;
  }

  .lg\:overscroll-contain {
    overscroll-behavior: contain;
  }

  .lg\:rounded-xl {
    border-radius: 0.75rem;
  }

  .lg\:border {
    border-width: 1px;
  }

  .lg\:border-border\/50 {
    border-color: hsl(var(--border) / 0.5);
  }

  .lg\:bg-muted\/50 {
    background-color: hsl(var(--muted) / 0.5);
  }

  .lg\:p-1\.5 {
    padding: 0.375rem;
  }

  .lg\:px-1\.5 {
    padding-left: 0.375rem;
    padding-right: 0.375rem;
  }

  .lg\:px-16 {
    padding-left: 4rem;
    padding-right: 4rem;
  }

  .lg\:px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .lg\:py-1\.5 {
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
  }

  .lg\:py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .lg\:pb-0 {
    padding-bottom: 0px;
  }

  .lg\:pb-1 {
    padding-bottom: 0.25rem;
  }

  .lg\:pb-2 {
    padding-bottom: 0.5rem;
  }

  .lg\:pr-1 {
    padding-right: 0.25rem;
  }

  .lg\:pt-2 {
    padding-top: 0.5rem;
  }

  .lg\:text-center {
    text-align: center;
  }

  .lg\:text-\[1\.65rem\] {
    font-size: 1.65rem;
  }

  .lg\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }

  .lg\:leading-snug {
    line-height: 1.375;
  }
  html.desktop-app:not(.tauri-transparent) .lg\:items-center {
    align-items: center !important;
  }
  html.desktop-app:not(.tauri-transparent) .lg\:justify-between {
    justify-content: space-between !important;
  }
  html.desktop-app:not(.tauri-transparent) .lg\:justify-center {
    justify-content: center !important;
  }
  html.desktop-app:not(.tauri-transparent) .pagination .lg\:gap-3 {
    gap: 0 !important;
  }
}

@media (min-width: 1536px) {

  .\32xl\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

@media (min-width: 1644px) {

  .xl\:inline {
    display: inline;
  }

  .xl\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .xl\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .xl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .xl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .xl\:grid-cols-5 {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .xl\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .xl\:grid-cols-\[1fr_minmax\(220px\2c 280px\)\] {
    grid-template-columns: 1fr minmax(220px,280px);
  }

  .xl\:grid-cols-\[minmax\(0\2c 0\.9fr\)_minmax\(0\2c 1\.1fr\)\] {
    grid-template-columns: minmax(0,0.9fr) minmax(0,1.1fr);
  }
}

.\[\&\:\:-webkit-scrollbar-thumb\]\:rounded-full::-webkit-scrollbar-thumb {
  border-radius: 9999px;
}

.\[\&\:\:-webkit-scrollbar-thumb\]\:bg-muted-foreground\/25::-webkit-scrollbar-thumb {
  background-color: hsl(var(--muted-foreground) / 0.25);
}

.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar {
  display: none;
}

.\[\&\:\:-webkit-scrollbar\]\:h-1\.5::-webkit-scrollbar {
  height: 0.375rem;
}

.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]) {
  background-color: hsl(var(--accent));
}

.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child {
  border-top-left-radius: calc(var(--radius) - 2px);
  border-bottom-left-radius: calc(var(--radius) - 2px);
}

.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child {
  border-top-right-radius: calc(var(--radius) - 2px);
  border-bottom-right-radius: calc(var(--radius) - 2px);
}

.\[\&\>\*\]\:col-start-1>* {
  grid-column-start: 1;
}

.\[\&\>\*\]\:row-start-1>* {
  grid-row-start: 1;
}

.\[\&\>\*\]\:min-w-0>* {
  min-width: 0px;
}

.\[\&\>button\]\:rounded-none>button {
  border-radius: 0px;
}

.\[\&\>button\]\:\!bg-primary>button {
  background-color: hsl(var(--primary)) !important;
}

.\[\&\>button\]\:bg-accent>button {
  background-color: hsl(var(--accent));
}

.\[\&\>button\]\:\!text-primary-foreground>button {
  color: hsl(var(--primary-foreground)) !important;
}

.\[\&\>button\]\:text-accent-foreground>button {
  color: hsl(var(--accent-foreground));
}

.\[\&\>button\]\:text-muted-foreground>button {
  color: hsl(var(--muted-foreground));
}

.\[\&\>button\]\:hover\:\!bg-primary:hover>button {
  background-color: hsl(var(--primary)) !important;
}

.\[\&\>button\]\:hover\:\!text-primary-foreground:hover>button {
  color: hsl(var(--primary-foreground)) !important;
}

.\[\&\>button\]\:focus\:\!bg-primary:focus>button {
  background-color: hsl(var(--primary)) !important;
}

.\[\&\>button\]\:focus\:\!text-primary-foreground:focus>button {
  color: hsl(var(--primary-foreground)) !important;
}

.\[\&\>div\]\:min-h-0>div {
  min-height: 0px;
}

.\[\&\>div\]\:min-h-\[28px\]>div {
  min-height: 28px;
}

.\[\&\>div\]\:flex-1>div {
  flex: 1 1 0%;
}

.\[\&\>span\:first-child\]\:gap-1>span:first-child {
  gap: 0.25rem;
}

.\[\&\>span\]\:h-2\.5>span {
  height: 0.625rem;
}

.\[\&\>span\]\:w-2\.5>span {
  width: 0.625rem;
}

.\[\&\>span\]\:border-0>span {
  border-width: 0px;
}

.\[\&\>span\]\:shadow-sm>span {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.data-\[state\=checked\]\:\[\&\>span\]\:translate-x-2\.5>span[data-state="checked"] {
  --tw-translate-x: 0.625rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.data-\[state\=unchecked\]\:\[\&\>span\]\:translate-x-0>span[data-state="unchecked"] {
  --tw-translate-x: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.\[\&\>svg\]\:block>svg {
  display: block;
}

.\[\&\>svg\]\:size-4>svg {
  width: 1rem;
  height: 1rem;
}

.\[\&\>svg\]\:h-4>svg {
  height: 1rem;
}

.\[\&\>svg\]\:w-4>svg {
  width: 1rem;
}

.\[\&\>svg\]\:shrink-0>svg {
  flex-shrink: 0;
}

.\[\&\>svg\]\:transition-colors>svg {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

@media (min-width: 968px) {

  .min-\[968px\]\:\[\&\>svg\]\:size-\[1\.125rem\]>svg {
    width: 1.125rem;
    height: 1.125rem;
  }
}

.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.\[\&\[hidden\]\]\:block[hidden] {
  display: block;
}

.\[\&_button\.text-destructive\]\:hover\:\!bg-destructive\/10:hover button.text-destructive {
  background-color: hsl(var(--destructive) / 0.1) !important;
}

.\[\&_button\.text-destructive\]\:hover\:\!text-destructive:hover button.text-destructive {
  color: hsl(var(--destructive)) !important;
}

.\[\&_button\:disabled\]\:\!animate-none button:disabled {
  animation: none !important;
}

.\[\&_button\:disabled\]\:\!opacity-50 button:disabled {
  opacity: 0.5 !important;
}

.\[\&_button\]\:\!h-8 button {
  height: 2rem !important;
}

.\[\&_button\]\:\!min-h-0 button {
  min-height: 0px !important;
}

.\[\&_button\]\:\!min-w-8 button {
  min-width: 2rem !important;
}

.\[\&_button\]\:\!scale-100 button {
  --tw-scale-x: 1 !important;
  --tw-scale-y: 1 !important;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}

.\[\&_button\]\:\!rounded-md button {
  border-radius: calc(var(--radius) - 2px) !important;
}

.\[\&_button\]\:\!border-0 button {
  border-width: 0px !important;
}

.\[\&_button\]\:\!bg-transparent button {
  background-color: transparent !important;
}

.\[\&_button\]\:\!shadow-none button {
  --tw-shadow: 0 0 #0000 !important;
  --tw-shadow-colored: 0 0 #0000 !important;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important;
}

.\[\&_button\]\:hover\:\!scale-100:hover button {
  --tw-scale-x: 1 !important;
  --tw-scale-y: 1 !important;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}

.\[\&_button\]\:hover\:animate-none:hover button {
  animation: none;
}

.\[\&_button\]\:hover\:\!bg-primary\/10:hover button {
  background-color: hsl(var(--primary) / 0.1) !important;
}

.\[\&_button\]\:hover\:\!text-primary:hover button {
  color: hsl(var(--primary)) !important;
}

.\[\&_button\]\:active\:\!scale-100:active button {
  --tw-scale-x: 1 !important;
  --tw-scale-y: 1 !important;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}

@media (prefers-reduced-motion: no-preference) {

  @keyframes rail-action-pulse {

    0%, 100% {
      background-color: hsl(var(--primary) / 0);
    }

    50% {
      background-color: hsl(var(--primary) / 0.14);
    }
  }

  .\[\&_button\]\:motion-safe\:animate-rail-action-pulse button {
    animation: rail-action-pulse 1.6s ease-in-out infinite;
  }
}

@media (prefers-reduced-motion: reduce) {

  .\[\&_button\]\:motion-reduce\:animate-none button {
    animation: none;
  }
}

.\[\&_span\]\:text-inherit span {
  color: inherit;
}

.\[\&_svg\.animate-spin\]\:transition-none svg.animate-spin {
  transition-property: none;
}

.\[\&_svg\]\:pointer-events-none svg {
  pointer-events: none;
}

.\[\&_svg\]\:block svg {
  display: block;
}

.\[\&_svg\]\:size-3\.5 svg {
  width: 0.875rem;
  height: 0.875rem;
}

.\[\&_svg\]\:size-4 svg {
  width: 1rem;
  height: 1rem;
}

.\[\&_svg\]\:size-full svg {
  width: 100%;
  height: 100%;
}

.\[\&_svg\]\:h-3 svg {
  height: 0.75rem;
}

.\[\&_svg\]\:h-3\.5 svg {
  height: 0.875rem;
}

.\[\&_svg\]\:h-4 svg {
  height: 1rem;
}

.\[\&_svg\]\:h-5 svg {
  height: 1.25rem;
}

.\[\&_svg\]\:h-8 svg {
  height: 2rem;
}

.\[\&_svg\]\:h-full svg {
  height: 100%;
}

.\[\&_svg\]\:max-h-full svg {
  max-height: 100%;
}

.\[\&_svg\]\:w-3 svg {
  width: 0.75rem;
}

.\[\&_svg\]\:w-3\.5 svg {
  width: 0.875rem;
}

.\[\&_svg\]\:w-4 svg {
  width: 1rem;
}

.\[\&_svg\]\:w-5 svg {
  width: 1.25rem;
}

.\[\&_svg\]\:w-8 svg {
  width: 2rem;
}

.\[\&_svg\]\:w-full svg {
  width: 100%;
}

.\[\&_svg\]\:max-w-full svg {
  max-width: 100%;
}

.\[\&_svg\]\:shrink-0 svg {
  flex-shrink: 0;
}

.\[\&_svg\]\:text-current svg {
  color: currentColor;
}

.\[\&_svg\]\:text-destructive svg {
  color: hsl(var(--destructive));
}

.\[\&_svg\]\:text-muted-foreground svg {
  color: hsl(var(--muted-foreground));
}

.\[\&_svg\]\:text-primary svg {
  color: hsl(var(--primary));
}

.\[\&_svg\]\:opacity-90 svg {
  opacity: 0.9;
}

.\[\&_svg\]\:transition-transform svg {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.\[\&_svg\]\:duration-200 svg {
  transition-duration: 200ms;
}

.\[\&_svg\]\:ease-out svg {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

@media (min-width: 640px) {

  .sm\:\[\&_svg\]\:h-10 svg {
    height: 2.5rem;
  }

  .sm\:\[\&_svg\]\:w-10 svg {
    width: 2.5rem;
  }
}
