@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
    color-scheme: light;
    --pv-page-bg: linear-gradient(180deg, #f8fafc 0%, #eef6ff 55%, #ffffff 100%);
    --pv-panel-bg: rgba(255, 255, 255, 0.94);
    --pv-panel-subtle: rgba(248, 250, 252, 0.96);
    --pv-panel-strong: rgba(226, 232, 240, 0.82);
    --pv-border: rgba(148, 163, 184, 0.28);
    --pv-border-strong: rgba(148, 163, 184, 0.45);
    --pv-text: #0f172a;
    --pv-text-soft: #334155;
    --pv-text-muted: #64748b;
    --pv-text-faint: #94a3b8;
    --pv-input-bg: #ffffff;
    --pv-input-border: rgba(148, 163, 184, 0.38);
    --pv-shadow: 0 18px 55px rgba(15, 23, 42, 0.08);
    --pv-overlay: rgba(15, 23, 42, 0.52);
}

html,
body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    background: var(--pv-page-bg) !important;
    color: var(--pv-text);
}

.font-display {
    font-family: 'Plus Jakarta Sans', sans-serif;
}

body {
    min-height: 100%;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.text-white,
.text-slate-50,
.text-slate-100,
.text-slate-200,
.text-slate-300 {
    color: var(--pv-text-soft) !important;
}

.text-slate-400,
.text-slate-500 {
    color: var(--pv-text-muted) !important;
}

.text-cyan-50,
.text-cyan-100 {
    color: var(--pv-text-soft) !important;
}

.text-cyan-200,
.text-cyan-300 {
    color: #0891b2 !important;
}

.text-white.font-semibold,
.text-white.font-medium,
h1.text-white,
h2.text-white,
h3.text-white,
h4.text-white,
h5.text-white,
h6.text-white {
    color: var(--pv-text) !important;
}

.bg-white\/5,
.bg-white\/10,
.bg-white\/15,
.bg-slate-950\/30,
.bg-slate-950\/35,
.bg-slate-950\/40,
.bg-slate-950\/45,
.bg-slate-950\/50,
.bg-slate-950\/55,
.bg-slate-950\/60,
.bg-slate-950\/65,
.bg-slate-950\/70,
.bg-slate-950\/75,
.bg-slate-950\/80,
.bg-slate-950\/95,
.bg-slate-900\/30,
.bg-slate-900\/40,
.bg-slate-900\/45,
.bg-slate-900\/50,
.bg-slate-900\/60,
.bg-slate-900\/70,
.bg-slate-800\/40,
.bg-slate-800\/50 {
    background: var(--pv-panel-bg) !important;
    box-shadow: var(--pv-shadow);
}

.border-white\/10,
.border-white\/15,
.border-white\/20 {
    border-color: var(--pv-border) !important;
}

.bg-slate-950,
.bg-slate-900,
.bg-slate-800,
.bg-slate-900\/95,
.bg-slate-800\/95 {
    background: var(--pv-panel-bg) !important;
}

[class*="bg-white/"],
[class*="bg-slate-950/"],
[class*="bg-slate-900/"],
[class*="bg-slate-800/"] {
    background: var(--pv-panel-bg) !important;
    border-color: var(--pv-border) !important;
}

.hover\:bg-white\/5:hover,
.hover\:bg-white\/10:hover,
.hover\:bg-slate-950\/40:hover,
.hover\:bg-slate-950\/50:hover {
    background: var(--pv-panel-subtle) !important;
}

.hover\:text-white:hover {
    color: var(--pv-text) !important;
}

header.sticky {
    background: rgba(255, 255, 255, 0.86) !important;
    border-color: var(--pv-border) !important;
    box-shadow: 0 12px 36px rgba(15, 23, 42, 0.07);
}

input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
select,
textarea {
    background: var(--pv-input-bg) !important;
    color: var(--pv-text) !important;
    border-color: var(--pv-input-border) !important;
}

input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"])::placeholder,
textarea::placeholder {
    color: var(--pv-text-faint) !important;
}

thead.bg-slate-950\/45,
thead.bg-slate-950\/50 {
    background: rgba(241, 245, 249, 0.95) !important;
}

tr.bg-slate-950\/35,
tr.bg-slate-950\/40,
tbody tr:nth-child(even) {
    background-color: rgba(248, 250, 252, 0.9);
}

.shadow-\[0_18px_55px_rgba\(2\,6\,23\,0\.2\)\],
.shadow-\[0_18px_55px_rgba\(2\,6\,23\,0\.18\)\],
.shadow-\[0_24px_80px_rgba\(2\,6\,23\,0\.6\)\],
.shadow-\[0_30px_100px_rgba\(2\,6\,23\,0\.42\)\],
.shadow-\[0_18px_45px_rgba\(8\,145\,178\,0\.12\)\],
.shadow-2xl,
.shadow-2xl.shadow-cyan-950\/20,
.shadow-2xl.shadow-cyan-950\/30 {
    box-shadow: var(--pv-shadow) !important;
}

.bg-\[linear-gradient\(135deg\,rgba\(8\,145\,178\,0\.22\)\,rgba\(15\,23\,42\,0\.92\)\)\] {
    background: linear-gradient(135deg, rgba(207, 250, 254, 0.98), rgba(239, 246, 255, 0.98)) !important;
}

.bg-\[radial-gradient\(circle_at_top\,_rgba\(14\,165\,233\,0\.18\)\,_transparent_35\%\)\,linear-gradient\(180deg\,_\#020617_0\%\,_\#0f172a_55\%\,_\#111827_100\%\)\] {
    background: var(--pv-page-bg) !important;
}

[class*="linear-gradient(135deg,_rgba(2,6,23,0.96)"] ,
[class*="linear-gradient(135deg,_rgba(15,23,42,0.95)"] {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(239, 246, 255, 0.98) 58%, rgba(224, 242, 254, 0.98)) !important;
    border-color: var(--pv-border) !important;
    box-shadow: var(--pv-shadow) !important;
}

[class*="radial-gradient(circle_at_top_left,_rgba(34,211,238,0.18)"] .text-cyan-200,
[class*="radial-gradient(circle_at_top_left,_rgba(34,211,238,0.18)"] .text-cyan-100,
[class*="linear-gradient(135deg,_rgba(15,23,42,0.95)"] .text-cyan-200,
[class*="linear-gradient(135deg,_rgba(15,23,42,0.95)"] .text-cyan-100 {
    color: #0891b2 !important;
}

[class*="radial-gradient(circle_at_top_left,_rgba(34,211,238,0.18)"] .text-cyan-50,
[class*="linear-gradient(135deg,_rgba(15,23,42,0.95)"] .text-cyan-50 {
    color: var(--pv-text-soft) !important;
}

[class*="radial-gradient(circle_at_top_right,_rgba(34,211,238,0.18)"],
[class*="radial-gradient(circle_at_top_left,_rgba(34,211,238,0.18)"],
[class*="linear-gradient(135deg,_rgba(15,23,42,0.95)"],
[class*="linear-gradient(135deg,_rgba(2,6,23,0.96)"] {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(241, 245, 249, 0.99) 55%, rgba(224, 242, 254, 0.98)) !important;
    border-color: var(--pv-border) !important;
    box-shadow: var(--pv-shadow) !important;
}

[class*="from-slate-950/75"],
[class*="from-slate-950/70"] {
    background-image: linear-gradient(to top, rgba(15, 23, 42, 0.68), rgba(15, 23, 42, 0));
}

.fixed[class*="bg-slate-950/70"],
.fixed[class*="bg-slate-950/80"],
.fixed[class*="bg-slate-950/95"] {
    background: var(--pv-overlay) !important;
}

table,
thead,
tbody,
tr,
td,
th {
    color: var(--pv-text-soft);
}

a.text-white,
button.text-white,
span.text-white,
p.text-white,
div.text-white {
    color: var(--pv-text-soft) !important;
}

a.rounded-full.border,
button.rounded-full.border {
    border-color: var(--pv-border-strong);
}

form button,
form input[type="submit"] {
    transition: background-color 140ms ease, color 140ms ease, border-color 140ms ease, box-shadow 140ms ease;
}

form button[class*="bg-slate-900"],
form button[class*="bg-slate-800"],
form input[type="submit"][class*="bg-slate-900"],
form input[type="submit"][class*="bg-slate-800"] {
    background: #0f172a !important;
    color: #ffffff !important;
    border-color: #0f172a !important;
}

form button[class*="bg-slate-900"]:hover,
form button[class*="bg-slate-800"]:hover,
form input[type="submit"][class*="bg-slate-900"]:hover,
form input[type="submit"][class*="bg-slate-800"]:hover {
    background: #1e293b !important;
}

form button[class*="border-white/"],
form input[type="submit"][class*="border-white/"] {
    color: var(--pv-text) !important;
    border-color: var(--pv-border-strong) !important;
    background: rgba(255, 255, 255, 0.92) !important;
}

form button[class*="border-white/"]:hover,
form input[type="submit"][class*="border-white/"]:hover {
    background: var(--pv-panel-subtle) !important;
}

form button[class*="bg-"][class*="text-white"],
form input[type="submit"][class*="bg-"][class*="text-white"] {
    color: #ffffff !important;
}

.pv-solid-button,
.pv-solid-button:hover,
.pv-solid-button:focus {
    background: #0f172a !important;
    color: #ffffff !important;
    border-color: #0f172a !important;
}

.pv-solid-button:hover,
.pv-solid-button:focus {
    background: #1e293b !important;
}

/* Keep image overlays readable after the global light-theme remap. */
.absolute .text-white,
.absolute .text-slate-100,
.absolute .text-slate-200,
.absolute .text-slate-300,
.absolute h1.text-white,
.absolute h2.text-white,
.absolute h3.text-white,
.absolute h4.text-white,
.absolute h5.text-white,
.absolute h6.text-white,
.absolute a.text-white,
.absolute button.text-white,
.absolute span.text-white,
.absolute p.text-white,
.absolute div.text-white {
    color: rgba(255, 255, 255, 0.96) !important;
}

.absolute .text-slate-400,
.absolute .text-slate-500 {
    color: rgba(226, 232, 240, 0.9) !important;
}

.absolute [class*="bg-white/"] {
    background: rgba(255, 255, 255, 0.14) !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
    box-shadow: none !important;
}

.absolute [class*="bg-slate-950/"],
.absolute [class*="bg-slate-900/"] {
    background: rgba(15, 23, 42, 0.45) !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    box-shadow: none !important;
}

.absolute [class*="border-white/"] {
    border-color: rgba(255, 255, 255, 0.18) !important;
}
