*,
::after,
::before {
    box-sizing: border-box;
}
html {
    -moz-tab-size: 4;
    -o-tab-size: 4;
    tab-size: 4;
    line-height: 1.15; /* Base line-height */
    -webkit-text-size-adjust: 100%;
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* Consolidated font stack */
}
body {
    margin: 0;
    font-family: inherit; /* Inherits from html */
    line-height: inherit; /* Inherits from html */
    background: linear-gradient(-45deg, var(--love-light-blue), var(--love-mid-purple), var(--love-deep-purple), var(--love-pink-highlight));
    background-size: 400% 400%;
    animation: loveThemeGradient 15s ease infinite;
    color: white; /* Default text color for the theme */
    min-height: 100vh;
    position: relative; /* For pseudo-element hearts */
    overflow-x: hidden; /* Prevent horizontal scroll from off-screen hearts */
}

/* Love theme heart animations */
body::before, body::after {
    content: '❤';
    position: fixed;
    color: var(--love-pink-highlight);
    opacity: 0;
    animation: floatUp 20s infinite ease-in-out;
    z-index: 0; /* Behind most content, but above body's direct background */
    pointer-events: none;
}

body::before {
    left: 15%;
    font-size: 25px;
    animation-delay: 0s;
    filter: drop-shadow(0 0 5px rgba(255, 105, 180, 0.7));
}

body::after {
    right: 15%;
    font-size: 35px;
    animation-delay: 10s; /* Staggered animation */
    color: rgba(255, 182, 193, 0.8); /* Lighter pink */
    filter: drop-shadow(0 0 8px rgba(255, 182, 193, 0.7));
}

@keyframes floatUp {
    0% {
        transform: translateY(105vh) rotate(0deg) scale(0.8);
        opacity: 0;
    }
    10% {
         opacity: 0.6;
         transform: translateY(90vh) rotate(-10deg) scale(1);
    }
    90% {
        opacity: 0.6;
        transform: translateY(5vh) rotate(10deg) scale(1.2);
    }
    100% {
        transform: translateY(-100px) rotate(0deg) scale(0.8);
        opacity: 0;
    }
}

hr {
    height: 0;
    color: inherit;
    border-top-width: 1px; /* Moved from later rule */
}
abbr[title] {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
}
b,
strong {
    font-weight: bolder;
}
code,
kbd,
pre,
samp {
    font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; /* Consolidated */
    font-size: 1em;
}
small {
    font-size: 80%;
}
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}
sub {
    bottom: -0.25em;
}
sup {
    top: -0.5em;
}
table {
    text-indent: 0;
    border-color: inherit; /* From HTML */
    border-collapse: collapse; /* From later rule */
}
button,
input,
optgroup,
select,
textarea {
    font-family: inherit;
    font-size: 100%;
    line-height: 1.15; /* Base */
    margin: 0;
    padding: 0; /* From later rule */
    color: inherit; /* From later rule */
}
button,
select {
    text-transform: none;
}
[type="button"],
button {
    -webkit-appearance: button;
    background-color: transparent; /* From later rule */
    background-image: none; /* From later rule */
    cursor: pointer; /* From later rule */
}
button:focus { /* Keep basic focus outline for accessibility */
    outline: 1px dotted;
    outline: 5px auto -webkit-focus-ring-color;
}
button:focus, /* Override for theme: remove outline if custom focus is handled */
input:focus {
    outline: 0; /* From later rule, keep this as primary */
}
legend {
    padding: 0;
}
progress {
    vertical-align: baseline;
}
[type="search"] {
    -webkit-appearance: textfield;
    outline-offset: -2px;
}
summary {
    display: list-item;
}
blockquote,
dd,
dl,
figure,
h1,
h2,
h3,
h4,
h5,
h6,
/* hr, */ /* hr already handled */
p,
pre {
    margin: 0;
}
fieldset {
    margin: 0;
    padding: 0;
}
ol,
ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
/* html {
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    line-height: 1.5;
} */ /* Merged above */
/* body {
    font-family: inherit;
    line-height: inherit;
} */ /* Merged above */
*,
::after,
::before {
    /* box-sizing: border-box; */ /* Merged above */
    border-width: 0;
    border-style: solid;
    border-color: rgba(255, 255, 255, 0.2); /* Adjusted default border for theme */
}
/* hr {
    border-top-width: 1px;
} */ /* Merged above */
img {
    border-style: solid; /* if it needs a border, it will be styled by border-color above */
}
textarea {
    resize: vertical;
}
input::-moz-placeholder,
textarea::-moz-placeholder {
    opacity: 1;
    color: rgba(220, 220, 255, 0.7); /* Themed placeholder */
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
    opacity: 1;
    color: rgba(220, 220, 255, 0.7); /* Themed placeholder */
}
input::placeholder,
textarea::placeholder {
    opacity: 1;
    color: rgba(220, 220, 255, 0.7); /* Themed placeholder */
}
/* button {
    cursor: pointer;
} */ /* Merged above */
/* table {
    border-collapse: collapse;
} */ /* Merged above */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-size: inherit;
    font-weight: inherit;
    color: white; /* Ensure headings are visible on gradient */
}
a {
    color: #000000; /* Themed links */
    text-decoration: inherit;
}
a:hover {
    text-decoration: underline;
    color: white;
}
/* button,
input,
optgroup,
select,
textarea {
    padding: 0;
    line-height: inherit;
    color: inherit;
} */ /* Merged above */
/* code,
kbd,
pre,
samp {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
} */ /* Merged above */
audio,
canvas,
embed,
iframe,
img,
object,
svg,
video {
    display: block;
    vertical-align: middle;
}
img,
video {
    max-width: 100%;
    height: auto;
}

:root {
    --love-light-blue: #89CFF0; /* Baby Blue */
    --love-mid-purple: #C792EA;  /* Soft Lilac/Purple */
    --love-deep-purple: #A076F9; /* Deeper Purple */
    --love-pink-highlight: #FFB6C1; /* Light Pink for accents, hearts */

    /* Original variables - some updated for theme, some kept for semantics */
    --dark-color: #0d0c22; /* Kept for specific dark elements, contrast with theme needed */
    --blue-color: var(--love-pink-highlight); /* Changed from #0095f6 to a theme color */
    --danger-color: #ff4963; /* A reddish-pink, fits okay */
    --primary-color: var(--love-mid-purple); /* Updated to theme color */
    --grey-color: #94a3b8; /* Lightened grey for better harmony */
    --greybg-color: rgba(255,255,255,0.1); /* Light transparent for backgrounds on gradient */
    --success-color: #50C878; /* Emerald green, clear for success */
    --btngrey-color: rgba(255,255,255,0.15); /* Similar to greybg */
    --black-op5-color: rgba(0, 0, 0, 0.5); /* Keep for specific use */
}

@keyframes loveThemeGradient {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Replaces original bg-anim for themed elements */
/* This shared animation can be applied to elements that need gradient animation on hover/active */
.themed-gradient-bg-animated:hover,
.themed-gradient-bg-animated.active, /* If an active class triggers it */
.bl-bg-active /* If this class is meant for this kind of animation */
 {
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight), var(--love-deep-purple));
    background-size: 400% 400%;
    animation: loveThemeGradient 10s ease infinite alternate;
}


.bg-transparent {
    background-color: transparent;
}
.bg-black {
    --tw-bg-opacity: 1;
    background-color: rgba(0, 0, 0, var(--tw-bg-opacity));
}
.bg-white { /* Elements with white background will need dark text */
    --tw-bg-opacity: 1;
    background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
    color: #333; /* Ensure text contrast */
}
.bg-gray-100 {
    --tw-bg-opacity: 1;
    background-color: rgba(243, 244, 246, var(--tw-bg-opacity));
    color: #333; /* Ensure text contrast */
}
.bg-blDark { /* If used, ensure text is light/white */
    background-color: var(--dark-color);
}
.bg-primary { /* Was very light, now uses themed purple as base */
    background-color: var(--primary-color);
}
.bg-bl-bg-dark {
    background-color: var(--dark-color);
}
.bg-btn-grey {
    background-color: var(--btngrey-color);
}
.bg-bl-bg-blue {
    background-color: var(--blue-color); /* Now themed pink */
}
.bg-bl-bg-red {
    background-color: var(--danger-color);
}

.bl-bg {
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple));
    background-size: 200% 200%;
    color: white;
}
/* .bl-bg-active, .bl-bg:hover are covered by .themed-gradient-bg-animated if .bl-bg also has that class, or by specific rules */
.bl-bg:hover, .bl-bg.bl-bg-active { /* Specific for .bl-bg if it doesn't use the shared animation class */
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight), var(--love-deep-purple));
    background-size: 400% 400%;
    animation: loveThemeGradient 10s ease infinite alternate;
}


.text-gradient {
    background-image: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight));
    background-size: 200% 200%; /* For animation */
    background-repeat: repeat;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
    animation: loveThemeGradient 8s ease infinite; /* Animate text gradient */
}

.bl-main-wrap {
    background-color: transparent; /* Let body gradient show through or set a subtle overlay */
    min-height: 100vh;
}

.profile-img-signup-bg {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='115' height='115' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M114.67 51.35c.15 1.35.25 2.72.3 4.1l-.5.01a57.5 57.5 0 010 4.08l.5.02a57.5 57.5 0 01-.3 4.09l-.5-.05c-.14 1.35-.33 2.7-.57 4.03l.5.08c-.25 1.36-.54 2.7-.87 4.01l-.49-.12a56.25 56.25 0 01-1.14 3.9l.47.17c-.43 1.3-.91 2.58-1.43 3.84l-.47-.2a56.42 56.42 0 01-1.69 3.7l.45.23a57.46 57.46 0 01-1.97 3.6l-.43-.25c-.7 1.17-1.43 2.3-2.2 3.42l.4.29a57.86 57.86 0 01-2.46 3.28l-.38-.31a57.51 57.51 0 01-2.67 3.07l.36.34c-.93 1-1.9 1.97-2.9 2.9l-.34-.36c-1 .92-2.02 1.81-3.07 2.67l.31.38a57.82 57.82 0 01-3.28 2.47l-.29-.41c-1.11.77-2.25 1.5-3.42 2.2l.25.43c-1.17.7-2.37 1.35-3.6 1.97l-.22-.45c-1.21.6-2.44 1.17-3.7 1.7l.19.46c-1.26.52-2.54 1-3.84 1.43l-.16-.47c-1.29.42-2.59.8-3.9 1.14l.11.49c-1.31.33-2.65.62-4 .86l-.1-.49c-1.32.24-2.67.43-4.02.58l.05.5a57.5 57.5 0 01-4.1.28l-.01-.5a57.5 57.5 0 01-4.08 0l-.02.5a57.5 57.5 0 01-4.09-.28l.05-.5c-1.35-.15-2.7-.34-4.03-.58l-.08.5c-1.36-.25-2.7-.54-4.01-.87l.12-.49a56.25 56.25 0 01-3.9-1.14l-.17.47c-1.3-.43-2.58-.91-3.84-1.43l.2-.47a56.42 56.42 0 01-3.7-1.69l-.23.45a57.46 57.46 0 01-3.6-1.97l.25-.43c-1.17-.7-2.3-1.43-3.42-2.2l-.29.4a57.86 57.86 0 01-3.28-2.46l.31-.38a57.51 57.51 0 01-3.07-2.67l-.34.36c-1-.93-1.97-1.9-2.9-2.9l.36-.34c-.92-1-1.81-2.02-2.66-3.07l-.4.31a57.69 57.69 0 01-2.46-3.28l.41-.29a57.06 57.06 0 01-2.2-3.42l-.43.25a57.38 57.38 0 01-1.97-3.6l.45-.22a56.69 56.69 0 01-1.7-3.7l-.46.19c-.52-1.26-1-2.54-1.43-3.84l.47-.16c-.42-1.29-.8-2.59-1.14-3.9l-.49.11a57.15 57.15 0 01-.87-4l.5-.1a56.96 56.96 0 01-.58-4.02l-.5.05a57.98 57.98 0 01-.28-4.1l.5-.01a58.04 58.04 0 010-4.08l-.5-.02c.04-1.37.14-2.74.28-4.09l.5.05c.15-1.35.34-2.7.58-4.03l-.5-.08c.25-1.36.54-2.7.87-4.01l.49.12c.33-1.32.72-2.62 1.14-3.9l-.47-.17c.43-1.3.91-2.58 1.43-3.84l.46.2c.53-1.27 1.1-2.5 1.7-3.7l-.45-.23a57.38 57.38 0 011.97-3.6l.43.25c.7-1.17 1.43-2.3 2.2-3.42l-.4-.29c.78-1.12 1.6-2.22 2.46-3.28l.39.31a57.28 57.28 0 012.66-3.07l-.36-.34c.93-1 1.9-1.97 2.9-2.9l.34.36c1-.92 2.02-1.81 3.07-2.66l-.31-.4a57.67 57.67 0 013.28-2.46l.29.41c1.11-.77 2.25-1.5 3.42-2.2l-.25-.43c1.17-.7 2.37-1.35 3.6-1.97l.22.45c1.21-.6 2.44-1.17 3.7-1.7l-.19-.46c1.26-.52 2.54-1 3.84-1.43l.16.47c1.29-.42 2.59-.8 3.9-1.14l-.11-.49c1.31-.33 2.65-.62 4-.87l.1.5c1.32-.24 2.67-.43 4.02-.58l-.05-.5c1.35-.14 2.72-.24 4.1-.28l.01.5a58.04 58.04 0 014.08 0l.02-.5c1.37.04 2.74.14 4.09.28l-.05.5c1.35.15 2.7.34 4.03.58l.08-.5c1.36.25 2.7.54 4.01.87l-.12.49c1.32.33 2.62.72 3.9 1.14l.17-.47c1.3.43 2.58.91 3.84 1.43l-.2.46c1.27.53 2.5 1.1 3.7 1.7l.23-.45c1.23.62 2.43 1.27 3.6 1.97l-.25.43c1.17.7 2.3 1.43 3.42 2.2l.29-.4c1.12.78 2.22 1.6 3.28 2.46l-.31.39c1.05.85 2.08 1.74 3.07 2.66l.34-.36c1 .93 1.97 1.9 2.9 2.9l-.36.34c.92 1 1.81 2.02 2.67 3.07l.38-.31a57.82 57.82 0 012.47 3.28l-.41.29c.77 1.11 1.5 2.25 2.2 3.42l.43-.25c.7 1.17 1.35 2.37 1.97 3.6l-.45.22c.6 1.21 1.17 2.44 1.7 3.7l.46-.19c.52 1.26 1 2.54 1.43 3.84l-.47.16c.42 1.29.8 2.59 1.14 3.9l.49-.11c.33 1.31.62 2.65.86 4l-.49.1c.24 1.32.43 2.67.58 4.02l.5-.05z' fill='url(%23paint0_linear)' fill-opacity='.05' stroke='url(%23paint1_linear)' stroke-dasharray='4 4'/%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear' x1='5' y1='57.5' x2='76.33' y2='110.02' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2389CFF0'/%3E%3Cstop offset='1' stop-color='%23C792EA'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint1_linear' x1='5' y1='57.5' x2='76.33' y2='110.02' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2389CFF0'/%3E%3Cstop offset='1' stop-color='%23C792EA'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E");
}

.bl-circle-loader.gradient-loader {
    border-top: 3px solid var(--love-pink-highlight);
    border-right: 3px solid var(--love-mid-purple);
    /* other properties like border-radius, animation, width, height remain */
}

.bl-input {
    background-color: rgba(255, 255, 255, 0.15); /* Semi-transparent on gradient */
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #000000;
    height: 40px;
    transition: all 0.15s ease;
    border-radius: 6px;
    padding-left: 12px; /* Default padding */
    padding-right: 12px;
}
.bl-input:focus,
.bl-input:hover {
    background-color: rgba(255, 255, 255, 0.25);
    border-color: var(--love-pink-highlight);
    box-shadow: 0 0 0 2px rgba(255, 182, 193, 0.3); /* Subtle glow */
}
.input-main-wrap:focus-within { /* Gradient border effect */
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight));
    padding: 2px; /* This padding creates the border effect */
    border-radius: 8px; /* Match .bl-input or slightly larger */
}
.input-main-wrap:focus-within .bl-input {
    border: none; /* Border is now handled by the wrapper's background */
   background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple));
    /* color: white; /* Text color remains white */
}
.input-main-wrap-with-border:focus-within {
    background: var(--blue-color); /* Themed pink */
}
.placeholder-grey::-moz-placeholder { color: var(--grey-color); }
.placeholder-grey:-ms-input-placeholder { color: var(--grey-color); }
.placeholder-grey::placeholder { color: var(--grey-color); }


.bl-btn {
    font-family: Inter, sans-serif;
    font-weight: 700;
    font-size: 14px;
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple));
    background-size: 200% 200%;
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 25px; /* Softer, more romantic shape */
    transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.bl-btn:hover, .bl-btn:focus {
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight), var(--love-deep-purple));
    background-size: 400% 400%;
    animation: loveThemeGradient 8s ease infinite alternate;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px 0 rgba(199, 146, 234, 0.35);
}
.disable-btn.bl-btn {
    opacity: 0.5;
    cursor: not-allowed;
    background: var(--grey-color); /* Flat grey when disabled */
    animation: none;
    transform: none;
    box-shadow: none;
}

.active-tab-line {
    /* ... existing positioning and transition ... */
    background: linear-gradient(90deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight));
    background-size: 200% 100%; /* Can be animated if desired */
}
.bl-toggle-btn input:checked + .bl-toggle-slider {
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple));
    background-size: 165%;
}
.bl-toggle-btn input:checked + .bl-toggle-slider:hover {
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight));
    background-size: 400% 400%;
    animation: loveThemeGradient 8s ease infinite alternate;
}

.theme-gradient-btn {
    background: linear-gradient(180deg, var(--love-deep-purple), var(--love-mid-purple));
    color: white;
    border: none;
}
.stat-progress-bar {
    background: linear-gradient(90deg, rgba(137, 207, 240, 0.5), rgba(199, 146, 234, 0.5), rgba(255, 182, 193, 0.5));
}
.stat-toolbar li.active:after {
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight));
    background-size: 165%;
}
.on-loading {
    border-radius: 4px;
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple), var(--love-light-blue));
    opacity: 0.7;
    background-size: 200% 200%;
    animation: loveThemeGradient 1.5s linear infinite; /* Faster for loading */
}

/* Ensure modal content text is readable if modal has white background */
.bl-modal-content {
    --tw-bg-opacity: 1;
    background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
    border-radius: 12px; /* Softer corners */
    z-index: 10;
    color: #333; /* Dark text for light modal background */
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}
.bl-modal-content h1, .bl-modal-content h2, .bl-modal-content p { /* Specific to modal content */
    color: #333;
}
.btn-on-modal .bl-btn,
.btn-on-modal .bl-btn:hover { /* Ensure modal buttons adopt theme */
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight));
    background-size: 400% 400%;
    border-radius: 0 0 12px 12px; /* Match modal rounding if at bottom */
}
.btn-on-modal .bl-btn:hover {
    animation: loveThemeGradient 8s ease infinite alternate;
}

.loading-page[data-v-211dfdc8] {
    background: linear-gradient(90deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight));
    height: 3px;
    /* animation properties from original */
    -webkit-animation-name: reducetime-data-v-211dfdc8; /* Keep original animation name for this specific element if needed */
    animation-name: reducetime-data-v-211dfdc8;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
}
/* Original keyframes for loading page */
@-webkit-keyframes reducetime-data-v-211dfdc8 {
    0% { width: 0; }
    to { width: 100%; }
}
@keyframes reducetime-data-v-211dfdc8 {
    0% { width: 0; }
    to { width: 100%; }
}
@media (max-width: 700px) {
    .loading-page[data-v-211dfdc8] {
        background: var(--love-pink-highlight); /* Simpler for mobile loading bar */
    }
    .bl-header {
        height: 76px;
        background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight));
        background-size: 400% 400%;
        animation: loveThemeGradient 12s ease infinite;
    }
    .active-tab-line,
    .active-tab-line:hover {
        background: var(--love-pink-highlight); /* Themed for mobile */
    }
    .mob-primary-bg,
    .mob-primary-bg:hover {
        background: var(--love-mid-purple); /* Themed for mobile */
    }
}

/* Keep the rest of your CSS as is, applying changes above primarily to colors, backgrounds, and animations */
/* ... (rest of your original CSS, Tailwind-like utilities, component styles, etc.) ... */
/* Make sure to search and replace old gradient values if they appear elsewhere. */

/* Example of how the original .bl-bg-active / .bl-bg:hover animation rule would be handled if it was unique: */
/* If there was a specific animation just for this:
@keyframes oldBgAnim {
    0% { background-position: 0 0; }
    50% { background-position: 100%; }
    to { background-position: 0 0; }
}
.bl-bg-active, .bl-bg:hover {
    background: linear-gradient(120deg, var(--love-light-blue), var(--love-mid-purple), var(--love-pink-highlight), var(--love-deep-purple));
    background-size: 400% 400%;
    animation: loveThemeGradient 10s ease infinite alternate; // Now uses the new theme animation
}
*/

/* Continue with the rest of your original CSS rules.
   The above changes focus on the theme transformation.
   Utility classes like .flex, .p-16, .text-center, etc., remain functional.
   Color utilities like .text-white, .text-blDark will still work;
   their appropriateness depends on the background they are used against.
   If .text-blDark (color: var(--dark-color)) is used on the main gradient background,
   it might be hard to read. Ensure text colors provide good contrast.
*/

.space-y-24 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(24px * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(24px * var(--tw-space-y-reverse));
}
.hover\:bg-gray-200:hover {
    --tw-bg-opacity: 1;
    background-color: rgba(229, 231, 235, var(--tw-bg-opacity));
    color: #333;
}
.hover\:bg-blue-50:hover {
    --tw-bg-opacity: 1;
    background-color: rgba(239, 246, 255, 0.8); /* Slightly transparent if on gradient */
    color: var(--love-deep-purple);
}
.hover\:bg-bl-bg-grey:hover {
    background-color: var(--greybg-color);
}
.hover\:bg-btn-grey:hover {
    background-color: var(--btngrey-color);
}
.hover\:bg-bl-sp-grey:hover {
    --tw-bg-opacity: 1;
    background-color: rgba(231, 231, 233, var(--tw-bg-opacity));
    color: #333;
}
.focus\:bg-white:focus {
    --tw-bg-opacity: 1;
    background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
    color: #333;
}
.hover\:border-black:hover {
    --tw-border-opacity: 1;
    border-color: rgba(0, 0, 0, var(--tw-border-opacity));
}
.rounded-12 {
    border-radius: 12px;
}
.rounded-52 {
    border-radius: 52px;
}
.rounded-sm {
    border-radius: 4px;
}
.rounded-md {
    border-radius: 8px;
}
.rounded-full {
    border-radius: 9999px;
}
.rounded-r-sm {
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}
.rounded-l-sm {
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}
.border {
    border-width: 1px;
}
.cursor-default {
    cursor: default;
}
.cursor-pointer {
    cursor: pointer;
}
.cursor-not-allowed {
    cursor: not-allowed;
}
.cursor-grab {
    cursor: -webkit-grab;
    cursor: grab;
}
.block {
    display: block;
}
.inline-block {
    display: inline-block;
}
.inline {
    display: inline;
}
.flex {
    display: flex;
}
.table {
    display: table;
}
.grid {
    display: grid;
}
.hidden {
    display: none;
}
.flex-col {
    flex-direction: column;
}
.flex-wrap {
    flex-wrap: wrap;
}
.items-center {
    align-items: center;
}
.content-center {
    align-content: center;
}
.justify-center {
    justify-content: center;
}
.justify-between {
    justify-content: space-between;
}
.flex-shrink-0 {
    flex-shrink: 0;
}
.flex-shrink {
    flex-shrink: 1;
}
.font-inter {
    font-family: Inter, sans-serif;
}
.font-normal {
    font-weight: 400;
}
.font-medium {
    font-weight: 500;
}
.font-semibold {
    font-weight: 600;
}
.font-bold {
    font-weight: 700;
}
.h-40 {
    height: 10rem;
}
.h-48 {
    height: 48px;
}
.h-60 {
    height: 15rem;
}
.h-64 {
    height: 64px;
}
.h-full {
    height: 100%;
}
.h-screen {
    height: 100vh;
}
.text-10 {
    font-size: 10px;
}
.text-12 {
    font-size: 12px;
}
.text-14 {
    font-size: 14px;
}
.text-16 {
    font-size: 16px;
}
.text-20 {
    font-size: 20px;
}
.text-22 {
    font-size: 22px;
}
.text-24 {
    font-size: 24px;
}
.text-30 {
    font-size: 30px;
}
.text-32 {
    font-size: 32px;
}
.leading-17 {
    line-height: 17px;
}
.leading-24 {
    line-height: 24px;
}
.leading-36 {
    line-height: 36px;
}
.mx-2 {
    margin-left: 2px;
    margin-right: 2px;
}
.mx-8 {
    margin-left: 8px;
    margin-right: 8px;
}
.mx-auto {
    margin-left: auto;
    margin-right: auto;
}
.mt-0 {
    margin-top: 0;
}
.mt-2 {
    margin-top: 2px;
}
.mt-4 {
    margin-top: 4px;
}
.mt-8 {
    margin-top: 8px;
}
.mr-8 {
    margin-right: 8px;
}
.mb-8 {
    margin-bottom: 8px;
}
.ml-8 {
    margin-left: 8px;
}
.mt-12 {
    margin-top: 12px;
}
.mr-12 {
    margin-right: 12px;
}
.mb-12 {
    margin-bottom: 12px;
}
.ml-12 {
    margin-left: 12px;
}
.mt-16 {
    margin-top: 16px;
}
.mr-16 {
    margin-right: 16px;
}
.mb-16 {
    margin-bottom: 16px;
}
.ml-16 {
    margin-left: 16px;
}
.mt-24 {
    margin-top: 24px;
}
.mr-24 {
    margin-right: 24px;
}
.mb-24 {
    margin-bottom: 24px;
}
.ml-24 {
    margin-left: 24px;
}
.mt-32 {
    margin-top: 32px;
}
.mb-32 {
    margin-bottom: 32px;
}
.ml-32 {
    margin-left: 32px;
}
.mt-48 {
    margin-top: 48px;
}
.ml-auto {
    margin-left: auto;
}
.last\:mr-0:last-child {
    margin-right: 0;
}
.last\:mb-0:last-child {
    margin-bottom: 0;
}
.last\:-mb-0:last-child {
    margin-bottom: 0;
}
.object-cover {
    -o-object-fit: cover;
    object-fit: cover;
}
.object-center {
    -o-object-position: center;
    object-position: center;
}
.opacity-0 {
    opacity: 0;
}
.opacity-50 {
    opacity: 0.5;
}
.overflow-hidden {
    overflow: hidden;
}
.overflow-y-scroll {
    overflow-y: scroll;
}
.p-2 {
    padding: 2px;
}
.p-16 {
    padding: 16px;
}
.p-32 {
    padding: 32px;
}
.py-2 {
    padding-top: 2px;
    padding-bottom: 2px;
}
.px-2 {
    padding-left: 2px;
    padding-right: 2px;
}
.px-4 {
    padding-left: 4px;
    padding-right: 4px;
}
.py-8 {
    padding-top: 8px;
    padding-bottom: 8px;
}
.px-8 {
    padding-left: 8px;
    padding-right: 8px;
}
.py-10 {
    padding-top: 10px;
    padding-bottom: 10px;
}
.py-12 {
    padding-top: 12px;
    padding-bottom: 12px;
}
.py-16 {
    padding-top: 16px;
    padding-bottom: 16px;
}
.px-16 {
    padding-left: 16px;
    padding-right: 16px;
}
.py-20 {
    padding-top: 20px;
    padding-bottom: 20px;
}
.px-20 {
    padding-left: 20px;
    padding-right: 20px;
}
.py-24 {
    padding-top: 24px;
    padding-bottom: 24px;
}
.px-24 {
    padding-left: 24px;
    padding-right: 24px;
}
.py-32 {
    padding-top: 32px;
    padding-bottom: 32px;
}
.px-32 {
    padding-left: 32px;
    padding-right: 32px;
}
.py-64 {
    padding-top: 64px;
    padding-bottom: 64px;
}
.px-64 {
    padding-left: 64px;
    padding-right: 64px;
}
.pb-0 {
    padding-bottom: 0;
}
.pt-2 {
    padding-top: 2px;
}
.pt-8 {
    padding-top: 8px;
}
.pb-8 {
    padding-bottom: 8px;
}
.pl-8 {
    padding-left: 8px;
}
.pb-12 {
    padding-bottom: 12px;
}
.pt-16 {
    padding-top: 16px;
}
.pb-16 {
    padding-bottom: 16px;
}
.pt-24 {
    padding-top: 24px;
}
.pr-24 {
    padding-right: 24px;
}
.pb-24 {
    padding-bottom: 24px;
}
.pl-24 {
    padding-left: 24px;
}
.pt-32 {
    padding-top: 32px;
}
.pr-32 {
    padding-right: 32px;
}
.pb-32 {
    padding-bottom: 32px;
}
.pl-32 {
    padding-left: 32px;
}
.pt-64 {
    padding-top: 64px;
}
.pr-64 {
    padding-right: 64px;
}
.pr-72 {
    padding-right: 72px;
}
.pb-80 {
    padding-bottom: 80px;
}
.static {
    position: static;
}
.fixed {
    position: fixed;
}
.absolute {
    position: absolute;
}
.relative {
    position: relative;
}
.inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
.top-0 {
    top: 0;
}
.right-0 {
    right: 0;
}
.left-0 {
    left: 0;
}
.bottom-50 {
    bottom: 50px;
}
.right-64 {
    right: 64px;
}
.bottom-64 {
    bottom: 64px;
}
.resize {
    resize: both;
}
* {
    --tw-shadow: 0 0 #0000;
}
.shadow-sm {
    --tw-shadow: 0px 1px 4px rgba(0, 0, 0, 0.05);
    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 rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-sm:hover {
    --tw-shadow: 0px 1px 4px rgba(0, 0, 0, 0.05);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
* {
    --tw-ring-inset: var(--tw-empty); /*!*/ /*!*/
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: rgba(199, 146, 234, 0.5); /* Themed ring color */
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
}
.ring-0 {
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-opacity-0 {
    --tw-ring-opacity: 0;
}
.text-center {
    text-align: center;
}
.text-white {
    --tw-text-opacity: 1;
    color: rgba(255, 255, 255, var(--tw-text-opacity));
}
.text-blDark { /* Use with caution on dark gradient parts */
    color: var(--dark-color);
}
.text-blDanger {
    color: var(--danger-color);
}
.text-blPrimary {
    color: var(--primary-color); /* Themed */
}
.text-blGrey {
    color: var(--grey-color); /* Themed */
}
.text-blBlue {
    color: var(--blue-color); /* Themed */
}
.text-blLGrey { /* Ensure this is light enough if used on dark parts of gradient */
    --tw-text-opacity: 1;
    color: rgba(200, 200, 220, var(--tw-text-opacity)); /* Adjusted light grey */
}
.text-blBlackOp5 {
    color: var(--black-op5-color);
}
.group:hover .group-hover\:text-black {
    --tw-text-opacity: 1;
    color: rgba(0, 0, 0, var(--tw-text-opacity));
}
.hover\:text-black:hover {
    --tw-text-opacity: 1;
    color: rgba(0, 0, 0, var(--tw-text-opacity));
}
.hover\:text-gray-800:hover {
    --tw-text-opacity: 1;
    color: rgba(31, 41, 55, var(--tw-text-opacity));
}
.uppercase {
    text-transform: uppercase;
}
.underline {
    text-decoration: underline;
}
.hover\:no-underline:hover {
    text-decoration: none;
}
.tracking-1 {
    letter-spacing: 1px;
}
.tracking-2 {
    letter-spacing: 2px;
}
.visible {
    visibility: visible;
}
.invisible {
    visibility: hidden;
}
.break-all {
    word-break: break-all;
}
.w-48 {
    width: 48px;
}
.w-52 {
    width: 13rem;
}
.w-64 {
    width: 64px;
}
.w-250 {
    width: 250px;
}
.w-1\/2 {
    width: 50%;
}
.w-2\/4 {
    width: 50%;
}
.w-1\/5 {
    width: 20%;
}
.w-3\/5 {
    width: 60%;
}
.w-11\/12 {
    width: 91.666667%;
}
.w-full {
    width: 100%;
}
.z-10 {
    z-index: 10;
}
.z-50 {
    z-index: 50;
}
.gap-32 {
    gap: 32px;
}
.gap-x-3 {
    -moz-column-gap: 0.75rem;
    column-gap: 0.75rem;
}
.gap-x-12 {
    -moz-column-gap: 12px;
    column-gap: 12px;
}
.gap-x-24 {
    -moz-column-gap: 24px;
    column-gap: 24px;
}
.gap-x-32 {
    -moz-column-gap: 32px;
    column-gap: 32px;
}
.grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}
.transform {
    --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;
    transform: translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-90 {
    --tw-scale-x: 0.9;
    --tw-scale-y: 0.9;
}
.scale-105 {
    --tw-scale-x: 1.05;
    --tw-scale-y: 1.05;
}
.hover\:scale-90:hover {
    --tw-scale-x: 0.9;
    --tw-scale-y: 0.9;
}
.hover\:scale-105:hover {
    --tw-scale-x: 1.05;
    --tw-scale-y: 1.05;
}
.transition {
    transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
    transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-property: background-color, border-color, 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;
}
.ease-out {
    transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.duration-200 {
    transition-duration: 0.2s;
}
.delay-75 {
    transition-delay: 75ms;
}
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}
@-webkit-keyframes ping {
    100%,
    75% {
        transform: scale(2);
        opacity: 0;
    }
}
@keyframes ping {
    100%,
    75% {
        transform: scale(2);
        opacity: 0;
    }
}
@-webkit-keyframes pulse { /* Could be themed with pink/purple */
    50% {
        opacity: 0.7; /* Softer pulse */
        /* box-shadow: 0 0 15px var(--love-pink-highlight); */ /* Example thematic pulse */
    }
}
@keyframes pulse {
    50% {
        opacity: 0.7;
        /* box-shadow: 0 0 15px var(--love-pink-highlight); */
    }
}
@-webkit-keyframes bounce {
    0%,
    100% {
        transform: translateY(-25%);
        -webkit-animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
        animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }
    50% {
        transform: none;
        -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
        animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
}
@keyframes bounce {
    0%,
    100% {
        transform: translateY(-25%);
        -webkit-animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
        animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
    }
    50% {
        transform: none;
        -webkit-animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
        animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
    }
}
/* Original @keyframes bg-anim - replaced by loveThemeGradient for themed elements */
/* @-webkit-keyframes bg-anim {
    0% { background-position: 0 0; }
    50% { background-position: 100%; }
    to { background-position: 0 0; }
}
@keyframes bg-anim {
    0% { background-position: 0 0; }
    50% { background-position: 100%; }
    to { background-position: 0 0; }
} */
body.modal-open {
    overflow: hidden;
}
.hidden-textarea {
    opacity: 0;
    left: 0;
    z-index: -999;
}
.bl-nav-list li:hover {
    background: rgba(255,255,255,0.1); /* Themed hover */
}
.bl-nav-list .act-li:hover { /* If active item is on light bg */
    background: rgba(255,255,255,0.2);
}
.flex-both-center {
    display: flex;
    align-items: center;
    justify-content: center;
}
.auth-main-wrap {
    width: 400px;
    background: rgba(0,0,0,0.2); /* Overlay for auth forms on gradient */
    padding: 20px;
    border-radius: 12px;
}
.profile-img-signup,
.profile-img-up {
    width: 115px;
    height: 115px;
    border: 3px solid var(--love-pink-highlight); /* Themed border */
}
.input-main-wrap.error-input {
    border: 1px solid var(--danger-color);
    background-color: rgba(255, 255, 255, 0.9); /* Light bg for error input */
    color: var(--danger-color);
}
.input-main-wrap.error-input .bl-input,
.input-main-wrap.error-input .bl-input:hover {
    color: var(--danger-color);
    background-color: transparent;
}
.input-main-wrap.success-input {
    border: 1px solid var(--success-color);
    background-color: rgba(255, 255, 255, 0.9);
}
.input-main-wrap.success-input .bl-input,
.input-main-wrap.success-input .bl-input:hover {
    background-color: transparent;
    color: var(--success-color);
}
.success-input { /* class directly on input? */
    border: 1px solid var(--success-color);
    background-color: rgba(220, 255, 220, 0.8); /* Light green tinted bg */
}
.bl-input-prefix {
    top: 12px;
    left: 16px;
    color: rgba(255,255,255,0.7); /* For light text on input */
}
.bl-input-prefix.on-profile {
    top: 11px;
}
.bl-input-with-prefix {
    padding-left: 67px;
}
.bl-input-with-suffix-icon {
    top: 15px;
    right: 16px;
}
.bl-input-with-suffix-text {
    top: 10px;
    right: 16px;
}
.bl-input-with-success {
    top: 14px;
    right: 16px;
}
.bl-input-with-suffix-wrap .bl-input {
    padding-right: 32px;
}
.bl-input-with-suffix-text-wrap .bl-input {
    padding-right: 72px;
}
.enable-on-change {
    opacity: 0.5;
    cursor: not-allowed;
}
.enable-on-change.active {
    opacity: 1;
    cursor: pointer;
}
.bl-btn-md {
    min-width: 96px;
    height: 40px;
}
.bl-btn-sm {
    min-width: 60px;
    padding: 8px 12px; /* Adjust padding for smaller buttons */
}
.bl-btn-primary-1 {
    border: 1px solid var(--blue-color); /* Themed pink */
    color: var(--blue-color);
    background: transparent;
}
.bl-btn-primary-1:hover {
    background: var(--blue-color);
    color: white;
    animation: none; /* Override default button animation if it's just color change */
}
.bl-btn-primary-2 {
    border: 2px solid var(--blue-color); /* Themed pink */
    color: var(--blue-color);
    background: transparent;
}
.bl-btn-primary-2:hover {
    background: var(--blue-color);
    color: white;
    animation: none;
}
.btn-h-48 {
    height: 48px;
}
.btn-h-56 {
    height: 56px;
}
.bl-circle-loader { /* General spinner, default to white for theme */
    border-right: 4px solid transparent;
    border-top: 4px solid transparent;
    border-radius: 50%;
    border-color: #fff #fff transparent transparent;
    border-style: solid;
    border-width: 3px 3px 4px 4px; /* Original had this complex border */
    width: 22px;
    height: 22px;
    -webkit-animation: spin 1s linear infinite;
    animation: spin 1s linear infinite;
}
.bl-circle-loader.dark-loader { /* If needed on a light background */
    border-top: 2px solid #000;
    border-right: 2px solid #000;
    border-color: #000 #000 transparent transparent;
}
.bl-circle-loader.grey-loader {
    border-top: 2px solid var(--grey-color);
    border-right: 2px solid var(--grey-color);
    border-color: var(--grey-color) var(--grey-color) transparent transparent;
}
/* Spin keyframes already defined above */
.grey-border-block {
    background-color: rgba(255,255,255,0.1); /* Themed */
    height: 1px;
}
.bl-light-text { /* Very light text, good for dark parts of gradient */
    color: rgba(220, 220, 255, 0.85); /* Adjusted for theme */
}
.bl-trans-btn {
    border: 1.5px solid var(--love-pink-highlight); /* Themed */
    color: var(--love-pink-highlight);
    height: 40px;
    transition: transform 0.15s cubic-bezier(0.17, 0.67, 0.29, 2.71) 0s, background-color 0.2s, color 0.2s;
}
.bl-trans-btn:hover {
    transform: translateZ(0) scale(1.015);
    background-color: var(--love-pink-highlight);
    color: white;
}
.social-overflow-wrap {
    height: 350px;
    overflow-y: scroll;
    scrollbar-width: thin;
    scrollbar-color: var(--love-pink-highlight) rgba(0,0,0,0.1);
}
.social-overflow-wrap::-webkit-scrollbar { width: 8px; }
.social-overflow-wrap::-webkit-scrollbar-track { background: rgba(0,0,0,0.1); border-radius: 4px;}
.social-overflow-wrap::-webkit-scrollbar-thumb { background-color: var(--love-pink-highlight); border-radius: 4px; border: 2px solid rgba(0,0,0,0.1); }

.sociallink-each svg {
    width: 28px;
    height: 28px;
    fill: white; /* Assuming they are on the gradient */
}
.sociallink-each:hover svg {
    fill: var(--love-pink-highlight);
}

.w-h-36 { width: 36px; height: 36px; }
.w-h-38 { width: 38px; height: 38px; }
.w-h-32 { width: 32px; height: 32px; }
.w-h-48 { width: 48px; height: 48px; }
.w-h-52 { width: 52px; height: 52px; }
.w-h-64 { width: 64px; height: 64px; }
.w-h-70 { width: 70px; height: 70px; }
.w-h-80 { width: 80px; height: 80px; }
/* .h-40 { height: 40px; } /* This was 10rem, then 40px. Keeping 10rem from first def */
/* .h-60 { height: 60px; } /* This was 15rem, then 60px. Keeping 15rem from first def */
.p-b-wrap {
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
}
.br-bottom-grey {
    border-bottom: 1px solid var(--btngrey-color); /* Themed */
}
.br-grey-light {
    border: 1px solid var(--btngrey-color); /* Themed */
}
.br-grey {
    border: 1px solid var(--greybg-color); /* Themed */
}
.image-loader-wrap img {
    border-radius: 9999px;
    -o-object-fit: cover;
    object-fit: cover;
    border: 2px solid var(--love-pink-highlight); /* Themed image border */
}
.image-loader-wrap-link img {
    -o-object-fit: cover;
    object-fit: cover;
    border-radius: 8px; /* Softer corners for link thumbs */
    border: 1px solid rgba(255,255,255,0.2);
}
.image-loader-wrap canvas {
    border-radius: 9999px;
}
.limit-one-line {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}
.drag-parent { /* This implies being dragged, make it pop */
    opacity: 0.8;
    box-shadow: 0 5px 15px rgba(160, 118, 249, 0.5); /* Shadow with theme color */
    transform: scale(1.02);
}
.link-thumbnail {
    left: 8px;
    top: calc(50% - 21.5px);
}
.resultImg-wrap {
    line-height: 0;
    -webkit-column-count: 2;
    -webkit-column-gap: 0;
    -moz-column-count: 2;
    -moz-column-gap: 0;
    column-count: 2;
    -moz-column-gap: 16px;
    column-gap: 16px;
}
.resultImg-wrap img {
    width: 100% !important;
    height: auto !important;
    border-radius: 4px;
    margin-bottom: 16px; /* Add gap between images */
}
.resultImg-list-wrap {
    height: 250px;
    overflow-y: scroll;
    /* Themed scrollbar like .social-overflow-wrap */
    scrollbar-width: thin;
    scrollbar-color: var(--love-pink-highlight) rgba(0,0,0,0.1);
}
.resultImg-list-wrap::-webkit-scrollbar { width: 8px; }
.resultImg-list-wrap::-webkit-scrollbar-track { background: rgba(0,0,0,0.1); border-radius: 4px;}
.resultImg-list-wrap::-webkit-scrollbar-thumb { background-color: var(--love-pink-highlight); border-radius: 4px; border: 2px solid rgba(0,0,0,0.1); }

.search-result-img img {
    height: 100px;
}
.bl-modal {
    width: 100vw;
    height: 100vh;
    left: 0;
    top: 0;
    background: rgba(40, 20, 60, 0.85); /* Purplish backdrop */
    backdrop-filter: blur(5px); /* Frosted glass effect */
}
.bl-modal-backdrop {
    transition: opacity 0.3s ease;
}
.bl-modal-content-wrap {
    background: 0 0;
}
.bl-sm-modal .bl-modal-content {
    width: 450px;
}
.bl-md-modal .bl-modal-content {
    width: 500px;
}
.bl-auth-modal .bl-modal-content {
    padding: 0;
    width: 400px;
    background: rgba(255,255,255,0.95); /* Slightly transparent white for auth modal */
}
.btn-on-modal {
    left: 0;
    bottom: 0;
}
.bl-fixed-header {
    left: 0;
    top: 0;
    background: rgba(40, 20, 60, 0.7); /* Semi-transparent header */
    backdrop-filter: blur(10px);
    z-index: 100; /* Ensure header is on top */
}
.bl-header-menu {
    box-sizing: border-box;
    width: 240px;
    right: 0;
    top: 42px; /* Adjust if header height changes */
    max-height: 0;
    overflow: hidden;
    margin-top: -5px;
    background: rgba(60, 30, 80, 0.9); /* Menu dropdown bg */
    border-radius: 0 0 8px 8px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}
.bl-header-menu,
.bl-header-menu-active {
    transition: max-height 0.2s ease-out, margin-top 0.2s ease-out; /* Smoother transition */
}
.bl-header-menu-active {
    margin-top: 0;
    max-height: 300px;
}
.bl-content-top-space {
    padding-top: 60px; /* Adjust if header height changes */
}
.bl-content-top-extra-space {
    padding-top: 120px;
}
.slider-wrap {
    overflow-y: hidden;
    max-height: 0;
    transition-property: all;
    transition-duration: 0.5s;
    transition-timing-function: cubic-bezier(0, 1, 0.5, 1);
}
.slider-wrap.open-slider {
    max-height: 370px;
}
.bl-dash-main-wrap {
    padding: 24px 84px 100px 624px;
    /* background: rgba(255,255,255,0.05); /* Subtle bg for dash area */
}
.dash-side-wrap {
    height: 100vh;
    width: 560px;
    left: 0;
    background: rgba(0,0,0,0.1); /* Darker sidebar on gradient */
    /* Themed scrollbar */
    scrollbar-width: thin;
    scrollbar-color: var(--love-mid-purple) rgba(0,0,0,0.2);
}
.dash-side-wrap::-webkit-scrollbar { width: 5px; }
.dash-side-wrap::-webkit-scrollbar-thumb { background: var(--love-mid-purple); border-radius: 3px; }
.dash-side-wrap::-webkit-scrollbar-track { background: rgba(0,0,0,0.2); }
.dash-side-wrap::-webkit-scrollbar-thumb:hover { background: var(--love-pink-highlight); }

.dash-tab-wrap {
    border-bottom: 2px solid var(--greybg-color); /* Themed */
}
.dash-view-w {
    width: 600px;
}
.phone-inner-wrap {
    width: 259px;
}
.bl-phone-view-main {
    width: 350px;
    max-width: 350px;
    border: 15px solid #332244; /* Dark purple border */
    border-radius: 40px;
    height: 723px;
    max-height: 723px;
    transform-origin: right top;
    transform-origin: 0 0;
    background-color: #221133; /* Dark purple bg for phone */
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}
.transparent-scroll::-webkit-scrollbar { width: 5px; }
.transparent-scroll::-webkit-scrollbar-thumb,
.transparent-scroll::-webkit-scrollbar-track { background: 0 0; }
.transparent-scroll::-webkit-scrollbar-thumb:hover { background: 0 0; }

.bl-toggle-btn {
    width: 40px;
    height: 24px;
}
.bl-toggle-btn .bl-toggle-input {
    opacity: 0;
    width: 0;
    height: 0;
}
.bl-toggle-slider {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255,255,255,0.2); /* Themed off state */
    border-radius: 34px; /* Pill shape */
    cursor: pointer;
    transition: background-color 0.3s ease;
}
.bl-toggle-slider:hover {
    background: rgba(255,255,255,0.3);
}
.bl-toggle-slider:before { /* The dot */
    position: absolute;
    content: "";
    height: 17px;
    width: 17px;
    left: 4px;
    bottom: 3.5px; /* Center it */
    background-color: #fff;
    transition: 0.3s cubic-bezier(0.68, -0.55, 0.27, 1.55); /* Bouncy transition */
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.bl-toggle-btn input:checked + .bl-toggle-slider:before {
    transform: translateX(15px);
}
/* .sl-input-box already covered by .bl-input theming */
.sl-logo-holder {
    left: 16px;
    top: 12px;
}
.sl-logo-holder svg {
    width: 18px;
    height: 18px;
    fill: rgba(255,255,255,0.8); /* Icon color in input */
}
.social-link-dark svg circle,
.social-link-dark svg path,
.social-link-dark svg rect {
    fill: var(--dark-color); /* Kept as dark for contrast if needed */
}
.unused-links .sl-input-box {
    padding-right: 12px;
}
.sl-right-opt {
    right: 0;
    top: 0;
}
.sl-item-remove {
    width: 32px;
    height: 40px;
    /* Add visual indication, e.g. a cross icon */
}
.sl-item-remove:hover {
    background-color: rgba(255,0,0,0.1); /* Subtle red on hover */
}
.sl-drag-drop {
    width: 24px;
    height: 40px;
    background: var(--btngrey-color); /* Themed */
    cursor: grab;
}
.sl-input-box:focus + .sl-right-opt .sl-drag-drop {
    background: var(--blue-color); /* Themed pink */
}
.sl-input-box:focus + .sl-right-opt .sl-drag-drop svg circle {
    fill: #fff;
}
.link-thumb-img-upload {
    width: 96px;
    height: 96px;
    border: 2px dashed var(--love-pink-highlight); /* Themed dashed border */
    background: rgba(255,182,193,0.1); /* Light pink bg */
    border-radius: 8px;
}
.link-thumb-img {
    width: 43px;
    height: 43px;
}
.link-thumb-img img {
    -o-object-fit: cover;
    object-fit: cover;
    border-radius: 4px;
}
.img-upload-br { /* This seems to be the same as link-thumb-img-upload */
    border: 1px dashed var(--grey-color);
    transition: all 0.3s ease;
}
.img-upload-br:hover {
    border: 1px dotted var(--love-pink-highlight);
    background-color: rgba(255,182,193,0.15);
}
.grey-bg {
    background: rgba(255,255,255,0.05); /* Themed grey bg */
}
.img-close-btn { /* Make it more visible */
    right: -10px;
    top: -9px;
    background-color: var(--danger-color);
    color: white;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    line-height: 1;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.drag-and-drop {
    width: 34px;
    height: 100%;
    right: 0;
    top: 0;
    background: rgba(255,255,255,0.1);
    cursor: grab;
}
.theme-default-border {
    border: 2px solid transparent;
}
.theme-each-parent:hover {
    transform: scale(1.03);
    box-shadow: 0 5px 15px rgba(160,118,249,0.3); /* Themed shadow on hover */
}
.bl-transition {
    transition: all 0.5s ease;
}
.custom-color-picker { /* This is a complex gradient, will keep as is unless specifically asked to theme */
    background: radial-gradient(43.44% 43.44% at 50% 50%, #fff 0, hsla(0, 0%, 100%, 0.0001) 100%),
        conic-gradient(
            from 90deg at 50% 50%,
            #ff0606 -1.92deg,
            #ff06e8 46.47deg,
            #120bff 116.9deg,
            #0ad5ff 163.94deg,
            #11feff 178.78deg,
            #10f93b 222.31deg,
            #09ff08 248.2deg,
            #fffa06 302.85deg,
            #ff0606 358.08deg,
            #ff06e8 406.47deg
        );
}
.theme-bg-box,
.theme-btn-box {
    height: 200px;
    border-radius: 12px; /* Softer */
    background: rgba(255,255,255,0.1); /* Themed */
}
.bl-grey-box {
    width: 48%;
    background: rgba(255,255,255,0.08); /* Themed */
    border-radius: 8px;
}
.theme-bordered-btn {
    border: 2px solid var(--love-pink-highlight); /* Themed */
    color: var(--love-pink-highlight);
    background: transparent;
}
.theme-btn-each {
    border: 2px solid transparent;
    border-radius: 20px; /* Pill shape for these too */
}
.dark-low-op-bg { /* Used for what? Maybe footer? */
    background: rgba(0,0,0,0.3);
}
.theme-footer {
    height: 32px;
    background: rgba(0,0,0,0.2); /* Subtle dark footer */
}
.select-custom-theme {
    border: 1.5px dashed var(--love-mid-purple); /* Themed dashed border */
}
.stat-progress-each {
    height: 62px;
    background: rgba(255,255,255,0.05); /* Themed */
    box-shadow: inset 0 0 8px rgba(0,0,0,0.1); /* Inner shadow for depth */
    border-radius: 8px;
}
.nav-link-wrap li {
    width: 24px;
    height: 24px;
}
.bl-dash-wrap-sm {
    width: 495px;
}
.bl-checkmark {
    top: calc(50% - 10px);
    left: 0;
    height: 20px;
    width: 20px;
    background-color: rgba(255,255,255,0.2); /* Themed checkmark bg */
    border: 2px solid rgba(255,255,255,0.3); /* Themed border */
    border-radius: 50%;
    transition: all 0.2s ease;
}
.bl-radio-input:hover .input-radio ~ .bl-checkmark {
    border: 2px solid var(--love-pink-highlight); /* Themed hover */
}
.bl-radio-input .input-radio:checked ~ .bl-checkmark {
    background-color: var(--love-pink-highlight); /* Themed checked bg */
    border: 2px solid var(--love-pink-highlight);
}
.bl-disabled .bl-radio-input .input-radio:checked ~ .bl-checkmark {
    border: 2px solid rgba(255,255,255,0.15);
    background-color: rgba(255,255,255,0.1);
}
.bl-checkmark:after {
    content: "";
    position: absolute;
    display: none;
}
.bl-radio-input .input-radio:checked ~ .bl-checkmark:after { /* The check inside */
    display: block;
    /* Simple dot for checked state */
    top: calc(50% - 3px);
    left: calc(50% - 3px);
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: white;
}
.bl-disabled .bl-radio-input .bl-checkmark:after {
    background: 0 0;
}
.message-alert {
    left: 0;
    top: -55px;
    opacity: 0;
    transition: all 0.5s cubic-bezier(0.68, -0.55, 0.27, 1.55); /* Bouncy */
    background: var(--love-pink-highlight); /* Themed alert */
    color: white;
    padding: 10px 15px;
    border-radius: 8px;
    box-shadow: 0 3px 10px rgba(255,105,180,0.4);
}
.message-alert.show-alert {
    opacity: 1;
    top: 20px; /* Position it nicely */
}
.subs-main-bg {
    background: linear-gradient(120deg, rgba(137, 207, 240, 0.15), rgba(199, 146, 234, 0.15), rgba(255, 182, 193, 0.15)); /* Themed subtle gradient */
    border-radius: 12px;
    padding: 20px;
}
.faq-wrap { position: relative; } /* Needed for pseudo elements */
.faq-wrap:after,
.faq-wrap:before { /* Plus/minus icon */
    content: "";
    display: inline-block;
    left: 16px;
    background: var(--love-pink-highlight); /* Themed icon color */
    width: 10px;
    height: 2px;
    position: absolute;
    transition: 0.25s ease-in-out;
}
.faq-wrap:before {
    top: 24px;
}
.faq-wrap:after {
    top: 24px;
    transform: rotate(90deg);
}
.faq-wrap.active:after {
    transform: rotate(0deg); /* Forms a minus with :before */
}
.faq-child {
    overflow-y: hidden;
    max-height: 0;
    transition-property: all;
    transition-duration: 0.5s;
    transition-timing-function: cubic-bezier(0, 1, 0.5, 1);
}
.faq-child.open-slider { /* Max height may need to be dynamic if content varies */
    max-height: 370px;
}
.faq-child.show-answer {
    max-height: 110px;
}
.dropup-each:hover .fill-dark-on-h {
    fill: var(--love-pink-highlight); /* Themed fill */
}

/* Media Queries - Largely kept structure, but ensure themed colors are applied where mobile overrides occur */
@media (min-width: 1536px) {
    .dash-side-wrap {
        width: 42vw;
    }
    .bl-dash-main-wrap {
        padding: 24px 84px 100px calc(42vw + 64px);
    }
    .phone-inner-wrap {
        width: 319px;
    }
}
@media (max-width: 1440px) {
    .phone-inner-wrap {
        width: 288px;
    }
}
@media (min-width: 1300px) {
    .theme-each-parent {
        min-width: 160px;
    }
}
@media (max-width: 1300px) {
    .dash-side-wrap {
        width: 45vw;
    }
    .bl-dash-main-wrap {
        padding: 24px 84px 100px calc(45vw + 48px);
    }
    .dash-view-w {
        width: 100%;
    }
}
@media (max-width: 1024px) {
    .dash-side-wrap {
        width: 40vw;
    }
    .faq-child.show-answer {
        max-height: 250px;
    }
    .bl-dash-main-wrap {
        padding: 24px 32px 100px calc(40vw + 48px);
    }
}
@media (max-width: 900px) {
    .bl-color-each {
        width: 48px;
        height: 48px;
    }
    .bl-color-each-p {
        width: 52px;
        height: 52px;
    }
}
@media (max-width: 700px) {
    /* .bl-header already themed above */
    .bl-dash-header {
        padding: 0 20px;
    }
    .bl-content-top-space {
        padding-top: 76px;
    }
    .bl-logo svg path { /* Assuming logo needs to be white on themed header */
        fill: #fff;
    }
    .bl-logo svg .svg-log-bg {
        stroke: #fff;
        fill: transparent;
    }
    .bl-dash-main-wrap {
        padding: 24px 0 32px;
    }
    .dash-tab-wrap {
        padding: 0 16px;
    }
    /* .mob-primary-bg, .active-tab-line already themed above for mobile */
    .xs-text-22 {
        font-size: 22px;
    }
    .grey-svg-mob svg rect,
    .grey-svg-mob svg path { /* Renamed class to avoid conflict */
        fill: var(--grey-color); /* Themed grey */
    }
    .theme-btn-box {
        height: 150px;
    }
    .bl-modal .bl-modal-content {
        width: 90%; /* Don't take full width, leave some margin */
        margin: 0 auto;
    }
}
@media (max-width: 480px) {
    .xxs-w-h-40 {
        width: 40px;
        height: 40px;
    }
    .xxs-w-h-44 {
        width: 44px;
        height: 44px;
    }
    .xxs-h-32 {
        height: 32px;
    }
}

/* Tailwind-like responsive utilities - keep structure, colors will inherit or be specifically set */
@media (max-width: 900px) {
    .md\:block { display: block; }
    .md\:hidden { display: none; }
    .md\:flex-wrap-reverse { flex-wrap: wrap-reverse; }
    .md\:ml-0 { margin-left: 0; }
    .md\:mb-24 { margin-bottom: 24px; }
    .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
    .lg\:flex-wrap-reverse { flex-wrap: wrap-reverse; }
    .lg\:ml-0 { margin-left: 0; }
    .lg\:mb-16 { margin-bottom: 16px; }
    .lg\:pr-48 { padding-right: 48px; }
    .lg\:w-full { width: 100%; }
    .lg\:w-screen { width: 100vw; }
    .lg\:gap-16 { gap: 16px; }
    .lg\:gap-x-8 { -moz-column-gap: 8px; column-gap: 8px; }
    .lg\:gap-x-16 { -moz-column-gap: 16px; column-gap: 16px; }
    .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .xs\:bg-white {
        --tw-bg-opacity: 1;
        background-color: rgba(255, 255, 255, var(--tw-bg-opacity));
        color: #333; /* Text contrast */
    }
    .xs\:bg-bl-sp-grey { /* Use themed grey */
        background-color: var(--greybg-color);
    }
    .xs\:rounded-md { border-radius: 8px; }
    .xs\:border-none { border-style: none; }
    .xs\:block { display: block; }
    .xs\:hidden { display: none; }
    .xs\:flex-wrap-reverse { flex-wrap: wrap-reverse; }
    .xs\:h-screen { height: 100vh; }
    .xs\:text-14 { font-size: 14px; }
    .xs\:text-16 { font-size: 16px; }
    .xs\:mx-auto { margin-left: auto; margin-right: auto; }
    .xs\:mt-0 { margin-top: 0; }
    .xs\:mb-0 { margin-bottom: 0; }
    .xs\:mb-2 { margin-bottom: 2px; }
    .xs\:mr-4 { margin-right: 4px; }
    .xs\:ml-8 { margin-left: 8px; }
    .xs\:mt-16 { margin-top: 16px; }
    .xs\:mb-16 { margin-bottom: 16px; }
    .xs\:mt-24 { margin-top: 24px; }
    .xs\:mt-32 { margin-top: 32px; }
    .xs\:p-16 { padding: 16px; }
    .xs\:py-0 { padding-top: 0; padding-bottom: 0; }
    .xs\:px-8 { padding-left: 8px; padding-right: 8px; }
    .xs\:py-16 { padding-top: 16px; padding-bottom: 16px; }
    .xs\:px-16 { padding-left: 16px; padding-right: 16px; }
    .xs\:py-32 { padding-top: 32px; padding-bottom: 32px; }
    .xs\:pt-16 { padding-top: 16px; }
    .xs\:pt-24 { padding-top: 24px; }
    .xs\:pb-24 { padding-bottom: 24px; }
    .xs\:pt-32 { padding-top: 32px; }
    .xs\:pr-32 { padding-right: 32px; }
    .xs\:pb-32 { padding-bottom: 32px; }
    .xs\:pb-64 { padding-bottom: 64px; }
    .xs\:pr-72 { padding-right: 72px; }
    .xs\:fixed { position: fixed; }
    .xs\:right-20 { right: 20px; }
    .xs\:bottom-20 { bottom: 20px; }
    .xs\:right-32 { right: 32px; }
    .xs\:bottom-32 { bottom: 32px; }
    .xs\:bottom-48 { bottom: 48px; }
    .xs\:-bottom-0 { bottom: 0; }
    .xs\:shadow-xs { /* Use themed shadow if desired */
        --tw-shadow: 0px 6px 12px -6px rgba(160, 118, 249, 0.2), 0px 8px 24px -4px rgba(160, 118, 249, 0.15);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    }
    .xs\:text-center { text-align: center; }
    .xs\:w-full { width: 100%; }
    .xs\:z-30 { z-index: 30; }
    .xs\:gap-x-2 { -moz-column-gap: 2px; column-gap: 2px; }
    .xs\:gap-x-16 { -moz-column-gap: 16px; column-gap: 16px; }
    .xs\:gap-x-24 { -moz-column-gap: 24px; column-gap: 24px; }
    .xs\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .xs\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .xxs\:justify-between { justify-content: space-between; }
    .xxs\:mr-16 { margin-right: 16px; }
    .xxs\:gap-24 { gap: 24px; }
    .xxs\:gap-x-8 { -moz-column-gap: 8px; column-gap: 8px; }
    .xxs\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Vue transition classes - keep as is */
.fade-enter-active[data-v-6383fb07],
.fade-leave-active[data-v-6383fb07] {
    transition: opacity var(--transition-duration); /* --transition-duration needs to be defined or use a fixed value */
}
.fade-enter[data-v-6383fb07],
.fade-leave-to[data-v-6383fb07] {
    opacity: 0;
}
/* :root { --transition-duration: 0.3s; } /* Example for Vue transition */