/* 
 * File: static/css/src/input.css
 * Main CSS Entry Point for CaseConnect Design System
 * FIXED: PostCSS compatible structure with @imports BEFORE @tailwind directives
 */

/* ============================================================================
 * COMPONENT IMPORTS - Must come BEFORE @tailwind directives
 * ============================================================================ */

/* Import all component CSS files FIRST */

/* 
 * File: static/css/src/components/base.css
 * ENHANCED: Base styles with header-only layout support
 * PRESERVES: All existing functionality while adding wireframe enhancements
 * INTEGRATES: With layouts.css and navigation.css for complete system
 */

/* 
 * File: static/css/src/components/layouts.css
 * FIXED: Header-Only Layout System with proper Tailwind color references
 */

/* 
 * File: static/css/src/components/navigation.css
 * FIXED: Navigation Components with proper Tailwind color references
 */

/* 
 * File: static/css/src/components/tables.css
 * REFACTORED: Complete Professional Legal Table System for Case Connect
 * UPDATED: To match refactored layout system and comprehensive legal workflow requirements
 * INTEGRATES: With new layout.css, base.css, navigation.css, buttons.css, forms.css, and modals.css architecture
 */

/* 
 * File: static/css/src/components/buttons.css
 * REFACTORED: Professional Legal Button System for Case Connect
 * UPDATED: To match refactored layout system with CSS custom properties
 * INTEGRATES: With new layout.css, base.css, and navigation.css architecture
 */

/* 
 * File: static/css/src/components/modals-fixed.css
 * Fixed version of modals.css to resolve PostCSS compilation errors
 * Simplified structure with careful Tailwind integration
 */

/* ============================================================================
 * RESPONSIVE DESIGN - Outside @layer to avoid conflicts
 * ============================================================================ */

@media (max-width: 768px) {
  .modal { padding: 0.5rem; padding: var(--util-space-2); align-items: flex-end;
  }

  .modal-container { width: 100%; width: var(--util-size-full); max-height: 100vh;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  }

  .modal-full .modal-container,
  .modal-xl .modal-container,
  .modal-lg .modal-container { width: 100%; max-width: 100%; width: var(--util-size-full); max-width: var(--util-size-full);
  }

  .modal-header { padding: 1rem; padding: var(--util-space-4);
  }

  .modal-body { padding: 1rem; padding: var(--util-space-4);
  }

  .modal-footer { gap: 0.5rem; padding: 1rem; padding: var(--util-space-4); gap: var(--util-space-2); flex-direction: column-reverse;
  }

  .modal-footer-actions { width: 100%; justify-content: stretch; width: var(--util-size-full);
  }

  .modal-footer-actions .modal-action-primary,
  .modal-footer-actions .modal-action-secondary,
  .modal-footer-actions .modal-action-danger { flex: 1 1 0%; justify-content: center;
  }

  /* Mobile modal animations */
  .modal.modal-entering .modal-container {
    animation: modalSlideInMobile var(--modal-transition-enter);
  }

  .modal.modal-exiting .modal-container {
    animation: modalSlideOutMobile var(--modal-transition-exit);
  }

  @keyframes modalSlideInMobile {
    from {
      transform: translateY(100%);
    }
    to {
      transform: translateY(0);
    }
  }

  @keyframes modalSlideOutMobile {
    from {
      transform: translateY(0);
    }
    to {
      transform: translateY(100%);
    }
  }

  /* Toast positioning on mobile */
  .toast-container { bottom: 1rem; left: 1rem; right: 1rem; max-width: none; top: auto;
  }
}

@media (max-width: 480px) {
  .modal { padding: 0px; padding: var(--util-space-0);
  }

  .modal-container { border-radius: 0px; height: 100vh; max-height: 100vh; border-radius: 0;
  }

  .modal-header { padding-left: 1rem; padding-right: 1rem; padding-top: 0.75rem; padding-bottom: 0.75rem; padding-left: var(--util-space-4); padding-right: var(--util-space-4); padding-top: var(--util-space-3); padding-bottom: var(--util-space-3);
  }

  .modal-body { padding-left: 1rem; padding-right: 1rem; padding-top: 0.75rem; padding-bottom: 0.75rem; padding-left: var(--util-space-4); padding-right: var(--util-space-4); padding-top: var(--util-space-3); padding-bottom: var(--util-space-3);
  }

  .modal-footer { padding-left: 1rem; padding-right: 1rem; padding-top: 0.75rem; padding-bottom: 0.75rem; padding-left: var(--util-space-4); padding-right: var(--util-space-4); padding-top: var(--util-space-3); padding-bottom: var(--util-space-3);
  }

  .modal-title { font-size: 1.125rem; line-height: 1.75rem;
  }

  .modal-confirm .modal-body { padding-bottom: 1.5rem; padding-left: 1rem; padding-right: 1rem; padding-top: 1.5rem; padding-left: var(--util-space-4); padding-right: var(--util-space-4); padding-top: var(--util-space-6); padding-bottom: var(--util-space-6);
  }

  .modal-confirm-icon { height: 3rem; width: 3rem; height: var(--util-space-12);
  }

  /* Full screen for small mobile */
  .modal-sm .modal-container,
  .modal-md .modal-container,
  .modal-confirm .modal-container { width: 100%; max-width: 100%; width: var(--util-size-full); max-width: var(--util-size-full);
  }
}

/* ============================================================================
 * ACCESSIBILITY ENHANCEMENTS
 * ============================================================================ */

@media (prefers-contrast: high) {
  .modal-container { --tw-border-opacity: 1; border-color: rgb(17 24 39 / var(--tw-border-opacity, 1)); border-width: 2px;
  }

  .modal-header,
  .modal-footer { --tw-border-opacity: 1; border-color: rgb(17 24 39 / var(--tw-border-opacity, 1));
  }

  .modal-action-primary,
  .modal-action-secondary,
  .modal-action-danger { border-width: 2px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .modal,
  .modal-container {
    transition: none;
  }

  .modal.modal-entering .modal-container,
  .modal.modal-exiting .modal-container {
    animation: none;
  }

  .modal-spinner {
    animation: none;
  }

  .toast {
    transition: none;
  }
}

.modal-close:focus-visible,
.modal-action-primary:focus-visible,
.modal-action-secondary:focus-visible,
.modal-action-danger:focus-visible {
  box-shadow: 0 0 0 2px rgb(var(--color-primary-500));
}

/* 
 * File: static/css/src/components/cards.css
 * UPDATED: Card system aligned with Case Connect design system
 * INTEGRATES: With shell templates and standardized class names
 */

/* 
 * File: static/css/src/components/typography.css
 * Professional typography system for legal document display - ERROR-FREE VERSION
 * Optimized for legal professionals, court documents, and client communication
 * All CSS uses standard properties - NO @apply directives - no 
 */

/* 
 * File: static/css/src/components/htmx-transitions.css
 * REFACTORED: Complete HTMX Animation & Transition System for CaseConnect
 * UPDATED: To match refactored layout system and comprehensive legal workflow requirements
 * INTEGRATES: With new layout.css, base.css, navigation.css architecture
 */

/* 
 * File: static/css/src/components/utilities.css
 * REFACTORED: Complete Utility Class System for CaseConnect
 * UPDATED: To match refactored layout system and comprehensive legal workflow requirements
 * INTEGRATES: With new layout.css, base.css, navigation.css architecture
 * CONSOLIDATES: All utility classes from various components into single source
 */

/* ============================================================================
 * TAILWIND DIRECTIVES - Base, components, and utilities
 * ============================================================================ */

*, ::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.17 | 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 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif; /* 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: SF Mono, Monaco, Cascadia Code, Roboto Mono, Consolas, 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;
}

[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select { -webkit-appearance: none; -moz-appearance: none; appearance: none; background-color: #fff; border-color: #6b7280; border-width: 1px; border-radius: 0px; padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; font-size: 1rem; line-height: 1.5rem; --tw-shadow: 0 0 #0000;
}

[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus { outline: 2px solid transparent; outline-offset: 2px; --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #2563eb; --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); border-color: #2563eb;
}

input::-moz-placeholder, textarea::-moz-placeholder { color: #6b7280; opacity: 1;
}

input::placeholder,textarea::placeholder { color: #6b7280; opacity: 1;
}

::-webkit-datetime-edit-fields-wrapper { padding: 0;
}

::-webkit-date-and-time-value { min-height: 1.5em; text-align: inherit;
}

::-webkit-datetime-edit { display: inline-flex;
}

::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field { padding-top: 0; padding-bottom: 0;
}

select { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); background-position: right 0.5rem center; background-repeat: no-repeat; background-size: 1.5em 1.5em; padding-right: 2.5rem; -webkit-print-color-adjust: exact; print-color-adjust: exact;
}

[multiple],[size]:where(select:not([size="1"])) { background-image: initial; background-position: initial; background-repeat: unset; background-size: initial; padding-right: 0.75rem; -webkit-print-color-adjust: unset; print-color-adjust: unset;
}

[type='checkbox'],[type='radio'] { -webkit-appearance: none; -moz-appearance: none; appearance: none; padding: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; display: inline-block; vertical-align: middle; background-origin: border-box; -webkit-user-select: none; -moz-user-select: none; user-select: none; flex-shrink: 0; height: 1rem; width: 1rem; color: #2563eb; background-color: #fff; border-color: #6b7280; border-width: 1px; --tw-shadow: 0 0 #0000;
}

[type='checkbox'] { border-radius: 0px;
}

[type='radio'] { border-radius: 100%;
}

[type='checkbox']:focus,[type='radio']:focus { outline: 2px solid transparent; outline-offset: 2px; --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); --tw-ring-offset-width: 2px; --tw-ring-offset-color: #fff; --tw-ring-color: #2563eb; --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);
}

[type='checkbox']:checked,[type='radio']:checked { border-color: transparent; background-color: currentColor; background-size: 100% 100%; background-position: center; background-repeat: no-repeat;
}

[type='checkbox']:checked { background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
}

@media (forced-colors: active)  {

  [type='checkbox']:checked { -webkit-appearance: auto; -moz-appearance: auto; appearance: auto;
  }
}

[type='radio']:checked { background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
}

@media (forced-colors: active)  {

  [type='radio']:checked { -webkit-appearance: auto; -moz-appearance: auto; appearance: auto;
  }
}

[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus { border-color: transparent; background-color: currentColor;
}

[type='checkbox']:indeterminate { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); border-color: transparent; background-color: currentColor; background-size: 100% 100%; background-position: center; background-repeat: no-repeat;
}

@media (forced-colors: active)  {

  [type='checkbox']:indeterminate { -webkit-appearance: auto; -moz-appearance: auto; appearance: auto;
  }
}

[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus { border-color: transparent; background-color: currentColor;
}

[type='file'] { background: unset; border-color: inherit; border-width: 0; border-radius: 0; padding: 0; font-size: unset; line-height: inherit;
}

[type='file']:focus { outline: 1px solid ButtonText; outline: 1px auto -webkit-focus-ring-color;
}

/* ============================================================================
   * ROOT VARIABLES - Enhanced for Header-Only Layout
   * ============================================================================ */

:root {
    /* EXISTING: Preserved color system */
    --color-primary-50: 239 246 255;
    --color-primary-100: 219 234 254;
    --color-primary-200: 191 219 254;
    --color-primary-300: 147 197 253;
    --color-primary-400: 96 165 250;
    --color-primary-500: 59 130 246;
    --color-primary-600: 37 99 235;
    --color-primary-700: 29 78 216;
    --color-primary-800: 30 64 175;
    --color-primary-900: 30 58 138;
    --color-primary-950: 23 37 84;
    
    --color-secondary-50: 236 253 245;
    --color-secondary-100: 209 250 229;
    --color-secondary-200: 167 243 208;
    --color-secondary-300: 110 231 183;
    --color-secondary-400: 52 211 153;
    --color-secondary-500: 16 185 129;
    --color-secondary-600: 5 150 105;
    --color-secondary-700: 4 120 87;
    --color-secondary-800: 6 95 70;
    --color-secondary-900: 6 78 59;
    --color-secondary-950: 2 44 34;
    
    --color-neutral-50: 250 250 249;
    --color-neutral-100: 245 245 244;
    --color-neutral-200: 231 229 228;
    --color-neutral-300: 214 211 209;
    --color-neutral-400: 168 162 158;
    --color-neutral-500: 120 113 108;
    --color-neutral-600: 87 83 78;
    --color-neutral-700: 68 64 60;
    --color-neutral-800: 41 37 36;
    --color-neutral-900: 28 25 23;
    --color-neutral-950: 12 10 9;
    
    /* EXISTING: Semantic colors preserved */
    --color-success-50: 240 253 244;
    --color-success-100: 220 252 231;
    --color-success-200: 187 247 208;
    --color-success-300: 134 239 172;
    --color-success-400: 74 222 128;
    --color-success-500: 34 197 94;
    --color-success-600: 22 163 74;
    --color-success-700: 21 128 61;
    --color-success-800: 22 101 52;
    --color-success-900: 20 83 45;
    --color-success-950: 5 46 22;
    
    --color-warning-50: 255 251 235;
    --color-warning-100: 254 243 199;
    --color-warning-200: 253 230 138;
    --color-warning-300: 252 211 77;
    --color-warning-400: 251 191 36;
    --color-warning-500: 245 158 11;
    --color-warning-600: 217 119 6;
    --color-warning-700: 180 83 9;
    --color-warning-800: 146 64 14;
    --color-warning-900: 120 53 15;
    --color-warning-950: 69 26 3;
    
    --color-error-50: 254 242 242;
    --color-error-100: 254 226 226;
    --color-error-200: 254 202 202;
    --color-error-300: 252 165 165;
    --color-error-400: 248 113 113;
    --color-error-500: 239 68 68;
    --color-error-600: 220 38 38;
    --color-error-700: 185 28 28;
    --color-error-800: 153 27 27;
    --color-error-900: 127 29 29;
    --color-error-950: 69 10 10;
    
    --color-info-50: 239 246 255;
    --color-info-100: 219 234 254;
    --color-info-200: 191 219 254;
    --color-info-300: 147 197 253;
    --color-info-400: 96 165 250;
    --color-info-500: 59 130 246;
    --color-info-600: 37 99 235;
    --color-info-700: 29 78 216;
    --color-info-800: 30 64 175;
    --color-info-900: 30 58 138;
    --color-info-950: 23 37 84;
    
    /* ADD: Wireframe-specific color variables */
    --color-case-navy: 29 53 87;        /* #1D3557 - Professional navy */
    --color-case-orange: 244 162 97;    /* #F4A261 - Accent orange */
    --color-case-green: 42 157 143;     /* #2A9D8F - Success green */
    --color-case-red: 231 111 81;       /* #E76F51 - Error red */
    --color-case-neutral: 248 249 250;  /* #F8F9FA - Light background */
    
    /* EXISTING: Layout dimensions preserved */
    --sidebar-width: 16rem;
    --sidebar-collapsed: 4rem;
    --header-height: 4rem;
    --content-max-width: 80rem;
    
    /* ADD: Header-only layout dimensions */
    --nav-slide-width: 20rem;           /* Slide-out menu width */
    --nav-slide-mobile-width: 85vw;     /* Mobile slide-out width */
    --matter-sidebar-width: 20rem;      /* Matter left panel */
    --matter-actions-width: 18rem;      /* Matter right panel */
    --wireframe-header-height: 4rem;    /* Consistent header height */
    --matter-context-height: 8rem;      /* Matter header context */
    
    /* ADD: Z-index system for layering */
    --z-base: 0;
    --z-header: 50;
    --z-backdrop: 60;
    --z-slide-menu: 70;
    --z-tooltip: 80;
    --z-dropdown: 90;
    --z-modal: 100;
    --z-toast: 110;
    
    /* ADD: Animation timing system */
    --timing-fast: 150ms ease;
    --timing-normal: 200ms ease;
    --timing-slow: 300ms ease;
    --timing-menu: 300ms cubic-bezier(0.4, 0, 0.2, 1);
    --timing-modal: 250ms cubic-bezier(0.4, 0, 0.6, 1);
    --timing-bounce: 400ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
    
    /* ADD: Border radius system */
    --radius-sm: 0.25rem;
    --radius-md: 0.375rem;
    --radius-lg: 0.5rem;
    --radius-xl: 0.75rem;
    --radius-2xl: 1rem;
    --radius-full: 9999px;
    
    /* ADD: Shadow system */
    --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -1px rgb(0 0 0 / 0.06);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -2px rgb(0 0 0 / 0.05);
    --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 10px 10px -5px rgb(0 0 0 / 0.04);
    --shadow-case: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    
    /* ADD: Spacing scale enhancements */
    --space-px: 1px;
    --space-0: 0;
    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-7: 1.75rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;
    --space-24: 6rem;
    --space-32: 8rem;
    
    /* ADD: Typography scale */
    --text-xs: 0.75rem;
    --text-sm: 0.875rem;
    --text-base: 1rem;
    --text-lg: 1.125rem;
    --text-xl: 1.25rem;
    --text-2xl: 1.5rem;
    --text-3xl: 1.875rem;
    --text-4xl: 2.25rem;
    --text-5xl: 3rem;
    
    /* ADD: Line height scale */
    --leading-tight: 1.25;
    --leading-snug: 1.375;
    --leading-normal: 1.5;
    --leading-relaxed: 1.625;
    --leading-loose: 2;
  }

/* ============================================================================
   * BASE HTML AND BODY - Enhanced
   * ============================================================================ */

html {
    font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    line-height: var(--leading-normal);
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    text-size-adjust: 100%;
    -moz-tab-size: 4;
      -o-tab-size: 4;
         tab-size: 4;
    scroll-behavior: smooth;
  }

@media (prefers-reduced-motion: reduce) {
    html {
      scroll-behavior: auto;
    }
  }

body {
    margin: 0;
    font-family: inherit;
    line-height: inherit;
    color: rgb(var(--color-neutral-800));
    background-color: rgb(var(--color-neutral-50));
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
  }

/* ADD: Prevent horizontal scroll on mobile */

body {
    overflow-x: hidden;
  }

/* ADD: High contrast mode support */

@media (prefers-contrast: high) {
    body {
      background-color: rgb(255 255 255);
      color: rgb(0 0 0);
    }
  }

.\!container { width: 100% !important;
}

.container { width: 100%;
}

@media (min-width: 475px) {

  .\!container { max-width: 475px !important;
  }

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

@media (min-width: 640px) {

  .\!container { max-width: 640px !important;
  }

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

@media (min-width: 768px) {

  .\!container { max-width: 768px !important;
  }

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

@media (min-width: 1024px) {

  .\!container { max-width: 1024px !important;
  }

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

@media (min-width: 1280px) {

  .\!container { max-width: 1280px !important;
  }

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

@media (min-width: 1536px) {

  .\!container { max-width: 1536px !important;
  }

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

@media (min-width: 1920px) {

  .\!container { max-width: 1920px !important;
  }

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

.form-input,.form-textarea,.form-select,.form-multiselect { -webkit-appearance: none; -moz-appearance: none; appearance: none; background-color: #fff; border-color: #6b7280; border-width: 1px; border-radius: 0px; padding-top: 0.5rem; padding-right: 0.75rem; padding-bottom: 0.5rem; padding-left: 0.75rem; font-size: 1rem; line-height: 1.5rem; --tw-shadow: 0 0 #0000;
}

.form-input:focus, .form-textarea:focus, .form-select:focus, .form-multiselect:focus { outline: 2px solid transparent; outline-offset: 2px; --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: #2563eb; --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); border-color: #2563eb;
}

.form-input::-moz-placeholder, .form-textarea::-moz-placeholder { color: #6b7280; opacity: 1;
}

.form-input::placeholder,.form-textarea::placeholder { color: #6b7280; opacity: 1;
}

.form-input::-webkit-datetime-edit-fields-wrapper { padding: 0;
}

.form-input::-webkit-date-and-time-value { min-height: 1.5em; text-align: inherit;
}

.form-input::-webkit-datetime-edit { display: inline-flex;
}

.form-input::-webkit-datetime-edit,.form-input::-webkit-datetime-edit-year-field,.form-input::-webkit-datetime-edit-month-field,.form-input::-webkit-datetime-edit-day-field,.form-input::-webkit-datetime-edit-hour-field,.form-input::-webkit-datetime-edit-minute-field,.form-input::-webkit-datetime-edit-second-field,.form-input::-webkit-datetime-edit-millisecond-field,.form-input::-webkit-datetime-edit-meridiem-field { padding-top: 0; padding-bottom: 0;
}

.form-select { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); background-position: right 0.5rem center; background-repeat: no-repeat; background-size: 1.5em 1.5em; padding-right: 2.5rem; -webkit-print-color-adjust: exact; print-color-adjust: exact;
}

.form-select:where([size]:not([size="1"])) { background-image: initial; background-position: initial; background-repeat: unset; background-size: initial; padding-right: 0.75rem; -webkit-print-color-adjust: unset; print-color-adjust: unset;
}

.form-checkbox,.form-radio { -webkit-appearance: none; -moz-appearance: none; appearance: none; padding: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; display: inline-block; vertical-align: middle; background-origin: border-box; -webkit-user-select: none; -moz-user-select: none; user-select: none; flex-shrink: 0; height: 1rem; width: 1rem; color: #2563eb; background-color: #fff; border-color: #6b7280; border-width: 1px; --tw-shadow: 0 0 #0000;
}

.form-checkbox { border-radius: 0px;
}

.form-radio { border-radius: 100%;
}

.form-checkbox:focus,.form-radio:focus { outline: 2px solid transparent; outline-offset: 2px; --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); --tw-ring-offset-width: 2px; --tw-ring-offset-color: #fff; --tw-ring-color: #2563eb; --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);
}

.form-checkbox:checked,.form-radio:checked { border-color: transparent; background-color: currentColor; background-size: 100% 100%; background-position: center; background-repeat: no-repeat;
}

.form-checkbox:checked { background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
}

@media (forced-colors: active)  {

  .form-checkbox:checked { -webkit-appearance: auto; -moz-appearance: auto; appearance: auto;
  }
}

.form-radio:checked { background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");
}

@media (forced-colors: active)  {

  .form-radio:checked { -webkit-appearance: auto; -moz-appearance: auto; appearance: auto;
  }
}

.form-checkbox:checked:hover,.form-checkbox:checked:focus,.form-radio:checked:hover,.form-radio:checked:focus { border-color: transparent; background-color: currentColor;
}

.form-checkbox:indeterminate { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); border-color: transparent; background-color: currentColor; background-size: 100% 100%; background-position: center; background-repeat: no-repeat;
}

@media (forced-colors: active)  {

  .form-checkbox:indeterminate { -webkit-appearance: auto; -moz-appearance: auto; appearance: auto;
  }
}

.form-checkbox:indeterminate:hover,.form-checkbox:indeterminate:focus { border-color: transparent; background-color: currentColor;
}

.prose { color: var(--tw-prose-body); max-width: 65ch;
}

.prose :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em;
}

.prose :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-lead); font-size: 1.25em; line-height: 1.6; margin-top: 1.2em; margin-bottom: 1.2em;
}

.prose :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-links); text-decoration: underline; font-weight: 500;
}

.prose :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-bold); font-weight: 600;
}

.prose :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit;
}

.prose :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit;
}

.prose :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit;
}

.prose :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: decimal; margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em;
}

.prose :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-alpha;
}

.prose :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-alpha;
}

.prose :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-alpha;
}

.prose :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-alpha;
}

.prose :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-roman;
}

.prose :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-roman;
}

.prose :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-roman;
}

.prose :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-roman;
}

.prose :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: decimal;
}

.prose :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: disc; margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em;
}

.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { font-weight: 400; color: var(--tw-prose-counters);
}

.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { color: var(--tw-prose-bullets);
}

.prose :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; margin-top: 1.25em;
}

.prose :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-color: var(--tw-prose-hr); border-top-width: 1px; margin-top: 3em; margin-bottom: 3em;
}

.prose :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 500; font-style: italic; color: var(--tw-prose-quotes); border-inline-start-width: 0.25rem; border-inline-start-color: var(--tw-prose-quote-borders); quotes: "\201C""\201D""\2018""\2019"; margin-top: 1.6em; margin-bottom: 1.6em; padding-inline-start: 1em;
}

.prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: open-quote;
}

.prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: close-quote;
}

.prose :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 800; font-size: 2.25em; margin-top: 0; margin-bottom: 0.8888889em; line-height: 1.1111111;
}

.prose :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 900; color: inherit;
}

.prose :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 700; font-size: 1.5em; margin-top: 2em; margin-bottom: 1em; line-height: 1.3333333;
}

.prose :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 800; color: inherit;
}

.prose :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; font-size: 1.25em; margin-top: 1.6em; margin-bottom: 0.6em; line-height: 1.6;
}

.prose :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 700; color: inherit;
}

.prose :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; margin-top: 1.5em; margin-bottom: 0.5em; line-height: 1.5;
}

.prose :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 700; color: inherit;
}

.prose :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em;
}

.prose :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) { display: block; margin-top: 2em; margin-bottom: 2em;
}

.prose :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em;
}

.prose :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 500; font-family: inherit; color: var(--tw-prose-kbd); box-shadow: 0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%); font-size: 0.875em; border-radius: 0.3125rem; padding-top: 0.1875em; padding-inline-end: 0.375em; padding-bottom: 0.1875em; padding-inline-start: 0.375em;
}

.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-code); font-weight: 600; font-size: 0.875em;
}

.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: "`";
}

.prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: "`";
}

.prose :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit;
}

.prose :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit;
}

.prose :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; font-size: 0.875em;
}

.prose :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; font-size: 0.9em;
}

.prose :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit;
}

.prose :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit;
}

.prose :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit;
}

.prose :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-pre-code); background-color: var(--tw-prose-pre-bg); overflow-x: auto; font-weight: 400; font-size: 0.875em; line-height: 1.7142857; margin-top: 1.7142857em; margin-bottom: 1.7142857em; border-radius: 0.375rem; padding-top: 0.8571429em; padding-inline-end: 1.1428571em; padding-bottom: 0.8571429em; padding-inline-start: 1.1428571em;
}

.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color: transparent; border-width: 0; border-radius: 0; padding: 0; font-weight: inherit; color: inherit; font-size: inherit; font-family: inherit; line-height: inherit;
}

.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: none;
}

.prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: none;
}

.prose :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) { width: 100%; table-layout: auto; margin-top: 2em; margin-bottom: 2em; font-size: 0.875em; line-height: 1.7142857;
}

.prose :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-th-borders);
}

.prose :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; vertical-align: bottom; padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; padding-inline-start: 0.5714286em;
}

.prose :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-td-borders);
}

.prose :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 0;
}

.prose :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { vertical-align: baseline;
}

.prose :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-top-width: 1px; border-top-color: var(--tw-prose-th-borders);
}

.prose :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { vertical-align: top;
}

.prose :where(th, td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-align: start;
}

.prose :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 0;
}

.prose :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-captions); font-size: 0.875em; line-height: 1.4285714; margin-top: 0.8571429em;
}

.prose { --tw-prose-body: #374151; --tw-prose-headings: #111827; --tw-prose-lead: #4b5563; --tw-prose-links: #111827; --tw-prose-bold: #111827; --tw-prose-counters: #6b7280; --tw-prose-bullets: #d1d5db; --tw-prose-hr: #e5e7eb; --tw-prose-quotes: #111827; --tw-prose-quote-borders: #e5e7eb; --tw-prose-captions: #6b7280; --tw-prose-kbd: #111827; --tw-prose-kbd-shadows: 17 24 39; --tw-prose-code: #111827; --tw-prose-pre-code: #e5e7eb; --tw-prose-pre-bg: #1f2937; --tw-prose-th-borders: #d1d5db; --tw-prose-td-borders: #e5e7eb; --tw-prose-invert-body: #d1d5db; --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: #9ca3af; --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: #9ca3af; --tw-prose-invert-bullets: #4b5563; --tw-prose-invert-hr: #374151; --tw-prose-invert-quotes: #f3f4f6; --tw-prose-invert-quote-borders: #374151; --tw-prose-invert-captions: #9ca3af; --tw-prose-invert-kbd: #fff; --tw-prose-invert-kbd-shadows: 255 255 255; --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: #d1d5db; --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%); --tw-prose-invert-th-borders: #4b5563; --tw-prose-invert-td-borders: #374151; font-size: 1rem; line-height: 1.75;
}

.prose :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 0;
}

.prose :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5em; margin-bottom: 0.5em;
}

.prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0.375em;
}

.prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0.375em;
}

.prose :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em;
}

.prose :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em;
}

.prose :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em;
}

.prose :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em;
}

.prose :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em;
}

.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em;
}

.prose :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em;
}

.prose :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5em; padding-inline-start: 1.625em;
}

.prose :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0;
}

.prose :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0;
}

.prose :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0;
}

.prose :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0;
}

.prose :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0;
}

.prose :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-end: 0;
}

.prose :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-top: 0.5714286em; padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; padding-inline-start: 0.5714286em;
}

.prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0;
}

.prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-end: 0;
}

.prose :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em;
}

.prose :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0;
}

.prose :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 0;
}

.prose-sm { font-size: 0.875rem; line-height: 1.7142857;
}

.prose-sm :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.1428571em; margin-bottom: 1.1428571em;
}

.prose-sm :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-size: 1.2857143em; line-height: 1.5555556; margin-top: 0.8888889em; margin-bottom: 0.8888889em;
}

.prose-sm :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.3333333em; margin-bottom: 1.3333333em; padding-inline-start: 1.1111111em;
}

.prose-sm :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-size: 2.1428571em; margin-top: 0; margin-bottom: 0.8em; line-height: 1.2;
}

.prose-sm :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-size: 1.4285714em; margin-top: 1.6em; margin-bottom: 0.8em; line-height: 1.4;
}

.prose-sm :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-size: 1.2857143em; margin-top: 1.5555556em; margin-bottom: 0.4444444em; line-height: 1.5555556;
}

.prose-sm :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.4285714em; margin-bottom: 0.5714286em; line-height: 1.4285714;
}

.prose-sm :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.7142857em; margin-bottom: 1.7142857em;
}

.prose-sm :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.7142857em; margin-bottom: 1.7142857em;
}

.prose-sm :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 0;
}

.prose-sm :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.7142857em; margin-bottom: 1.7142857em;
}

.prose-sm :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-size: 0.8571429em; border-radius: 0.3125rem; padding-top: 0.1428571em; padding-inline-end: 0.3571429em; padding-bottom: 0.1428571em; padding-inline-start: 0.3571429em;
}

.prose-sm :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-size: 0.8571429em;
}

.prose-sm :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-size: 0.9em;
}

.prose-sm :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-size: 0.8888889em;
}

.prose-sm :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-size: 0.8571429em; line-height: 1.6666667; margin-top: 1.6666667em; margin-bottom: 1.6666667em; border-radius: 0.25rem; padding-top: 0.6666667em; padding-inline-end: 1em; padding-bottom: 0.6666667em; padding-inline-start: 1em;
}

.prose-sm :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.1428571em; margin-bottom: 1.1428571em; padding-inline-start: 1.5714286em;
}

.prose-sm :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.1428571em; margin-bottom: 1.1428571em; padding-inline-start: 1.5714286em;
}

.prose-sm :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.2857143em; margin-bottom: 0.2857143em;
}

.prose-sm :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0.4285714em;
}

.prose-sm :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0.4285714em;
}

.prose-sm :where(.prose-sm > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5714286em; margin-bottom: 0.5714286em;
}

.prose-sm :where(.prose-sm > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.1428571em;
}

.prose-sm :where(.prose-sm > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.1428571em;
}

.prose-sm :where(.prose-sm > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.1428571em;
}

.prose-sm :where(.prose-sm > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.1428571em;
}

.prose-sm :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5714286em; margin-bottom: 0.5714286em;
}

.prose-sm :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.1428571em; margin-bottom: 1.1428571em;
}

.prose-sm :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.1428571em;
}

.prose-sm :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.2857143em; padding-inline-start: 1.5714286em;
}

.prose-sm :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2.8571429em; margin-bottom: 2.8571429em;
}

.prose-sm :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0;
}

.prose-sm :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0;
}

.prose-sm :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0;
}

.prose-sm :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0;
}

.prose-sm :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-size: 0.8571429em; line-height: 1.5;
}

.prose-sm :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-end: 1em; padding-bottom: 0.6666667em; padding-inline-start: 1em;
}

.prose-sm :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0;
}

.prose-sm :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-end: 0;
}

.prose-sm :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-top: 0.6666667em; padding-inline-end: 1em; padding-bottom: 0.6666667em; padding-inline-start: 1em;
}

.prose-sm :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0;
}

.prose-sm :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-end: 0;
}

.prose-sm :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.7142857em; margin-bottom: 1.7142857em;
}

.prose-sm :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 0;
}

.prose-sm :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-size: 0.8571429em; line-height: 1.3333333; margin-top: 0.6666667em;
}

.prose-sm :where(.prose-sm > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0;
}

.prose-sm :where(.prose-sm > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 0;
}

/* ============================================================================
   * ENHANCED APP SHELL COMPONENTS
   * ============================================================================ */

/* EXISTING: Base app shell preserved */

.app-shell {
    display: flex;
    height: 100vh;
    background-color: rgb(var(--color-neutral-50));
  }

/* ADD: Header-only app shell variant */

.app-shell-header-only {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: rgb(var(--color-neutral-50));
    position: relative;
  }

/* EXISTING: Sidebar styles preserved for compatibility */

.app-sidebar {
    background-color: rgb(255 255 255);
    border-right: 1px solid rgb(var(--color-neutral-200));
    width: var(--sidebar-width);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: var(--z-header);
    transition: all var(--timing-menu);
  }

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

.app-sidebar.sidebar-collapsed .sidebar-brand-text,
  .app-sidebar.sidebar-collapsed .sidebar-user-text {
    opacity: 0;
    visibility: hidden;
  }

/* ADD: Mobile sidebar behavior */

@media (max-width: 768px) {
    .app-sidebar {
      position: fixed;
      top: 0;
      left: 0;
      bottom: 0;
      transform: translateX(-100%);
      z-index: var(--z-slide-menu);
      width: var(--nav-slide-mobile-width);
      max-width: var(--nav-slide-width);
    }
    
    .app-sidebar.sidebar-mobile-open {
      transform: translateX(0);
    }
  }

/* ADD: Header navigation zone */

.app-header {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 var(--space-6);
    background-color: rgb(255 255 255);
    border-bottom: 1px solid rgb(var(--color-neutral-200));
    height: var(--header-height);
    position: sticky;
    top: 0;
    z-index: var(--z-header);
  }

/* ADD: Optional wireframe header styling */

.app-header.header-navy {
    background-color: rgb(var(--color-case-navy));
    color: rgb(255 255 255);
    border-bottom: 1px solid rgb(var(--color-case-navy));
  }

/* EXISTING: Main content area enhanced */

.app-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background-color: rgb(var(--color-neutral-50));
    min-height: 0; /* Allow flex item to shrink */
  }

/* ADD: Main content for header-only layout */

.app-main-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background-color: rgb(var(--color-neutral-50));
  }

/* ADD: Mobile overlay for menus */

.mobile-overlay {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(2px);
    z-index: var(--z-backdrop);
    opacity: 0;
    visibility: hidden;
    transition: all var(--timing-menu);
  }

.mobile-overlay.overlay-active {
    opacity: 1;
    visibility: visible;
  }

/* ============================================================================
   * UTILITY CLASSES - Enhanced
   * ============================================================================ */

/* ADD: Focus management utilities */

.focus-trap {
    outline: none;
  }

.focus-trap:focus-visible {
    outline: 2px solid rgb(var(--color-primary-500));
    outline-offset: 2px;
  }

/* ADD: Screen reader utilities */

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

.not-sr-only {
    position: static;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
  }

/* ADD: Skip link for accessibility */

.skip-link {
    position: absolute;
    top: -40px;
    left: 6px;
    background: rgb(var(--color-primary-600));
    color: rgb(255 255 255);
    padding: 8px 12px;
    text-decoration: none;
    z-index: var(--z-modal);
    border-radius: var(--radius-md);
    font-weight: 600;
    transition: top var(--timing-fast);
  }

.skip-link:focus {
    top: 6px;
  }

/* ADD: Animation utilities */

.animate-spin {
    animation: spin 1s linear infinite;
  }

.animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  }

.animate-bounce {
    animation: bounce 1s infinite;
  }

.animate-fade-in {
    animation: fadeIn 0.5s ease-in-out;
  }

.animate-slide-in {
    animation: slideIn 0.3s ease-out;
  }

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
  }

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
  }

@keyframes bounce {
    0%, 100% {
      transform: translateY(-25%);
      animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }
    50% {
      transform: translateY(0);
      animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
  }

@keyframes fadeIn {
    0% { opacity: 0; }
    100% { opacity: 1; }
  }

@keyframes slideIn {
    0% { transform: translateY(-10px); opacity: 0; }
    100% { transform: translateY(0); opacity: 1; }
  }

/* ADD: Transition utilities */

.transition-none {
    transition-property: none;
  }

.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;
    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;
  }

/* ADD: Interactive state utilities */

.interactive-subtle {
    transition: all var(--timing-fast);
  }

.interactive-subtle:hover {
    background-color: rgb(var(--color-neutral-50));
  }

.interactive-subtle:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgb(var(--color-primary-500));
  }

.interactive-bold {
    transition: all var(--timing-fast);
  }

.interactive-bold:hover {
    background-color: rgb(var(--color-primary-50));
    color: rgb(var(--color-primary-700));
  }

.interactive-bold:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgb(var(--color-primary-500));
  }

/* ADD: Loading state utilities */

.loading-overlay {
    position: relative;
    overflow: hidden;
  }

.loading-overlay::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
      90deg,
      transparent,
      rgba(255, 255, 255, 0.6),
      transparent
    );
    animation: loading-shimmer 1.5s infinite;
  }

@keyframes loading-shimmer {
    0% {
      left: -100%;
    }
    100% {
      left: 100%;
    }
  }

/* ADD: Text utilities */

.text-balance {
    text-wrap: balance;
  }

.text-pretty {
    text-wrap: pretty;
  }

/* ADD: Container utilities */

.container-narrow {
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--space-4);
    padding-right: var(--space-4);
  }

.container-content {
    max-width: var(--content-max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--space-6);
    padding-right: var(--space-6);
  }

.container-wide {
    max-width: 96rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--space-8);
    padding-right: var(--space-8);
  }

/* ============================================================================
   * ENHANCED RESPONSIVE UTILITIES
   * ============================================================================ */

/* Mobile-first responsive utilities */

@media (max-width: 767px) {
    .mobile-hidden {
      display: none;
    }
    
    .mobile-visible {
      display: block;
    }
    
    .container-content,
    .container-wide {
      padding-left: var(--space-4);
      padding-right: var(--space-4);
    }
  }

@media (min-width: 768px) {
    .tablet-hidden {
      display: none;
    }
    
    .mobile-visible {
      display: none;
    }
  }

@media (min-width: 1024px) {
    .desktop-hidden {
      display: none;
    }
  }

/* ============================================================================
   * ACCESSIBILITY ENHANCEMENTS
   * ============================================================================ */

/* Improved focus indicators */

*:focus-visible {
    outline: 2px solid rgb(var(--color-primary-500));
    outline-offset: 2px;
  }

/* Remove focus outline for mouse users */

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

/* Respect user motion preferences */

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }

/* High contrast mode enhancements */

@media (prefers-contrast: high) {
    .app-header,
    .app-sidebar {
      border-width: 2px;
    }
    
    .interactive-subtle:focus,
    .interactive-bold:focus {
      outline-width: 3px;
    }
  }

/* ============================================================================
   * PRINT OPTIMIZATIONS
   * ============================================================================ */

@media print {
    .app-sidebar,
    .mobile-overlay,
    .skip-link {
      display: none !important;
    }
    
    .app-main,
    .app-main-content {
      height: auto !important;
      overflow: visible !important;
    }
    
    * {
      print-color-adjust: exact;
      -webkit-print-color-adjust: exact;
    }
    
    .container-content,
    .container-wide {
      max-width: none;
      padding: 0;
    }
  }

/* ============================================================================
   * PERFORMANCE OPTIMIZATIONS
   * ============================================================================ */

/* GPU acceleration for smooth animations */

.app-sidebar,
  .mobile-overlay,
  .loading-overlay::before {
    will-change: transform;
  }

/* Optimize rendering performance */

.app-shell,
  .app-shell-header-only {
    contain: layout;
  }

.app-main,
  .app-main-content {
    contain: layout style;
  }

/* Optimize repaints */

.interactive-subtle,
  .interactive-bold {
    contain: layout style;
  }

/* ============================================================================
   * CSS VARIABLES - Enhanced for Header-Only Layout
   * ============================================================================ */

:root {
    /* Layout dimensions */
    --header-height: 4rem;
    --content-max-width: 80rem;
    
    /* Slide-out navigation */
    --nav-slide-width: 20rem;
    --nav-slide-transition: 300ms cubic-bezier(0.4, 0, 0.2, 1);
    
    /* Layout zones */
    --matter-sidebar-width: 20rem;
    --matter-actions-width: 18rem;
    --dashboard-sidebar-width: 20rem;
    
    /* Z-index system */
    --z-header: 50;
    --z-backdrop: 60;
    --z-slide-menu: 70;
    --z-modal: 100;
    
    /* Animation timing */
    --timing-fast: 200ms ease;
    --timing-menu: var(--nav-slide-transition);
    --timing-modal: 250ms ease;
  }

/* ============================================================================
   * HEADER-ONLY APP SHELL - New Foundation
   * ============================================================================ */

/* App Shell Container - Header + Content */

.app-shell-header-only {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: rgb(250 250 249);
    position: relative;
  }

/* Prevent body scroll when navigation is open */

.nav-menu-open {
    overflow: hidden;
  }

/* ============================================================================
   * HEADER NAVIGATION SYSTEM
   * ============================================================================ */

/* Header Navigation Bar */

.app-header-nav {
    position: sticky;
    top: 0;
    height: var(--header-height);
    background-color: rgb(255 255 255);
    border-bottom: 1px solid rgb(231 229 228);
    z-index: var(--z-header);
    flex-shrink: 0;
  }

.app-header-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    padding: 0 1rem;
    max-width: 100%;
  }

/* Header Left Section */

.app-header-left {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-shrink: 0;
  }

/* Navigation Menu Toggle Button */

.nav-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0.375rem;
    color: rgb(87 83 78);
    transition: all var(--timing-fast);
    cursor: pointer;
  }

.nav-menu-toggle:hover {
    background-color: rgb(245 245 244);
    color: rgb(28 25 23);
  }

.nav-menu-toggle:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgb(59 130 246);
  }

/* Hamburger Icon */

.nav-hamburger-icon {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    width: 1.25rem;
    height: 1rem;
  }

.hamburger-line {
    width: 100%;
    height: 2px;
    background-color: currentColor;
    border-radius: 1px;
    transition: all var(--timing-fast);
  }

/* Hamburger animation when menu is open */

.nav-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(1) {
    transform: rotate(45deg) translate(0.25rem, 0.25rem);
  }

.nav-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(2) {
    opacity: 0;
  }

.nav-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(3) {
    transform: rotate(-45deg) translate(0.25rem, -0.25rem);
  }

/* Header Brand */

.app-header-brand {
    display: flex;
    align-items: center;
  }

.brand-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    text-decoration: none;
    color: inherit;
    padding: 0.5rem;
    border-radius: 0.375rem;
    transition: background-color var(--timing-fast);
  }

.brand-link:hover {
    background-color: rgb(250 250 249);
  }

.brand-logo {
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
  }

.brand-text {
    display: flex;
    flex-direction: column;
  }

.brand-name {
    font-size: 1.125rem;
    font-weight: 600;
    color: rgb(28 25 23);
    line-height: 1.2;
  }

.brand-subtitle {
    font-size: 0.75rem;
    color: rgb(120 113 108);
    line-height: 1;
  }

/* Header Center Section - Search */

.app-header-center {
    flex: 1;
    max-width: 32rem;
    margin: 0 2rem;
  }

.header-search {
    width: 100%;
  }

.header-search-wrapper {
    position: relative;
    display: flex;
    align-items: center;
  }

.header-search-input {
    width: 100%;
    padding: 0.5rem 1rem 0.5rem 2.5rem;
    border: 1px solid rgb(214 211 209);
    border-radius: 0.5rem;
    background-color: rgb(250 250 249);
    font-size: 0.875rem;
    color: rgb(28 25 23);
    transition: all var(--timing-fast);
  }

.header-search-input:focus {
    outline: none;
    border-color: rgb(59 130 246);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
    background-color: rgb(255 255 255);
  }

.header-search-input::-moz-placeholder {
    color: rgb(168 162 158);
  }

.header-search-input::placeholder {
    color: rgb(168 162 158);
  }

.header-search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1rem;
    height: 1rem;
    color: rgb(168 162 158);
    pointer-events: none;
  }

.header-search-kbd {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    padding: 0.125rem 0.375rem;
    background-color: rgb(231 229 228);
    border-radius: 0.25rem;
    font-size: 0.75rem;
    color: rgb(120 113 108);
    font-family: ui-monospace, monospace;
  }

.search-focused .header-search-kbd {
    display: none;
  }

/* Header Right Section */

.app-header-right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
  }

/* Header Action Buttons */

.header-action-btn {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0.375rem;
    color: rgb(87 83 78);
    transition: all var(--timing-fast);
    cursor: pointer;
  }

.header-action-btn:hover {
    background-color: rgb(245 245 244);
    color: rgb(28 25 23);
  }

.header-action-btn:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgb(59 130 246);
  }

.notification-badge {
    position: absolute;
    top: 0.25rem;
    right: 0.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.25rem;
    background-color: rgb(239 68 68);
    color: rgb(255 255 255);
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: 0.625rem;
  }

/* Quick Actions */

.header-quick-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

.header-quick-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    background-color: rgb(37 99 235);
    border: none;
    border-radius: 0.375rem;
    color: rgb(255 255 255);
    transition: all var(--timing-fast);
    cursor: pointer;
  }

.header-quick-btn:hover {
    background-color: rgb(29 78 216);
  }

.header-quick-btn:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgb(59 130 246), 0 0 0 4px rgb(255 255 255);
  }

/* User Menu */

.header-user-menu {
    position: relative;
  }

.header-user-trigger {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem;
    background: none;
    border: none;
    border-radius: 0.5rem;
    color: rgb(68 64 60);
    transition: all var(--timing-fast);
    cursor: pointer;
  }

.header-user-trigger:hover {
    background-color: rgb(245 245 244);
  }

.header-user-trigger:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgb(59 130 246);
  }

.header-user-avatar {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    -o-object-fit: cover;
       object-fit: cover;
  }

.header-user-name {
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1;
  }

.header-user-caret {
    width: 1rem;
    height: 1rem;
    color: rgb(168 162 158);
    transition: transform var(--timing-fast);
  }

.header-user-trigger[aria-expanded="true"] .header-user-caret {
    transform: rotate(180deg);
  }

/* ============================================================================
   * MAIN CONTENT AREA
   * ============================================================================ */

.app-main-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background-color: rgb(250 250 249);
  }

/* ============================================================================
   * LAYOUT MODES - Preserved from Original System
   * ============================================================================ */

/* Single Column Layout */

.layout-single-column {
    max-width: var(--content-max-width);
    margin: 0 auto;
    padding: 1.5rem;
    width: 100%;
  }

/* Dashboard Layout */

.layout-dashboard {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 1.5rem;
    max-width: var(--content-max-width);
    margin: 0 auto;
    width: 100%;
  }

/* Matter 3-Column Layout */

.layout-matter-3col {
    display: grid;
    grid-template-columns: var(--matter-sidebar-width) 1fr var(--matter-actions-width);
    gap: 1.5rem;
    height: calc(100vh - var(--header-height));
    overflow: hidden;
  }

.matter-left-panel {
    overflow-y: auto;
    background-color: rgb(255 255 255);
    border-radius: 0.5rem;
    border: 1px solid rgb(231 229 228);
  }

.matter-center-panel {
    overflow-y: auto;
    background-color: rgb(255 255 255);
    border-radius: 0.5rem;
    border: 1px solid rgb(231 229 228);
  }

.matter-right-panel {
    overflow-y: auto;
    background-color: rgb(255 255 255);
    border-radius: 0.5rem;
    border: 1px solid rgb(231 229 228);
  }

/* Split Preview Layout (Documents) */

.layout-split-preview {
    display: grid;
    grid-template-columns: 25rem 1fr;
    gap: 1.5rem;
    height: calc(100vh - var(--header-height));
    overflow: hidden;
  }

.preview-left-panel {
    overflow-y: auto;
    background-color: rgb(255 255 255);
    border-radius: 0.5rem;
    border: 1px solid rgb(231 229 228);
  }

.preview-right-panel {
    overflow-y: auto;
    background-color: rgb(255 255 255);
    border-radius: 0.5rem;
    border: 1px solid rgb(231 229 228);
  }

/* Container System */

.container-content {
    width: 100%;
    max-width: var(--content-max-width);
    margin: 0 auto;
    padding: 0 1rem;
  }

/* ============================================================================
   * RESPONSIVE BEHAVIOR
   * ============================================================================ */

/* Large Desktop (1280px+) */

@media (min-width: 1280px) {
    .app-header-content {
      padding: 0 2rem;
    }
    
    .app-header-center {
      max-width: 40rem;
    }
  }

/* Desktop (1024px+) */

@media (min-width: 1024px) {
    .brand-text {
      display: flex;
    }
    
    .header-search {
      display: block;
    }
  }

/* Tablet (768px - 1023px) */

@media (max-width: 1023px) {
    .brand-subtitle {
      display: none;
    }
    
    .header-user-name {
      display: none;
    }
    
    .layout-matter-3col {
      grid-template-columns: 1fr;
      grid-template-rows: auto auto auto;
      height: auto;
      gap: 1rem;
    }
    
    .layout-split-preview {
      grid-template-columns: 1fr;
      grid-template-rows: auto 1fr;
      height: auto;
    }
  }

/* Mobile (768px and below) */

@media (max-width: 767px) {
    .app-header-content {
      padding: 0 0.75rem;
    }
    
    .app-header-center {
      display: none;
    }
    
    .brand-name {
      font-size: 1rem;
    }
    
    .header-quick-actions {
      display: none;
    }
    
    .nav-menu-toggle {
      width: 3rem;
      height: 3rem;
    }
    
    .layout-single-column {
      padding: 1rem;
    }
  }

/* Touch Device Optimizations */

@media (hover: none) and (pointer: coarse) {
    .nav-menu-toggle,
    .header-action-btn,
    .header-quick-btn {
      min-height: 44px;
      min-width: 44px;
    }
  }

/* Reduced Motion */

@media (prefers-reduced-motion: reduce) {
    .hamburger-line,
    .header-user-trigger {
      transition-duration: 100ms;
    }
  }

/* Print Styles */

@media print {
    .app-header-nav {
      display: none;
    }
    
    .app-main-content {
      height: auto;
      overflow: visible;
    }
    
    .layout-matter-3col,
    .layout-split-preview {
      display: block;
    }
  }

/* Accessibility */

.skip-link {
    position: absolute;
    top: -40px;
    left: 6px;
    background: rgb(37 99 235);
    color: white;
    padding: 8px;
    text-decoration: none;
    z-index: 1000;
    border-radius: 4px;
  }

.skip-link:focus {
    top: 6px;
  }

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

/* ============================================================================
   * SLIDE-OUT NAVIGATION MENU COMPONENTS
   * ============================================================================ */

/* Navigation Menu Panel */

.nav-slide-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 20rem;
    height: 100vh;
    background-color: rgb(255 255 255);
    border-right: 1px solid rgb(231 229 228);
    z-index: 70;
    transform: translateX(-100%);
    transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);
    overflow-y: auto;
  }

.nav-slide-menu.nav-slide-open {
    transform: translateX(0);
  }

/* Navigation Content */

.nav-slide-content {
    display: flex;
    flex-direction: column;
    height: 100%;
  }

/* Navigation Header */

.nav-slide-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.5rem;
    border-bottom: 1px solid rgb(231 229 228);
    flex-shrink: 0;
  }

.nav-slide-brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }

.nav-slide-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    background-color: rgb(219 234 254);
    border-radius: 0.5rem;
  }

.nav-slide-brand-text {
    display: flex;
    flex-direction: column;
  }

.nav-slide-title {
    font-size: 1rem;
    font-weight: 600;
    color: rgb(28 25 23);
    line-height: 1.2;
  }

.nav-slide-subtitle {
    font-size: 0.75rem;
    color: rgb(120 113 108);
    line-height: 1;
  }

.nav-slide-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0.375rem;
    color: rgb(168 162 158);
    transition: all 150ms ease;
    cursor: pointer;
  }

.nav-slide-close:hover {
    background-color: rgb(245 245 244);
    color: rgb(87 83 78);
  }

.nav-slide-close:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgb(59 130 246);
  }

/* Navigation Sections */

.nav-slide-sections {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 0;
  }

/* Navigation Footer */

.nav-slide-footer {
    flex-shrink: 0;
    padding: 1.5rem;
    border-top: 1px solid rgb(231 229 228);
  }

.nav-user-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    background-color: rgb(250 250 249);
    border-radius: 0.5rem;
  }

.nav-user-avatar {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    -o-object-fit: cover;
       object-fit: cover;
  }

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

.nav-user-name {
    font-size: 0.875rem;
    font-weight: 500;
    color: rgb(28 25 23);
    margin: 0 0 0.125rem 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

.nav-user-role {
    font-size: 0.75rem;
    color: rgb(120 113 108);
    margin: 0;
  }

/* Navigation Backdrop */

.nav-backdrop {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(2px);
    z-index: 60;
    opacity: 0;
    visibility: hidden;
    transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
  }

.nav-backdrop.nav-backdrop-active {
    opacity: 1;
    visibility: visible;
  }

/* ============================================================================
   * NAVIGATION SECTIONS STRUCTURE
   * ============================================================================ */

/* Navigation Section Container */

.nav-section {
    margin-bottom: 1.5rem;
    padding: 0 1rem;
  }

.nav-section:last-child {
    margin-bottom: 0;
  }

/* Section Title */

.nav-section-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0 0.75rem;
    margin-bottom: 0.75rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: rgb(120 113 108);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1;
  }

.nav-section-icon {
    width: 0.875rem;
    height: 0.875rem;
    opacity: 0.7;
  }

/* Section Items Container */

.nav-section-items {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    list-style: none;
    margin: 0;
    padding: 0;
  }

/* ============================================================================
   * NAVIGATION LINKS
   * ============================================================================ */

/* Base Navigation Link */

.nav-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.5rem 0.75rem;
    color: rgb(68 64 60);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.25;
    border-radius: 0.5rem;
    border: 1px solid transparent;
    transition: all 150ms ease;
    position: relative;
    cursor: pointer;
  }

.nav-link:hover {
    color: rgb(28 25 23);
    background-color: rgb(250 250 249);
  }

.nav-link:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgb(59 130 246);
  }

/* Active Navigation Link */

.nav-link-active,
  .nav-link.active {
    color: rgb(29 78 216);
    background-color: rgb(239 246 255);
    border-color: rgb(59 130 246);
    font-weight: 600;
  }

.nav-link-active::before,
  .nav-link.active::before {
    content: '';
    position: absolute;
    left: -1px;
    top: 0;
    bottom: 0;
    width: 3px;
    background-color: rgb(37 99 235);
    border-radius: 0 2px 2px 0;
  }

.nav-link-active:hover,
  .nav-link.active:hover {
    color: rgb(29 78 216);
    background-color: rgb(219 234 254);
  }

/* Disabled Navigation Link */

.nav-link-disabled,
  .nav-link:disabled {
    color: rgb(168 162 158);
    cursor: not-allowed;
    pointer-events: none;
  }

/* ============================================================================
   * NAVIGATION ICONS
   * ============================================================================ */

.nav-icon {
    width: 1.25rem;
    height: 1.25rem;
    flex-shrink: 0;
    opacity: 0.8;
    transition: opacity 150ms ease;
  }

.nav-link:hover .nav-icon {
    opacity: 1;
  }

.nav-link-active .nav-icon,
  .nav-link.active .nav-icon {
    opacity: 1;
    color: rgb(37 99 235);
  }

/* ============================================================================
   * NAVIGATION TEXT AND LABELS
   * ============================================================================ */

.nav-text {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

.nav-label {
    display: block;
    line-height: 1.25;
  }

.nav-description {
    display: block;
    font-size: 0.75rem;
    color: rgb(120 113 108);
    font-weight: 400;
    margin-top: 0.125rem;
    line-height: 1.2;
  }

.nav-link:hover .nav-description {
    color: rgb(87 83 78);
  }

.nav-link-active .nav-description,
  .nav-link.active .nav-description {
    color: rgb(37 99 235);
  }

/* ============================================================================
   * NAVIGATION BADGES AND INDICATORS
   * ============================================================================ */

.nav-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.375rem;
    background-color: rgb(231 229 228);
    color: rgb(68 64 60);
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 0.625rem;
    line-height: 1;
    flex-shrink: 0;
    transition: all 150ms ease;
  }

.nav-link:hover .nav-badge {
    background-color: rgb(214 211 209);
    color: rgb(41 37 36);
  }

.nav-link-active .nav-badge,
  .nav-link.active .nav-badge {
    background-color: rgb(191 219 254);
    color: rgb(30 64 175);
  }

/* Badge Variants */

.nav-badge-urgent {
    background-color: rgb(239 68 68);
    color: rgb(255 255 255);
  }

.nav-badge-warning {
    background-color: rgb(245 158 11);
    color: rgb(255 255 255);
  }

.nav-badge-success {
    background-color: rgb(34 197 94);
    color: rgb(255 255 255);
  }

.nav-badge-info {
    background-color: rgb(59 130 246);
    color: rgb(255 255 255);
  }

/* Notification Dot */

.nav-notification {
    position: relative;
  }

.nav-notification::after {
    content: '';
    position: absolute;
    top: 0.25rem;
    right: 0.25rem;
    width: 0.5rem;
    height: 0.5rem;
    background-color: rgb(239 68 68);
    border: 2px solid rgb(255 255 255);
    border-radius: 50%;
  }

/* ============================================================================
   * BREADCRUMB NAVIGATION SYSTEM
   * ============================================================================ */

/* Breadcrumb Bar */

.breadcrumb-bar {
    background-color: rgb(250 250 249);
    border-bottom: 1px solid rgb(231 229 228);
    padding: 0.5rem 1rem;
  }

.breadcrumb-nav {
    max-width: 100%;
  }

.breadcrumb-list {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    scrollbar-width: none;
  }

.breadcrumb-list::-webkit-scrollbar {
    display: none;
  }

.breadcrumb-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
  }

.breadcrumb-link {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    color: rgb(120 113 108);
    text-decoration: none;
    font-size: 0.875rem;
    transition: color 150ms ease;
  }

.breadcrumb-link:hover {
    color: rgb(37 99 235);
  }

.breadcrumb-separator {
    width: 1rem;
    height: 1rem;
    color: rgb(168 162 158);
  }

.breadcrumb-current {
    color: rgb(28 25 23);
    font-size: 0.875rem;
    font-weight: 500;
  }

/* ============================================================================
   * HEADER USER DROPDOWN
   * ============================================================================ */

/* User Dropdown - Hidden by Default */

.header-user-dropdown {
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: 0.5rem;
    width: 16rem;
    background-color: rgb(255 255 255);
    border: 1px solid rgb(231 229 228);
    border-radius: 0.5rem;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -2px rgb(0 0 0 / 0.05);
    z-index: 60;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-0.5rem);
    transition: all 150ms ease;
    pointer-events: none;
  }

/* User Dropdown - Visible when open */

.header-user-dropdown.dropdown-open,
  .dropdown-active .header-user-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }

.dropdown-header {
    padding: 1rem;
    border-bottom: 1px solid rgb(245 245 244);
  }

.dropdown-user-info {
    text-align: left;
  }

.dropdown-user-name {
    font-size: 0.875rem;
    font-weight: 600;
    color: rgb(28 25 23);
    margin: 0 0 0.25rem 0;
  }

.dropdown-user-email {
    font-size: 0.75rem;
    color: rgb(120 113 108);
    margin: 0 0 0.25rem 0;
  }

.dropdown-user-firm {
    font-size: 0.75rem;
    color: rgb(168 162 158);
    margin: 0;
  }

.dropdown-section {
    padding: 0.5rem 0;
  }

.dropdown-section:not(:last-child) {
    border-bottom: 1px solid rgb(245 245 244);
  }

.dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.5rem 1rem;
    color: rgb(68 64 60);
    text-decoration: none;
    font-size: 0.875rem;
    transition: all 150ms ease;
  }

.dropdown-item:hover {
    background-color: rgb(250 250 249);
    color: rgb(28 25 23);
  }

.dropdown-item.dropdown-item-danger {
    color: rgb(220 38 38);
  }

.dropdown-item.dropdown-item-danger:hover {
    background-color: rgb(254 242 242);
    color: rgb(185 28 28);
  }

.dropdown-icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
  }

/* ============================================================================
   * RESPONSIVE BEHAVIOR
   * ============================================================================ */

/* Tablet adjustments */

@media (max-width: 1023px) {
    .nav-section {
      margin-bottom: 1rem;
    }
    
    .nav-link {
      padding: 0.75rem;
      font-size: 1rem;
    }
    
    .nav-icon {
      width: 1.5rem;
      height: 1.5rem;
    }

    .nav-slide-menu {
      width: 85vw;
      max-width: 20rem;
    }
  }

/* Mobile optimizations */

@media (max-width: 767px) {
    .nav-link {
      padding: 1rem 0.75rem;
      font-size: 1rem;
      min-height: 3rem;
    }
    
    .nav-section-title {
      font-size: 0.8125rem;
      padding: 0 0.75rem;
    }
    
    .nav-badge {
      min-width: 1.5rem;
      height: 1.5rem;
      font-size: 0.8125rem;
    }
    
    .header-user-dropdown {
      width: 14rem;
      right: -1rem;
    }
    
    .breadcrumb-bar {
      padding: 0.5rem 0.75rem;
    }
    
    .breadcrumb-link,
    .breadcrumb-current {
      font-size: 0.8125rem;
    }
  }

/* Touch device optimizations */

@media (hover: none) and (pointer: coarse) {
    .nav-link,
    .nav-slide-close {
      min-height: 44px;
      padding-top: 0.75rem;
      padding-bottom: 0.75rem;
    }
    
    .nav-link:hover {
      background-color: transparent;
    }
    
    .nav-link:active {
      background-color: rgb(250 250 249);
    }
  }

/* Reduced motion preferences */

@media (prefers-reduced-motion: reduce) {
    .nav-link,
    .nav-badge,
    .nav-icon,
    .nav-slide-menu,
    .nav-backdrop,
    .header-user-dropdown {
      transition-duration: 0ms;
    }
  }

/* Print styles */

@media print {
    .nav-slide-menu,
    .nav-backdrop {
      display: none;
    }
  }

/* ============================================================================
   * TABLE CSS VARIABLES (IF NOT ALREADY DEFINED IN BASE)
   * ============================================================================ */

:root {
    /* Table specific variables that extend base system */
    --table-border-color: var(--color-neutral-200);
    --table-header-bg: var(--color-neutral-50);
    --table-hover-bg: var(--color-neutral-50);
    --table-stripe-bg: var(--color-neutral-25);
    --table-focus-shadow: 0 0 0 2px rgb(var(--color-primary-500) / 0.2);
    
    /* Table row heights */
    --table-row-height: 3rem;
    --table-row-height-sm: 2.5rem;
    --table-row-height-lg: 3.5rem;
    
    /* Table responsive breakpoints */
    --table-mobile-breakpoint: 768px;
    --table-compact-breakpoint: 640px;
  }

/* ============================================================================
   * BASE TABLE SYSTEM
   * ============================================================================ */

/* Base Table */

.\!table {
    width: 100% !important;
    font-size: 0.875rem !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    background-color: rgb(255 255 255) !important;
  }

.table {
    width: 100%;
    font-size: 0.875rem;
    border-collapse: collapse;
    border-spacing: 0;
    background-color: rgb(255 255 255);
  }

/* Table Container */

.table-container {
    background-color: rgb(255 255 255);
    border: 1px solid rgb(var(--table-border-color));
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
    position: relative;
  }

/* Table Wrapper for horizontal scrolling */

.table-wrapper {
    overflow-x: auto;
    position: relative;
    scrollbar-width: thin;
    scrollbar-color: rgb(var(--color-neutral-300)) transparent;
  }

.table-wrapper::-webkit-scrollbar {
    height: 8px;
  }

.table-wrapper::-webkit-scrollbar-thumb {
    background-color: rgb(var(--color-neutral-300));
    border-radius: var(--radius-sm);
  }

.table-wrapper::-webkit-scrollbar-track {
    background-color: rgb(var(--color-neutral-100));
  }

/* Table Responsive */

.table-responsive {
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: rgb(var(--color-neutral-300)) transparent;
  }

/* ============================================================================
   * TABLE HEADER SYSTEM
   * ============================================================================ */

.table-header {
    background-color: rgb(var(--table-header-bg));
    position: sticky;
    top: 0;
    z-index: 10;
  }

.table-header-row {
    border-bottom: 1px solid rgb(var(--table-border-color));
  }

.table-header-cell {
    padding: 0.75rem 1.5rem;
    text-align: left;
    font-size: 0.75rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-500));
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
    border-bottom: 1px solid rgb(var(--table-border-color));
    background-color: rgb(var(--table-header-bg));
  }

/* Sortable Header Cells */

.table-header-cell-sortable {
    cursor: pointer;
    transition: all var(--timing-fast);
    position: relative;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
  }

.table-header-cell-sortable:hover {
    background-color: rgb(var(--color-neutral-100));
    color: rgb(var(--color-neutral-700));
  }

.table-header-cell-sortable:focus {
    outline: none;
    background-color: rgb(var(--color-neutral-100));
    box-shadow: var(--table-focus-shadow);
  }

/* Sort Indicators */

.table-sort-indicator {
    display: inline-flex;
    align-items: center;
    margin-left: 0.5rem;
    opacity: 0.5;
    transition: opacity var(--timing-fast);
  }

.table-header-cell-sortable:hover .table-sort-indicator,
  .table-header-cell-sorted .table-sort-indicator {
    opacity: 1;
  }

.table-header-cell-sorted .table-sort-indicator {
    color: rgb(var(--color-primary-600));
  }

.table-sort-icon {
    width: 0.875rem;
    height: 0.875rem;
  }

/* Header Actions */

.table-header-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
  }

/* ============================================================================
   * TABLE BODY SYSTEM
   * ============================================================================ */

.table-body {
    background-color: rgb(255 255 255);
  }

.table-row {
    border-bottom: 1px solid rgb(var(--table-border-color));
    transition: all var(--timing-fast);
    height: var(--table-row-height);
  }

.table-row:last-child {
    border-bottom: 0;
  }

.table-row:hover {
    background-color: rgb(var(--table-hover-bg));
  }

.table-row:focus-within {
    background-color: rgb(var(--color-primary-50));
    box-shadow: inset 0 0 0 1px rgb(var(--color-primary-500));
  }

/* Clickable Rows */

.table-row-clickable {
    cursor: pointer;
  }

.table-row-clickable:hover {
    background-color: rgb(var(--table-hover-bg));
    box-shadow: inset 0 0 0 1px rgb(var(--color-primary-200));
  }

.table-row-clickable:active {
    background-color: rgb(var(--color-primary-100));
  }

/* Selected Rows */

.table-row-selected {
    background-color: rgb(var(--color-primary-50));
    box-shadow: inset 0 0 0 1px rgb(var(--color-primary-500));
  }

.table-row-selected:hover {
    background-color: rgb(var(--color-primary-100));
  }

/* Row Variants */

.table-row-sm {
    height: var(--table-row-height-sm);
  }

.table-row-lg {
    height: var(--table-row-height-lg);
  }

/* Striped Tables */

.table-striped .table-row:nth-child(even) {
    background-color: rgb(var(--table-stripe-bg));
  }

.table-striped .table-row:nth-child(even):hover {
    background-color: rgb(var(--table-hover-bg));
  }

/* ============================================================================
   * TABLE CELLS
   * ============================================================================ */

.table-cell {
    padding: 0.75rem 1.5rem;
    vertical-align: middle;
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-700));
    border-bottom: inherit;
  }

.table-cell-sm {
    padding: 0.5rem 1rem;
    font-size: 0.8125rem;
  }

.table-cell-lg {
    padding: 1rem 1.5rem;
    font-size: 0.9375rem;
  }

/* Cell Alignment */

.table-cell-left {
    text-align: left;
  }

.table-cell-center {
    text-align: center;
  }

.table-cell-right {
    text-align: right;
  }

/* Cell Content Types */

.table-cell-numeric {
    text-align: right;
    font-family: 'JetBrains Mono', monospace;
    font-variant-numeric: tabular-nums;
  }

.table-cell-code {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.8125rem;
    color: rgb(var(--color-neutral-600));
  }

.table-cell-truncate {
    max-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

.table-cell-wrap {
    white-space: normal;
    word-wrap: break-word;
  }

/* ============================================================================
   * BULK SELECTION SYSTEM
   * ============================================================================ */

.table-selection {
    position: relative;
  }

.table-selection-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 20;
    background-color: rgb(var(--color-primary-600));
    color: rgb(255 255 255);
    padding: 0.75rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    transform: translateY(-100%);
    transition: transform var(--timing-fast);
  }

.table-selection-header.active {
    transform: translateY(0);
  }

.table-selection-info {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
  }

.table-selection-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

.table-selection-action {
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
    background-color: rgb(255 255 255 / 0.2);
    border: 1px solid rgb(255 255 255 / 0.3);
    border-radius: var(--radius-md);
    color: rgb(255 255 255);
    cursor: pointer;
    transition: all var(--timing-fast);
  }

.table-selection-action:hover {
    background-color: rgb(255 255 255 / 0.3);
  }

/* Selection Checkbox */

.table-selection-checkbox {
    width: 1rem;
    height: 1rem;
    accent-color: rgb(var(--color-primary-600));
    cursor: pointer;
  }

/* ============================================================================
   * TABLE TOOLBAR
   * ============================================================================ */

.table-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid rgb(var(--table-border-color));
    background-color: rgb(255 255 255);
  }

.table-toolbar-left {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
  }

.table-toolbar-right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
  }

.table-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    margin: 0;
  }

.table-subtitle {
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-500));
    margin: 0.25rem 0 0 0;
  }

/* Table Filters */

.table-filters {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
  }

.table-filter-toggle {
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
    background-color: rgb(var(--color-neutral-100));
    border: 1px solid rgb(var(--color-neutral-300));
    border-radius: var(--radius-md);
    color: rgb(var(--color-neutral-700));
    cursor: pointer;
    transition: all var(--timing-fast);
    text-decoration: none;
  }

.table-filter-toggle:hover {
    background-color: rgb(var(--color-neutral-200));
    text-decoration: none;
  }

.table-filter-toggle.active {
    background-color: rgb(var(--color-primary-600));
    border-color: rgb(var(--color-primary-600));
    color: rgb(255 255 255);
  }

.table-filter-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.375rem;
    margin-left: 0.375rem;
    background-color: rgb(255 255 255 / 0.3);
    border-radius: 0.625rem;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
  }

/* Table Search */

.table-search {
    position: relative;
    min-width: 16rem;
  }

.table-search-input {
    width: 100%;
    padding: 0.5rem 0.75rem 0.5rem 2.5rem;
    font-size: 0.875rem;
    background-color: rgb(255 255 255);
    border: 1px solid rgb(var(--color-neutral-300));
    border-radius: var(--radius-md);
    color: rgb(var(--color-neutral-900));
    transition: all var(--timing-fast);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236b7280'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m21 21-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3e%3c/svg%3e");
    background-position: left 0.75rem center;
    background-repeat: no-repeat;
    background-size: 1rem 1rem;
  }

.table-search-input:focus {
    outline: none;
    box-shadow: var(--table-focus-shadow);
    border-color: rgb(var(--color-primary-500));
  }

/* ============================================================================
   * TABLE PAGINATION
   * ============================================================================ */

.table-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.5rem;
    border-top: 1px solid rgb(var(--table-border-color));
    background-color: rgb(var(--color-neutral-50));
  }

.table-info {
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-600));
  }

.table-pagination {
    display: flex;
    align-items: center;
    gap: 0.25rem;
  }

.pagination-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    font-size: 0.875rem;
    background-color: rgb(255 255 255);
    border: 1px solid rgb(var(--color-neutral-300));
    border-radius: var(--radius-md);
    color: rgb(var(--color-neutral-700));
    cursor: pointer;
    transition: all var(--timing-fast);
    text-decoration: none;
  }

.pagination-btn:hover:not(:disabled) {
    background-color: rgb(var(--color-neutral-100));
    border-color: rgb(var(--color-neutral-400));
  }

.pagination-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
  }

.pagination-btn.active {
    background-color: rgb(var(--color-primary-600));
    border-color: rgb(var(--color-primary-600));
    color: rgb(255 255 255);
  }

.pagination-ellipsis {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    color: rgb(var(--color-neutral-400));
    font-size: 0.875rem;
  }

/* ============================================================================
   * LEGAL WORKFLOW SPECIFIC TABLES
   * ============================================================================ */

/* Matter Table Specialization */

.matter-table .table-container {
    border-left: 4px solid rgb(var(--color-primary-500));
  }

.matter-reference {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.8125rem;
    color: rgb(var(--color-neutral-600));
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
  }

.matter-client {
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
  }

.matter-description {
    color: rgb(var(--color-neutral-600));
    max-width: 20rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

.matter-fee-earner {
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-700));
  }

.matter-value {
    text-align: right;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    font-variant-numeric: tabular-nums;
  }

.matter-last-activity {
    font-size: 0.8125rem;
    color: rgb(var(--color-neutral-500));
    white-space: nowrap;
  }

.matter-status {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.5rem;
    border-radius: 0.375rem;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

.matter-status-active {
    background-color: rgb(var(--color-success-100));
    color: rgb(var(--color-success-800));
  }

.matter-status-draft {
    background-color: rgb(var(--color-neutral-100));
    color: rgb(var(--color-neutral-700));
  }

.matter-status-completed {
    background-color: rgb(var(--color-primary-100));
    color: rgb(var(--color-primary-800));
  }

.matter-status-on-hold {
    background-color: rgb(var(--color-warning-100));
    color: rgb(var(--color-warning-800));
  }

/* Document Table Specialization */

.document-table .table-container {
    border-left: 4px solid rgb(var(--color-info-500));
  }

.document-name {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 500;
    color: rgb(var(--color-neutral-900));
  }

.document-icon {
    width: 1rem;
    height: 1rem;
    color: rgb(var(--color-neutral-500));
    flex-shrink: 0;
  }

.document-size {
    font-size: 0.8125rem;
    color: rgb(var(--color-neutral-500));
    font-family: 'JetBrains Mono', monospace;
    text-align: right;
  }

.document-modified {
    font-size: 0.8125rem;
    color: rgb(var(--color-neutral-500));
    white-space: nowrap;
  }

.document-category {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 500;
    background-color: rgb(var(--color-info-100));
    color: rgb(var(--color-info-800));
  }

/* Time Entry Table Specialization */

.time-table .table-container {
    border-left: 4px solid rgb(var(--color-warning-500));
  }

.time-duration {
    text-align: right;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    font-variant-numeric: tabular-nums;
  }

.time-rate {
    text-align: right;
    font-family: 'JetBrains Mono', monospace;
    color: rgb(var(--color-neutral-600));
    font-variant-numeric: tabular-nums;
  }

.time-description {
    color: rgb(var(--color-neutral-700));
    max-width: 24rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

.time-billable {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    font-size: 0.75rem;
    font-weight: 600;
  }

.time-billable-yes {
    background-color: rgb(var(--color-success-100));
    color: rgb(var(--color-success-700));
  }

.time-billable-no {
    background-color: rgb(var(--color-neutral-100));
    color: rgb(var(--color-neutral-500));
  }

/* Financial Table Specialization */

.financial-table .table-container {
    border-left: 4px solid rgb(var(--color-success-500));
  }

.financial-amount {
    text-align: right;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
  }

.financial-amount-positive {
    color: rgb(var(--color-success-600));
  }

.financial-amount-negative {
    color: rgb(var(--color-error-600));
  }

.financial-amount-neutral {
    color: rgb(var(--color-neutral-900));
  }

.financial-balance {
    text-align: right;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
  }

.financial-account {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.8125rem;
    color: rgb(var(--color-neutral-600));
  }

/* Contact Table Specialization */

.contact-table .table-container {
    border-left: 4px solid rgb(var(--color-secondary-500));
  }

.contact-name {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 500;
    color: rgb(var(--color-neutral-900));
  }

.contact-avatar {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    -o-object-fit: cover;
       object-fit: cover;
    border: 1px solid rgb(var(--color-neutral-200));
  }

.contact-initials {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background-color: rgb(var(--color-primary-100));
    color: rgb(var(--color-primary-700));
    font-size: 0.75rem;
    font-weight: 600;
  }

.contact-type {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.375rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

.contact-type-client {
    background-color: rgb(var(--color-primary-100));
    color: rgb(var(--color-primary-800));
  }

.contact-type-opposing {
    background-color: rgb(var(--color-warning-100));
    color: rgb(var(--color-warning-800));
  }

.contact-type-professional {
    background-color: rgb(var(--color-info-100));
    color: rgb(var(--color-info-800));
  }

.contact-company {
    font-size: 0.8125rem;
    color: rgb(var(--color-neutral-500));
  }

/* ============================================================================
   * EMPTY STATES AND LOADING
   * ============================================================================ */

.table-empty {
    text-align: center;
    padding: 3rem 2rem;
    color: rgb(var(--color-neutral-500));
  }

.table-empty-icon {
    width: 3rem;
    height: 3rem;
    margin: 0 auto 1rem auto;
    color: rgb(var(--color-neutral-300));
  }

.table-empty-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-700));
    margin: 0 0 0.5rem 0;
  }

.table-empty-description {
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-500));
    margin: 0 0 1.5rem 0;
    max-width: 24rem;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.5;
  }

.table-empty-action {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background-color: rgb(var(--color-primary-600));
    color: rgb(255 255 255);
    border: none;
    border-radius: var(--radius-md);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: all var(--timing-fast);
    text-decoration: none;
  }

.table-empty-action:hover {
    background-color: rgb(var(--color-primary-700));
    text-decoration: none;
  }

/* Table Loading State */

.table-loading {
    position: relative;
  }

.table-loading::after {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgb(255 255 255 / 0.8);
    backdrop-filter: blur(1px);
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: center;
  }

.table-loading-spinner {
    width: 2rem;
    height: 2rem;
    border: 2px solid rgb(var(--color-neutral-200));
    border-top: 2px solid rgb(var(--color-primary-600));
    border-radius: 50%;
    animation: table-spin 1s linear infinite;
  }

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

/* ============================================================================
   * HTMX INTEGRATION PATTERNS
   * ============================================================================ */

/* HTMX Loading States */

.table-container.htmx-request {
    opacity: 0.75;
  }

.table-container .htmx-indicator {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 40;
    display: none;
  }

.table-container.htmx-request .htmx-indicator {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    background-color: rgb(255 255 255);
    border-radius: 50%;
    box-shadow: 0 4px 12px 0 rgb(0 0 0 / 0.15);
  }

/* HTMX Swap Animations */

.table-row.htmx-added {
    animation: table-row-slide-in 0.3s ease-out;
  }

.table-row.htmx-removed {
    animation: table-row-slide-out 0.3s ease-in;
  }

@keyframes table-row-slide-in {
    from {
      opacity: 0;
      transform: translateY(-0.5rem);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

@keyframes table-row-slide-out {
    from {
      opacity: 1;
      transform: translateY(0);
    }
    to {
      opacity: 0;
      transform: translateY(-0.5rem);
    }
  }

/* HTMX Form Integration */

.table-inline-form {
    background-color: rgb(var(--color-neutral-50));
    border: 1px solid rgb(var(--color-neutral-200));
    border-radius: var(--radius-md);
    padding: 1rem;
    margin: 0.5rem 0;
  }

.table-inline-form .form-actions {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgb(var(--color-neutral-200));
  }

/* ============================================================================
   * DATA TABLE COMPONENT (TEMPLATE INTEGRATION)
   * ============================================================================ */

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

.data-table-container {
    background-color: rgb(255 255 255);
    border: 1px solid rgb(var(--table-border-color));
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
  }

.data-table-header {
    background-color: rgb(var(--table-header-bg));
    padding: 0.75rem 1.5rem;
    text-align: left;
    font-size: 0.75rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-500));
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-bottom: 1px solid rgb(var(--table-border-color));
  }

.data-table-row {
    border-bottom: 1px solid rgb(var(--table-border-color));
    transition: all var(--timing-fast);
  }

.data-table-row:last-child {
    border-bottom: 0;
  }

.data-table-row:hover {
    background-color: rgb(var(--table-hover-bg));
  }

.data-table-cell {
    padding: 0.75rem 1.5rem;
    vertical-align: middle;
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-700));
  }

/* ============================================================================
   * RESPONSIVE TABLE DESIGN
   * ============================================================================ */

/* Mobile Table Cards */

@media (max-width: 768px) {
    .table-mobile-cards .table-wrapper {
      display: none;
    }

    .table-mobile-cards .table-card-container {
      display: block;
      padding: 1rem;
      gap: 1rem;
    }

    .table-card {
      background-color: rgb(255 255 255);
      border: 1px solid rgb(var(--table-border-color));
      border-radius: var(--radius-md);
      padding: 1rem;
      margin-bottom: 1rem;
      box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1);
    }

    .table-card:last-child {
      margin-bottom: 0;
    }

    .table-card-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 0.75rem;
      padding-bottom: 0.75rem;
      border-bottom: 1px solid rgb(var(--color-neutral-200));
    }

    .table-card-title {
      font-weight: 600;
      color: rgb(var(--color-neutral-900));
    }

    .table-card-subtitle {
      font-size: 0.8125rem;
      color: rgb(var(--color-neutral-500));
      margin-top: 0.125rem;
    }

    .table-card-body {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
    }

    .table-card-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 0.25rem 0;
    }

    .table-card-label {
      font-size: 0.8125rem;
      font-weight: 500;
      color: rgb(var(--color-neutral-600));
    }

    .table-card-value {
      font-size: 0.875rem;
      color: rgb(var(--color-neutral-900));
      text-align: right;
    }

    .table-card-actions {
      margin-top: 0.75rem;
      padding-top: 0.75rem;
      border-top: 1px solid rgb(var(--color-neutral-200));
      display: flex;
      gap: 0.5rem;
      justify-content: flex-end;
    }
  }

/* Tablet Responsive */

@media (max-width: 1024px) {
    .table-toolbar {
      flex-direction: column;
      align-items: stretch;
      gap: 1rem;
    }

    .table-toolbar-left,
    .table-toolbar-right {
      justify-content: space-between;
    }

    .table-filters {
      flex-wrap: wrap;
    }

    .table-search {
      min-width: auto;
      flex: 1;
    }

    .table-footer {
      flex-direction: column;
      gap: 1rem;
      align-items: center;
    }

    .table-pagination {
      justify-content: center;
    }
  }

/* Compact Mobile */

@media (max-width: 480px) {
    .table-toolbar {
      padding: 0.75rem 1rem;
    }

    .table-title {
      font-size: 1rem;
    }

    .table-filters {
      gap: 0.25rem;
    }

    .table-filter-toggle {
      padding: 0.25rem 0.5rem;
      font-size: 0.75rem;
    }

    .table-card {
      padding: 0.75rem;
      margin-bottom: 0.75rem;
    }

    .table-card-header {
      margin-bottom: 0.5rem;
      padding-bottom: 0.5rem;
    }

    .table-card-actions {
      margin-top: 0.5rem;
      padding-top: 0.5rem;
    }

    .table-action-btn {
      width: 1.75rem;
      height: 1.75rem;
    }

    .table-selection-header {
      padding: 0.5rem 1rem;
    }

    .table-footer {
      padding: 0.75rem 1rem;
    }
  }

/* ============================================================================
   * PRINT STYLES
   * ============================================================================ */

@media print {
    .table-container {
      box-shadow: none;
      border: 1px solid rgb(var(--color-neutral-400));
      page-break-inside: avoid;
    }

    .table-toolbar,
    .table-footer,
    .table-selection-header,
    .table-actions,
    .row-menu {
      display: none;
    }

    .table-header-cell-sortable {
      cursor: default;
    }

    .table-row {
      page-break-inside: avoid;
    }

    .table-row:hover {
      background-color: transparent;
    }

    .table-card {
      page-break-inside: avoid;
      margin-bottom: 1rem;
      box-shadow: none;
      border: 1px solid rgb(var(--color-neutral-400));
    }

    /* Print financial tables with better formatting */
    .financial-amount,
    .financial-balance,
    .time-duration,
    .time-rate,
    .matter-value {
      font-weight: 700;
    }
  }

/* ============================================================================
   * ACCESSIBILITY ENHANCEMENTS
   * ============================================================================ */

/* High contrast mode support */

@media (prefers-contrast: high) {
    .table-container {
      border-width: 2px;
    }

    .table-header-cell,
    .table-cell {
      border-bottom-width: 2px;
    }

    .table-row:focus-within {
      box-shadow: inset 0 0 0 2px rgb(var(--color-neutral-900));
    }

    .table-action-btn:focus {
      border-color: rgb(var(--color-neutral-900));
    }
  }

/* Reduced motion support */

@media (prefers-reduced-motion: reduce) {
    .table-row,
    .table-header-cell-sortable,
    .table-action-btn,
    .table-filter-toggle,
    .pagination-btn {
      transition: none;
    }

    .table-row.htmx-added,
    .table-row.htmx-removed {
      animation: none;
    }

    .table-loading-spinner {
      animation: none;
    }

    .table-selection-header {
      transition: none;
    }
  }

/* Focus management for screen readers */

.table-row:focus-within {
    position: relative;
    z-index: 1;
  }

.table-header-cell-sortable:focus-visible,
  .table-action-btn:focus-visible,
  .pagination-btn:focus-visible {
    box-shadow: var(--table-focus-shadow);
  }

/* Screen reader enhancements */

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

/* Table captions for screen readers */

.table-caption {
    caption-side: top;
    text-align: left;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: rgb(var(--color-neutral-900));
  }

/* Sortable column announcements */

.table-header-cell-sortable[aria-sort="ascending"]::after {
    content: ' (sorted ascending)';
    position: absolute;
    left: -10000px;
  }

.table-header-cell-sortable[aria-sort="descending"]::after {
    content: ' (sorted descending)';
    position: absolute;
    left: -10000px;
  }

/* ============================================================================
   * DARK MODE SUPPORT (IF IMPLEMENTING)
   * ============================================================================ */

@media (prefers-color-scheme: dark) {
    .table-container {
      background-color: rgb(var(--color-neutral-800));
      border-color: rgb(var(--color-neutral-700));
    }

    .table-header {
      background-color: rgb(var(--color-neutral-750));
    }

    .table-header-cell {
      color: rgb(var(--color-neutral-400));
      border-color: rgb(var(--color-neutral-700));
    }

    .table-row {
      border-color: rgb(var(--color-neutral-700));
    }

    .table-row:hover {
      background-color: rgb(var(--color-neutral-750));
    }

    .table-cell {
      color: rgb(var(--color-neutral-300));
    }

    .table-toolbar {
      background-color: rgb(var(--color-neutral-800));
      border-color: rgb(var(--color-neutral-700));
    }

    .table-footer {
      background-color: rgb(var(--color-neutral-750));
      border-color: rgb(var(--color-neutral-700));
    }

    .table-title {
      color: rgb(var(--color-neutral-100));
    }

    .table-info {
      color: rgb(var(--color-neutral-400));
    }

    .table-search-input {
      background-color: rgb(var(--color-neutral-700));
      border-color: rgb(var(--color-neutral-600));
      color: rgb(var(--color-neutral-200));
    }

    .table-filter-toggle {
      background-color: rgb(var(--color-neutral-700));
      border-color: rgb(var(--color-neutral-600));
      color: rgb(var(--color-neutral-200));
    }

    .table-card {
      background-color: rgb(var(--color-neutral-800));
      border-color: rgb(var(--color-neutral-700));
    }

    .table-card-title {
      color: rgb(var(--color-neutral-100));
    }

    .table-card-label {
      color: rgb(var(--color-neutral-400));
    }

    .table-card-value {
      color: rgb(var(--color-neutral-200));
    }

    .row-menu-dropdown {
      background-color: rgb(var(--color-neutral-800));
      border-color: rgb(var(--color-neutral-700));
    }

    .row-menu-item {
      color: rgb(var(--color-neutral-200));
    }

    .row-menu-item:hover {
      background-color: rgb(var(--color-neutral-700));
    }
  }

/* ============================================================================
   * TABLE PERFORMANCE OPTIMIZATIONS
   * ============================================================================ */

/* Virtual scrolling support (for large datasets) */

.table-virtual {
    height: 400px;
    overflow-y: auto;
  }

.table-virtual .table-body {
    position: relative;
  }

.table-virtual-spacer {
    height: var(--spacer-height, 0);
  }

/* GPU acceleration for smooth scrolling */

.table-container {
    will-change: scroll-position;
  }

.table-row {
    will-change: background-color;
  }

/* Optimize rendering for large tables */

.table-large {
    contain: layout style paint;
  }

.table-large .table-cell {
    contain: layout style;
  }

/* ============================================================================
   * BUTTON CSS VARIABLES (IF NOT ALREADY DEFINED IN BASE)
   * ============================================================================ */

:root {
    /* Border radius (if not in base.css) */
    --radius-sm: 0.25rem;
    --radius-md: 0.375rem;
    --radius-lg: 0.5rem;
    
    /* Timing (if not in base.css) */
    --timing-fast: 200ms ease;
    --easing-smooth: cubic-bezier(0.4, 0, 0.2, 1);
    
    /* Shadows (if not in base.css) */
    --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --shadow-focus: 0 0 0 2px rgb(var(--color-primary-500) / 0.5);
    
    /* Color fallbacks (if not defined in color system) */
    --color-info-600: 37 99 235; /* blue-600 */
    --color-info-700: 29 78 216; /* blue-700 */
    --color-info-800: 30 64 175; /* blue-800 */
    --color-info-300: 147 197 253; /* blue-300 */
    --color-info-500: 59 130 246; /* blue-500 */
    --color-error-500: 239 68 68; /* red-500 */
  }

/* ============================================================================
   * BUTTON FOUNDATION
   * ============================================================================ */

/* Base Button - Foundation for all button variants */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    background-color: transparent;
    color: inherit;
    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    white-space: nowrap;
    line-height: 1.25;
    transition: all var(--timing-fast) var(--easing-smooth);
    text-decoration: none;
    position: relative;
    outline: none;
  }

.btn:focus-visible {
    box-shadow: 0 0 0 2px rgb(var(--color-primary-500));
  }

.btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
  }

/* Button loading state for HTMX integration */

.btn.htmx-request {
    color: transparent;
  }

.btn.htmx-request::after {
    content: '';
    position: absolute;
    width: 1rem;
    height: 1rem;
    border: 2px solid;
    border-color: transparent currentColor currentColor transparent;
    border-radius: 50%;
    animation: btn-spin 1s linear infinite;
  }

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

/* ============================================================================
   * PRIMARY BUTTON VARIANTS
   * ============================================================================ */

/* Primary - Main call-to-action */

.btn-primary {
    background-color: rgb(var(--color-primary-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-primary-600));
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  }

.btn-primary:hover {
    background-color: rgb(var(--color-primary-700));
    border-color: rgb(var(--color-primary-700));
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 0.1);
  }

.btn-primary:active {
    background-color: rgb(var(--color-primary-800));
    border-color: rgb(var(--color-primary-800));
    transform: translateY(1px);
  }

.btn-primary:disabled {
    background-color: rgb(var(--color-primary-300));
    border-color: rgb(var(--color-primary-300));
    box-shadow: none;
  }

/* Secondary - Supporting actions */

.btn-secondary {
    background-color: rgb(255 255 255);
    color: rgb(var(--color-neutral-700));
    border-color: rgb(var(--color-neutral-300));
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  }

.btn-secondary:hover {
    background-color: rgb(var(--color-neutral-50));
    color: rgb(var(--color-neutral-900));
    border-color: rgb(var(--color-neutral-400));
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 0.1);
  }

.btn-secondary:active {
    background-color: rgb(var(--color-neutral-100));
    transform: translateY(1px);
  }

.btn-secondary:disabled {
    background-color: rgb(var(--color-neutral-50));
    color: rgb(var(--color-neutral-400));
    border-color: rgb(var(--color-neutral-200));
    box-shadow: none;
  }

/* Tertiary - Minimal actions */

.btn-tertiary {
    background-color: transparent;
    color: rgb(var(--color-neutral-600));
    border-color: transparent;
  }

.btn-tertiary:hover {
    background-color: rgb(var(--color-neutral-100));
    color: rgb(var(--color-neutral-900));
  }

.btn-tertiary:active {
    background-color: rgb(var(--color-neutral-200));
  }

.btn-tertiary:disabled {
    color: rgb(var(--color-neutral-400));
  }

/* ============================================================================
   * SEMANTIC BUTTON VARIANTS
   * ============================================================================ */

/* Success - Confirmation actions */

.btn-success {
    background-color: rgb(var(--color-success-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-success-600));
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  }

.btn-success:hover {
    background-color: rgb(var(--color-success-700));
    border-color: rgb(var(--color-success-700));
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 0.1);
  }

.btn-success:active {
    background-color: rgb(var(--color-success-800));
    border-color: rgb(var(--color-success-800));
    transform: translateY(1px);
  }

.btn-success:disabled {
    background-color: rgb(var(--color-success-300));
    border-color: rgb(var(--color-success-300));
    box-shadow: none;
  }

/* Warning - Caution actions */

.btn-warning {
    background-color: rgb(var(--color-warning-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-warning-600));
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  }

.btn-warning:hover {
    background-color: rgb(var(--color-warning-700));
    border-color: rgb(var(--color-warning-700));
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 0.1);
  }

.btn-warning:active {
    background-color: rgb(var(--color-warning-800));
    border-color: rgb(var(--color-warning-800));
    transform: translateY(1px);
  }

.btn-warning:disabled {
    background-color: rgb(var(--color-warning-300));
    border-color: rgb(var(--color-warning-300));
    box-shadow: none;
  }

/* Danger - Destructive actions */

.btn-danger {
    background-color: rgb(var(--color-error-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-error-600));
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  }

.btn-danger:hover {
    background-color: rgb(var(--color-error-700));
    border-color: rgb(var(--color-error-700));
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 0.1);
  }

.btn-danger:active {
    background-color: rgb(var(--color-error-800));
    border-color: rgb(var(--color-error-800));
    transform: translateY(1px);
  }

.btn-danger:disabled {
    background-color: rgb(var(--color-error-300));
    border-color: rgb(var(--color-error-300));
    box-shadow: none;
  }

/* Info - Informational actions */

.btn-info {
    background-color: rgb(var(--color-info-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-info-600));
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  }

.btn-info:hover {
    background-color: rgb(var(--color-info-700));
    border-color: rgb(var(--color-info-700));
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 0.1);
  }

.btn-info:active {
    background-color: rgb(var(--color-info-800));
    border-color: rgb(var(--color-info-800));
    transform: translateY(1px);
  }

.btn-info:disabled {
    background-color: rgb(var(--color-info-300));
    border-color: rgb(var(--color-info-300));
    box-shadow: none;
  }

/* ============================================================================
   * OUTLINE BUTTON VARIANTS
   * ============================================================================ */

.btn-outline-primary {
    background-color: transparent;
    color: rgb(var(--color-primary-600));
    border-color: rgb(var(--color-primary-600));
  }

.btn-outline-primary:hover {
    background-color: rgb(var(--color-primary-600));
    color: rgb(255 255 255);
  }

.btn-outline-secondary {
    background-color: transparent;
    color: rgb(var(--color-neutral-600));
    border-color: rgb(var(--color-neutral-300));
  }

.btn-outline-secondary:hover {
    background-color: rgb(var(--color-neutral-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-neutral-600));
  }

.btn-outline-success {
    background-color: transparent;
    color: rgb(var(--color-success-600));
    border-color: rgb(var(--color-success-600));
  }

.btn-outline-success:hover {
    background-color: rgb(var(--color-success-600));
    color: rgb(255 255 255);
  }

.btn-outline-warning {
    background-color: transparent;
    color: rgb(var(--color-warning-600));
    border-color: rgb(var(--color-warning-600));
  }

.btn-outline-warning:hover {
    background-color: rgb(var(--color-warning-600));
    color: rgb(255 255 255);
  }

.btn-outline-danger {
    background-color: transparent;
    color: rgb(var(--color-error-600));
    border-color: rgb(var(--color-error-600));
  }

.btn-outline-danger:hover {
    background-color: rgb(var(--color-error-600));
    color: rgb(255 255 255);
  }

.btn-outline-info {
    background-color: transparent;
    color: rgb(var(--color-info-600));
    border-color: rgb(var(--color-info-600));
  }

.btn-outline-info:hover {
    background-color: rgb(var(--color-info-600));
    color: rgb(255 255 255);
  }

/* ============================================================================
   * GHOST BUTTON VARIANTS
   * ============================================================================ */

.btn-ghost {
    background-color: transparent;
    border-color: transparent;
    color: rgb(var(--color-neutral-600));
  }

.btn-ghost:hover {
    color: rgb(var(--color-neutral-900));
    background-color: rgb(var(--color-neutral-100));
  }

.btn-ghost-primary {
    background-color: transparent;
    border-color: transparent;
    color: rgb(var(--color-primary-600));
  }

.btn-ghost-primary:hover {
    color: rgb(var(--color-primary-700));
    background-color: rgb(var(--color-primary-50));
  }

.btn-ghost-danger {
    background-color: transparent;
    border-color: transparent;
    color: rgb(var(--color-error-600));
  }

.btn-ghost-danger:hover {
    color: rgb(var(--color-error-700));
    background-color: rgb(var(--color-error-50));
  }

/* ============================================================================
   * BUTTON SIZES
   * ============================================================================ */

.btn-xs {
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
    line-height: 1;
  }

.btn-sm {
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
    line-height: 1.25;
  }

.btn-md {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    line-height: 1.25;
  }

.btn-lg {
    padding: 0.75rem 1.5rem;
    font-size: 1rem;
    line-height: 1.5;
  }

.btn-xl {
    padding: 1rem 2rem;
    font-size: 1.125rem;
    line-height: 1.5;
  }

/* ============================================================================
   * LEGAL INDUSTRY SPECIALIZED BUTTONS
   * ============================================================================ */

/* Navigation Menu Toggle Button */

.nav-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    margin: 0;
    background: none;
    border: none;
    border-radius: var(--radius-md);
    color: rgb(var(--color-neutral-600));
    cursor: pointer;
    transition: all var(--timing-fast);
  }

.nav-menu-toggle:hover {
    background-color: rgb(var(--color-neutral-100));
    color: rgb(var(--color-neutral-900));
  }

.nav-menu-toggle:focus-visible {
    box-shadow: 0 0 0 2px rgb(var(--color-primary-500));
  }

/* Hamburger Icon Animation */

.nav-hamburger-icon {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    width: 1.25rem;
    height: 1rem;
  }

.hamburger-line {
    width: 100%;
    height: 2px;
    background-color: currentColor;
    border-radius: 1px;
    transition: all var(--timing-fast);
    transform-origin: center;
  }

.nav-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(1) {
    transform: translateY(6px) rotate(45deg);
  }

.nav-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(2) {
    opacity: 0;
  }

.nav-menu-toggle[aria-expanded="true"] .hamburger-line:nth-child(3) {
    transform: translateY(-6px) rotate(-45deg);
  }

/* Matter Action Buttons */

.btn-matter-create {
    background-color: rgb(var(--color-primary-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-primary-600));
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  }

.btn-matter-create:hover {
    background-color: rgb(var(--color-primary-700));
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 0.1);
  }

.btn-matter-archive {
    background-color: transparent;
    color: rgb(var(--color-warning-600));
    border-color: rgb(var(--color-warning-600));
  }

.btn-matter-archive:hover {
    background-color: rgb(var(--color-warning-600));
    color: rgb(255 255 255);
  }

/* Document Action Buttons */

.btn-document-upload {
    background-color: rgb(var(--color-secondary-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-secondary-600));
  }

.btn-document-upload:hover {
    background-color: rgb(var(--color-secondary-700));
  }

.btn-document-generate {
    background-color: rgb(var(--color-info-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-info-600));
  }

.btn-document-generate:hover {
    background-color: rgb(var(--color-info-700));
  }

/* Time Tracking Buttons */

.btn-time-start {
    background-color: rgb(var(--color-success-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-success-600));
  }

.btn-time-start:hover {
    background-color: rgb(var(--color-success-700));
  }

.btn-time-stop {
    background-color: rgb(var(--color-error-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-error-600));
  }

.btn-time-stop:hover {
    background-color: rgb(var(--color-error-700));
  }

/* Orange variant - Used in templates for specific legal actions */

.btn-orange {
    background-color: rgb(var(--color-warning-600));
    color: rgb(255 255 255);
    border-color: rgb(var(--color-warning-600));
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  }

.btn-orange:hover {
    background-color: rgb(var(--color-warning-700));
    border-color: rgb(var(--color-warning-700));
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 0.1);
  }

.btn-orange:active {
    background-color: rgb(var(--color-warning-800));
    border-color: rgb(var(--color-warning-800));
    transform: translateY(1px);
  }

/* ============================================================================
   * MISSING CLASSES FROM TEMPLATES
   * ============================================================================ */

/* Icon-only button class mentioned in icon_button.html */

.btn-icon-only {
    padding: 0.5rem;
    width: 2.5rem;
    height: 2.5rem;
    aspect-ratio: 1;
    justify-content: center;
  }

/* Button spinner for loading states */

.btn-spinner {
    position: absolute;
  }

/* Button icon positioning classes */

.btn-icon-left {
    margin-right: 0.5rem;
  }

.btn-icon-right {
    margin-left: 0.5rem;
  }

/* Button text wrapper */

.btn-text {
    line-height: 1;
  }

/* Button badges for notifications */

.btn-badge {
    position: absolute;
    top: -0.25rem;
    right: -0.25rem;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.375rem;
    background-color: rgb(var(--color-error-500));
    color: rgb(255 255 255);
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 0.625rem;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
  }

/* Button disabled state class */

.btn-disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
  }

/* ============================================================================
   * BUTTON GROUPS AND TOOLBARS
   * ============================================================================ */

.btn-group {
    display: inline-flex;
    align-items: center;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  }

.btn-group .btn {
    border-radius: 0;
    margin: 0;
    border-right-width: 0;
  }

.btn-group .btn:first-child {
    border-top-left-radius: var(--radius-md);
    border-bottom-left-radius: var(--radius-md);
  }

.btn-group .btn:last-child {
    border-top-right-radius: var(--radius-md);
    border-bottom-right-radius: var(--radius-md);
    border-right-width: 1px;
  }

.btn-group .btn:not(:first-child):not(:last-child) {
    border-radius: 0;
  }

.btn-toolbar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
  }

/* Button actions container - used in templates */

.btn-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
  }

.btn-actions-horizontal {
    flex-direction: row;
  }

.btn-actions-vertical {
    flex-direction: column;
    align-items: stretch;
  }

/* ============================================================================
   * FLOATING ACTION BUTTON (FAB)
   * ============================================================================ */

.btn-fab {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    width: 3.5rem;
    height: 3.5rem;
    padding: 0;
    border-radius: 50%;
    background-color: rgb(var(--color-primary-600));
    color: rgb(255 255 255);
    border: none;
    box-shadow: 0 4px 12px 0 rgb(0 0 0 / 0.15);
    z-index: 50;
    transition: all var(--timing-fast);
  }

.btn-fab:hover {
    background-color: rgb(var(--color-primary-700));
    box-shadow: 0 8px 16px 0 rgb(0 0 0 / 0.2);
    transform: translateY(-2px);
  }

.btn-fab:active {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px 0 rgb(0 0 0 / 0.1);
  }

/* ============================================================================
   * ICON BUTTON PATTERNS
   * ============================================================================ */

.btn-icon {
    padding: 0.5rem;
    width: 2.5rem;
    height: 2.5rem;
  }

.btn-icon-sm {
    padding: 0.375rem;
    width: 2rem;
    height: 2rem;
  }

.btn-icon-lg {
    padding: 0.75rem;
    width: 3rem;
    height: 3rem;
  }

/* Icon-only buttons should be square */

.btn-icon,
  .btn-icon-sm,
  .btn-icon-lg {
    aspect-ratio: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

/* ============================================================================
   * BUTTON STATES AND INDICATORS
   * ============================================================================ */

/* Loading State */

.btn-loading {
    position: relative;
    color: transparent;
  }

.btn-loading::after {
    content: '';
    position: absolute;
    width: 1rem;
    height: 1rem;
    border: 2px solid;
    border-color: transparent currentColor currentColor transparent;
    border-radius: 50%;
    animation: btn-spin 1s linear infinite;
  }

/* Success State */

.btn-success-state {
    background-color: rgb(var(--color-success-600));
    border-color: rgb(var(--color-success-600));
    color: rgb(255 255 255);
  }

/* Error State */

.btn-error-state {
    background-color: rgb(var(--color-error-600));
    border-color: rgb(var(--color-error-600));
    color: rgb(255 255 255);
  }

/* Active/Pressed State */

.btn[aria-pressed="true"] {
    background-color: rgb(var(--color-primary-700));
    border-color: rgb(var(--color-primary-700));
    color: rgb(255 255 255);
  }

/* ============================================================================
   * RESPONSIVE DESIGN
   * ============================================================================ */

@media (max-width: 768px) {
    /* Stack button groups on mobile */
    .btn-group {
      flex-direction: column;
      align-items: stretch;
      width: 100%;
    }

    .btn-group .btn {
      border-radius: 0;
      border-right-width: 1px;
      border-bottom-width: 0;
    }

    .btn-group .btn:first-child {
      border-top-left-radius: var(--radius-md);
      border-top-right-radius: var(--radius-md);
      border-bottom-left-radius: 0;
    }

    .btn-group .btn:last-child {
      border-bottom-left-radius: var(--radius-md);
      border-bottom-right-radius: var(--radius-md);
      border-top-right-radius: 0;
      border-bottom-width: 1px;
    }

    /* Larger FAB on mobile */
    .btn-fab {
      width: 3rem;
      height: 3rem;
      bottom: 1rem;
      right: 1rem;
    }

    /* Mobile-friendly button actions */
    .btn-toolbar {
      gap: 0.75rem;
    }

    /* Larger touch targets */
    .btn {
      min-height: 2.75rem; /* 44px */
    }

    .btn-sm {
      min-height: 2.25rem; /* 36px */
    }

    .btn-xs {
      min-height: 2rem; /* 32px */
    }
  }

@media (max-width: 480px) {
    /* Full width buttons on very small screens */
    .btn-mobile-full {
      width: 100%;
      justify-content: center;
    }

    .btn-fab {
      width: 2.5rem;
      height: 2.5rem;
      bottom: 0.75rem;
      right: 0.75rem;
    }
  }

/* ============================================================================
   * ACCESSIBILITY ENHANCEMENTS
   * ============================================================================ */

/* High contrast mode support */

@media (prefers-contrast: high) {
    .btn {
      border-width: 2px;
    }

    .btn-primary {
      border-color: rgb(var(--color-primary-800));
    }

    .btn-secondary {
      border-color: rgb(var(--color-neutral-600));
    }
  }

/* Reduced motion support */

@media (prefers-reduced-motion: reduce) {
    .btn,
    .nav-menu-toggle,
    .hamburger-line {
      transition: none;
    }

    .btn-loading::after,
    .btn.htmx-request::after {
      animation: none;
    }

    .btn-fab {
      transition: none;
    }
  }

/* Dark mode support (if implementing) */

@media (prefers-color-scheme: dark) {
    .btn-secondary {
      background-color: rgb(var(--color-neutral-800));
      color: rgb(var(--color-neutral-200));
      border-color: rgb(var(--color-neutral-600));
    }

    .btn-secondary:hover {
      background-color: rgb(var(--color-neutral-700));
      color: rgb(var(--color-neutral-100));
    }
  }

/* ============================================================================
   * PRINT STYLES
   * ============================================================================ */

@media print {
    .btn-fab {
      display: none;
    }

    .btn {
      box-shadow: none;
      border-color: rgb(var(--color-neutral-400));
      background-color: transparent;
      color: rgb(var(--color-neutral-900));
    }

    .btn-primary,
    .btn-success,
    .btn-warning,
    .btn-danger,
    .btn-info {
      background-color: transparent;
      border: 2px solid rgb(var(--color-neutral-900));
    }

    .nav-menu-toggle {
      display: none;
    }
  }

/* ============================================================================
   * MODAL CSS VARIABLES
   * ============================================================================ */

:root {
    /* Modal Z-index system */
    --z-modal-backdrop: 60;
    --z-modal-container: 70;
    --z-modal-dropdown: 80;
    --z-toast: 90;
    
    /* Modal timing */
    --modal-transition-enter: 300ms cubic-bezier(0.4, 0, 0.2, 1);
    --modal-transition-exit: 250ms cubic-bezier(0.4, 0, 0.6, 1);
    --modal-scale-enter: scale(0.95) translateY(-1rem);
    --modal-scale-exit: scale(1) translateY(0);
    
    /* Modal shadows */
    --modal-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
    --modal-shadow-lg: 0 32px 64px -12px rgb(0 0 0 / 0.35);
  }

/* ============================================================================
   * MODAL FOUNDATION SYSTEM
   * ============================================================================ */

/* Base Modal Wrapper */

.\!modal { inset: 0px; padding: 1rem;
    display: flex; padding: var(--util-space-4); justify-content: center; align-items: center; position: fixed; inset: 0; z-index: 50;
}

.modal { inset: 0px; padding: 1rem;
    display: flex; padding: var(--util-space-4); justify-content: center; align-items: center; position: fixed; inset: 0; z-index: 50;
}

.\!modal {
    background-color: rgb(0 0 0 / 0.5) !important;
    backdrop-filter: blur(2px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: all var(--modal-transition-enter) !important;
  }

.modal {
    background-color: rgb(0 0 0 / 0.5);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: all var(--modal-transition-enter);
  }

.\!modal.modal-open {
    visibility: visible;
    opacity: 1;
}

.modal.modal-open {
    visibility: visible;
    opacity: 1;
}

/* Modal Container */

.modal-container { width: 100%; border-radius: 0.5rem; --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); --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);
    display: flex; width: var(--util-size-full); flex-direction: column; position: relative; z-index: 50; background-color: rgb(255 255 255); border-radius: var(--radius-lg); 
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); overflow: hidden;
    max-height: 90vh;
    box-shadow: var(--modal-shadow);
    transform: var(--modal-scale-enter);
    transition: all var(--modal-transition-enter);
}

.\!modal.modal-open .modal-container {
    transform: var(--modal-scale-exit) !important;
  }

.modal.modal-open .modal-container {
    transform: var(--modal-scale-exit);
  }

/* ============================================================================
   * MODAL SIZES
   * ============================================================================ */

.modal-sm .modal-container { max-width: 28rem; max-width: var(--util-size-md);
}

.modal-md .modal-container { max-width: 32rem; max-width: var(--util-size-lg);
}

.modal-lg .modal-container { max-width: 42rem; max-width: var(--util-size-2xl);
}

.modal-xl .modal-container { max-width: 56rem; max-width: var(--util-size-4xl);
}

.modal-full .modal-container { width: 100%; max-width: 1280px; width: var(--util-size-full);
    max-height: 95vh;
    height: 95vh;
}

/* ============================================================================
   * MODAL COMPONENTS
   * ============================================================================ */

/* Modal Header */

.modal-header { border-bottom-width: 1px; --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); padding: 1.5rem;
    display: flex; padding: var(--util-space-6); justify-content: space-between; align-items: center; background-color: rgb(255 255 255);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    flex-shrink: 0;
}

.modal-header-content { min-width: 0px; gap: 1rem;
    display: flex; gap: var(--util-space-4); min-width: 0; flex: 1 1 0%; align-items: center;
}

.modal-title { margin: 0px; --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity, 1)); margin: var(--util-space-0); font-size: 1.25rem; line-height: 1.75rem; font-weight: 600;
}

.modal-subtitle { margin-top: 0.25rem; margin-bottom: 0px; --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1)); margin-top: var(--util-space-1); margin-bottom: var(--util-space-0); font-size: 0.875rem; line-height: 1.25rem;
}

.modal-header-actions { gap: 0.5rem;
    display: flex; gap: var(--util-space-2); flex-shrink: 0; align-items: center;
}

.modal-close { height: 2rem; width: 2rem; border-radius: 0.375rem; border-width: 0px; padding: 0px; --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity, 1));
    display: flex; padding: var(--util-space-0); height: var(--util-space-8); justify-content: center; align-items: center; background-color: transparent; border-width: 0; border-radius: var(--radius-md); cursor: pointer;
    transition: all var(--timing-fast);
}

.modal-close:hover { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}

.modal-close:focus { outline: 2px solid transparent; outline-offset: 2px;
    box-shadow: 0 0 0 2px rgb(var(--color-primary-500));
}

/* Modal Body */

.modal-body { min-height: 0px; padding: 1.5rem; padding: var(--util-space-6); min-height: 0; flex: 1 1 0%; overflow-y: auto;
}

.modal-body-compact { padding: 1rem; padding: var(--util-space-4);
}

.modal-body-padded { padding: 2rem; padding: var(--util-space-8);
}

.modal-body-full { padding: 0px; padding: var(--util-space-0);
}

/* Modal Footer */

.modal-footer { gap: 0.75rem; border-top-width: 1px; --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); padding: 1.5rem;
    display: flex; padding: var(--util-space-6); gap: var(--util-space-3); justify-content: space-between; align-items: center;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    flex-shrink: 0;
}

.modal-footer-compact { padding-left: 1.5rem; padding-right: 1.5rem; padding-top: 1rem; padding-bottom: 1rem; padding-left: var(--util-space-6); padding-right: var(--util-space-6); padding-top: var(--util-space-4); padding-bottom: var(--util-space-4);
}

.modal-footer-info { min-width: 0px; gap: 1rem; --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1));
    display: flex; gap: var(--util-space-4); min-width: 0; flex: 1 1 0%; align-items: center; font-size: 0.875rem; line-height: 1.25rem;
}

.modal-footer-actions { gap: 0.75rem;
    display: flex; gap: var(--util-space-3); flex-shrink: 0; align-items: center;
}

/* Modal Actions */

.modal-actions { gap: 0.75rem;
    display: flex; gap: var(--util-space-3); align-items: center;
}

.modal-action-primary { border-radius: 0.375rem; --tw-border-opacity: 1; border-color: rgb(37 99 235 / var(--tw-border-opacity, 1)); --tw-bg-opacity: 1; background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)); padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem; --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)); padding-left: var(--util-space-4); padding-right: var(--util-space-4); padding-top: var(--util-space-2); padding-bottom: var(--util-space-2); color: rgb(255 255 255); font-size: 0.875rem; line-height: 1.25rem; font-weight: 500; border-width: 1px; border-radius: var(--radius-md); cursor: pointer;
    transition: all var(--timing-fast);
}

.modal-action-primary:hover { --tw-bg-opacity: 1; background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}

.modal-action-secondary { border-radius: 0.375rem; --tw-border-opacity: 1; border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem; --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity, 1)); padding-left: var(--util-space-4); padding-right: var(--util-space-4); padding-top: var(--util-space-2); padding-bottom: var(--util-space-2); font-size: 0.875rem; line-height: 1.25rem; font-weight: 500; background-color: rgb(255 255 255); border-width: 1px; border-radius: var(--radius-md); cursor: pointer;
    transition: all var(--timing-fast);
}

.modal-action-secondary:hover { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}

.modal-action-danger { border-radius: 0.375rem; --tw-border-opacity: 1; border-color: rgb(220 38 38 / var(--tw-border-opacity, 1)); --tw-bg-opacity: 1; background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1)); padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem; --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)); padding-left: var(--util-space-4); padding-right: var(--util-space-4); padding-top: var(--util-space-2); padding-bottom: var(--util-space-2); color: rgb(255 255 255); font-size: 0.875rem; line-height: 1.25rem; font-weight: 500; border-width: 1px; border-radius: var(--radius-md); cursor: pointer;
    transition: all var(--timing-fast);
}

.modal-action-danger:hover { --tw-bg-opacity: 1; background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
}

/* ============================================================================
   * MODAL LOADING STATES
   * ============================================================================ */

.modal-loading { padding-top: 3rem; padding-bottom: 3rem; padding-left: 1.5rem; padding-right: 1.5rem;
    display: flex; padding-left: var(--util-space-6); padding-right: var(--util-space-6); padding-top: var(--util-space-12); padding-bottom: var(--util-space-12); flex-direction: column; justify-content: center; align-items: center; text-align: center;
}

.modal-spinner { margin-bottom: 1rem; height: 2rem; width: 2rem; border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); --tw-border-opacity: 1; border-top-color: rgb(37 99 235 / var(--tw-border-opacity, 1)); margin-bottom: var(--util-space-4); height: var(--util-space-8); border-width: 2px; border-radius: 9999px;
    animation: modal-spin 1s linear infinite;
}

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

.modal-loading-text { --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1)); font-size: 0.875rem; line-height: 1.25rem;
}

/* ============================================================================
   * CONFIRMATION MODALS
   * ============================================================================ */

.modal-confirm .modal-body { padding-bottom: 2rem; padding-left: 1.5rem; padding-right: 1.5rem; padding-top: 2rem; padding-left: var(--util-space-6); padding-right: var(--util-space-6); padding-top: var(--util-space-8); padding-bottom: var(--util-space-8); text-align: center;
}

.modal-confirm-icon { margin-bottom: 1rem; height: 4rem; width: 4rem;
    display: flex; margin-bottom: var(--util-space-4); margin-left: auto; margin-right: auto; height: var(--util-space-16); justify-content: center; align-items: center; border-radius: 9999px;
}

.modal-confirm-icon-warning { --tw-bg-opacity: 1; background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1)); --tw-text-opacity: 1; color: rgb(202 138 4 / var(--tw-text-opacity, 1));
}

.modal-confirm-icon-danger { --tw-bg-opacity: 1; background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1)); --tw-text-opacity: 1; color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}

.modal-confirm-icon-info { --tw-bg-opacity: 1; background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); --tw-text-opacity: 1; color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}

.modal-confirm-icon-success { --tw-bg-opacity: 1; background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1)); --tw-text-opacity: 1; color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}

.modal-confirm-title { margin-bottom: 0.5rem; --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity, 1)); margin-bottom: var(--util-space-2); font-size: 1.125rem; line-height: 1.75rem; font-weight: 600;
}

.modal-confirm-message { margin: 0px; --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1)); margin: var(--util-space-0); font-size: 0.875rem; line-height: 1.25rem;
}

/* ============================================================================
   * MODAL ANIMATIONS
   * ============================================================================ */

.\!modal.modal-entering .modal-container {
    animation: modalSlideIn var(--modal-transition-enter) !important;
  }

.modal.modal-entering .modal-container {
    animation: modalSlideIn var(--modal-transition-enter);
  }

.\!modal.modal-exiting .modal-container {
    animation: modalSlideOut var(--modal-transition-exit) !important;
  }

.modal.modal-exiting .modal-container {
    animation: modalSlideOut var(--modal-transition-exit);
  }

@keyframes modalSlideIn {
    from {
      opacity: 0;
      transform: scale(0.95) translateY(-1rem);
    }
    to {
      opacity: 1;
      transform: scale(1) translateY(0);
    }
  }

@keyframes modalSlideOut {
    from {
      opacity: 1;
      transform: scale(1) translateY(0);
    }
    to {
      opacity: 0;
      transform: scale(0.95) translateY(-1rem);
    }
  }

/* ============================================================================
   * TOAST NOTIFICATIONS
   * ============================================================================ */

.toast-container { top: 1rem; right: 1rem; max-width: 24rem; gap: 0.5rem;
    display: flex; gap: var(--util-space-2); max-width: var(--util-size-sm); flex-direction: column; position: fixed; z-index: 50; pointer-events: none;
}

.toast { gap: 0.75rem; border-radius: 0.375rem; --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); padding: 1rem; --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);
    display: flex; padding: var(--util-space-4); gap: var(--util-space-3); align-items: center; background-color: rgb(255 255 255); border-width: 1px; border-radius: var(--radius-md); 
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); pointer-events: auto;
    transform: translateX(100%);
    transition: all var(--timing-fast);
}

.toast.toast-visible {
    transform: translateX(0);
  }

.toast-icon { height: 1.25rem; width: 1.25rem; flex-shrink: 0;
}

.toast-content { min-width: 0px; min-width: 0; flex: 1 1 0%;
}

.toast-title { margin-bottom: 0.25rem; --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity, 1)); margin-bottom: var(--util-space-1); font-size: 0.875rem; line-height: 1.25rem; font-weight: 500;
}

.toast-message { margin: 0px; --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1)); margin: var(--util-space-0); font-size: 0.75rem; line-height: 1rem;
}

.toast-close { height: 1.5rem; width: 1.5rem; border-radius: 0.125rem; border-width: 0px; --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity, 1));
    display: flex; height: var(--util-space-6); flex-shrink: 0; justify-content: center; align-items: center; background-color: transparent; border-width: 0; border-radius: var(--radius-sm); cursor: pointer;
    transition: all var(--timing-fast);
}

.toast-close:hover { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}

/* Toast variants */

.toast-success { border-left-width: 4px; --tw-border-opacity: 1; border-left-color: rgb(34 197 94 / var(--tw-border-opacity, 1));
}

.toast-success .toast-icon { --tw-text-opacity: 1; color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}

.toast-error { border-left-width: 4px; --tw-border-opacity: 1; border-left-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}

.toast-error .toast-icon { --tw-text-opacity: 1; color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}

.toast-warning { border-left-width: 4px; --tw-border-opacity: 1; border-left-color: rgb(234 179 8 / var(--tw-border-opacity, 1));
}

.toast-warning .toast-icon { --tw-text-opacity: 1; color: rgb(234 179 8 / var(--tw-text-opacity, 1));
}

.toast-info { border-left-width: 4px; --tw-border-opacity: 1; border-left-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}

.toast-info .toast-icon { --tw-text-opacity: 1; color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}

/* ============================================================================
   * CARD FOUNDATIONS - Aligned with Design System
   * ============================================================================ */

/* Content Card - Primary card component used in templates */

.content-card {
    background-color: rgb(255 255 255);
    border: 1px solid rgb(var(--color-neutral-200));
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: all var(--timing-fast);
  }

.content-card:hover {
    box-shadow: var(--shadow-md);
  }

/* Content Card Structure */

.content-card-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid rgb(var(--color-neutral-200));
    background-color: rgb(var(--color-neutral-50));
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

.content-card-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    margin: 0;
  }

.content-card-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

.content-card-body {
    padding: 1.5rem;
  }

.content-card-body.no-padding {
    padding: 0;
  }

.content-card-footer {
    padding: 1rem 1.5rem;
    border-top: 1px solid rgb(var(--color-neutral-200));
    background-color: rgb(var(--color-neutral-50));
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

/* ============================================================================
   * DASHBOARD CARDS - For dashboard_shell.html
   * ============================================================================ */

/* Dashboard Metric Card */

.dashboard-metric-card {
    background: linear-gradient(135deg, rgb(255 255 255) 0%, rgb(249 250 251) 100%);
    border: 1px solid rgb(var(--color-neutral-200));
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: 1.5rem;
    transition: all var(--timing-fast);
    cursor: pointer;
  }

.dashboard-metric-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
    border-color: rgb(var(--color-primary-200));
  }

/* Dashboard Widget */

.dashboard-widget {
    background-color: rgb(255 255 255);
    border: 1px solid rgb(var(--color-neutral-200));
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: all var(--timing-fast);
  }

.dashboard-widget:hover {
    box-shadow: var(--shadow-md);
  }

.dashboard-widget-header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid rgb(var(--color-neutral-200));
    background-color: rgb(var(--color-neutral-50));
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

.dashboard-widget-content {
    padding: 1.5rem;
  }

/* ============================================================================
   * MATTER CARDS - For matter_shell.html and matter pages
   * ============================================================================ */

/* Matter Panel - Used in matter shell 3-column layout */

.matter-panel {
    background-color: rgb(255 255 255);
    border: 1px solid rgb(var(--color-neutral-200));
    border-radius: var(--radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%;
  }

.matter-panel-header {
    background-color: rgb(var(--color-neutral-50));
    border-bottom: 1px solid rgb(var(--color-neutral-200));
    padding: 1rem 1.5rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

.matter-panel-content {
    flex: 1;
    overflow-y: auto;
    padding: 1.5rem;
  }

.matter-panel-content.no-padding {
    padding: 0;
  }

/* Matter Info Card */

.matter-info-card {
    background-color: rgb(255 255 255);
    border: 1px solid rgb(var(--color-neutral-200));
    border-radius: var(--radius-lg);
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
  }

.matter-info-list {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

.matter-info-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 0;
    border-bottom: 1px solid rgb(var(--color-neutral-100));
  }

.matter-info-item:last-child {
    border-bottom: none;
  }

.matter-info-label {
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-500));
    font-weight: 500;
  }

.matter-info-value {
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-900));
    font-weight: 500;
    text-align: right;
  }

/* ============================================================================
   * DATA DISPLAY CARDS
   * ============================================================================ */

/* List Item Card */

.list-item-card {
    background-color: rgb(255 255 255);
    border: 1px solid rgb(var(--color-neutral-200));
    border-radius: var(--radius-md);
    padding: 1rem;
    transition: all var(--timing-fast);
    cursor: pointer;
  }

.list-item-card:hover {
    background-color: rgb(var(--color-neutral-25));
    border-color: rgb(var(--color-neutral-300));
    box-shadow: var(--shadow-sm);
  }

/* Activity Item Card */

.recent-activity-item {
    display: flex;
    align-items: center;
    justify-content: between;
    padding: 1rem;
    background-color: rgb(var(--color-neutral-50));
    border-radius: var(--radius-md);
    border: 1px solid rgb(var(--color-neutral-100));
    transition: background-color var(--timing-fast);
  }

.recent-activity-item:hover {
    background-color: rgb(var(--color-neutral-100));
  }

/* Party List Item */

.party-list-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    border: 1px solid rgb(var(--color-neutral-200));
    border-radius: var(--radius-md);
    transition: all var(--timing-fast);
    background-color: rgb(255 255 255);
  }

.party-list-item:hover {
    background-color: rgb(var(--color-neutral-25));
    border-color: rgb(var(--color-neutral-300));
  }

.party-avatar {
    width: 2.5rem;
    height: 2.5rem;
    background-color: rgb(var(--color-primary-100));
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    color: rgb(var(--color-primary-700));
    font-size: 0.875rem;
  }

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

.party-name {
    font-size: 0.875rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    margin: 0 0 0.125rem 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

.party-role {
    font-size: 0.75rem;
    color: rgb(var(--color-neutral-500));
    margin: 0;
  }

/* ============================================================================
   * STATUS AND STATE CARDS
   * ============================================================================ */

/* Status Indicator Cards */

.status-card {
    background-color: rgb(255 255 255);
    border: 1px solid rgb(var(--color-neutral-200));
    border-radius: var(--radius-md);
    padding: 1rem;
    border-left: 4px solid rgb(var(--color-neutral-400));
  }

.status-card-success {
    border-left-color: rgb(var(--color-success-500));
    background-color: rgb(var(--color-success-25));
  }

.status-card-warning {
    border-left-color: rgb(var(--color-warning-500));
    background-color: rgb(var(--color-warning-25));
  }

.status-card-error {
    border-left-color: rgb(var(--color-error-500));
    background-color: rgb(var(--color-error-25));
  }

.status-card-info {
    border-left-color: rgb(var(--color-info-500));
    background-color: rgb(var(--color-info-25));
  }

/* Status Badge */

.matter-status-indicator {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.75rem;
    border-radius: var(--radius-full);
    font-size: 0.875rem;
    font-weight: 500;
  }

/* ============================================================================
   * EMPTY STATES
   * ============================================================================ */

.empty-state {
    text-align: center;
    padding: 3rem 1.5rem;
    background-color: rgb(255 255 255);
    border-radius: var(--radius-lg);
    border: 1px solid rgb(var(--color-neutral-200));
  }

.empty-state-icon {
    margin: 0 auto 1.5rem;
    display: flex;
    justify-content: center;
  }

.empty-state-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    margin: 0 0 0.5rem 0;
  }

.empty-state-description {
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-500));
    margin: 0 0 1.5rem 0;
    line-height: 1.5;
  }

.empty-state-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
  }

@media (min-width: 640px) {
    .empty-state-actions {
      flex-direction: row;
      justify-content: center;
    }
  }

/* ============================================================================
   * CARD GRIDS AND LAYOUTS
   * ============================================================================ */

/* Card Grid Layouts */

.card-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
  }

.card-grid-2 {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
  }

.card-grid-3 {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
  }

.card-grid-4 {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: 1fr;
  }

@media (min-width: 640px) {
    .card-grid-2 {
      grid-template-columns: repeat(2, 1fr);
    }
  }

@media (min-width: 768px) {
    .card-grid-3 {
      grid-template-columns: repeat(2, 1fr);
    }
    .card-grid-4 {
      grid-template-columns: repeat(2, 1fr);
    }
  }

@media (min-width: 1024px) {
    .card-grid-3 {
      grid-template-columns: repeat(3, 1fr);
    }
    .card-grid-4 {
      grid-template-columns: repeat(3, 1fr);
    }
  }

@media (min-width: 1280px) {
    .card-grid-4 {
      grid-template-columns: repeat(4, 1fr);
    }
  }

/* Card List Layout */

.card-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

.card-list-compact {
    gap: 0.5rem;
  }

/* ============================================================================
   * LOADING AND INTERACTION STATES
   * ============================================================================ */

/* Loading States */

.card-loading {
    opacity: 0.6;
    pointer-events: none;
    position: relative;
  }

.card-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 1.5rem;
    height: 1.5rem;
    border: 2px solid rgb(var(--color-neutral-200));
    border-top: 2px solid rgb(var(--color-primary-500));
    border-radius: 50%;
    animation: spin 1s linear infinite;
  }

@keyframes spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
  }

/* Interactive Card States */

.card-interactive {
    cursor: pointer;
    transition: all var(--timing-fast);
  }

.card-interactive:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
  }

.card-interactive:active {
    transform: translateY(0);
  }

.card-interactive:focus-within {
    outline: 2px solid rgb(var(--color-primary-500));
    outline-offset: 2px;
  }

/* ============================================================================
   * RESPONSIVE BEHAVIOR
   * ============================================================================ */

/* Mobile Adjustments */

@media (max-width: 640px) {
    .content-card-header,
    .content-card-body,
    .content-card-footer {
      padding-left: 1rem;
      padding-right: 1rem;
    }
    
    .dashboard-metric-card {
      padding: 1rem;
    }
    
    .matter-panel-header,
    .matter-panel-content {
      padding: 1rem;
    }
    
    .empty-state {
      padding: 2rem 1rem;
    }
  }

/* ============================================================================
   * ACCESSIBILITY ENHANCEMENTS
   * ============================================================================ */

/* Focus Management */

.content-card:focus-within,
  .dashboard-widget:focus-within,
  .matter-panel:focus-within {
    outline: 2px solid rgb(var(--color-primary-500));
    outline-offset: 2px;
  }

/* Reduced Motion */

@media (prefers-reduced-motion: reduce) {
    .content-card,
    .dashboard-metric-card,
    .dashboard-widget,
    .list-item-card,
    .recent-activity-item,
    .party-list-item,
    .card-interactive {
      transition: none;
    }
    
    .dashboard-metric-card:hover,
    .card-interactive:hover {
      transform: none;
    }
  }

/* High Contrast Mode */

@media (prefers-contrast: high) {
    .content-card,
    .dashboard-widget,
    .matter-panel {
      border-width: 2px;
    }
    
    .status-card {
      border-left-width: 6px;
    }
  }

/* ============================================================================
   * LEGAL DOCUMENT TYPOGRAPHY
   * ============================================================================ */

/* Base Legal Document Styles */

.legal-document {
    font-family: 'Times New Roman', Times, serif;
    font-size: 1rem;
    line-height: 1.6;
    color: rgb(var(--color-neutral-900));
    max-width: 8.5in; /* Standard US letter width */
    margin: 0 auto;
    padding: 1in;
    background-color: rgb(255 255 255);
  }

.legal-document-a4 {
    font-family: 'Times New Roman', Times, serif;
    font-size: 1rem;
    line-height: 1.6;
    color: rgb(var(--color-neutral-900));
    max-width: 21cm; /* A4 width */
    margin: 0 auto;
    padding: 2.54cm; /* 1 inch margins */
    background-color: rgb(255 255 255);
  }

/* Court Document Formatting */

.court-document {
    font-family: 'Times New Roman', Times, serif;
    font-size: 0.875rem;
    line-height: 1.5;
    color: rgb(var(--color-neutral-900));
  }

.court-document-header {
    text-align: center;
    font-weight: bold;
    margin-bottom: 2rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

.court-case-caption {
    text-align: center;
    font-weight: bold;
    margin-bottom: 1.5rem;
    border: 2px solid rgb(var(--color-neutral-900));
    padding: 1rem;
  }

.court-filing-info {
    text-align: right;
    font-size: 0.75rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid rgb(var(--color-neutral-300));
    padding-bottom: 0.5rem;
  }

/* Legal Headings Hierarchy */

.legal-h1 {
    font-size: 1.5rem;
    font-weight: bold;
    color: rgb(var(--color-neutral-900));
    margin-top: 2rem;
    margin-bottom: 1rem;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

.legal-h2 {
    font-size: 1.25rem;
    font-weight: bold;
    color: rgb(var(--color-neutral-900));
    margin-top: 1.5rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid rgb(var(--color-neutral-300));
    padding-bottom: 0.25rem;
  }

.legal-h3 {
    font-size: 1.125rem;
    font-weight: bold;
    color: rgb(var(--color-neutral-900));
    margin-top: 1rem;
    margin-bottom: 0.5rem;
  }

.legal-h4 {
    font-size: 1rem;
    font-weight: bold;
    color: rgb(var(--color-neutral-900));
    margin-top: 0.75rem;
    margin-bottom: 0.5rem;
    text-decoration: underline;
  }

.legal-h5 {
    font-size: 0.875rem;
    font-weight: bold;
    color: rgb(var(--color-neutral-700));
    margin-top: 0.75rem;
    margin-bottom: 0.25rem;
    font-style: italic;
  }

/* ============================================================================
   * LEGAL CONTENT FORMATTING
   * ============================================================================ */

/* Paragraphs and Text Blocks */

.legal-paragraph {
    margin-bottom: 1rem;
    text-align: justify;
    text-indent: 0.5in;
  }

.legal-paragraph:first-child,
  .legal-paragraph.no-indent {
    text-indent: 0;
  }

.legal-block-quote {
    margin: 1.5rem 0;
    padding: 1rem 2rem;
    border-left: 4px solid rgb(var(--color-neutral-400));
    background-color: rgb(var(--color-neutral-50));
    font-style: italic;
    position: relative;
  }

.legal-block-quote::before {
    content: '"';
    font-size: 3rem;
    position: absolute;
    top: -0.5rem;
    left: 0.5rem;
    color: rgb(var(--color-neutral-400));
    font-family: Georgia, serif;
  }

/* Legal Citations and References */

.legal-citation {
    font-style: italic;
    color: rgb(var(--color-neutral-700));
    font-size: 0.9em;
  }

.case-citation {
    font-style: italic;
    font-weight: 500;
    color: rgb(var(--color-primary-700));
  }

.statute-citation {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 0.9em;
    background-color: rgb(var(--color-neutral-100));
    padding: 0.125rem 0.25rem;
    border-radius: 0.25rem;
  }

.legal-footnote {
    font-size: 0.75rem;
    color: rgb(var(--color-neutral-600));
    border-top: 1px solid rgb(var(--color-neutral-300));
    padding-top: 0.5rem;
    margin-top: 1rem;
  }

.footnote-marker {
    font-size: 0.75rem;
    vertical-align: super;
    color: rgb(var(--color-primary-600));
    font-weight: bold;
  }

/* Legal Lists and Enumerations */

.legal-list {
    margin: 1rem 0;
    padding-left: 2rem;
  }

.legal-list-item {
    margin-bottom: 0.5rem;
    text-align: justify;
  }

.legal-numbered-list {
    counter-reset: legal-counter;
    list-style: none;
    padding-left: 0;
  }

.legal-numbered-list .legal-list-item {
    counter-increment: legal-counter;
    position: relative;
    padding-left: 2rem;
  }

.legal-numbered-list .legal-list-item::before {
    content: counter(legal-counter) ".";
    position: absolute;
    left: 0;
    font-weight: bold;
    color: rgb(var(--color-neutral-700));
  }

.legal-lettered-list {
    counter-reset: letter-counter;
    list-style: none;
    padding-left: 0;
  }

.legal-lettered-list .legal-list-item {
    counter-increment: letter-counter;
    position: relative;
    padding-left: 2rem;
  }

.legal-lettered-list .legal-list-item::before {
    content: "(" counter(letter-counter, lower-alpha) ")";
    position: absolute;
    left: 0;
    font-weight: bold;
    color: rgb(var(--color-neutral-700));
  }

/* ============================================================================
   * INTERFACE TYPOGRAPHY
   * ============================================================================ */

/* Application Interface Headings */

.interface-h1 {
    font-size: 2rem;
    font-weight: 700;
    color: rgb(var(--color-neutral-900));
    margin-bottom: 1rem;
    letter-spacing: -0.025em;
  }

.interface-h2 {
    font-size: 1.5rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    margin-bottom: 0.75rem;
    letter-spacing: -0.025em;
  }

.interface-h3 {
    font-size: 1.25rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    margin-bottom: 0.5rem;
  }

.interface-h4 {
    font-size: 1.125rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    margin-bottom: 0.5rem;
  }

.interface-h5 {
    font-size: 1rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    margin-bottom: 0.25rem;
  }

.interface-h6 {
    font-size: 0.875rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-700));
    margin-bottom: 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

/* Page Titles and Sections */

.page-title {
    font-size: 2.25rem;
    font-weight: 700;
    color: rgb(var(--color-neutral-900));
    margin-bottom: 0.5rem;
    letter-spacing: -0.025em;
  }

.page-subtitle {
    font-size: 1.125rem;
    color: rgb(var(--color-neutral-600));
    margin-bottom: 2rem;
  }

.section-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    margin-top: 2rem;
    margin-bottom: 1rem;
    border-bottom: 2px solid rgb(var(--color-primary-600));
    padding-bottom: 0.5rem;
  }

.section-subtitle {
    font-size: 1rem;
    color: rgb(var(--color-neutral-600));
    margin-bottom: 1.5rem;
  }

/* ============================================================================
   * SPECIALIZED LEGAL TEXT STYLES
   * ============================================================================ */

/* Contract and Agreement Formatting */

.contract-clause {
    margin: 1.5rem 0;
    padding: 1rem;
    border: 1px solid rgb(var(--color-neutral-300));
    border-radius: 0.375rem;
    background-color: rgb(var(--color-neutral-50));
  }

.contract-clause-number {
    font-weight: bold;
    color: rgb(var(--color-primary-700));
    margin-bottom: 0.5rem;
    font-size: 1.125rem;
  }

.contract-whereas {
    font-style: italic;
    margin: 1rem 0;
    text-indent: 1rem;
  }

.contract-whereas::before {
    content: "WHEREAS, ";
    font-weight: bold;
    font-style: normal;
    text-transform: uppercase;
  }

.contract-signature-block {
    margin-top: 3rem;
    page-break-inside: avoid;
  }

.signature-line {
    border-bottom: 1px solid rgb(var(--color-neutral-900));
    width: 16rem;
    height: 2rem;
    margin: 1rem 0 0.5rem 0;
  }

.signature-label {
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-700));
    margin-bottom: 2rem;
  }

/* Legal Notice and Warning Text */

.legal-notice {
    background-color: rgb(var(--color-warning) / 0.1);
    border: 2px solid rgb(var(--color-warning));
    border-radius: 0.5rem;
    padding: 1rem;
    margin: 1.5rem 0;
    font-weight: 500;
  }

.legal-notice-title {
    font-weight: bold;
    color: rgb(var(--color-warning));
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

.confidential-notice {
    background-color: rgb(var(--color-error) / 0.1);
    border: 2px solid rgb(var(--color-error));
    border-radius: 0.5rem;
    padding: 1rem;
    margin: 1.5rem 0;
    text-align: center;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgb(var(--color-error));
  }

.privileged-notice {
    background-color: rgb(var(--color-primary) / 0.1);
    border: 2px solid rgb(var(--color-primary-600));
    border-radius: 0.5rem;
    padding: 1rem;
    margin: 1.5rem 0;
    font-style: italic;
    text-align: center;
    color: rgb(var(--color-primary-700));
  }

/* ============================================================================
   * FINANCIAL AND BILLING TYPOGRAPHY
   * ============================================================================ */

/* Currency and Financial Amounts */

.financial-amount {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
  }

.financial-amount-large {
    font-size: 1.5rem;
    font-weight: 700;
  }

.financial-amount-positive {
    color: rgb(var(--color-success));
  }

.financial-amount-negative {
    color: rgb(var(--color-error));
  }

.financial-amount-neutral {
    color: rgb(var(--color-neutral-900));
  }

/* Invoice and Billing Formatting */

.invoice-header {
    text-align: right;
    margin-bottom: 2rem;
  }

.invoice-number {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
    font-weight: bold;
    font-size: 1.25rem;
    color: rgb(var(--color-primary-700));
  }

.invoice-date {
    color: rgb(var(--color-neutral-600));
    font-size: 0.875rem;
  }

.invoice-total {
    font-size: 1.5rem;
    font-weight: bold;
    border: 2px solid rgb(var(--color-neutral-900));
    padding: 0.5rem 1rem;
    text-align: center;
    background-color: rgb(var(--color-neutral-100));
  }

/* Time Entry Formatting */

.time-entry {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 0.875rem;
  }

.time-duration {
    font-weight: 600;
    color: rgb(var(--color-primary-700));
  }

.time-rate {
    color: rgb(var(--color-neutral-600));
    font-size: 0.75rem;
  }

.time-description {
    font-family: inherit;
    color: rgb(var(--color-neutral-700));
    font-style: italic;
  }

/* ============================================================================
   * METADATA AND SYSTEM INFORMATION
   * ============================================================================ */

/* Matter and Case Information */

.matter-reference {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
    font-weight: 600;
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-700));
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background-color: rgb(var(--color-neutral-100));
    padding: 0.25rem 0.5rem;
    border-radius: 0.25rem;
    border: 1px solid rgb(var(--color-neutral-300));
  }

.client-name {
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
    font-size: 1.125rem;
  }

.matter-title {
    font-weight: 500;
    color: rgb(var(--color-neutral-800));
    font-style: italic;
  }

.matter-description {
    color: rgb(var(--color-neutral-600));
    line-height: 1.5;
  }

/* Status and Labels */

.status-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.25rem 0.5rem;
    border-radius: 0.375rem;
  }

.status-active {
    background-color: rgb(var(--color-success) / 0.1);
    color: rgb(var(--color-success));
    border: 1px solid rgb(var(--color-success) / 0.3);
  }

.status-pending {
    background-color: rgb(var(--color-warning) / 0.1);
    color: rgb(var(--color-warning));
    border: 1px solid rgb(var(--color-warning) / 0.3);
  }

.status-completed {
    background-color: rgb(var(--color-info) / 0.1);
    color: rgb(var(--color-info));
    border: 1px solid rgb(var(--color-info) / 0.3);
  }

.status-archived {
    background-color: rgb(var(--color-neutral-100));
    color: rgb(var(--color-neutral-600));
    border: 1px solid rgb(var(--color-neutral-300));
  }

/* Date and Time Formatting */

.date-display {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-700));
  }

.date-display-large {
    font-size: 1rem;
    font-weight: 600;
  }

.time-display {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
    font-weight: 600;
    color: rgb(var(--color-primary-700));
  }

.datetime-relative {
    font-size: 0.75rem;
    color: rgb(var(--color-neutral-500));
    font-style: italic;
  }

/* ============================================================================
   * COMMUNICATION AND EMAIL FORMATTING
   * ============================================================================ */

/* Email Display */

.email-header {
    background-color: rgb(var(--color-neutral-50));
    border: 1px solid rgb(var(--color-neutral-200));
    border-radius: 0.5rem 0.5rem 0 0;
    padding: 1rem;
    font-size: 0.875rem;
  }

.email-from {
    font-weight: 600;
    color: rgb(var(--color-neutral-900));
  }

.email-to {
    color: rgb(var(--color-neutral-700));
  }

.email-subject {
    font-weight: 600;
    font-size: 1rem;
    color: rgb(var(--color-neutral-900));
    margin: 0.5rem 0;
  }

.email-date {
    font-size: 0.75rem;
    color: rgb(var(--color-neutral-500));
  }

.email-body {
    background-color: rgb(255 255 255);
    border: 1px solid rgb(var(--color-neutral-200));
    border-top: none;
    border-radius: 0 0 0.5rem 0.5rem;
    padding: 1rem;
    font-family: inherit;
    line-height: 1.6;
    white-space: pre-wrap;
  }

/* Legal Correspondence */

.letterhead {
    text-align: center;
    border-bottom: 2px solid rgb(var(--color-primary-600));
    padding-bottom: 1rem;
    margin-bottom: 2rem;
  }

.letterhead-firm {
    font-size: 1.5rem;
    font-weight: bold;
    color: rgb(var(--color-primary-700));
    margin-bottom: 0.5rem;
  }

.letterhead-address {
    font-size: 0.875rem;
    color: rgb(var(--color-neutral-600));
    line-height: 1.4;
  }

.letter-date {
    text-align: right;
    margin-bottom: 2rem;
    font-weight: 500;
  }

.letter-recipient {
    margin-bottom: 2rem;
    line-height: 1.4;
  }

.letter-salutation {
    margin-bottom: 1rem;
    font-weight: 500;
  }

.letter-closing {
    margin-top: 2rem;
    margin-bottom: 3rem;
  }

.letter-signature {
    margin-top: 3rem;
  }

/* ============================================================================
   * CODE AND TECHNICAL CONTENT
   * ============================================================================ */

/* Code Blocks for Technical Documentation */

.code-block {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
    background-color: rgb(var(--color-neutral-900));
    color: rgb(var(--color-neutral-100));
    padding: 1rem;
    border-radius: 0.5rem;
    overflow-x: auto;
    font-size: 0.875rem;
    line-height: 1.4;
    margin: 1rem 0;
  }

.inline-code {
    font-family: ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;
    background-color: rgb(var(--color-neutral-100));
    color: rgb(var(--color-neutral-900));
    padding: 0.125rem 0.25rem;
    border-radius: 0.25rem;
    font-size: 0.875em;
  }

/* Technical Documentation */

.tech-note {
    background-color: rgb(var(--color-info) / 0.1);
    border-left: 4px solid rgb(var(--color-info));
    padding: 1rem;
    margin: 1rem 0;
    border-radius: 0 0.375rem 0.375rem 0;
  }

.tech-note-title {
    font-weight: 600;
    color: rgb(var(--color-info));
    margin-bottom: 0.5rem;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

/* ============================================================================
   * RESPONSIVE TYPOGRAPHY
   * ============================================================================ */

/* Tablet and Mobile Adjustments */

@media (max-width: 768px) {
    .legal-document,
    .legal-document-a4 {
      padding: 1rem;
      font-size: 0.875rem;
      max-width: none;
    }

    .page-title {
      font-size: 1.75rem;
    }

    .interface-h1 {
      font-size: 1.5rem;
    }

    .interface-h2 {
      font-size: 1.25rem;
    }

    .section-title {
      font-size: 1.25rem;
    }

    .legal-h1 {
      font-size: 1.25rem;
    }

    .legal-h2 {
      font-size: 1.125rem;
    }

    .legal-paragraph {
      text-indent: 0.25in;
    }

    .letterhead-firm {
      font-size: 1.25rem;
    }

    .contract-clause {
      padding: 0.75rem;
      margin: 1rem 0;
    }

    .signature-line {
      width: 12rem;
    }
  }

@media (max-width: 480px) {
    .legal-document,
    .legal-document-a4 {
      padding: 0.75rem;
      font-size: 0.8rem;
    }

    .page-title {
      font-size: 1.5rem;
    }

    .interface-h1 {
      font-size: 1.25rem;
    }

    .legal-paragraph {
      text-indent: 0;
      text-align: left;
    }

    .legal-block-quote {
      padding: 0.75rem 1rem;
      margin: 1rem 0;
    }

    .contract-clause {
      padding: 0.5rem;
    }

    .email-header,
    .email-body {
      padding: 0.75rem;
    }

    .financial-amount-large {
      font-size: 1.25rem;
    }

    .invoice-total {
      font-size: 1.25rem;
      padding: 0.375rem 0.75rem;
    }
  }

/* ============================================================================
   * PRINT STYLES
   * ============================================================================ */

@media print {
    .legal-document,
    .legal-document-a4,
    .court-document {
      background-color: transparent !important;
      color: black !important;
      font-size: 12pt !important;
      line-height: 1.5 !important;
    }

    .page-title,
    .interface-h1,
    .interface-h2,
    .interface-h3,
    .section-title {
      color: black !important;
      page-break-after: avoid;
    }

    .legal-h1,
    .legal-h2,
    .legal-h3,
    .legal-h4 {
      color: black !important;
      page-break-after: avoid;
    }

    .contract-clause,
    .legal-notice,
    .confidential-notice,
    .privileged-notice {
      background-color: transparent !important;
      border: 1px solid black !important;
      page-break-inside: avoid;
    }

    .contract-signature-block {
      page-break-inside: avoid;
      page-break-before: auto;
    }

    .signature-line {
      border-bottom: 1px solid black !important;
    }

    .email-header,
    .email-body {
      background-color: transparent !important;
      border: 1px solid black !important;
    }

    .code-block {
      background-color: transparent !important;
      color: black !important;
      border: 1px solid black !important;
    }

    .status-label {
      background-color: transparent !important;
      border: 1px solid black !important;
      color: black !important;
    }

    /* Remove backgrounds and colors for print */
    .financial-amount-positive,
    .financial-amount-negative,
    .status-active,
    .status-pending,
    .status-completed {
      color: black !important;
    }
  }

/* ============================================================================
   * HIGH CONTRAST AND ACCESSIBILITY
   * ============================================================================ */

@media (prefers-contrast: high) {
    .legal-document,
    .legal-document-a4,
    .court-document {
      color: rgb(0 0 0) !important;
      background-color: rgb(255 255 255) !important;
    }

    .legal-h1,
    .legal-h2,
    .legal-h3,
    .legal-h4,
    .interface-h1,
    .interface-h2,
    .interface-h3,
    .page-title,
    .section-title {
      color: rgb(0 0 0) !important;
    }

    .legal-block-quote,
    .contract-clause,
    .tech-note,
    .email-header {
      background-color: rgb(240 240 240) !important;
      border-color: rgb(0 0 0) !important;
    }

    .legal-notice,
    .confidential-notice,
    .privileged-notice {
      background-color: rgb(255 255 255) !important;
      border: 2px solid rgb(0 0 0) !important;
      color: rgb(0 0 0) !important;
    }

    .status-label {
      background-color: rgb(255 255 255) !important;
      border: 2px solid rgb(0 0 0) !important;
      color: rgb(0 0 0) !important;
    }
  }

/* ============================================================================
   * HTMX TRANSITION VARIABLES (EXTENDS BASE.CSS SYSTEM)
   * ============================================================================ */

:root {
    /* HTMX Animation timing - integrates with layout.css timing system */
    --htmx-transition-fast: 200ms ease;
    --htmx-transition-normal: 300ms cubic-bezier(0.4, 0, 0.2, 1);
    --htmx-transition-slow: 500ms cubic-bezier(0.4, 0, 0.2, 1);
    --htmx-transition-bounce: 400ms cubic-bezier(0.34, 1.56, 0.64, 1);
    
    /* HTMX Loading states */
    --htmx-loading-opacity: 0.6;
    --htmx-loading-blur: 2px;
    --htmx-loading-scale: 0.98;
    
    /* HTMX Status colors - uses existing color system */
    --htmx-success-bg: rgb(var(--color-success-50));
    --htmx-success-border: rgb(var(--color-success-200));
    --htmx-success-text: rgb(var(--color-success-700));
    --htmx-error-bg: rgb(var(--color-error-50));
    --htmx-error-border: rgb(var(--color-error-200));
    --htmx-error-text: rgb(var(--color-error-700));
    --htmx-warning-bg: rgb(var(--color-warning-50));
    --htmx-warning-border: rgb(var(--color-warning-200));
    --htmx-warning-text: rgb(var(--color-warning-700));
    
    /* HTMX Z-index - integrates with layout.css z-index system */
    --htmx-indicator-z: 75;
    --htmx-overlay-z: 65;
  }

/* ============================================================================
   * CORE HTMX REQUEST STATES
   * ============================================================================ */

/* Base HTMX request indicator - Hidden by default */

.htmx-indicator {
    opacity: 0;
    visibility: hidden;
    transition: all var(--htmx-transition-fast);
    position: absolute;
    z-index: var(--htmx-indicator-z);
  }

/* Active request state - Shows indicators */

.htmx-request .htmx-indicator {
    opacity: 1;
    visibility: visible;
  }

/* Global loading state for elements during HTMX requests */

.htmx-request {
    position: relative;
    pointer-events: none;
    opacity: var(--htmx-loading-opacity);
    transition: all var(--htmx-transition-fast);
  }

/* Preserve interactivity for specific elements during requests */

.htmx-request .htmx-preserve-interaction {
    pointer-events: auto;
    opacity: 1;
  }

/* ============================================================================
   * HTMX CONTENT SWAPPING ANIMATIONS
   * ============================================================================ */

/* Fade In/Out Transitions */

.htmx-settling {
    opacity: 0;
    transition: opacity var(--htmx-transition-normal);
  }

.htmx-swapping {
    opacity: 0;
    transition: opacity var(--htmx-transition-normal);
  }

/* Added class for settled content */

.htmx-added {
    opacity: 0;
    animation: htmxFadeIn var(--htmx-transition-normal) ease forwards;
  }

@keyframes htmxFadeIn {
    from {
      opacity: 0;
      transform: translateY(0.5rem);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

/* Slide transitions for dynamic content */

.htmx-slide-in {
    transform: translateX(-100%);
    transition: transform var(--htmx-transition-normal);
  }

.htmx-slide-in.htmx-settling {
    transform: translateX(0);
    opacity: 1;
  }

.htmx-slide-out {
    transform: translateX(0);
    transition: transform var(--htmx-transition-normal);
  }

.htmx-slide-out.htmx-swapping {
    transform: translateX(100%);
  }

/* Scale animations for modals and overlays */

.htmx-scale-in {
    transform: scale(0.95);
    opacity: 0;
    transition: all var(--htmx-transition-normal);
  }

.htmx-scale-in.htmx-settling {
    transform: scale(1);
    opacity: 1;
  }

/* ============================================================================
   * FORM SUBMISSION STATES
   * ============================================================================ */

/* Form during HTMX submission */

.htmx-request form {
    position: relative;
  }

.htmx-request form::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgb(255 255 255 / 0.8);
    backdrop-filter: blur(var(--htmx-loading-blur));
    z-index: var(--htmx-overlay-z);
    border-radius: inherit;
  }

/* Form buttons during submission */

.htmx-request .btn {
    opacity: var(--htmx-loading-opacity);
    transform: scale(var(--htmx-loading-scale));
    transition: all var(--htmx-transition-fast);
  }

.htmx-request .btn-primary {
    background-color: rgb(var(--color-primary-400));
    border-color: rgb(var(--color-primary-400));
  }

/* Form input states during submission */

.htmx-request .form-input,
  .htmx-request .form-textarea,
  .htmx-request .form-select {
    opacity: var(--htmx-loading-opacity);
    transition: opacity var(--htmx-transition-fast);
  }

/* Success state for forms */

.htmx-form-success {
    background-color: var(--htmx-success-bg);
    border: 1px solid var(--htmx-success-border);
    color: var(--htmx-success-text);
    padding: 1rem;
    border-radius: var(--radius-lg);
    margin-bottom: 1rem;
    animation: htmxSuccessSlide var(--htmx-transition-normal) ease;
  }

@keyframes htmxSuccessSlide {
    from {
      opacity: 0;
      transform: translateY(-0.5rem);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

/* Error state for forms */

.htmx-form-error {
    background-color: var(--htmx-error-bg);
    border: 1px solid var(--htmx-error-border);
    color: var(--htmx-error-text);
    padding: 1rem;
    border-radius: var(--radius-lg);
    margin-bottom: 1rem;
    animation: htmxErrorShake var(--htmx-transition-normal) ease;
  }

@keyframes htmxErrorShake {
    0%, 100% {
      transform: translateX(0);
    }
    10%, 30%, 50%, 70%, 90% {
      transform: translateX(-0.25rem);
    }
    20%, 40%, 60%, 80% {
      transform: translateX(0.25rem);
    }
  }

/* ============================================================================
   * LOADING INDICATORS AND SPINNERS
   * ============================================================================ */

/* Spinner animation */

.htmx-spinner {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    border: 2px solid rgb(var(--color-neutral-200));
    border-radius: 50%;
    border-top-color: rgb(var(--color-primary-500));
    animation: htmxSpin 1s linear infinite;
  }

@keyframes htmxSpin {
    to {
      transform: rotate(360deg);
    }
  }

/* Loading dots animation */

.htmx-dots {
    display: inline-flex;
    gap: 0.25rem;
  }

.htmx-dots::before,
  .htmx-dots::after,
  .htmx-dots {
    content: '';
    width: 0.375rem;
    height: 0.375rem;
    background-color: rgb(var(--color-primary-500));
    border-radius: 50%;
    animation: htmxDots 1.4s ease-in-out infinite both;
  }

.htmx-dots::before {
    animation-delay: -0.32s;
  }

.htmx-dots::after {
    animation-delay: -0.16s;
  }

@keyframes htmxDots {
    0%, 80%, 100% {
      transform: scale(0);
    }
    40% {
      transform: scale(1);
    }
  }

/* Pulse loading animation */

.htmx-pulse {
    animation: htmxPulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  }

@keyframes htmxPulse {
    0%, 100% {
      opacity: 1;
    }
    50% {
      opacity: 0.5;
    }
  }

/* ============================================================================
   * LEGAL WORKFLOW SPECIFIC ANIMATIONS
   * ============================================================================ */

/* Matter creation flow animations */

.htmx-matter-step {
    opacity: 0;
    transform: translateX(2rem);
    transition: all var(--htmx-transition-normal);
  }

.htmx-matter-step.htmx-active {
    opacity: 1;
    transform: translateX(0);
  }

/* Document upload progress */

.htmx-document-upload {
    position: relative;
    overflow: hidden;
  }

.htmx-document-upload::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
      90deg,
      transparent,
      rgb(var(--color-primary-500) / 0.2),
      transparent
    );
    animation: htmxDocumentProgress 1.5s ease-in-out infinite;
  }

@keyframes htmxDocumentProgress {
    0% {
      left: -100%;
    }
    100% {
      left: 100%;
    }
  }

/* Time tracking start/stop animations */

.htmx-time-start {
    animation: htmxTimeStart var(--htmx-transition-bounce) ease;
  }

@keyframes htmxTimeStart {
    0% {
      transform: scale(1);
    }
    50% {
      transform: scale(1.1);
    }
    100% {
      transform: scale(1);
    }
  }

.htmx-time-stop {
    animation: htmxTimeStop var(--htmx-transition-normal) ease;
  }

@keyframes htmxTimeStop {
    0% {
      transform: scale(1);
      background-color: rgb(var(--color-error-600));
    }
    50% {
      transform: scale(0.95);
      background-color: rgb(var(--color-error-700));
    }
    100% {
      transform: scale(1);
      background-color: rgb(var(--color-error-600));
    }
  }

/* ============================================================================
   * TABLE AND LIST UPDATES
   * ============================================================================ */

/* Table row updates */

.htmx-table-row-new {
    background-color: var(--htmx-success-bg);
    animation: htmxRowHighlight 3s ease forwards;
  }

.htmx-table-row-updated {
    background-color: var(--htmx-warning-bg);
    animation: htmxRowHighlight 3s ease forwards;
  }

@keyframes htmxRowHighlight {
    0% {
      background-color: inherit;
    }
    10% {
      background-color: inherit;
    }
    90% {
      background-color: inherit;
    }
    100% {
      background-color: transparent;
    }
  }

/* List item additions */

.htmx-list-item-new {
    transform: translateY(-1rem);
    opacity: 0;
    animation: htmxListItemSlide var(--htmx-transition-normal) ease forwards;
  }

@keyframes htmxListItemSlide {
    to {
      transform: translateY(0);
      opacity: 1;
    }
  }

/* List item removals */

.htmx-list-item-remove {
    animation: htmxListItemRemove var(--htmx-transition-normal) ease forwards;
  }

@keyframes htmxListItemRemove {
    to {
      transform: translateX(100%);
      opacity: 0;
      height: 0;
      margin: 0;
      padding: 0;
    }
  }

/* ============================================================================
   * MODAL AND DRAWER HTMX INTEGRATION
   * ============================================================================ */

/* Modal content updates */

.\!modal .htmx-settling {
    opacity: 0 !important;
    transform: translateY(0.5rem) !important;
    transition: all var(--htmx-transition-normal) !important;
  }

.modal .htmx-settling {
    opacity: 0;
    transform: translateY(0.5rem);
    transition: all var(--htmx-transition-normal);
  }

.\!modal .htmx-request .modal-body {
    position: relative !important;
  }

.modal .htmx-request .modal-body {
    position: relative;
  }

.\!modal .htmx-request .modal-body::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background-color: rgb(255 255 255 / 0.8) !important;
    backdrop-filter: blur(var(--htmx-loading-blur)) !important;
    z-index: var(--htmx-overlay-z) !important;
    border-radius: inherit !important;
  }

.modal .htmx-request .modal-body::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgb(255 255 255 / 0.8);
    backdrop-filter: blur(var(--htmx-loading-blur));
    z-index: var(--htmx-overlay-z);
    border-radius: inherit;
  }

/* Drawer content updates */

.drawer .htmx-settling {
    opacity: 0;
    transform: translateX(1rem);
    transition: all var(--htmx-transition-normal);
  }

/* ============================================================================
   * NOTIFICATION AND TOAST ANIMATIONS
   * ============================================================================ */

/* Toast slide-in animations */

.htmx-toast-enter {
    transform: translateX(100%);
    opacity: 0;
    animation: htmxToastSlideIn var(--htmx-transition-normal) ease forwards;
  }

@keyframes htmxToastSlideIn {
    to {
      transform: translateX(0);
      opacity: 1;
    }
  }

.htmx-toast-exit {
    animation: htmxToastSlideOut var(--htmx-transition-normal) ease forwards;
  }

@keyframes htmxToastSlideOut {
    to {
      transform: translateX(100%);
      opacity: 0;
      height: 0;
      margin: 0;
      padding: 0;
    }
  }

/* ============================================================================
   * SEARCH AND FILTER ANIMATIONS
   * ============================================================================ */

/* Search results fade-in */

.htmx-search-results {
    opacity: 0;
    animation: htmxSearchResults var(--htmx-transition-normal) ease forwards;
  }

@keyframes htmxSearchResults {
    to {
      opacity: 1;
    }
  }

/* Filter application animations */

.htmx-filter-applied {
    animation: htmxFilterPulse var(--htmx-transition-fast) ease;
  }

@keyframes htmxFilterPulse {
    0%, 100% {
      transform: scale(1);
    }
    50% {
      transform: scale(1.02);
    }
  }

/* ============================================================================
   * RESPONSIVE HTMX ANIMATIONS
   * ============================================================================ */

/* Reduce animations on mobile for performance */

@media (max-width: 768px) {
    .htmx-added,
    .htmx-settling,
    .htmx-swapping {
      transition-duration: var(--htmx-transition-fast);
    }
    
    .htmx-matter-step,
    .htmx-list-item-new,
    .htmx-toast-enter {
      animation-duration: var(--htmx-transition-fast);
    }
  }

/* Respect reduced motion preferences */

@media (prefers-reduced-motion: reduce) {
    .htmx-indicator,
    .htmx-added,
    .htmx-settling,
    .htmx-swapping,
    .htmx-request {
      transition: none;
      animation: none;
    }
    
    .htmx-spinner,
    .htmx-dots,
    .htmx-pulse {
      animation: none;
    }
  }

/* ============================================================================
   * OFFICE 365 INTEGRATION ANIMATIONS
   * ============================================================================ */

/* Document synchronization status */

.htmx-sync-pending {
    position: relative;
  }

.htmx-sync-pending::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 0.5rem;
    height: 0.5rem;
    background-color: rgb(var(--color-warning-500));
    border-radius: 50%;
    animation: htmxSyncPulse 2s ease-in-out infinite;
  }

@keyframes htmxSyncPulse {
    0%, 100% {
      opacity: 1;
      transform: scale(1);
    }
    50% {
      opacity: 0.5;
      transform: scale(1.2);
    }
  }

.htmx-sync-success {
    position: relative;
  }

.htmx-sync-success::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 0.5rem;
    height: 0.5rem;
    background-color: rgb(var(--color-success-500));
    border-radius: 50%;
    animation: htmxSyncSuccess 1s ease forwards;
  }

@keyframes htmxSyncSuccess {
    0% {
      transform: scale(0);
      opacity: 0;
    }
    50% {
      transform: scale(1.3);
      opacity: 1;
    }
    100% {
      transform: scale(1);
      opacity: 1;
    }
  }

.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;
}

.not-sr-only { position: static; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; clip: auto; white-space: normal;
}

.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-0 { inset: 0px;
}

.inset-auto { inset: auto;
}

.inset-px { inset: 1px;
}

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

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

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

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

.bottom-0 { bottom: 0px;
}

.bottom-4 { bottom: 1rem;
}

.bottom-6 { bottom: 1.5rem;
}

.bottom-auto { bottom: auto;
}

.left-0 { left: 0px;
}

.left-3 { left: 0.75rem;
}

.left-4 { left: 1rem;
}

.left-auto { left: auto;
}

.right-0 { right: 0px;
}

.right-3 { right: 0.75rem;
}

.right-4 { right: 1rem;
}

.right-6 { right: 1.5rem;
}

.right-auto { right: auto;
}

.top-0 { top: 0px;
}

.top-1 { top: 0.25rem;
}

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

.top-10 { top: 2.5rem;
}

.top-2 { top: 0.5rem;
}

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

.top-20 { top: 5rem;
}

.top-3 { top: 0.75rem;
}

.top-4 { top: 1rem;
}

.top-6 { top: 1.5rem;
}

.top-auto { top: auto;
}

.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-auto { z-index: auto;
}

.col-auto { grid-column: auto;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

.row-auto { grid-row: auto;
}

.row-span-1 { grid-row: span 1 / span 1;
}

.row-span-2 { grid-row: span 2 / span 2;
}

.row-span-3 { grid-row: span 3 / span 3;
}

.row-span-4 { grid-row: span 4 / span 4;
}

.row-span-5 { grid-row: span 5 / span 5;
}

.row-span-6 { grid-row: span 6 / span 6;
}

.row-span-full { grid-row: 1 / -1;
}

.m-0 { margin: 0px;
}

.m-1 { margin: 0.25rem;
}

.m-10 { margin: 2.5rem;
}

.m-12 { margin: 3rem;
}

.m-16 { margin: 4rem;
}

.m-2 { margin: 0.5rem;
}

.m-20 { margin: 5rem;
}

.m-24 { margin: 6rem;
}

.m-3 { margin: 0.75rem;
}

.m-32 { margin: 8rem;
}

.m-4 { margin: 1rem;
}

.m-5 { margin: 1.25rem;
}

.m-6 { margin: 1.5rem;
}

.m-8 { margin: 2rem;
}

.m-auto { margin: auto;
}

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

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

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

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

.mx-10 { margin-left: 2.5rem; margin-right: 2.5rem;
}

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

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

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

.mx-20 { margin-left: 5rem; margin-right: 5rem;
}

.mx-24 { margin-left: 6rem; margin-right: 6rem;
}

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

.mx-32 { margin-left: 8rem; margin-right: 8rem;
}

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

.mx-5 { margin-left: 1.25rem; margin-right: 1.25rem;
}

.mx-6 { margin-left: 1.5rem; margin-right: 1.5rem;
}

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

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

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

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

.my-10 { margin-top: 2.5rem; margin-bottom: 2.5rem;
}

.my-12 { margin-top: 3rem; margin-bottom: 3rem;
}

.my-16 { margin-top: 4rem; margin-bottom: 4rem;
}

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

.my-20 { margin-top: 5rem; margin-bottom: 5rem;
}

.my-24 { margin-top: 6rem; margin-bottom: 6rem;
}

.my-3 { margin-top: 0.75rem; margin-bottom: 0.75rem;
}

.my-32 { margin-top: 8rem; margin-bottom: 8rem;
}

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

.my-5 { margin-top: 1.25rem; margin-bottom: 1.25rem;
}

.my-6 { margin-top: 1.5rem; margin-bottom: 1.5rem;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.mb-auto { margin-bottom: auto;
}

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

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

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

.ml-10 { margin-left: 2.5rem;
}

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

.ml-16 { margin-left: 4rem;
}

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

.ml-20 { margin-left: 5rem;
}

.ml-24 { margin-left: 6rem;
}

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

.ml-32 { margin-left: 8rem;
}

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

.ml-5 { margin-left: 1.25rem;
}

.ml-6 { margin-left: 1.5rem;
}

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

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

.mr-0 { margin-right: 0px;
}

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

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

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

.mr-10 { margin-right: 2.5rem;
}

.mr-12 { margin-right: 3rem;
}

.mr-16 { margin-right: 4rem;
}

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

.mr-20 { margin-right: 5rem;
}

.mr-24 { margin-right: 6rem;
}

.mr-3 { margin-right: 0.75rem;
}

.mr-32 { margin-right: 8rem;
}

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

.mr-5 { margin-right: 1.25rem;
}

.mr-6 { margin-right: 1.5rem;
}

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

.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-16 { margin-top: 4rem;
}

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

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

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

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

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

.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;
}

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

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

.block { display: block;
}

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

.inline { display: inline;
}

.flex { display: flex;
}

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

.\!table { display: table !important;
}

.table { display: table;
}

.table-caption { display: table-caption;
}

.table-cell { display: table-cell;
}

.table-row { display: table-row;
}

.grid { display: grid;
}

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

.contents { display: contents;
}

.hidden { display: none;
}

.aspect-\[3\/4\] { aspect-ratio: 3/4;
}

.h-0 { height: 0px;
}

.h-1\.5 { height: 0.375rem;
}

.h-10 { height: 2.5rem;
}

.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-3 { height: 0.75rem;
}

.h-3\.5 { height: 0.875rem;
}

.h-32 { height: 8rem;
}

.h-4 { height: 1rem;
}

.h-40 { height: 10rem;
}

.h-5 { height: 1.25rem;
}

.h-6 { height: 1.5rem;
}

.h-64 { height: 16rem;
}

.h-8 { height: 2rem;
}

.h-9 { height: 2.25rem;
}

.h-96 { height: 24rem;
}

.h-auto { height: auto;
}

.h-fit { height: -moz-fit-content; height: fit-content;
}

.h-full { height: 100%;
}

.h-max { height: -moz-max-content; height: max-content;
}

.h-min { height: -moz-min-content; height: min-content;
}

.h-screen { height: 100vh;
}

.max-h-48 { max-height: 12rem;
}

.max-h-64 { max-height: 16rem;
}

.max-h-96 { max-height: 24rem;
}

.max-h-\[28rem\] { max-height: 28rem;
}

.max-h-\[600px\] { max-height: 600px;
}

.max-h-\[90vh\] { max-height: 90vh;
}

.max-h-fit { max-height: -moz-fit-content; max-height: fit-content;
}

.max-h-full { max-height: 100%;
}

.max-h-none { max-height: none;
}

.max-h-screen { max-height: 100vh;
}

.min-h-0 { min-height: 0px;
}

.min-h-16 { min-height: 4rem;
}

.min-h-24 { min-height: 6rem;
}

.min-h-\[200px\] { min-height: 200px;
}

.min-h-\[300px\] { min-height: 300px;
}

.min-h-fit { min-height: -moz-fit-content; min-height: fit-content;
}

.min-h-full { min-height: 100%;
}

.min-h-screen { min-height: 100vh;
}

.w-0 { width: 0px;
}

.w-1 { width: 0.25rem;
}

.w-1\.5 { width: 0.375rem;
}

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

.w-1\/3 { width: 33.333333%;
}

.w-1\/4 { width: 25%;
}

.w-1\/5 { width: 20%;
}

.w-1\/6 { width: 16.666667%;
}

.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\/3 { width: 66.666667%;
}

.w-2\/5 { width: 40%;
}

.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-4\/6 { width: 66.666667%;
}

.w-40 { width: 10rem;
}

.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-64 { width: 16rem;
}

.w-7 { width: 1.75rem;
}

.w-8 { width: 2rem;
}

.w-80 { width: 20rem;
}

.w-9 { width: 2.25rem;
}

.w-96 { width: 24rem;
}

.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-min { width: -moz-min-content; width: min-content;
}

.w-px { width: 1px;
}

.w-screen { width: 100vw;
}

.min-w-0 { min-width: 0px;
}

.min-w-64 { min-width: 16rem;
}

.min-w-\[10rem\] { min-width: 10rem;
}

.min-w-\[200px\] { min-width: 200px;
}

.min-w-\[220px\] { min-width: 220px;
}

.min-w-\[8rem\] { min-width: 8rem;
}

.min-w-fit { min-width: -moz-fit-content; min-width: fit-content;
}

.min-w-full { min-width: 100%;
}

.min-w-max { min-width: -moz-max-content; min-width: max-content;
}

.min-w-min { min-width: -moz-min-content; min-width: min-content;
}

.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-6xl { max-width: 72rem;
}

.max-w-7xl { max-width: 80rem;
}

.max-w-\[70\%\] { max-width: 70%;
}

.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-screen-xl { max-width: 1280px;
}

.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-auto { flex: 1 1 auto;
}

.flex-initial { flex: 0 1 auto;
}

.flex-none { flex: none;
}

.flex-shrink { flex-shrink: 1;
}

.flex-shrink-0 { flex-shrink: 0;
}

.shrink { flex-shrink: 1;
}

.flex-grow { flex-grow: 1;
}

.flex-grow-0 { flex-grow: 0;
}

.border-collapse { border-collapse: collapse;
}

.origin-top-right { transform-origin: top right;
}

.-translate-x-1 { --tw-translate-x: -0.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));
}

.-translate-x-10 { --tw-translate-x: -2.5rem; 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-12 { --tw-translate-x: -3rem; 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-16 { --tw-translate-x: -4rem; 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-2 { --tw-translate-x: -0.5rem; 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-20 { --tw-translate-x: -5rem; 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-24 { --tw-translate-x: -6rem; 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-3 { --tw-translate-x: -0.75rem; 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-32 { --tw-translate-x: -8rem; 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-4 { --tw-translate-x: -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));
}

.-translate-x-5 { --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));
}

.-translate-x-6 { --tw-translate-x: -1.5rem; 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-8 { --tw-translate-x: -2rem; 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 { --tw-translate-y: -0.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));
}

.-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-y-10 { --tw-translate-y: -2.5rem; 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-12 { --tw-translate-y: -3rem; 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-16 { --tw-translate-y: -4rem; 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-2 { --tw-translate-y: -0.5rem; 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-20 { --tw-translate-y: -5rem; 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-24 { --tw-translate-y: -6rem; 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-3 { --tw-translate-y: -0.75rem; 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-32 { --tw-translate-y: -8rem; 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-4 { --tw-translate-y: -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));
}

.-translate-y-5 { --tw-translate-y: -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));
}

.-translate-y-6 { --tw-translate-y: -1.5rem; 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-8 { --tw-translate-y: -2rem; 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 { --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));
}

.translate-x-1 { --tw-translate-x: 0.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));
}

.translate-x-10 { --tw-translate-x: 2.5rem; 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-12 { --tw-translate-x: 3rem; 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-16 { --tw-translate-x: 4rem; 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-2 { --tw-translate-x: 0.5rem; 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-20 { --tw-translate-x: 5rem; 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-24 { --tw-translate-x: 6rem; 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-3 { --tw-translate-x: 0.75rem; 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-32 { --tw-translate-x: 8rem; 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-4 { --tw-translate-x: 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));
}

.translate-x-5 { --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));
}

.translate-x-6 { --tw-translate-x: 1.5rem; 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-8 { --tw-translate-x: 2rem; 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-full { --tw-translate-x: 100%; 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));
}

.translate-y-1 { --tw-translate-y: 0.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));
}

.translate-y-10 { --tw-translate-y: 2.5rem; 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-12 { --tw-translate-y: 3rem; 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-16 { --tw-translate-y: 4rem; 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-2 { --tw-translate-y: 0.5rem; 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-20 { --tw-translate-y: 5rem; 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-24 { --tw-translate-y: 6rem; 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-3 { --tw-translate-y: 0.75rem; 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-32 { --tw-translate-y: 8rem; 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-4 { --tw-translate-y: 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));
}

.translate-y-5 { --tw-translate-y: 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));
}

.translate-y-6 { --tw-translate-y: 1.5rem; 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-8 { --tw-translate-y: 2rem; 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-1 { --tw-rotate: -1deg; 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-12 { --tw-rotate: -12deg; 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-2 { --tw-rotate: -2deg; 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-3 { --tw-rotate: -3deg; 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-45 { --tw-rotate: -45deg; 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-6 { --tw-rotate: -6deg; 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-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));
}

.rotate-1 { --tw-rotate: 1deg; 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-12 { --tw-rotate: 12deg; 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-2 { --tw-rotate: 2deg; 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-3 { --tw-rotate: 3deg; 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-45 { --tw-rotate: 45deg; 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-6 { --tw-rotate: 6deg; 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));
}

.scale-0 { --tw-scale-x: 0; --tw-scale-y: 0; 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; --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));
}

.scale-105 { --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));
}

.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-125 { --tw-scale-x: 1.25; --tw-scale-y: 1.25; 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-150 { --tw-scale-x: 1.5; --tw-scale-y: 1.5; 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-50 { --tw-scale-x: .5; --tw-scale-y: .5; 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-75 { --tw-scale-x: .75; --tw-scale-y: .75; 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-95 { --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));
}

.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));
}

.transform-none { transform: none;
}

@keyframes bounce {

  0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8,0,1,1);
  }

  50% { transform: none; animation-timing-function: cubic-bezier(0,0,0.2,1);
  }
}

.animate-bounce { animation: bounce 1s infinite;
}

@keyframes fadeIn {

  0% { opacity: 0;
  }

  100% { opacity: 1;
  }
}

.animate-fade-in { animation: fadeIn 0.5s ease-in-out;
}

@keyframes ping {

  75%, 100% { transform: scale(2); opacity: 0;
  }
}

.animate-ping { animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}

@keyframes pulse {

  50% { opacity: .5;
  }
}

.animate-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes slideDown {

  0% { transform: translateY(-10px); opacity: 0;
  }

  100% { transform: translateY(0); opacity: 1;
  }
}

.animate-slide-down { animation: slideDown 0.3s ease-out;
}

@keyframes slideIn {

  0% { transform: translateY(-10px); opacity: 0;
  }

  100% { transform: translateY(0); opacity: 1;
  }
}

.animate-slide-in { animation: slideIn 0.3s ease-out;
}

@keyframes slideLeft {

  0% { transform: translateX(10px); opacity: 0;
  }

  100% { transform: translateX(0); opacity: 1;
  }
}

.animate-slide-left { animation: slideLeft 0.3s ease-out;
}

@keyframes slideRight {

  0% { transform: translateX(-10px); opacity: 0;
  }

  100% { transform: translateX(0); opacity: 1;
  }
}

.animate-slide-right { animation: slideRight 0.3s ease-out;
}

@keyframes slideUp {

  0% { transform: translateY(10px); opacity: 0;
  }

  100% { transform: translateY(0); opacity: 1;
  }
}

.animate-slide-up { animation: slideUp 0.3s ease-out;
}

@keyframes spin {

  to { transform: rotate(360deg);
  }
}

.animate-spin { animation: spin 1s linear infinite;
}

.cursor-alias { cursor: alias;
}

.cursor-auto { cursor: auto;
}

.cursor-cell { cursor: cell;
}

.cursor-context-menu { cursor: context-menu;
}

.cursor-copy { cursor: copy;
}

.cursor-crosshair { cursor: crosshair;
}

.cursor-default { cursor: default;
}

.cursor-grab { cursor: grab;
}

.cursor-grabbing { cursor: grabbing;
}

.cursor-help { cursor: help;
}

.cursor-move { cursor: move;
}

.cursor-no-drop { cursor: no-drop;
}

.cursor-none { cursor: none;
}

.cursor-not-allowed { cursor: not-allowed;
}

.cursor-pointer { cursor: pointer;
}

.cursor-progress { cursor: progress;
}

.cursor-text { cursor: text;
}

.cursor-vertical-text { cursor: vertical-text;
}

.cursor-wait { cursor: wait;
}

.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;
}

.select-auto { -webkit-user-select: auto; -moz-user-select: auto; user-select: auto;
}

.resize { resize: both;
}

.list-inside { list-style-position: inside;
}

.list-decimal { list-style-type: decimal;
}

.list-disc { list-style-type: disc;
}

.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-10 { grid-template-columns: repeat(10, minmax(0, 1fr));
}

.grid-cols-11 { grid-template-columns: repeat(11, minmax(0, 1fr));
}

.grid-cols-12 { grid-template-columns: repeat(12, 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-5 { grid-template-columns: repeat(5, minmax(0, 1fr));
}

.grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr));
}

.grid-cols-7 { grid-template-columns: repeat(7, minmax(0, 1fr));
}

.grid-cols-8 { grid-template-columns: repeat(8, minmax(0, 1fr));
}

.grid-cols-9 { grid-template-columns: repeat(9, minmax(0, 1fr));
}

.grid-cols-\[20rem_1fr_18rem\] { grid-template-columns: 20rem 1fr 18rem;
}

.grid-cols-\[20rem_1fr_4rem\] { grid-template-columns: 20rem 1fr 4rem;
}

.grid-cols-\[4rem_1fr_18rem\] { grid-template-columns: 4rem 1fr 18rem;
}

.grid-cols-\[4rem_1fr_4rem\] { grid-template-columns: 4rem 1fr 4rem;
}

.grid-rows-1 { grid-template-rows: repeat(1, minmax(0, 1fr));
}

.grid-rows-2 { grid-template-rows: repeat(2, minmax(0, 1fr));
}

.grid-rows-3 { grid-template-rows: repeat(3, minmax(0, 1fr));
}

.grid-rows-4 { grid-template-rows: repeat(4, minmax(0, 1fr));
}

.grid-rows-5 { grid-template-rows: repeat(5, minmax(0, 1fr));
}

.grid-rows-6 { grid-template-rows: repeat(6, minmax(0, 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-wrap-reverse { flex-wrap: wrap-reverse;
}

.flex-nowrap { flex-wrap: nowrap;
}

.place-items-center { place-items: center;
}

.content-center { align-content: center;
}

.content-start { align-content: flex-start;
}

.content-end { align-content: flex-end;
}

.content-between { align-content: space-between;
}

.content-around { align-content: space-around;
}

.content-evenly { align-content: space-evenly;
}

.items-start { align-items: flex-start;
}

.items-end { align-items: flex-end;
}

.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;
}

.justify-around { justify-content: space-around;
}

.justify-evenly { justify-content: space-evenly;
}

.gap-0 { gap: 0px;
}

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

.gap-1 { gap: 0.25rem;
}

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

.gap-10 { gap: 2.5rem;
}

.gap-12 { gap: 3rem;
}

.gap-16 { gap: 4rem;
}

.gap-2 { gap: 0.5rem;
}

.gap-20 { gap: 5rem;
}

.gap-24 { gap: 6rem;
}

.gap-3 { gap: 0.75rem;
}

.gap-32 { gap: 8rem;
}

.gap-4 { gap: 1rem;
}

.gap-5 { gap: 1.25rem;
}

.gap-6 { gap: 1.5rem;
}

.gap-8 { gap: 2rem;
}

.-space-x-px > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(-1px * var(--tw-space-x-reverse)); margin-left: calc(-1px * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-1 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.25rem * var(--tw-space-x-reverse)); margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-1\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.375rem * var(--tw-space-x-reverse)); margin-left: calc(0.375rem * calc(1 - var(--tw-space-x-reverse)));
}

.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)));
}

.space-x-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.75rem * var(--tw-space-x-reverse)); margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1rem * var(--tw-space-x-reverse)); margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1.5rem * var(--tw-space-x-reverse)); margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(2rem * var(--tw-space-x-reverse)); margin-left: calc(2rem * calc(1 - var(--tw-space-x-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-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));
}

.space-y-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(2rem * 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-gray-100 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(243 244 246 / var(--tw-divide-opacity, 1));
}

.divide-gray-200 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(229 231 235 / var(--tw-divide-opacity, 1));
}

.divide-neutral-100 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(245 245 244 / var(--tw-divide-opacity, 1));
}

.divide-neutral-200 > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(231 229 228 / var(--tw-divide-opacity, 1));
}

.self-auto { align-self: auto;
}

.self-start { align-self: flex-start;
}

.self-end { align-self: flex-end;
}

.self-center { align-self: center;
}

.self-stretch { align-self: stretch;
}

.self-baseline { align-self: baseline;
}

.overflow-auto { overflow: auto;
}

.overflow-hidden { overflow: hidden;
}

.overflow-clip { overflow: clip;
}

.overflow-visible { overflow: visible;
}

.overflow-scroll { overflow: scroll;
}

.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-x-clip { overflow-x: clip;
}

.overflow-y-clip { overflow-y: clip;
}

.overflow-x-visible { overflow-x: visible;
}

.overflow-y-visible { overflow-y: visible;
}

.overflow-x-scroll { overflow-x: scroll;
}

.overflow-y-scroll { overflow-y: scroll;
}

.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.text-ellipsis { text-overflow: ellipsis;
}

.text-clip { text-overflow: clip;
}

.whitespace-normal { white-space: normal;
}

.whitespace-nowrap { white-space: nowrap;
}

.whitespace-pre { white-space: pre;
}

.whitespace-pre-line { white-space: pre-line;
}

.whitespace-pre-wrap { white-space: pre-wrap;
}

.text-wrap { text-wrap: wrap;
}

.text-nowrap { text-wrap: nowrap;
}

.text-balance { text-wrap: balance;
}

.text-pretty { text-wrap: pretty;
}

.break-normal { overflow-wrap: normal; word-break: normal;
}

.break-words { overflow-wrap: break-word;
}

.break-all { word-break: break-all;
}

.rounded { border-radius: 0.25rem;
}

.rounded-2xl { border-radius: 1rem;
}

.rounded-3xl { border-radius: 1.5rem;
}

.rounded-full { border-radius: 9999px;
}

.rounded-lg { border-radius: 0.5rem;
}

.rounded-md { border-radius: 0.375rem;
}

.rounded-none { border-radius: 0px;
}

.rounded-sm { border-radius: 0.125rem;
}

.rounded-xl { border-radius: 0.75rem;
}

.rounded-b-lg { border-bottom-right-radius: 0.5rem; border-bottom-left-radius: 0.5rem;
}

.rounded-l-md { border-top-left-radius: 0.375rem; border-bottom-left-radius: 0.375rem;
}

.rounded-r-md { border-top-right-radius: 0.375rem; border-bottom-right-radius: 0.375rem;
}

.rounded-t-lg { border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem;
}

.rounded-t-xl { border-top-left-radius: 0.75rem; border-top-right-radius: 0.75rem;
}

.border { border-width: 1px;
}

.border-0 { border-width: 0px;
}

.border-2 { border-width: 2px;
}

.border-4 { border-width: 4px;
}

.border-8 { border-width: 8px;
}

.border-b { border-bottom-width: 1px;
}

.border-b-2 { border-bottom-width: 2px;
}

.border-l { border-left-width: 1px;
}

.border-l-2 { border-left-width: 2px;
}

.border-l-4 { border-left-width: 4px;
}

.border-r { border-right-width: 1px;
}

.border-t { border-top-width: 1px;
}

.border-solid { border-style: solid;
}

.border-dashed { border-style: dashed;
}

.border-dotted { border-style: dotted;
}

.border-double { border-style: double;
}

.border-none { border-style: none;
}

.border-amber-200 { --tw-border-opacity: 1; border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}

.border-amber-500 { --tw-border-opacity: 1; border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
}

.border-black { --tw-border-opacity: 1; border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));
}

.border-blue-100 { --tw-border-opacity: 1; border-color: rgb(219 234 254 / var(--tw-border-opacity, 1));
}

.border-blue-200 { --tw-border-opacity: 1; border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}

.border-blue-300 { --tw-border-opacity: 1; border-color: rgb(147 197 253 / var(--tw-border-opacity, 1));
}

.border-blue-600 { --tw-border-opacity: 1; border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));
}

.border-current { border-color: currentColor;
}

.border-emerald-200 { --tw-border-opacity: 1; border-color: rgb(167 243 208 / var(--tw-border-opacity, 1));
}

.border-error-200 { --tw-border-opacity: 1; border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}

.border-error-500 { --tw-border-opacity: 1; border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}

.border-gray-100 { --tw-border-opacity: 1; border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
}

.border-gray-200 { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}

.border-gray-300 { --tw-border-opacity: 1; border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}

.border-green-100 { --tw-border-opacity: 1; border-color: rgb(220 252 231 / var(--tw-border-opacity, 1));
}

.border-green-200 { --tw-border-opacity: 1; border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));
}

.border-indigo-200 { --tw-border-opacity: 1; border-color: rgb(199 210 254 / var(--tw-border-opacity, 1));
}

.border-info-200 { --tw-border-opacity: 1; border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}

.border-info-500 { --tw-border-opacity: 1; border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}

.border-neutral-100 { --tw-border-opacity: 1; border-color: rgb(245 245 244 / var(--tw-border-opacity, 1));
}

.border-neutral-200 { --tw-border-opacity: 1; border-color: rgb(231 229 228 / var(--tw-border-opacity, 1));
}

.border-neutral-300 { --tw-border-opacity: 1; border-color: rgb(214 211 209 / var(--tw-border-opacity, 1));
}

.border-neutral-400 { --tw-border-opacity: 1; border-color: rgb(168 162 158 / var(--tw-border-opacity, 1));
}

.border-neutral-500 { --tw-border-opacity: 1; border-color: rgb(120 113 108 / var(--tw-border-opacity, 1));
}

.border-neutral-700 { --tw-border-opacity: 1; border-color: rgb(68 64 60 / var(--tw-border-opacity, 1));
}

.border-orange-200 { --tw-border-opacity: 1; border-color: rgb(254 215 170 / var(--tw-border-opacity, 1));
}

.border-primary-100 { --tw-border-opacity: 1; border-color: rgb(219 234 254 / var(--tw-border-opacity, 1));
}

.border-primary-200 { --tw-border-opacity: 1; border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}

.border-primary-300 { --tw-border-opacity: 1; border-color: rgb(147 197 253 / var(--tw-border-opacity, 1));
}

.border-primary-400 { --tw-border-opacity: 1; border-color: rgb(96 165 250 / var(--tw-border-opacity, 1));
}

.border-primary-500 { --tw-border-opacity: 1; border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}

.border-primary-600 { --tw-border-opacity: 1; border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));
}

.border-purple-200 { --tw-border-opacity: 1; border-color: rgb(233 213 255 / var(--tw-border-opacity, 1));
}

.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-300 { --tw-border-opacity: 1; border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));
}

.border-red-400 { --tw-border-opacity: 1; border-color: rgb(248 113 113 / var(--tw-border-opacity, 1));
}

.border-red-500 { --tw-border-opacity: 1; border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}

.border-red-600 { --tw-border-opacity: 1; border-color: rgb(220 38 38 / var(--tw-border-opacity, 1));
}

.border-success-200 { --tw-border-opacity: 1; border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));
}

.border-success-500 { --tw-border-opacity: 1; border-color: rgb(34 197 94 / var(--tw-border-opacity, 1));
}

.border-transparent { border-color: transparent;
}

.border-warning-200 { --tw-border-opacity: 1; border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}

.border-warning-300 { --tw-border-opacity: 1; border-color: rgb(252 211 77 / var(--tw-border-opacity, 1));
}

.border-warning-500 { --tw-border-opacity: 1; border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
}

.border-white { --tw-border-opacity: 1; border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}

.border-yellow-100 { --tw-border-opacity: 1; border-color: rgb(254 249 195 / var(--tw-border-opacity, 1));
}

.border-yellow-200 { --tw-border-opacity: 1; border-color: rgb(254 240 138 / var(--tw-border-opacity, 1));
}

.border-yellow-400 { --tw-border-opacity: 1; border-color: rgb(250 204 21 / var(--tw-border-opacity, 1));
}

.border-t-blue-600 { --tw-border-opacity: 1; border-top-color: rgb(37 99 235 / var(--tw-border-opacity, 1));
}

.border-t-transparent { border-top-color: transparent;
}

.bg-amber-100 { --tw-bg-opacity: 1; background-color: rgb(254 243 199 / 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\/50 { background-color: rgb(255 251 235 / 0.5);
}

.bg-black { --tw-bg-opacity: 1; background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}

.bg-black\/50 { background-color: rgb(0 0 0 / 0.5);
}

.bg-blue-100 { --tw-bg-opacity: 1; background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}

.bg-blue-50 { --tw-bg-opacity: 1; background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}

.bg-blue-50\/50 { background-color: rgb(239 246 255 / 0.5);
}

.bg-blue-500 { --tw-bg-opacity: 1; background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}

.bg-blue-600 { --tw-bg-opacity: 1; background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}

.bg-current { background-color: currentColor;
}

.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-500 { --tw-bg-opacity: 1; background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}

.bg-emerald-600 { --tw-bg-opacity: 1; background-color: rgb(5 150 105 / var(--tw-bg-opacity, 1));
}

.bg-error-100 { --tw-bg-opacity: 1; background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}

.bg-error-50 { --tw-bg-opacity: 1; background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}

.bg-error-500 { --tw-bg-opacity: 1; background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}

.bg-error-600 { --tw-bg-opacity: 1; background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
}

.bg-gray-100 { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}

.bg-gray-200 { --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}

.bg-gray-300 { --tw-bg-opacity: 1; background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
}

.bg-gray-50 { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}

.bg-gray-500 { --tw-bg-opacity: 1; background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));
}

.bg-gray-600 { --tw-bg-opacity: 1; background-color: rgb(75 85 99 / 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-400 { --tw-bg-opacity: 1; background-color: rgb(74 222 128 / var(--tw-bg-opacity, 1));
}

.bg-green-50 { --tw-bg-opacity: 1; background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
}

.bg-green-50\/50 { background-color: rgb(240 253 244 / 0.5);
}

.bg-green-50\/60 { background-color: rgb(240 253 244 / 0.6);
}

.bg-green-500 { --tw-bg-opacity: 1; background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));
}

.bg-green-600 { --tw-bg-opacity: 1; background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
}

.bg-indigo-100 { --tw-bg-opacity: 1; background-color: rgb(224 231 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-info-100 { --tw-bg-opacity: 1; background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}

.bg-info-400 { --tw-bg-opacity: 1; background-color: rgb(96 165 250 / var(--tw-bg-opacity, 1));
}

.bg-info-50 { --tw-bg-opacity: 1; background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}

.bg-info-500 { --tw-bg-opacity: 1; background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}

.bg-info-600 { --tw-bg-opacity: 1; background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}

.bg-neutral-100 { --tw-bg-opacity: 1; background-color: rgb(245 245 244 / var(--tw-bg-opacity, 1));
}

.bg-neutral-200 { --tw-bg-opacity: 1; background-color: rgb(231 229 228 / var(--tw-bg-opacity, 1));
}

.bg-neutral-300 { --tw-bg-opacity: 1; background-color: rgb(214 211 209 / var(--tw-bg-opacity, 1));
}

.bg-neutral-400 { --tw-bg-opacity: 1; background-color: rgb(168 162 158 / var(--tw-bg-opacity, 1));
}

.bg-neutral-50 { --tw-bg-opacity: 1; background-color: rgb(250 250 249 / var(--tw-bg-opacity, 1));
}

.bg-neutral-50\/50 { background-color: rgb(250 250 249 / 0.5);
}

.bg-neutral-50\/70 { background-color: rgb(250 250 249 / 0.7);
}

.bg-neutral-50\/80 { background-color: rgb(250 250 249 / 0.8);
}

.bg-neutral-500 { --tw-bg-opacity: 1; background-color: rgb(120 113 108 / var(--tw-bg-opacity, 1));
}

.bg-neutral-600 { --tw-bg-opacity: 1; background-color: rgb(87 83 78 / var(--tw-bg-opacity, 1));
}

.bg-neutral-700 { --tw-bg-opacity: 1; background-color: rgb(68 64 60 / var(--tw-bg-opacity, 1));
}

.bg-neutral-800 { --tw-bg-opacity: 1; background-color: rgb(41 37 36 / var(--tw-bg-opacity, 1));
}

.bg-neutral-900 { --tw-bg-opacity: 1; background-color: rgb(28 25 23 / var(--tw-bg-opacity, 1));
}

.bg-neutral-900\/40 { background-color: rgb(28 25 23 / 0.4);
}

.bg-orange-100 { --tw-bg-opacity: 1; background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));
}

.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-primary-100 { --tw-bg-opacity: 1; background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}

.bg-primary-200 { --tw-bg-opacity: 1; background-color: rgb(191 219 254 / var(--tw-bg-opacity, 1));
}

.bg-primary-300 { --tw-bg-opacity: 1; background-color: rgb(147 197 253 / var(--tw-bg-opacity, 1));
}

.bg-primary-400 { --tw-bg-opacity: 1; background-color: rgb(96 165 250 / var(--tw-bg-opacity, 1));
}

.bg-primary-50 { --tw-bg-opacity: 1; background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}

.bg-primary-50\/30 { background-color: rgb(239 246 255 / 0.3);
}

.bg-primary-50\/40 { background-color: rgb(239 246 255 / 0.4);
}

.bg-primary-50\/50 { background-color: rgb(239 246 255 / 0.5);
}

.bg-primary-50\/70 { background-color: rgb(239 246 255 / 0.7);
}

.bg-primary-500 { --tw-bg-opacity: 1; background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}

.bg-primary-600 { --tw-bg-opacity: 1; background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}

.bg-primary-700 { --tw-bg-opacity: 1; background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}

.bg-primary-800 { --tw-bg-opacity: 1; background-color: rgb(30 64 175 / var(--tw-bg-opacity, 1));
}

.bg-primary-900 { --tw-bg-opacity: 1; background-color: rgb(30 58 138 / var(--tw-bg-opacity, 1));
}

.bg-purple-100 { --tw-bg-opacity: 1; background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));
}

.bg-purple-50 { --tw-bg-opacity: 1; background-color: rgb(250 245 255 / var(--tw-bg-opacity, 1));
}

.bg-purple-500 { --tw-bg-opacity: 1; background-color: rgb(168 85 247 / 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-400 { --tw-bg-opacity: 1; background-color: rgb(248 113 113 / 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-600 { --tw-bg-opacity: 1; background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
}

.bg-rose-100 { --tw-bg-opacity: 1; background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1));
}

.bg-rose-50 { --tw-bg-opacity: 1; background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
}

.bg-sky-100 { --tw-bg-opacity: 1; background-color: rgb(224 242 254 / var(--tw-bg-opacity, 1));
}

.bg-sky-50 { --tw-bg-opacity: 1; background-color: rgb(240 249 255 / var(--tw-bg-opacity, 1));
}

.bg-success-100 { --tw-bg-opacity: 1; background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}

.bg-success-50 { --tw-bg-opacity: 1; background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
}

.bg-success-500 { --tw-bg-opacity: 1; background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));
}

.bg-success-600 { --tw-bg-opacity: 1; background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
}

.bg-transparent { background-color: transparent;
}

.bg-warning-100 { --tw-bg-opacity: 1; background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}

.bg-warning-50 { --tw-bg-opacity: 1; background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}

.bg-warning-500 { --tw-bg-opacity: 1; background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}

.bg-warning-600 { --tw-bg-opacity: 1; background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1));
}

.bg-white { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.bg-white\/70 { background-color: rgb(255 255 255 / 0.7);
}

.bg-white\/80 { background-color: rgb(255 255 255 / 0.8);
}

.bg-white\/90 { background-color: rgb(255 255 255 / 0.9);
}

.bg-white\/95 { background-color: rgb(255 255 255 / 0.95);
}

.bg-yellow-100 { --tw-bg-opacity: 1; background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));
}

.bg-yellow-400 { --tw-bg-opacity: 1; background-color: rgb(250 204 21 / var(--tw-bg-opacity, 1));
}

.bg-yellow-50 { --tw-bg-opacity: 1; background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));
}

.bg-yellow-500 { --tw-bg-opacity: 1; background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));
}

.bg-yellow-600 { --tw-bg-opacity: 1; background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1));
}

.bg-opacity-25 { --tw-bg-opacity: 0.25;
}

.bg-opacity-50 { --tw-bg-opacity: 0.5;
}

.bg-opacity-75 { --tw-bg-opacity: 0.75;
}

.bg-opacity-90 { --tw-bg-opacity: 0.9;
}

.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));
}

.from-blue-50 { --tw-gradient-from: #eff6ff var(--tw-gradient-from-position); --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-indigo-50 { --tw-gradient-from: #eef2ff var(--tw-gradient-from-position); --tw-gradient-to: rgb(238 242 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-neutral-50 { --tw-gradient-from: #fafaf9 var(--tw-gradient-from-position); --tw-gradient-to: rgb(250 250 249 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-primary-50 { --tw-gradient-from: #eff6ff var(--tw-gradient-from-position); --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-purple-50 { --tw-gradient-from: #faf5ff var(--tw-gradient-from-position); --tw-gradient-to: rgb(250 245 255 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-slate-900 { --tw-gradient-from: #0f172a var(--tw-gradient-from-position); --tw-gradient-to: rgb(15 23 42 / 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);
}

.via-slate-800 { --tw-gradient-to: rgb(30 41 59 / 0)  var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), #1e293b var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-white { --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-white\/30 { --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.3) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.to-blue-50 { --tw-gradient-to: #eff6ff var(--tw-gradient-to-position);
}

.to-blue-800 { --tw-gradient-to: #1e40af var(--tw-gradient-to-position);
}

.to-indigo-50 { --tw-gradient-to: #eef2ff var(--tw-gradient-to-position);
}

.to-neutral-100 { --tw-gradient-to: #f5f5f4 var(--tw-gradient-to-position);
}

.to-primary-100 { --tw-gradient-to: #dbeafe var(--tw-gradient-to-position);
}

.to-purple-50 { --tw-gradient-to: #faf5ff var(--tw-gradient-to-position);
}

.to-transparent { --tw-gradient-to: transparent var(--tw-gradient-to-position);
}

.fill-current { fill: currentColor;
}

.fill-warning-400 { fill: #fbbf24;
}

.object-contain { -o-object-fit: contain; object-fit: contain;
}

.object-cover { -o-object-fit: cover; object-fit: cover;
}

.p-0 { padding: 0px;
}

.p-1 { padding: 0.25rem;
}

.p-1\.5 { padding: 0.375rem;
}

.p-10 { padding: 2.5rem;
}

.p-12 { padding: 3rem;
}

.p-16 { padding: 4rem;
}

.p-2 { padding: 0.5rem;
}

.p-20 { padding: 5rem;
}

.p-24 { padding: 6rem;
}

.p-3 { padding: 0.75rem;
}

.p-32 { padding: 8rem;
}

.p-4 { padding: 1rem;
}

.p-5 { padding: 1.25rem;
}

.p-6 { padding: 1.5rem;
}

.p-8 { padding: 2rem;
}

.px-0 { padding-left: 0px; padding-right: 0px;
}

.px-1 { padding-left: 0.25rem; padding-right: 0.25rem;
}

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

.px-10 { padding-left: 2.5rem; padding-right: 2.5rem;
}

.px-12 { padding-left: 3rem; padding-right: 3rem;
}

.px-16 { padding-left: 4rem; padding-right: 4rem;
}

.px-2 { padding-left: 0.5rem; padding-right: 0.5rem;
}

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

.px-20 { padding-left: 5rem; padding-right: 5rem;
}

.px-24 { padding-left: 6rem; padding-right: 6rem;
}

.px-3 { padding-left: 0.75rem; padding-right: 0.75rem;
}

.px-32 { padding-left: 8rem; padding-right: 8rem;
}

.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;
}

.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-16 { padding-top: 4rem; padding-bottom: 4rem;
}

.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem;
}

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

.py-20 { padding-top: 5rem; padding-bottom: 5rem;
}

.py-24 { padding-top: 6rem; padding-bottom: 6rem;
}

.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem;
}

.py-32 { padding-top: 8rem; padding-bottom: 8rem;
}

.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;
}

.pb-0 { padding-bottom: 0px;
}

.pb-1 { padding-bottom: 0.25rem;
}

.pb-10 { padding-bottom: 2.5rem;
}

.pb-12 { padding-bottom: 3rem;
}

.pb-16 { padding-bottom: 4rem;
}

.pb-2 { padding-bottom: 0.5rem;
}

.pb-20 { padding-bottom: 5rem;
}

.pb-24 { padding-bottom: 6rem;
}

.pb-3 { padding-bottom: 0.75rem;
}

.pb-32 { padding-bottom: 8rem;
}

.pb-4 { padding-bottom: 1rem;
}

.pb-5 { padding-bottom: 1.25rem;
}

.pb-6 { padding-bottom: 1.5rem;
}

.pb-8 { padding-bottom: 2rem;
}

.pl-0 { padding-left: 0px;
}

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

.pl-10 { padding-left: 2.5rem;
}

.pl-12 { padding-left: 3rem;
}

.pl-16 { padding-left: 4rem;
}

.pl-2 { padding-left: 0.5rem;
}

.pl-20 { padding-left: 5rem;
}

.pl-24 { padding-left: 6rem;
}

.pl-3 { padding-left: 0.75rem;
}

.pl-32 { padding-left: 8rem;
}

.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;
}

.pr-0 { padding-right: 0px;
}

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

.pr-10 { padding-right: 2.5rem;
}

.pr-12 { padding-right: 3rem;
}

.pr-16 { padding-right: 4rem;
}

.pr-2 { padding-right: 0.5rem;
}

.pr-20 { padding-right: 5rem;
}

.pr-24 { padding-right: 6rem;
}

.pr-3 { padding-right: 0.75rem;
}

.pr-32 { padding-right: 8rem;
}

.pr-4 { padding-right: 1rem;
}

.pr-5 { padding-right: 1.25rem;
}

.pr-6 { padding-right: 1.5rem;
}

.pr-8 { padding-right: 2rem;
}

.pt-0 { padding-top: 0px;
}

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

.pt-10 { padding-top: 2.5rem;
}

.pt-12 { padding-top: 3rem;
}

.pt-16 { padding-top: 4rem;
}

.pt-2 { padding-top: 0.5rem;
}

.pt-20 { padding-top: 5rem;
}

.pt-24 { padding-top: 6rem;
}

.pt-3 { padding-top: 0.75rem;
}

.pt-32 { padding-top: 8rem;
}

.pt-4 { padding-top: 1rem;
}

.pt-5 { padding-top: 1.25rem;
}

.pt-6 { padding-top: 1.5rem;
}

.pt-8 { padding-top: 2rem;
}

.text-left { text-align: left;
}

.text-center { text-align: center;
}

.text-right { text-align: right;
}

.text-justify { text-align: justify;
}

.align-top { vertical-align: top;
}

.font-mono { font-family: SF Mono, Monaco, Cascadia Code, Roboto Mono, Consolas, monospace;
}

.font-sans { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif;
}

.text-2xl { font-size: 1.5rem; line-height: 2rem;
}

.text-3xl { font-size: 1.875rem; line-height: 2.25rem;
}

.text-4xl { font-size: 2.25rem; line-height: 2.5rem;
}

.text-5xl { font-size: 3rem; line-height: 1;
}

.text-6xl { font-size: 3.75rem; line-height: 1;
}

.text-7xl { font-size: 4.5rem; line-height: 1;
}

.text-8xl { font-size: 6rem; line-height: 1;
}

.text-9xl { font-size: 8rem; line-height: 1;
}

.text-\[0\.65rem\] { font-size: 0.65rem;
}

.text-\[10px\] { font-size: 10px;
}

.text-\[11px\] { font-size: 11px;
}

.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-black { font-weight: 900;
}

.font-bold { font-weight: 700;
}

.font-extrabold { font-weight: 800;
}

.font-extralight { font-weight: 200;
}

.font-light { font-weight: 300;
}

.font-medium { font-weight: 500;
}

.font-normal { font-weight: 400;
}

.font-semibold { font-weight: 600;
}

.font-thin { font-weight: 100;
}

.uppercase { text-transform: uppercase;
}

.lowercase { text-transform: lowercase;
}

.capitalize { text-transform: capitalize;
}

.normal-case { text-transform: none;
}

.italic { font-style: italic;
}

.not-italic { font-style: normal;
}

.leading-4 { line-height: 1rem;
}

.leading-6 { line-height: 1.5rem;
}

.leading-relaxed { line-height: 1.625;
}

.leading-tight { line-height: 1.25;
}

.tracking-wide { letter-spacing: 0.025em;
}

.tracking-wider { letter-spacing: 0.05em;
}

.tracking-widest { letter-spacing: 0.1em;
}

.text-amber-400 { --tw-text-opacity: 1; color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}

.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-800 { --tw-text-opacity: 1; color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}

.text-amber-900 { --tw-text-opacity: 1; color: rgb(120 53 15 / 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-blue-800 { --tw-text-opacity: 1; color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}

.text-blue-900 { --tw-text-opacity: 1; color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}

.text-current { color: currentColor;
}

.text-emerald-300 { --tw-text-opacity: 1; color: rgb(110 231 183 / var(--tw-text-opacity, 1));
}

.text-emerald-400 { --tw-text-opacity: 1; color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}

.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-800 { --tw-text-opacity: 1; color: rgb(6 95 70 / var(--tw-text-opacity, 1));
}

.text-error-500 { --tw-text-opacity: 1; color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}

.text-error-600 { --tw-text-opacity: 1; color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}

.text-error-700 { --tw-text-opacity: 1; color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

.text-error-800 { --tw-text-opacity: 1; color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}

.text-gray-300 { --tw-text-opacity: 1; color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}

.text-gray-400 { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.text-gray-500 { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}

.text-gray-600 { --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}

.text-gray-700 { --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}

.text-gray-800 { --tw-text-opacity: 1; color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}

.text-gray-900 { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}

.text-green-400 { --tw-text-opacity: 1; color: rgb(74 222 128 / var(--tw-text-opacity, 1));
}

.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-green-800 { --tw-text-opacity: 1; color: rgb(22 101 52 / var(--tw-text-opacity, 1));
}

.text-green-900 { --tw-text-opacity: 1; color: rgb(20 83 45 / var(--tw-text-opacity, 1));
}

.text-indigo-600 { --tw-text-opacity: 1; color: rgb(79 70 229 / var(--tw-text-opacity, 1));
}

.text-indigo-700 { --tw-text-opacity: 1; color: rgb(67 56 202 / var(--tw-text-opacity, 1));
}

.text-indigo-900 { --tw-text-opacity: 1; color: rgb(49 46 129 / var(--tw-text-opacity, 1));
}

.text-info-400 { --tw-text-opacity: 1; color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}

.text-info-500 { --tw-text-opacity: 1; color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}

.text-info-600 { --tw-text-opacity: 1; color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}

.text-info-700 { --tw-text-opacity: 1; color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}

.text-info-800 { --tw-text-opacity: 1; color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}

.text-info-900 { --tw-text-opacity: 1; color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}

.text-neutral-100 { --tw-text-opacity: 1; color: rgb(245 245 244 / var(--tw-text-opacity, 1));
}

.text-neutral-200 { --tw-text-opacity: 1; color: rgb(231 229 228 / var(--tw-text-opacity, 1));
}

.text-neutral-300 { --tw-text-opacity: 1; color: rgb(214 211 209 / var(--tw-text-opacity, 1));
}

.text-neutral-400 { --tw-text-opacity: 1; color: rgb(168 162 158 / var(--tw-text-opacity, 1));
}

.text-neutral-50 { --tw-text-opacity: 1; color: rgb(250 250 249 / var(--tw-text-opacity, 1));
}

.text-neutral-500 { --tw-text-opacity: 1; color: rgb(120 113 108 / var(--tw-text-opacity, 1));
}

.text-neutral-600 { --tw-text-opacity: 1; color: rgb(87 83 78 / var(--tw-text-opacity, 1));
}

.text-neutral-700 { --tw-text-opacity: 1; color: rgb(68 64 60 / var(--tw-text-opacity, 1));
}

.text-neutral-800 { --tw-text-opacity: 1; color: rgb(41 37 36 / var(--tw-text-opacity, 1));
}

.text-neutral-900 { --tw-text-opacity: 1; color: rgb(28 25 23 / var(--tw-text-opacity, 1));
}

.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-orange-800 { --tw-text-opacity: 1; color: rgb(154 52 18 / var(--tw-text-opacity, 1));
}

.text-primary-100 { --tw-text-opacity: 1; color: rgb(219 234 254 / var(--tw-text-opacity, 1));
}

.text-primary-200 { --tw-text-opacity: 1; color: rgb(191 219 254 / var(--tw-text-opacity, 1));
}

.text-primary-300 { --tw-text-opacity: 1; color: rgb(147 197 253 / var(--tw-text-opacity, 1));
}

.text-primary-400 { --tw-text-opacity: 1; color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}

.text-primary-50 { --tw-text-opacity: 1; color: rgb(239 246 255 / var(--tw-text-opacity, 1));
}

.text-primary-500 { --tw-text-opacity: 1; color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}

.text-primary-600 { --tw-text-opacity: 1; color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}

.text-primary-700 { --tw-text-opacity: 1; color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}

.text-primary-800 { --tw-text-opacity: 1; color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}

.text-primary-900 { --tw-text-opacity: 1; color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}

.text-purple-400 { --tw-text-opacity: 1; color: rgb(192 132 252 / var(--tw-text-opacity, 1));
}

.text-purple-500 { --tw-text-opacity: 1; color: rgb(168 85 247 / var(--tw-text-opacity, 1));
}

.text-purple-600 { --tw-text-opacity: 1; color: rgb(147 51 234 / var(--tw-text-opacity, 1));
}

.text-purple-700 { --tw-text-opacity: 1; color: rgb(126 34 206 / var(--tw-text-opacity, 1));
}

.text-purple-800 { --tw-text-opacity: 1; color: rgb(107 33 168 / var(--tw-text-opacity, 1));
}

.text-purple-900 { --tw-text-opacity: 1; color: rgb(88 28 135 / var(--tw-text-opacity, 1));
}

.text-red-400 { --tw-text-opacity: 1; color: rgb(248 113 113 / 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-700 { --tw-text-opacity: 1; color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}

.text-red-800 { --tw-text-opacity: 1; color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}

.text-red-900 { --tw-text-opacity: 1; color: rgb(127 29 29 / var(--tw-text-opacity, 1));
}

.text-rose-600 { --tw-text-opacity: 1; color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}

.text-rose-700 { --tw-text-opacity: 1; color: rgb(190 18 60 / var(--tw-text-opacity, 1));
}

.text-secondary-500 { --tw-text-opacity: 1; color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}

.text-sky-500 { --tw-text-opacity: 1; color: rgb(14 165 233 / var(--tw-text-opacity, 1));
}

.text-sky-600 { --tw-text-opacity: 1; color: rgb(2 132 199 / var(--tw-text-opacity, 1));
}

.text-slate-100\/80 { color: rgb(241 245 249 / 0.8);
}

.text-slate-200 { --tw-text-opacity: 1; color: rgb(226 232 240 / var(--tw-text-opacity, 1));
}

.text-slate-200\/80 { color: rgb(226 232 240 / 0.8);
}

.text-slate-300 { --tw-text-opacity: 1; color: rgb(203 213 225 / var(--tw-text-opacity, 1));
}

.text-success-500 { --tw-text-opacity: 1; color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}

.text-success-600 { --tw-text-opacity: 1; color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}

.text-success-700 { --tw-text-opacity: 1; color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}

.text-success-800 { --tw-text-opacity: 1; color: rgb(22 101 52 / var(--tw-text-opacity, 1));
}

.text-success-900 { --tw-text-opacity: 1; color: rgb(20 83 45 / var(--tw-text-opacity, 1));
}

.text-transparent { color: transparent;
}

.text-warning-400 { --tw-text-opacity: 1; color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}

.text-warning-500 { --tw-text-opacity: 1; color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}

.text-warning-600 { --tw-text-opacity: 1; color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}

.text-warning-700 { --tw-text-opacity: 1; color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}

.text-warning-800 { --tw-text-opacity: 1; color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}

.text-warning-900 { --tw-text-opacity: 1; color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}

.text-white { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.text-yellow-400 { --tw-text-opacity: 1; color: rgb(250 204 21 / var(--tw-text-opacity, 1));
}

.text-yellow-500 { --tw-text-opacity: 1; color: rgb(234 179 8 / var(--tw-text-opacity, 1));
}

.text-yellow-600 { --tw-text-opacity: 1; color: rgb(202 138 4 / var(--tw-text-opacity, 1));
}

.text-yellow-700 { --tw-text-opacity: 1; color: rgb(161 98 7 / var(--tw-text-opacity, 1));
}

.text-yellow-800 { --tw-text-opacity: 1; color: rgb(133 77 14 / var(--tw-text-opacity, 1));
}

.text-yellow-900 { --tw-text-opacity: 1; color: rgb(113 63 18 / var(--tw-text-opacity, 1));
}

.underline { text-decoration-line: underline;
}

.overline { text-decoration-line: overline;
}

.line-through { text-decoration-line: line-through;
}

.no-underline { text-decoration-line: none;
}

.antialiased { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}

.placeholder-neutral-400::-moz-placeholder { --tw-placeholder-opacity: 1; color: rgb(168 162 158 / var(--tw-placeholder-opacity, 1));
}

.placeholder-neutral-400::placeholder { --tw-placeholder-opacity: 1; color: rgb(168 162 158 / var(--tw-placeholder-opacity, 1));
}

.opacity-0 { opacity: 0;
}

.opacity-100 { opacity: 1;
}

.opacity-25 { opacity: 0.25;
}

.opacity-50 { opacity: 0.5;
}

.opacity-75 { opacity: 0.75;
}

.shadow { --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -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-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-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-soft { --tw-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05); --tw-shadow-colored: 0 2px 8px 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);
}

.outline-none { outline: 2px solid transparent; outline-offset: 2px;
}

.outline { outline-style: solid;
}

.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-black { --tw-ring-opacity: 1; --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1));
}

.ring-primary-200 { --tw-ring-opacity: 1; --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1));
}

.ring-opacity-5 { --tw-ring-opacity: 0.05;
}

.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);
}

.grayscale { --tw-grayscale: grayscale(100%); 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) !important;
}

.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-sm { --tw-backdrop-blur: blur(4px); 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 { 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 { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; 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-shadow { transition-property: box-shadow; 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-1000 { transition-duration: 1000ms;
}

.duration-150 { transition-duration: 150ms;
}

.duration-200 { transition-duration: 200ms;
}

.duration-300 { transition-duration: 300ms;
}

.duration-500 { transition-duration: 500ms;
}

.duration-700 { transition-duration: 700ms;
}

.duration-75 { transition-duration: 75ms;
}

.ease-in { transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}

.ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.ease-linear { transition-timing-function: linear;
}

.ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

/* ============================================================================
   * UTILITY VARIABLES (EXTENDS BASE.CSS SYSTEM)
   * ============================================================================ */

:root {
    /* Utility spacing scale - integrates with base.css spacing */
    --util-space-px: 1px;
    --util-space-0: 0;
    --util-space-0-5: 0.125rem;
    --util-space-1: 0.25rem;
    --util-space-1-5: 0.375rem;
    --util-space-2: 0.5rem;
    --util-space-2-5: 0.625rem;
    --util-space-3: 0.75rem;
    --util-space-3-5: 0.875rem;
    --util-space-4: 1rem;
    --util-space-5: 1.25rem;
    --util-space-6: 1.5rem;
    --util-space-8: 2rem;
    --util-space-10: 2.5rem;
    --util-space-12: 3rem;
    --util-space-16: 4rem;
    --util-space-20: 5rem;
    --util-space-24: 6rem;
    --util-space-32: 8rem;
    
    /* Utility sizing scale */
    --util-size-none: 0;
    --util-size-xs: 20rem;
    --util-size-sm: 24rem;
    --util-size-md: 28rem;
    --util-size-lg: 32rem;
    --util-size-xl: 36rem;
    --util-size-2xl: 42rem;
    --util-size-3xl: 48rem;
    --util-size-4xl: 56rem;
    --util-size-5xl: 64rem;
    --util-size-6xl: 72rem;
    --util-size-7xl: 80rem;
    --util-size-full: 100%;
    --util-size-screen: 100vw;
    --util-size-min: min-content;
    --util-size-max: max-content;
  }

/* ============================================================================
   * ACCESSIBILITY UTILITIES
   * ============================================================================ */

/* Screen Reader Only */

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

.not-sr-only {
    position: static;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
  }

/* Focus Management */

.focus-trap {
    outline: none;
  }

.focus-trap:focus-visible {
    outline: 2px solid rgb(var(--color-primary-500));
    outline-offset: 2px;
  }

.focus-ring {
    outline: 2px solid rgb(var(--color-primary-500));
    outline-offset: 2px;
  }

.focus-ring-error {
    outline: 2px solid rgb(var(--color-error-500));
    outline-offset: 2px;
  }

.focus-ring-warning {
    outline: 2px solid rgb(var(--color-warning-500));
    outline-offset: 2px;
  }

/* Skip Links for Accessibility */

.skip-link {
    position: absolute;
    top: -40px;
    left: 6px;
    background-color: rgb(var(--color-primary-600));
    color: rgb(255 255 255);
    padding: 8px;
    text-decoration: none;
    border-radius: 4px;
    z-index: 1000;
    transition: top 0.2s ease;
  }

.skip-link:focus {
    top: 6px;
  }

/* High Contrast Support */

@media (prefers-contrast: high) {
    .high-contrast-border {
      border: 2px solid;
    }
    
    .high-contrast-text {
      color: rgb(0 0 0) !important;
    }
    
    .high-contrast-bg {
      background-color: rgb(255 255 255) !important;
    }
  }

/* ============================================================================
   * VISIBILITY UTILITIES
   * ============================================================================ */

/* Basic Visibility */

.visible {
    visibility: visible;
  }

.invisible {
    visibility: hidden;
  }

.hidden {
    display: none;
  }

.block {
    display: block;
  }

.inline {
    display: inline;
  }

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

.flex {
    display: flex;
  }

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

.grid {
    display: grid;
  }

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

/* Opacity */

.opacity-0 {
    opacity: 0;
  }

.opacity-25 {
    opacity: 0.25;
  }

.opacity-50 {
    opacity: 0.5;
  }

.opacity-75 {
    opacity: 0.75;
  }

.opacity-100 {
    opacity: 1;
  }

/* ============================================================================
   * RESPONSIVE UTILITIES
   * ============================================================================ */

/* Mobile-first responsive display utilities */

@media (max-width: 767px) {
    .mobile-hidden {
      display: none;
    }
    
    .mobile-visible {
      display: block;
    }
    
    .mobile-flex {
      display: flex;
    }
    
    .mobile-grid {
      display: grid;
    }
  }

@media (min-width: 768px) {
    .tablet-hidden {
      display: none;
    }
    
    .tablet-visible {
      display: block;
    }
    
    .tablet-flex {
      display: flex;
    }
    
    .tablet-grid {
      display: grid;
    }
    
    .mobile-visible {
      display: none;
    }
  }

@media (min-width: 1024px) {
    .desktop-hidden {
      display: none;
    }
    
    .desktop-visible {
      display: block;
    }
    
    .desktop-flex {
      display: flex;
    }
    
    .desktop-grid {
      display: grid;
    }
    
    .tablet-only {
      display: none;
    }
  }

/* ============================================================================
   * SPACING UTILITIES
   * ============================================================================ */

/* Margin utilities */

.m-0 { margin: var(--util-space-0); }

.m-1 { margin: var(--util-space-1); }

.m-2 { margin: var(--util-space-2); }

.m-3 { margin: var(--util-space-3); }

.m-4 { margin: var(--util-space-4); }

.m-5 { margin: var(--util-space-5); }

.m-6 { margin: var(--util-space-6); }

.m-8 { margin: var(--util-space-8); }

.m-10 { margin: var(--util-space-10); }

.m-12 { margin: var(--util-space-12); }

.m-16 { margin: var(--util-space-16); }

.m-20 { margin: var(--util-space-20); }

.m-24 { margin: var(--util-space-24); }

.m-32 { margin: var(--util-space-32); }

.m-auto { margin: auto; }

/* Margin directional */

.mt-0 { margin-top: var(--util-space-0); }

.mt-1 { margin-top: var(--util-space-1); }

.mt-2 { margin-top: var(--util-space-2); }

.mt-3 { margin-top: var(--util-space-3); }

.mt-4 { margin-top: var(--util-space-4); }

.mt-5 { margin-top: var(--util-space-5); }

.mt-6 { margin-top: var(--util-space-6); }

.mt-8 { margin-top: var(--util-space-8); }

.mt-10 { margin-top: var(--util-space-10); }

.mt-12 { margin-top: var(--util-space-12); }

.mt-16 { margin-top: var(--util-space-16); }

.mt-20 { margin-top: var(--util-space-20); }

.mt-24 { margin-top: var(--util-space-24); }

.mt-32 { margin-top: var(--util-space-32); }

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

.mr-0 { margin-right: var(--util-space-0); }

.mr-1 { margin-right: var(--util-space-1); }

.mr-2 { margin-right: var(--util-space-2); }

.mr-3 { margin-right: var(--util-space-3); }

.mr-4 { margin-right: var(--util-space-4); }

.mr-5 { margin-right: var(--util-space-5); }

.mr-6 { margin-right: var(--util-space-6); }

.mr-8 { margin-right: var(--util-space-8); }

.mr-10 { margin-right: var(--util-space-10); }

.mr-12 { margin-right: var(--util-space-12); }

.mr-16 { margin-right: var(--util-space-16); }

.mr-20 { margin-right: var(--util-space-20); }

.mr-24 { margin-right: var(--util-space-24); }

.mr-32 { margin-right: var(--util-space-32); }

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

.mb-0 { margin-bottom: var(--util-space-0); }

.mb-1 { margin-bottom: var(--util-space-1); }

.mb-2 { margin-bottom: var(--util-space-2); }

.mb-3 { margin-bottom: var(--util-space-3); }

.mb-4 { margin-bottom: var(--util-space-4); }

.mb-5 { margin-bottom: var(--util-space-5); }

.mb-6 { margin-bottom: var(--util-space-6); }

.mb-8 { margin-bottom: var(--util-space-8); }

.mb-10 { margin-bottom: var(--util-space-10); }

.mb-12 { margin-bottom: var(--util-space-12); }

.mb-16 { margin-bottom: var(--util-space-16); }

.mb-20 { margin-bottom: var(--util-space-20); }

.mb-24 { margin-bottom: var(--util-space-24); }

.mb-32 { margin-bottom: var(--util-space-32); }

.mb-auto { margin-bottom: auto; }

.ml-0 { margin-left: var(--util-space-0); }

.ml-1 { margin-left: var(--util-space-1); }

.ml-2 { margin-left: var(--util-space-2); }

.ml-3 { margin-left: var(--util-space-3); }

.ml-4 { margin-left: var(--util-space-4); }

.ml-5 { margin-left: var(--util-space-5); }

.ml-6 { margin-left: var(--util-space-6); }

.ml-8 { margin-left: var(--util-space-8); }

.ml-10 { margin-left: var(--util-space-10); }

.ml-12 { margin-left: var(--util-space-12); }

.ml-16 { margin-left: var(--util-space-16); }

.ml-20 { margin-left: var(--util-space-20); }

.ml-24 { margin-left: var(--util-space-24); }

.ml-32 { margin-left: var(--util-space-32); }

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

/* Margin x/y axis */

.mx-0 { margin-left: var(--util-space-0); margin-right: var(--util-space-0); }

.mx-1 { margin-left: var(--util-space-1); margin-right: var(--util-space-1); }

.mx-2 { margin-left: var(--util-space-2); margin-right: var(--util-space-2); }

.mx-3 { margin-left: var(--util-space-3); margin-right: var(--util-space-3); }

.mx-4 { margin-left: var(--util-space-4); margin-right: var(--util-space-4); }

.mx-5 { margin-left: var(--util-space-5); margin-right: var(--util-space-5); }

.mx-6 { margin-left: var(--util-space-6); margin-right: var(--util-space-6); }

.mx-8 { margin-left: var(--util-space-8); margin-right: var(--util-space-8); }

.mx-10 { margin-left: var(--util-space-10); margin-right: var(--util-space-10); }

.mx-12 { margin-left: var(--util-space-12); margin-right: var(--util-space-12); }

.mx-16 { margin-left: var(--util-space-16); margin-right: var(--util-space-16); }

.mx-20 { margin-left: var(--util-space-20); margin-right: var(--util-space-20); }

.mx-24 { margin-left: var(--util-space-24); margin-right: var(--util-space-24); }

.mx-32 { margin-left: var(--util-space-32); margin-right: var(--util-space-32); }

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

.my-0 { margin-top: var(--util-space-0); margin-bottom: var(--util-space-0); }

.my-1 { margin-top: var(--util-space-1); margin-bottom: var(--util-space-1); }

.my-2 { margin-top: var(--util-space-2); margin-bottom: var(--util-space-2); }

.my-3 { margin-top: var(--util-space-3); margin-bottom: var(--util-space-3); }

.my-4 { margin-top: var(--util-space-4); margin-bottom: var(--util-space-4); }

.my-5 { margin-top: var(--util-space-5); margin-bottom: var(--util-space-5); }

.my-6 { margin-top: var(--util-space-6); margin-bottom: var(--util-space-6); }

.my-8 { margin-top: var(--util-space-8); margin-bottom: var(--util-space-8); }

.my-10 { margin-top: var(--util-space-10); margin-bottom: var(--util-space-10); }

.my-12 { margin-top: var(--util-space-12); margin-bottom: var(--util-space-12); }

.my-16 { margin-top: var(--util-space-16); margin-bottom: var(--util-space-16); }

.my-20 { margin-top: var(--util-space-20); margin-bottom: var(--util-space-20); }

.my-24 { margin-top: var(--util-space-24); margin-bottom: var(--util-space-24); }

.my-32 { margin-top: var(--util-space-32); margin-bottom: var(--util-space-32); }

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

/* Padding utilities */

.p-0 { padding: var(--util-space-0); }

.p-1 { padding: var(--util-space-1); }

.p-2 { padding: var(--util-space-2); }

.p-3 { padding: var(--util-space-3); }

.p-4 { padding: var(--util-space-4); }

.p-5 { padding: var(--util-space-5); }

.p-6 { padding: var(--util-space-6); }

.p-8 { padding: var(--util-space-8); }

.p-10 { padding: var(--util-space-10); }

.p-12 { padding: var(--util-space-12); }

.p-16 { padding: var(--util-space-16); }

.p-20 { padding: var(--util-space-20); }

.p-24 { padding: var(--util-space-24); }

.p-32 { padding: var(--util-space-32); }

/* Padding directional */

.pt-0 { padding-top: var(--util-space-0); }

.pt-1 { padding-top: var(--util-space-1); }

.pt-2 { padding-top: var(--util-space-2); }

.pt-3 { padding-top: var(--util-space-3); }

.pt-4 { padding-top: var(--util-space-4); }

.pt-5 { padding-top: var(--util-space-5); }

.pt-6 { padding-top: var(--util-space-6); }

.pt-8 { padding-top: var(--util-space-8); }

.pt-10 { padding-top: var(--util-space-10); }

.pt-12 { padding-top: var(--util-space-12); }

.pt-16 { padding-top: var(--util-space-16); }

.pt-20 { padding-top: var(--util-space-20); }

.pt-24 { padding-top: var(--util-space-24); }

.pt-32 { padding-top: var(--util-space-32); }

.pr-0 { padding-right: var(--util-space-0); }

.pr-1 { padding-right: var(--util-space-1); }

.pr-2 { padding-right: var(--util-space-2); }

.pr-3 { padding-right: var(--util-space-3); }

.pr-4 { padding-right: var(--util-space-4); }

.pr-5 { padding-right: var(--util-space-5); }

.pr-6 { padding-right: var(--util-space-6); }

.pr-8 { padding-right: var(--util-space-8); }

.pr-10 { padding-right: var(--util-space-10); }

.pr-12 { padding-right: var(--util-space-12); }

.pr-16 { padding-right: var(--util-space-16); }

.pr-20 { padding-right: var(--util-space-20); }

.pr-24 { padding-right: var(--util-space-24); }

.pr-32 { padding-right: var(--util-space-32); }

.pb-0 { padding-bottom: var(--util-space-0); }

.pb-1 { padding-bottom: var(--util-space-1); }

.pb-2 { padding-bottom: var(--util-space-2); }

.pb-3 { padding-bottom: var(--util-space-3); }

.pb-4 { padding-bottom: var(--util-space-4); }

.pb-5 { padding-bottom: var(--util-space-5); }

.pb-6 { padding-bottom: var(--util-space-6); }

.pb-8 { padding-bottom: var(--util-space-8); }

.pb-10 { padding-bottom: var(--util-space-10); }

.pb-12 { padding-bottom: var(--util-space-12); }

.pb-16 { padding-bottom: var(--util-space-16); }

.pb-20 { padding-bottom: var(--util-space-20); }

.pb-24 { padding-bottom: var(--util-space-24); }

.pb-32 { padding-bottom: var(--util-space-32); }

.pl-0 { padding-left: var(--util-space-0); }

.pl-1 { padding-left: var(--util-space-1); }

.pl-2 { padding-left: var(--util-space-2); }

.pl-3 { padding-left: var(--util-space-3); }

.pl-4 { padding-left: var(--util-space-4); }

.pl-5 { padding-left: var(--util-space-5); }

.pl-6 { padding-left: var(--util-space-6); }

.pl-8 { padding-left: var(--util-space-8); }

.pl-10 { padding-left: var(--util-space-10); }

.pl-12 { padding-left: var(--util-space-12); }

.pl-16 { padding-left: var(--util-space-16); }

.pl-20 { padding-left: var(--util-space-20); }

.pl-24 { padding-left: var(--util-space-24); }

.pl-32 { padding-left: var(--util-space-32); }

/* Padding x/y axis */

.px-0 { padding-left: var(--util-space-0); padding-right: var(--util-space-0); }

.px-1 { padding-left: var(--util-space-1); padding-right: var(--util-space-1); }

.px-2 { padding-left: var(--util-space-2); padding-right: var(--util-space-2); }

.px-3 { padding-left: var(--util-space-3); padding-right: var(--util-space-3); }

.px-4 { padding-left: var(--util-space-4); padding-right: var(--util-space-4); }

.px-5 { padding-left: var(--util-space-5); padding-right: var(--util-space-5); }

.px-6 { padding-left: var(--util-space-6); padding-right: var(--util-space-6); }

.px-8 { padding-left: var(--util-space-8); padding-right: var(--util-space-8); }

.px-10 { padding-left: var(--util-space-10); padding-right: var(--util-space-10); }

.px-12 { padding-left: var(--util-space-12); padding-right: var(--util-space-12); }

.px-16 { padding-left: var(--util-space-16); padding-right: var(--util-space-16); }

.px-20 { padding-left: var(--util-space-20); padding-right: var(--util-space-20); }

.px-24 { padding-left: var(--util-space-24); padding-right: var(--util-space-24); }

.px-32 { padding-left: var(--util-space-32); padding-right: var(--util-space-32); }

.py-0 { padding-top: var(--util-space-0); padding-bottom: var(--util-space-0); }

.py-1 { padding-top: var(--util-space-1); padding-bottom: var(--util-space-1); }

.py-2 { padding-top: var(--util-space-2); padding-bottom: var(--util-space-2); }

.py-3 { padding-top: var(--util-space-3); padding-bottom: var(--util-space-3); }

.py-4 { padding-top: var(--util-space-4); padding-bottom: var(--util-space-4); }

.py-5 { padding-top: var(--util-space-5); padding-bottom: var(--util-space-5); }

.py-6 { padding-top: var(--util-space-6); padding-bottom: var(--util-space-6); }

.py-8 { padding-top: var(--util-space-8); padding-bottom: var(--util-space-8); }

.py-10 { padding-top: var(--util-space-10); padding-bottom: var(--util-space-10); }

.py-12 { padding-top: var(--util-space-12); padding-bottom: var(--util-space-12); }

.py-16 { padding-top: var(--util-space-16); padding-bottom: var(--util-space-16); }

.py-20 { padding-top: var(--util-space-20); padding-bottom: var(--util-space-20); }

.py-24 { padding-top: var(--util-space-24); padding-bottom: var(--util-space-24); }

.py-32 { padding-top: var(--util-space-32); padding-bottom: var(--util-space-32); }

/* Gap utilities for flexbox/grid */

.gap-0 { gap: var(--util-space-0); }

.gap-1 { gap: var(--util-space-1); }

.gap-2 { gap: var(--util-space-2); }

.gap-3 { gap: var(--util-space-3); }

.gap-4 { gap: var(--util-space-4); }

.gap-5 { gap: var(--util-space-5); }

.gap-6 { gap: var(--util-space-6); }

.gap-8 { gap: var(--util-space-8); }

.gap-10 { gap: var(--util-space-10); }

.gap-12 { gap: var(--util-space-12); }

.gap-16 { gap: var(--util-space-16); }

.gap-20 { gap: var(--util-space-20); }

.gap-24 { gap: var(--util-space-24); }

.gap-32 { gap: var(--util-space-32); }

/* ============================================================================
   * SIZING UTILITIES
   * ============================================================================ */

/* Width utilities */

.w-0 { width: var(--util-size-none); }

.w-auto { width: auto; }

.w-full { width: var(--util-size-full); }

.w-screen { width: var(--util-size-screen); }

.w-min { width: var(--util-size-min); }

.w-max { width: var(--util-size-max); }

.w-fit { width: -moz-fit-content; width: fit-content; }

.w-xs { width: var(--util-size-xs); }

.w-sm { width: var(--util-size-sm); }

.w-md { width: var(--util-size-md); }

.w-lg { width: var(--util-size-lg); }

.w-xl { width: var(--util-size-xl); }

.w-2xl { width: var(--util-size-2xl); }

.w-3xl { width: var(--util-size-3xl); }

.w-4xl { width: var(--util-size-4xl); }

.w-5xl { width: var(--util-size-5xl); }

.w-6xl { width: var(--util-size-6xl); }

.w-7xl { width: var(--util-size-7xl); }

/* Fractional widths */

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

.w-1\/3 { width: 33.333333%; }

.w-2\/3 { width: 66.666667%; }

.w-1\/4 { width: 25%; }

.w-3\/4 { width: 75%; }

.w-1\/5 { width: 20%; }

.w-2\/5 { width: 40%; }

.w-4\/5 { width: 80%; }

.w-1\/6 { width: 16.666667%; }

.w-4\/6 { width: 66.666667%; }

.w-5\/6 { width: 83.333333%; }

/* Height utilities */

.h-0 { height: var(--util-size-none); }

.h-auto { height: auto; }

.h-full { height: var(--util-size-full); }

.h-screen { height: 100vh; }

.h-min { height: var(--util-size-min); }

.h-max { height: var(--util-size-max); }

.h-fit { height: -moz-fit-content; height: fit-content; }

.h-xs { height: var(--util-size-xs); }

.h-sm { height: var(--util-size-sm); }

.h-md { height: var(--util-size-md); }

.h-lg { height: var(--util-size-lg); }

.h-xl { height: var(--util-size-xl); }

.h-2xl { height: var(--util-size-2xl); }

.h-3xl { height: var(--util-size-3xl); }

.h-4xl { height: var(--util-size-4xl); }

.h-5xl { height: var(--util-size-5xl); }

.h-6xl { height: var(--util-size-6xl); }

.h-7xl { height: var(--util-size-7xl); }

/* Specific height values */

.h-4 { height: var(--util-space-4); }

.h-6 { height: var(--util-space-6); }

.h-8 { height: var(--util-space-8); }

.h-10 { height: var(--util-space-10); }

.h-12 { height: var(--util-space-12); }

.h-16 { height: var(--util-space-16); }

.h-20 { height: var(--util-space-20); }

.h-24 { height: var(--util-space-24); }

.h-32 { height: var(--util-space-32); }

/* Max width utilities */

.max-w-none { max-width: none; }

.max-w-xs { max-width: var(--util-size-xs); }

.max-w-sm { max-width: var(--util-size-sm); }

.max-w-md { max-width: var(--util-size-md); }

.max-w-lg { max-width: var(--util-size-lg); }

.max-w-xl { max-width: var(--util-size-xl); }

.max-w-2xl { max-width: var(--util-size-2xl); }

.max-w-3xl { max-width: var(--util-size-3xl); }

.max-w-4xl { max-width: var(--util-size-4xl); }

.max-w-5xl { max-width: var(--util-size-5xl); }

.max-w-6xl { max-width: var(--util-size-6xl); }

.max-w-7xl { max-width: var(--util-size-7xl); }

.max-w-full { max-width: var(--util-size-full); }

.max-w-screen { max-width: var(--util-size-screen); }

/* Min width utilities */

.min-w-0 { min-width: 0; }

.min-w-full { min-width: var(--util-size-full); }

.min-w-min { min-width: var(--util-size-min); }

.min-w-max { min-width: var(--util-size-max); }

.min-w-fit { min-width: -moz-fit-content; min-width: fit-content; }

/* Max height utilities */

.max-h-none { max-height: none; }

.max-h-full { max-height: var(--util-size-full); }

.max-h-screen { max-height: 100vh; }

.max-h-fit { max-height: -moz-fit-content; max-height: fit-content; }

/* Min height utilities */

.min-h-0 { min-height: 0; }

.min-h-full { min-height: var(--util-size-full); }

.min-h-screen { min-height: 100vh; }

.min-h-fit { min-height: -moz-fit-content; min-height: fit-content; }

/* ============================================================================
   * FLEXBOX UTILITIES
   * ============================================================================ */

/* Flex direction */

.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 { flex-wrap: wrap; }

.flex-wrap-reverse { flex-wrap: wrap-reverse; }

.flex-nowrap { flex-wrap: nowrap; }

/* Flex grow/shrink */

.flex-1 { flex: 1 1 0%; }

.flex-auto { flex: 1 1 auto; }

.flex-initial { flex: 0 1 auto; }

.flex-none { flex: none; }

.flex-grow { flex-grow: 1; }

.flex-grow-0 { flex-grow: 0; }

.flex-shrink { flex-shrink: 1; }

.flex-shrink-0 { flex-shrink: 0; }

/* Justify content */

.justify-start { justify-content: flex-start; }

.justify-end { justify-content: flex-end; }

.justify-center { justify-content: center; }

.justify-between { justify-content: space-between; }

.justify-around { justify-content: space-around; }

.justify-evenly { justify-content: space-evenly; }

/* Align items */

.items-start { align-items: flex-start; }

.items-end { align-items: flex-end; }

.items-center { align-items: center; }

.items-baseline { align-items: baseline; }

.items-stretch { align-items: stretch; }

/* Align content */

.content-start { align-content: flex-start; }

.content-end { align-content: flex-end; }

.content-center { align-content: center; }

.content-between { align-content: space-between; }

.content-around { align-content: space-around; }

.content-evenly { align-content: space-evenly; }

/* Align self */

.self-auto { align-self: auto; }

.self-start { align-self: flex-start; }

.self-end { align-self: flex-end; }

.self-center { align-self: center; }

.self-stretch { align-self: stretch; }

.self-baseline { align-self: baseline; }

/* ============================================================================
   * GRID UTILITIES
   * ============================================================================ */

/* Grid template columns */

.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-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.grid-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.grid-cols-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }

.grid-cols-8 { grid-template-columns: repeat(8, minmax(0, 1fr)); }

.grid-cols-9 { grid-template-columns: repeat(9, minmax(0, 1fr)); }

.grid-cols-10 { grid-template-columns: repeat(10, minmax(0, 1fr)); }

.grid-cols-11 { grid-template-columns: repeat(11, minmax(0, 1fr)); }

.grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }

/* Grid template rows */

.grid-rows-1 { grid-template-rows: repeat(1, minmax(0, 1fr)); }

.grid-rows-2 { grid-template-rows: repeat(2, minmax(0, 1fr)); }

.grid-rows-3 { grid-template-rows: repeat(3, minmax(0, 1fr)); }

.grid-rows-4 { grid-template-rows: repeat(4, minmax(0, 1fr)); }

.grid-rows-5 { grid-template-rows: repeat(5, minmax(0, 1fr)); }

.grid-rows-6 { grid-template-rows: repeat(6, minmax(0, 1fr)); }

/* Grid column span */

.col-auto { grid-column: auto; }

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

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

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

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

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

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

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

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

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

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

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

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

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

/* Grid row span */

.row-auto { grid-row: auto; }

.row-span-1 { grid-row: span 1 / span 1; }

.row-span-2 { grid-row: span 2 / span 2; }

.row-span-3 { grid-row: span 3 / span 3; }

.row-span-4 { grid-row: span 4 / span 4; }

.row-span-5 { grid-row: span 5 / span 5; }

.row-span-6 { grid-row: span 6 / span 6; }

.row-span-full { grid-row: 1 / -1; }

/* ============================================================================
   * POSITION UTILITIES
   * ============================================================================ */

.static { position: static; }

.fixed { position: fixed; }

.absolute { position: absolute; }

.relative { position: relative; }

.sticky { position: sticky; }

/* Position values */

.inset-0 { inset: 0; }

.inset-auto { inset: auto; }

.inset-px { inset: 1px; }

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

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

.top-0 { top: 0; }

.right-0 { right: 0; }

.bottom-0 { bottom: 0; }

.left-0 { left: 0; }

.top-auto { top: auto; }

.right-auto { right: auto; }

.bottom-auto { bottom: auto; }

.left-auto { left: auto; }

/* Z-index utilities */

.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-auto { z-index: auto; }

/* ============================================================================
   * TEXT UTILITIES
   * ============================================================================ */

/* Text alignment */

.text-left { text-align: left; }

.text-center { text-align: center; }

.text-right { text-align: right; }

.text-justify { text-align: justify; }

/* Text color */

.text-transparent { color: transparent; }

.text-current { color: currentColor; }

.text-black { color: rgb(0 0 0); }

.text-white { color: rgb(255 255 255); }

/* Primary colors */

.text-primary-50 { color: rgb(var(--color-primary-50)); }

.text-primary-100 { color: rgb(var(--color-primary-100)); }

.text-primary-200 { color: rgb(var(--color-primary-200)); }

.text-primary-300 { color: rgb(var(--color-primary-300)); }

.text-primary-400 { color: rgb(var(--color-primary-400)); }

.text-primary-500 { color: rgb(var(--color-primary-500)); }

.text-primary-600 { color: rgb(var(--color-primary-600)); }

.text-primary-700 { color: rgb(var(--color-primary-700)); }

.text-primary-800 { color: rgb(var(--color-primary-800)); }

.text-primary-900 { color: rgb(var(--color-primary-900)); }

/* Neutral colors */

.text-neutral-50 { color: rgb(var(--color-neutral-50)); }

.text-neutral-100 { color: rgb(var(--color-neutral-100)); }

.text-neutral-200 { color: rgb(var(--color-neutral-200)); }

.text-neutral-300 { color: rgb(var(--color-neutral-300)); }

.text-neutral-400 { color: rgb(var(--color-neutral-400)); }

.text-neutral-500 { color: rgb(var(--color-neutral-500)); }

.text-neutral-600 { color: rgb(var(--color-neutral-600)); }

.text-neutral-700 { color: rgb(var(--color-neutral-700)); }

.text-neutral-800 { color: rgb(var(--color-neutral-800)); }

.text-neutral-900 { color: rgb(var(--color-neutral-900)); }

/* Semantic colors */

.text-success-500 { color: rgb(var(--color-success-500)); }

.text-success-600 { color: rgb(var(--color-success-600)); }

.text-success-700 { color: rgb(var(--color-success-700)); }

.text-warning-500 { color: rgb(var(--color-warning-500)); }

.text-warning-600 { color: rgb(var(--color-warning-600)); }

.text-warning-700 { color: rgb(var(--color-warning-700)); }

.text-error-500 { color: rgb(var(--color-error-500)); }

.text-error-600 { color: rgb(var(--color-error-600)); }

.text-error-700 { color: rgb(var(--color-error-700)); }

.text-info-500 { color: rgb(var(--color-info-500)); }

.text-info-600 { color: rgb(var(--color-info-600)); }

.text-info-700 { color: rgb(var(--color-info-700)); }

/* Font size */

.text-xs { font-size: 0.75rem; line-height: 1rem; }

.text-sm { font-size: 0.875rem; line-height: 1.25rem; }

.text-base { font-size: 1rem; line-height: 1.5rem; }

.text-lg { font-size: 1.125rem; line-height: 1.75rem; }

.text-xl { font-size: 1.25rem; line-height: 1.75rem; }

.text-2xl { font-size: 1.5rem; line-height: 2rem; }

.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }

.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }

.text-5xl { font-size: 3rem; line-height: 1; }

.text-6xl { font-size: 3.75rem; line-height: 1; }

.text-7xl { font-size: 4.5rem; line-height: 1; }

.text-8xl { font-size: 6rem; line-height: 1; }

.text-9xl { font-size: 8rem; line-height: 1; }

/* Font weight */

.font-thin { font-weight: 100; }

.font-extralight { font-weight: 200; }

.font-light { font-weight: 300; }

.font-normal { font-weight: 400; }

.font-medium { font-weight: 500; }

.font-semibold { font-weight: 600; }

.font-bold { font-weight: 700; }

.font-extrabold { font-weight: 800; }

.font-black { font-weight: 900; }

/* Font style */

.italic { font-style: italic; }

.not-italic { font-style: normal; }

/* Text decoration */

.underline { text-decoration-line: underline; }

.overline { text-decoration-line: overline; }

.line-through { text-decoration-line: line-through; }

.no-underline { text-decoration-line: none; }

/* Text transform */

.uppercase { text-transform: uppercase; }

.lowercase { text-transform: lowercase; }

.capitalize { text-transform: capitalize; }

.normal-case { text-transform: none; }

/* Text overflow */

.truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

.text-ellipsis { text-overflow: ellipsis; }

.text-clip { text-overflow: clip; }

/* White space */

.whitespace-normal { white-space: normal; }

.whitespace-nowrap { white-space: nowrap; }

.whitespace-pre { white-space: pre; }

.whitespace-pre-line { white-space: pre-line; }

.whitespace-pre-wrap { white-space: pre-wrap; }

/* Word break */

.break-normal { overflow-wrap: normal; word-break: normal; }

.break-words { overflow-wrap: break-word; }

.break-all { word-break: break-all; }

/* Text wrap utilities (modern CSS) */

.text-wrap { text-wrap: wrap; }

.text-nowrap { text-wrap: nowrap; }

.text-balance { text-wrap: balance; }

.text-pretty { text-wrap: pretty; }

/* ============================================================================
   * BACKGROUND UTILITIES
   * ============================================================================ */

/* Background color */

.bg-transparent { background-color: transparent; }

.bg-current { background-color: currentColor; }

.bg-black { background-color: rgb(0 0 0); }

.bg-white { background-color: rgb(255 255 255); }

/* Primary backgrounds */

.bg-primary-50 { background-color: rgb(var(--color-primary-50)); }

.bg-primary-100 { background-color: rgb(var(--color-primary-100)); }

.bg-primary-200 { background-color: rgb(var(--color-primary-200)); }

.bg-primary-300 { background-color: rgb(var(--color-primary-300)); }

.bg-primary-400 { background-color: rgb(var(--color-primary-400)); }

.bg-primary-500 { background-color: rgb(var(--color-primary-500)); }

.bg-primary-600 { background-color: rgb(var(--color-primary-600)); }

.bg-primary-700 { background-color: rgb(var(--color-primary-700)); }

.bg-primary-800 { background-color: rgb(var(--color-primary-800)); }

.bg-primary-900 { background-color: rgb(var(--color-primary-900)); }

/* Neutral backgrounds */

.bg-neutral-50 { background-color: rgb(var(--color-neutral-50)); }

.bg-neutral-100 { background-color: rgb(var(--color-neutral-100)); }

.bg-neutral-200 { background-color: rgb(var(--color-neutral-200)); }

.bg-neutral-300 { background-color: rgb(var(--color-neutral-300)); }

.bg-neutral-400 { background-color: rgb(var(--color-neutral-400)); }

.bg-neutral-500 { background-color: rgb(var(--color-neutral-500)); }

.bg-neutral-600 { background-color: rgb(var(--color-neutral-600)); }

.bg-neutral-700 { background-color: rgb(var(--color-neutral-700)); }

.bg-neutral-800 { background-color: rgb(var(--color-neutral-800)); }

.bg-neutral-900 { background-color: rgb(var(--color-neutral-900)); }

/* Semantic backgrounds */

.bg-success-50 { background-color: rgb(var(--color-success-50)); }

.bg-success-100 { background-color: rgb(var(--color-success-100)); }

.bg-success-500 { background-color: rgb(var(--color-success-500)); }

.bg-success-600 { background-color: rgb(var(--color-success-600)); }

.bg-warning-50 { background-color: rgb(var(--color-warning-50)); }

.bg-warning-100 { background-color: rgb(var(--color-warning-100)); }

.bg-warning-500 { background-color: rgb(var(--color-warning-500)); }

.bg-warning-600 { background-color: rgb(var(--color-warning-600)); }

.bg-error-50 { background-color: rgb(var(--color-error-50)); }

.bg-error-100 { background-color: rgb(var(--color-error-100)); }

.bg-error-500 { background-color: rgb(var(--color-error-500)); }

.bg-error-600 { background-color: rgb(var(--color-error-600)); }

.bg-info-50 { background-color: rgb(var(--color-info-50)); }

.bg-info-100 { background-color: rgb(var(--color-info-100)); }

.bg-info-500 { background-color: rgb(var(--color-info-500)); }

.bg-info-600 { background-color: rgb(var(--color-info-600)); }

/* ============================================================================
   * BORDER UTILITIES
   * ============================================================================ */

/* Border width */

.border-0 { border-width: 0; }

.border { border-width: 1px; }

.border-2 { border-width: 2px; }

.border-4 { border-width: 4px; }

.border-8 { border-width: 8px; }

/* Border style */

.border-solid { border-style: solid; }

.border-dashed { border-style: dashed; }

.border-dotted { border-style: dotted; }

.border-double { border-style: double; }

.border-none { border-style: none; }

/* Border color */

.border-transparent { border-color: transparent; }

.border-current { border-color: currentColor; }

.border-black { border-color: rgb(0 0 0); }

.border-white { border-color: rgb(255 255 255); }

/* Primary border colors */

.border-primary-200 { border-color: rgb(var(--color-primary-200)); }

.border-primary-300 { border-color: rgb(var(--color-primary-300)); }

.border-primary-500 { border-color: rgb(var(--color-primary-500)); }

/* Neutral border colors */

.border-neutral-200 { border-color: rgb(var(--color-neutral-200)); }

.border-neutral-300 { border-color: rgb(var(--color-neutral-300)); }

.border-neutral-400 { border-color: rgb(var(--color-neutral-400)); }

.border-neutral-500 { border-color: rgb(var(--color-neutral-500)); }

/* Semantic border colors */

.border-success-200 { border-color: rgb(var(--color-success-200)); }

.border-success-500 { border-color: rgb(var(--color-success-500)); }

.border-warning-200 { border-color: rgb(var(--color-warning-200)); }

.border-warning-500 { border-color: rgb(var(--color-warning-500)); }

.border-error-200 { border-color: rgb(var(--color-error-200)); }

.border-error-500 { border-color: rgb(var(--color-error-500)); }

.border-info-200 { border-color: rgb(var(--color-info-200)); }

.border-info-500 { border-color: rgb(var(--color-info-500)); }

/* Border radius */

.rounded-none { border-radius: 0; }

.rounded-sm { border-radius: var(--radius-sm); }

.rounded { border-radius: var(--radius-md); }

.rounded-md { border-radius: var(--radius-md); }

.rounded-lg { border-radius: var(--radius-lg); }

.rounded-xl { border-radius: 0.75rem; }

.rounded-2xl { border-radius: 1rem; }

.rounded-3xl { border-radius: 1.5rem; }

.rounded-full { border-radius: 9999px; }

/* ============================================================================
   * SHADOW UTILITIES
   * ============================================================================ */

.shadow-none { box-shadow: none; }

.shadow-sm { box-shadow: var(--shadow-sm); }

.shadow { box-shadow: var(--shadow-md); }

.shadow-md { box-shadow: var(--shadow-md); }

.shadow-lg { 
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); 
  }

.shadow-xl { 
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); 
  }

.shadow-2xl { 
    box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); 
  }

.shadow-inner { 
    box-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); 
  }

/* ============================================================================
   * OVERFLOW UTILITIES
   * ============================================================================ */

.overflow-auto { overflow: auto; }

.overflow-hidden { overflow: hidden; }

.overflow-clip { overflow: clip; }

.overflow-visible { overflow: visible; }

.overflow-scroll { overflow: scroll; }

.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-x-clip { overflow-x: clip; }

.overflow-y-clip { overflow-y: clip; }

.overflow-x-visible { overflow-x: visible; }

.overflow-y-visible { overflow-y: visible; }

.overflow-x-scroll { overflow-x: scroll; }

.overflow-y-scroll { overflow-y: scroll; }

/* ============================================================================
   * INTERACTION UTILITIES
   * ============================================================================ */

/* Cursor */

.cursor-auto { cursor: auto; }

.cursor-default { cursor: default; }

.cursor-pointer { cursor: pointer; }

.cursor-wait { cursor: wait; }

.cursor-text { cursor: text; }

.cursor-move { cursor: move; }

.cursor-help { cursor: help; }

.cursor-not-allowed { cursor: not-allowed; }

.cursor-none { cursor: none; }

.cursor-context-menu { cursor: context-menu; }

.cursor-progress { cursor: progress; }

.cursor-cell { cursor: cell; }

.cursor-crosshair { cursor: crosshair; }

.cursor-vertical-text { cursor: vertical-text; }

.cursor-alias { cursor: alias; }

.cursor-copy { cursor: copy; }

.cursor-no-drop { cursor: no-drop; }

.cursor-grab { cursor: grab; }

.cursor-grabbing { cursor: grabbing; }

/* User select */

.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; }

.select-auto { -webkit-user-select: auto; -moz-user-select: auto; user-select: auto; }

/* Pointer events */

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

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

/* ============================================================================
   * TRANSITION UTILITIES
   * ============================================================================ */

.transition-none { transition-property: none; }

.transition-all { 
    transition-property: all; 
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 
    transition-duration: 150ms; 
  }

.transition { 
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; 
    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-opacity { 
    transition-property: opacity; 
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 
    transition-duration: 150ms; 
  }

.transition-shadow { 
    transition-property: box-shadow; 
    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; 
  }

/* Transition duration */

.duration-75 { transition-duration: 75ms; }

.duration-100 { transition-duration: 100ms; }

.duration-150 { transition-duration: 150ms; }

.duration-200 { transition-duration: 200ms; }

.duration-300 { transition-duration: 300ms; }

.duration-500 { transition-duration: 500ms; }

.duration-700 { transition-duration: 700ms; }

.duration-1000 { transition-duration: 1000ms; }

/* Transition timing function */

.ease-linear { transition-timing-function: linear; }

.ease-in { transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }

.ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }

.ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

/* ============================================================================
   * TRANSFORM UTILITIES
   * ============================================================================ */

.transform { transform: var(--tw-transform); }

.transform-none { transform: none; }

/* Scale */

.scale-0 { transform: scale(0); }

.scale-50 { transform: scale(0.5); }

.scale-75 { transform: scale(0.75); }

.scale-90 { transform: scale(0.9); }

.scale-95 { transform: scale(0.95); }

.scale-100 { transform: scale(1); }

.scale-105 { transform: scale(1.05); }

.scale-110 { transform: scale(1.1); }

.scale-125 { transform: scale(1.25); }

.scale-150 { transform: scale(1.5); }

/* Rotate */

.rotate-0 { transform: rotate(0deg); }

.rotate-1 { transform: rotate(1deg); }

.rotate-2 { transform: rotate(2deg); }

.rotate-3 { transform: rotate(3deg); }

.rotate-6 { transform: rotate(6deg); }

.rotate-12 { transform: rotate(12deg); }

.rotate-45 { transform: rotate(45deg); }

.rotate-90 { transform: rotate(90deg); }

.rotate-180 { transform: rotate(180deg); }

.-rotate-180 { transform: rotate(-180deg); }

.-rotate-90 { transform: rotate(-90deg); }

.-rotate-45 { transform: rotate(-45deg); }

.-rotate-12 { transform: rotate(-12deg); }

.-rotate-6 { transform: rotate(-6deg); }

.-rotate-3 { transform: rotate(-3deg); }

.-rotate-2 { transform: rotate(-2deg); }

.-rotate-1 { transform: rotate(-1deg); }

/* Translate */

.translate-x-0 { transform: translateX(0); }

.translate-x-1 { transform: translateX(0.25rem); }

.translate-x-2 { transform: translateX(0.5rem); }

.translate-x-3 { transform: translateX(0.75rem); }

.translate-x-4 { transform: translateX(1rem); }

.translate-x-5 { transform: translateX(1.25rem); }

.translate-x-6 { transform: translateX(1.5rem); }

.translate-x-8 { transform: translateX(2rem); }

.translate-x-10 { transform: translateX(2.5rem); }

.translate-x-12 { transform: translateX(3rem); }

.translate-x-16 { transform: translateX(4rem); }

.translate-x-20 { transform: translateX(5rem); }

.translate-x-24 { transform: translateX(6rem); }

.translate-x-32 { transform: translateX(8rem); }

.-translate-x-32 { transform: translateX(-8rem); }

.-translate-x-24 { transform: translateX(-6rem); }

.-translate-x-20 { transform: translateX(-5rem); }

.-translate-x-16 { transform: translateX(-4rem); }

.-translate-x-12 { transform: translateX(-3rem); }

.-translate-x-10 { transform: translateX(-2.5rem); }

.-translate-x-8 { transform: translateX(-2rem); }

.-translate-x-6 { transform: translateX(-1.5rem); }

.-translate-x-5 { transform: translateX(-1.25rem); }

.-translate-x-4 { transform: translateX(-1rem); }

.-translate-x-3 { transform: translateX(-0.75rem); }

.-translate-x-2 { transform: translateX(-0.5rem); }

.-translate-x-1 { transform: translateX(-0.25rem); }

.translate-y-0 { transform: translateY(0); }

.translate-y-1 { transform: translateY(0.25rem); }

.translate-y-2 { transform: translateY(0.5rem); }

.translate-y-3 { transform: translateY(0.75rem); }

.translate-y-4 { transform: translateY(1rem); }

.translate-y-5 { transform: translateY(1.25rem); }

.translate-y-6 { transform: translateY(1.5rem); }

.translate-y-8 { transform: translateY(2rem); }

.translate-y-10 { transform: translateY(2.5rem); }

.translate-y-12 { transform: translateY(3rem); }

.translate-y-16 { transform: translateY(4rem); }

.translate-y-20 { transform: translateY(5rem); }

.translate-y-24 { transform: translateY(6rem); }

.translate-y-32 { transform: translateY(8rem); }

.-translate-y-32 { transform: translateY(-8rem); }

.-translate-y-24 { transform: translateY(-6rem); }

.-translate-y-20 { transform: translateY(-5rem); }

.-translate-y-16 { transform: translateY(-4rem); }

.-translate-y-12 { transform: translateY(-3rem); }

.-translate-y-10 { transform: translateY(-2.5rem); }

.-translate-y-8 { transform: translateY(-2rem); }

.-translate-y-6 { transform: translateY(-1.5rem); }

.-translate-y-5 { transform: translateY(-1.25rem); }

.-translate-y-4 { transform: translateY(-1rem); }

.-translate-y-3 { transform: translateY(-0.75rem); }

.-translate-y-2 { transform: translateY(-0.5rem); }

.-translate-y-1 { transform: translateY(-0.25rem); }

/* ============================================================================
   * CONTAINER UTILITIES
   * ============================================================================ */

/* Container utilities that work with the layout system */

.container-narrow {
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--util-space-4);
    padding-right: var(--util-space-4);
  }

.container-content {
    max-width: var(--content-max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--util-space-6);
    padding-right: var(--util-space-6);
  }

.container-wide {
    max-width: 96rem;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--util-space-8);
    padding-right: var(--util-space-8);
  }

/* ============================================================================
   * LEGAL WORKFLOW SPECIFIC UTILITIES
   * ============================================================================ */

/* Matter status indicators */

.status-active {
    color: rgb(var(--color-success-700));
    background-color: rgb(var(--color-success-100));
    border: 1px solid rgb(var(--color-success-200));
  }

.status-pending {
    color: rgb(var(--color-warning-700));
    background-color: rgb(var(--color-warning-100));
    border: 1px solid rgb(var(--color-warning-200));
  }

.status-completed {
    color: rgb(var(--color-neutral-700));
    background-color: rgb(var(--color-neutral-100));
    border: 1px solid rgb(var(--color-neutral-200));
  }

.status-overdue {
    color: rgb(var(--color-error-700));
    background-color: rgb(var(--color-error-100));
    border: 1px solid rgb(var(--color-error-200));
  }

.status-draft {
    color: rgb(var(--color-info-700));
    background-color: rgb(var(--color-info-100));
    border: 1px solid rgb(var(--color-info-200));
  }

/* Priority indicators */

.priority-high {
    color: rgb(var(--color-error-700));
    background-color: rgb(var(--color-error-50));
  }

.priority-medium {
    color: rgb(var(--color-warning-700));
    background-color: rgb(var(--color-warning-50));
  }

.priority-low {
    color: rgb(var(--color-success-700));
    background-color: rgb(var(--color-success-50));
  }

.priority-urgent {
    color: rgb(255 255 255);
    background-color: rgb(var(--color-error-600));
    animation: priorityUrgentPulse 2s ease-in-out infinite;
  }

@keyframes priorityUrgentPulse {
    0%, 100% {
      opacity: 1;
    }
    50% {
      opacity: 0.8;
    }
  }

/* Document type indicators */

.doc-word {
    color: rgb(37 99 235);
    background-color: rgb(239 246 255);
  }

.doc-pdf {
    color: rgb(220 38 38);
    background-color: rgb(254 242 242);
  }

.doc-excel {
    color: rgb(22 163 74);
    background-color: rgb(240 253 244);
  }

.doc-email {
    color: rgb(147 51 234);
    background-color: rgb(250 245 255);
  }

.doc-generic {
    color: rgb(var(--color-neutral-600));
    background-color: rgb(var(--color-neutral-100));
  }

/* Time tracking utilities */

.time-active {
    position: relative;
  }

.time-active::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0.25rem;
    height: 100%;
    background-color: rgb(var(--color-success-500));
    border-radius: 0 0.125rem 0.125rem 0;
    animation: timeActivePulse 2s ease-in-out infinite;
  }

@keyframes timeActivePulse {
    0%, 100% {
      opacity: 1;
    }
    50% {
      opacity: 0.5;
    }
  }

/* Interactive state utilities */

.interactive-bold {
    transition: all var(--timing-fast);
  }

.interactive-bold:hover {
    background-color: rgb(var(--color-primary-50));
    color: rgb(var(--color-primary-700));
  }

.interactive-bold:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgb(var(--color-primary-500));
  }

/* Loading state utilities */

.loading-overlay {
    position: relative;
    overflow: hidden;
  }

.loading-overlay::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
      90deg,
      transparent,
      rgba(255, 255, 255, 0.6),
      transparent
    );
    animation: loadingShimmer 1.5s infinite;
  }

@keyframes loadingShimmer {
    0% {
      left: -100%;
    }
    100% {
      left: 100%;
    }
  }

/* Notification badges */

.badge-notification {
    position: absolute;
    top: -0.25rem;
    right: -0.25rem;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.375rem;
    background-color: rgb(var(--color-error-500));
    color: rgb(255 255 255);
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 0.625rem;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    border: 2px solid rgb(255 255 255);
  }

.badge-count {
    background-color: rgb(var(--color-neutral-500));
    color: rgb(255 255 255);
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.125rem 0.5rem;
    border-radius: 0.75rem;
    line-height: 1.25;
  }

/* ============================================================================
   * MOBILE OVERLAY UTILITIES
   * ============================================================================ */

.mobile-overlay {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(2px);
    z-index: var(--z-backdrop);
    opacity: 0;
    visibility: hidden;
    transition: all var(--timing-menu);
  }

.mobile-overlay.overlay-active {
    opacity: 1;
    visibility: visible;
  }

/* ============================================================================
   * PRINT UTILITIES
   * ============================================================================ */

@media print {
    .print-hidden {
      display: none !important;
    }
    
    .print-visible {
      display: block !important;
    }
    
    .print-break-before {
      -moz-column-break-before: page;
           break-before: page;
    }
    
    .print-break-after {
      -moz-column-break-after: page;
           break-after: page;
    }
    
    .print-break-inside-avoid {
      -moz-column-break-inside: avoid;
           break-inside: avoid;
    }
  }

/* ============================================================================
   * RESPONSIVE CONTAINER ADJUSTMENTS
   * ============================================================================ */

@media (max-width: 767px) {
    .container-content,
    .container-wide {
      padding-left: var(--util-space-4);
      padding-right: var(--util-space-4);
    }
  }

/* ============================================================================
   * REDUCED MOTION SUPPORT
   * ============================================================================ */

@media (prefers-reduced-motion: reduce) {
    .transition-all,
    .transition,
    .transition-colors,
    .transition-opacity,
    .transition-shadow,
    .transition-transform {
      transition-duration: 0.01ms !important;
    }
    
    .loading-overlay::before,
    .priority-urgent,
    .time-active::before {
      animation: none !important;
    }
  }

/* ============================================================================
   * HIGH CONTRAST MODE ADJUSTMENTS
   * ============================================================================ */

@media (prefers-contrast: high) {
    .status-active,
    .status-pending,
    .status-completed,
    .status-overdue,
    .status-draft {
      border-width: 2px;
      font-weight: 600;
    }
    
    .priority-high,
    .priority-medium,
    .priority-low {
      border: 2px solid currentColor;
      font-weight: 600;
    }
  }

.file\:mr-3::file-selector-button { margin-right: 0.75rem;
}

.file\:rounded-lg::file-selector-button { border-radius: 0.5rem;
}

.file\:border-0::file-selector-button { border-width: 0px;
}

.file\:bg-primary-50::file-selector-button { --tw-bg-opacity: 1; background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}

.file\:px-4::file-selector-button { padding-left: 1rem; padding-right: 1rem;
}

.file\:py-2::file-selector-button { padding-top: 0.5rem; padding-bottom: 0.5rem;
}

.file\:text-xs::file-selector-button { font-size: 0.75rem; line-height: 1rem;
}

.file\:font-semibold::file-selector-button { font-weight: 600;
}

.file\:text-primary-700::file-selector-button { --tw-text-opacity: 1; color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}

.file\:mr-3::file-selector-button { margin-right: var(--util-space-3); }

.file\:px-4::file-selector-button { padding-left: var(--util-space-4); padding-right: var(--util-space-4); }

.file\:py-2::file-selector-button { padding-top: var(--util-space-2); padding-bottom: var(--util-space-2); }

.file\:text-primary-700::file-selector-button { color: rgb(var(--color-primary-700)); }

.file\:text-xs::file-selector-button { font-size: 0.75rem; line-height: 1rem; }

.file\:font-semibold::file-selector-button { font-weight: 600; }

.file\:bg-primary-50::file-selector-button { background-color: rgb(var(--color-primary-50)); }

.file\:border-0::file-selector-button { border-width: 0; }

.file\:rounded-lg::file-selector-button { border-radius: var(--radius-lg); }

.first\:pt-0:first-child { padding-top: 0px; padding-top: var(--util-space-0);
}

.last\:border-0:last-child { border-width: 0px;
}

.last\:pb-0:last-child { padding-bottom: 0px; padding-bottom: var(--util-space-0);
}

.last\:border-0:last-child { border-width: 0; }

.hover\:scale-110:hover { --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));
}

.hover\:border-blue-300:hover { --tw-border-opacity: 1; border-color: rgb(147 197 253 / var(--tw-border-opacity, 1));
}

.hover\:border-blue-400:hover { --tw-border-opacity: 1; border-color: rgb(96 165 250 / 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-neutral-300:hover { --tw-border-opacity: 1; border-color: rgb(214 211 209 / var(--tw-border-opacity, 1));
}

.hover\:border-primary-200:hover { --tw-border-opacity: 1; border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}

.hover\:border-primary-300:hover { --tw-border-opacity: 1; border-color: rgb(147 197 253 / var(--tw-border-opacity, 1));
}

.hover\:border-primary-400:hover { --tw-border-opacity: 1; border-color: rgb(96 165 250 / var(--tw-border-opacity, 1));
}

.hover\:border-primary-500:hover { --tw-border-opacity: 1; border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}

.hover\:border-primary-600:hover { --tw-border-opacity: 1; border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));
}

.hover\:border-red-200:hover { --tw-border-opacity: 1; border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));
}

.hover\:bg-blue-50:hover { --tw-bg-opacity: 1; background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-blue-700:hover { --tw-bg-opacity: 1; background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}

.hover\:bg-gray-100:hover { --tw-bg-opacity: 1; background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}

.hover\:bg-gray-200:hover { --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}

.hover\:bg-gray-50:hover { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}

.hover\:bg-green-100:hover { --tw-bg-opacity: 1; background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}

.hover\:bg-green-50:hover { --tw-bg-opacity: 1; background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1));
}

.hover\:bg-green-700:hover { --tw-bg-opacity: 1; background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1));
}

.hover\:bg-neutral-100:hover { --tw-bg-opacity: 1; background-color: rgb(245 245 244 / var(--tw-bg-opacity, 1));
}

.hover\:bg-neutral-200:hover { --tw-bg-opacity: 1; background-color: rgb(231 229 228 / var(--tw-bg-opacity, 1));
}

.hover\:bg-neutral-50:hover { --tw-bg-opacity: 1; background-color: rgb(250 250 249 / var(--tw-bg-opacity, 1));
}

.hover\:bg-neutral-50\/60:hover { background-color: rgb(250 250 249 / 0.6);
}

.hover\:bg-primary-100:hover { --tw-bg-opacity: 1; background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}

.hover\:bg-primary-50:hover { --tw-bg-opacity: 1; background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-primary-50\/50:hover { background-color: rgb(239 246 255 / 0.5);
}

.hover\:bg-primary-700:hover { --tw-bg-opacity: 1; background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}

.hover\:bg-red-100:hover { --tw-bg-opacity: 1; background-color: rgb(254 226 226 / 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-700:hover { --tw-bg-opacity: 1; background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
}

.hover\:bg-success-100:hover { --tw-bg-opacity: 1; background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}

.hover\:bg-warning-100:hover { --tw-bg-opacity: 1; background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1));
}

.hover\:bg-warning-50:hover { --tw-bg-opacity: 1; background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}

.hover\:bg-white:hover { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.hover\:bg-yellow-50:hover { --tw-bg-opacity: 1; background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1));
}

.hover\:text-blue-500:hover { --tw-text-opacity: 1; color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}

.hover\:text-blue-700:hover { --tw-text-opacity: 1; color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}

.hover\:text-blue-800:hover { --tw-text-opacity: 1; color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}

.hover\:text-blue-900:hover { --tw-text-opacity: 1; color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}

.hover\:text-gray-500:hover { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}

.hover\:text-gray-600:hover { --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}

.hover\:text-gray-700:hover { --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}

.hover\:text-gray-900:hover { --tw-text-opacity: 1; color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}

.hover\:text-green-600:hover { --tw-text-opacity: 1; color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}

.hover\:text-green-700:hover { --tw-text-opacity: 1; color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}

.hover\:text-neutral-500:hover { --tw-text-opacity: 1; color: rgb(120 113 108 / var(--tw-text-opacity, 1));
}

.hover\:text-neutral-600:hover { --tw-text-opacity: 1; color: rgb(87 83 78 / var(--tw-text-opacity, 1));
}

.hover\:text-neutral-700:hover { --tw-text-opacity: 1; color: rgb(68 64 60 / var(--tw-text-opacity, 1));
}

.hover\:text-neutral-800:hover { --tw-text-opacity: 1; color: rgb(41 37 36 / var(--tw-text-opacity, 1));
}

.hover\:text-neutral-900:hover { --tw-text-opacity: 1; color: rgb(28 25 23 / var(--tw-text-opacity, 1));
}

.hover\:text-primary-500:hover { --tw-text-opacity: 1; color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}

.hover\:text-primary-600:hover { --tw-text-opacity: 1; color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}

.hover\:text-primary-700:hover { --tw-text-opacity: 1; color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}

.hover\:text-primary-800:hover { --tw-text-opacity: 1; color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}

.hover\:text-primary-900:hover { --tw-text-opacity: 1; color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}

.hover\:text-red-500:hover { --tw-text-opacity: 1; color: rgb(239 68 68 / 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-red-900:hover { --tw-text-opacity: 1; color: rgb(127 29 29 / var(--tw-text-opacity, 1));
}

.hover\:text-success-600:hover { --tw-text-opacity: 1; color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}

.hover\:text-success-700:hover { --tw-text-opacity: 1; color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}

.hover\:text-warning-400:hover { --tw-text-opacity: 1; color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}

.hover\:text-warning-700:hover { --tw-text-opacity: 1; color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}

.hover\:text-yellow-700:hover { --tw-text-opacity: 1; color: rgb(161 98 7 / var(--tw-text-opacity, 1));
}

.hover\:text-yellow-900:hover { --tw-text-opacity: 1; color: rgb(113 63 18 / var(--tw-text-opacity, 1));
}

.hover\:underline:hover { text-decoration-line: underline;
}

.hover\:shadow-lg:hover { --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);
}

.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\:shadow-medium:hover { --tw-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.08); --tw-shadow-colored: 0 4px 12px 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);
}

.hover\:shadow-sm:hover { --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);
}

.hover\:text-primary-500:hover { color: rgb(var(--color-primary-500)); }

.hover\:text-primary-600:hover { color: rgb(var(--color-primary-600)); }

.hover\:text-primary-700:hover { color: rgb(var(--color-primary-700)); }

.hover\:text-primary-800:hover { color: rgb(var(--color-primary-800)); }

.hover\:text-primary-900:hover { color: rgb(var(--color-primary-900)); }

.hover\:text-neutral-500:hover { color: rgb(var(--color-neutral-500)); }

.hover\:text-neutral-600:hover { color: rgb(var(--color-neutral-600)); }

.hover\:text-neutral-700:hover { color: rgb(var(--color-neutral-700)); }

.hover\:text-neutral-800:hover { color: rgb(var(--color-neutral-800)); }

.hover\:text-neutral-900:hover { color: rgb(var(--color-neutral-900)); }

.hover\:text-success-600:hover { color: rgb(var(--color-success-600)); }

.hover\:text-success-700:hover { color: rgb(var(--color-success-700)); }

.hover\:text-warning-700:hover { color: rgb(var(--color-warning-700)); }

.hover\:underline:hover { text-decoration-line: underline; }

.hover\:bg-white:hover { background-color: rgb(255 255 255); }

.hover\:bg-primary-50:hover { background-color: rgb(var(--color-primary-50)); }

.hover\:bg-primary-100:hover { background-color: rgb(var(--color-primary-100)); }

.hover\:bg-primary-700:hover { background-color: rgb(var(--color-primary-700)); }

.hover\:bg-neutral-50:hover { background-color: rgb(var(--color-neutral-50)); }

.hover\:bg-neutral-100:hover { background-color: rgb(var(--color-neutral-100)); }

.hover\:bg-neutral-200:hover { background-color: rgb(var(--color-neutral-200)); }

.hover\:bg-success-100:hover { background-color: rgb(var(--color-success-100)); }

.hover\:bg-warning-50:hover { background-color: rgb(var(--color-warning-50)); }

.hover\:bg-warning-100:hover { background-color: rgb(var(--color-warning-100)); }

.hover\:border-primary-200:hover { border-color: rgb(var(--color-primary-200)); }

.hover\:border-primary-300:hover { border-color: rgb(var(--color-primary-300)); }

.hover\:border-primary-500:hover { border-color: rgb(var(--color-primary-500)); }

.hover\:border-neutral-300:hover { border-color: rgb(var(--color-neutral-300)); }

.hover\:shadow-sm:hover { box-shadow: var(--shadow-sm); }

.hover\:shadow-md:hover { box-shadow: var(--shadow-md); }

.hover\:shadow-lg:hover { 
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); 
  }

.hover\:scale-110:hover { transform: scale(1.1); }

.hover\:file\:bg-primary-100::file-selector-button:hover { --tw-bg-opacity: 1; background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); background-color: rgb(var(--color-primary-100));
}

.focus\:border-blue-500:focus { --tw-border-opacity: 1; border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}

.focus\:border-primary-300:focus { --tw-border-opacity: 1; border-color: rgb(147 197 253 / var(--tw-border-opacity, 1));
}

.focus\:border-primary-500:focus { --tw-border-opacity: 1; border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}

.focus\:border-red-500:focus { --tw-border-opacity: 1; border-color: rgb(239 68 68 / var(--tw-border-opacity, 1));
}

.focus\:bg-primary-50:focus { --tw-bg-opacity: 1; background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}

.focus\:bg-white:focus { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.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-1: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(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\: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-blue-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}

.focus\:ring-gray-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity, 1));
}

.focus\:ring-green-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1));
}

.focus\:ring-primary-200:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1));
}

.focus\:ring-primary-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
}

.focus\:ring-primary-500\/20:focus { --tw-ring-color: rgb(59 130 246 / 0.2);
}

.focus\:ring-red-500:focus { --tw-ring-opacity: 1; --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1));
}

.focus\:ring-offset-2:focus { --tw-ring-offset-width: 2px;
}

.focus\:bg-white:focus { background-color: rgb(255 255 255); }

.focus\:bg-primary-50:focus { background-color: rgb(var(--color-primary-50)); }

.focus\:border-primary-300:focus { border-color: rgb(var(--color-primary-300)); }

.focus\:border-primary-500:focus { border-color: rgb(var(--color-primary-500)); }

.focus-visible\:outline-none:focus-visible { outline: 2px solid transparent; outline-offset: 2px;
}

.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-blue-200:focus-visible { --tw-ring-opacity: 1; --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1));
}

.focus-visible\:ring-green-200:focus-visible { --tw-ring-opacity: 1; --tw-ring-color: rgb(187 247 208 / var(--tw-ring-opacity, 1));
}

.focus-visible\:ring-primary-300:focus-visible { --tw-ring-opacity: 1; --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity, 1));
}

.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\:bg-neutral-200:active { --tw-bg-opacity: 1; background-color: rgb(231 229 228 / var(--tw-bg-opacity, 1)); background-color: rgb(var(--color-neutral-200));
}

.active\:scale-95:active { transform: scale(0.95); }

.disabled\:cursor-not-allowed:disabled { cursor: not-allowed;
}

.disabled\:opacity-50:disabled {
    opacity: 0.5;
}

.disabled\:cursor-not-allowed:disabled { cursor: not-allowed; }

.group:hover .group-hover\:translate-x-1 { --tw-translate-x: 0.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));
}

.group:hover .group-hover\:bg-neutral-50 { --tw-bg-opacity: 1; background-color: rgb(250 250 249 / var(--tw-bg-opacity, 1));
}

.group:hover .group-hover\:bg-primary-200 { --tw-bg-opacity: 1; background-color: rgb(191 219 254 / var(--tw-bg-opacity, 1));
}

.group:hover .group-hover\:text-gray-500 { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-gray-600 { --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-neutral-600 { --tw-text-opacity: 1; color: rgb(87 83 78 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-neutral-900 { --tw-text-opacity: 1; color: rgb(28 25 23 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-primary-600 { --tw-text-opacity: 1; color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-primary-700 { --tw-text-opacity: 1; color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-red-500 { --tw-text-opacity: 1; color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:opacity-100 {
    opacity: 1;
}

.group:hover .group-hover\:text-primary-600 { color: rgb(var(--color-primary-600)); }

.group:hover .group-hover\:text-primary-700 { color: rgb(var(--color-primary-700)); }

.group:hover .group-hover\:text-neutral-600 { color: rgb(var(--color-neutral-600)); }

.group:hover .group-hover\:text-neutral-900 { color: rgb(var(--color-neutral-900)); }

.group:hover .group-hover\:bg-primary-200 { background-color: rgb(var(--color-primary-200)); }

.group:hover .group-hover\:bg-neutral-50 { background-color: rgb(var(--color-neutral-50)); }

.group:hover .group-hover\:translate-x-1 { transform: translateX(0.25rem); }

@media (min-width: 640px) {

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

  .sm\:ml-16 { margin-left: 4rem;
  }

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

  .sm\:block { display: block;
  }

  .sm\:flex { display: flex;
  }

  .sm\:hidden { display: none;
  }

  .sm\:w-full { width: 100%;
  }

  .sm\:max-w-2xl { max-width: 42rem;
  }

  .sm\:max-w-md { max-width: 28rem;
  }

  .sm\:flex-1 { flex: 1 1 0%;
  }

  .sm\:flex-none { flex: none;
  }

  .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-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .sm\:flex-row { flex-direction: row;
  }

  .sm\:items-center { align-items: center;
  }

  .sm\:justify-between { justify-content: space-between;
  }

  .sm\:space-x-1 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.25rem * var(--tw-space-x-reverse)); margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .sm\:space-x-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1.5rem * var(--tw-space-x-reverse)); margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .sm\: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));
  }

  .sm\:p-6 { padding: 1.5rem;
  }

  .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem;
  }

  .sm\:text-sm { font-size: 0.875rem; line-height: 1.25rem;
  }

  .sm\:hidden {
    display: none;
  }

  .sm\:block {
    display: block;
  }

  .sm\:flex {
    display: flex;
  }
  .sm\:mt-0 { margin-top: var(--util-space-0); }
  .sm\:ml-16 { margin-left: var(--util-space-16); }
  .sm\:mx-auto { margin-left: auto; margin-right: auto; }
  .sm\:p-6 { padding: var(--util-space-6); }
  .sm\:px-6 { padding-left: var(--util-space-6); padding-right: var(--util-space-6); }
  .sm\:w-full { width: var(--util-size-full); }
  .sm\:max-w-md { max-width: var(--util-size-md); }
  .sm\:max-w-2xl { max-width: var(--util-size-2xl); }
  .sm\:flex-row { flex-direction: row; }
  .sm\:flex-1 { flex: 1 1 0%; }
  .sm\:flex-none { flex: none; }
  .sm\:justify-between { justify-content: space-between; }
  .sm\:items-center { align-items: center; }
  .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-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sm\:text-sm { font-size: 0.875rem; line-height: 1.25rem; }
}

@media (min-width: 768px) {

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

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

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

  .md\:block { display: block;
  }

  .md\:flex { display: flex;
  }

  .md\:hidden { display: none;
  }

  .md\:w-80 { width: 20rem;
  }

  .md\:w-auto { width: auto;
  }

  .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-5 { grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .md\:grid-cols-\[1\.5fr_1fr_1fr_1fr\] { grid-template-columns: 1.5fr 1fr 1fr 1fr;
  }

  .md\:flex-row { flex-direction: row;
  }

  .md\:flex-nowrap { flex-wrap: nowrap;
  }

  .md\:items-center { align-items: center;
  }

  .md\:justify-between { justify-content: space-between;
  }

  .md\:space-x-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.75rem * var(--tw-space-x-reverse)); margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
  }

  .md\:p-8 { padding: 2rem;
  }

  .md\:hidden {
    display: none;
  }

  .md\:block {
    display: block;
  }

  .md\:flex {
    display: flex;
  }
  .md\:mt-0 { margin-top: var(--util-space-0); }
  .md\:p-8 { padding: var(--util-space-8); }
  .md\:w-auto { width: auto; }
  .md\:flex-row { flex-direction: row; }
  .md\:flex-nowrap { flex-wrap: nowrap; }
  .md\:justify-between { justify-content: space-between; }
  .md\:items-center { align-items: center; }
  .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-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .md\:col-span-1 { grid-column: span 1 / span 1; }
  .md\:col-span-2 { grid-column: span 2 / span 2; }
}

@media (min-width: 1024px) {

  .lg\:sticky { position: sticky;
  }

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

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

  .lg\:col-span-3 { grid-column: span 3 / span 3;
  }

  .lg\:block { display: block;
  }

  .lg\:flex { display: flex;
  }

  .lg\:hidden { display: none;
  }

  .lg\:w-48 { width: 12rem;
  }

  .lg\:flex-shrink-0 { flex-shrink: 0;
  }

  .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-\[1fr_360px\] { grid-template-columns: 1fr 360px;
  }

  .lg\:grid-cols-\[1fr_380px\] { grid-template-columns: 1fr 380px;
  }

  .lg\:grid-cols-\[1fr_400px\] { grid-template-columns: 1fr 400px;
  }

  .lg\:grid-cols-\[2fr_1fr\] { grid-template-columns: 2fr 1fr;
  }

  .lg\:grid-cols-\[auto_1fr\] { grid-template-columns: auto 1fr;
  }

  .lg\:flex-row { flex-direction: row;
  }

  .lg\:items-start { align-items: flex-start;
  }

  .lg\:items-end { align-items: flex-end;
  }

  .lg\:items-center { align-items: center;
  }

  .lg\:justify-between { justify-content: space-between;
  }

  .lg\:p-12 { padding: 3rem;
  }

  .lg\:px-8 { padding-left: 2rem; padding-right: 2rem;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:block {
    display: block;
  }

  .lg\:flex {
    display: flex;
  }
  .lg\:p-12 { padding: var(--util-space-12); }
  .lg\:px-8 { padding-left: var(--util-space-8); padding-right: var(--util-space-8); }
  .lg\:flex-row { flex-direction: row; }
  .lg\:flex-shrink-0 { flex-shrink: 0; }
  .lg\:justify-between { justify-content: space-between; }
  .lg\:items-start { align-items: flex-start; }
  .lg\:items-end { align-items: flex-end; }
  .lg\:items-center { align-items: center; }
  .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\:col-span-1 { grid-column: span 1 / span 1; }
  .lg\:col-span-2 { grid-column: span 2 / span 2; }
  .lg\:col-span-3 { grid-column: span 3 / span 3; }
  .lg\:sticky { position: sticky; }
}

@media (min-width: 1280px) {

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

  .xl\:col-span-4 { grid-column: span 4 / span 4;
  }

  .xl\:block { display: block;
  }

  .xl\:flex { display: flex;
  }

  .xl\:hidden { display: none;
  }

  .xl\:w-64 { width: 16rem;
  }

  .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-\[2fr_1fr\] { grid-template-columns: 2fr 1fr;
  }

  .xl\:grid-cols-\[3fr_2fr\] { grid-template-columns: 3fr 2fr;
  }

  .xl\:flex-row { flex-direction: row;
  }

  .xl\:hidden {
    display: none;
  }

  .xl\:block {
    display: block;
  }

  .xl\:flex {
    display: flex;
  }
  .xl\:flex-row { flex-direction: row; }
  .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\:col-span-2 { grid-column: span 2 / span 2; }
  .xl\:col-span-4 { grid-column: span 4 / span 4; }
}
