/* Ethēar Dark Theme */
/* Material Icons y configuraciones específicas */
.material-symbols-outlined { 
    font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24; 
    vertical-align: middle; 
}

/* Integration inputs */
.integration-input {
    width: 100%;
    background: var(--bg-input, #0f0f17);
    border: 1px solid rgba(255,255,255,0.08);
    color: #E0E7FF;
    padding: 0.6rem 0.75rem;
    border-radius: 0.75rem;
    font-size: 0.85rem;
    line-height: 1.2rem;
}
.integration-input:focus { outline: none; box-shadow: 0 0 0 2px rgba(139,92,246,0.4); border-color: #8b5cf6; }

.abs-eye-btn {
    position: absolute;
    top: 50%;
    right: 0.5rem;
    transform: translateY(-50%);
    background: transparent;
    color: #9ca3af;
    padding: 4px;
    border-radius: 0.4rem;
}
.abs-eye-btn:hover { background: rgba(255,255,255,0.08); color: #fff; }

.sidebar-icon { 
    font-size: 24px; 
    line-height: 1; 
}

/* Scrollbar personalizado */
::-webkit-scrollbar { 
    width: 8px; 
}

::-webkit-scrollbar-track { 
    background: #0A0A10; 
}

::-webkit-scrollbar-thumb { 
    background-color: #1F1D33; 
    border-radius: 10px; 
}

::-webkit-scrollbar-thumb:hover { 
    background-color: #8B5CF6; 
}

/* Prose styles */
.prose { 
    color: #9392A3; 
}

.prose h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6 { 
    color: #E0E7FF; 
}

.prose strong { 
    color: #E0E7FF; 
}

.prose p {
    line-height: 1.6;
    padding-bottom: 7px;
}

/* --- Switch (toggle) components para Oráculo --- */
.switch-field {
    position: relative;
    display: flex;
    align-items: center;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.07);
    padding: 0.55rem 0.75rem 0.55rem 2.9rem;
    border-radius: 0.85rem;
    font-size: 0.65rem;
    line-height: 1.1;
    color: #cbd5e1;
    cursor: pointer;
    min-height: 44px;
    transition: background .25s, border-color .25s;
}
.switch-field:hover { background: rgba(255,255,255,0.07); border-color: rgba(255,255,255,0.18); }
.switch-field:active { background: rgba(139,92,246,0.15); }
.switch-field .switch-label { font-size: 0.68rem; font-weight: 500; }
.switch-input { position: absolute; opacity:0; pointer-events:none; }
.switch-slider {
    position: absolute; left:0.75rem; top:50%; transform: translateY(-50%);
    width: 46px; height: 24px; border-radius: 999px;
    background: linear-gradient(145deg,#1f2430,#141821);
    transition: background .35s, box-shadow .35s;
}
.switch-slider:before {
    content:""; position:absolute; left:3px; top:3px; width:18px; height:18px; border-radius:50%;
    background: radial-gradient(circle at 30% 30%, #ffffff, #d1d9e6 55%, #97a2b3 100%);
    transition: transform .35s cubic-bezier(.55,.2,.35,1), background .35s;
}
.switch-input:checked + .switch-slider {
    background: linear-gradient(145deg, var(--switch-on1,#6d28d9), var(--switch-on2,#8b5cf6));
}
.switch-input:checked + .switch-slider:before {
    transform: translateX(22px);
}
.switch-field:focus-within { outline: 2px solid #6366f1; outline-offset:2px; }

/* Flags resumen oráculo */
#oracle-visual-summary {
    backdrop-filter: blur(4px);
}
#oracle-flags-list .flag-item {
    display:flex; align-items:center; gap:6px; padding:6px 8px; border:1px solid rgba(255,255,255,0.07); border-radius:8px; background:rgba(255,255,255,0.04);
    transition: background .25s, border-color .25s;
}
#oracle-flags-list .flag-item.active { border-color: rgba(99,102,241,0.6); background: rgba(99,102,241,0.15); }
#oracle-flags-list .flag-item span { font-size:10px; line-height:1.1; color:#cbd5e1; }

/* Canvas fallback border */
#oracle-penalty-chart { width:100%; border:1px dashed rgba(255,255,255,0.08); border-radius:8px; background: linear-gradient(180deg,rgba(255,255,255,0.02),rgba(255,255,255,0)); }

/* Report prose styles */
.report-prose { 
    font-family: 'EB Garamond', serif; 
    color: #475569; 
}

.report-prose h1 { 
    font-family: 'Poppins', sans-serif; 
    font-weight: 700; 
    color: #1E293B; 
}

.report-prose h2 { 
    font-family: 'Poppins', sans-serif; 
    font-weight: 600; 
    color: #1E293B; 
    margin-top: 2em; 
    margin-bottom: 1em; 
    border-bottom: 1px solid #CBD5E1; 
    padding-bottom: 0.5em;
}

.report-prose h3 { 
    font-family: 'Poppins', sans-serif; 
    font-weight: 600; 
    color: #334155; 
    margin-top: 1.5em; 
    margin-bottom: 0.5em;
}

.report-prose p { 
    line-height: 1.7; 
    margin-bottom: 1.25em; 
}

.report-prose strong { 
    color: #1E293B; 
}

.page-break { 
    page-break-before: always; 
}

@media print { 
    .no-print { 
        display: none; 
    } 
    .page-break { 
        margin-top: 2rem; 
    } 
}

/* Tailwind CSS Reset y Variables */
*, ::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 */
*, ::after, ::before {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
    border-color: #e5e7eb;
}

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

:host, html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -moz-tab-size: 4;
    tab-size: 4;
    font-family: Poppins, sans-serif;
    font-feature-settings: normal;
    font-variation-settings: normal;
    -webkit-tap-highlight-color: transparent;
}

body {
    margin: 0;
    line-height: inherit;
}

hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
}

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

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

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

b, strong {
    font-weight: bolder;
}

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

small {
    font-size: 80%;
}

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

sub {
    bottom: -.25em;
}

sup {
    top: -.5em;
}

table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
}

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

button, select {
    text-transform: none;
}

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

:-moz-focusring {
    outline: auto;
}

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

progress {
    vertical-align: baseline;
}

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

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

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

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
}

summary {
    display: list-item;
}

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

fieldset {
    margin: 0;
    padding: 0;
}

legend {
    padding: 0;
}

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

dialog {
    padding: 0;
}

textarea {
    resize: vertical;
}

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

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

:disabled {
    cursor: default;
}

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

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

/* ================= Custom Numeric Input (Withdrawal Amount) ================= */
/* Selector específico para no afectar otros number inputs genéricos */
input#withdrawal_amount {
    position: relative;
    background: linear-gradient(145deg, #11121A 0%, #0C0D13 60%) padding-box;
    border: 1.5px solid rgba(139,92,246,0.25);
    box-shadow: 0 0 0 0 rgba(139,92,246,0.35), 0 4px 18px -6px rgba(0,0,0,0.55);
    transition: border-color .25s ease, box-shadow .35s ease, background .4s ease;
    backdrop-filter: blur(6px);
}
input#withdrawal_amount:hover:not(:disabled):not(:focus) {
    border-color: rgba(236,72,153,0.45);
}
input#withdrawal_amount:focus-visible,
input#withdrawal_amount:focus {
    outline: none;
    border-color: #8B5CF6;
    box-shadow: 0 0 0 3px rgba(139,92,246,0.25), 0 6px 28px -8px rgba(139,92,246,0.35);
}
input#withdrawal_amount:disabled {
    opacity: .55;
    cursor: not-allowed;
    filter: grayscale(.3);
}
/* Invalid (HTML5 constraints) */
input#withdrawal_amount:invalid:not(:placeholder-shown) {
    border-color: #F87171;
    box-shadow: 0 0 0 2px rgba(248,113,113,0.25);
}
/* Valid state subtle glow */
input#withdrawal_amount:valid:not(:placeholder-shown) {
    border-color: #10B981;
    box-shadow: 0 0 0 2px rgba(16,185,129,0.18);
}
/* Spin buttons (WebKit) */
input#withdrawal_amount::-webkit-inner-spin-button,
input#withdrawal_amount::-webkit-outer-spin-button {
    opacity: 0.6;
    height: 40px;
    width: 20px;
    transition: .25s ease;
}
input#withdrawal_amount:hover::-webkit-inner-spin-button,
input#withdrawal_amount:hover::-webkit-outer-spin-button,
input#withdrawal_amount:focus::-webkit-inner-spin-button,
input#withdrawal_amount:focus::-webkit-outer-spin-button {
    opacity: 1;
}
/* Remove arrows in Firefox */
input#withdrawal_amount[type=number] { -moz-appearance: textfield; }
/* Placeholder style */
input#withdrawal_amount::placeholder { color: #4B5563; opacity: .75; }
/* Amount suffix helper (optional future) */
.withdrawal-amount-wrapper { position: relative; }
.withdrawal-amount-wrapper .currency-suffix {
    position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    font-size: .85rem; font-weight: 600; color: #6B7280; letter-spacing: .5px;
    transition: color .3s ease;
    pointer-events: none;
}
input#withdrawal_amount:focus ~ .currency-suffix { color: #A78BFA; }
/* Error text helper */
.withdrawal-error-msg { font-size: .65rem; margin-top: 4px; color: #F87171; display: none; }
input#withdrawal_amount:invalid:not(:placeholder-shown) ~ .withdrawal-error-msg { display: block; }
/* ========================================================================== */

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

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

.absolute {
    position: absolute;
}

.relative {
    position: relative;
}

.inset-0 {
    inset: 0px;
}

.right-0 {
    right: 0px;
}

.right-3 {
    right: 0.75rem;
}

.top-0 {
    top: 0px;
}

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

.left-1 {
    left: 0.25rem;
}

.top-1 {
    top: 0.25rem;
}

.top-full {
    top: 100%;
}

.bottom-0 {
    bottom: 0px;
}

.left-0 {
    left: 0px;
}

.top-3 {
    top: 0.75rem;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.block {
    display: block;
}

.flex {
    display: flex;
}

.grid {
    display: grid;
}

.hidden {
    display: none;
}

.aspect-square {
    aspect-ratio: 1 / 1;
}

.h-10 {
    height: 2.5rem;
}

.h-full {
    height: 100%;
}

.h-screen {
    height: 100vh;
}

.h-2 {
    height: 0.5rem;
}

.h-5 {
    height: 1.25rem;
}

.h-9 {
    height: 2.25rem;
}

.h-48 {
    height: 12rem;
}

.h-24 {
    height: 6rem;
}

.h-6 {
    height: 1.5rem;
}

.h-8 {
    height: 2rem;
}

.h-12 {
    height: 3rem;
}

.h-16 {
    height: 4rem;
}

.h-80 {
    height: 20rem;
}

.max-h-0 {
    max-height: 0px;
}

.max-h-\[65vh\] {
    max-height: 65vh;
}

.max-h-96 {
    max-height: 24rem;
}

.w-10 {
    width: 2.5rem;
}

.w-full {
    width: 100%;
}

.w-2 {
    width: 0.5rem;
}

.w-5 {
    width: 1.25rem;
}

.w-64 {
    width: 16rem;
}

.w-9 {
    width: 2.25rem;
}

.w-14 {
    width: 3.5rem;
}

.w-24 {
    width: 6rem;
}

.w-6 {
    width: 1.5rem;
}

.w-48 {
    width: 12rem;
}

.w-12 {
    width: 3rem;
}

.w-80 {
    width: 20rem;
}

.max-w-2xl {
    max-width: 42rem;
}

.max-w-md {
    max-width: 28rem;
}

.max-w-none {
    max-width: none;
}

.flex-1 {
    flex: 1 1 0%;
}

.flex-shrink-0 {
    flex-shrink: 0;
}

.flex-grow {
    flex-grow: 1;
}

.-translate-y-1\/2 {
    --tw-translate-y: -50%;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.translate-x-6 {
    --tw-translate-x: 1.5rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

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

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

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

.cursor-pointer {
    cursor: pointer;
}

.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.flex-col {
    flex-direction: column;
}

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

.items-start {
    align-items: flex-start;
}

.items-end {
    align-items: flex-end;
}

.items-center {
    align-items: center;
}

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

.justify-between {
    justify-content: space-between;
}

.justify-around {
    justify-content: space-around;
}

.gap-2 {
    gap: 0.5rem;
}

.gap-8 {
    gap: 2rem;
}

.gap-4 {
    gap: 1rem;
}

.space-x-2 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(0.5rem * var(--tw-space-x-reverse));
    margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-x-4 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(1rem * var(--tw-space-x-reverse));
    margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}

.space-y-6 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}

.space-y-8 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}

.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-x-6 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(1.5rem * var(--tw-space-x-reverse));
    margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));
}

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

.divide-y > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-y-reverse: 0;
    border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
    border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}

.divide-theme-accent > :not([hidden]) ~ :not([hidden]) {
    --tw-divide-opacity: 1;
    border-color: rgb(31 29 51 / var(--tw-divide-opacity, 1));
}

.overflow-hidden {
    overflow: hidden;
}

.overflow-x-auto {
    overflow-x: auto;
}

.overflow-y-auto {
    overflow-y: auto;
}

.overflow-x-hidden {
    overflow-x: hidden;
}

.truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.whitespace-nowrap {
    white-space: nowrap;
}

.rounded-2xl {
    border-radius: 1rem;
}

.rounded-full {
    border-radius: 9999px;
}

.rounded-lg {
    border-radius: 0.5rem;
}

.rounded-xl {
    border-radius: 0.75rem;
}

.rounded-md {
    border-radius: 0.375rem;
}

.rounded-l-lg {
    border-top-left-radius: 0.5rem;
    border-bottom-left-radius: 0.5rem;
}

.rounded-r-lg {
    border-top-right-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
}

.border {
    border-width: 1px;
}

.border-b {
    border-bottom-width: 1px;
}

.border-t {
    border-top-width: 1px;
}

.border-b-2 {
    border-bottom-width: 2px;
}

.border-white\/10 {
    border-color: rgb(255 255 255 / 0.1);
}

.border-theme-accent {
    --tw-border-opacity: 1;
    border-color: rgb(31 29 51 / var(--tw-border-opacity, 1));
}

.border-theme-accent\/50 {
    border-color: rgb(31 29 51 / 0.5);
}

.border-white\/15 {
    border-color: rgb(255 255 255 / 0.15);
}

.border-primary {
    --tw-border-opacity: 1;
    border-color: rgb(139 92 246 / var(--tw-border-opacity, 1));
}

.border-transparent {
    border-color: transparent;
}

.bg-theme-bg {
    --tw-bg-opacity: 1;
    background-color: rgb(10 10 16 / var(--tw-bg-opacity, 1));
}

.bg-primary {
    --tw-bg-opacity: 1;
    background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1));
}

.bg-secondary {
    --tw-bg-opacity: 1;
    background-color: rgb(236 72 153 / var(--tw-bg-opacity, 1));
}

.bg-theme-accent\/30 {
    background-color: rgb(31 29 51 / 0.3);
}

.bg-theme-accent\/50 {
    background-color: rgb(31 29 51 / 0.5);
}

.bg-theme-card {
    --tw-bg-opacity: 1;
    background-color: rgb(22 21 35 / var(--tw-bg-opacity, 1));
}

.bg-white\/20 {
    background-color: rgb(255 255 255 / 0.2);
}

.bg-gray-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));
}

.bg-green-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));
}

.bg-theme-accent {
    --tw-bg-opacity: 1;
    background-color: rgb(31 29 51 / var(--tw-bg-opacity, 1));
}

.bg-yellow-500 {
    --tw-bg-opacity: 1;
    background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1));
}

.bg-white {
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.bg-secondary\/80 {
    background-color: rgb(236 72 153 / 0.8);
}

.bg-theme-bg\/50 {
    background-color: rgb(10 10 16 / 0.5);
}

.bg-theme-card\/90 {
    background-color: rgb(22 21 35 / 0.9);
}

.bg-black\/50 {
    background-color: rgb(0 0 0 / 0.5);
}

.bg-blue-500\/20 {
    background-color: rgb(59 130 246 / 0.2);
}

.bg-green-500\/20 {
    background-color: rgb(34 197 94 / 0.2);
}

.bg-gradient-to-br {
    background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}

.bg-gradient-to-r {
    background-image: linear-gradient(to right, var(--tw-gradient-stops));
}

.bg-gradient-to-t {
    background-image: linear-gradient(to top, var(--tw-gradient-stops));
}

.from-primary {
    --tw-gradient-from: #8B5CF6 var(--tw-gradient-from-position);
    --tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-black\/80 {
    --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);
}

.via-transparent {
    --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.to-secondary {
    --tw-gradient-to: #EC4899 var(--tw-gradient-to-position);
}

.to-black\/20 {
    --tw-gradient-to: rgb(0 0 0 / 0.2) var(--tw-gradient-to-position);
}

.bg-cover {
    background-size: cover;
}

.bg-center {
    background-position: center;
}

.object-cover {
    object-fit: cover;
}

.p-8 {
    padding: 2rem;
}

.p-2 {
    padding: 0.5rem;
}

.p-3 {
    padding: 0.75rem;
}

.p-4 {
    padding: 1rem;
}

.p-6 {
    padding: 1.5rem;
}

.p-5 {
    padding: 1.25rem;
}

.p-1\.5 {
    padding: 0.375rem;
}

.p-1 {
    padding: 0.25rem;
}

.px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}

.px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

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

.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

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

.py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

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

.px-1 {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}

.pb-4 {
    padding-bottom: 1rem;
}

.pl-8 {
    padding-left: 2rem;
}

.pb-3 {
    padding-bottom: 0.75rem;
}

.pl-2 {
    padding-left: 0.5rem;
}

.pt-4 {
    padding-top: 1rem;
}

.pr-2 {
    padding-right: 0.5rem;
}

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

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

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

.font-sans {
    font-family: Poppins, sans-serif;
}

.font-mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
}

.\!text-xl {
    font-size: 1.25rem !important;
    line-height: 1.75rem !important;
}

.text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
}

.text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
}

.text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
}

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

.\!text-base {
    font-size: 1rem !important;
    line-height: 1.5rem !important;
}

.text-6xl {
    font-size: 3.75rem;
    line-height: 1;
}

.\!text-4xl {
    font-size: 2.25rem !important;
    line-height: 2.5rem !important;
}

.text-5xl {
    font-size: 3rem;
    line-height: 1;
}

.text-8xl {
    font-size: 6rem;
    line-height: 1;
}

.\!text-3xl {
    font-size: 1.875rem !important;
    line-height: 2.25rem !important;
}

.\!text-sm {
    font-size: 0.875rem !important;
    line-height: 1.25rem !important;
}

.font-bold {
    font-weight: 700;
}

.font-medium {
    font-weight: 500;
}

.font-semibold {
    font-weight: 600;
}

.uppercase {
    text-transform: uppercase;
}

.leading-relaxed {
    line-height: 1.625;
}

.leading-tight {
    line-height: 1.25;
}

.leading-none {
    line-height: 1;
}

.text-theme-text {
    --tw-text-opacity: 1;
    color: rgb(224 231 255 / var(--tw-text-opacity, 1));
}

.text-primary {
    --tw-text-opacity: 1;
    color: rgb(139 92 246 / var(--tw-text-opacity, 1));
}

.text-theme-text-secondary {
    --tw-text-opacity: 1;
    color: rgb(147 146 163 / var(--tw-text-opacity, 1));
}

.text-white {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.text-amber-400 {
    --tw-text-opacity: 1;
    color: rgb(251 191 36 / var(--tw-text-opacity, 1));
}

.text-green-400 {
    --tw-text-opacity: 1;
    color: rgb(74 222 128 / var(--tw-text-opacity, 1));
}

.text-theme-text-secondary\/50 {
    color: rgb(147 146 163 / 0.5);
}

.text-red-500 {
    --tw-text-opacity: 1;
    color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}

.text-secondary {
    --tw-text-opacity: 1;
    color: rgb(236 72 153 / var(--tw-text-opacity, 1));
}

.text-white\/80 {
    color: rgb(255 255 255 / 0.8);
}

.text-blue-400 {
    --tw-text-opacity: 1;
    color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}

.text-theme-text-secondary\/70 {
    color: rgb(147 146 163 / 0.7);
}

.opacity-25 {
    opacity: 0.25;
}

.opacity-75 {
    opacity: 0.75;
}

.opacity-80 {
    opacity: 0.8;
}

.opacity-90 {
    opacity: 0.9;
}

.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-primary\/10 {
    --tw-shadow-color: rgb(139 92 246 / 0.1);
    --tw-shadow: var(--tw-shadow-colored);
}

.shadow-cyan-500\/30 {
    --tw-shadow-color: rgb(6 182 212 / 0.3);
    --tw-shadow: var(--tw-shadow-colored);
}

.shadow-indigo-500\/20 {
    --tw-shadow-color: rgb(99 102 241 / 0.2);
    --tw-shadow: var(--tw-shadow-colored);
}

.shadow-primary\/40 {
    --tw-shadow-color: rgb(139 92 246 / 0.4);
    --tw-shadow: var(--tw-shadow-colored);
}

.shadow-secondary\/50 {
    --tw-shadow-color: rgb(236 72 153 / 0.5);
    --tw-shadow: var(--tw-shadow-colored);
}

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

.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-colors {
    transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-transform {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-opacity {
    transition-property: opacity;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.duration-200 {
    transition-duration: 200ms;
}

.duration-300 {
    transition-duration: 300ms;
}

.ease-in-out {
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.file\:mr-4::file-selector-button {
    margin-right: 1rem;
}

.file\:rounded-full::file-selector-button {
    border-radius: 9999px;
}

.file\:border-0::file-selector-button {
    border-width: 0px;
}

.file\:bg-primary::file-selector-button {
    --tw-bg-opacity: 1;
    background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1));
}

.file\:px-4::file-selector-button {
    padding-left: 1rem;
    padding-right: 1rem;
}

.file\:py-2::file-selector-button {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.file\:text-sm::file-selector-button {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.file\:font-semibold::file-selector-button {
    font-weight: 600;
}

.file\:text-white::file-selector-button {
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.placeholder\:text-theme-text-secondary\/50::placeholder {
    color: rgb(147 146 163 / 0.5);
}

.hover\:-translate-y-1:hover {
    --tw-translate-y: -0.25rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:-translate-y-2:hover {
    --tw-translate-y: -0.5rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:border-gray-500:hover {
    --tw-border-opacity: 1;
    border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));
}

.hover\:bg-theme-accent:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(31 29 51 / var(--tw-bg-opacity, 1));
}

.hover\:bg-theme-card:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(22 21 35 / var(--tw-bg-opacity, 1));
}

.hover\:bg-white\/30:hover {
    background-color: rgb(255 255 255 / 0.3);
}

.hover\:bg-theme-accent\/70:hover {
    background-color: rgb(31 29 51 / 0.7);
}

.hover\:bg-secondary:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(236 72 153 / var(--tw-bg-opacity, 1));
}

.hover\:bg-red-500\/10:hover {
    background-color: rgb(239 68 68 / 0.1);
}

.hover\:bg-secondary\/10:hover {
    background-color: rgb(236 72 153 / 0.1);
}

.hover\:bg-theme-accent\/50:hover {
    background-color: rgb(31 29 51 / 0.5);
}

.hover\:bg-blue-500\/20:hover {
    background-color: rgb(59 130 246 / 0.2);
}

.hover\:bg-red-500\/20:hover {
    background-color: rgb(239 68 68 / 0.2);
}

.hover\:bg-yellow-500\/20:hover {
    background-color: rgb(234 179 8 / 0.2);
}

.hover\:text-theme-text:hover {
    --tw-text-opacity: 1;
    color: rgb(224 231 255 / var(--tw-text-opacity, 1));
}

.hover\:text-blue-400:hover {
    --tw-text-opacity: 1;
    color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}

.hover\:text-red-400:hover {
    --tw-text-opacity: 1;
    color: rgb(248 113 113 / var(--tw-text-opacity, 1));
}

.hover\:text-yellow-400:hover {
    --tw-text-opacity: 1;
    color: rgb(250 204 21 / var(--tw-text-opacity, 1));
}

.hover\:underline:hover {
    -webkit-text-decoration-line: underline;
    text-decoration-line: underline;
}

.hover\:opacity-80:hover {
    opacity: 0.8;
}

.hover\:opacity-90:hover {
    opacity: 0.9;
}

.hover\:shadow-2xl:hover {
    --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);
}

.hover\:shadow-primary\/20:hover {
    --tw-shadow-color: rgb(139 92 246 / 0.2);
    --tw-shadow: var(--tw-shadow-colored);
}

.hover\:file\:bg-primary\/80::file-selector-button:hover {
    background-color: rgb(139 92 246 / 0.8);
}

.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-primary:focus {
    --tw-ring-opacity: 1;
    --tw-ring-color: rgb(139 92 246 / var(--tw-ring-opacity, 1));
}

.disabled\:cursor-not-allowed:disabled {
    cursor: not-allowed;
}

.disabled\:bg-theme-accent:disabled {
    --tw-bg-opacity: 1;
    background-color: rgb(31 29 51 / var(--tw-bg-opacity, 1));
}

.disabled\:no-underline:disabled {
    -webkit-text-decoration-line: none;
    text-decoration-line: none;
}

.disabled\:opacity-50:disabled {
    opacity: 0.5;
}

@media (min-width: 640px) {
    .sm\:block {
        display: block;
    }

    .sm\:flex {
        display: flex;
    }

    .sm\:grid-cols-6 {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .md\:col-span-1 {
        grid-column: span 1 / span 1;
    }

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

    .md\:w-auto {
        width: auto;
    }

    .md\:grid-cols-12 {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .md\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .md\:p-8 {
        padding: 2rem;
    }
}

@media (min-width: 1024px) {
    .lg\:col-span-2 {
        grid-column: span 2 / span 2;
    }

    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .xl\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Clases adicionales necesarias */
.w-0 {
    width: 0 !important;
    overflow: hidden !important;
}

.max-h-\[80vh\] {
    max-height: 80vh;
}

.h-\[80vh\] {
    height: 80vh;
}

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

.toggle-switch {
    position: relative;
    display: inline-block;
    width: 3.5rem;
    height: 2rem;
}

.toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgb(31 29 51);
    transition: .4s;
    border-radius: 2rem;
}

.toggle-slider:before {
    position: absolute;
    content: "";
    height: 1.5rem;
    width: 1.5rem;
    left: 0.25rem;
    bottom: 0.25rem;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
}

input:checked + .toggle-slider {
    background-color: rgb(139 92 246);
}

input:checked + .toggle-slider:before {
    transform: translateX(1.5rem);
}

/* Form elements */
input, textarea, select {
    font-size: 16px; /* Prevent zoom on mobile */
}

input[type="text"], input[type="email"], input[type="password"], 
input[type="number"], input[type="date"], input[type="time"], 
input[type="url"], input[type="tel"], textarea, select {
    /*background-color: rgb(10 10 16);*/
    /*border: 1px solid rgb(31 29 51);*/
    /*border-radius: 0.5rem;*/
    /*padding: 0.5rem 0.75rem;*/
    /*color: rgb(224 231 255);*/
    /*transition: border-color 0.2s ease, box-shadow 0.2s ease;*/
}

input[type="text"]:focus, input[type="email"]:focus, input[type="password"]:focus, 
input[type="number"]:focus, input[type="date"]:focus, input[type="time"]:focus,
input[type="url"]:focus, input[type="tel"]:focus, textarea:focus, select:focus {
    /*outline: none;*/
    /*border-color: rgb(139 92 246);*/
    /*box-shadow: 0 0 0 2px rgba(139, 92, 246, 0.2);*/
}

input::placeholder, textarea::placeholder {
    /*color: rgba(147, 146, 163, 0.5);*/
}

/* Animations especificas para compatibilidad */
@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

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

/* Dropdown animations para header */
header {
    z-index: 60; /* elevar por encima de tarjetas del dashboard (z-10 / z-40 sidebar) */
}

#profile-dropdown { z-index: 70; }
#notifications-dropdown { z-index: 70; }

/* Utilidad opcional si se requiere forzar sobre overlays futuros */
.z-max-top { z-index: 999 !important; }

#notifications-dropdown,
#profile-dropdown {
    transform-origin: top right;
    transition: all 0.2s ease-out;
}

#notifications-dropdown.hidden,
#profile-dropdown.hidden {
    opacity: 0;
    transform: scale(0.95) translateY(-10px);
    pointer-events: none;
}

#notifications-dropdown:not(.hidden),
#profile-dropdown:not(.hidden) {
    opacity: 1;
    transform: scale(1) translateY(0);
    pointer-events: all;
}

/* Mobile menu */
#mobile-menu {
    transition: opacity 0.3s ease-in-out;
}

#mobile-menu.hidden {
    opacity: 0;
    pointer-events: none;
}

#mobile-menu:not(.hidden) {
    opacity: 1;
    pointer-events: all;
}

/* Colores de estado específicos */
.text-gray-400 { color: rgb(156, 163, 175); }
.text-yellow-400 { color: rgb(250, 204, 21); }
.text-red-400 { color: rgb(248, 113, 113); }
.text-purple-400 { color: rgb(196, 181, 253); }

/* Status con background específicos */
.bg-yellow-500\/20 { background-color: rgba(234, 179, 8, 0.2); }
.bg-red-500\/20 { background-color: rgba(239, 68, 68, 0.2); }
.bg-purple-500\/20 { background-color: rgba(168, 85, 247, 0.2); }
.bg-gray-500\/20 { background-color: rgba(107, 114, 128, 0.2); }

/* ================= Settings Redesign Additions ================= */
.settings-anchor-nav a.settings-pill {
    background: rgba(31,29,51,0.55);
    color: #9392A3;
    padding: 6px 14px;
    border-radius: 999px;
    font-weight: 600;
    letter-spacing: .3px;
    transition: background .25s ease, color .25s ease, box-shadow .25s ease;
    border: 1px solid rgba(255,255,255,0.04);
}
.settings-anchor-nav a.settings-pill:hover {
    color:#E0E7FF;
    background: linear-gradient(135deg,#1F1D33,#221F36);
    box-shadow: 0 2px 8px -2px rgba(0,0,0,0.45);
}
.settings-section-block { position:relative; }
.settings-section-block + .settings-section-block { border-top:1px solid rgba(255,255,255,0.05); padding-top:2.25rem; margin-top:1rem; }
.settings-block-header { margin-bottom:1.25rem; }
.settings-block-header .block-title { display:flex; align-items:center; font-size:1rem; font-weight:600; color:#E0E7FF; letter-spacing:.2px; }
.settings-block-header .block-desc { font-size:11px; color:#9392A3; margin-top:2px; letter-spacing:.3px; }
.settings-label { display:block; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.6px; color:#9392A3; margin-bottom:4px; }
.settings-input { width:100%; background:#0f0f17; border:1px solid rgba(255,255,255,0.08); color:#E0E7FF; padding:.65rem .8rem; border-radius:.85rem; font-size:.8rem; line-height:1.2rem; transition:border-color .25s ease, box-shadow .25s ease, background .3s ease; }
.settings-input:focus { outline:none; border-color:#8B5CF6; box-shadow:0 0 0 2px rgba(139,92,246,0.35); }
.settings-section-block:hover:before { opacity:1; }
.settings-section-block:before { content:""; position:absolute; left:-20px; top:0; bottom:0; width:4px; border-radius:4px; background:linear-gradient(180deg,rgba(139,92,246,0.55),rgba(236,72,153,0.55)); opacity:0; transition:opacity .4s ease; }
@media (max-width: 768px){ .settings-section-block:before { left:-12px; } }
/* =============================================================== */

/* ================= Oráculo Chat Message Rich Styles (inspirado ChatGPT) ================= */
.oracle-message { 
    font-size: 0.92rem; 
    line-height: 1.55; 
    font-weight: 400; 
    color: #f3f4f6; 
    --oracle-accent: #8B5CF6; 
    --oracle-accent-soft: rgba(139,92,246,0.18);
}
.oracle-message p { 
    margin: 0 0 0.85em; 
    line-height: 1.6; 
    word-wrap: break-word; 
}
.oracle-message p:last-child { margin-bottom: 0; }
.oracle-message h1,.oracle-message h2,.oracle-message h3,.oracle-message h4 { 
    font-weight: 600; 
    line-height: 1.25; 
    margin: 1.4em 0 0.6em; 
    color: #ffffff; 
}
.oracle-message h1 { font-size: 1.35rem; }
.oracle-message h2 { font-size: 1.20rem; }
.oracle-message h3 { font-size: 1.05rem; }
.oracle-message h4 { font-size: 0.98rem; }
.oracle-message ul, .oracle-message ol { 
    margin: 0 0 1em 1.4em; 
    padding: 0; 
    display: block; 
}
.oracle-message ul { list-style: disc; }
.oracle-message ol { list-style: decimal; }
.oracle-message li { 
    margin: 0.35em 0; 
    padding-left: 0.25em; 
}
.oracle-message li::marker { color: var(--oracle-accent); font-weight: 500; }
.oracle-message strong { color: #fff; font-weight: 600; }
.oracle-message em { color: #e0e7ff; }
.oracle-message blockquote { 
    margin: 1em 0; 
    padding: 0.85em 1em; 
    border-left: 4px solid var(--oracle-accent); 
    background: linear-gradient(90deg, rgba(139,92,246,0.15), rgba(139,92,246,0.03));
    border-radius: 0 10px 10px 0; 
    font-style: italic; 
    color: #e3dfff; 
}
.oracle-message code { 
    background: #1f1f2b; 
    padding: 2px 6px; 
    border-radius: 6px; 
    font-size: 0.78rem; 
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; 
    color: #E0D7FF; 
    border: 1px solid rgba(139,92,246,0.25); 
}
.oracle-message pre { 
    background: #161622; 
    padding: 1rem 1rem 1.1rem; 
    line-height: 1.4; 
    overflow: auto; 
    border-radius: 14px; 
    border: 1px solid rgba(139,92,246,0.25); 
    margin: 1.1em 0; 
    position: relative; 
    box-shadow: 0 4px 18px -6px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.03) inset;
}
.oracle-message pre code { 
    background: transparent; 
    padding: 0; 
    border: 0; 
    font-size: 0.75rem; 
    color: #d9d7ff; 
}
.oracle-message hr { 
    border: 0; 
    border-top: 1px solid rgba(139,92,246,0.3); 
    margin: 1.75em 0; 
}
.oracle-message a { 
    color: var(--oracle-accent); 
    text-decoration: none; 
    position: relative; 
}
.oracle-message a:hover { text-decoration: underline; }
.oracle-message table { 
    border-collapse: collapse; 
    width: 100%; 
    margin: 1em 0; 
    font-size: 0.8rem; 
}
.oracle-message th, .oracle-message td { 
    border: 1px solid rgba(255,255,255,0.1); 
    padding: 6px 8px; 
    text-align: left; 
}
.oracle-message tr:nth-child(even) { background: rgba(255,255,255,0.03); }
.oracle-message::-webkit-scrollbar { height: 10px; }
.oracle-message::-webkit-scrollbar-thumb { background: #2b2440; }
.oracle-message ul ul, .oracle-message ol ol, .oracle-message ul ol, .oracle-message ol ul { margin-bottom: 0.6em; }
.oracle-message > :last-child { margin-bottom: 0 !important; }
@media (max-width:480px){
  .oracle-message { font-size: 0.88rem; }
  .oracle-message pre { font-size: 0.7rem; }
}
/* ===================================================================== */