/* FxIoT semantic design tokens. */
:root {
    --fx-primary: #1677ff;
    --fx-success: #52c41a;
    --fx-warning: #faad14;
    --fx-error: #ff4d4f;
    --fx-bg: #f1f4f8;
    --fx-sider: #ffffff;
    --fx-panel: #ffffff;
    --fx-panel-muted: #f6f8fb;
    --fx-text: #1f1f1f;
    --fx-text-muted: #64748b;
    --fx-border: #dfe5ec;
    --fx-nav-hover: #e6f4ff;
    --fx-nav-icon: #f2f4f7;
    --fx-nav-icon-active: #bae0ff;
    --fx-shadow: 0 12px 32px rgba(15, 23, 42, 0.11);
    --fx-space-1: 4px;
    --fx-space-2: 8px;
    --fx-space-3: 12px;
    --fx-space-4: 16px;
    --fx-radius-sm: 4px;
    --fx-radius-md: 6px;
    --fx-radius-lg: 8px;
    --fx-elevation-sm: 0 1px 3px rgba(15, 23, 42, 0.06);
    --fx-elevation-md: 0 4px 12px rgba(15, 23, 42, 0.08);
    --fx-theme-transition: 0.18s ease;
}

.app-shell.theme-classic {
    --fx-primary: #1677ff;
    --fx-success: #52c41a;
    --fx-warning: #faad14;
    --fx-error: #ff4d4f;
    --fx-bg: #f1f4f8;
    --fx-sider: #ffffff;
    --fx-panel: #ffffff;
    --fx-panel-muted: #f6f8fb;
    --fx-text: #1f1f1f;
    --fx-text-muted: #64748b;
    --fx-border: #dfe5ec;
    --fx-nav-hover: #e6f4ff;
    --fx-nav-icon: #f2f4f7;
    --fx-nav-icon-active: #bae0ff;
    --fx-shadow: 0 12px 32px rgba(15, 23, 42, 0.11);
}

.app-shell.theme-techblue {
    --fx-primary: #22c7e8;
    --fx-success: #2ef2a2;
    --fx-warning: #ffd166;
    --fx-error: #ff5c7a;
    --fx-bg: #061a33;
    --fx-sider: #071f3a;
    --fx-panel: #0b2a4a;
    --fx-panel-muted: #0f3459;
    --fx-text: #e5eef7;
    --fx-text-muted: #9ab8cf;
    --fx-border: rgba(109, 213, 255, 0.32);
    --fx-nav-hover: rgba(0, 212, 255, 0.18);
    --fx-nav-icon: rgba(255, 255, 255, 0.08);
    --fx-nav-icon-active: rgba(0, 212, 255, 0.32);
    --fx-shadow: 0 18px 46px rgba(0, 9, 22, 0.36);
}

/* Supplemental semantic tokens shared by classic and tech-blue themes. */
.app-shell.theme-classic {
    --fx-primary-soft: #e8f3ff;
    --fx-success-soft: #eaf8f1;
    --fx-warning-soft: #fff6df;
    --fx-error-soft: #fff0f1;
    --fx-panel-raised: #ffffff;
    --fx-text-subtle: #8994a5;
    --fx-border-strong: #c6d0dc;
    --fx-focus-ring: rgba(22, 119, 255, 0.22);
    --fx-chart-series-1: #1677ff;
    --fx-chart-series-2: #52c41a;
    --fx-chart-series-3: #722ed1;
    --fx-chart-series-4: #13c2c2;
    --fx-chart-series-5: #fa8c16;
    --fx-chart-series-6: #eb2f96;
    --fx-chart-series-7: #2f54eb;
    --fx-chart-series-8: #a0d911;
    --fx-chart-series-9: #faad14;
    --fx-chart-series-10: #f5222d;
}

.app-shell.theme-techblue {
    --fx-primary-soft: rgba(34, 199, 232, 0.14);
    --fx-success-soft: rgba(46, 242, 162, 0.10);
    --fx-warning-soft: rgba(255, 209, 102, 0.11);
    --fx-error-soft: rgba(255, 92, 122, 0.11);
    --fx-panel-raised: #0e3154;
    --fx-text-subtle: #7598b2;
    --fx-border-strong: rgba(109, 213, 255, 0.46);
    --fx-focus-ring: rgba(34, 199, 232, 0.24);
    --fx-chart-series-1: #35d3f1;
    --fx-chart-series-2: #38dfa1;
    --fx-chart-series-3: #b792ff;
    --fx-chart-series-4: #4dd8c4;
    --fx-chart-series-5: #ffb454;
    --fx-chart-series-6: #ff7cc8;
    --fx-chart-series-7: #6c8dff;
    --fx-chart-series-8: #b9e85d;
    --fx-chart-series-9: #ffd166;
    --fx-chart-series-10: #ff6880;
}
