:root {
    color-scheme: light;
    --niccom-primary: #012454;
    --niccom-primary-strong: #001a3d;
    --niccom-primary-soft: #e8f1fb;
    --niccom-accent: #16a6d9;
    --niccom-accent-strong: #0785b5;
    --niccom-success: #138a63;
    --niccom-danger: #c53b4a;
    --niccom-bg: #f4f7fb;
    --niccom-surface: #ffffff;
    --niccom-surface-muted: #edf3f9;
    --niccom-text: #10233f;
    --niccom-text-muted: #5f6f84;
    --niccom-border: #d8e2ee;
    --niccom-shadow: 0 18px 50px rgba(1, 36, 84, 0.12);
    --niccom-shadow-sm: 0 8px 24px rgba(1, 36, 84, 0.09);
    --niccom-gradient: linear-gradient(135deg, #012454 0%, #075f9f 60%, #16a6d9 100%);
}

html[data-theme="dark"] {
    color-scheme: dark;
    --niccom-primary: #65c9ee;
    --niccom-primary-strong: #b9e9fa;
    --niccom-primary-soft: #102d4c;
    --niccom-accent: #49bce6;
    --niccom-accent-strong: #77d2f2;
    --niccom-bg: #07111f;
    --niccom-surface: #0e1d30;
    --niccom-surface-muted: #13263d;
    --niccom-text: #edf7ff;
    --niccom-text-muted: #a9bbcf;
    --niccom-border: #28405c;
    --niccom-shadow: 0 20px 55px rgba(0, 0, 0, 0.34);
    --niccom-shadow-sm: 0 10px 28px rgba(0, 0, 0, 0.26);
    --niccom-gradient: linear-gradient(135deg, #0b5590 0%, #0787bb 60%, #2eb8e5 100%);
}

html { background: var(--niccom-bg); }

body.niccom-page {
    background:
        radial-gradient(circle at 8% 0%, color-mix(in srgb, var(--niccom-accent) 14%, transparent), transparent 34rem),
        radial-gradient(circle at 92% 15%, color-mix(in srgb, var(--niccom-primary) 10%, transparent), transparent 30rem),
        var(--niccom-bg) !important;
    color: var(--niccom-text);
    transition: background-color .25s ease, color .25s ease;
}

.brand-logo { object-fit: contain; }
.brand-logo--dark { display: none; }
html[data-theme="dark"] .brand-logo--light { display: none; }
html[data-theme="dark"] .brand-logo--dark { display: block; }

.theme-toggle {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--niccom-border);
    border-radius: 12px;
    background: var(--niccom-surface);
    color: var(--niccom-text);
    box-shadow: var(--niccom-shadow-sm);
    cursor: pointer;
    transition: transform .2s ease, border-color .2s ease;
}
.theme-toggle:hover { transform: translateY(-2px); border-color: var(--niccom-accent); }
.theme-toggle .fa-sun { display: none; }
html[data-theme="dark"] .theme-toggle .fa-moon { display: none; }
html[data-theme="dark"] .theme-toggle .fa-sun { display: inline-block; }

/* Compatibility layer for the existing marketing/chat utilities. */
.niccom-page .bg-cream,
.niccom-page .bg-aws-bg,
.niccom-page .bg-\[\#fafafa\] { background: var(--niccom-surface-muted) !important; }
.niccom-page .bg-white { background: var(--niccom-surface) !important; }
.niccom-page .bg-lime,
.niccom-page .bg-aws-blue,
.niccom-page .bg-aws-orange,
.niccom-page .from-lime { background: var(--niccom-gradient) !important; }
.niccom-page .text-neutral-dark,
.niccom-page .text-aws-dark-bg { color: var(--niccom-text) !important; }
.niccom-page .text-neutral-medium,
.niccom-page .text-neutral-light,
.niccom-page .text-aws-grey { color: var(--niccom-text-muted) !important; }
.niccom-page .text-lime,
.niccom-page .text-aws-blue,
.niccom-page .text-aws-orange { color: var(--niccom-accent) !important; }
.niccom-page .border-lime,
.niccom-page .border-aws-blue { border-color: var(--niccom-accent) !important; }

.niccom-page .gradient-text {
    background: var(--niccom-gradient) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent;
}

.niccom-page .aws-btn-primary,
.niccom-page .niccom-cta {
    background: var(--niccom-gradient) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 12px 28px rgba(1, 36, 84, .22) !important;
}

.niccom-page .aws-card,
.niccom-page #chat-widget,
.niccom-page .niccom-card {
    background: var(--niccom-surface) !important;
    border-color: var(--niccom-border) !important;
    color: var(--niccom-text);
    box-shadow: var(--niccom-shadow-sm);
}

.niccom-page input,
.niccom-page select,
.niccom-page textarea,
.niccom-page .aws-input {
    background: var(--niccom-surface) !important;
    border-color: var(--niccom-border) !important;
    color: var(--niccom-text) !important;
}

.niccom-page input:focus,
.niccom-page select:focus,
.niccom-page textarea:focus,
.niccom-page .aws-input:focus {
    border-color: var(--niccom-accent) !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--niccom-accent) 18%, transparent) !important;
}

.niccom-page #chat-widget { border-radius: 22px !important; }
.niccom-page #chat-widget > div > div:first-child,
.niccom-page .niccom-header { background: var(--niccom-gradient) !important; }
.niccom-page #chat-trigger {
    background: var(--niccom-gradient) !important;
    box-shadow: 0 14px 34px rgba(1, 36, 84, .3) !important;
}

@media (max-width: 640px) {
    .niccom-page #chat-widget {
        inset: 1rem !important;
        width: auto !important;
        height: auto !important;
        max-height: none !important;
    }
}

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

/* Backoffice */
.niccom-sidebar {
    background: linear-gradient(180deg, #012454 0%, #001a3d 100%);
    color: #fff;
    box-shadow: 16px 0 40px rgba(1, 36, 84, .14);
}

.niccom-nav-link {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .72rem .9rem;
    border: 1px solid transparent;
    border-radius: .8rem;
    color: rgba(255, 255, 255, .72);
    font-size: .84rem;
    font-weight: 600;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}
.niccom-nav-link i { width: 1.2rem; text-align: center; color: #7bd4f3; }
.niccom-nav-link:hover { background: rgba(255,255,255,.09); color: #fff; transform: translateX(2px); }
.niccom-nav-link.is-active {
    background: #fff;
    color: #012454;
    box-shadow: 0 10px 25px rgba(0,0,0,.16);
}
.niccom-nav-link.is-active i { color: #0785b5; }

.niccom-sidebar-action {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 2.55rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: .7rem;
    color: rgba(255,255,255,.78);
    font-size: .75rem;
    font-weight: 600;
    transition: background .18s ease, color .18s ease;
}
.niccom-sidebar-action:hover { background: rgba(255,255,255,.1); color: #fff; }

.niccom-topbar {
    height: 4.5rem;
    border-bottom: 1px solid var(--niccom-border);
    background: color-mix(in srgb, var(--niccom-surface) 88%, transparent);
    color: var(--niccom-text);
    backdrop-filter: blur(18px);
}
.niccom-topbar p:last-child { color: var(--niccom-text-muted); }

.niccom-icon-button {
    display: inline-flex;
    width: 2.6rem;
    height: 2.6rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--niccom-border);
    border-radius: .75rem;
    background: var(--niccom-surface);
    color: var(--niccom-text);
}
.niccom-icon-button--dark { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.08); color: #fff; }

.niccom-alert {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .9rem 1rem;
    border: 1px solid;
    border-radius: .9rem;
    background: var(--niccom-surface);
    box-shadow: var(--niccom-shadow-sm);
    font-size: .88rem;
    font-weight: 600;
}
.niccom-alert--success { border-color: color-mix(in srgb, var(--niccom-success) 36%, var(--niccom-border)); color: var(--niccom-success); }
.niccom-alert--error { border-color: color-mix(in srgb, var(--niccom-danger) 36%, var(--niccom-border)); color: var(--niccom-danger); }

.niccom-page footer { border-color: var(--niccom-border); color: var(--niccom-text-muted); }

/* Normalize legacy Bootstrap-styled backoffice screens. */
.niccom-page .card,
.niccom-page .modal-content,
.niccom-page .dropdown-menu {
    background: var(--niccom-surface);
    border-color: var(--niccom-border);
    color: var(--niccom-text);
    border-radius: 1rem;
    box-shadow: var(--niccom-shadow-sm);
}
.niccom-page .card-header { background: var(--niccom-surface-muted); border-color: var(--niccom-border); }
.niccom-page .table { color: var(--niccom-text); }
.niccom-page .table td,
.niccom-page .table th { border-color: var(--niccom-border); }
.niccom-page .btn-primary {
    background: #012454 !important;
    border-color: #012454 !important;
    color: #fff !important;
}
.niccom-page .btn-primary:hover { background: #0785b5 !important; border-color: #0785b5 !important; }
.niccom-page .text-primary { color: var(--niccom-accent-strong) !important; }
.niccom-page .border-left-primary { border-left-color: var(--niccom-accent) !important; }
