*, ::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: Segoe UI, Helvetica Neue, Helvetica, Lucida Grande, Arial, system-ui, 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: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  /* 1 */
  font-feature-settings: normal;
  /* 2 */
  font-variation-settings: normal;
  /* 3 */
  font-size: 1em;
  /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0;
  /* 1 */
  border-color: inherit;
  /* 2 */
  border-collapse: collapse;
  /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-feature-settings: inherit;
  /* 1 */
  font-variation-settings: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  font-weight: inherit;
  /* 1 */
  line-height: inherit;
  /* 1 */
  letter-spacing: inherit;
  /* 1 */
  color: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
  padding: 0;
  /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button;
  /* 1 */
  background-color: transparent;
  /* 2 */
  background-image: none;
  /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  /* 1 */
  vertical-align: middle;
  /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

:root, [data-theme="light"] {
  --wa-bg: #efeae2;
  --wa-surface: #ffffff;
  --wa-header: #f0f2f5;
  --wa-border: #e9edef;
  --wa-border-strong: #d1d7db;
  --wa-text-primary: #111b21;
  --wa-text-secondary: #667781;
  --wa-teal: #008069;
  --wa-teal-hover: #006e5a;
  --wa-green: #25d366;
  --wa-bubble-mine: #d9fdd3;
  --wa-bubble-partner: #ffffff;
  --wa-bubble-text: #111b21;
  --wa-tick: #53bdeb;
  color-scheme: light;
}

html.dark, [data-theme="dark"] {
  --wa-bg: #0b141a;
  --wa-surface: #111b21;
  --wa-header: #202c33;
  --wa-border: #222e35;
  --wa-border-strong: #2a3942;
  --wa-text-primary: #e9edef;
  --wa-text-secondary: #8696a0;
  --wa-teal: #00a884;
  --wa-teal-hover: #02906f;
  --wa-green: #25d366;
  --wa-bubble-mine: #005c4b;
  --wa-bubble-partner: #202c33;
  --wa-bubble-text: #e9edef;
  --wa-tick: #53bdeb;
  color-scheme: dark;
}

html, body {
  width: 100%;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  overflow: hidden;
  font-family: Segoe UI, Helvetica Neue, Helvetica, Lucida Grande, Arial, system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  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: 200ms;
  height: 100%;
  height: 100dvh;
  touch-action: manipulation;
}

body {
  --tw-bg-opacity: 1;
  background-color: rgb(238 242 245 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

body:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(12 19 23 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

body {
  background-image: radial-gradient(at 50% 0%, rgba(0, 128, 105, 0.05) 0px, transparent 65%);
}

html.dark body, [data-theme="dark"] body {
  background-image: radial-gradient(at 50% 0%, rgba(0, 168, 132, 0.06) 0px, transparent 65%);
}

.\!container {
  width: 100% !important;
}

.container {
  width: 100%;
}

@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;
  }
}

/* ================================================= */

/* 1. APP WRAPPER & SCREEN CONTAINER                 */

/* ================================================= */

.app-wrapper {
  position: relative;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  width: 100%;
  max-width: 64rem;
  flex-direction: column;
  overflow: hidden;
  padding: 0px;
}

@media (min-width: 640px) {
  .app-wrapper {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media (min-width: 768px) {
  .app-wrapper {
    padding-top: 1rem;
    padding-bottom: 1rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .app-wrapper {
    max-width: 72rem;
  }
}

.app-wrapper {
  height: 100%;
  height: 100dvh;
}

.screen {
  position: absolute;
  inset: 0px;
  display: flex;
  height: 100%;
  width: 100%;
  flex-direction: column;
  overflow: hidden;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.screen.hidden {
  pointer-events: none;
  visibility: hidden;
  --tw-scale-x: 0.99;
  --tw-scale-y: 0.99;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  opacity: 0;
}

.screen.active {
  pointer-events: auto;
  visibility: visible;
  --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));
  opacity: 1;
}

/* Glass Panels & Surfaces */

.glass-panel {
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --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);
}

.glass-panel:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
  --tw-shadow-color: rgb(0 0 0 / 0.5);
  --tw-shadow: var(--tw-shadow-colored);
}

/* ================================================= */

/* 2. AUTH SCREEN (LOGIN & SETUP)                    */

/* ================================================= */

.tab-panel.active.auth-screen {
  display: block;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.tab-panel.active.auth-screen > * {
  flex-shrink: 0;
}

.auth-screen {
  display: flex;
  min-height: 100vh;
  width: 100%;
  align-items: center;
  justify-content: center;
  overflow-y: auto;
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding: 1rem;
}

.auth-screen:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(12 19 23 / var(--tw-bg-opacity, 1));
}

.auth-card {
  position: relative;
  margin: auto;
  width: 100%;
  max-width: 28rem;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.5rem;
  --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);
}

.auth-card:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
  --tw-shadow-color: rgb(0 0 0 / 0.6);
  --tw-shadow: var(--tw-shadow-colored);
}

@media (min-width: 640px) {
  .auth-card {
    padding: 2rem;
  }
}

.auth-top-actions {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  z-index: 10;
}

.auth-header {
  margin-bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.app-logo {
  margin-bottom: 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: transparent;
  padding: 0px;
  --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);
}

.brand-logo-img {
  height: 5rem;
  width: 5rem;
  -o-object-fit: contain;
     object-fit: contain;
  --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
  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);
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.brand-logo-img:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

@media (min-width: 640px) {
  .brand-logo-img {
    height: 6rem;
    width: 6rem;
  }
}

.auth-title {
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.auth-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.auth-subtitle {
  margin-top: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.auth-subtitle:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.auth-form {
  display: flex;
  width: 100%;
  flex-direction: column;
  gap: 1rem;
}

.form-group {
  display: flex;
  width: 100%;
  flex-direction: column;
  gap: 0.375rem;
}

.form-group label {
  display: block;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.form-group label:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.form-row {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.helper-text {
  font-size: 11px;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.helper-text:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.input-sub-row {
  margin-top: 0.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.btn-chip {
  display: inline-flex;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  align-items: center;
  gap: 0.25rem;
  white-space: nowrap;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 215 219 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-chip:hover {
  --tw-border-opacity: 1;
  border-color: rgb(0 128 105 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(231 252 227 / var(--tw-bg-opacity, 1));
}

.btn-chip: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));
}

.btn-chip:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.btn-chip:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(0 168 132 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(10 51 44 / var(--tw-bg-opacity, 1));
}

.login-footer-actions {
  margin-top: 0.75rem;
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.btn-ghost-link {
  margin-left: auto;
  margin-right: auto;
  display: flex;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  border-radius: 0.75rem;
  border-width: 0px;
  background-color: transparent;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(84 101 111 / var(--tw-text-opacity, 1));
  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;
}

.btn-ghost-link:hover {
  background-color: rgb(0 0 0 / 0.05);
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.btn-ghost-link:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.btn-ghost-link:hover:is(.dark *) {
  background-color: rgb(255 255 255 / 0.05);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.auth-group-label {
  margin-bottom: 0.5rem;
  display: block;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(84 101 111 / var(--tw-text-opacity, 1));
}

.auth-group-label:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.auth-feedback {
  margin-top: 0.75rem;
  border-radius: 0.75rem;
  padding: 0.75rem;
  text-align: center;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
}

.auth-feedback.error {
  border-width: 1px;
  border-color: rgb(244 63 94 / 0.3);
  background-color: rgb(244 63 94 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}

.auth-feedback.error:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.auth-feedback.success {
  border-width: 1px;
  border-color: rgb(16 185 129 / 0.3);
  background-color: rgb(16 185 129 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(5 150 105 / var(--tw-text-opacity, 1));
}

.auth-feedback.success:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}

.info-alert {
  margin-bottom: 0.5rem;
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  border-radius: 0.75rem;
  border-width: 1px;
  border-color: rgb(0 128 105 / 0.2);
  background-color: rgb(0 128 105 / 0.1);
  padding: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.info-alert:is(.dark *) {
  border-color: rgb(0 168 132 / 0.2);
  background-color: rgb(0 168 132 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

/* User Selection Pills */

.user-selector {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.625rem;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding: 0.375rem;
}

.user-selector:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.user-pill {
  display: flex;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  border-radius: 0.5rem;
  border-width: 1px;
  border-color: transparent;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  padding-left: 1rem;
  padding-right: 1rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(84 101 111 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.user-pill:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(233 237 239 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.user-pill:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.user-pill:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.user-pill.active {
  --tw-border-opacity: 1;
  border-color: rgb(251 113 133 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
  --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);
}

.user-pill.active:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(225 29 72 / var(--tw-border-opacity, 1));
  background-color: rgb(76 5 25 / 0.4);
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.user-pill-avatar {
  height: 1.75rem;
  width: 1.75rem;
  flex-shrink: 0;
  border-radius: 9999px;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 215 219 / var(--tw-border-opacity, 1));
  -o-object-fit: cover;
     object-fit: cover;
}

.user-pill-avatar:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
}

.user-pill-name {
  font-size: 0.875rem;
  line-height: 1.25rem;
  line-height: 1;
}

/* Form Inputs */

.input-field {
  width: 100%;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
  background-color: rgb(249 250 251 / 0.8);
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.input-field::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(134 150 160 / var(--tw-placeholder-opacity, 1));
}

.input-field::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(134 150 160 / var(--tw-placeholder-opacity, 1));
}

.input-field {
  --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);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.input-field:focus {
  --tw-border-opacity: 1;
  border-color: rgb(251 113 133 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  outline: 2px solid transparent;
  outline-offset: 2px;
  --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);
  --tw-ring-color: rgb(251 113 133 / 0.2);
}

.input-field:is(.dark *) {
  border-color: rgb(55 65 81 / 0.8);
  --tw-bg-opacity: 1;
  background-color: rgb(26 37 44 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.input-field:is(.dark *)::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(102 119 129 / var(--tw-placeholder-opacity, 1));
}

.input-field:is(.dark *)::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(102 119 129 / var(--tw-placeholder-opacity, 1));
}

.input-field:focus:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(244 63 94 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
  --tw-ring-color: rgb(244 63 94 / 0.2);
}

.input-field.with-toggle {
  padding-right: 2.75rem;
}

.password-input-wrap {
  position: relative;
  display: flex;
  width: 100%;
  align-items: center;
}

.btn-toggle-password {
  position: absolute;
  right: 0.5rem;
  top: 50%;
  --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));
  cursor: pointer;
  border-radius: 0.5rem;
  padding: 0.5rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-toggle-password:hover {
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.btn-toggle-password:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.btn-toggle-password:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.eye-icon {
  height: 1rem;
  width: 1rem;
}

.eye-open, .eye-closed {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.totp-input {
  text-align: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1.25rem;
  line-height: 1.75rem;
  font-weight: 700;
  letter-spacing: 0.4em;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.totp-input:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

/* QR Setup Views */

.auth-view {
  display: flex;
  width: 100%;
  flex-direction: column;
  gap: 1rem;
}

.qr-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding: 1rem;
  text-align: center;
}

.qr-container:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.qr-heading {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.qr-heading:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.qr-desc {
  font-size: 0.75rem;
  line-height: 1rem;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.qr-desc:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.qr-image-wrapper {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(255 228 230 / 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);
  --tw-shadow-color: rgb(244 63 94 / 0.05);
  --tw-shadow: var(--tw-shadow-colored);
}

.qr-image-wrapper:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));
}

.qr-image-wrapper img {
  height: 12rem;
  width: 12rem;
  border-radius: 0.75rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.secret-box {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  border-radius: 0.75rem;
  border-width: 1px;
  border-color: rgb(254 205 211 / 0.7);
  background-color: rgb(255 241 242 / 0.7);
  padding: 0.75rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 0.75rem;
  line-height: 1rem;
  letter-spacing: 0.05em;
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}

.secret-box:is(.dark *) {
  border-color: rgb(136 19 55 / 0.4);
  background-color: rgb(76 5 25 / 0.3);
  --tw-text-opacity: 1;
  color: rgb(243 244 246 / var(--tw-text-opacity, 1));
}

.secret-label {
  font-family: Segoe UI, Helvetica Neue, Helvetica, Lucida Grande, Arial, system-ui, sans-serif;
  font-size: 10px;
  text-transform: uppercase;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.secret-label:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.action-row {
  margin-top: 0.5rem;
  width: 100%;
}

/* Buttons */

.\!btn {
  display: inline-flex;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-weight: 500;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn {
  display: inline-flex;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-weight: 500;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-block {
  width: 100%;
}

.btn-sm {
  width: auto;
  border-radius: 0.75rem;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
}

.btn-primary {
  display: flex;
  width: 100%;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #f43f5e var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: rgb(236 72 153 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #ec4899 var(--tw-gradient-via-position), var(--tw-gradient-to);
  --tw-gradient-to: #e11d48 var(--tw-gradient-to-position);
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  --tw-shadow-color: rgb(244 63 94 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-primary:hover {
  --tw-gradient-from: #e11d48 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(225 29 72 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #db2777 var(--tw-gradient-to-position);
}

.btn-primary: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));
}

@media (min-width: 640px) {
  .btn-primary {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.btn-secondary, .btn-outline {
  display: flex;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
  background-color: rgb(243 244 246 / 0.9);
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  padding-left: 1rem;
  padding-right: 1rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-secondary:hover, .btn-outline:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}

.btn-secondary:active, .btn-outline: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));
}

.btn-secondary:is(.dark *), .btn-outline:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));
  background-color: rgb(31 41 55 / 0.9);
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}

.btn-secondary:hover:is(.dark *), .btn-outline:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
}

.btn-icon {
  display: flex;
  height: 2.25rem;
  width: 2.25rem;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  --tw-text-opacity: 1;
  color: rgb(84 101 111 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-icon:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(233 237 239 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.btn-icon:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.btn-icon:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.btn-theme-round, .btn-theme-toggle {
  display: flex;
  height: 2.25rem;
  width: 2.25rem;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 215 219 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(233 237 239 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(84 101 111 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-theme-round:hover, .btn-theme-toggle:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(209 215 219 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.btn-theme-round:is(.dark *), .btn-theme-toggle:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.btn-theme-round:hover:is(.dark *), .btn-theme-toggle:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(50 66 76 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.theme-icon-sun, .theme-icon-moon {
  height: 1rem;
  width: 1rem;
}

/* ================================================= */

/* 3. MAIN DASHBOARD HEADER & NAV                    */

/* ================================================= */

.main-screen {
  position: relative;
  display: flex;
  height: 100%;
  min-height: 0px;
  width: 100%;
  flex: 1 1 0%;
  flex-direction: column;
  overflow: hidden;
  --tw-border-opacity: 1;
  border-color: rgb(209 215 219 / var(--tw-border-opacity, 1));
  --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);
}

.main-screen:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
}

@media (min-width: 640px) {
  .main-screen {
    border-radius: 1rem;
    border-width: 1px;
    --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);
  }
}

.app-header {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 215 219 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.app-header:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

@media (min-width: 640px) {
  .app-header {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    padding-top: 0.875rem;
    padding-bottom: 0.875rem;
  }
}

.header-left {
  display: flex;
  min-width: 0px;
  flex: 1 1 0%;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  align-items: center;
  gap: 0.5rem;
}

@media (min-width: 640px) {
  .header-left {
    gap: 0.75rem;
  }
}

.avatar-couple-duo {
  position: relative;
  display: flex;
  flex-shrink: 0;
  align-items: center;
}

.avatar-couple-duo > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(-0.625rem * var(--tw-space-x-reverse));
  margin-left: calc(-0.625rem * calc(1 - var(--tw-space-x-reverse)));
}

.avatar-wrapper {
  height: 2.25rem;
  width: 2.25rem;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 9999px;
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(233 237 239 / var(--tw-bg-opacity, 1));
  --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);
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.avatar-wrapper:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.avatar-wrapper:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(32 44 51 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
}

@media (min-width: 640px) {
  .avatar-wrapper {
    height: 2.5rem;
    width: 2.5rem;
  }
}

.my-avatar-wrap, .partner-avatar-wrap {
  position: relative;
}

.avatar-img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.header-meta {
  display: flex;
  min-width: 0px;
  flex-direction: column;
  justify-content: center;
  gap: 0.125rem;
}

.header-title-row {
  display: flex;
  min-width: 0px;
  align-items: center;
  gap: 0.375rem;
}

.header-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.025em;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.header-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .header-title {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

@media (min-width: 768px) {
  .header-title {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
}

.header-chevron {
  flex-shrink: 0;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.header-chevron:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.presence-badge {
  display: flex;
  max-width: 90px;
  flex-shrink: 0;
  align-items: center;
  gap: 0.25rem;
  font-size: 11px;
  line-height: 1;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.presence-badge:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .presence-badge {
    max-width: 20rem;
    gap: 0.375rem;
    font-size: 0.75rem;
    line-height: 1rem;
  }
}

.status-dot {
  height: 0.5rem;
  width: 0.5rem;
  flex-shrink: 0;
  border-radius: 9999px;
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}

.status-dot.online {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  --tw-bg-opacity: 1;
  background-color: rgb(37 211 102 / var(--tw-bg-opacity, 1));
}

.status-dot.offline {
  --tw-bg-opacity: 1;
  background-color: rgb(134 150 160 / var(--tw-bg-opacity, 1));
}

.status-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
  line-height: 1;
}

@media (min-width: 640px) {
  .status-text {
    font-size: 0.75rem;
    line-height: 1rem;
  }
}

.header-right {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.25rem;
}

@media (min-width: 640px) {
  .header-right {
    gap: 0.375rem;
  }
}

/* Navigation Tabs */

.app-nav-tabs {
  display: flex;
  flex-shrink: 0;
  gap: 0.25rem;
  overflow-x: auto;
  scroll-behavior: smooth;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}

.app-nav-tabs:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
}

@media (min-width: 640px) {
  .app-nav-tabs {
    gap: 0.5rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }
}

.nav-tab {
  display: flex;
  flex: 0 1 auto;
  flex-shrink: 0;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  white-space: nowrap;
  border-radius: 0.75rem;
  border-width: 1px;
  border-color: transparent;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(84 101 111 / var(--tw-text-opacity, 1));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.nav-tab:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.nav-tab:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.nav-tab:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .nav-tab {
    min-width: 120px;
    gap: 0.5rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 1rem;
    padding-right: 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.nav-tab.active {
  border-color: rgb(254 205 211 / 0.8);
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
  --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);
}

.nav-tab.active:is(.dark *) {
  border-color: rgb(136 19 55 / 0.5);
  background-color: rgb(76 5 25 / 0.4);
  --tw-text-opacity: 1;
  color: rgb(253 164 175 / var(--tw-text-opacity, 1));
}

.tab-label {
  line-height: 1;
}

.badge-count {
  margin-left: 0.375rem;
  display: inline-flex;
  height: 18px;
  min-width: 18px;
  flex-shrink: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #f43f5e var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #ec4899 var(--tw-gradient-to-position);
  padding-left: 0.375rem;
  padding-right: 0.375rem;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  --tw-shadow-color: rgb(244 63 94 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}

.badge-count.hidden {
  display: none !important;
}

/* ================================================= */

/* 4. APP CONTENT BODY & TAB PANELS                  */

/* ================================================= */

.app-content-body {
  position: relative;
  display: flex;
  min-height: 0px;
  flex: 1 1 0%;
  flex-direction: column;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.app-content-body:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
}

.tab-panel {
  display: flex;
  height: 100%;
  min-height: 0px;
  width: 100%;
  flex: 1 1 0%;
  flex-direction: column;
  overflow: hidden;
}

.tab-panel:not(.active),
  .tab-panel.hidden {
  display: none !important;
}

.tab-panel.active {
  display: flex !important;
}

/* Tab panels scrollable (Home, Curhatan, Intimate) agar konten tidak squashed/gepeng */

.tab-panel.active.overflow-y-auto,
  .tab-panel.active.tab-panel-scrollable {
  display: block !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}

.tab-panel.active.overflow-y-auto > *,
  .tab-panel.active.tab-panel-scrollable > * {
  flex-shrink: 0;
}

/* Chat System */

.chat-container {
  position: relative;
  display: flex;
  min-height: 0px;
  flex: 1 1 0%;
  flex-direction: column;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(239 234 226 / var(--tw-bg-opacity, 1));
}

.chat-container:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(11 20 26 / var(--tw-bg-opacity, 1));
}

/* WhatsApp-style Bulk Selection Bar */

.chat-selection-bar {
  position: sticky;
  top: 0px;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  --tw-bg-opacity: 1;
  background-color: rgb(0 128 105 / var(--tw-bg-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.chat-selection-bar:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.chat-selection-bar.hidden {
  display: none !important;
}

.selection-bar-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
}

.btn-selection-icon {
  display: flex;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  padding: 0.375rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-selection-icon:hover {
  background-color: rgb(255 255 255 / 0.15);
}

.selection-count-text {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.025em;
}

.selection-bar-actions {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.btn-selection-action {
  display: flex;
  cursor: pointer;
  align-items: center;
  gap: 0.375rem;
  border-radius: 0.75rem;
  background-color: rgb(255 255 255 / 0.15);
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-selection-action:hover {
  background-color: rgb(255 255 255 / 0.25);
}

.btn-selection-delete {
  background-color: rgb(244 63 94 / 0.85);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.btn-selection-delete:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
}

/* Chat Wallpaper Pattern (WhatsApp authentic doodle background) */

.tab-panel.active.chat-messages {
  display: block;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.tab-panel.active.chat-messages > * {
  flex-shrink: 0;
}

.chat-messages {
  position: relative;
  display: flex;
  flex: 1 1 0%;
  flex-direction: column;
  gap: 0.625rem;
  overflow-y: auto;
  padding: 0.75rem;
}

@media (min-width: 640px) {
  .chat-messages {
    padding: 1rem;
  }
}

.chat-messages {
  background-color: #efeae2;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='%23705335' fill-opacity='0.08'%3E%3Cpath d='M14 16h8v6h-8zM46 12h6v8h-6zM62 48a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM24 64a5 5 0 1 1-10 0 5 5 0 0 1 10 0zM40 38c0-3.3-2.7-6-6-6s-6 2.7-6 6c0 4 6 9 6 9s6-5 6-9zM70 20c0 4-4 7-8 7s-8-3-8-7 4-7 8-7 8 3 8 7zM18 42l4 7h-8l4-7z'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: repeat;
}

:is(.dark *) .chat-messages {
  background-color: #0b141a;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M14 16h8v6h-8zM46 12h6v8h-6zM62 48a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM24 64a5 5 0 1 1-10 0 5 5 0 0 1 10 0zM40 38c0-3.3-2.7-6-6-6s-6 2.7-6 6c0 4 6 9 6 9s6-5 6-9zM70 20c0 4-4 7-8 7s-8-3-8-7 4-7 8-7 8 3 8 7zM18 42l4 7h-8l4-7z'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: repeat;
}

.chat-empty-state {
  display: flex;
  flex: 1 1 0%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 2rem;
  text-align: center;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.chat-empty-state:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.empty-icon {
  margin-bottom: 0.5rem;
  display: flex;
  height: 4rem;
  width: 4rem;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background-color: rgb(0 128 105 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.empty-icon:is(.dark *) {
  background-color: rgb(0 168 132 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

/* Message Row Layout */

.chat-bubble-row {
  display: flex;
  width: 100%;
  align-items: flex-end;
  gap: 0.625rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.chat-bubble-row.mine {
  justify-content: flex-end;
}

.chat-bubble-row.partner {
  justify-content: flex-start;
}

/* WhatsApp-style selection checkbox */

.bubble-select-box {
  pointer-events: none;
  order: -9999;
  margin-bottom: 0.5rem;
  height: 0px;
  width: 0px;
  flex-shrink: 0;
  overflow: hidden;
  opacity: 0;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.chat-bubble-row.mine .bubble-select-box {
  margin-right: auto;
}

.chat-selection-mode .bubble-select-box,
  .chat-bubble-row.selected .bubble-select-box,
  .chat-bubble-row:hover .bubble-select-box {
  pointer-events: auto;
  display: flex;
  height: 1.25rem;
  width: 1.25rem;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 0.375rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 215 219 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  opacity: 0.7;
  --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);
}

.chat-selection-mode .bubble-select-box:is(.dark *),
  .chat-bubble-row.selected .bubble-select-box:is(.dark *),
  .chat-bubble-row:hover .bubble-select-box:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.chat-bubble-row.selected .bubble-select-box {
  --tw-border-opacity: 1;
  border-color: rgb(0 128 105 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(0 128 105 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  opacity: 1;
}

.chat-bubble-row.selected .bubble-select-box:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(0 168 132 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(0 168 132 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.bubble-select-box:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-border-opacity: 1;
  border-color: rgb(0 128 105 / var(--tw-border-opacity, 1));
  opacity: 1;
}

.bubble-select-box:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(0 168 132 / var(--tw-border-opacity, 1));
}

/* User Avatar next to bubble */

.chat-user-avatar {
  margin-bottom: 0.25rem;
  height: 2rem;
  width: 2rem;
  flex-shrink: 0;
  border-radius: 9999px;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
  -o-object-fit: cover;
     object-fit: cover;
  --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);
}

.chat-user-avatar:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(32 44 51 / var(--tw-border-opacity, 1));
}

/* Content Wrapper (Sender, Bubble, Time) */

.bubble-content-wrap {
  display: flex;
  max-width: 85%;
  flex-direction: column;
}

@media (min-width: 640px) {
  .bubble-content-wrap {
    max-width: 28rem;
  }
}

.chat-bubble-row.mine .bubble-content-wrap {
  align-items: flex-end;
}

.chat-bubble-row.partner .bubble-content-wrap {
  align-items: flex-start;
}

/* Sender Label */

.bubble-sender {
  margin-bottom: 0.25rem;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  font-size: 11px;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.bubble-sender:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

/* Inner Row: Bubble + Action Buttons */

.bubble-row-inner {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 0.375rem;
}

.chat-bubble-row.mine .bubble-row-inner {
  flex-direction: row-reverse;
}

/* The Chat Bubble Card */

.chat-bubble {
  position: relative;
  overflow: hidden;
  border-radius: 1rem;
  padding: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  line-height: 1.625;
  --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);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

/* Mine: WhatsApp Light mint green (#d9fdd3) / Dark emerald (#005c4b) */

.chat-bubble-row.mine .chat-bubble {
  border-top-right-radius: 0px;
  --tw-bg-opacity: 1;
  background-color: rgb(217 253 211 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
  --tw-shadow: 0 1px 0.5px rgba(11,20,26,0.13);
  --tw-shadow-colored: 0 1px 0.5px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.chat-bubble-row.mine .chat-bubble:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(0 92 75 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
  --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);
}

/* Partner: WhatsApp Light pure white (#ffffff) / Dark charcoal (#202c33) */

.chat-bubble-row.partner .chat-bubble {
  border-top-left-radius: 0px;
  border-width: 1px;
  border-color: rgb(233 237 239 / 0.8);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
  --tw-shadow: 0 1px 0.5px rgba(11,20,26,0.13);
  --tw-shadow-colored: 0 1px 0.5px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.chat-bubble-row.partner .chat-bubble:is(.dark *) {
  border-color: transparent;
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
  --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);
}

.chat-bubble-row.selected .chat-bubble {
  --tw-scale-x: 0.99;
  --tw-scale-y: 0.99;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --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);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(0 128 105 / var(--tw-ring-opacity, 1));
}

.chat-bubble-row.selected .chat-bubble:is(.dark *) {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(0 168 132 / var(--tw-ring-opacity, 1));
}

/* Bubble Text */

.bubble-text-content {
  white-space: pre-wrap;
  overflow-wrap: break-word;
}

/* Bubble Images */

.bubble-image-wrap {
  display: flex;
  max-height: 18rem;
  max-width: 260px;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 0.75rem;
  background-color: rgb(0 0 0 / 0.05);
}

.bubble-image-wrap:is(.dark *) {
  background-color: rgb(0 0 0 / 0.3);
}

@media (min-width: 640px) {
  .bubble-image-wrap {
    max-width: 320px;
  }
}

.bubble-img {
  height: auto;
  max-height: 18rem;
  width: 100%;
  border-radius: 0.75rem;
  -o-object-fit: cover;
     object-fit: cover;
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.bubble-img:hover {
  --tw-scale-x: 1.02;
  --tw-scale-y: 1.02;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.bubble-caption {
  margin-top: 0.5rem;
  overflow-wrap: break-word;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  line-height: 1.625;
}

.chat-bubble-row.mine .bubble-caption {
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.chat-bubble-row.mine .bubble-caption:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.chat-bubble-row.partner .bubble-caption {
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.chat-bubble-row.partner .bubble-caption:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.bubble-edited-tag {
  margin-left: 0.25rem;
  font-size: 10px;
  font-style: italic;
  opacity: 0.75;
}

/* Bubble Document Card */

.bubble-doc-card {
  display: flex;
  max-width: 20rem;
  cursor: pointer;
  align-items: center;
  gap: 0.75rem;
  border-radius: 0.75rem;
  padding: 0.625rem;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.chat-bubble-row.mine .bubble-doc-card {
  background-color: rgb(0 0 0 / 0.05);
}

.chat-bubble-row.mine .bubble-doc-card:hover {
  background-color: rgb(0 0 0 / 0.1);
}

.chat-bubble-row.mine .bubble-doc-card:is(.dark *) {
  background-color: rgb(0 0 0 / 0.2);
}

.chat-bubble-row.partner .bubble-doc-card {
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
}

.chat-bubble-row.partner .bubble-doc-card:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(233 237 239 / var(--tw-bg-opacity, 1));
}

.chat-bubble-row.partner .bubble-doc-card:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
}

.chat-bubble-row.partner .bubble-doc-card:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(50 66 76 / var(--tw-bg-opacity, 1));
}

.doc-icon-badge {
  display: flex;
  height: 2.5rem;
  width: 2.5rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
}

.chat-bubble-row.mine .doc-icon-badge {
  background-color: rgb(0 128 105 / 0.2);
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.chat-bubble-row.mine .doc-icon-badge:is(.dark *) {
  background-color: rgb(0 168 132 / 0.2);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.chat-bubble-row.partner .doc-icon-badge {
  background-color: rgb(59 130 246 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}

.doc-details {
  display: flex;
  min-width: 0px;
  flex: 1 1 0%;
  flex-direction: column;
}

.doc-name {
  max-width: 170px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
}

@media (min-width: 640px) {
  .doc-name {
    max-width: 200px;
  }
}

.doc-size {
  font-size: 10px;
  opacity: 0.75;
}

.btn-doc-download {
  flex-shrink: 0;
  border-radius: 0.5rem;
  padding: 0.5rem;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.chat-bubble-row.mine .btn-doc-download {
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.chat-bubble-row.mine .btn-doc-download:hover {
  background-color: rgb(0 0 0 / 0.1);
}

.chat-bubble-row.mine .btn-doc-download:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.chat-bubble-row.mine .btn-doc-download:hover:is(.dark *) {
  background-color: rgb(255 255 255 / 0.15);
}

.chat-bubble-row.partner .btn-doc-download {
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.chat-bubble-row.partner .btn-doc-download:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(233 237 239 / var(--tw-bg-opacity, 1));
}

.chat-bubble-row.partner .btn-doc-download:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.chat-bubble-row.partner .btn-doc-download:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(50 66 76 / var(--tw-bg-opacity, 1));
}

/* Bubble Action Buttons (Select, Edit, Delete) */

.bubble-actions {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.25rem;
  padding-left: 0.125rem;
  padding-right: 0.125rem;
  opacity: 0;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.chat-bubble-row:hover .bubble-actions,
  .chat-bubble-row.selected .bubble-actions {
  opacity: 1;
}

.btn-msg-action, .btn-action-select, .btn-action-edit, .btn-action-delete {
  display: flex;
  height: 1.75rem;
  width: 1.75rem;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-msg-action:hover, .btn-action-select:hover, .btn-action-edit:hover, .btn-action-delete:hover {
  background-color: rgb(0 0 0 / 0.05);
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.btn-msg-action:is(.dark *), .btn-action-select:is(.dark *), .btn-action-edit:is(.dark *), .btn-action-delete:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.btn-msg-action:hover:is(.dark *), .btn-action-select:hover:is(.dark *), .btn-action-edit:hover:is(.dark *), .btn-action-delete:hover:is(.dark *) {
  background-color: rgb(255 255 255 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.btn-action-select:hover {
  background-color: rgb(16 185 129 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.btn-action-select:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.btn-action-delete:hover {
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}

.btn-action-delete:hover:hover {
  background-color: rgb(244 63 94 / 0.1);
}

/* Bubble Time & Status */

.bubble-time {
  margin-top: 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  font-size: 10px;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.bubble-time:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.bubble-read-check {
  margin-left: 0.125rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(83 189 235 / var(--tw-text-opacity, 1));
}

/* Typing bar */

.typing-bar {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  background-color: rgb(240 242 245 / 0.9);
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.typing-bar:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  background-color: rgb(32 44 51 / 0.9);
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.typing-bubble {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.typing-bubble .dot {
  height: 0.375rem;
  width: 0.375rem;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(0 128 105 / var(--tw-bg-opacity, 1));
  animation: typingBounce 1.4s infinite ease-in-out both;
}

.typing-bubble .dot:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(0 168 132 / var(--tw-bg-opacity, 1));
}

.typing-text {
  font-size: 0.75rem;
  line-height: 1rem;
  line-height: 1;
}

/* Composer Mode Banner (Edit message) */

.composer-mode-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top-width: 1px;
  border-color: rgb(37 211 102 / 0.3);
  --tw-bg-opacity: 1;
  background-color: rgb(217 253 211 / var(--tw-bg-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.composer-mode-banner:is(.dark *) {
  border-color: rgb(0 168 132 / 0.3);
  --tw-bg-opacity: 1;
  background-color: rgb(10 51 44 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.mode-banner-info {
  display: flex;
  flex: 1 1 0%;
  align-items: center;
  gap: 0.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mode-banner-label {
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.mode-banner-label:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.editing-text-snippet {
  max-width: 20rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-style: normal;
  opacity: 0.9;
}

.btn-banner-close {
  cursor: pointer;
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  font-size: 1rem;
  line-height: 1.5rem;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.btn-banner-close:hover {
  opacity: 0.75;
}

.btn-banner-close:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

/* Chat Composer & Attachments */

.chat-composer {
  display: flex;
  flex-shrink: 0;
  flex-direction: column;
  gap: 0.5rem;
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding: 0.625rem;
}

.chat-composer:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

@media (min-width: 640px) {
  .chat-composer {
    padding: 0.75rem;
  }
}

.composer-attachment-preview {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 0.5rem;
}

.composer-attachment-preview:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
}

.attachment-preview-box {
  display: flex;
  min-width: 0px;
  flex: 1 1 0%;
  align-items: center;
  gap: 0.625rem;
}

.attachment-thumb-wrap {
  display: flex;
  height: 2.5rem;
  width: 2.5rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 215 219 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(233 237 239 / var(--tw-bg-opacity, 1));
}

.attachment-thumb-wrap:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.attachment-preview-img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.attachment-preview-icon {
  font-size: 1.125rem;
  line-height: 1.75rem;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.attachment-preview-icon:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.attachment-info {
  display: flex;
  min-width: 0px;
  flex-direction: column;
}

.attachment-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.attachment-name:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.attachment-size {
  font-size: 10px;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.attachment-size:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.composer-presets {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  overflow-x: auto;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.composer-presets::-webkit-scrollbar {
  display: none;
}

.composer-main {
  display: flex;
  width: 100%;
  align-items: flex-end;
  gap: 0.5rem;
}

.attachment-ctrl-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.composer-textarea {
  max-height: 8rem;
  min-height: 44px;
  flex: 1 1 0%;
  resize: none;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 0.875rem;
  padding-right: 0.875rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.composer-textarea::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(102 119 129 / var(--tw-placeholder-opacity, 1));
}

.composer-textarea::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(102 119 129 / var(--tw-placeholder-opacity, 1));
}

.composer-textarea:focus {
  --tw-border-opacity: 1;
  border-color: rgb(0 128 105 / var(--tw-border-opacity, 1));
  outline: 2px solid transparent;
  outline-offset: 2px;
  --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);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(0 128 105 / var(--tw-ring-opacity, 1));
}

.composer-textarea:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.composer-textarea:is(.dark *)::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(134 150 160 / var(--tw-placeholder-opacity, 1));
}

.composer-textarea:is(.dark *)::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(134 150 160 / var(--tw-placeholder-opacity, 1));
}

.composer-textarea:focus:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(0 168 132 / var(--tw-border-opacity, 1));
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(0 168 132 / var(--tw-ring-opacity, 1));
}

.btn-send {
  display: flex;
  height: 2.75rem;
  width: 2.75rem;
  flex-shrink: 0;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(0 128 105 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  --tw-shadow-color: rgb(0 0 0 / 0.1);
  --tw-shadow: var(--tw-shadow-colored);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-send:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(0 110 90 / var(--tw-bg-opacity, 1));
}

.btn-send:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(0 168 132 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.btn-send:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(2 144 111 / var(--tw-bg-opacity, 1));
}

.btn-attach {
  display: flex;
  height: 2.75rem;
  width: 2.75rem;
  flex-shrink: 0;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(84 101 111 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-attach:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(233 237 239 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.btn-attach:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.btn-attach:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(50 66 76 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.attachment-popover {
  position: absolute;
  bottom: 4rem;
  left: 0px;
  z-index: 40;
  display: flex;
  width: 12rem;
  flex-direction: column;
  gap: 0.25rem;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 0.375rem;
  --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);
}

.attachment-popover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.popover-item {
  display: flex;
  cursor: pointer;
  align-items: center;
  gap: 0.625rem;
  border-radius: 0.75rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.popover-item:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
}

.popover-item:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.popover-item:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
}

.popover-item-icon {
  height: 1rem;
  width: 1rem;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.popover-item-icon:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.icon-gallery {
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.icon-gallery:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.icon-camera {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}

/* ================================================= */

/* 5. MEMORIES, NOTES, TOOLBARS                      */

/* ================================================= */

.memories-container {
  display: flex;
  min-height: 0px;
  flex: 1 1 0%;
  flex-direction: column;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(244 246 248 / var(--tw-bg-opacity, 1));
}

.memories-container:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(11 20 26 / var(--tw-bg-opacity, 1));
}

.notes-container {
  display: flex;
  min-height: 0px;
  flex: 1 1 0%;
  flex-direction: column;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.notes-container:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
}

.memories-toolbar {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / 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.875rem;
  padding-bottom: 0.875rem;
  --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);
}

.memories-toolbar:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(22 32 38 / var(--tw-bg-opacity, 1));
}

@media (min-width: 640px) {
  .memories-toolbar {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

.memories-stat-pill {
  border-radius: 9999px;
  border-width: 1px;
  border-color: rgb(0 128 105 / 0.2);
  background-color: rgb(0 128 105 / 0.1);
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-size: 11px;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.memories-stat-pill:is(.dark *) {
  border-color: rgb(0 168 132 / 0.3);
  background-color: rgb(0 168 132 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.notes-toolbar {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(251 252 252 / var(--tw-bg-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.notes-toolbar:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(22 32 38 / var(--tw-bg-opacity, 1));
}

@media (min-width: 640px) {
  .notes-toolbar {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

.notes-status-badge {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 9999px;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding-left: 0.875rem;
  padding-right: 0.875rem;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(84 101 111 / var(--tw-text-opacity, 1));
}

.notes-status-badge:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.save-status-dot {
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(37 211 102 / var(--tw-bg-opacity, 1));
  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;
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}

.save-status-dot.saving {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}

.notes-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.notes-dropdown-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.btn-notes-add {
  display: flex;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  align-items: center;
  gap: 0.375rem;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-notes-add: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));
}

.btn-notes-add.active {
  --tw-border-opacity: 1;
  border-color: rgb(0 128 105 / var(--tw-border-opacity, 1));
  background-color: rgb(0 128 105 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.btn-notes-add.active:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(0 168 132 / var(--tw-border-opacity, 1));
  background-color: rgb(0 168 132 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.chevron-down {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.btn-notes-add.active .chevron-down {
  --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));
}

.notes-popover-menu {
  position: absolute;
  top: 100%;
  right: 0px;
  z-index: 50;
  margin-top: 0.5rem;
  display: flex;
  width: 16rem;
  flex-direction: column;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 0.375rem;
  --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);
  --tw-shadow-color: rgb(0 0 0 / 0.1);
  --tw-shadow: var(--tw-shadow-colored);
}

.notes-popover-menu:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
  --tw-shadow-color: rgb(0 0 0 / 0.4);
  --tw-shadow: var(--tw-shadow-colored);
}

.notes-popover-menu {
  animation: fadeInNotesPopover 0.15s ease-out;
}

@keyframes fadeInNotesPopover {
  from {
    opacity: 0;
    transform: translateY(-6px) scale(0.98);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.notes-popover-header {
  margin-bottom: 0.25rem;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(240 242 245 / var(--tw-border-opacity, 1));
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.notes-popover-header:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.tab-panel.active.notes-popover-list {
  display: block;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.tab-panel.active.notes-popover-list > * {
  flex-shrink: 0;
}

.notes-popover-list {
  display: flex;
  max-height: 20rem;
  flex-direction: column;
  gap: 0.125rem;
  overflow-y: auto;
  scrollbar-width: thin;
}

.notes-popover-item {
  display: flex;
  width: 100%;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  align-items: center;
  gap: 0.625rem;
  border-radius: 0.75rem;
  border-style: none;
  background-color: transparent;
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  text-align: left;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.notes-popover-item:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
}

.notes-popover-item:active {
  --tw-scale-x: 0.98;
  --tw-scale-y: 0.98;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.notes-popover-item:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
}

.notes-popover-item .item-icon {
  display: flex;
  height: 1.75rem;
  width: 1.75rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
  --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);
}

.notes-popover-item .item-icon:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.notes-popover-item .item-text {
  display: flex;
  min-width: 0px;
  flex-direction: column;
}

.notes-popover-item .item-title {
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  line-height: 1.25;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.notes-popover-item .item-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.notes-popover-item .item-desc {
  margin-top: 0.125rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10px;
  line-height: 1.25;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.notes-popover-item .item-desc:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.toolbar-title-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.toolbar-icon-badge {
  display: flex;
  height: 1.75rem;
  width: 1.75rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}

.toolbar-icon-badge:is(.dark *) {
  background-color: rgb(76 5 25 / 0.4);
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.btn-upload-memory {
  display: flex;
  width: auto;
  flex-shrink: 0;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #f43f5e var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #ec4899 var(--tw-gradient-to-position);
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  --tw-shadow-color: rgb(244 63 94 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-upload-memory:hover {
  --tw-gradient-from: #e11d48 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(225 29 72 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #db2777 var(--tw-gradient-to-position);
}

.btn-upload-memory: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));
}

@media (min-width: 640px) {
  .btn-upload-memory {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.btn-upload-empty {
  margin-top: 0.5rem;
  display: flex;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #f43f5e var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #ec4899 var(--tw-gradient-to-position);
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  --tw-shadow-color: rgb(244 63 94 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-upload-empty:hover {
  --tw-gradient-from: #e11d48 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(225 29 72 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #db2777 var(--tw-gradient-to-position);
  --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);
}

.btn-upload-empty: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));
}

@media (min-width: 640px) {
  .btn-upload-empty {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.memories-toolbar #btn-open-upload-memory {
  width: auto;
  flex-shrink: 0;
}

.toolbar-info {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.toolbar-info:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.toolbar-info h3 {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 700;
  line-height: 1.25;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.toolbar-info h3:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .toolbar-info h3 {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

.toolbar-info p {
  font-size: 0.75rem;
  line-height: 1rem;
  line-height: 1.25;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.toolbar-info p:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.memories-empty-state {
  grid-column: 1 / -1;
  margin-top: auto;
  margin-bottom: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  padding: 2rem;
  text-align: center;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.memories-empty-state:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.empty-icon-glow {
  position: relative;
  margin-bottom: 0.25rem;
  padding: 0.5rem;
}

.empty-title {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.empty-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .empty-title {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
}

.empty-desc {
  max-width: 24rem;
  font-size: 0.75rem;
  line-height: 1rem;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.empty-desc:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .empty-desc {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.tab-panel.active.memories-scroll-area {
  display: block;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.tab-panel.active.memories-scroll-area > * {
  flex-shrink: 0;
}

.memories-scroll-area {
  display: flex;
  min-height: 0px;
  flex: 1 1 0%;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
}

.memories-grid {
  width: 100%;
  padding: 0.75rem;
}

@media (min-width: 640px) {
  .memories-grid {
    padding: 1.25rem;
  }
}

@media (min-width: 1024px) {
  .memories-grid {
    padding: 1.5rem;
  }
}

.memories-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  align-content: start;
}

@media (min-width: 640px) {
  .memories-grid {
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 1.25rem;
    padding: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .memories-grid {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1.5rem;
    padding: 2rem;
  }
}

.memory-card {
  position: relative;
  display: flex;
  flex-shrink: 0;
  cursor: pointer;
  flex-direction: column;
  overflow: hidden;
  border-radius: 1rem;
  border-width: 1px;
  border-color: rgb(226 232 240 / 0.9);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --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);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.memory-card:hover {
  --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);
}

.memory-card:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.memory-thumb-wrapper {
  position: relative;
  width: 100%;
  flex-shrink: 0;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
}

.memory-thumb-wrapper:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
}

.memory-thumb-wrapper {
  aspect-ratio: 4 / 5;
  min-height: 140px;
}

@media (min-width: 640px) {
  .memory-thumb-wrapper {
    aspect-ratio: 3 / 4;
    min-height: 180px;
  }
}

.memory-thumb-wrapper img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 500ms;
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

.memory-card:hover .memory-thumb-wrapper img {
  transform: scale(1.05);
}

.memory-hover-overlay {
  pointer-events: none;
  position: absolute;
  inset: 0px;
  z-index: 10;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
  --tw-gradient-from: rgb(0 0 0 / 0.8) 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);
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / 0.2) var(--tw-gradient-via-position), var(--tw-gradient-to);
  --tw-gradient-to: rgb(0 0 0 / 0.4) var(--tw-gradient-to-position);
  padding: 0.75rem;
  opacity: 0;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.group:hover .memory-hover-overlay {
  opacity: 1;
}

.hover-top-row {
  pointer-events: auto;
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
}

.hover-badge {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  border-radius: 9999px;
  border-width: 1px;
  border-color: rgb(255 255 255 / 0.15);
  background-color: rgb(0 0 0 / 0.4);
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 11px;
  font-weight: 500;
  color: rgb(255 255 255 / 0.95);
  --tw-backdrop-blur: blur(12px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.hover-actions-wrap {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}

.btn-hover-edit {
  display: flex;
  height: 2rem;
  width: 2rem;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  border-width: 1px;
  border-color: rgb(255 255 255 / 0.2);
  background-color: rgb(0 0 0 / 0.5);
  color: rgb(255 255 255 / 0.9);
  --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);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-hover-edit: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));
  --tw-bg-opacity: 1;
  background-color: rgb(0 128 105 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.btn-hover-edit:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(0 168 132 / var(--tw-bg-opacity, 1));
}

.btn-hover-delete {
  display: flex;
  height: 2rem;
  width: 2rem;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  border-width: 1px;
  border-color: rgb(255 255 255 / 0.2);
  background-color: rgb(0 0 0 / 0.5);
  color: rgb(255 255 255 / 0.9);
  --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);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-hover-delete: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));
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.hover-bottom-hint {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  color: rgb(255 255 255 / 0.9);
}

.edit-memory-preview-wrap {
  margin-bottom: 0.5rem;
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.edit-memory-img-box {
  position: relative;
  display: flex;
  height: 13rem;
  width: 100%;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 215 219 / var(--tw-border-opacity, 1));
  background-color: rgb(0 0 0 / 0.2);
}

.edit-memory-img-box:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
}

@media (min-width: 640px) {
  .edit-memory-img-box {
    height: 16rem;
  }
}

.edit-memory-thumb {
  height: 100%;
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.edit-memory-replace-overlay {
  position: absolute;
  inset: 0px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgb(0 0 0 / 0.4);
  padding: 0.75rem;
  opacity: 0;
  --tw-backdrop-blur: blur(2px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.edit-memory-img-box:hover .edit-memory-replace-overlay {
  opacity: 1;
}

.btn-replace-photo-label {
  display: flex;
  cursor: pointer;
  align-items: center;
  gap: 0.375rem;
  border-radius: 0.75rem;
  border-width: 1px;
  border-color: rgb(255 255 255 / 0.2);
  background-color: rgb(255 255 255 / 0.9);
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.875rem;
  padding-right: 0.875rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
  --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);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-replace-photo-label:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.btn-replace-photo-label: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));
}

.btn-replace-photo-label:is(.dark *) {
  background-color: rgb(32 44 51 / 0.9);
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.btn-replace-photo-label:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
}

.edit-memory-filename-hint {
  max-width: 20rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 11px;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.edit-memory-filename-hint:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.memory-meta {
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(241 245 249 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 0.625rem;
}

.memory-meta:is(.dark *) {
  border-color: rgb(42 57 66 / 0.6);
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

@media (min-width: 640px) {
  .memory-meta {
    padding: 0.875rem;
  }
}

.memory-caption-row {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 0.25rem;
}

.memory-caption {
  flex: 1 1 0%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  line-height: 1.375;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.memory-caption:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .memory-caption {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.btn-card-edit {
  display: flex;
  height: 1.5rem;
  width: 1.5rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 0.375rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

@media (min-width: 640px) {
  .btn-card-edit.screen {
    pointer-events: none;
    visibility: hidden;
    --tw-scale-x: 0.99;
    --tw-scale-y: 0.99;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    opacity: 0;
  }

  .btn-card-edit.badge-count {
    display: none;
  }

  .btn-card-edit
  .tab-panel {
    display: none;
  }

  .btn-card-edit.chat-selection-bar {
    display: none;
  }

  .btn-card-edit.modal-overlay {
    display: none;
  }

  .btn-card-edit.modal-lightbox {
    display: none;
  }

  .btn-card-edit.incoming-call-overlay,.btn-card-edit .call-overlay {
    display: none;
  }

  .btn-card-edit.app-toast {
    display: none;
  }
}

.btn-card-edit:hover {
  background-color: rgb(0 0 0 / 0.05);
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.btn-card-edit:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.btn-card-edit:hover:is(.dark *) {
  background-color: rgb(255 255 255 / 0.05);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .btn-card-edit {
    display: none;
  }
}

.memory-date-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 10px;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.memory-date-row:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .memory-date-row {
    font-size: 11px;
  }
}

.memory-date {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.memory-tag {
  flex-shrink: 0;
  border-radius: 0.375rem;
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1));
  padding-left: 0.375rem;
  padding-right: 0.375rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-size: 9px;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(71 85 105 / var(--tw-text-opacity, 1));
}

.memory-tag:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .memory-tag {
    font-size: 10px;
  }
}

.add-memory-card-dashed {
  display: flex;
  flex-shrink: 0;
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 1rem;
  border-width: 2px;
  border-style: dashed;
  --tw-border-opacity: 1;
  border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));
  background-color: rgb(255 255 255 / 0.6);
  padding: 0.75rem;
  text-align: center;
  --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);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.add-memory-card-dashed:hover {
  --tw-border-opacity: 1;
  border-color: rgb(0 128 105 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --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);
}

.add-memory-card-dashed:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  background-color: rgb(32 44 51 / 0.4);
}

.add-memory-card-dashed:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(0 168 132 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

@media (min-width: 640px) {
  .add-memory-card-dashed {
    gap: 0.75rem;
    padding: 1.5rem;
  }
}

.add-memory-card-dashed {
  aspect-ratio: 4 / 5;
  min-height: 140px;
}

@media (min-width: 640px) {
  .add-memory-card-dashed {
    aspect-ratio: 3 / 4;
    min-height: 180px;
  }
}

.add-memory-icon {
  display: flex;
  height: 2.5rem;
  width: 2.5rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background-color: rgb(0 128 105 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
  --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);
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.group:hover .add-memory-icon {
  --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));
}

.add-memory-icon:is(.dark *) {
  background-color: rgb(0 168 132 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .add-memory-icon {
    height: 3.5rem;
    width: 3.5rem;
  }
}

.add-memory-title {
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  line-height: 1.25;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
  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;
}

.group:hover .add-memory-title {
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.add-memory-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.group:hover .add-memory-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .add-memory-title {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.screen.add-memory-sub {
  pointer-events: none;
  visibility: hidden;
  --tw-scale-x: 0.99;
  --tw-scale-y: 0.99;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  opacity: 0;
}

.badge-count.add-memory-sub {
  display: none;
}


  .tab-panel.add-memory-sub {
  display: none;
}

.chat-selection-bar.add-memory-sub {
  display: none;
}

.modal-overlay.add-memory-sub {
  display: none;
}

.modal-lightbox.add-memory-sub {
  display: none;
}

.incoming-call-overlay.add-memory-sub, .call-overlay.add-memory-sub {
  display: none;
}

.app-toast.add-memory-sub {
  display: none;
}

.add-memory-sub {
  display: none;
  max-width: 150px;
  font-size: 10px;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.voice-recording-banner.add-memory-sub,
#chat-voice-recording-banner.add-memory-sub {
  display: none;
}

.add-memory-sub:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .add-memory-sub {
    display: block;
    max-width: 180px;
    font-size: 0.75rem;
    line-height: 1rem;
  }
}

/* ================================================= */

/* FOOTER MASGUFRON (ATTRIBUTION & PRIVACY BRAND)    */

/* ================================================= */

.app-credit-footer {
  margin-top: auto;
  display: flex;
  width: 100%;
  flex-shrink: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-top-width: 1px;
  border-color: rgb(226 232 240 / 0.8);
  background-color: transparent;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  text-align: center;
}

.app-credit-footer:is(.dark *) {
  border-color: rgb(34 46 53 / 0.7);
}

@media (min-width: 640px) {
  .app-credit-footer {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
}

.app-credit-footer.auth-footer {
  margin-top: 1rem;
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.app-credit-footer.auth-footer:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
}

.app-credit-footer.menu-footer {
  margin-top: 0.75rem;
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(240 242 245 / var(--tw-border-opacity, 1));
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}

.app-credit-footer.menu-footer:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
}

.footer-inner {
  margin-left: auto;
  margin-right: auto;
  display: flex;
  max-width: 24rem;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}

.footer-heart-badge {
  margin-bottom: 0.125rem;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border-radius: 9999px;
  border-width: 1px;
  border-color: rgb(0 128 105 / 0.2);
  background-color: rgb(0 128 105 / 0.1);
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 11px;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
  --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);
}

.footer-heart-badge:is(.dark *) {
  border-color: rgb(0 168 132 / 0.3);
  background-color: rgb(0 168 132 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .footer-heart-badge {
    font-size: 0.75rem;
    line-height: 1rem;
  }
}

.footer-credit {
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.footer-credit:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .footer-credit {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.footer-credit strong, .footer-author {
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.footer-credit strong:is(.dark *), .footer-author:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.footer-bottom-line {
  margin-top: 0.125rem;
  font-size: 10px;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.footer-bottom-line:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .footer-bottom-line {
    font-size: 11px;
  }
}

.heart-pulse {
  display: inline-block;
  animation: heartPulseAnim 1.8s ease-in-out infinite;
}

@keyframes heartPulseAnim {
  0%, 100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.22);
  }
}

.notes-textarea {
  flex: 1 1 0%;
  resize: none;
  --tw-bg-opacity: 1;
  background-color: rgb(252 253 253 / var(--tw-bg-opacity, 1));
  padding: 1.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.notes-textarea:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.notes-textarea:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(11 20 26 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .notes-textarea {
    padding: 1.5rem;
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

/* Dropzone in Upload Modal */

.upload-dropzone {
  display: flex;
  cursor: pointer;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 1rem;
  border-width: 2px;
  border-style: dashed;
  --tw-border-opacity: 1;
  border-color: rgb(209 215 219 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding: 1.5rem;
  text-align: center;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.upload-dropzone:hover {
  --tw-border-opacity: 1;
  border-color: rgb(0 128 105 / var(--tw-border-opacity, 1));
}

.upload-dropzone:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.upload-dropzone:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(0 168 132 / var(--tw-border-opacity, 1));
}

.file-input-hidden {
  display: none !important;
}

.dropzone-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.375rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.dropzone-content:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.dropzone-icon {
  margin-bottom: 0.25rem;
  display: flex;
  height: 3rem;
  width: 3rem;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background-color: rgb(0 128 105 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.dropzone-icon:is(.dark *) {
  background-color: rgb(0 168 132 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.dropzone-title {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.dropzone-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.image-preview-element {
  margin-left: auto;
  margin-right: auto;
  max-height: 12rem;
  border-radius: 0.75rem;
  -o-object-fit: contain;
     object-fit: contain;
}

/* ================================================= */

/* 6. MODALS, LIGHTBOX, FILE VIEWER, PROFILE MENU    */

/* ================================================= */

.modal-overlay {
  position: fixed;
  inset: 0px;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgb(0 0 0 / 0.6);
  padding: 1rem;
  --tw-backdrop-blur: blur(4px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.modal-overlay:is(.dark *) {
  background-color: rgb(0 0 0 / 0.75);
}

.modal-overlay.hidden {
  display: none !important;
}

.tab-panel.active.modal-card {
  display: block;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.tab-panel.active.modal-card > * {
  flex-shrink: 0;
}

.modal-card {
  position: relative;
  max-height: 90vh;
  width: 100%;
  max-width: 28rem;
  overflow-y: auto;
  border-radius: 1rem;
  border-width: 1px;
  border-color: rgb(255 228 230 / 0.7);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
  --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);
}

.modal-card:is(.dark *) {
  border-color: rgb(136 19 55 / 0.3);
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .modal-card {
    padding: 1.5rem;
  }
}

.modal-header {
  margin-bottom: 0.875rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
  padding-bottom: 0.875rem;
}

.modal-header:is(.dark *) {
  border-color: rgb(31 41 55 / 0.8);
}

.modal-title {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.modal-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .modal-title {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
}

.modal-close {
  display: flex;
  height: 2rem;
  width: 2rem;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  font-size: 1.25rem;
  line-height: 1.75rem;
  line-height: 1;
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.modal-close:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}

.modal-close:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}

.modal-body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}

.modal-footer {
  margin-top: 0.875rem;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.625rem;
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
  padding-top: 0.875rem;
}

.modal-footer:is(.dark *) {
  border-color: rgb(31 41 55 / 0.8);
}

.modal-desc {
  font-size: 0.75rem;
  line-height: 1rem;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.modal-desc:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.modal-confirm-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
  text-align: center;
}

.logout-icon-circle {
  margin-bottom: 0.25rem;
  display: flex;
  height: 3.5rem;
  width: 3.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background-color: rgb(244 63 94 / 0.1);
  font-size: 1.5rem;
  line-height: 2rem;
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}

.modal-confirm-actions {
  margin-top: 0.75rem;
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.btn-danger-accent {
  border-radius: 0.75rem;
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  padding-left: 1rem;
  padding-right: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  --tw-shadow-color: rgb(225 29 72 / 0.25);
  --tw-shadow: var(--tw-shadow-colored);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-danger-accent:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(244 63 94 / var(--tw-bg-opacity, 1));
}

.btn-ghost {
  cursor: pointer;
  border-radius: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-ghost:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(233 237 239 / var(--tw-bg-opacity, 1));
}

.btn-ghost:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.btn-ghost:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

/* Lightbox */

.modal-lightbox {
  position: fixed;
  inset: 0px;
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: rgb(0 0 0 / 0.9);
  padding: 1rem;
  --tw-backdrop-blur: blur(12px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.modal-lightbox.hidden {
  display: none !important;
}

.lightbox-close {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  z-index: 50;
  cursor: pointer;
  padding: 0.5rem;
  font-size: 1.875rem;
  line-height: 2.25rem;
  line-height: 1;
  color: rgb(255 255 255 / 0.8);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.lightbox-close:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.lightbox-content {
  position: relative;
  display: flex;
  max-height: 80vh;
  max-width: 56rem;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.lightbox-content img {
  max-height: 75vh;
  max-width: 100%;
  border-radius: 0.75rem;
  -o-object-fit: contain;
     object-fit: contain;
  --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);
}

.lightbox-caption-bar {
  margin-top: 0.75rem;
  max-width: 36rem;
  text-align: center;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: rgb(255 255 255 / 0.9);
}

.lightbox-meta {
  margin-top: 0.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  color: rgb(255 255 255 / 0.6);
}

.lightbox-date {
  font-size: 0.75rem;
  line-height: 1rem;
}

.lightbox-actions-toolbar {
  margin-top: 1rem;
  display: flex;
  max-width: 100%;
  align-items: center;
  gap: 0.5rem;
  overflow-x: auto;
  border-radius: 1rem;
  border-width: 1px;
  border-color: rgb(255 255 255 / 0.15);
  background-color: rgb(0 0 0 / 0.7);
  padding: 0.375rem;
  --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);
  --tw-backdrop-blur: blur(12px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.lightbox-actions-toolbar::-webkit-scrollbar {
  display: none;
}

.btn-lightbox-tool {
  display: flex;
  min-height: 40px;
  flex-shrink: 0;
  cursor: pointer;
  align-items: center;
  gap: 0.375rem;
  border-radius: 0.75rem;
  padding-left: 0.875rem;
  padding-right: 0.875rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  color: rgb(255 255 255 / 0.9);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-lightbox-tool:hover {
  background-color: rgb(255 255 255 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

/* File Viewer */

.file-viewer-card {
  width: 100%;
  max-width: 28rem;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.5rem;
  --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);
}

.file-viewer-card:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
}

.file-viewer-body {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  text-align: center;
}

.file-icon-large {
  margin-bottom: 0.25rem;
  display: flex;
  height: 4rem;
  width: 4rem;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background-color: rgb(0 128 105 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.file-icon-large:is(.dark *) {
  background-color: rgb(0 168 132 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.file-ext-badge {
  border-radius: 0.375rem;
  background-color: rgb(0 128 105 / 0.2);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.file-ext-badge:is(.dark *) {
  background-color: rgb(0 168 132 / 0.2);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.fv-file-name {
  max-width: 20rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.fv-file-name:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.fv-meta-grid {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
}

.fv-meta-grid:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.fv-meta-item {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.fv-meta-label {
  font-size: 10px;
  text-transform: uppercase;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.fv-meta-label:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.fv-meta-value {
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.fv-meta-value:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.fv-caption {
  font-size: 0.75rem;
  line-height: 1rem;
  font-style: italic;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.fv-caption:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.file-viewer-actions {
  margin-top: 0.5rem;
  display: flex;
  width: 100%;
  flex-direction: column;
  gap: 0.5rem;
}

.fv-secondary-actions {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

/* Profile Menu Modal */

.profile-menu-card {
  width: 100%;
  max-width: 24rem;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.25rem;
  --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);
}

.profile-menu-card:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
}

.profile-menu-user-banner {
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.875rem;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding: 0.875rem;
}

.profile-menu-user-banner:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.menu-avatar-wrap {
  height: 3rem;
  width: 3rem;
  flex-shrink: 0;
  overflow: hidden;
  border-radius: 9999px;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 215 219 / var(--tw-border-opacity, 1));
}

.menu-avatar-wrap:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
}

.menu-user-info {
  display: flex;
  min-width: 0px;
  flex-direction: column;
}

.menu-user-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.menu-user-name:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.menu-user-avatar-img {
  height: 3rem;
  width: 3rem;
  flex-shrink: 0;
  border-radius: 9999px;
  -o-object-fit: cover;
     object-fit: cover;
}

.menu-user-role {
  margin-top: 0.125rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}

.menu-user-role:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.menu-options-list {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}

.menu-option-item {
  display: flex;
  width: 100%;
  cursor: pointer;
  align-items: center;
  gap: 0.875rem;
  border-radius: 0.75rem;
  border-width: 1px;
  border-color: transparent;
  padding: 0.75rem;
  text-align: left;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.menu-option-item:hover {
  border-color: rgb(255 228 230 / 0.6);
  background-color: rgb(255 241 242 / 0.5);
}

.menu-option-item:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.menu-option-item:hover:is(.dark *) {
  border-color: rgb(136 19 55 / 0.3);
  background-color: rgb(76 5 25 / 0.2);
}

@media (min-width: 640px) {
  .menu-option-item {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.menu-option-icon {
  display: flex;
  height: 2.5rem;
  width: 2.5rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(255 228 230 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
  --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);
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.menu-option-icon:is(.dark *) {
  border-color: rgb(136 19 55 / 0.4);
  background-color: rgb(76 5 25 / 0.4);
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.menu-option-item:hover .menu-option-icon {
  --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));
}

.menu-option-text {
  display: flex;
  min-width: 0px;
  flex: 1 1 0%;
  flex-direction: column;
  text-align: left;
}

.option-title {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.option-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.option-sub {
  margin-top: 0.125rem;
  font-size: 11px;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.option-sub:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.menu-arrow {
  margin-left: auto;
  flex-shrink: 0;
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.menu-arrow:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.menu-option-item:hover .menu-arrow {
  --tw-translate-x: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.theme-option-icon {
  --tw-border-opacity: 1;
  border-color: rgb(254 243 199 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}

.theme-option-icon:is(.dark *) {
  border-color: rgb(146 64 14 / 0.4);
  background-color: rgb(69 26 3 / 0.4);
}

.theme-pill-badge {
  margin-left: auto;
  flex-shrink: 0;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(233 237 239 / var(--tw-bg-opacity, 1));
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.theme-pill-badge:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.menu-option-danger .danger-icon {
  --tw-border-opacity: 1;
  border-color: rgb(255 228 230 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}

.menu-option-danger .danger-icon:is(.dark *) {
  border-color: rgb(159 18 57 / 0.4);
  background-color: rgb(76 5 25 / 0.4);
}

.menu-option-danger {
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}

.menu-option-danger:hover {
  --tw-border-opacity: 1;
  border-color: rgb(254 205 211 / var(--tw-border-opacity, 1));
  background-color: rgb(255 241 242 / 0.7);
}

.menu-option-danger:hover:is(.dark *) {
  border-color: rgb(136 19 55 / 0.4);
  background-color: rgb(76 5 25 / 0.3);
}

.menu-option-danger .option-title {
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}

.menu-option-danger .option-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

/* ================================================= */

/* 7. WEBRTC CALL OVERLAYS & CONTROLS                */

/* ================================================= */

/* INCOMING CALL OVERLAY & CARD                      */

/* ================================================= */

.incoming-call-overlay, .call-overlay {
  position: fixed;
  inset: 0px;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgb(2 6 23 / 0.9);
  padding: 1rem;
  --tw-backdrop-blur: blur(24px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.incoming-call-overlay.hidden, .call-overlay.hidden {
  display: none !important;
}

.incoming-call-card {
  position: relative;
  display: flex;
  width: 100%;
  max-width: 340px;
  flex-direction: column;
  align-items: center;
  overflow: hidden;
  border-radius: 2.5rem;
  border-width: 1px;
  border-color: rgb(255 255 255 / 0.15);
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
  --tw-gradient-from: #182229 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(24 34 41 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: rgb(17 27 33 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #111b21 var(--tw-gradient-via-position), var(--tw-gradient-to);
  --tw-gradient-to: #0b141a var(--tw-gradient-to-position);
  padding: 1.75rem;
  text-align: center;
  --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);
  --tw-shadow-color: rgb(0 0 0 / 0.9);
  --tw-shadow: var(--tw-shadow-colored);
}

@media (min-width: 640px) {
  .incoming-call-card {
    max-width: 380px;
    padding: 2rem;
  }
}

.incoming-call-card {
  animation: scaleInCallModal 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes scaleInCallModal {
  from {
    opacity: 0;
    transform: scale(0.92) translateY(12px);
  }

  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.incoming-ambient-glow {
  pointer-events: none;
  position: absolute;
  top: -4rem;
  left: 50%;
  height: 14rem;
  width: 14rem;
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  border-radius: 9999px;
  background-color: rgb(0 168 132 / 0.25);
  --tw-blur: blur(64px);
  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);
}

.call-privacy-tag {
  position: relative;
  z-index: 10;
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.375rem;
  border-radius: 9999px;
  border-width: 1px;
  border-color: rgb(255 255 255 / 0.1);
  background-color: rgb(255 255 255 / 0.05);
  padding-left: 0.875rem;
  padding-right: 0.875rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 11px;
  font-weight: 500;
  color: rgb(255 255 255 / 0.7);
}

.call-radar-animation {
  position: relative;
  z-index: 10;
  margin-bottom: 0.75rem;
  display: flex;
  height: 9rem;
  width: 9rem;
  align-items: center;
  justify-content: center;
}

@media (min-width: 640px) {
  .call-radar-animation {
    height: 10rem;
    width: 10rem;
  }
}

.radar-circle {
  pointer-events: none;
  position: absolute;
  inset: 0px;
  border-radius: 9999px;
  border-width: 1px;
  border-color: rgb(0 168 132 / 0.4);
  background-color: rgb(0 168 132 / 0.05);
  animation: radarPulse 2.5s infinite ease-in-out;
}

.circle-1 {
  animation-delay: 0s;
}

.circle-2 {
  animation-delay: 0.8s;
}

.circle-3 {
  animation-delay: 1.6s;
}

.caller-avatar-wrapper {
  position: relative;
  z-index: 10;
  height: 6rem;
  width: 6rem;
  border-radius: 9999px;
  background-image: linear-gradient(to top right, var(--tw-gradient-stops));
  --tw-gradient-from: #00a884 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 168 132 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: rgb(52 211 153 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #34d399 var(--tw-gradient-via-position), var(--tw-gradient-to);
  --tw-gradient-to: #25d366 var(--tw-gradient-to-position);
  padding: 0.25rem;
  --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);
  --tw-shadow-color: rgb(0 168 132 / 0.3);
  --tw-shadow: var(--tw-shadow-colored);
}

@media (min-width: 640px) {
  .caller-avatar-wrapper {
    height: 7rem;
    width: 7rem;
  }
}

.caller-avatar-photo {
  height: 100%;
  width: 100%;
  border-radius: 9999px;
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(17 27 33 / var(--tw-border-opacity, 1));
  -o-object-fit: cover;
     object-fit: cover;
}

.caller-meta-wrap {
  position: relative;
  z-index: 10;
  margin-bottom: 1.75rem;
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
}

.incoming-caller-title {
  font-size: 1.25rem;
  line-height: 1.75rem;
  font-weight: 800;
  letter-spacing: -0.025em;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

@media (min-width: 640px) {
  .incoming-caller-title {
    font-size: 1.5rem;
    line-height: 2rem;
  }
}

.incoming-status-row {
  margin-top: 0.25rem;
  margin-bottom: 0.625rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  color: rgb(255 255 255 / 0.8);
}

.incoming-ping-dot {
  height: 0.5rem;
  width: 0.5rem;
}

@keyframes ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}

.incoming-ping-dot {
  animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(37 211 102 / var(--tw-bg-opacity, 1));
}

.incoming-status-text {
  color: rgb(255 255 255 / 0.8);
}

.incoming-type-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border-radius: 9999px;
  border-width: 1px;
  border-color: rgb(0 168 132 / 0.4);
  background-color: rgb(0 168 132 / 0.2);
  padding-left: 0.875rem;
  padding-right: 0.875rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
  --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);
}

.incoming-type-pill:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(37 211 102 / var(--tw-text-opacity, 1));
}

.incoming-actions-grid {
  position: relative;
  z-index: 10;
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
}

.action-btn-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.btn-call-action {
  display: flex;
  height: 4rem;
  width: 4rem;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  font-size: 1.5rem;
  line-height: 2rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.btn-call-action.btn-reject {
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / 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);
  --tw-shadow-color: rgb(225 29 72 / 0.4);
  --tw-shadow: var(--tw-shadow-colored);
}

.btn-call-action.btn-reject:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(244 63 94 / var(--tw-bg-opacity, 1));
}

.btn-call-action.btn-reject:active {
  --tw-scale-x: .9;
  --tw-scale-y: .9;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.btn-call-action.btn-accept {
  animation: bounceSubtle 1.8s infinite ease-in-out;
  --tw-bg-opacity: 1;
  background-color: rgb(0 168 132 / 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);
  --tw-shadow-color: rgb(0 168 132 / 0.4);
  --tw-shadow: var(--tw-shadow-colored);
}

.btn-call-action.btn-accept:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(0 155 120 / var(--tw-bg-opacity, 1));
}

.btn-call-action.btn-accept:active {
  --tw-scale-x: .9;
  --tw-scale-y: .9;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

@keyframes bounceSubtle {
  0%, 100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-4px);
  }
}

.action-btn-label {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  letter-spacing: 0.025em;
}

.action-btn-label.label-reject {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.action-btn-label.label-accept {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}

.remote-video {
  position: absolute;
  inset: 0px;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.local-video-box {
  position: absolute;
  bottom: 6rem;
  right: 1.5rem;
  z-index: 20;
  height: 10rem;
  width: 7rem;
  overflow: hidden;
  border-radius: 1rem;
  border-width: 2px;
  border-color: rgb(255 255 255 / 0.4);
  --tw-bg-opacity: 1;
  background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
  --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);
}

@media (min-width: 640px) {
  .local-video-box {
    height: 12rem;
    width: 9rem;
  }
}

.local-video {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.local-badge {
  position: absolute;
  bottom: 0.25rem;
  left: 0.5rem;
  border-radius: 0.25rem;
  background-color: rgb(0 0 0 / 0.6);
  padding-left: 0.375rem;
  padding-right: 0.375rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-size: 9px;
  color: rgb(255 255 255 / 0.8);
}

.call-header-overlay {
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
  top: 1.5rem;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.call-partner-info {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.call-partner-meta {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.call-partner-name {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

@media (min-width: 640px) {
  .call-partner-name {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

.call-status-label {
  font-size: 11px;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}

.call-status-label.calling {
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / var(--tw-text-opacity, 1));
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}

.call-status-label.ringing {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}

.call-status-label.connected {
  color: rgb(255 255 255 / 0.7);
}

.call-dot-live {
  height: 0.625rem;
  width: 0.625rem;
  flex-shrink: 0;
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}

.call-dot-live {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1));
}

.call-dot-live.calling {
  --tw-bg-opacity: 1;
  background-color: rgb(251 191 36 / var(--tw-bg-opacity, 1));
}

.call-timer {
  border-radius: 0.375rem;
  border-width: 1px;
  border-color: rgb(255 255 255 / 0.1);
  background-color: rgb(0 0 0 / 0.3);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 0.75rem;
  line-height: 1rem;
  color: rgb(255 255 255 / 0.9);
  --tw-backdrop-blur: blur(4px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.notif-option-icon {
  background-color: rgb(0 128 105 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.notif-option-icon:is(.dark *) {
  background-color: rgb(0 168 132 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.install-option-icon {
  background-color: rgb(14 165 233 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(2 132 199 / var(--tw-text-opacity, 1));
}

.install-option-icon:is(.dark *) {
  background-color: rgb(14 165 233 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(56 189 248 / var(--tw-text-opacity, 1));
}

.pwa-badge {
  background-color: rgb(0 128 105 / 0.1);
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.pwa-badge:is(.dark *) {
  background-color: rgb(0 168 132 / 0.2);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.call-encryption-badge {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  border-radius: 9999px;
  border-width: 1px;
  border-color: rgb(255 255 255 / 0.1);
  background-color: rgb(255 255 255 / 0.1);
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 10px;
  color: rgb(255 255 255 / 0.6);
}

.call-controls-bar {
  position: absolute;
  left: 1.5rem;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
}

.call-ctrl-btn {
  display: flex;
  height: 3rem;
  width: 3rem;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background-color: rgb(255 255 255 / 0.2);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --tw-backdrop-blur: blur(12px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.call-ctrl-btn:hover {
  background-color: rgb(255 255 255 / 0.3);
}

.btn-hangup {
  height: 3.5rem;
  width: 3.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
}

.btn-hangup:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(190 18 60 / var(--tw-bg-opacity, 1));
}

/* Toast */

.app-toast {
  pointer-events: none;
  position: fixed;
  bottom: 1.5rem;
  left: 50%;
  z-index: 50;
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  border-radius: 9999px;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
  background-color: rgb(17 27 33 / 0.95);
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  --tw-backdrop-blur: blur(12px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.app-toast:is(.dark *) {
  background-color: rgb(32 44 51 / 0.95);
}

@media (min-width: 640px) {
  .app-toast {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.app-toast.hidden {
  display: none !important;
}

/* Call Log Bubbles in Chat */

.bubble-call {
  max-width: 24rem;
  padding: 0.375rem;
}

.bubble-call-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  border-radius: 1rem;
  border-width: 1px;
  border-color: rgb(0 0 0 / 0.05);
  padding: 0.75rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.bubble-call-card:is(.dark *) {
  border-color: rgb(255 255 255 / 0.05);
}

.bubble-call-card.status-accepted {
  border-color: rgb(16 185 129 / 0.2);
  background-color: rgb(16 185 129 / 0.1);
}

.bubble-call-card.status-missed {
  border-color: rgb(244 63 94 / 0.2);
  background-color: rgb(244 63 94 / 0.1);
}

.bubble-call-card.status-rejected {
  border-color: rgb(245 158 11 / 0.2);
  background-color: rgb(245 158 11 / 0.1);
}

.call-card-icon-wrap {
  display: flex;
  height: 2.5rem;
  width: 2.5rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
}

.call-card-icon-wrap.accepted {
  background-color: rgb(37 211 102 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(37 211 102 / var(--tw-text-opacity, 1));
}

.call-card-icon-wrap.missed {
  background-color: rgb(244 63 94 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}

.call-card-details {
  display: flex;
  min-width: 0px;
  flex: 1 1 0%;
  flex-direction: column;
  gap: 0.125rem;
}

.call-card-title {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  line-height: 1.25;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.call-card-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .call-card-title {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.call-arrow {
  flex-shrink: 0;
}

.call-card-sub {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.call-card-sub:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.btn-callback {
  display: flex;
  flex-shrink: 0;
  cursor: pointer;
  align-items: center;
  gap: 0.375rem;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(0 128 105 / var(--tw-bg-opacity, 1));
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-callback:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(0 168 132 / var(--tw-bg-opacity, 1));
}

.btn-callback: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));
}

.btn-callback:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(0 168 132 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.btn-callback:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(0 168 132 / var(--tw-bg-opacity, 1));
}

/* Featured Menu Option */

.menu-option-featured {
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(254 205 211 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
}

.menu-option-featured:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1));
}

.menu-option-featured:is(.dark *) {
  border-color: rgb(136 19 55 / 0.4);
  background-color: rgb(76 5 25 / 0.2);
}

.menu-option-featured:hover:is(.dark *) {
  background-color: rgb(76 5 25 / 0.4);
}

.featured-heart-icon {
  background-color: rgb(244 63 94 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}

/* Avatar Preview Modal */

.avatar-preview-card {
  display: flex;
  width: 100%;
  max-width: 24rem;
  flex-direction: column;
  gap: 1rem;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 1.25rem;
  --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);
}

.avatar-preview-card:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

@media (min-width: 640px) {
  .avatar-preview-card {
    max-width: 28rem;
  }
}

.avatar-preview-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.avatar-preview-badge {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.avatar-preview-badge:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.avatar-preview-title {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.avatar-preview-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .avatar-preview-title {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
}

.avatar-preview-switcher {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 1rem;
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding: 0.25rem;
}

.avatar-preview-switcher:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
}

.avatar-switch-btn {
  display: flex;
  flex: 1 1 0%;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.avatar-switch-btn:hover {
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.avatar-switch-btn:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.avatar-switch-btn:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.avatar-switch-btn.active {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
  --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);
}

.avatar-switch-btn.active:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.avatar-switch-thumb {
  height: 1.25rem;
  width: 1.25rem;
  border-radius: 9999px;
  -o-object-fit: cover;
     object-fit: cover;
}

.avatar-preview-frame {
  display: flex;
  aspect-ratio: 1 / 1;
  width: 100%;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 1rem;
  border-width: 1px;
  border-color: rgb(0 0 0 / 0.05);
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
  --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);
}

.avatar-preview-frame:is(.dark *) {
  border-color: rgb(255 255 255 / 0.1);
}

.avatar-preview-photo {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.avatar-preview-photo:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.avatar-preview-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.avatar-preview-footer:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.avatar-preview-meta {
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.avatar-preview-meta:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

/* Couple Relationship Profile Modal */

.couple-profile-card {
  display: flex;
  max-height: 90vh;
  width: 100%;
  max-width: 42rem;
  flex-direction: column;
  overflow: hidden;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --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);
}

.couple-profile-card:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.couple-profile-header {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  padding: 1rem;
}

.couple-profile-header:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
}

@media (min-width: 640px) {
  .couple-profile-header {
    padding: 1.25rem;
  }
}

.couple-profile-title-wrap {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.profile-header-icon {
  display: flex;
  height: 2.5rem;
  width: 2.5rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background-color: rgb(244 63 94 / 0.1);
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}

.couple-profile-title {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 700;
  line-height: 1.25;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.couple-profile-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .couple-profile-title {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
}

.couple-profile-sub {
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.couple-profile-sub:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.profile-user-switcher {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.75rem;
}

@media (min-width: 640px) {
  .profile-user-switcher {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: 1rem;
  }
}

.btn-switch-user {
  display: flex;
  flex: 1 1 0%;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  border-radius: 0.75rem;
  border-width: 2px;
  border-color: transparent;
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-switch-user:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .btn-switch-user {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
    padding-left: 1rem;
    padding-right: 1rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.btn-switch-user.active {
  --tw-border-opacity: 1;
  border-color: rgb(251 113 133 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
  --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);
}

.btn-switch-user.active:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(225 29 72 / var(--tw-border-opacity, 1));
  background-color: rgb(76 5 25 / 0.3);
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.switch-user-avatar {
  height: 1.5rem;
  width: 1.5rem;
  border-radius: 9999px;
  -o-object-fit: cover;
     object-fit: cover;
}

.profile-hero-card {
  margin-left: 1rem;
  margin-right: 1rem;
  margin-top: 0.75rem;
  display: flex;
  flex-shrink: 0;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  border-radius: 1rem;
  border-width: 1px;
  border-color: rgb(253 164 175 / 0.4);
  padding: 0.875rem;
}

.profile-hero-card:is(.dark *) {
  border-color: rgb(136 19 55 / 0.4);
}

@media (min-width: 640px) {
  .profile-hero-card {
    margin-left: 1.25rem;
    margin-right: 1.25rem;
    margin-top: 1rem;
    flex-direction: row;
    align-items: center;
    padding: 1rem;
  }
}

.profile-hero-card {
  background: linear-gradient(135deg, rgba(244, 63, 94, 0.08) 0%, rgba(147, 51, 234, 0.05) 50%, rgba(20, 184, 166, 0.08) 100%);
}

.profile-hero-left {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
}

@media (min-width: 640px) {
  .profile-hero-left {
    align-items: center;
  }
}

.profile-hero-avatar-wrap {
  position: relative;
  height: 3.5rem;
  width: 3.5rem;
  flex-shrink: 0;
  cursor: pointer;
  overflow: hidden;
  border-radius: 1rem;
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
  --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);
}

.profile-hero-avatar-wrap:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
}

@media (min-width: 640px) {
  .profile-hero-avatar-wrap {
    height: 4rem;
    width: 4rem;
  }
}

.profile-hero-avatar-img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.profile-hero-avatar-wrap:hover .profile-hero-avatar-img {
  transform: scale(1.08);
}

.profile-hero-zoom-badge {
  position: absolute;
  inset: 0px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgb(0 0 0 / 0.4);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  opacity: 0;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.profile-hero-avatar-wrap:hover .profile-hero-zoom-badge {
  opacity: 1;
}

.profile-hero-identity {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.profile-name-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.profile-hero-name {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.profile-hero-name:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .profile-hero-name {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

.profile-petname-pill {
  border-radius: 9999px;
  background-color: rgb(244 63 94 / 0.15);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}

.profile-petname-pill:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.profile-badge-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
}

.profile-tag {
  border-radius: 0.375rem;
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-size: 11px;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.profile-tag:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.profile-hero-bio {
  max-width: 28rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-style: italic;
  --tw-text-opacity: 1;
  color: rgb(59 74 84 / var(--tw-text-opacity, 1));
}

.profile-hero-bio:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(209 215 219 / var(--tw-text-opacity, 1));
}

.profile-hero-actions {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.5rem;
}

.profile-section-nav {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.375rem;
  overflow-x: auto;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}

.profile-section-nav:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
}

@media (min-width: 640px) {
  .profile-section-nav {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }
}

.profile-section-nav {
  scrollbar-width: none;
}

.profile-section-nav::-webkit-scrollbar {
  display: none;
}

.profile-nav-tab {
  cursor: pointer;
  white-space: nowrap;
  border-radius: 9999px;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.profile-nav-tab:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
}

.profile-nav-tab:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.profile-nav-tab:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
}

.profile-nav-tab.active {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #f43f5e var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #ec4899 var(--tw-gradient-to-position);
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
}

.profile-nav-tab.tab-sensitive {
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}

.profile-nav-tab.tab-sensitive:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.profile-nav-tab.tab-locked {
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}

.profile-nav-tab.tab-locked:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}

.profile-sublevel-nav {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.375rem;
  overflow-x: auto;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(248 249 250 / var(--tw-bg-opacity, 1));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.profile-sublevel-nav:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  background-color: rgb(17 27 33 / 0.6);
}

@media (min-width: 640px) {
  .profile-sublevel-nav {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
}

.profile-sublevel-nav {
  scrollbar-width: none;
}

.profile-sublevel-nav::-webkit-scrollbar {
  display: none;
}

.sublevel-pill {
  cursor: pointer;
  white-space: nowrap;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 11px;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.sublevel-pill:hover {
  --tw-border-opacity: 1;
  border-color: rgb(0 128 105 / var(--tw-border-opacity, 1));
}

.sublevel-pill:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.sublevel-pill:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(0 168 132 / var(--tw-border-opacity, 1));
}

.sublevel-pill.active {
  --tw-border-opacity: 1;
  border-color: rgb(253 164 175 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
  --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);
}

.sublevel-pill.active:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(159 18 57 / var(--tw-border-opacity, 1));
  background-color: rgb(76 5 25 / 0.3);
  --tw-text-opacity: 1;
  color: rgb(253 164 175 / var(--tw-text-opacity, 1));
}

.tab-panel.active.profile-content-area {
  display: block;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.tab-panel.active.profile-content-area > * {
  flex-shrink: 0;
}

.profile-content-area {
  flex: 1 1 0%;
}

.profile-content-area > :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));
}

.profile-content-area {
  overflow-y: auto;
  padding: 1rem;
}

@media (min-width: 640px) {
  .profile-content-area {
    padding: 1.25rem;
  }
}

.profile-section-heading {
  margin-bottom: 1rem;
  border-bottom-width: 1px;
  border-color: rgb(233 237 239 / 0.8);
  padding-bottom: 0.5rem;
}

.profile-section-heading:is(.dark *) {
  border-color: rgb(42 57 66 / 0.8);
}

.pillar-title-row {
  margin-bottom: 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.pillar-icon-badge {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding: 0.375rem;
  font-size: 1.25rem;
  line-height: 1.75rem;
  --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);
}

.pillar-icon-badge:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.section-title-text {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.section-title-text:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .section-title-text {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

.section-subtitle-text {
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.section-subtitle-text:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.private-zone-banner {
  margin-bottom: 1rem;
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  border-radius: 0.75rem;
  border-width: 1px;
  border-color: rgb(245 158 11 / 0.25);
  background-color: rgb(245 158 11 / 0.1);
  padding: 0.875rem;
  font-size: 0.75rem;
  line-height: 1rem;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}

.private-zone-banner:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .private-zone-banner {
    align-items: center;
  }
}

.locked-zone-shield {
  margin-top: 1rem;
  margin-bottom: 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  border-width: 1px;
  border-color: rgb(245 158 11 / 0.3);
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
  --tw-gradient-from: rgb(245 158 11 / 0.1) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to);
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
  padding: 2rem;
  text-align: center;
}

.locked-icon-aura {
  margin-bottom: 0.75rem;
  display: flex;
  height: 4rem;
  width: 4rem;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background-color: rgb(245 158 11 / 0.2);
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
  --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);
}

.locked-icon-aura:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}

.locked-shield-title {
  margin-bottom: 0.375rem;
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.locked-shield-title:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.locked-shield-desc {
  margin-bottom: 1rem;
  max-width: 28rem;
  font-size: 0.75rem;
  line-height: 1rem;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.locked-shield-desc:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.btn-unlock-zone {
  display: flex;
  cursor: pointer;
  align-items: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  --tw-bg-opacity: 1;
  background-color: rgb(217 119 6 / var(--tw-bg-opacity, 1));
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-unlock-zone:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(180 83 9 / var(--tw-bg-opacity, 1));
}

.profile-level-block {
  margin-bottom: 1.5rem;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  background-color: rgb(255 255 255 / 0.7);
  padding: 1rem;
  --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);
}

.profile-level-block:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  background-color: rgb(17 27 33 / 0.7);
}

.level-block-header {
  margin-bottom: 0.25rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.level-header-left {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.level-badge-number {
  border-radius: 0.375rem;
  background-color: rgb(0 128 105 / 0.1);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-size: 11px;
  font-weight: 800;
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.level-badge-number:is(.dark *) {
  background-color: rgb(0 168 132 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.level-title-text {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.level-title-text:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .level-title-text {
    font-size: 1rem;
    line-height: 1.5rem;
  }
}

.badge-optional {
  display: inline-block;
  border-radius: 0.25rem;
  background-color: rgb(107 114 128 / 0.15);
  padding-left: 0.375rem;
  padding-right: 0.375rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-size: 10px;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}

.badge-optional:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.level-desc-text {
  margin-bottom: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.level-desc-text:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.privacy-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  border-radius: 9999px;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.privacy-badge-couple {
  border-width: 1px;
  border-color: rgb(16 185 129 / 0.2);
  background-color: rgb(16 185 129 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(4 120 87 / var(--tw-text-opacity, 1));
}

.privacy-badge-couple:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}

.privacy-badge-self {
  border-width: 1px;
  border-color: rgb(59 130 246 / 0.2);
  background-color: rgb(59 130 246 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}

.privacy-badge-self:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}

.privacy-badge-private {
  border-width: 1px;
  border-color: rgb(244 63 94 / 0.2);
  background-color: rgb(244 63 94 / 0.15);
  --tw-text-opacity: 1;
  color: rgb(190 18 60 / var(--tw-text-opacity, 1));
}

.privacy-badge-private:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.privacy-badge-locked {
  border-width: 1px;
  border-color: rgb(245 158 11 / 0.3);
  background-color: rgb(245 158 11 / 0.2);
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}

.privacy-badge-locked:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / var(--tw-text-opacity, 1));
}

.profile-cards-grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 0.75rem;
}

@media (min-width: 640px) {
  .profile-cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.profile-info-card {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
  padding: 0.875rem;
}

.profile-info-card:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

@media (min-width: 640px) {
  .profile-info-card.full-span {
    grid-column: span 2 / span 2;
  }
}

.info-card-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.info-card-label:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.info-card-value {
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.info-card-value:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .info-card-value {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.info-card-value.is-empty {
  font-size: 0.75rem;
  line-height: 1rem;
  font-style: italic;
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.info-quote-box {
  margin-top: 0.125rem;
  margin-bottom: 0.125rem;
  white-space: pre-line;
  border-left-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(251 113 133 / var(--tw-border-opacity, 1));
  padding-left: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-style: italic;
  --tw-text-opacity: 1;
  color: rgb(59 74 84 / var(--tw-text-opacity, 1));
}

.info-quote-box:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(244 63 94 / var(--tw-border-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(209 215 219 / var(--tw-text-opacity, 1));
}

@media (min-width: 640px) {
  .info-quote-box {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

.profile-edit-level-section {
  margin-bottom: 1.5rem;
  border-bottom-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
  padding-bottom: 1.25rem;
}

.profile-edit-level-section:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(42 57 66 / var(--tw-border-opacity, 1));
}

.edit-level-title-row {
  margin-bottom: 0.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.edit-level-heading {
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 27 33 / var(--tw-text-opacity, 1));
}

.edit-level-heading:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(233 237 239 / var(--tw-text-opacity, 1));
}

.edit-level-desc {
  margin-bottom: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(102 119 129 / var(--tw-text-opacity, 1));
}

.edit-level-desc:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(134 150 160 / var(--tw-text-opacity, 1));
}

.profile-edit-grid {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 0.875rem;
}

@media (min-width: 640px) {
  .profile-edit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.profile-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

@media (min-width: 640px) {
  .profile-form-group.full-span {
    grid-column: span 2 / span 2;
  }
}

.pointer-events-none {
  pointer-events: none;
}

.pointer-events-auto {
  pointer-events: auto;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.inset-0 {
  inset: 0px;
}

.-bottom-6 {
  bottom: -1.5rem;
}

.-right-6 {
  right: -1.5rem;
}

.left-1\/2 {
  left: 50%;
}

.right-4 {
  right: 1rem;
}

.top-4 {
  top: 1rem;
}

.z-0 {
  z-index: 0;
}

.z-10 {
  z-index: 10;
}

.z-50 {
  z-index: 50;
}

.z-\[99999\] {
  z-index: 99999;
}

.z-\[9999\] {
  z-index: 9999;
}

.col-span-2 {
  grid-column: span 2 / span 2;
}

.col-span-full {
  grid-column: 1 / -1;
}

.row-span-2 {
  grid-row: span 2 / span 2;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.my-1 {
  margin-top: 0.25rem;
  margin-bottom: 0.25rem;
}

.my-1\.5 {
  margin-top: 0.375rem;
  margin-bottom: 0.375rem;
}

.my-3 {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}

.mb-0\.5 {
  margin-bottom: 0.125rem;
}

.mb-1 {
  margin-bottom: 0.25rem;
}

.mb-1\.5 {
  margin-bottom: 0.375rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.mb-3 {
  margin-bottom: 0.75rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.ml-1 {
  margin-left: 0.25rem;
}

.ml-2 {
  margin-left: 0.5rem;
}

.ml-auto {
  margin-left: auto;
}

.mr-1 {
  margin-right: 0.25rem;
}

.mr-auto {
  margin-right: auto;
}

.mt-0 {
  margin-top: 0px;
}

.mt-0\.5 {
  margin-top: 0.125rem;
}

.mt-1 {
  margin-top: 0.25rem;
}

.mt-2 {
  margin-top: 0.5rem;
}

.mt-3 {
  margin-top: 0.75rem;
}

.mt-4 {
  margin-top: 1rem;
}

.mt-6 {
  margin-top: 1.5rem;
}

.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.block {
  display: block;
}

.inline-block {
  display: inline-block;
}

.inline {
  display: inline;
}

.flex {
  display: flex;
}

.inline-flex {
  display: inline-flex;
}

.table {
  display: table;
}

.grid {
  display: grid;
}

.hidden {
  display: none;
}

.aspect-square {
  aspect-ratio: 1 / 1;
}

.\!h-8 {
  height: 2rem !important;
}

.h-1 {
  height: 0.25rem;
}

.h-1\.5 {
  height: 0.375rem;
}

.h-10 {
  height: 2.5rem;
}

.h-11 {
  height: 2.75rem;
}

.h-12 {
  height: 3rem;
}

.h-14 {
  height: 3.5rem;
}

.h-16 {
  height: 4rem;
}

.h-2\.5 {
  height: 0.625rem;
}

.h-3 {
  height: 0.75rem;
}

.h-3\.5 {
  height: 0.875rem;
}

.h-4 {
  height: 1rem;
}

.h-44 {
  height: 11rem;
}

.h-6 {
  height: 1.5rem;
}

.h-7 {
  height: 1.75rem;
}

.h-8 {
  height: 2rem;
}

.h-9 {
  height: 2.25rem;
}

.h-full {
  height: 100%;
}

.max-h-\[60vh\] {
  max-height: 60vh;
}

.max-h-\[75vh\] {
  max-height: 75vh;
}

.max-h-\[80vh\] {
  max-height: 80vh;
}

.max-h-\[85vh\] {
  max-height: 85vh;
}

.max-h-\[90vh\] {
  max-height: 90vh;
}

.min-h-\[140px\] {
  min-height: 140px;
}

.min-h-\[160px\] {
  min-height: 160px;
}

.\!w-8 {
  width: 2rem !important;
}

.w-0 {
  width: 0px;
}

.w-1\.5 {
  width: 0.375rem;
}

.w-10 {
  width: 2.5rem;
}

.w-11 {
  width: 2.75rem;
}

.w-12 {
  width: 3rem;
}

.w-14 {
  width: 3.5rem;
}

.w-16 {
  width: 4rem;
}

.w-3 {
  width: 0.75rem;
}

.w-3\.5 {
  width: 0.875rem;
}

.w-44 {
  width: 11rem;
}

.w-6 {
  width: 1.5rem;
}

.w-7 {
  width: 1.75rem;
}

.w-8 {
  width: 2rem;
}

.w-9 {
  width: 2.25rem;
}

.w-full {
  width: 100%;
}

.min-w-0 {
  min-width: 0px;
}

.min-w-\[190px\] {
  min-width: 190px;
}

.max-w-\[110px\] {
  max-width: 110px;
}

.max-w-\[140px\] {
  max-width: 140px;
}

.max-w-full {
  max-width: 100%;
}

.max-w-lg {
  max-width: 32rem;
}

.max-w-md {
  max-width: 28rem;
}

.max-w-sm {
  max-width: 24rem;
}

.max-w-xs {
  max-width: 20rem;
}

.flex-1 {
  flex: 1 1 0%;
}

.flex-\[2\] {
  flex: 2;
}

.shrink {
  flex-shrink: 1;
}

.shrink-0 {
  flex-shrink: 0;
}

.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

@keyframes 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;
}

.cursor-crosshair {
  cursor: crosshair;
}

.cursor-pointer {
  cursor: pointer;
}

.touch-none {
  touch-action: none;
}

.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.resize {
  resize: both;
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.items-start {
  align-items: flex-start;
}

.items-center {
  align-items: center;
}

.items-stretch {
  align-items: stretch;
}

.justify-end {
  justify-content: flex-end;
}

.justify-center {
  justify-content: center;
}

.justify-between {
  justify-content: space-between;
}

.gap-0\.5 {
  gap: 0.125rem;
}

.gap-1 {
  gap: 0.25rem;
}

.gap-1\.5 {
  gap: 0.375rem;
}

.gap-2 {
  gap: 0.5rem;
}

.gap-2\.5 {
  gap: 0.625rem;
}

.gap-3 {
  gap: 0.75rem;
}

.gap-3\.5 {
  gap: 0.875rem;
}

.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-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

.space-y-2\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}

.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}

.space-y-3\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.875rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.875rem * 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));
}

.overflow-hidden {
  overflow: hidden;
}

.overflow-x-auto {
  overflow-x: auto;
}

.overflow-y-auto {
  overflow-y: auto;
}

.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.whitespace-nowrap {
  white-space: nowrap;
}

.whitespace-pre-wrap {
  white-space: pre-wrap;
}

.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-xl {
  border-radius: 0.75rem;
}

.border {
  border-width: 1px;
}

.border-2 {
  border-width: 2px;
}

.border-b {
  border-bottom-width: 1px;
}

.border-l-2 {
  border-left-width: 2px;
}

.border-t {
  border-top-width: 1px;
}

.border-dashed {
  border-style: dashed;
}

.border-\[\#e8dfd8\] {
  --tw-border-opacity: 1;
  border-color: rgb(232 223 216 / var(--tw-border-opacity, 1));
}

.border-\[\#e9edef\] {
  --tw-border-opacity: 1;
  border-color: rgb(233 237 239 / var(--tw-border-opacity, 1));
}

.border-amber-200 {
  --tw-border-opacity: 1;
  border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}

.border-amber-300 {
  --tw-border-opacity: 1;
  border-color: rgb(252 211 77 / var(--tw-border-opacity, 1));
}

.border-amber-500\/30 {
  border-color: rgb(245 158 11 / 0.3);
}

.border-blue-100 {
  --tw-border-opacity: 1;
  border-color: rgb(219 234 254 / var(--tw-border-opacity, 1));
}

.border-blue-100\/60 {
  border-color: rgb(219 234 254 / 0.6);
}

.border-blue-200 {
  --tw-border-opacity: 1;
  border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}

.border-blue-200\/80 {
  border-color: rgb(191 219 254 / 0.8);
}

.border-blue-400 {
  --tw-border-opacity: 1;
  border-color: rgb(96 165 250 / var(--tw-border-opacity, 1));
}

.border-emerald-300 {
  --tw-border-opacity: 1;
  border-color: rgb(110 231 183 / var(--tw-border-opacity, 1));
}

.border-emerald-500\/30 {
  border-color: rgb(16 185 129 / 0.3);
}

.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-200\/50 {
  border-color: rgb(229 231 235 / 0.5);
}

.border-gray-200\/60 {
  border-color: rgb(229 231 235 / 0.6);
}

.border-gray-200\/70 {
  border-color: rgb(229 231 235 / 0.7);
}

.border-gray-200\/80 {
  border-color: rgb(229 231 235 / 0.8);
}

.border-gray-300 {
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}

.border-gray-800 {
  --tw-border-opacity: 1;
  border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));
}

.border-gray-800\/80 {
  border-color: rgb(31 41 55 / 0.8);
}

.border-indigo-300 {
  --tw-border-opacity: 1;
  border-color: rgb(165 180 252 / var(--tw-border-opacity, 1));
}

.border-pink-300 {
  --tw-border-opacity: 1;
  border-color: rgb(249 168 212 / var(--tw-border-opacity, 1));
}

.border-purple-300 {
  --tw-border-opacity: 1;
  border-color: rgb(216 180 254 / var(--tw-border-opacity, 1));
}

.border-rose-100 {
  --tw-border-opacity: 1;
  border-color: rgb(255 228 230 / var(--tw-border-opacity, 1));
}

.border-rose-200 {
  --tw-border-opacity: 1;
  border-color: rgb(254 205 211 / var(--tw-border-opacity, 1));
}

.border-rose-200\/50 {
  border-color: rgb(254 205 211 / 0.5);
}

.border-rose-200\/60 {
  border-color: rgb(254 205 211 / 0.6);
}

.border-rose-200\/70 {
  border-color: rgb(254 205 211 / 0.7);
}

.border-rose-200\/80 {
  border-color: rgb(254 205 211 / 0.8);
}

.border-rose-300 {
  --tw-border-opacity: 1;
  border-color: rgb(253 164 175 / var(--tw-border-opacity, 1));
}

.border-rose-300\/40 {
  border-color: rgb(253 164 175 / 0.4);
}

.border-rose-400 {
  --tw-border-opacity: 1;
  border-color: rgb(251 113 133 / var(--tw-border-opacity, 1));
}

.border-rose-400\/30 {
  border-color: rgb(251 113 133 / 0.3);
}

.border-rose-400\/80 {
  border-color: rgb(251 113 133 / 0.8);
}

.border-rose-500\/50 {
  border-color: rgb(244 63 94 / 0.5);
}

.border-rose-600 {
  --tw-border-opacity: 1;
  border-color: rgb(225 29 72 / var(--tw-border-opacity, 1));
}

.border-rose-800\/50 {
  border-color: rgb(159 18 57 / 0.5);
}

.border-sky-300 {
  --tw-border-opacity: 1;
  border-color: rgb(125 211 252 / var(--tw-border-opacity, 1));
}

.border-transparent {
  border-color: transparent;
}

.border-white {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}

.border-white\/10 {
  border-color: rgb(255 255 255 / 0.1);
}

.border-white\/20 {
  border-color: rgb(255 255 255 / 0.2);
}

.bg-\[\#008069\] {
  --tw-bg-opacity: 1;
  background-color: rgb(0 128 105 / var(--tw-bg-opacity, 1));
}

.bg-\[\#008069\]\/15 {
  background-color: rgb(0 128 105 / 0.15);
}

.bg-\[\#17171c\] {
  --tw-bg-opacity: 1;
  background-color: rgb(23 23 28 / var(--tw-bg-opacity, 1));
}

.bg-\[\#22222a\] {
  --tw-bg-opacity: 1;
  background-color: rgb(34 34 42 / var(--tw-bg-opacity, 1));
}

.bg-\[\#2c2c36\] {
  --tw-bg-opacity: 1;
  background-color: rgb(44 44 54 / var(--tw-bg-opacity, 1));
}

.bg-\[\#e9edef\] {
  --tw-bg-opacity: 1;
  background-color: rgb(233 237 239 / var(--tw-bg-opacity, 1));
}

.bg-\[\#efeae2\]\/30 {
  background-color: rgb(239 234 226 / 0.3);
}

.bg-\[\#f0f2f5\] {
  --tw-bg-opacity: 1;
  background-color: rgb(240 242 245 / var(--tw-bg-opacity, 1));
}

.bg-\[\#fcf9f5\] {
  --tw-bg-opacity: 1;
  background-color: rgb(252 249 245 / var(--tw-bg-opacity, 1));
}

.bg-\[\#fdfaf6\] {
  --tw-bg-opacity: 1;
  background-color: rgb(253 250 246 / var(--tw-bg-opacity, 1));
}

.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\/40 {
  background-color: rgb(255 251 235 / 0.4);
}

.bg-amber-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}

.bg-amber-500\/10 {
  background-color: rgb(245 158 11 / 0.1);
}

.bg-black\/15 {
  background-color: rgb(0 0 0 / 0.15);
}

.bg-black\/20 {
  background-color: rgb(0 0 0 / 0.2);
}

.bg-black\/25 {
  background-color: rgb(0 0 0 / 0.25);
}

.bg-black\/60 {
  background-color: rgb(0 0 0 / 0.6);
}

.bg-black\/70 {
  background-color: rgb(0 0 0 / 0.7);
}

.bg-black\/75 {
  background-color: rgb(0 0 0 / 0.75);
}

.bg-black\/95 {
  background-color: rgb(0 0 0 / 0.95);
}

.bg-blue-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}

.bg-blue-200\/70 {
  background-color: rgb(191 219 254 / 0.7);
}

.bg-blue-50\/60 {
  background-color: rgb(239 246 255 / 0.6);
}

.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-blue-600\/80 {
  background-color: rgb(37 99 235 / 0.8);
}

.bg-emerald-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(209 250 229 / var(--tw-bg-opacity, 1));
}

.bg-emerald-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(52 211 153 / 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-500\/20 {
  background-color: rgb(16 185 129 / 0.2);
}

.bg-emerald-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(5 150 105 / 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-50\/50 {
  background-color: rgb(249 250 251 / 0.5);
}

.bg-gray-50\/60 {
  background-color: rgb(249 250 251 / 0.6);
}

.bg-gray-50\/90 {
  background-color: rgb(249 250 251 / 0.9);
}

.bg-gray-700\/60 {
  background-color: rgb(55 65 81 / 0.6);
}

.bg-gray-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / 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-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(238 242 255 / var(--tw-bg-opacity, 1));
}

.bg-pink-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(252 231 243 / var(--tw-bg-opacity, 1));
}

.bg-pink-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 242 248 / 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\/60 {
  background-color: rgb(250 245 255 / 0.6);
}

.bg-rose-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1));
}

.bg-rose-200\/70 {
  background-color: rgb(254 205 211 / 0.7);
}

.bg-rose-400 {
  --tw-bg-opacity: 1;
  background-color: rgb(251 113 133 / var(--tw-bg-opacity, 1));
}

.bg-rose-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
}

.bg-rose-50\/30 {
  background-color: rgb(255 241 242 / 0.3);
}

.bg-rose-50\/40 {
  background-color: rgb(255 241 242 / 0.4);
}

.bg-rose-50\/50 {
  background-color: rgb(255 241 242 / 0.5);
}

.bg-rose-50\/60 {
  background-color: rgb(255 241 242 / 0.6);
}

.bg-rose-50\/70 {
  background-color: rgb(255 241 242 / 0.7);
}

.bg-rose-50\/95 {
  background-color: rgb(255 241 242 / 0.95);
}

.bg-rose-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(244 63 94 / var(--tw-bg-opacity, 1));
}

.bg-rose-500\/10 {
  background-color: rgb(244 63 94 / 0.1);
}

.bg-rose-500\/15 {
  background-color: rgb(244 63 94 / 0.15);
}

.bg-rose-500\/20 {
  background-color: rgb(244 63 94 / 0.2);
}

.bg-rose-500\/80 {
  background-color: rgb(244 63 94 / 0.8);
}

.bg-rose-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
}

.bg-rose-600\/80 {
  background-color: rgb(225 29 72 / 0.8);
}

.bg-rose-600\/90 {
  background-color: rgb(225 29 72 / 0.9);
}

.bg-sky-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(224 242 254 / var(--tw-bg-opacity, 1));
}

.bg-teal-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 250 / var(--tw-bg-opacity, 1));
}

.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.bg-white\/10 {
  background-color: rgb(255 255 255 / 0.1);
}

.bg-white\/20 {
  background-color: rgb(255 255 255 / 0.2);
}

.bg-white\/50 {
  background-color: rgb(255 255 255 / 0.5);
}

.bg-white\/70 {
  background-color: rgb(255 255 255 / 0.7);
}

.bg-white\/80 {
  background-color: rgb(255 255 255 / 0.8);
}

.bg-white\/85 {
  background-color: rgb(255 255 255 / 0.85);
}

.bg-white\/95 {
  background-color: rgb(255 255 255 / 0.95);
}

.bg-gradient-to-b {
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}

.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}

.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}

.bg-gradient-to-t {
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
}

.bg-gradient-to-tr {
  background-image: linear-gradient(to top right, var(--tw-gradient-stops));
}

.from-black\/70 {
  --tw-gradient-from: rgb(0 0 0 / 0.7) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-black\/90 {
  --tw-gradient-from: rgb(0 0 0 / 0.9) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-blue-500 {
  --tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-blue-600 {
  --tw-gradient-from: #2563eb var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-rose-500 {
  --tw-gradient-from: #f43f5e var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-rose-500\/10 {
  --tw-gradient-from: rgb(244 63 94 / 0.1) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-rose-500\/15 {
  --tw-gradient-from: rgb(244 63 94 / 0.15) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-rose-950 {
  --tw-gradient-from: #4c0519 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(76 5 25 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.via-black\/60 {
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / 0.6) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-pink-500 {
  --tw-gradient-to: rgb(236 72 153 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #ec4899 var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-pink-500\/5 {
  --tw-gradient-to: rgb(236 72 153 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(236 72 153 / 0.05) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.to-amber-500\/15 {
  --tw-gradient-to: rgb(245 158 11 / 0.15) var(--tw-gradient-to-position);
}

.to-indigo-500 {
  --tw-gradient-to: #6366f1 var(--tw-gradient-to-position);
}

.to-indigo-600 {
  --tw-gradient-to: #4f46e5 var(--tw-gradient-to-position);
}

.to-pink-500 {
  --tw-gradient-to: #ec4899 var(--tw-gradient-to-position);
}

.to-purple-500\/10 {
  --tw-gradient-to: rgb(168 85 247 / 0.1) var(--tw-gradient-to-position);
}

.to-purple-600 {
  --tw-gradient-to: #9333ea var(--tw-gradient-to-position);
}

.to-purple-950 {
  --tw-gradient-to: #3b0764 var(--tw-gradient-to-position);
}

.to-rose-600 {
  --tw-gradient-to: #e11d48 var(--tw-gradient-to-position);
}

.to-transparent {
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}

.object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}

.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}

.\!p-1\.5 {
  padding: 0.375rem !important;
}

.p-0\.5 {
  padding: 0.125rem;
}

.p-1 {
  padding: 0.25rem;
}

.p-1\.5 {
  padding: 0.375rem;
}

.p-2 {
  padding: 0.5rem;
}

.p-2\.5 {
  padding: 0.625rem;
}

.p-3 {
  padding: 0.75rem;
}

.p-3\.5 {
  padding: 0.875rem;
}

.p-4 {
  padding: 1rem;
}

.p-5 {
  padding: 1.25rem;
}

.p-6 {
  padding: 1.5rem;
}

.p-8 {
  padding: 2rem;
}

.px-0\.5 {
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}

.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}

.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}

.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}

.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}

.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-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}

.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.pb-1 {
  padding-bottom: 0.25rem;
}

.pb-10 {
  padding-bottom: 2.5rem;
}

.pb-12 {
  padding-bottom: 3rem;
}

.pb-3 {
  padding-bottom: 0.75rem;
}

.pl-1 {
  padding-left: 0.25rem;
}

.pl-2 {
  padding-left: 0.5rem;
}

.pr-1 {
  padding-right: 0.25rem;
}

.pt-0\.5 {
  padding-top: 0.125rem;
}

.pt-1 {
  padding-top: 0.25rem;
}

.pt-2 {
  padding-top: 0.5rem;
}

.pt-3 {
  padding-top: 0.75rem;
}

.pt-4 {
  padding-top: 1rem;
}

.pt-5 {
  padding-top: 1.25rem;
}

.text-left {
  text-align: left;
}

.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.font-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.font-serif {
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
}

.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}

.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-\[10px\] {
  font-size: 10px;
}

.text-\[11px\] {
  font-size: 11px;
}

.text-\[9px\] {
  font-size: 9px;
}

.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}

.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.font-black {
  font-weight: 900;
}

.font-bold {
  font-weight: 700;
}

.font-extrabold {
  font-weight: 800;
}

.font-medium {
  font-weight: 500;
}

.font-semibold {
  font-weight: 600;
}

.uppercase {
  text-transform: uppercase;
}

.capitalize {
  text-transform: capitalize;
}

.italic {
  font-style: italic;
}

.leading-relaxed {
  line-height: 1.625;
}

.leading-snug {
  line-height: 1.375;
}

.leading-tight {
  line-height: 1.25;
}

.tracking-tight {
  letter-spacing: -0.025em;
}

.tracking-wider {
  letter-spacing: 0.05em;
}

.tracking-widest {
  letter-spacing: 0.1em;
}

.text-\[\#008069\] {
  --tw-text-opacity: 1;
  color: rgb(0 128 105 / var(--tw-text-opacity, 1));
}

.text-\[\#2c2420\] {
  --tw-text-opacity: 1;
  color: rgb(44 36 32 / var(--tw-text-opacity, 1));
}

.text-\[\#3b322c\] {
  --tw-text-opacity: 1;
  color: rgb(59 50 44 / var(--tw-text-opacity, 1));
}

.text-\[\#5c4f46\] {
  --tw-text-opacity: 1;
  color: rgb(92 79 70 / var(--tw-text-opacity, 1));
}

.text-\[\#8c7e75\] {
  --tw-text-opacity: 1;
  color: rgb(140 126 117 / var(--tw-text-opacity, 1));
}

.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-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-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-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-indigo-500 {
  --tw-text-opacity: 1;
  color: rgb(99 102 241 / 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-orange-500 {
  --tw-text-opacity: 1;
  color: rgb(249 115 22 / var(--tw-text-opacity, 1));
}

.text-pink-500 {
  --tw-text-opacity: 1;
  color: rgb(236 72 153 / var(--tw-text-opacity, 1));
}

.text-pink-600 {
  --tw-text-opacity: 1;
  color: rgb(219 39 119 / var(--tw-text-opacity, 1));
}

.text-pink-700 {
  --tw-text-opacity: 1;
  color: rgb(190 24 93 / 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-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}

.text-rose-100 {
  --tw-text-opacity: 1;
  color: rgb(255 228 230 / var(--tw-text-opacity, 1));
}

.text-rose-200 {
  --tw-text-opacity: 1;
  color: rgb(254 205 211 / var(--tw-text-opacity, 1));
}

.text-rose-200\/90 {
  color: rgb(254 205 211 / 0.9);
}

.text-rose-300 {
  --tw-text-opacity: 1;
  color: rgb(253 164 175 / var(--tw-text-opacity, 1));
}

.text-rose-400 {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.text-rose-500 {
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / 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-rose-800 {
  --tw-text-opacity: 1;
  color: rgb(159 18 57 / var(--tw-text-opacity, 1));
}

.text-sky-700 {
  --tw-text-opacity: 1;
  color: rgb(3 105 161 / var(--tw-text-opacity, 1));
}

.text-teal-600 {
  --tw-text-opacity: 1;
  color: rgb(13 148 136 / var(--tw-text-opacity, 1));
}

.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.text-white\/40 {
  color: rgb(255 255 255 / 0.4);
}

.placeholder-gray-400::-moz-placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(156 163 175 / var(--tw-placeholder-opacity, 1));
}

.placeholder-gray-400::placeholder {
  --tw-placeholder-opacity: 1;
  color: rgb(156 163 175 / var(--tw-placeholder-opacity, 1));
}

.opacity-0 {
  opacity: 0;
}

.opacity-75 {
  opacity: 0.75;
}

.opacity-90 {
  opacity: 0.9;
}

.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-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-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-xl {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-rose-500\/20 {
  --tw-shadow-color: rgb(244 63 94 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}

.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-rose-400 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(251 113 133 / var(--tw-ring-opacity, 1));
}

.ring-rose-400\/40 {
  --tw-ring-color: rgb(251 113 133 / 0.4);
}

.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.blur-2xl {
  --tw-blur: blur(40px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.blur-md {
  --tw-blur: blur(12px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.drop-shadow {
  --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.drop-shadow-sm {
  --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.backdrop-blur {
  --tw-backdrop-blur: blur(8px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.backdrop-blur-md {
  --tw-backdrop-blur: blur(12px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.backdrop-blur-xl {
  --tw-backdrop-blur: blur(24px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-all {
  transition-property: all;
  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-200 {
  transition-duration: 200ms;
}

.duration-300 {
  transition-duration: 300ms;
}

.duration-500 {
  transition-duration: 500ms;
}

/* Custom Scrollbar */

::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(209 215 219 / var(--tw-bg-opacity, 1));
}

:is(.dark *)::-webkit-scrollbar-thumb {
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
}

::-webkit-scrollbar-thumb:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(102 119 129 / var(--tw-bg-opacity, 1));
}

:is(.dark *)::-webkit-scrollbar-thumb:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(134 150 160 / var(--tw-bg-opacity, 1));
}

@keyframes typingBounce {
  0%, 80%, 100% {
    transform: scale(0);
    opacity: 0.4;
  }

  40% {
    transform: scale(1);
    opacity: 1;
  }
}

.animate-typing-dot {
  animation: typingBounce 1.4s infinite ease-in-out both;
}

@keyframes radarPulse {
  0% {
    transform: scale(0.95);
    opacity: 0.8;
  }

  50% {
    transform: scale(1.18);
    opacity: 0.2;
  }

  100% {
    transform: scale(0.95);
    opacity: 0.8;
  }
}

.animate-radar {
  animation: radarPulse 2.5s infinite ease-in-out;
}

/* ================================================= */

/* 7. ROMANTIC LOADER & SPLASH SCREEN                */

/* ================================================= */

.app-romantic-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 35%, #122822 0%, #0b141a 70%, #05090c 100%);
  color: #e9edef;
  overflow: hidden;
  transition: opacity 0.75s cubic-bezier(0.4, 0, 0.2, 1), transform 0.75s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.75s;
  pointer-events: auto;
}

[data-theme="light"] .app-romantic-loader {
  background: radial-gradient(circle at 50% 35%, #e8f9f3 0%, #edf4f1 65%, #e2ece7 100%);
  color: #111b21;
}

.app-romantic-loader.loader-closing {
  opacity: 0;
  transform: scale(1.05);
  pointer-events: none;
}

.app-romantic-loader.loader-hidden {
  display: none !important;
}

/* Ambient Radial Glows */

.loader-ambient-glow {
  position: absolute;
  border-radius: 9999px;
  filter: blur(80px);
  pointer-events: none;
  opacity: 0.5;
  animation: glowFloat 6s ease-in-out infinite alternate;
}

.loader-ambient-glow.glow-1 {
  width: 300px;
  height: 300px;
  background: #00a884;
  top: 15%;
  left: 20%;
}

.loader-ambient-glow.glow-2 {
  width: 260px;
  height: 260px;
  background: #f43f5e;
  bottom: 20%;
  right: 20%;
  animation-delay: -3s;
}

@keyframes glowFloat {
  0% {
    transform: translate(0, 0) scale(1);
  }

  100% {
    transform: translate(25px, 20px) scale(1.2);
  }
}

/* Floating Hearts Background */

.floating-hearts-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.floating-heart {
  position: absolute;
  font-size: 1.25rem;
  opacity: 0;
  animation: floatUpLove 5s cubic-bezier(0.2, 0.8, 0.2, 1) infinite;
}

.fh-1 {
  left: 18%;
  bottom: -10%;
  animation-delay: 0.2s;
  font-size: 1.1rem;
}

.fh-2 {
  left: 32%;
  bottom: -10%;
  animation-delay: 1.5s;
  font-size: 0.9rem;
}

.fh-3 {
  left: 52%;
  bottom: -10%;
  animation-delay: 0.8s;
  font-size: 1.3rem;
}

.fh-4 {
  left: 70%;
  bottom: -10%;
  animation-delay: 2.2s;
  font-size: 1rem;
}

.fh-5 {
  left: 82%;
  bottom: -10%;
  animation-delay: 1.0s;
  font-size: 0.85rem;
}

.fh-6 {
  left: 40%;
  bottom: -10%;
  animation-delay: 2.8s;
  font-size: 1.2rem;
}

@keyframes floatUpLove {
  0% {
    transform: translateY(0) scale(0.6) rotate(-10deg);
    opacity: 0;
  }

  20% {
    opacity: 0.85;
  }

  80% {
    opacity: 0.65;
  }

  100% {
    transform: translateY(-120vh) scale(1.2) rotate(15deg);
    opacity: 0;
  }
}

/* Central Content Wrap */

.loader-content-wrap {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.5rem;
  max-width: 380px;
  animation: loaderContentEntrance 0.9s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes loaderContentEntrance {
  0% {
    opacity: 0;
    transform: scale(0.9) translateY(18px);
  }

  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

/* Logo Ring & Heart Badge */

.loader-logo-ring {
  position: relative;
  width: 108px;
  height: 108px;
  border-radius: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
}

.loader-logo-pulse-aura {
  position: absolute;
  inset: -10px;
  border-radius: 2.5rem;
  background: radial-gradient(circle, rgba(0, 168, 132, 0.45) 0%, rgba(244, 63, 94, 0.2) 65%, transparent 100%);
  animation: romanticAuraPulse 2.2s ease-in-out infinite;
  z-index: 1;
}

@keyframes romanticAuraPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 0.6;
  }

  50% {
    transform: scale(1.18);
    opacity: 1;
  }
}

.loader-logo-img {
  width: 96px;
  height: 96px;
  border-radius: 1.8rem;
  -o-object-fit: cover;
     object-fit: cover;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3);
  position: relative;
  z-index: 2;
  border: 2px solid rgba(255, 255, 255, 0.35);
}

.loader-heart-badge {
  position: absolute;
  bottom: -4px;
  right: -4px;
  width: 34px;
  height: 34px;
  border-radius: 9999px;
  background: linear-gradient(135deg, #f43f5e 0%, #e11d48 100%);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(244, 63, 94, 0.55);
  border: 2.5px solid white;
  z-index: 3;
  animation: badgeBeat 1.4s ease-in-out infinite;
}

@keyframes badgeBeat {
  0%, 100% {
    transform: scale(1);
  }

  25% {
    transform: scale(1.18);
  }

  45% {
    transform: scale(0.96);
  }

  60% {
    transform: scale(1.12);
  }
}

/* Typography */

.loader-text-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
}

.loader-app-name {
  font-size: 1.85rem;
  font-weight: 800;
  letter-spacing: -0.025em;
  background: linear-gradient(135deg, #00a884 0%, #25d366 50%, #f43f5e 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 0;
  line-height: 1.15;
}

.loader-couple-names {
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #00a884;
  margin: 0;
}

[data-theme="light"] .loader-couple-names {
  color: #008069;
}

.loader-romantic-quote {
  font-size: 0.8rem;
  color: #8696a0;
  font-style: italic;
  max-width: 280px;
  margin: 0.25rem 0 0 0;
  line-height: 1.4;
}

[data-theme="light"] .loader-romantic-quote {
  color: #54656f;
}

/* Heartbeat Line Animation */

.loader-heartbeat-wrap {
  position: relative;
  width: 140px;
  height: 32px;
  margin-top: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.heartbeat-line-svg {
  width: 100%;
  height: 100%;
  color: #00a884;
  stroke: #00a884;
}

.heartbeat-path {
  stroke-dasharray: 200;
  stroke-dashoffset: 200;
  animation: heartbeatDraw 2.4s ease-in-out infinite;
}

@keyframes heartbeatDraw {
  0% {
    stroke-dashoffset: 200;
    opacity: 0.2;
  }

  50% {
    stroke-dashoffset: 0;
    opacity: 1;
  }

  100% {
    stroke-dashoffset: -200;
    opacity: 0.2;
  }
}

.loader-status-text {
  font-size: 0.75rem;
  color: #8696a0;
  margin-top: 0.5rem;
  font-weight: 500;
  animation: statusFade 1.6s ease-in-out infinite alternate;
}

@keyframes statusFade {
  0% {
    opacity: 0.6;
  }

  100% {
    opacity: 1;
  }
}

/* ================================================= */

/* 20. FITUR ASMARA & INTIM (18+ / KHUSUS BERDUA)    */

/* ================================================= */

.header-vibe-pill {
  display: inline-flex;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  align-items: center;
  gap: 0.375rem;
  border-radius: 9999px;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(254 205 211 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1;
  --tw-text-opacity: 1;
  color: rgb(190 18 60 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.header-vibe-pill:hover {
  background-color: rgb(255 228 230 / 0.7);
}

.header-vibe-pill:is(.dark *) {
  border-color: rgb(136 19 55 / 0.4);
  background-color: rgb(76 5 25 / 0.3);
  --tw-text-opacity: 1;
  color: rgb(253 164 175 / var(--tw-text-opacity, 1));
}

.header-vibe-pill:hover:is(.dark *) {
  background-color: rgb(136 19 55 / 0.4);
}

.intimate-subtab-btn {
  display: inline-flex;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  align-items: center;
  gap: 0.375rem;
  white-space: nowrap;
  border-radius: 0.75rem;
  border-width: 1px;
  border-color: transparent;
  padding-left: 0.875rem;
  padding-right: 0.875rem;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.intimate-subtab-btn:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
}

.intimate-subtab-btn:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}

.intimate-subtab-btn:hover:is(.dark *) {
  background-color: rgb(76 5 25 / 0.3);
}

.intimate-subtab-btn.active {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #f43f5e var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #ec4899 var(--tw-gradient-to-position);
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  --tw-shadow-color: rgb(244 63 94 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}

.fantasy-cat-chip, .coupon-filter-chip {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  white-space: nowrap;
  border-radius: 9999px;
  border-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-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.fantasy-cat-chip:hover, .coupon-filter-chip:hover {
  --tw-border-opacity: 1;
  border-color: rgb(244 63 94 / var(--tw-border-opacity, 1));
}

.fantasy-cat-chip:is(.dark *), .coupon-filter-chip:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}

.fantasy-cat-chip.active, .coupon-filter-chip.active {
  --tw-border-opacity: 1;
  border-color: rgb(244 63 94 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(244 63 94 / var(--tw-bg-opacity, 1));
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
}

.btn-toggle-view-once {
  display: inline-flex;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  align-items: center;
  gap: 0.375rem;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(253 164 175 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-toggle-view-once:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(159 18 57 / var(--tw-border-opacity, 1));
  background-color: rgb(76 5 25 / 0.4);
  --tw-text-opacity: 1;
  color: rgb(253 164 175 / var(--tw-text-opacity, 1));
}

.btn-toggle-view-once.active {
  --tw-border-opacity: 1;
  border-color: rgb(225 29 72 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
  --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);
  --tw-ring-color: rgb(251 113 133 / 0.4);
}

.btn-voice-record {
  flex-shrink: 0;
  border-radius: 9999px;
  padding: 0.625rem;
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-voice-record:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(244 63 94 / var(--tw-text-opacity, 1));
}

.btn-voice-record: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));
}

.btn-voice-record:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.btn-voice-record:hover:is(.dark *) {
  background-color: rgb(76 5 25 / 0.4);
}

.voice-recording-banner {
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(253 164 175 / var(--tw-border-opacity, 1));
  background-color: rgb(244 63 94 / 0.1);
  padding: 0.75rem;
  --tw-backdrop-blur: blur(4px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.voice-recording-banner:is(.dark *) {
  border-color: rgb(159 18 57 / 0.8);
}

.voice-recording-banner.hidden,
#chat-voice-recording-banner.hidden {
  display: none !important;
}

.voice-recording-left {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}

.voice-recording-left:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.recording-pulse-dot {
  height: 0.625rem;
  width: 0.625rem;
}

@keyframes ping {
  75%, 100% {
    transform: scale(2);
    opacity: 0;
  }
}

.recording-pulse-dot {
  animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(244 63 94 / var(--tw-bg-opacity, 1));
}

.recording-timer {
  border-radius: 0.25rem;
  background-color: rgb(244 63 94 / 0.2);
  padding-left: 0.375rem;
  padding-right: 0.375rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(190 18 60 / var(--tw-text-opacity, 1));
}

.recording-timer:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(253 164 175 / var(--tw-text-opacity, 1));
}

.voice-recording-waves {
  display: flex;
  height: 1rem;
  align-items: center;
  gap: 0.25rem;
}

.voice-recording-waves span {
  width: 0.25rem;
}

@keyframes pulse {
  50% {
    opacity: .5;
  }
}

.voice-recording-waves span {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(244 63 94 / var(--tw-bg-opacity, 1));
  height: 60%;
}

.voice-recording-waves span:nth-child(2) {
  height: 100%;
  animation-delay: 0.15s;
}

.voice-recording-waves span:nth-child(3) {
  height: 40%;
  animation-delay: 0.3s;
}

.voice-recording-waves span:nth-child(4) {
  height: 80%;
  animation-delay: 0.45s;
}

.voice-recording-waves span:nth-child(5) {
  height: 50%;
  animation-delay: 0.6s;
}

.voice-recording-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.btn-voice-action {
  border-radius: 0.75rem;
  padding: 0.5rem;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.btn-voice-action: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));
}

.btn-voice-cancel {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}

.btn-voice-cancel:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
}

.btn-voice-cancel:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}

.btn-voice-send {
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
}

.btn-voice-send:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(190 18 60 / var(--tw-bg-opacity, 1));
}

.bubble-view-once-card {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  overflow: hidden;
  border-radius: 1rem;
  border-width: 1px;
  border-color: rgb(254 205 211 / 0.8);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.bubble-view-once-card:is(.dark *) {
  border-color: rgb(136 19 55 / 0.5);
}

.bubble-voice-card {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

/* Vault Filter Chips */

.vault-filter-chip {
  border-radius: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.vault-filter-chip:hover {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}

.vault-filter-chip:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}

.vault-filter-chip:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.vault-filter-chip.active {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
  --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);
}

.vault-filter-chip.active:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(31 44 52 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

/* View Once Duration Selector Chips */

.view-once-duration-chip {
  border-radius: 0.75rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.view-once-duration-chip:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
}

.view-once-duration-chip:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}

.view-once-duration-chip:hover:is(.dark *) {
  background-color: rgb(76 5 25 / 0.4);
}

.view-once-duration-chip.active {
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --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);
}

/* Voice Wave Animation */

.voice-wave-bars {
  display: flex;
  align-items: center;
  gap: 3px;
  height: 18px;
}

.voice-wave-bars .wave-bar {
  width: 3px;
  background: #f43f5e;
  border-radius: 9999px;
  animation: voiceWavePulse 1.2s ease-in-out infinite alternate;
}

.voice-wave-bars .wave-bar:nth-child(1) {
  height: 30%;
  animation-delay: 0.1s;
}

.voice-wave-bars .wave-bar:nth-child(2) {
  height: 70%;
  animation-delay: 0.25s;
}

.voice-wave-bars .wave-bar:nth-child(3) {
  height: 100%;
  animation-delay: 0.4s;
}

.voice-wave-bars .wave-bar:nth-child(4) {
  height: 50%;
  animation-delay: 0.15s;
}

.voice-wave-bars .wave-bar:nth-child(5) {
  height: 90%;
  animation-delay: 0.35s;
}

.voice-wave-bars .wave-bar:nth-child(6) {
  height: 60%;
  animation-delay: 0.2s;
}

.voice-wave-bars .wave-bar:nth-child(7) {
  height: 40%;
  animation-delay: 0.05s;
}

@keyframes voiceWavePulse {
  0% {
    transform: scaleY(0.3);
    opacity: 0.6;
  }

  100% {
    transform: scaleY(1);
    opacity: 1;
  }
}

/* Vault Romantic Parchment Notes */

.vault-parchment-card {
  position: relative;
  background-image: radial-gradient(circle at 10% 20%, rgba(244, 63, 94, 0.03) 0%, transparent 60%);
}

.wax-seal-badge {
  background: radial-gradient(circle at 35% 35%, #f43f5e, #be123c);
  box-shadow: 0 2px 5px rgba(190, 18, 60, 0.35), inset 0 1px 1px rgba(255, 255, 255, 0.4);
}

.placeholder\:text-xs::-moz-placeholder {
  font-size: 0.75rem;
  line-height: 1rem;
}

.placeholder\:text-xs::placeholder {
  font-size: 0.75rem;
  line-height: 1rem;
}

.placeholder\:font-normal::-moz-placeholder {
  font-weight: 400;
}

.placeholder\:font-normal::placeholder {
  font-weight: 400;
}

.placeholder\:tracking-normal::-moz-placeholder {
  letter-spacing: 0em;
}

.placeholder\:tracking-normal::placeholder {
  letter-spacing: 0em;
}

.placeholder\:text-gray-400::-moz-placeholder {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.placeholder\:text-gray-400::placeholder {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.hover\:scale-105:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-125:hover {
  --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));
}

.hover\:border-amber-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(251 191 36 / var(--tw-border-opacity, 1));
}

.hover\:border-blue-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(147 197 253 / var(--tw-border-opacity, 1));
}

.hover\:border-emerald-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(52 211 153 / var(--tw-border-opacity, 1));
}

.hover\:border-indigo-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(129 140 248 / var(--tw-border-opacity, 1));
}

.hover\:border-pink-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(244 114 182 / var(--tw-border-opacity, 1));
}

.hover\:border-rose-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(253 164 175 / var(--tw-border-opacity, 1));
}

.hover\:border-rose-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(251 113 133 / var(--tw-border-opacity, 1));
}

.hover\:border-rose-500:hover {
  --tw-border-opacity: 1;
  border-color: rgb(244 63 94 / var(--tw-border-opacity, 1));
}

.hover\:border-teal-400:hover {
  --tw-border-opacity: 1;
  border-color: rgb(45 212 191 / var(--tw-border-opacity, 1));
}

.hover\:bg-\[\#383845\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(56 56 69 / var(--tw-bg-opacity, 1));
}

.hover\:bg-black\/30:hover {
  background-color: rgb(0 0 0 / 0.3);
}

.hover\:bg-black\/5:hover {
  background-color: rgb(0 0 0 / 0.05);
}

.hover\:bg-black\/80:hover {
  background-color: rgb(0 0 0 / 0.8);
}

.hover\:bg-blue-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}

.hover\:bg-emerald-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(16 185 129 / 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-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
}

.hover\:bg-indigo-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(238 242 255 / 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-rose-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1));
}

.hover\:bg-rose-100\/80:hover {
  background-color: rgb(255 228 230 / 0.8);
}

.hover\:bg-rose-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(254 205 211 / var(--tw-bg-opacity, 1));
}

.hover\:bg-rose-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 241 242 / var(--tw-bg-opacity, 1));
}

.hover\:bg-rose-50\/50:hover {
  background-color: rgb(255 241 242 / 0.5);
}

.hover\:bg-rose-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(225 29 72 / var(--tw-bg-opacity, 1));
}

.hover\:bg-rose-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(190 18 60 / var(--tw-bg-opacity, 1));
}

.hover\:bg-white\/20:hover {
  background-color: rgb(255 255 255 / 0.2);
}

.hover\:bg-white\/30:hover {
  background-color: rgb(255 255 255 / 0.3);
}

.hover\:from-rose-600:hover {
  --tw-gradient-from: #e11d48 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(225 29 72 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:to-pink-600:hover {
  --tw-gradient-to: #db2777 var(--tw-gradient-to-position);
}

.hover\:text-blue-600:hover {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / 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-800:hover {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}

.hover\:text-indigo-600:hover {
  --tw-text-opacity: 1;
  color: rgb(79 70 229 / 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-rose-600:hover {
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}

.hover\:underline:hover {
  text-decoration-line: underline;
}

.hover\:opacity-85:hover {
  opacity: 0.85;
}

.hover\:opacity-95:hover {
  opacity: 0.95;
}

.hover\:shadow:hover {
  --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);
}

.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);
}

.focus\:border-rose-500:focus {
  --tw-border-opacity: 1;
  border-color: rgb(244 63 94 / var(--tw-border-opacity, 1));
}

.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.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-rose-500:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(244 63 94 / 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\:scale-\[0\.99\]:active {
  --tw-scale-x: 0.99;
  --tw-scale-y: 0.99;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\: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));
}

.group:hover .group-hover\: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));
}

.group:hover .group-hover\:text-amber-600 {
  --tw-text-opacity: 1;
  color: rgb(217 119 6 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-emerald-600 {
  --tw-text-opacity: 1;
  color: rgb(5 150 105 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-indigo-600 {
  --tw-text-opacity: 1;
  color: rgb(79 70 229 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-pink-600 {
  --tw-text-opacity: 1;
  color: rgb(219 39 119 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-rose-600 {
  --tw-text-opacity: 1;
  color: rgb(225 29 72 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-teal-600 {
  --tw-text-opacity: 1;
  color: rgb(13 148 136 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:opacity-0 {
  opacity: 0;
}

.group:hover .group-hover\:blur-none {
  --tw-blur:  ;
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.dark\:border-\[\#111b21\]:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(17 27 33 / var(--tw-border-opacity, 1));
}

.dark\:border-\[\#222e35\]:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(34 46 53 / var(--tw-border-opacity, 1));
}

.dark\:border-\[\#38312c\]:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(56 49 44 / var(--tw-border-opacity, 1));
}

.dark\:border-amber-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(146 64 14 / var(--tw-border-opacity, 1));
}

.dark\:border-amber-900\/40:is(.dark *) {
  border-color: rgb(120 53 15 / 0.4);
}

.dark\:border-blue-900:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(30 58 138 / var(--tw-border-opacity, 1));
}

.dark\:border-blue-900\/30:is(.dark *) {
  border-color: rgb(30 58 138 / 0.3);
}

.dark\:border-blue-900\/40:is(.dark *) {
  border-color: rgb(30 58 138 / 0.4);
}

.dark\:border-blue-900\/50:is(.dark *) {
  border-color: rgb(30 58 138 / 0.5);
}

.dark\:border-emerald-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(6 95 70 / var(--tw-border-opacity, 1));
}

.dark\:border-gray-700:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));
}

.dark\:border-gray-700\/80:is(.dark *) {
  border-color: rgb(55 65 81 / 0.8);
}

.dark\:border-gray-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));
}

.dark\:border-gray-800\/50:is(.dark *) {
  border-color: rgb(31 41 55 / 0.5);
}

.dark\:border-gray-800\/60:is(.dark *) {
  border-color: rgb(31 41 55 / 0.6);
}

.dark\:border-gray-800\/80:is(.dark *) {
  border-color: rgb(31 41 55 / 0.8);
}

.dark\:border-indigo-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(55 48 163 / var(--tw-border-opacity, 1));
}

.dark\:border-pink-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(157 23 77 / var(--tw-border-opacity, 1));
}

.dark\:border-purple-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(107 33 168 / var(--tw-border-opacity, 1));
}

.dark\:border-rose-400:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(251 113 133 / var(--tw-border-opacity, 1));
}

.dark\:border-rose-600:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(225 29 72 / var(--tw-border-opacity, 1));
}

.dark\:border-rose-700:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(190 18 60 / var(--tw-border-opacity, 1));
}

.dark\:border-rose-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(159 18 57 / var(--tw-border-opacity, 1));
}

.dark\:border-rose-800\/40:is(.dark *) {
  border-color: rgb(159 18 57 / 0.4);
}

.dark\:border-rose-900:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(136 19 55 / var(--tw-border-opacity, 1));
}

.dark\:border-rose-900\/30:is(.dark *) {
  border-color: rgb(136 19 55 / 0.3);
}

.dark\:border-rose-900\/40:is(.dark *) {
  border-color: rgb(136 19 55 / 0.4);
}

.dark\:border-rose-900\/50:is(.dark *) {
  border-color: rgb(136 19 55 / 0.5);
}

.dark\:border-rose-900\/60:is(.dark *) {
  border-color: rgb(136 19 55 / 0.6);
}

.dark\:border-sky-800:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(7 89 133 / var(--tw-border-opacity, 1));
}

.dark\:bg-\[\#00a884\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(0 168 132 / var(--tw-bg-opacity, 1));
}

.dark\:bg-\[\#0b141a\]\/40:is(.dark *) {
  background-color: rgb(11 20 26 / 0.4);
}

.dark\:bg-\[\#111b21\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(17 27 33 / var(--tw-bg-opacity, 1));
}

.dark\:bg-\[\#111b21\]\/50:is(.dark *) {
  background-color: rgb(17 27 33 / 0.5);
}

.dark\:bg-\[\#111b21\]\/80:is(.dark *) {
  background-color: rgb(17 27 33 / 0.8);
}

.dark\:bg-\[\#111b21\]\/85:is(.dark *) {
  background-color: rgb(17 27 33 / 0.85);
}

.dark\:bg-\[\#111b21\]\/95:is(.dark *) {
  background-color: rgb(17 27 33 / 0.95);
}

.dark\:bg-\[\#151e24\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(21 30 36 / var(--tw-bg-opacity, 1));
}

.dark\:bg-\[\#152026\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(21 32 38 / var(--tw-bg-opacity, 1));
}

.dark\:bg-\[\#1a1715\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(26 23 21 / var(--tw-bg-opacity, 1));
}

.dark\:bg-\[\#1a2329\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(26 35 41 / var(--tw-bg-opacity, 1));
}

.dark\:bg-\[\#1a252c\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(26 37 44 / var(--tw-bg-opacity, 1));
}

.dark\:bg-\[\#1f2c34\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(31 44 52 / var(--tw-bg-opacity, 1));
}

.dark\:bg-\[\#202c33\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(32 44 51 / var(--tw-bg-opacity, 1));
}

.dark\:bg-\[\#2a3942\]:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(42 57 66 / var(--tw-bg-opacity, 1));
}

.dark\:bg-amber-950\/10:is(.dark *) {
  background-color: rgb(69 26 3 / 0.1);
}

.dark\:bg-amber-950\/40:is(.dark *) {
  background-color: rgb(69 26 3 / 0.4);
}

.dark\:bg-black\/20:is(.dark *) {
  background-color: rgb(0 0 0 / 0.2);
}

.dark\:bg-black\/30:is(.dark *) {
  background-color: rgb(0 0 0 / 0.3);
}

.dark\:bg-black\/40:is(.dark *) {
  background-color: rgb(0 0 0 / 0.4);
}

.dark\:bg-blue-900\/60:is(.dark *) {
  background-color: rgb(30 58 138 / 0.6);
}

.dark\:bg-blue-950\/20:is(.dark *) {
  background-color: rgb(23 37 84 / 0.2);
}

.dark\:bg-blue-950\/30:is(.dark *) {
  background-color: rgb(23 37 84 / 0.3);
}

.dark\:bg-blue-950\/60:is(.dark *) {
  background-color: rgb(23 37 84 / 0.6);
}

.dark\:bg-blue-950\/70:is(.dark *) {
  background-color: rgb(23 37 84 / 0.7);
}

.dark\:bg-emerald-950\/40:is(.dark *) {
  background-color: rgb(2 44 34 / 0.4);
}

.dark\:bg-gray-600:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
}

.dark\:bg-gray-700:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
}

.dark\:bg-gray-800:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
}

.dark\:bg-gray-800\/40:is(.dark *) {
  background-color: rgb(31 41 55 / 0.4);
}

.dark\:bg-gray-800\/60:is(.dark *) {
  background-color: rgb(31 41 55 / 0.6);
}

.dark\:bg-gray-900\/30:is(.dark *) {
  background-color: rgb(17 24 39 / 0.3);
}

.dark\:bg-indigo-950\/40:is(.dark *) {
  background-color: rgb(30 27 75 / 0.4);
}

.dark\:bg-pink-950\/40:is(.dark *) {
  background-color: rgb(80 7 36 / 0.4);
}

.dark\:bg-purple-950\/20:is(.dark *) {
  background-color: rgb(59 7 100 / 0.2);
}

.dark\:bg-purple-950\/40:is(.dark *) {
  background-color: rgb(59 7 100 / 0.4);
}

.dark\:bg-rose-900\/60:is(.dark *) {
  background-color: rgb(136 19 55 / 0.6);
}

.dark\:bg-rose-950:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(76 5 25 / var(--tw-bg-opacity, 1));
}

.dark\:bg-rose-950\/10:is(.dark *) {
  background-color: rgb(76 5 25 / 0.1);
}

.dark\:bg-rose-950\/20:is(.dark *) {
  background-color: rgb(76 5 25 / 0.2);
}

.dark\:bg-rose-950\/25:is(.dark *) {
  background-color: rgb(76 5 25 / 0.25);
}

.dark\:bg-rose-950\/30:is(.dark *) {
  background-color: rgb(76 5 25 / 0.3);
}

.dark\:bg-rose-950\/40:is(.dark *) {
  background-color: rgb(76 5 25 / 0.4);
}

.dark\:bg-rose-950\/60:is(.dark *) {
  background-color: rgb(76 5 25 / 0.6);
}

.dark\:bg-rose-950\/70:is(.dark *) {
  background-color: rgb(76 5 25 / 0.7);
}

.dark\:bg-sky-950\/40:is(.dark *) {
  background-color: rgb(8 47 73 / 0.4);
}

.dark\:bg-teal-950\/40:is(.dark *) {
  background-color: rgb(4 47 46 / 0.4);
}

.dark\:from-rose-950\/40:is(.dark *) {
  --tw-gradient-from: rgb(76 5 25 / 0.4) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(76 5 25 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.dark\:via-purple-950\/20:is(.dark *) {
  --tw-gradient-to: rgb(59 7 100 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(59 7 100 / 0.2) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.dark\:to-\[\#111b21\]:is(.dark *) {
  --tw-gradient-to: #111b21 var(--tw-gradient-to-position);
}

.dark\:text-\[\#00a884\]:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(0 168 132 / var(--tw-text-opacity, 1));
}

.dark\:text-\[\#9e9087\]:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(158 144 135 / var(--tw-text-opacity, 1));
}

.dark\:text-\[\#c4b5ab\]:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(196 181 171 / var(--tw-text-opacity, 1));
}

.dark\:text-\[\#d4c9c2\]:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(212 201 194 / var(--tw-text-opacity, 1));
}

.dark\:text-\[\#ede4de\]:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(237 228 222 / var(--tw-text-opacity, 1));
}

.dark\:text-amber-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(252 211 77 / var(--tw-text-opacity, 1));
}

.dark\:text-amber-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}

.dark\:text-blue-200:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(191 219 254 / var(--tw-text-opacity, 1));
}

.dark\:text-blue-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(147 197 253 / var(--tw-text-opacity, 1));
}

.dark\:text-blue-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}

.dark\:text-emerald-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(110 231 183 / var(--tw-text-opacity, 1));
}

.dark\:text-emerald-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(52 211 153 / var(--tw-text-opacity, 1));
}

.dark\:text-gray-100:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(243 244 246 / var(--tw-text-opacity, 1));
}

.dark\:text-gray-200:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}

.dark\:text-gray-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}

.dark\:text-gray-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.dark\:text-gray-500:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}

.dark\:text-gray-700:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}

.dark\:text-indigo-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(165 180 252 / var(--tw-text-opacity, 1));
}

.dark\:text-indigo-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(129 140 248 / var(--tw-text-opacity, 1));
}

.dark\:text-pink-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(249 168 212 / var(--tw-text-opacity, 1));
}

.dark\:text-pink-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(244 114 182 / var(--tw-text-opacity, 1));
}

.dark\:text-purple-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(216 180 254 / var(--tw-text-opacity, 1));
}

.dark\:text-purple-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(192 132 252 / var(--tw-text-opacity, 1));
}

.dark\:text-rose-200:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(254 205 211 / var(--tw-text-opacity, 1));
}

.dark\:text-rose-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(253 164 175 / var(--tw-text-opacity, 1));
}

.dark\:text-rose-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

.dark\:text-sky-300:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(125 211 252 / var(--tw-text-opacity, 1));
}

.dark\:text-teal-400:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(45 212 191 / var(--tw-text-opacity, 1));
}

.dark\:placeholder\:text-gray-500:is(.dark *)::-moz-placeholder {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}

.dark\:placeholder\:text-gray-500:is(.dark *)::placeholder {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}

.dark\:hover\:border-amber-600:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(217 119 6 / var(--tw-border-opacity, 1));
}

.dark\:hover\:border-blue-900\/60:hover:is(.dark *) {
  border-color: rgb(30 58 138 / 0.6);
}

.dark\:hover\:border-emerald-600:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(5 150 105 / var(--tw-border-opacity, 1));
}

.dark\:hover\:border-indigo-600:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(79 70 229 / var(--tw-border-opacity, 1));
}

.dark\:hover\:border-pink-600:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(219 39 119 / var(--tw-border-opacity, 1));
}

.dark\:hover\:border-rose-600:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(225 29 72 / var(--tw-border-opacity, 1));
}

.dark\:hover\:border-rose-900\/50:hover:is(.dark *) {
  border-color: rgb(136 19 55 / 0.5);
}

.dark\:hover\:border-rose-900\/60:hover:is(.dark *) {
  border-color: rgb(136 19 55 / 0.6);
}

.dark\:hover\:border-teal-600:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(13 148 136 / var(--tw-border-opacity, 1));
}

.dark\:hover\:bg-gray-700:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
}

.dark\:hover\:bg-gray-800:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1));
}

.dark\:hover\:bg-indigo-950\/40:hover:is(.dark *) {
  background-color: rgb(30 27 75 / 0.4);
}

.dark\:hover\:bg-red-950\/40:hover:is(.dark *) {
  background-color: rgb(69 10 10 / 0.4);
}

.dark\:hover\:bg-rose-900\/40:hover:is(.dark *) {
  background-color: rgb(136 19 55 / 0.4);
}

.dark\:hover\:bg-rose-950\/40:hover:is(.dark *) {
  background-color: rgb(76 5 25 / 0.4);
}

.dark\:hover\:bg-rose-950\/50:hover:is(.dark *) {
  background-color: rgb(76 5 25 / 0.5);
}

.dark\:hover\:bg-white\/5:hover:is(.dark *) {
  background-color: rgb(255 255 255 / 0.05);
}

.dark\:hover\:text-gray-200:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}

.dark\:hover\:text-rose-400:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(251 113 133 / var(--tw-text-opacity, 1));
}

@media (min-width: 440px) {
  .min-\[440px\]\:flex {
    display: flex;
  }
}

@media (min-width: 640px) {
  .sm\:col-span-1 {
    grid-column: span 1 / span 1;
  }

  .sm\:ml-0 {
    margin-left: 0px;
  }

  .sm\:block {
    display: block;
  }

  .sm\:\!h-9 {
    height: 2.25rem !important;
  }

  .sm\:h-14 {
    height: 3.5rem;
  }

  .sm\:\!w-9 {
    width: 2.25rem !important;
  }

  .sm\:w-14 {
    width: 3.5rem;
  }

  .sm\:w-auto {
    width: auto;
  }

  .sm\:max-w-\[180px\] {
    max-width: 180px;
  }

  .sm\:max-w-\[200px\] {
    max-width: 200px;
  }

  .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\:flex-row {
    flex-direction: row;
  }

  .sm\:flex-col {
    flex-direction: column;
  }

  .sm\:items-end {
    align-items: flex-end;
  }

  .sm\:items-center {
    align-items: center;
  }

  .sm\:justify-center {
    justify-content: center;
  }

  .sm\:justify-between {
    justify-content: space-between;
  }

  .sm\:gap-1\.5 {
    gap: 0.375rem;
  }

  .sm\:gap-3 {
    gap: 0.75rem;
  }

  .sm\:gap-4 {
    gap: 1rem;
  }

  .sm\:space-y-5 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
  }

  .sm\:p-3\.5 {
    padding: 0.875rem;
  }

  .sm\:p-4 {
    padding: 1rem;
  }

  .sm\:p-5 {
    padding: 1.25rem;
  }

  .sm\:p-6 {
    padding: 1.5rem;
  }

  .sm\:p-7 {
    padding: 1.75rem;
  }

  .sm\:p-8 {
    padding: 2rem;
  }

  .sm\:px-1\.5 {
    padding-left: 0.375rem;
    padding-right: 0.375rem;
  }

  .sm\:px-5 {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .sm\:py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }

  .sm\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .sm\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }

  .sm\:text-\[11px\] {
    font-size: 11px;
  }

  .sm\:text-base {
    font-size: 1rem;
    line-height: 1.5rem;
  }

  .sm\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .sm\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }

  .sm\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }

  .sm\:text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
  }

  .sm\:placeholder\:text-sm::-moz-placeholder {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }

  .sm\:placeholder\:text-sm::placeholder {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}

@media (min-width: 768px) {
  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Sembunyikan iklan footer bawaan hosting gratis agar tidak menutupi antarmuka chat */
#server-footer-ad,
[id*="server-footer"],
[class*="server-footer"],
div[style*="Hosting gratis"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
  bottom: -9999px !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  z-index: -999 !important;
}

/* Berikan safe clearance di bawah composer agar selalu tampak penuh */
.chat-composer {
  padding-bottom: max(1.25rem, calc(0.75rem + env(safe-area-inset-bottom, 20px))) !important;
}
