@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@500;600;700;800&display=swap');

:root {
    --ace-bg: #030712;
    --ace-bg-elevated: #07101d;
    --ace-surface: #0b1422;
    --ace-surface-strong: #111c2c;
    --ace-line: rgba(148, 163, 184, 0.16);
    --ace-line-strong: rgba(148, 163, 184, 0.28);
    --ace-copy: #f8fafc;
    --ace-muted: #94a3b8;
    --ace-emerald: #39e6a5;
    --ace-emerald-soft: rgba(57, 230, 165, 0.12);
    --ace-cyan: #46d9ff;
    --ace-cyan-soft: rgba(70, 217, 255, 0.12);
    --ace-danger: #fb7185;
    --ace-warning: #fbbf24;
    --ace-radius-sm: 0.75rem;
    --ace-radius: 1rem;
    --ace-radius-lg: 1.5rem;
    --ace-shadow: 0 24px 70px rgba(0, 0, 0, 0.3);
}

html {
    color-scheme: dark;
    background: var(--ace-bg);
}

body.ace-site {
    min-height: 100vh;
    margin: 0;
    color: var(--ace-copy);
    background:
        radial-gradient(circle at 12% -10%, rgba(57, 230, 165, 0.1), transparent 29rem),
        radial-gradient(circle at 92% 0%, rgba(70, 217, 255, 0.08), transparent 25rem),
        var(--ace-bg);
    font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-feature-settings: "ss01" 1;
    -webkit-font-smoothing: antialiased;
}

body.ace-site h1,
body.ace-site h2,
body.ace-site h3,
body.ace-site h4,
body.ace-site .font-display {
    font-family: 'Outfit', 'Inter', system-ui, sans-serif;
    letter-spacing: -0.025em;
}

body.ace-site ::selection {
    color: #020617;
    background: var(--ace-emerald);
}

body.ace-site :where(a, button, input, select, textarea):focus-visible {
    outline: 2px solid var(--ace-cyan);
    outline-offset: 3px;
}

body.ace-site :where(button, a) {
    -webkit-tap-highlight-color: transparent;
}

body.ace-site :where(input, select, textarea) {
    color-scheme: dark;
}

body.ace-site :where(input, select, textarea)::placeholder {
    color: #64748b;
}

body.ace-site .ace-shell {
    width: min(100% - 2rem, 80rem);
    margin-inline: auto;
}

body.ace-site .ace-kicker {
    color: var(--ace-emerald);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

body.ace-site .ace-panel {
    border: 1px solid var(--ace-line);
    border-radius: var(--ace-radius-lg);
    background: linear-gradient(145deg, rgba(17, 28, 44, 0.9), rgba(7, 16, 29, 0.92));
    box-shadow: var(--ace-shadow);
}

body.ace-site .ace-panel-subtle {
    border: 1px solid var(--ace-line);
    border-radius: var(--ace-radius);
    background: rgba(11, 20, 34, 0.72);
}

body.ace-site .ace-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 1.75rem;
    padding: 0.25rem 0.65rem;
    border: 1px solid var(--ace-line);
    border-radius: 999px;
    color: #cbd5e1;
    background: rgba(15, 23, 42, 0.75);
    font-size: 0.72rem;
    font-weight: 700;
}

body.ace-site .ace-number {
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

body.ace-site .ace-grid-glow {
    position: relative;
    isolation: isolate;
}

body.ace-site .ace-grid-glow::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    content: '';
    pointer-events: none;
    opacity: 0.16;
    background-image:
        linear-gradient(rgba(148, 163, 184, 0.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(148, 163, 184, 0.12) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(to bottom, black, transparent 80%);
}

/* Compatibility layer for the earlier light pages while they share one system. */
body.ace-site .glass-card,
body.ace-site .stripi-card {
    color: var(--ace-copy);
    border-color: var(--ace-line) !important;
    background: linear-gradient(145deg, rgba(17, 28, 44, 0.92), rgba(7, 16, 29, 0.9)) !important;
    box-shadow: var(--ace-shadow);
}

body.ace-site .stripi-dark-panel {
    color: var(--ace-copy);
    background: linear-gradient(145deg, #102033, #07101d);
    border: 1px solid rgba(70, 217, 255, 0.2);
}

body.ace-site .admin-gradient,
body.ace-site .gradient-bg {
    background: linear-gradient(125deg, #07101d, #0d2a27, #073249) !important;
}

body.ace-site .premium-gradient {
    background: linear-gradient(125deg, #07101d, #0a3041, #123653) !important;
}

body.ace-site :where(.bg-white, .bg-gray-50, .bg-gray-100) {
    background-color: var(--ace-surface) !important;
}

body.ace-site :where(.text-gray-900, .text-gray-800) {
    color: var(--ace-copy) !important;
}

body.ace-site :where(.text-gray-700, .text-gray-600) {
    color: #cbd5e1 !important;
}

body.ace-site :where(.text-gray-500, .text-gray-400) {
    color: var(--ace-muted) !important;
}

body.ace-site :where(.border-gray-100, .border-gray-200, .border-gray-300) {
    border-color: var(--ace-line) !important;
}

body.ace-site :where(.bg-purple-600, .bg-indigo-600, .bg-green-600) {
    color: #020617 !important;
    background-color: var(--ace-emerald) !important;
}

body.ace-site :where(.text-purple-600, .text-purple-700, .text-indigo-600, .text-indigo-700, .text-green-600, .text-green-700) {
    color: var(--ace-emerald) !important;
}

body.ace-site :where(.bg-purple-100, .bg-indigo-100, .bg-green-100) {
    background-color: var(--ace-emerald-soft) !important;
}

body.ace-site .file-upload-zone {
    border-color: var(--ace-line-strong);
    background: rgba(3, 7, 18, 0.35);
}

body.ace-site .file-upload-zone:hover,
body.ace-site .file-upload-zone.dragover {
    border-color: var(--ace-emerald);
    background: var(--ace-emerald-soft);
}

body.ace-site > aside,
body.ace-site main > header {
    border-color: var(--ace-line) !important;
    background: rgba(7, 16, 29, 0.92) !important;
}

body.ace-site [class*="text-[#0d253d]"],
body.ace-site [class*="text-[#273951]"] {
    color: var(--ace-copy) !important;
}

body.ace-site [class*="text-[#64748d]"] {
    color: var(--ace-muted) !important;
}

body.ace-site [class*="bg-[#f6f9fc]"],
body.ace-site [class*="bg-[#e3e8ee]"] {
    background-color: var(--ace-surface) !important;
}

body.ace-site [class*="border-[#e3e8ee]"] {
    border-color: var(--ace-line) !important;
}

body.ace-site [class*="bg-[#533afd]"] {
    color: #020617 !important;
    background-color: var(--ace-emerald) !important;
}

body.ace-site [class*="text-[#533afd]"] {
    color: var(--ace-cyan) !important;
}

body.ace-site ::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

body.ace-site ::-webkit-scrollbar-track {
    background: var(--ace-bg);
}

body.ace-site ::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #26354a;
}

body.ace-site ::-webkit-scrollbar-thumb:hover {
    background: var(--ace-emerald);
}

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