/* =========================================================
   PERODIN TRADE OS
   STYLE.CSS V10
========================================================= */

:root {

    --bg: #080b0f;
    --bg-soft: #0d1117;

    --panel: #171c24;
    --panel-2: #1c222c;
    --panel-3: #222a35;

    --text: #f5f7fb;
    --text-soft: #a9b2c0;
    --text-dim: #737e8e;

    --cyan: #00d8ff;
    --green: #31ed85;
    --red: #ff5064;
    --orange: #ffa229;
    --yellow: #ffd15c;

    --green-soft: rgba(49,237,133,.13);
    --red-soft: rgba(255,80,100,.13);
    --orange-soft: rgba(255,162,41,.12);

    --border: rgba(255,255,255,.075);
    --border-strong: rgba(255,255,255,.13);

    --shadow:
        0 35px 90px
        rgba(0,0,0,.42);

    --radius: 20px;

    --container: 1180px;
}


/* =========================================================
   RESET
========================================================= */

* {
    box-sizing: border-box;
}


html {
    scroll-behavior: smooth;
}


body {

    margin: 0;

    color: var(--text);

    background:

        radial-gradient(
            circle at 78% 12%,
            rgba(0,216,255,.075),
            transparent 31%
        ),

        radial-gradient(
            circle at 17% 31%,
            rgba(49,237,133,.035),
            transparent 27%
        ),

        var(--bg);

    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    line-height: 1.6;

    overflow-x: hidden;
}


body.dashboard-fullscreen {
    overflow: hidden;
}


body::before {

    content: "";

    position: fixed;

    inset: 0;

    pointer-events: none;

    z-index: -1;

    opacity: .18;

    background-image:

        linear-gradient(
            rgba(255,255,255,.025) 1px,
            transparent 1px
        ),

        linear-gradient(
            90deg,
            rgba(255,255,255,.025) 1px,
            transparent 1px
        );

    background-size: 64px 64px;
}


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


button,
input {
    font: inherit;
}


button {
    cursor: pointer;
}


/* =========================================================
   CONTAINER
========================================================= */

.container {

    width:
        min(
            calc(100% - 40px),
            var(--container)
        );

    margin: 0 auto;
}


.narrow {
    max-width: 860px;
}


/* =========================================================
   NAVIGATION
========================================================= */

.site-header {

    position: sticky;

    top: 0;

    z-index: 1000;

    border-bottom:
        1px solid
        var(--border);

    background:
        rgba(8,11,15,.84);

    backdrop-filter:
        blur(18px);
}


.nav-wrap {

    min-height: 74px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 28px;
}


.brand {

    display: inline-flex;

    align-items: center;

    gap: 9px;

    font-weight: 900;

    font-size: .94rem;
}


.brand-product {
    color: var(--cyan);
}


.nav-links {

    display: flex;

    align-items: center;

    gap: 22px;
}


.nav-links a {

    color: var(--text-soft);

    font-size: .82rem;
}


.nav-links a:hover {
    color: white;
}


.nav-free-live {

    display: inline-flex;

    align-items: center;

    gap: 6px;

    color: var(--green) !important;

    font-weight: 850;
}


.nav-free-live span {

    width: 6px;

    height: 6px;

    border-radius: 50%;

    background: var(--green);

    animation:
        miniPulse
        1.3s infinite;
}


.nav-cta {

    padding: 10px 17px;

    border:
        1px solid
        var(--border-strong);

    border-radius: 999px;

    background:
        rgba(255,255,255,.03);

    font-size: .82rem;

    font-weight: 800;
}


/* =========================================================
   HERO
========================================================= */

.hero {

    padding: 100px 0;

    overflow: hidden;
}


.hero-grid {

    display: grid;

    grid-template-columns:
        .94fr 1.06fr;

    align-items: center;

    gap: 68px;
}


.eyebrow,
.section-kicker {

    color: var(--cyan);

    font-size: .73rem;

    font-weight: 900;

    letter-spacing: .18em;

    text-transform: uppercase;
}


.hero h1 {

    margin:
        18px 0 22px;

    font-size:
        clamp(
            3.2rem,
            6.7vw,
            6.35rem
        );

    line-height: .96;

    letter-spacing: -.055em;
}


.hero h1 span {

    display: block;

    color: var(--text-soft);
}


.hero-text {

    max-width: 620px;

    color: var(--text-soft);

    font-size: 1.03rem;
}


.hero-actions {

    display: flex;

    gap: 13px;

    margin-top: 32px;
}


.btn {

    min-height: 47px;

    padding: 0 19px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    border-radius: 999px;

    font-weight: 850;

    font-size: .89rem;
}


.btn-primary {

    background: white;

    color: #080b0f;
}


.btn-secondary {

    border:
        1px solid
        var(--border-strong);

    background:
        rgba(255,255,255,.025);
}


/* =========================================================
   FREE ACCESS NOTE
========================================================= */

.free-access-note {

    margin-top: 17px;

    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 7px;

    color: var(--text-soft);

    font-size: .75rem;
}


.free-access-note strong {
    color: var(--green);
}


.free-access-dot {

    width: 6px;

    height: 6px;

    border-radius: 50%;

    background: var(--green);

    animation:
        livePulse
        1.6s infinite;
}


.hero-meta {

    display: grid;

    grid-template-columns:
        repeat(3,1fr);

    gap: 11px;

    margin-top: 28px;
}


.hero-meta > div {

    padding: 14px 13px;

    border:
        1px solid
        var(--border);

    border-radius: 11px;

    background:
        rgba(255,255,255,.018);
}


.meta-label,
.meta-value {
    display: block;
}


.meta-label {

    color: var(--text-dim);

    font-size: .65rem;

    text-transform: uppercase;
}


.meta-value {

    margin-top: 3px;

    font-size: .82rem;

    font-weight: 800;
}


/* =========================================================
   DASHBOARD SHELL
========================================================= */

.hero-panel {
    position: relative;
}


.dashboard-shell {

    position: relative;

    transition:
        all .35s ease;
}


/* =========================================================
   FREE DASHBOARD BAR — MATCHED TO INDEX V11
========================================================= */

.dashboard-free-bar {
    position: relative;
    z-index: 4;
    min-height: 48px;
    margin-bottom: 9px;
    padding: 0;
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr) 118px;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid rgba(49,237,133,.28);
    border-radius: 14px;
    background: linear-gradient(90deg, rgba(49,237,133,.055), rgba(0,216,255,.025));
    box-shadow: 0 0 25px rgba(49,237,133,.035);
}

.dashboard-live-fixed {
    position: relative;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 0;
    padding: 0 12px;
    color: var(--green);
    background: rgba(8,14,17,.97);
    border-right: 1px solid rgba(49,237,133,.18);
    font-size: .58rem;
    font-weight: 950;
    letter-spacing: .11em;
    white-space: nowrap;
}

.dashboard-free-dot {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 10px rgba(49,237,133,.72);
    animation: livePulse 1.5s infinite;
}

.dashboard-ticker-window {
    position: relative;
    min-width: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    background: rgba(255,255,255,.008);
}

.dashboard-ticker-window::before,
.dashboard-ticker-window::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 2;
    width: 28px;
    pointer-events: none;
}

.dashboard-ticker-window::before {
    left: 0;
    background: linear-gradient(90deg, rgba(12,18,22,.96), rgba(12,18,22,0));
}

.dashboard-ticker-window::after {
    right: 0;
    background: linear-gradient(270deg, rgba(12,18,22,.96), rgba(12,18,22,0));
}

.dashboard-ticker-track {
    width: max-content;
    display: flex;
    align-items: center;
    gap: 18px;
    padding-left: 28px;
    color: #b8c1cc;
    white-space: nowrap;
    font-size: .54rem;
    font-weight: 850;
    letter-spacing: .085em;
    animation: tradeOsTicker 24s linear infinite;
    will-change: transform;
}

.dashboard-ticker-track i {
    color: var(--cyan);
    font-style: normal;
    opacity: .72;
}

.dashboard-free-bar:hover .dashboard-ticker-track {
    animation-play-state: paused;
}

.fullscreen-toggle {
    position: relative;
    z-index: 3;
    min-width: 0;
    min-height: 48px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 0;
    border-left: 1px solid rgba(0,216,255,.16);
    border-radius: 0;
    color: var(--text-soft);
    background: rgba(8,14,17,.97);
    font-size: .53rem;
    font-weight: 900;
    letter-spacing: .07em;
    white-space: nowrap;
    transition: color .2s ease, background .2s ease;
}

.fullscreen-toggle:hover {
    color: white;
    background: rgba(0,216,255,.055);
}

.fullscreen-icon {
    color: var(--cyan);
    font-size: .8rem;
}

@keyframes tradeOsTicker {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* =========================================================
   FULLSCREEN MODE
========================================================= */

.dashboard-shell-fullscreen {

    position: fixed !important;

    z-index: 99999;

    inset: 0;

    width: 100vw;

    height: 100vh;

    padding:
        26px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    background:

        radial-gradient(
            circle at 50% 30%,
            rgba(0,216,255,.075),
            transparent 40%
        ),

        #080b0f;

    overflow-y: auto;
}


.dashboard-shell-fullscreen
.dashboard-free-bar {

    width:
        min(
            100%,
            1100px
        );

    margin:
        0 auto 12px;
}


.dashboard-shell-fullscreen
.live-terminal {

    width:
        min(
            100%,
            1100px
        );

    margin:
        0 auto;

    box-shadow:
        0 0 90px
        rgba(0,216,255,.08),
        0 35px 100px
        rgba(0,0,0,.6);
}


.dashboard-shell-fullscreen
.dashboard-proof-line {

    width:
        min(
            100%,
            1100px
        );

    margin:
        12px auto 0;
}


.dashboard-shell-fullscreen
.chart-glow {

    display: none;
}


.dashboard-shell-fullscreen
.terminal-row {

    min-height: 58px;
}


.dashboard-shell-fullscreen
.terminal-row > * {

    font-size: .86rem;
}


.dashboard-shell-fullscreen
.terminal-top {

    min-height: 68px;

    font-size: .94rem;
}


/* =========================================================
   LIVE DASHBOARD
========================================================= */

.live-terminal {

    position: relative;

    z-index: 2;

    overflow: hidden;

    border:
        1px solid
        var(--border-strong);

    border-radius: 24px;

    background: var(--panel);

    box-shadow: var(--shadow);
}


.live-terminal.fresh-data {

    border-color:
        rgba(0,216,255,.4);

    box-shadow:
        0 0 60px
        rgba(0,216,255,.1),
        var(--shadow);
}


.signal-banner {

    display: none;

    min-height: 42px;

    align-items: center;

    justify-content: center;

    font-size: .66rem;

    font-weight: 900;

    letter-spacing: .1em;
}


.signal-banner.visible {
    display: flex;
}


.signal-banner.long {

    color: var(--green);

    background: var(--green-soft);
}


.signal-banner.short {

    color: var(--red);

    background: var(--red-soft);
}


.setup-mode-label {
    display: none;
}


.setup-mode-label.visible {
    display: inline;
}


.setup-mode-label.long {
    color: var(--green);
}


.setup-mode-label.short {
    color: var(--red);
}


.live-terminal.setup-long-mode {

    border-color:
        rgba(49,237,133,.65);
}


.live-terminal.setup-short-mode {

    border-color:
        rgba(255,80,100,.65);
}


.setup-impact {

    animation:
        setupImpact
        .8s ease;
}


@keyframes setupImpact {

    40% {
        transform: scale(1.015);
    }
}


/* =========================================================
   DASHBOARD SCANNER
========================================================= */

.terminal-sweep {

    position: absolute;

    z-index: 10;

    top: 0;

    bottom: 0;

    left: -40%;

    width: 30%;

    opacity: 0;

    pointer-events: none;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(0,216,255,.12),
            transparent
        );
}


.terminal-sweep.sweep-active {

    animation:
        terminalSweep
        1.1s ease;
}


@keyframes terminalSweep {

    20% {
        opacity: 1;
    }

    100% {

        left: 120%;

        opacity: 0;
    }
}


/* =========================================================
   TERMINAL TOP
========================================================= */

.terminal-top {

    min-height: 62px;

    padding: 0 18px;

    display: grid;

    grid-template-columns:
        1fr 1fr 1fr;

    align-items: center;

    background:
        var(--panel-3);

    border-bottom:
        1px solid
        var(--border);

    font-size: .86rem;

    font-weight: 900;
}


.terminal-top > :nth-child(2) {
    text-align: center;
}


.terminal-top > :nth-child(3) {
    text-align: right;
}


.terminal-accent {
    color: var(--cyan);
}


.live-heading {

    display: flex;

    align-items: center;

    justify-content: flex-end;

    gap: 8px;
}


.live-status-dot {

    width: 8px;

    height: 8px;

    display: inline-block;

    border-radius: 50%;
}


.live-status-dot.online {

    background: var(--green);

    animation:
        livePulse
        1.8s infinite;
}


.live-status-dot.offline {
    background: var(--red);
}


@keyframes livePulse {

    0% {

        box-shadow:
            0 0 0 0
            rgba(49,237,133,.45);
    }

    70% {

        box-shadow:
            0 0 0 9px
            rgba(49,237,133,0);
    }
}


/* =========================================================
   TERMINAL ROWS
========================================================= */

.terminal-row {

    min-height: 52px;

    display: grid;

    grid-template-columns:
        1.05fr 1.3fr 1fr;

    border-bottom:
        1px solid
        var(--border);
}


.terminal-row > * {

    min-width: 0;

    padding: 0 14px;

    display: flex;

    align-items: center;

    font-size: .78rem;
}


.terminal-row > *:not(:last-child) {

    border-right:
        1px solid
        var(--border);
}


.terminal-row > :nth-child(1) {
    color: var(--text-soft);
}


.terminal-row > :nth-child(2) {

    justify-content: center;

    text-align: center;

    font-weight: 850;
}


.terminal-row > :nth-child(3) {

    justify-content: flex-end;

    text-align: right;

    color: var(--text-soft);
}


.trend-age {
    font-size: .72rem !important;
}


.descriptor {

    color: var(--text-dim) !important;

    font-size: .67rem !important;
}


.session-value {
    font-size: .70rem !important;
}


.positive {
    color: var(--green) !important;
}


.negative {
    color: var(--red) !important;
}


.warning {
    color: var(--orange) !important;
}


.neutral {
    color: var(--text-soft) !important;
}


.terminal-action {

    min-height: 59px;

    border-bottom: 0;
}


.action-value {
    font-size: .82rem !important;
}


.action-value.positive {
    background: var(--green-soft);
}


.action-value.negative {
    background: var(--red-soft);
}


.action-value.warning {
    background: var(--orange-soft);
}


.trade-os-mark {

    color: var(--cyan) !important;

    font-weight: 700;
}


.cell-live-update {

    animation:
        cellLiveUpdate
        1.15s ease;
}


@keyframes cellLiveUpdate {

    0% {
        background:
            rgba(0,216,255,.25);
    }

    100% {
        background:
            transparent;
    }
}


/* =========================================================
   LIVE UPDATE BAR
========================================================= */

.live-update-bar {

    min-height: 44px;

    padding: 8px 14px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    background:
        rgba(0,0,0,.2);
}


.live-update-left,
.live-update-right {

    display: flex;

    align-items: center;

    gap: 8px;
}


.live-pulse {

    width: 6px;

    height: 6px;

    border-radius: 50%;

    background: var(--green);

    animation:
        miniPulse
        1.5s infinite;
}


@keyframes miniPulse {

    50% {
        opacity: .35;
    }
}


.live-feed-label {

    color: var(--green);

    font-size: .63rem;

    font-weight: 900;
}


.next-update {

    color: var(--text-soft);

    font-size: .61rem;
}


.last-update {

    color: var(--text-dim);

    font-size: .6rem;
}


/* =========================================================
   DASHBOARD PROOF LINE
========================================================= */

.dashboard-proof-line {

    position: relative;

    z-index: 3;

    margin-top: 10px;

    padding:
        9px 12px;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-wrap: wrap;

    gap: 6px;

    color: var(--text-dim);

    text-align: center;

    font-size: .57rem;

    font-weight: 750;

    letter-spacing: .02em;
}


.dashboard-proof-line strong {
    color: var(--text-soft);
}


.dashboard-proof-live {

    color: var(--green);

    font-weight: 900;

    letter-spacing: .08em;

    animation:
        miniPulse
        1.5s infinite;
}


.chart-glow {

    position: absolute;

    width: 70%;

    height: 60%;

    bottom: -10%;

    left: 15%;

    background:
        rgba(0,216,255,.1);

    filter:
        blur(80px);
}


/* =========================================================
   GENERAL SECTIONS
========================================================= */

.section {

    padding: 105px 0;
}


.section h2 {

    margin:
        14px 0 20px;

    font-size:
        clamp(
            2.2rem,
            5vw,
            4.5rem
        );

    line-height: 1.02;

    letter-spacing: -.045em;
}


.section h2 span {
    color: var(--text-soft);
}


.section-lead {

    color: var(--text-soft);

    max-width: 760px;
}


.section-header {

    margin-bottom: 42px;

    display: grid;

    grid-template-columns:
        1.05fr .95fr;

    gap: 50px;

    align-items: end;
}


.section-header p {

    margin: 0;

    color: var(--text-soft);
}


/* =========================================================
   EMA MONITOR
========================================================= */

.ema-monitor-section {

    padding-top: 58px;

    border-top:
        1px solid
        var(--border);
}


.ema-legend {

    margin-bottom: 22px;

    display: flex;

    flex-wrap: wrap;

    gap: 20px;

    align-items: center;
}


.ema-legend > span {

    display: flex;

    align-items: center;

    gap: 8px;

    color: var(--text-soft);

    font-size: .72rem;

    font-weight: 800;
}


.legend-line {

    width: 28px;

    height: 2px;

    border-radius: 10px;
}


.legend-line.fast {
    background: var(--cyan);
}


.legend-line.slow {
    background: var(--orange);
}


.ema-developing-note {

    margin-left: auto;

    color:
        var(--text-dim) !important;

    font-size:
        .6rem !important;
}


.ema-monitor-grid {

    display: grid;

    grid-template-columns:
        repeat(4,1fr);

    gap: 12px;
}


.ema-card {

    overflow: hidden;

    border:
        1px solid
        var(--border);

    border-radius: 18px;

    background: var(--panel);

    transition: .4s ease;
}


.ema-card.bullish {

    border-color:
        rgba(49,237,133,.17);
}


.ema-card.bearish {

    border-color:
        rgba(255,80,100,.17);
}


.ema-card.crossing {

    border-color:
        rgba(0,216,255,.22);
}


.ema-card.ema-fresh {

    animation:
        emaFresh
        1s ease;
}


@keyframes emaFresh {

    35% {

        transform:
            translateY(-3px);

        box-shadow:
            0 0 30px
            rgba(0,216,255,.11);
    }
}


.ema-card-top {

    min-height: 67px;

    padding: 13px 14px;

    display: flex;

    justify-content: space-between;

    gap: 12px;

    border-bottom:
        1px solid
        var(--border);
}


.ema-timeframe {

    display: block;

    color: var(--text-soft);

    font-size: .62rem;

    font-weight: 900;
}


.ema-trend {

    display: block;

    margin-top: 3px;

    font-size: .88rem;

    font-weight: 950;
}


.ema-trend.bullish {
    color: var(--green);
}


.ema-trend.bearish {
    color: var(--red);
}


.ema-trend.crossing {
    color: var(--cyan);
}


.ema-structure {

    height: fit-content;

    padding: 4px 7px;

    border:
        1px solid
        var(--border);

    border-radius: 20px;

    color: var(--text-dim);

    font-size: .54rem;

    font-weight: 800;
}


.ema-stage {

    height: 150px;

    position: relative;

    overflow: hidden;

    background-image:

        linear-gradient(
            rgba(255,255,255,.018) 1px,
            transparent 1px
        ),

        linear-gradient(
            90deg,
            rgba(255,255,255,.018) 1px,
            transparent 1px
        );

    background-size:
        32px 30px;
}


.ema-svg {

    width: 100%;

    height: 100%;
}


.ema-midline {

    stroke:
        rgba(255,255,255,.055);

    stroke-dasharray:
        4 5;
}


.ema-path {

    fill: none;

    stroke-width: 3;

    stroke-linecap: round;

    vector-effect:
        non-scaling-stroke;

    transition:
        d .9s ease;
}


.ema-path.fast {
    stroke: var(--cyan);
}


.ema-path.slow {
    stroke: var(--orange);
}


.ema-dot {

    transition:
        cy .9s ease;

    animation:
        emaDot
        1.7s infinite;
}


.ema-dot.fast {
    fill: var(--cyan);
}


.ema-dot.slow {
    fill: var(--orange);
}


@keyframes emaDot {

    50% {
        opacity: .45;
    }
}


.ema-card-bottom {

    min-height: 42px;

    padding: 0 13px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    border-top:
        1px solid
        var(--border);
}


.ema-cross {

    color: var(--text-dim);

    font-size: .55rem;

    font-weight: 850;
}


.ema-live-tag {

    position: relative;

    padding-left: 10px;

    color: var(--green);

    font-size: .54rem;

    font-weight: 900;
}


.ema-live-tag::before {

    content: "";

    position: absolute;

    left: 0;

    top: 50%;

    width: 5px;

    height: 5px;

    transform:
        translateY(-50%);

    border-radius: 50%;

    background: var(--green);

    animation:
        miniPulse
        1.3s infinite;
}


.ema-monitor-footer {

    margin-top: 13px;

    display: flex;

    align-items: center;

    gap: 7px;

    color: var(--text-dim);

    font-size: .58rem;
}


.ema-feed-dot {

    width: 5px;

    height: 5px;

    border-radius: 50%;

    background: var(--cyan);

    animation:
        miniPulse
        1.2s infinite;
}


/* =========================================================
   MARKET RISK
========================================================= */

.market-risk-section {

    border-top:
        1px solid
        var(--border);
}


.risk-terminal {

    position: relative;

    overflow: hidden;

    border:
        1px solid
        var(--border-strong);

    border-radius: 24px;

    background: var(--panel);

    box-shadow: var(--shadow);

    transition:
        border-color .5s ease,
        box-shadow .5s ease;
}


/* =========================================================
   AMBIENT LIVE MOTION
========================================================= */

.risk-ambient {

    position: absolute;

    z-index: 0;

    width: 480px;

    height: 480px;

    top: -220px;

    right: -150px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(0,216,255,.08),
            transparent 67%
        );

    animation:
        riskAmbientMove
        9s ease-in-out infinite alternate;

    pointer-events: none;
}


@keyframes riskAmbientMove {

    from {
        transform:
            translate3d(0,0,0);
    }

    to {
        transform:
            translate3d(-90px,80px,0);
    }
}


/* =========================================================
   RISK SCANNER
========================================================= */

.risk-scanner {

    position: absolute;

    z-index: 15;

    top: 0;

    bottom: 0;

    left: -16%;

    width: 12%;

    opacity: 0;

    pointer-events: none;

    transform:
        skewX(-13deg);

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(0,216,255,.04),
            rgba(0,216,255,.17),
            rgba(255,255,255,.08),
            transparent
        );
}


.risk-scanner.risk-scan-active {

    animation:
        riskScannerSweep
        1.4s ease-out;
}


@keyframes riskScannerSweep {

    0% {

        left: -18%;

        opacity: 0;
    }

    12% {
        opacity: 1;
    }

    100% {

        left: 112%;

        opacity: 0;
    }
}


/* =========================================================
   RISK STATES
========================================================= */

.risk-terminal.risk-clear {

    border-color:
        rgba(49,237,133,.26);

    box-shadow:
        0 0 42px
        rgba(49,237,133,.035),
        var(--shadow);
}


.risk-terminal.risk-approaching {

    border-color:
        rgba(255,209,92,.55);

    box-shadow:
        0 0 60px
        rgba(255,209,92,.1),
        var(--shadow);
}


.risk-terminal.risk-high {

    border-color:
        rgba(255,80,100,.8);

    box-shadow:
        0 0 85px
        rgba(255,80,100,.18),
        var(--shadow);

    animation:
        highRiskTerminal
        1.8s infinite;
}


.risk-terminal.risk-cooldown {

    border-color:
        rgba(255,162,41,.55);

    box-shadow:
        0 0 55px
        rgba(255,162,41,.1),
        var(--shadow);
}


@keyframes highRiskTerminal {

    50% {

        box-shadow:
            0 0 110px
            rgba(255,80,100,.27),
            var(--shadow);
    }
}


.risk-state-change {

    animation:
        riskStateChange
        .8s ease;
}


@keyframes riskStateChange {

    30% {
        transform: scale(1.012);
    }
}


/* =========================================================
   RISK HEADER
========================================================= */

.risk-header {

    position: relative;

    z-index: 2;

    min-height: 62px;

    padding: 0 20px;

    display: grid;

    grid-template-columns:
        1.3fr .7fr 1fr;

    align-items: center;

    border-bottom:
        1px solid
        var(--border);

    background:
        rgba(34,42,53,.94);
}


.risk-header-left {

    display: flex;

    align-items: center;

    gap: 10px;
}


.risk-header-title {

    display: flex;

    align-items: center;

    gap: 9px;
}


.risk-header-title strong {

    color: var(--green);

    font-size: .62rem;

    letter-spacing: .12em;
}


.risk-header-title span {

    color: var(--text-soft);

    font-size: .56rem;

    font-weight: 800;

    letter-spacing: .06em;
}


.risk-live-dot {

    width: 7px;

    height: 7px;

    border-radius: 50%;

    background: var(--green);

    animation:
        livePulse
        1.3s infinite;
}


.risk-status {

    text-align: center;

    font-size: .68rem;

    font-weight: 950;

    letter-spacing: .08em;
}


.risk-clear
.risk-status {
    color: var(--green);
}


.risk-approaching
.risk-status {
    color: var(--yellow);
}


.risk-high
.risk-status {
    color: var(--red);
}


.risk-cooldown
.risk-status {
    color: var(--orange);
}


.risk-engine {

    color: var(--cyan);

    text-align: right;

    font-size: .64rem;

    font-weight: 900;

    letter-spacing: .07em;
}


/* =========================================================
   RISK MAIN
========================================================= */

.risk-main {

    position: relative;

    z-index: 2;

    display: grid;

    grid-template-columns:
        1.05fr .95fr;
}


.risk-state-column,
.next-event-column {

    min-height: 320px;

    padding: 36px;
}


.risk-state-column {

    border-right:
        1px solid
        var(--border);
}


/* =========================================================
   PROCESSING BARS
========================================================= */

.risk-processing-line {

    margin-bottom: 27px;

    display: flex;

    align-items: center;

    gap: 10px;

    color: var(--text-dim);

    font-size: .54rem;

    font-weight: 850;

    letter-spacing: .1em;
}


.processing-bars {

    height: 14px;

    display: flex;

    align-items: flex-end;

    gap: 2px;
}


.processing-bars i {

    display: block;

    width: 2px;

    height: 5px;

    background: var(--cyan);

    animation:
        processingBar
        .9s ease-in-out infinite alternate;
}


.processing-bars i:nth-child(2) {
    animation-delay: .15s;
}


.processing-bars i:nth-child(3) {
    animation-delay: .3s;
}


.processing-bars i:nth-child(4) {
    animation-delay: .45s;
}


@keyframes processingBar {

    from {

        height: 4px;

        opacity: .35;
    }

    to {

        height: 13px;

        opacity: 1;
    }
}


/* =========================================================
   CURRENT RISK STATE
========================================================= */

.risk-small-label {

    display: block;

    margin-bottom: 12px;

    color: var(--text-dim);

    font-size: .64rem;

    font-weight: 900;

    letter-spacing: .14em;

    text-transform: uppercase;
}


.risk-big-state {

    display: block;

    width: fit-content;

    margin-bottom: 12px;

    font-size:
        clamp(
            2.6rem,
            6vw,
            5rem
        );

    line-height: .95;

    letter-spacing: -.05em;
}


.risk-clear
.risk-big-state {

    color: var(--green);

    text-shadow:
        0 0 20px
        rgba(49,237,133,.13);

    animation:
        clearBreathing
        3.5s ease-in-out infinite;
}


@keyframes clearBreathing {

    0%,
    100% {

        text-shadow:
            0 0 12px
            rgba(49,237,133,.08);

        opacity: .91;
    }

    50% {

        text-shadow:
            0 0 30px
            rgba(49,237,133,.3);

        opacity: 1;
    }
}


.risk-approaching
.risk-big-state {
    color: var(--yellow);
}


.risk-high
.risk-big-state {

    color: var(--red);

    animation:
        riskTextPulse
        1s infinite;
}


.risk-cooldown
.risk-big-state {
    color: var(--orange);
}


@keyframes riskTextPulse {

    50% {
        opacity: .6;
    }
}


.risk-message {

    max-width: 430px;

    margin:
        0 0 32px;

    color: var(--text-soft);

    font-size: .96rem;
}


.risk-rule {

    max-width: 390px;

    padding: 11px 0;

    display: flex;

    justify-content: space-between;

    gap: 20px;

    border-top:
        1px solid
        var(--border);
}


.risk-rule span {

    color: var(--text-dim);

    font-size: .6rem;
}


.risk-rule strong {

    color: var(--text-soft);

    font-size: .62rem;
}


/* =========================================================
   NEXT EVENT
========================================================= */

.next-event-column {

    position: relative;

    overflow: hidden;

    background:
        linear-gradient(
            120deg,
            rgba(255,255,255,.012),
            rgba(0,216,255,.018),
            rgba(255,255,255,.012)
        );

    background-size:
        240% 240%;

    animation:
        nextEventAmbient
        10s ease-in-out infinite alternate;
}


@keyframes nextEventAmbient {

    from {
        background-position:
            0% 50%;
    }

    to {
        background-position:
            100% 50%;
    }
}


.next-event-live {

    margin-bottom: 27px;

    display: flex;

    align-items: center;

    gap: 7px;

    color: var(--cyan);

    font-size: .53rem;

    font-weight: 900;

    letter-spacing: .1em;
}


.next-event-live span {

    width: 5px;

    height: 5px;

    border-radius: 50%;

    background: var(--cyan);

    box-shadow:
        0 0 8px
        rgba(0,216,255,.55);

    animation:
        miniPulse
        1s infinite;
}


.next-event-name {

    display: block;

    max-width: 430px;

    margin-bottom: 7px;

    font-size:
        clamp(
            1.7rem,
            4vw,
            3rem
        );

    line-height: 1.03;

    letter-spacing: -.035em;
}


.next-event-meta {

    display: flex;

    gap: 7px;

    color: var(--text-soft);

    font-size: .8rem;
}


.risk-countdown-wrap {

    margin-top: 45px;

    padding-top: 21px;

    border-top:
        1px solid
        var(--border);
}


.risk-countdown-label {

    display: block;

    color: var(--text-dim);

    font-size: .58rem;

    font-weight: 900;

    letter-spacing: .12em;
}


.risk-countdown {

    display: block;

    min-height: 52px;

    margin-top: 4px;

    color: white;

    font-size:
        clamp(
            1.75rem,
            3.7vw,
            3rem
        );

    line-height: 1.15;

    letter-spacing: -.035em;

    font-variant-numeric:
        tabular-nums;
}


.risk-countdown::after {

    content: " LIVE";

    margin-left: 9px;

    color: var(--green);

    font-size: .45rem;

    letter-spacing: .12em;

    vertical-align: middle;
}


.risk-high
.risk-countdown {
    color: var(--red);
}


.risk-high
.risk-countdown::after {
    color: var(--red);
}


.risk-approaching
.risk-countdown {
    color: var(--yellow);
}


.risk-source {

    margin-top: 15px;

    color: var(--text-dim);

    font-size: .58rem;

    text-transform: uppercase;
}


/* =========================================================
   EVENT LIST
========================================================= */

.risk-events-area {

    position: relative;

    z-index: 2;

    border-top:
        1px solid
        var(--border);
}


.risk-events-heading {

    min-height: 44px;

    padding: 0 20px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    color: var(--text-dim);

    font-size: .59rem;

    font-weight: 900;

    letter-spacing: .1em;
}


.events-live-label {

    display: flex;

    align-items: center;

    gap: 7px;

    color: var(--text-dim);
}


.events-live-label i {

    width: 5px;

    height: 5px;

    border-radius: 50%;

    background: var(--green);

    animation:
        miniPulse
        1.4s infinite;
}


.risk-event-row {

    min-height: 52px;

    padding: 0 20px;

    display: grid;

    grid-template-columns:
        115px 1fr 80px 90px;

    align-items: center;

    gap: 15px;

    border-top:
        1px solid
        var(--border);

    transition:
        background .25s ease;
}


.risk-event-row:hover {

    background:
        rgba(255,255,255,.018);
}


.risk-event-impact {

    display: flex;

    align-items: center;

    gap: 7px;

    color: var(--text-dim);

    font-size: .58rem;

    font-weight: 800;
}


.impact-dot {

    width: 7px;

    height: 7px;

    border-radius: 50%;
}


.impact-high {

    background: var(--red);

    box-shadow:
        0 0 8px
        rgba(255,80,100,.35);

    animation:
        highImpactPulse
        1.7s ease-in-out infinite;
}


@keyframes highImpactPulse {

    50% {

        box-shadow:
            0 0 15px
            rgba(255,80,100,.7);

        transform: scale(1.18);
    }
}


.impact-medium {

    background: var(--orange);

    animation:
        mediumImpactPulse
        2.8s ease-in-out infinite;
}


@keyframes mediumImpactPulse {

    50% {
        opacity: .5;
    }
}


.impact-low {
    background: var(--text-dim);
}


.risk-event-name {

    min-width: 0;

    overflow: hidden;

    text-overflow: ellipsis;

    white-space: nowrap;

    font-size: .78rem;
}


.risk-event-date,
.risk-event-time {

    color: var(--text-soft);

    font-size: .7rem;

    text-align: right;
}


.risk-event-placeholder {

    padding: 25px 20px;

    color: var(--text-dim);

    font-size: .75rem;
}


/* =========================================================
   RISK FOOTER
========================================================= */

.risk-footer {

    position: relative;

    z-index: 2;

    min-height: 44px;

    padding: 0 20px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    border-top:
        1px solid
        var(--border);

    background:
        rgba(0,0,0,.2);

    color: var(--text-dim);

    font-size: .57rem;
}


.risk-footer > div {

    display: flex;

    align-items: center;

    gap: 7px;
}


.risk-footer-dot {

    width: 5px;

    height: 5px;

    border-radius: 50%;

    background: var(--green);

    animation:
        livePulse
        1.3s infinite;
}


.risk-high
.risk-footer-dot {
    background: var(--red);
}


.risk-approaching
.risk-footer-dot {
    background: var(--yellow);
}


.risk-cooldown
.risk-footer-dot {
    background: var(--orange);
}


.risk-sync-area {

    display: flex;

    align-items: center;

    gap: 14px !important;
}


.risk-sync {

    color: var(--cyan);

    font-weight: 900;

    letter-spacing: .07em;
}


.sync-flash {

    animation:
        syncFlash
        1.4s ease;
}


@keyframes syncFlash {

    0% {

        color: white;

        text-shadow:
            0 0 14px
            rgba(0,216,255,.8);
    }

    100% {

        color: var(--cyan);

        text-shadow: none;
    }
}


/* =========================================================
   OTHER SECTIONS
========================================================= */

.live-info-section,
.intro-section {

    border-top:
        1px solid
        var(--border);
}


.intro-section .narrow {
    text-align: center;
}


.feature-grid {

    display: grid;

    grid-template-columns:
        repeat(2,1fr);

    gap: 15px;
}


.feature-card {

    min-height: 230px;

    padding: 27px;

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius);

    background: var(--panel);
}


.future-access-card {

    border-color:
        rgba(0,216,255,.18);

    background:

        radial-gradient(
            circle at 90% 0%,
            rgba(0,216,255,.06),
            transparent 35%
        ),

        var(--panel);
}


.feature-number {

    color: var(--cyan);

    font-size: .72rem;

    font-weight: 900;
}


.feature-card h3 {

    margin:
        38px 0 9px;
}


.feature-card p {

    margin: 0;

    color: var(--text-soft);
}


/* =========================================================
   MARKET CARDS
========================================================= */

.market-grid {

    display: grid;

    grid-template-columns:
        repeat(4,1fr);

    gap: 13px;
}


.market-card {

    position: relative;

    min-height: 235px;

    padding: 23px;

    border:
        1px solid
        var(--border);

    border-radius:
        var(--radius);

    background: var(--panel);
}


.market-card.active {

    border-color:
        rgba(49,237,133,.3);

    box-shadow:
        0 0 30px
        rgba(49,237,133,.035);
}


.market-code {

    color: var(--cyan);

    font-size: 1.65rem;

    font-weight: 950;
}


.market-card h3 {

    margin:
        39px 0 7px;
}


.market-card p {
    color: var(--text-soft);
}


.status-chip {

    position: absolute;

    left: 23px;

    bottom: 20px;

    padding: 5px 9px;

    border:
        1px solid
        var(--border);

    border-radius: 999px;

    color: var(--text-dim);

    font-size: .65rem;
}


.status-chip.live {

    color: var(--green);

    background:
        var(--green-soft);
}


.status-chip.testing {
    color: var(--cyan);
}


/* =========================================================
   ALERT SECTION
========================================================= */

.alert-grid {

    display: grid;

    grid-template-columns:
        1fr .7fr;

    gap: 75px;

    align-items: center;
}


.alert-points {

    margin-top: 28px;

    display: grid;

    gap: 11px;

    color: var(--text-soft);
}


.phone-alert {

    position: relative;

    min-height: 465px;

    padding:
        72px 17px 24px;

    border:
        1px solid
        var(--border-strong);

    border-radius: 46px;

    background:
        linear-gradient(
            180deg,
            #1c222c,
            #10141a
        );

    box-shadow:
        var(--shadow);
}


.phone-notch {

    position: absolute;

    top: 16px;

    left: 50%;

    transform:
        translateX(-50%);

    width: 88px;

    height: 22px;

    border-radius: 999px;

    background: #06080a;
}


.notification {

    position: relative;

    padding: 19px;

    border:
        1px solid
        rgba(255,255,255,.12);

    border-radius: 22px;

    background:
        rgba(255,255,255,.09);
}


.notification-small {

    display: block;

    color: var(--text-soft);

    font-size: .65rem;

    font-weight: 900;
}


.notification p {

    margin:
        7px 45px 0 0;

    color: var(--text-soft);
}


.notification-time {

    position: absolute;

    right: 16px;

    top: 18px;

    color: var(--text-dim);

    font-size: .7rem;
}


/* =========================================================
   DISCIPLINE
========================================================= */

.discipline-panel {

    padding: 44px;

    display: grid;

    grid-template-columns:
        1fr .9fr;

    gap: 45px;

    align-items: center;

    border:
        1px solid
        var(--border);

    border-radius: 25px;

    background: var(--panel);
}


.discipline-states {

    display: flex;

    flex-wrap: wrap;

    gap: 9px;
}


.discipline-states span {

    padding: 8px 11px;

    border:
        1px solid
        rgba(255,162,41,.2);

    border-radius: 999px;

    color: var(--orange);

    background:
        rgba(255,162,41,.06);

    font-size: .71rem;

    font-weight: 850;
}


/* =========================================================
   FAQ
========================================================= */

.faq-list {

    margin-top: 42px;

    border-top:
        1px solid
        var(--border);
}


.faq-list details {

    border-bottom:
        1px solid
        var(--border);
}


.faq-list summary {

    position: relative;

    padding:
        21px 38px 21px 0;

    list-style: none;

    cursor: pointer;

    font-weight: 800;
}


.faq-list summary::after {

    content: "+";

    position: absolute;

    right: 0;

    color: var(--cyan);

    font-size: 1.3rem;
}


.faq-list details[open]
summary::after {
    content: "−";
}


.faq-list p {

    padding-bottom: 22px;

    color: var(--text-soft);
}


/* =========================================================
   ACCESS / WAITLIST
========================================================= */

.access-panel {

    padding: 50px;

    display: grid;

    grid-template-columns:
        1fr .7fr;

    gap: 55px;

    align-items: center;

    border:
        1px solid
        var(--border-strong);

    border-radius: 27px;

    background:

        radial-gradient(
            circle at 90% 10%,
            rgba(0,216,255,.06),
            transparent 35%
        ),

        var(--panel);

    box-shadow: var(--shadow);
}


.access-panel p {
    color: var(--text-soft);
}


.waitlist-benefits {

    margin-top: 20px;

    display: flex;

    flex-wrap: wrap;

    gap: 8px;
}


.waitlist-benefits span {

    padding:
        6px 9px;

    border:
        1px solid
        var(--border);

    border-radius: 999px;

    color: var(--text-soft);

    font-size: .65rem;
}


.waitlist-form {

    display: grid;

    gap: 9px;
}


.waitlist-form input {

    min-height: 50px;

    padding: 0 15px;

    border:
        1px solid
        var(--border-strong);

    border-radius: 13px;

    background:
        rgba(255,255,255,.035);

    color: white;
}


.waitlist-form button {

    min-height: 50px;

    border: 0;

    border-radius: 13px;

    background: white;

    color: #080b0f;

    font-weight: 900;
}


.waitlist-form small {
    color: var(--text-dim);
}


/* =========================================================
   FOOTER
========================================================= */

.site-footer {

    padding:
        32px 0 42px;

    border-top:
        1px solid
        var(--border);

    color: var(--text-dim);
}


.footer-wrap {

    display: flex;

    justify-content: space-between;

    gap: 30px;
}


.footer-wrap strong,
.footer-wrap span {
    display: block;
}


.footer-wrap strong {
    color: white;
}


.footer-legal {

    max-width: 420px;

    text-align: right;

    font-size: .78rem;
}



/* =========================================================
   LEGAL FOOTER LINKS
========================================================= */

.legal-footer-links {
    margin-top: 10px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.legal-footer-links a {
    color: var(--text-soft);
    font-size: .72rem;
    transition: color .2s ease;
}

.legal-footer-links a:hover {
    color: var(--cyan);
}

.footer-risk-line {
    margin-top: 8px;
}

/* =========================================================
   TABLET
========================================================= */

@media
(max-width: 1050px) {

    .nav-links {
        display: none;
    }


    .hero-grid,
    .section-header,
    .risk-main,
    .alert-grid,
    .discipline-panel,
    .access-panel {

        grid-template-columns: 1fr;
    }


    .ema-monitor-grid {

        grid-template-columns:
            repeat(2,1fr);
    }


    .market-grid {

        grid-template-columns:
            repeat(2,1fr);
    }


    .risk-state-column {

        border-right: 0;

        border-bottom:
            1px solid
            var(--border);
    }


    .ema-developing-note {

        width: 100%;

        margin-left: 0;
    }


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


/* =========================================================
   MOBILE
========================================================= */

@media
(max-width: 700px) {

    .container {

        width:
            min(
                calc(100% - 24px),
                var(--container)
            );
    }


    .site-header {
        position: relative;
    }


    .nav-cta {
        display: none;
    }


    .hero {
        padding: 64px 0;
    }


    .hero h1 {

        font-size:
            clamp(
                3rem,
                14vw,
                4.7rem
            );
    }


    .hero-actions {
        flex-direction: column;
    }


    .hero-meta {
        grid-template-columns: 1fr;
    }


    .free-access-note {

        justify-content: center;

        text-align: center;
    }


    /* FREE DASHBOARD BAR */

    .dashboard-free-bar {

        min-height: 52px;

        padding:
            7px 9px;
    }


    .dashboard-live-status,
    .dashboard-strip-item {
        font-size: .48rem;
    }


    .dashboard-strip-login {
        display: none;
    }


    .fullscreen-toggle {

        padding:
            0 8px;

        font-size: .45rem;
    }


    .fullscreen-icon {
        font-size: .68rem;
    }


    /* FULLSCREEN MOBILE */

    .dashboard-shell-fullscreen {

        padding:
            10px;

        justify-content:
            flex-start;
    }


    .dashboard-shell-fullscreen
    .dashboard-free-bar {

        margin-top:
            max(
                4px,
                env(safe-area-inset-top)
            );
    }


    .dashboard-shell-fullscreen
    .live-terminal {

        border-radius: 16px;
    }


    .dashboard-shell-fullscreen
    .terminal-row {

        min-height: 50px;
    }


    .dashboard-shell-fullscreen
    .terminal-row > * {

        font-size: .69rem;
    }


    .dashboard-shell-fullscreen
    .terminal-top {

        min-height: 59px;

        font-size: .74rem;
    }


    /* TERMINAL */

    .terminal-top {

        min-height: 57px;

        padding: 0 12px;

        font-size: .72rem;
    }


    .terminal-row {

        min-height: 47px;

        grid-template-columns:
            .93fr 1.18fr .92fr;
    }


    .terminal-row > * {

        padding: 0 8px;

        font-size: .66rem;
    }


    .trend-age {
        font-size: .57rem !important;
    }


    .session-value {
        font-size: .55rem !important;
    }


    .live-update-right {

        flex-direction: column;

        align-items: flex-end;

        gap: 1px;
    }


    .last-update {
        font-size: .48rem;
    }


    .dashboard-proof-line {

        padding:
            8px 4px;

        font-size: .49rem;
    }


    /* EMA */

    .ema-monitor-grid {

        grid-template-columns:
            repeat(2,1fr);

        gap: 9px;
    }


    .ema-card-top {

        min-height: 60px;

        padding: 10px;
    }


    .ema-stage {
        height: 112px;
    }


    .ema-timeframe {
        font-size: .51rem;
    }


    .ema-trend {
        font-size: .7rem;
    }


    .ema-structure {
        font-size: .41rem;
    }


    /* NEWS */

    .risk-header {

        min-height: 62px;

        padding: 0 12px;

        grid-template-columns:
            1fr auto;
    }


    .risk-header-left {

        align-items:
            flex-start;
    }


    .risk-header-title {

        flex-direction:
            column;

        align-items:
            flex-start;

        gap: 0;
    }


    .risk-header-title span {
        font-size: .43rem;
    }


    .risk-status {
        font-size: .54rem;
    }


    .risk-engine {
        display: none;
    }


    .risk-state-column,
    .next-event-column {

        min-height: auto;

        padding:
            26px 20px;
    }


    .risk-processing-line {
        font-size: .46rem;
    }


    .risk-big-state {

        font-size:
            clamp(
                2.8rem,
                14vw,
                4rem
            );
    }


    .risk-countdown {
        font-size: 1.95rem;
    }


    .risk-countdown::after {

        display: block;

        margin:
            4px 0 0;
    }


    .risk-event-row {

        min-height: 58px;

        padding:
            8px 12px;

        grid-template-columns:
            70px 1fr 56px 60px;

        gap: 7px;
    }


    .risk-event-impact {
        font-size: .46rem;
    }


    .risk-event-name {
        font-size: .62rem;
    }


    .risk-event-date,
    .risk-event-time {
        font-size: .53rem;
    }


    .risk-footer {

        padding:
            8px 12px;

        flex-direction: column;

        align-items: flex-start;

        gap: 2px;

        font-size: .46rem;
    }


    .risk-sync-area {

        width: 100%;

        justify-content:
            space-between;
    }


    /* OTHER */

    .section {
        padding: 72px 0;
    }


    .feature-grid,
    .market-grid {

        grid-template-columns: 1fr;
    }


    .discipline-panel,
    .access-panel {

        padding:
            27px 20px;
    }


    .footer-wrap {
        flex-direction: column;
    }
}


/* =========================================================
   VERY SMALL PHONES
========================================================= */

@media
(max-width: 390px) {

    .terminal-row > * {

        padding: 0 6px;

        font-size: .61rem;
    }


    .last-update {
        display: none;
    }


    .ema-stage {
        height: 100px;
    }


    .risk-countdown {
        font-size: 1.75rem;
    }


    .risk-event-row {

        grid-template-columns:
            50px 1fr 45px 54px;
    }


    .risk-event-impact span:last-child {
        display: none;
    }


    .dashboard-strip-free {
        display: none;
    }


    .fullscreen-toggle {

        padding:
            0 7px;
    }
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media
(prefers-reduced-motion: reduce) {

    * {

        animation-duration:
            .01ms !important;

        animation-iteration-count:
            1 !important;

        scroll-behavior:
            auto !important;
    }
}

/* =========================================================
   V11 DASHBOARD BAR RESPONSIVE OVERRIDES
========================================================= */

@media (max-width: 900px) {
    .dashboard-free-bar {
        grid-template-columns: 104px minmax(0,1fr) 104px;
    }

    .dashboard-live-fixed {
        padding: 0 9px;
        font-size: .52rem;
    }

    .dashboard-ticker-track {
        font-size: .49rem;
        gap: 15px;
    }

    .fullscreen-toggle {
        padding: 0 8px;
        font-size: .46rem;
    }
}

@media (max-width: 700px) {
    .dashboard-free-bar {
        min-height: 46px;
        grid-template-columns: 76px minmax(0,1fr) 48px;
    }

    .dashboard-live-fixed {
        padding: 0 7px;
        gap: 5px;
        font-size: .44rem;
        letter-spacing: .075em;
    }

    .dashboard-free-dot {
        width: 6px;
        height: 6px;
        flex-basis: 6px;
    }

    .dashboard-ticker-track {
        padding-left: 18px;
        gap: 12px;
        font-size: .43rem;
        letter-spacing: .065em;
        animation-duration: 20s;
    }

    .fullscreen-toggle {
        padding: 0;
        font-size: 0;
    }

    .fullscreen-icon {
        font-size: .75rem;
    }

    #fullscreenButtonText {
        display: none;
    }
}

@media (max-width: 390px) {
    .dashboard-free-bar {
        grid-template-columns: 66px minmax(0,1fr) 44px;
    }

    .dashboard-live-fixed {
        font-size: .40rem;
    }

    .dashboard-ticker-track {
        font-size: .40rem;
    }
}
/* =========================================================
   V12 THEME SYSTEM — LIGHT PUBLIC DEFAULT / DARK OPTIONAL
========================================================= */

.nav-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.theme-toggle {
    min-height: 38px;
    padding: 0 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border: 1px solid var(--border-strong);
    border-radius: 999px;
    color: var(--text-soft);
    background: var(--panel-2);
    font-size: .76rem;
    font-weight: 850;
    transition: transform .2s ease, color .2s ease, background .2s ease, border-color .2s ease;
}

.theme-toggle:hover {
    transform: translateY(-1px);
    color: var(--text);
    border-color: rgba(0,216,255,.32);
}

.theme-toggle-icon {
    color: var(--cyan);
    font-size: .92rem;
    line-height: 1;
}

body.theme-light {
    --bg: #f3f6f8;
    --bg-soft: #eaf0f4;
    --panel: #ffffff;
    --panel-2: #f7f9fb;
    --panel-3: #edf2f6;
    --text: #101820;
    --text-soft: #52606d;
    --text-dim: #7a8794;
    --border: rgba(16,24,32,.09);
    --border-strong: rgba(16,24,32,.15);
    --shadow: 0 30px 75px rgba(31,45,61,.13);
    color-scheme: light;
    background:
        radial-gradient(circle at 78% 12%, rgba(0,170,210,.10), transparent 31%),
        radial-gradient(circle at 17% 31%, rgba(22,170,91,.055), transparent 27%),
        var(--bg);
}

body.theme-light::before {
    opacity: .28;
    background-image:
        linear-gradient(rgba(16,24,32,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(16,24,32,.035) 1px, transparent 1px);
}

body.theme-light .site-header {
    background: rgba(247,249,251,.88);
}

body.theme-light .nav-links a:hover { color: #101820; }
body.theme-light .nav-cta { background: rgba(255,255,255,.72); }
body.theme-light .btn-primary { background: #101820; color: #fff; }
body.theme-light .btn-secondary { background: rgba(255,255,255,.65); }
body.theme-light .hero-meta > div { background: rgba(255,255,255,.58); }

body.theme-light .dashboard-free-bar {
    background: linear-gradient(90deg, rgba(49,237,133,.08), rgba(0,174,209,.05));
    box-shadow: 0 0 25px rgba(49,237,133,.045);
}

body.theme-light .dashboard-live-fixed,
body.theme-light .fullscreen-toggle {
    background: rgba(247,250,251,.98);
}

body.theme-light .dashboard-ticker-window { background: rgba(255,255,255,.45); }
body.theme-light .dashboard-ticker-window::before { background: linear-gradient(90deg, rgba(244,248,250,.98), rgba(244,248,250,0)); }
body.theme-light .dashboard-ticker-window::after { background: linear-gradient(270deg, rgba(244,248,250,.98), rgba(244,248,250,0)); }
body.theme-light .dashboard-ticker-track { color: #53616e; }
body.theme-light .fullscreen-toggle:hover { color: #101820; background: rgba(0,174,209,.08); }

body.theme-light .live-update-bar { background: rgba(16,24,32,.035); }
body.theme-light .chart-glow { background: rgba(0,174,209,.08); }
body.theme-light .ema-card,
body.theme-light .feature-card,
body.theme-light .market-card { box-shadow: 0 18px 45px rgba(31,45,61,.055); }

body.theme-light .dashboard-shell-fullscreen {
    background:
        radial-gradient(circle at 50% 30%, rgba(0,174,209,.10), transparent 40%),
        #f3f6f8;
}

body.theme-light .risk-terminal {
    box-shadow: 0 28px 70px rgba(31,45,61,.12);
}

body.theme-light input {
    color: var(--text);
}

body.theme-dark {
    color-scheme: dark;
}

@media (max-width: 900px) {
    .nav-actions { margin-left: auto; }
    .theme-toggle { padding: 0 11px; }
}

@media (max-width: 700px) {
    .theme-toggle { min-height: 36px; padding: 0 10px; }
    .theme-toggle #themeToggleText { display: none; }
    .nav-actions { gap: 7px; }
}