/* ============================================================================
   TUNERSUITE — ALIENTECH  ·  industrial design system
   ----------------------------------------------------------------------------
   A ground-up theme treatment inspired by Alientech's KESS3 / device hardware:
   matte black + gunmetal, an industrial lime->yellow accent, green status LEDs,
   a fine carbon grid, technical typography (Chakra Petch) and monospaced data
   (JetBrains Mono). It restyles the shared component classes wholesale — this is
   a DIFFERENT design, not a recolour.

   Scoped entirely to [data-theme="alientech"] (the layout renders
   <html data-theme="alientech">), so it is inert on every other theme.

   COLOURS come from the operator's theme_* settings via the palette resolver
   (--ts-primary / --ts-secondary / --ts-bg-body / …), seeded from
   config/themes.php on theme select. So the design is fixed but every colour is
   customisable in Settings Hub. This file hardcodes the TREATMENT, not the hues.
   ============================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');

/* ---------------------------------------------------------------- fonts --- */
[data-theme="alientech"] {
    --al-sans: 'Chakra Petch', 'Segoe UI', -apple-system, sans-serif;
    --al-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
    --al-grad: linear-gradient(120deg, var(--ts-primary), var(--ts-secondary));
    /* text/ink shown ON the accent (lime) — operator-customisable via the
       theme_on_primary_color setting (injected as --ts-on-primary by the layout);
       falls back to near-black for the default lime accent. */
    --al-ink: var(--ts-on-primary, #0a0d05);
    --al-line: rgba(var(--ts-primary-rgb), 0.16);
    --al-line-soft: rgba(var(--ts-primary-rgb), 0.09);
    /* map the framework font tokens so EVERY component inherits the theme font */
    --ts-font: var(--al-sans);
    --g-sans: var(--al-sans);
    --g-mono: var(--al-mono);
    --g-r-sm: 4px; --g-r-md: 7px; --g-r-lg: 9px; --g-r-xl: 12px;
    --ts-radius: 8px; --ts-radius-md: 8px; --ts-radius-lg: 10px;
}
[data-theme="alientech"] body,
[data-theme="alientech"] .glass-card,
[data-theme="alientech"] .card,
[data-theme="alientech"] .btn {
    font-family: var(--al-sans);
    letter-spacing: 0.005em;
}
[data-theme="alientech"] body.glass-v2 { --g-text: var(--ts-text-primary); }

/* Headings — technical, tight, slightly condensed feel */
[data-theme="alientech"] h1, [data-theme="alientech"] h2, [data-theme="alientech"] h3,
[data-theme="alientech"] h4, [data-theme="alientech"] h5, [data-theme="alientech"] h6,
[data-theme="alientech"] .h1, [data-theme="alientech"] .h2, [data-theme="alientech"] .h3,
[data-theme="alientech"] .h4, [data-theme="alientech"] .h5, [data-theme="alientech"] .h6 {
    font-family: var(--al-sans);
    font-weight: 700;
    letter-spacing: -0.01em;
}

/* Data / numbers / codes -> monospaced + tabular */
[data-theme="alientech"] .num, [data-theme="alientech"] .ts-stat__num,
[data-theme="alientech"] .stat-card .k-v, [data-theme="alientech"] .kpi .k-v,
[data-theme="alientech"] .ts-network-hero-stat-value, [data-theme="alientech"] code,
[data-theme="alientech"] .badge, [data-theme="alientech"] .ts-status-pill,
[data-theme="alientech"] .display-1, [data-theme="alientech"] .display-2,
[data-theme="alientech"] .display-3, [data-theme="alientech"] .display-4 {
    font-family: var(--al-mono) !important;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.01em;
}

/* Small uppercase labels / eyebrows / section headers -> mono tracked */
[data-theme="alientech"] .text-uppercase,
[data-theme="alientech"] .nav-section-label,
[data-theme="alientech"] .sidebar-label,
[data-theme="alientech"] .form-label,
[data-theme="alientech"] .table > thead th,
[data-theme="alientech"] .ts-table thead th,
[data-theme="alientech"] .card-header .text-muted,
[data-theme="alientech"] .stat-card .k-l, [data-theme="alientech"] .kpi .k-l {
    font-family: var(--al-mono) !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.72em;
}

/* -------------------------------------------------------- page backdrop --- */
/* Carbon grid + gunmetal glow (skipped when a photo background is set). */
[data-theme="alientech"] body:not(:has(.ts-app-bg)) {
    background:
        linear-gradient(var(--al-line-soft) 1px, transparent 1px) 0 0 / 46px 46px,
        linear-gradient(90deg, var(--al-line-soft) 1px, transparent 1px) 0 0 / 46px 46px,
        radial-gradient(1100px 520px at 82% -10%, rgba(var(--ts-primary-rgb), 0.06), transparent 60%),
        radial-gradient(820px 480px at -8% 12%, rgba(var(--ts-secondary-rgb), 0.05), transparent 55%),
        var(--ts-bg-body) !important;
    background-attachment: fixed !important;
}

/* --------------------------------------------------------------- cards ---- */
/* Hard-edged gunmetal panels with a lime signal rail — NOT frosted glass. */
[data-theme="alientech"] .glass-card,
[data-theme="alientech"] .card,
[data-theme="alientech"] .ts-card,
[data-theme="alientech"] .glass-section {
    background:
        linear-gradient(var(--al-line-soft) 1px, transparent 1px) 0 0 / 44px 44px,
        var(--ts-card-bg) !important;
    border: 1px solid var(--al-line) !important;
    border-radius: 10px !important;
    backdrop-filter: blur(6px) !important;
    -webkit-backdrop-filter: blur(6px) !important;
    box-shadow: 0 10px 34px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.03) !important;
    position: relative;
    overflow: hidden;
}
/* (left signal rail removed per operator request — clean left edge everywhere) */
[data-theme="alientech"] .glass-card::before,
[data-theme="alientech"] .stat-card::before,
[data-theme="alientech"] .kpi::before {
    content: none;
}
[data-theme="alientech"] .card-header,
[data-theme="alientech"] .glass-card > .card-header {
    border-bottom: 1px solid var(--al-line) !important;
    background: rgba(var(--ts-primary-rgb), 0.03) !important;
}

/* ------------------------------------------------------------- sidebar ---- */
[data-theme="alientech"] .ts-sidebar,
[data-theme="alientech"] .sidebar {
    border-right: 1px solid var(--al-line) !important;
    background:
        linear-gradient(var(--al-line-soft) 1px, transparent 1px) 0 0 / 44px 44px,
        var(--ts-sidebar-bg) !important;
}
/* nav rows get a status-LED slug on the left */
[data-theme="alientech"] .ts-sidebar .nav-link,
[data-theme="alientech"] .sidebar-link {
    position: relative;
    border-radius: 7px;
    font-weight: 500;
    letter-spacing: 0.01em;
}
[data-theme="alientech"] .ts-sidebar .nav-link::before,
[data-theme="alientech"] .sidebar-link::before {
    content: "";
    position: absolute;
    left: 3px; top: 50%;
    width: 5px; height: 5px;
    border-radius: 50%;
    transform: translateY(-50%);
    background: rgba(var(--ts-primary-rgb), 0.25);
    transition: background 0.15s, box-shadow 0.15s;
}
[data-theme="alientech"] .ts-sidebar .nav-link:hover::before,
[data-theme="alientech"] .sidebar-link:hover::before {
    background: var(--ts-primary);
    box-shadow: 0 0 8px var(--ts-primary);
}
/* active row -> lime gradient + lit LED */
[data-theme="alientech"] .ts-sidebar .nav-link.active,
[data-theme="alientech"] .sidebar-link.active,
[data-theme="alientech"] .ts-nav-item.active,
[data-theme="alientech"] .nav-link.active {
    background: var(--al-grad) !important;
    color: var(--al-ink) !important;
    box-shadow: 0 6px 16px rgba(var(--ts-primary-rgb), 0.22);
}
[data-theme="alientech"] .ts-sidebar .nav-link.active::before,
[data-theme="alientech"] .sidebar-link.active::before {
    background: var(--al-ink);
    box-shadow: none;
}
[data-theme="alientech"] .nav-link.active i,
[data-theme="alientech"] .sidebar-link.active i { color: var(--al-ink) !important; }

/* --------------------------------------------------------------- navbar --- */
[data-theme="alientech"] .ts-header,
[data-theme="alientech"] .navbar,
[data-theme="alientech"] .ts-navbar {
    border-bottom: 1px solid var(--al-line) !important;
    background: var(--ts-navbar-bg) !important;
    backdrop-filter: blur(10px) !important;
}

/* -------------------------------------------------------------- buttons --- */
[data-theme="alientech"] .ts-btn-primary,
[data-theme="alientech"] .btn-primary,
[data-theme="alientech"] .g-btn-primary,
[data-theme="alientech"] .btn.btn-primary {
    background: var(--al-grad) !important;
    border: none !important;
    color: var(--al-ink) !important;
    font-family: var(--al-sans);
    font-weight: 700;
    letter-spacing: 0.02em;
    border-radius: 8px !important;
    box-shadow: 0 6px 18px rgba(var(--ts-primary-rgb), 0.22);
}
[data-theme="alientech"] .ts-btn-primary:hover,
[data-theme="alientech"] .btn-primary:hover { filter: brightness(1.07); color: var(--al-ink) !important; }
[data-theme="alientech"] .btn-outline-primary,
[data-theme="alientech"] .ts-btn-secondary {
    border: 1px solid var(--al-line) !important;
    color: var(--ts-primary) !important;
    border-radius: 8px !important;
    background: rgba(var(--ts-primary-rgb), 0.05) !important;
}

/* --------------------------------------------------------------- tables --- */
[data-theme="alientech"] .table,
[data-theme="alientech"] .ts-table { border-color: var(--al-line) !important; }
[data-theme="alientech"] .table > thead th,
[data-theme="alientech"] .ts-table thead th {
    background: rgba(var(--ts-primary-rgb), 0.05) !important;
    border-bottom: 1px solid var(--al-line) !important;
    color: var(--ts-text-primary) !important;
}
[data-theme="alientech"] .table > tbody td,
[data-theme="alientech"] .ts-table tbody td { border-color: var(--al-line-soft) !important; }
[data-theme="alientech"] .table-hover > tbody > tr:hover > *,
[data-theme="alientech"] .ts-table tbody tr:hover > * {
    background: rgba(var(--ts-primary-rgb), 0.06) !important;
}

/* -------------------------------------------------------------- inputs ---- */
[data-theme="alientech"] .form-control,
[data-theme="alientech"] .form-select,
[data-theme="alientech"] .ts-input,
[data-theme="alientech"] .ts-select,
[data-theme="alientech"] .g-input {
    background: rgba(0, 0, 0, 0.22) !important;
    border: 1px solid var(--al-line) !important;
    border-radius: 7px !important;
    color: var(--ts-text-primary) !important;
    font-family: var(--al-sans);
}
[data-theme="alientech"] .form-control:focus,
[data-theme="alientech"] .form-select:focus,
[data-theme="alientech"] .ts-input:focus,
[data-theme="alientech"] .ts-select:focus,
[data-theme="alientech"] .g-input:focus {
    border-color: var(--ts-primary) !important;
    box-shadow: 0 0 0 3px rgba(var(--ts-primary-rgb), 0.20) !important;
}
/* Native <select> dropdown legibility: a dark-styled control whose OPTION list is
   left at the OS default renders light text on a white popup = unreadable (recurring
   bug). color-scheme flips the native popup to match the theme, and explicit option
   colours (token-driven) guarantee contrast where color-scheme is unsupported. */
[data-theme="alientech"] .form-select,
[data-theme="alientech"] .ts-select,
[data-theme="alientech"] select { color-scheme: dark; }
[data-theme="alientech"] .form-select option,
[data-theme="alientech"] .ts-select option,
[data-theme="alientech"] select option {
    background-color: var(--ts-bg-surface, #15150e) !important;
    color: var(--ts-text-primary, #f2f3e8) !important;
}
[data-theme="alientech"][data-bs-theme="light"] .form-select,
[data-theme="alientech"][data-bs-theme="light"] .ts-select,
[data-theme="alientech"][data-bs-theme="light"] select,
[data-theme="alientech"] body.light-mode .form-select,
[data-theme="alientech"] body.light-mode .ts-select,
[data-theme="alientech"] body.light-mode select { color-scheme: light; }

/* ----------------------------------------------------- badges / pills ----- */
[data-theme="alientech"] .badge.bg-primary,
[data-theme="alientech"] .ts-status-pill[data-status="processing"],
[data-theme="alientech"] .ts-status-pill[data-status="in_progress"] {
    background: rgba(var(--ts-primary-rgb), 0.14) !important;
    color: var(--ts-primary) !important;
    border: 1px solid rgba(var(--ts-primary-rgb), 0.40) !important;
}
/* LED dot before status pills */
[data-theme="alientech"] .ts-status-pill::before {
    content: "";
    display: inline-block;
    width: 6px; height: 6px;
    border-radius: 50%;
    margin-right: 6px;
    background: currentColor;
    box-shadow: 0 0 6px currentColor;
    vertical-align: middle;
}
[data-theme="alientech"] .progress-bar,
[data-theme="alientech"] .form-range::-webkit-slider-thumb { background: var(--al-grad) !important; }
[data-theme="alientech"] .form-check-input:checked {
    background-color: var(--ts-primary) !important;
    border-color: var(--ts-primary) !important;
}

/* --------------------------------------------- per-page palettes -> tokens- */
/* Master Dashboard (--md-*) + FR detail (--fr-*) carry their own token files;
   map them onto the customisable main tokens so they follow the palette. */
[data-theme="alientech"] .master-dashboard,
[data-theme="alientech"] .fr-detail {
    --md-bg: var(--ts-bg-body) !important;             --fr-bg: var(--ts-bg-body) !important;
    --md-surface: var(--ts-card-bg) !important;         --fr-surface: var(--ts-card-bg) !important;
    --md-surface-2: var(--ts-bg-surface) !important;    --fr-surface-2: var(--ts-bg-surface) !important;
    --md-surface-hov: rgba(var(--ts-primary-rgb), 0.08) !important;  --fr-surface-hov: rgba(var(--ts-primary-rgb), 0.08) !important;
    --md-border: var(--al-line) !important;             --fr-border: var(--al-line) !important;
    --md-border-2: rgba(var(--ts-primary-rgb), 0.26) !important;     --fr-border-2: rgba(var(--ts-primary-rgb), 0.26) !important;
    --md-hairline: rgba(var(--ts-primary-rgb), 0.20) !important;     --fr-hairline: rgba(var(--ts-primary-rgb), 0.20) !important;
    --md-text: var(--ts-text-primary) !important;       --fr-text: var(--ts-text-primary) !important;
    --md-accent: var(--ts-primary) !important;          --fr-accent: var(--ts-primary) !important;
    --md-accent-2: var(--ts-secondary) !important;      --fr-accent-2: var(--ts-secondary) !important;
    --md-accent-bg: rgba(var(--ts-primary-rgb), 0.12) !important;    --fr-accent-bg: rgba(var(--ts-primary-rgb), 0.12) !important;
    --md-accent-border: rgba(var(--ts-primary-rgb), 0.32) !important; --fr-accent-border: rgba(var(--ts-primary-rgb), 0.32) !important;
    --md-state-info: var(--ts-primary) !important;      --fr-state-info: var(--ts-primary) !important;
    --md-mono: var(--al-mono) !important;               --fr-mono: var(--al-mono) !important;
    --md-sans: var(--al-sans) !important;               --fr-sans: var(--al-sans) !important;
}

/* ---------------------------------------------- secondary + semantic buttons */
[data-theme="alientech"] .btn-secondary,
[data-theme="alientech"] .btn.btn-secondary {
    background: rgba(var(--ts-primary-rgb), 0.06) !important;
    border: 1px solid var(--al-line) !important;
    color: var(--ts-text-primary) !important;
    border-radius: 8px !important;
    font-weight: 600;
}
[data-theme="alientech"] .btn-success,
[data-theme="alientech"] .btn-danger,
[data-theme="alientech"] .btn-warning,
[data-theme="alientech"] .btn-info,
[data-theme="alientech"] .btn-dark,
[data-theme="alientech"] .btn-light {
    border-radius: 8px !important;
    border: none !important;
    font-family: var(--al-sans);
    font-weight: 700;
    letter-spacing: 0.02em;
}
[data-theme="alientech"] .btn-outline-secondary,
[data-theme="alientech"] .btn-outline-success,
[data-theme="alientech"] .btn-outline-danger,
[data-theme="alientech"] .btn-outline-warning,
[data-theme="alientech"] .btn-outline-info,
[data-theme="alientech"] .btn-outline-light,
[data-theme="alientech"] .btn-outline-dark {
    border-radius: 8px !important;
    border-width: 1px !important;
    font-weight: 600;
}

/* ------------------------------------------------------------- dropdowns --- */
[data-theme="alientech"] .dropdown-menu,
[data-theme="alientech"] .ts-dropdown-menu {
    background:
        linear-gradient(var(--al-line-soft) 1px, transparent 1px) 0 0 / 44px 44px,
        var(--ts-card-bg) !important;
    border: 1px solid var(--al-line) !important;
    border-radius: 9px !important;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.42) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
[data-theme="alientech"] .dropdown-item { border-radius: 6px; font-weight: 500; }
[data-theme="alientech"] .dropdown-item:hover,
[data-theme="alientech"] .dropdown-item:focus {
    background: rgba(var(--ts-primary-rgb), 0.10) !important;
    color: var(--ts-primary) !important;
}
[data-theme="alientech"] .dropdown-item.active,
[data-theme="alientech"] .dropdown-item:active {
    background: var(--al-grad) !important;
    color: var(--al-ink) !important;
}
[data-theme="alientech"] .dropdown-divider { border-top-color: var(--al-line) !important; }
[data-theme="alientech"] .dropdown-header {
    font-family: var(--al-mono) !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.7em;
    color: var(--ts-primary) !important;
}

/* ---------------------------------------------------------------- modals --- */
[data-theme="alientech"] .modal-content {
    background:
        linear-gradient(var(--al-line-soft) 1px, transparent 1px) 0 0 / 46px 46px,
        var(--ts-card-bg) !important;
    border: 1px solid var(--al-line) !important;
    border-radius: 12px !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.55) !important;
    position: relative;
    overflow: hidden;
}
/* signal rail across the top edge — modal echo of the card rail */
[data-theme="alientech"] .modal-content::before {
    content: "";
    position: absolute;
    left: 0; top: 0; right: 0;
    height: 3px;
    background: var(--al-grad);
}
[data-theme="alientech"] .modal-header,
[data-theme="alientech"] .modal-footer { border-color: var(--al-line) !important; }
[data-theme="alientech"] .modal-backdrop.show { opacity: 0.72; }

/* ------------------------------------------------------- nav tabs / pills --- */
[data-theme="alientech"] .nav-tabs { border-bottom: 1px solid var(--al-line) !important; }
[data-theme="alientech"] .nav-tabs .nav-link,
[data-theme="alientech"] .nav-pills .nav-link {
    font-family: var(--al-mono) !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.78em;
    font-weight: 600;
    border: none !important;
    border-radius: 7px 7px 0 0;
    opacity: 0.75;
}
[data-theme="alientech"] .nav-tabs .nav-link.active {
    opacity: 1;
    color: var(--ts-primary) !important;
    background: transparent !important;
    box-shadow: inset 0 -2px 0 var(--ts-primary);
}
[data-theme="alientech"] .nav-pills .nav-link { border-radius: 7px; }
[data-theme="alientech"] .nav-pills .nav-link.active {
    opacity: 1;
    background: var(--al-grad) !important;
    color: var(--al-ink) !important;
}

/* ---------------------------------------------------------------- alerts --- */
[data-theme="alientech"] .alert {
    border: 1px solid var(--al-line) !important;
    border-left-width: 3px !important;
    border-radius: 8px !important;
    background: rgba(var(--ts-primary-rgb), 0.05) !important;
}
[data-theme="alientech"] .alert-success { border-left-color: var(--ts-success, #22c55e) !important; }
[data-theme="alientech"] .alert-danger  { border-left-color: var(--ts-danger, #ef4444) !important; }
[data-theme="alientech"] .alert-warning { border-left-color: var(--ts-secondary) !important; }
[data-theme="alientech"] .alert-info,
[data-theme="alientech"] .alert-primary { border-left-color: var(--ts-primary) !important; }

/* ---------------------------------------------------------------- toasts --- */
[data-theme="alientech"] .toast {
    background: var(--ts-card-bg) !important;
    border: 1px solid var(--al-line) !important;
    border-radius: 9px !important;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.45) !important;
}
[data-theme="alientech"] .toast-header {
    background: rgba(var(--ts-primary-rgb), 0.05) !important;
    border-bottom: 1px solid var(--al-line) !important;
    font-family: var(--al-mono) !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.74em;
}

/* ------------------------------------------------------------ pagination --- */
[data-theme="alientech"] .page-link {
    background: rgba(var(--ts-primary-rgb), 0.04) !important;
    border: 1px solid var(--al-line) !important;
    color: var(--ts-text-primary) !important;
    font-family: var(--al-mono) !important;
}
[data-theme="alientech"] .page-item.active .page-link {
    background: var(--al-grad) !important;
    border-color: transparent !important;
    color: var(--al-ink) !important;
}
[data-theme="alientech"] .page-link:hover { background: rgba(var(--ts-primary-rgb), 0.10) !important; }

/* -------------------------------------------------------------- switches --- */
[data-theme="alientech"] .form-switch .form-check-input:checked {
    background-color: var(--ts-primary) !important;
    border-color: var(--ts-primary) !important;
}
[data-theme="alientech"] .form-switch .form-check-input:focus {
    box-shadow: 0 0 0 3px rgba(var(--ts-primary-rgb), 0.20) !important;
}

/* --------------------------------------------------------------- stepper --- */
/* Delivery / wizard steppers — LED-node treatment matching the sidebar slugs. */
[data-theme="alientech"] .ts-stepper-step .ts-stepper-dot,
[data-theme="alientech"] .stepper-step .step-icon {
    border: 1px solid var(--al-line) !important;
    background: rgba(var(--ts-primary-rgb), 0.06) !important;
}
[data-theme="alientech"] .ts-stepper-step.is-current .ts-stepper-dot,
[data-theme="alientech"] .ts-stepper-step.is-complete .ts-stepper-dot,
[data-theme="alientech"] .stepper-step.active .step-icon {
    background: var(--al-grad) !important;
    color: var(--al-ink) !important;
    box-shadow: 0 0 10px rgba(var(--ts-primary-rgb), 0.5);
}

/* ------------------------------------------------------------ scrollbars --- */
[data-theme="alientech"] * { scrollbar-color: rgba(var(--ts-primary-rgb), 0.4) transparent; scrollbar-width: thin; }
[data-theme="alientech"] ::-webkit-scrollbar { width: 10px; height: 10px; }
[data-theme="alientech"] ::-webkit-scrollbar-track { background: transparent; }
[data-theme="alientech"] ::-webkit-scrollbar-thumb {
    background: rgba(var(--ts-primary-rgb), 0.32);
    border-radius: 6px;
    border: 2px solid transparent;
    background-clip: content-box;
}
[data-theme="alientech"] ::-webkit-scrollbar-thumb:hover {
    background: rgba(var(--ts-primary-rgb), 0.55);
    background-clip: content-box;
}

/* ============================================================ LIGHT MODE === */
/* Every treatment above is tuned for the matte-black DARK palette. In light
   mode the operator's Alientech light palette flips the framework tokens (white
   surfaces, dark ink) automatically, but a handful of dark-only rgba() values —
   the carbon-grid glow, the black input fill, the heavy card shadows — need
   light equivalents so nothing reads dark-on-white. Higher specificity (two
   attrs) + later position beats the dark rules. Dual selector (`data-bs-theme`
   + legacy `body.light-mode`) per the app's light-mode convention. */
[data-theme="alientech"][data-bs-theme="light"] body:not(:has(.ts-app-bg)),
[data-theme="alientech"] body.light-mode:not(:has(.ts-app-bg)) {
    background:
        linear-gradient(rgba(var(--ts-primary-rgb), 0.10) 1px, transparent 1px) 0 0 / 46px 46px,
        linear-gradient(90deg, rgba(var(--ts-primary-rgb), 0.10) 1px, transparent 1px) 0 0 / 46px 46px,
        radial-gradient(1100px 520px at 82% -10%, rgba(var(--ts-primary-rgb), 0.08), transparent 60%),
        radial-gradient(820px 480px at -8% 12%, rgba(var(--ts-secondary-rgb), 0.06), transparent 55%),
        var(--ts-bg-body) !important;
    background-attachment: fixed !important;
}
/* Inputs — the dark rgba(0,0,0,0.22) fill is near-black on white; use a hairline
   primary-tinted fill so fields read as light surfaces. */
[data-theme="alientech"][data-bs-theme="light"] .form-control,
[data-theme="alientech"][data-bs-theme="light"] .form-select,
[data-theme="alientech"][data-bs-theme="light"] .ts-input,
[data-theme="alientech"][data-bs-theme="light"] .ts-select,
[data-theme="alientech"][data-bs-theme="light"] .g-input,
[data-theme="alientech"] body.light-mode .form-control,
[data-theme="alientech"] body.light-mode .form-select,
[data-theme="alientech"] body.light-mode .ts-input,
[data-theme="alientech"] body.light-mode .ts-select {
    background: rgba(var(--ts-primary-rgb), 0.03) !important;
    border-color: rgba(var(--ts-primary-rgb), 0.22) !important;
    color: var(--ts-text-primary) !important;
}
/* Cards / surfaces — drop the heavy dark drop-shadow + the dark-tuned blur for a
   soft light elevation (the card bg + carbon grid + lime rail follow the tokens). */
[data-theme="alientech"][data-bs-theme="light"] .glass-card,
[data-theme="alientech"][data-bs-theme="light"] .card,
[data-theme="alientech"][data-bs-theme="light"] .ts-card,
[data-theme="alientech"][data-bs-theme="light"] .glass-section,
[data-theme="alientech"] body.light-mode .glass-card,
[data-theme="alientech"] body.light-mode .card {
    box-shadow: 0 8px 24px rgba(var(--ts-primary-rgb), 0.06), 0 2px 6px rgba(0, 0, 0, 0.05) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
[data-theme="alientech"][data-bs-theme="light"] .modal-content { box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22) !important; }
[data-theme="alientech"][data-bs-theme="light"] .dropdown-menu,
[data-theme="alientech"][data-bs-theme="light"] .toast { box-shadow: 0 12px 34px rgba(0, 0, 0, 0.14) !important; }
[data-theme="alientech"][data-bs-theme="light"] .modal-backdrop.show { opacity: 0.4; }

/* ============================================================================
   INDUSTRIAL CHROME REDESIGN (2026-07-07)
   ----------------------------------------------------------------------------
   Push past "recolour": make the shell read as ECU-tool hardware, not a SaaS
   admin. Sharp bevelled panels + corner brackets, a command-bar navbar, a
   control-panel rail sidebar, hazard accents, instrument-style KPI tiles.
   ============================================================================ */

/* ---- global: kill the soft/round SaaS feel — sharp technical edges ---- */
[data-theme="alientech"] {
    --al-bevel: 3px;
}
[data-theme="alientech"] .glass-card,
[data-theme="alientech"] .card,
[data-theme="alientech"] .ts-card,
[data-theme="alientech"] .stat-card,
[data-theme="alientech"] .kpi,
[data-theme="alientech"] .modal-content,
[data-theme="alientech"] .dropdown-menu {
    border-radius: var(--al-bevel) !important;
    /* clipped top-right corner = hardware bezel */
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}

/* ---- instrument-panel KPI/stat cards: top LED strip + corner brackets ---- */
[data-theme="alientech"] .stat-card,
[data-theme="alientech"] .kpi,
[data-theme="alientech"] .glass-card {
    position: relative;
    background:
        linear-gradient(180deg, rgba(var(--ts-primary-rgb), 0.05), transparent 90px),
        linear-gradient(var(--al-line-soft) 1px, transparent 1px) 0 0 / 40px 40px,
        var(--ts-card-bg) !important;
}
/* (bottom-left corner bracket removed per operator request — no green on the left).
   The hero's own ::after (hazard tab, top-right) is a more specific rule and stays. */
[data-theme="alientech"] .glass-card::after,
[data-theme="alientech"] .stat-card::after {
    content: none;
}

/* ---- NAVBAR → COMMAND BAR ------------------------------------------------ */
[data-theme="alientech"] .ts-header,
[data-theme="alientech"] .navbar {
    background:
        linear-gradient(180deg, rgba(var(--ts-primary-rgb), 0.06), transparent 70%),
        var(--ts-navbar-bg) !important;
    border-bottom: 2px solid var(--al-line) !important;
    box-shadow: 0 2px 0 rgba(var(--ts-primary-rgb), 0.22), 0 10px 30px rgba(0, 0, 0, 0.45) !important;
    backdrop-filter: blur(8px) !important;
    position: sticky; position: -webkit-sticky;
}
/* hazard strip running under the command bar */
[data-theme="alientech"] .ts-header::after {
    content: "";
    position: absolute; left: 0; right: 0; bottom: -2px; height: 2px;
    background: repeating-linear-gradient(90deg, var(--ts-primary) 0 20px, transparent 20px 30px);
    opacity: 0.45;
    pointer-events: none;
}
/* brand / logo text → technical */
[data-theme="alientech"] .ts-header .navbar-brand,
[data-theme="alientech"] .ts-header .brand-text {
    font-family: var(--al-mono) !important;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 700;
}
/* navbar search / pills → recessed instrument slots */
[data-theme="alientech"] .ts-header .form-control,
[data-theme="alientech"] .ts-header .ts-search,
[data-theme="alientech"] .ts-header input[type="search"] {
    background: rgba(0, 0, 0, 0.28) !important;
    border: 1px solid var(--al-line) !important;
    border-radius: 2px !important;
    font-family: var(--al-mono) !important;
}

/* ---- SIDEBAR → CONTROL PANEL -------------------------------------------- */
[data-theme="alientech"] .ts-sidebar,
[data-theme="alientech"] .glass-sidebar {
    border-right: 2px solid var(--al-line) !important;
    background:
        linear-gradient(180deg, rgba(var(--ts-primary-rgb), 0.05), transparent 160px),
        linear-gradient(var(--al-line-soft) 1px, transparent 1px) 0 0 / 40px 40px,
        var(--ts-sidebar-bg) !important;
    box-shadow: inset -1px 0 0 rgba(var(--ts-primary-rgb), 0.18);
}
/* section headers → // TECHNICAL READOUT */
[data-theme="alientech"] .ts-sidebar .nav-section-label,
[data-theme="alientech"] .ts-sidebar .sidebar-label,
[data-theme="alientech"] .ts-sidebar .text-uppercase.small,
[data-theme="alientech"] .ts-sidebar .text-secondary {
    font-family: var(--al-mono) !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase;
    font-size: 0.62rem !important;
    color: rgba(var(--ts-primary-rgb), 0.75) !important;
    position: relative;
    padding-left: 14px;
}
[data-theme="alientech"] .ts-sidebar .nav-section-label::before,
[data-theme="alientech"] .ts-sidebar .sidebar-label::before {
    content: "//";
    position: absolute; left: 0;
    color: rgba(var(--ts-primary-rgb), 0.55);
}
/* nav rows → hardware switches; active = filled block with a notched corner */
[data-theme="alientech"] .ts-sidebar .nav-link {
    border-radius: 2px !important;
    margin: 1px 6px;
}
[data-theme="alientech"] .ts-sidebar .nav-link.active,
[data-theme="alientech"] .ts-sidebar .sidebar-link.active {
    background: var(--al-grad) !important;
    color: var(--al-ink) !important;
    clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 0 100%);
    box-shadow: 0 0 0 1px rgba(var(--ts-primary-rgb), 0.5), 0 4px 14px rgba(var(--ts-primary-rgb), 0.25);
}

/* ---- HERO → hardware panel with corner brackets + hazard tab ------------ */
[data-theme="alientech"] .ts-main .glass-card:first-of-type,
[data-theme="alientech"] .dashboard-hero,
[data-theme="alientech"] .master-hero {
    position: relative;
}
[data-theme="alientech"] .dashboard-hero::before,
[data-theme="alientech"] .master-hero::before {
    /* keep the signal rail from the base rules; add a hazard tab top-right */
}

/* ---- BUTTONS → hardware keys (sharp) ------------------------------------ */
[data-theme="alientech"] .btn,
[data-theme="alientech"] .ts-btn {
    border-radius: 2px !important;
}
[data-theme="alientech"] .ts-btn-primary,
[data-theme="alientech"] .btn-primary {
    clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 0 100%);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-family: var(--al-mono) !important;
    font-weight: 700;
}

/* ---- breadcrumb / page title → coordinates readout ---------------------- */
[data-theme="alientech"] .breadcrumb,
[data-theme="alientech"] .ts-breadcrumb {
    font-family: var(--al-mono) !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.72rem;
}

/* LIGHT-MODE: brackets + hazard need darker-on-light equivalents */
[data-theme="alientech"][data-bs-theme="light"] .glass-card::after,
[data-theme="alientech"][data-bs-theme="light"] .stat-card::after {
    border-color: rgba(var(--ts-primary-rgb), 0.6);
}

/* ---- COMMAND SECTION-NAV (industrial redesign) -------------------------- */
[data-theme="alientech"] .al-cmdnav {
    background:
        linear-gradient(var(--al-line-soft) 1px, transparent 1px) 0 0 / 40px 40px,
        var(--ts-navbar-bg);
    border-bottom: 1px solid var(--al-line);
    margin: 0 0 1.25rem;
}
[data-theme="alientech"] .al-cmdnav__rule {
    height: 2px;
    background: repeating-linear-gradient(90deg, var(--ts-primary) 0 20px, transparent 20px 30px);
    opacity: 0.4;
}
[data-theme="alientech"] .al-cmdnav__bar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px; padding: 0 18px; overflow-x: auto; scrollbar-width: none;
}
[data-theme="alientech"] .al-cmdnav__bar::-webkit-scrollbar { display: none; }
[data-theme="alientech"] .al-cmdnav__list { display: flex; gap: 2px; list-style: none; margin: 0; padding: 0; }
[data-theme="alientech"] .al-cmdnav__tab {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 12px 16px;
    font-family: var(--al-mono); font-size: 0.72rem; letter-spacing: 0.12em;
    text-transform: uppercase; text-decoration: none; white-space: nowrap;
    color: var(--ts-text-primary); opacity: 0.55;
    border-bottom: 2px solid transparent;
    transition: opacity 0.15s, color 0.15s, border-color 0.15s, background 0.15s;
}
[data-theme="alientech"] .al-cmdnav__tab i { font-size: 0.95rem; }
[data-theme="alientech"] .al-cmdnav__tab:hover {
    opacity: 1; color: var(--ts-primary);
    background: rgba(var(--ts-primary-rgb), 0.06);
}
[data-theme="alientech"] .al-cmdnav__tab.is-active {
    opacity: 1; color: var(--ts-primary);
    border-bottom-color: var(--ts-primary);
    background: rgba(var(--ts-primary-rgb), 0.08);
    text-shadow: 0 0 12px rgba(var(--ts-primary-rgb), 0.5);
}
[data-theme="alientech"] .al-cmdnav__status {
    display: inline-flex; align-items: center; gap: 7px; white-space: nowrap;
    font-family: var(--al-mono); font-size: 0.62rem; letter-spacing: 0.16em;
    color: rgba(var(--ts-primary-rgb), 0.7);
}
[data-theme="alientech"] .al-led {
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--ts-primary); box-shadow: 0 0 8px var(--ts-primary);
    animation: alLedPulse 2.4s ease-in-out infinite;
}
@keyframes alLedPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
[data-theme="alientech"] body[data-perf-tier="saver"] .al-led { animation: none; }
@media (max-width: 991.98px) { [data-theme="alientech"] .al-cmdnav__status { display: none; } }

/* ============================================================================
   UNIFIED COMMAND HEADER (stage 2) — navbar + section-nav read as ONE console
   header, not two stacked SaaS bars. This is the biggest "different product"
   cue vs neural-glass.
   ============================================================================ */
[data-theme="alientech"] .ts-header {
    border-bottom: none !important;
    box-shadow: none !important;
    padding-top: 0.55rem !important;
    padding-bottom: 0.55rem !important;
}
[data-theme="alientech"] .ts-header::after { display: none !important; }
[data-theme="alientech"] .al-cmdnav {
    margin-top: 0 !important;
    border-top: 1px solid var(--al-line-soft);
}
/* page title → coordinate/module readout */
[data-theme="alientech"] .ts-header h5 {
    font-family: var(--al-mono) !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.82rem !important;
    opacity: 0.75;
}
[data-theme="alientech"] .ts-header h5::before {
    content: "▸ ";
    color: var(--ts-primary);
    opacity: 0.85;
}
/* utility buttons in the header → recessed hardware keys */
[data-theme="alientech"] .ts-header .btn,
[data-theme="alientech"] .ts-header .ts-nav-icon-btn,
[data-theme="alientech"] .ts-header .nav-link.position-relative {
    border-radius: 3px !important;
}

/* ============================================================================
   HERO = PRIMARY INSTRUMENT PANEL — full corner brackets + hazard tab.
   Applies to the first card in <main> (dashboard hero on every page).
   ============================================================================ */
[data-theme="alientech"] main > .glass-card:first-of-type,
[data-theme="alientech"] main > div > .glass-card:first-of-type,
[data-theme="alientech"] .master-hero,
[data-theme="alientech"] .dashboard-hero {
    position: relative;
    border-color: rgba(var(--ts-primary-rgb), 0.28) !important;
}
/* hazard tab riding the clipped top-right bezel */
[data-theme="alientech"] main > .glass-card:first-of-type::after,
[data-theme="alientech"] .master-hero::after {
    content: "";
    position: absolute;
    top: 0; right: 0;
    width: 62px; height: 6px;
    background: repeating-linear-gradient(-45deg, var(--al-ink) 0 6px, var(--ts-primary) 6px 12px);
    opacity: 0.9;
    /* keep the bottom-left bracket too via the shared card rule — this ::after
       is the hero-only hazard tab; the bracket lives on .stat-card/.glass-card */
    left: auto; bottom: auto;
    border: none;
}

/* ============================================================================
   SIDEBAR RAIL — reinforce the control-panel read: a status strip at the top
   of the nav + technical group spacing.
   ============================================================================ */
[data-theme="alientech"] .ts-sidebar .nav,
[data-theme="alientech"] .ts-sidebar .ts-sidebar-nav {
    position: relative;
}
/* module count / online chip is handled in the layout; here we make the whole
   rail feel like an instrument column with a persistent left signal edge */
[data-theme="alientech"] .ts-sidebar::before {
    content: none; /* left signal edge removed per operator request */
}

/* ============================================================================
   DE-NEURAL-GLASS (stage 2) — kill the base app's signature background motifs so
   Alientech reads as a separate product: no neural-network canvas, no blue/purple
   ambient glows, no soft gradient veil. The carbon-grid backdrop stands alone.
   ============================================================================ */
[data-theme="alientech"] #neural-canvas,
[data-theme="alientech"] .ts-bg-gradient,
[data-theme="alientech"] .ts-bg-noise,
[data-theme="alientech"] .ts-qf-card-glow,
[data-theme="alientech"] .ambient-glow { display: none !important; }

/* Hero + cards: neutralise any inherited blue/purple radial tint → gunmetal.
   The base hero paints a coloured glow via inline/hero gradients; force the
   Alientech carbon panel so nothing reads "neural glass". */
[data-theme="alientech"] main > .glass-card:first-of-type,
[data-theme="alientech"] .master-hero,
[data-theme="alientech"] .dashboard-hero,
[data-theme="alientech"] .ts-hero,
[data-theme="alientech"] [class*="hero"].glass-card {
    background:
        linear-gradient(180deg, rgba(var(--ts-primary-rgb), 0.06), transparent 120px),
        linear-gradient(var(--al-line-soft) 1px, transparent 1px) 0 0 / 40px 40px,
        var(--ts-card-bg) !important;
}

/* Rainbow icon-chips on stat tiles → single industrial lime so the palette reads
   as ONE brand accent, not the neural-glass multi-hue set. Status PILLS keep
   their semantic colour (ok/warn/err) — only the decorative tile icons unify. */
[data-theme="alientech"] .stat-card .stat-icon,
[data-theme="alientech"] .kpi .kpi-icon,
[data-theme="alientech"] .stat-card [class*="icon-wrap"] {
    background: rgba(var(--ts-primary-rgb), 0.10) !important;
    color: var(--ts-primary) !important;
    border: 1px solid rgba(var(--ts-primary-rgb), 0.28) !important;
    border-radius: 3px !important;
}

/* ---- hero internals: kill the neural-glass navy/purple base + pink orb ---- */
[data-theme="alientech"] .dashboard-hero .hero-bg-gradient,
[data-theme="alientech"] .master-hero .hero-bg-gradient,
[data-theme="alientech"] [class*="hero"] .hero-bg-gradient {
    background:
        linear-gradient(135deg, rgba(var(--ts-primary-rgb), 0.05), transparent 55%),
        var(--ts-card-bg) !important;
}
/* orbs 1/2 are theme lime/yellow (keep, faint); orb 3 is hardcoded pink → drop */
[data-theme="alientech"] .hero-orb-3,
[data-theme="alientech"] .hero-bg-orb.hero-orb-3 { display: none !important; }
[data-theme="alientech"] .dashboard-hero .hero-bg-orb,
[data-theme="alientech"] .master-hero .hero-bg-orb { opacity: 0.22 !important; }
[data-theme="alientech"] .dashboard-hero .hero-bottom-fade,
[data-theme="alientech"] .master-hero .hero-bottom-fade {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.35), transparent) !important;
}

/* ============================================================================
   AUTHORISED-DEALER BADGE (command header) — white-label: brand = app_name
   Setting, tagline = `dealer_tagline` Setting (default "Authorised Dealer of
   Alientech"). Hexagon mark = Alientech hardware cue.
   ============================================================================ */
[data-theme="alientech"] .al-cmdnav__badge {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 6px 16px 6px 2px; margin-right: 8px;
    border-right: 1px solid var(--al-line);
    white-space: nowrap; flex: 0 0 auto;
}
[data-theme="alientech"] .al-cmdnav__badge > i {
    color: var(--ts-primary); font-size: 1.15rem; line-height: 1;
    filter: drop-shadow(0 0 6px rgba(var(--ts-primary-rgb), 0.5));
}
[data-theme="alientech"] .al-cmdnav__badge-txt { display: flex; flex-direction: column; line-height: 1.2; }
[data-theme="alientech"] .al-cmdnav__badge-txt strong {
    font-family: var(--al-sans); font-weight: 700;
    letter-spacing: 0.05em; font-size: 0.74rem; text-transform: uppercase;
    color: var(--ts-text-primary);
}
[data-theme="alientech"] .al-cmdnav__badge-txt em {
    font-family: var(--al-mono); font-style: normal;
    font-size: 0.56rem; letter-spacing: 0.11em; text-transform: uppercase;
    color: rgba(var(--ts-primary-rgb), 0.9);
}

/* ============================================================================
   RESPONSIVE — verified all devices (mobile 375 / tablet 768 / desktop 1440+).
   ============================================================================ */
/* Tablet & below: tighten the command header + section-nav */
@media (max-width: 991.98px) {
    [data-theme="alientech"] .al-cmdnav__tab { padding: 11px 12px; font-size: 0.68rem; letter-spacing: 0.08em; }
    [data-theme="alientech"] .al-cmdnav__bar { padding: 0 10px; gap: 8px; }
}
/* Mobile: badge collapses to the hex mark only; tabs scroll; smaller bezels */
@media (max-width: 767.98px) {
    [data-theme="alientech"] .al-cmdnav__badge-txt { display: none; }
    [data-theme="alientech"] .al-cmdnav__badge { border-right: none; margin-right: 2px; padding-right: 6px; }
    [data-theme="alientech"] .al-cmdnav__tab span { display: inline; }
    [data-theme="alientech"] .glass-card,
    [data-theme="alientech"] .card,
    [data-theme="alientech"] .stat-card,
    [data-theme="alientech"] .kpi,
    [data-theme="alientech"] .modal-content {
        clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
    }
    /* corner bracket smaller so it never crowds compact cards */
    [data-theme="alientech"] .glass-card::after,
    [data-theme="alientech"] .stat-card::after { width: 9px; height: 9px; left: 6px; bottom: 6px; }
    /* header title can wrap-hide on very small screens (the badge carries brand) */
    [data-theme="alientech"] .ts-header h5 { font-size: 0.72rem !important; }
}
/* Very small (≤380px): let section tabs show icon-only if space is tight */
@media (max-width: 380px) {
    [data-theme="alientech"] .al-cmdnav__tab { padding: 11px 10px; gap: 5px; }
    [data-theme="alientech"] .al-cmdnav__tab span { font-size: 0.62rem; }
}
/* Touch targets: ensure nav rows + tabs meet 44px on coarse pointers */
@media (pointer: coarse) {
    [data-theme="alientech"] .al-cmdnav__tab { min-height: 44px; }
    [data-theme="alientech"] .ts-sidebar .nav-link { min-height: 42px; }
}

/* ============================================================================
   SYSTEM CONSOLE HEADER (rebuilt dashboard IA) — status topline + instrument
   tags + hardware command rail. Replaces the "Good Afternoon" greeting hero.
   ============================================================================ */
[data-theme="alientech"] .al-console-head { display: flex; flex-direction: column; gap: 15px; }
[data-theme="alientech"] .al-console-topline {
    display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
    font-family: var(--al-mono); font-size: 0.64rem; letter-spacing: 0.14em;
    text-transform: uppercase; color: rgba(var(--ts-primary-rgb), 0.75);
}
[data-theme="alientech"] .al-console-id {
    display: inline-flex; align-items: center; gap: 9px;
    color: var(--ts-text-primary); font-size: 0.82rem; letter-spacing: 0.1em; font-weight: 700;
}
[data-theme="alientech"] .al-console-id > i {
    color: var(--ts-primary); font-size: 1.05rem;
    filter: drop-shadow(0 0 6px rgba(var(--ts-primary-rgb), 0.5));
}
[data-theme="alientech"] .al-console-sub { color: rgba(var(--ts-primary-rgb), 0.7); font-size: 0.66rem; font-weight: 500; }
[data-theme="alientech"] .al-console-clock { color: var(--ts-text-primary); opacity: 0.55; margin-left: auto; }
[data-theme="alientech"] .al-console-online { margin-left: auto; display: inline-flex; align-items: center; gap: 7px; }

[data-theme="alientech"] .al-console-statusline { display: flex; flex-wrap: wrap; gap: 10px; }
[data-theme="alientech"] .al-tag {
    display: inline-flex; align-items: baseline; gap: 8px;
    padding: 9px 15px;
    border: 1px solid var(--al-line);
    background: rgba(var(--ts-primary-rgb), 0.04);
    font-family: var(--al-mono); font-size: 0.58rem; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--ts-text-primary); opacity: 0.72;
    clip-path: polygon(0 0, calc(100% - 7px) 0, 100% 7px, 100% 100%, 0 100%);
}
[data-theme="alientech"] .al-tag b {
    font-family: var(--al-sans); font-size: 1.2rem; font-weight: 700;
    color: var(--ts-primary); opacity: 1; letter-spacing: 0; line-height: 1;
}
[data-theme="alientech"] .al-tag--warn b { color: var(--ts-secondary); }

[data-theme="alientech"] .al-console-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
[data-theme="alientech"] .al-cmd-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 10px 17px;
    border: 1px solid var(--al-line);
    background: rgba(var(--ts-primary-rgb), 0.05);
    color: var(--ts-text-primary);
    font-family: var(--al-mono); font-size: 0.68rem; letter-spacing: 0.1em;
    text-transform: uppercase; text-decoration: none; cursor: pointer;
    clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 0 100%);
    transition: border-color 0.15s, background 0.15s, color 0.15s, filter 0.15s;
}
[data-theme="alientech"] .al-cmd-btn:hover {
    border-color: rgba(var(--ts-primary-rgb), 0.5);
    background: rgba(var(--ts-primary-rgb), 0.10);
    color: var(--ts-primary);
}
[data-theme="alientech"] .al-cmd-btn i { font-size: 0.9rem; }
[data-theme="alientech"] .al-cmd-btn kbd {
    font-family: var(--al-mono); background: rgba(0, 0, 0, 0.32);
    border: 1px solid var(--al-line); border-radius: 3px; padding: 1px 5px; font-size: 0.6rem;
    color: var(--ts-text-primary);
}
[data-theme="alientech"] .al-cmd-btn--primary {
    background: var(--al-grad); color: var(--al-ink) !important; border: none; font-weight: 700;
}
[data-theme="alientech"] .al-cmd-btn--primary:hover { filter: brightness(1.08); }
/* mobile: console stacks, online status drops below the id/clock */
@media (max-width: 575.98px) {
    [data-theme="alientech"] .al-console-online { margin-left: 0; }
    [data-theme="alientech"] .al-tag b { font-size: 1.05rem; }
}

/* ============================================================================
   INSTRUMENT GAUGES (rebuilt dashboard metrics) — hardware readout modules, not
   icon-circle stat cards. Responsive auto-fit grid.
   ============================================================================ */
[data-theme="alientech"] .al-gauges {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
}
[data-theme="alientech"] .al-gauge {
    display: block; text-decoration: none;
    padding: 14px 16px;
    background: linear-gradient(180deg, rgba(var(--ts-primary-rgb), 0.05), transparent 70%), var(--ts-card-bg);
    border: 1px solid var(--al-line);
    clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
    color: var(--ts-text-primary);
    transition: border-color 0.15s, background 0.15s;
}
[data-theme="alientech"] a.al-gauge:hover {
    border-color: rgba(var(--ts-primary-rgb), 0.5);
    background: rgba(var(--ts-primary-rgb), 0.07);
}
[data-theme="alientech"] .al-gauge-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
[data-theme="alientech"] .al-gauge-k {
    font-family: var(--al-mono); font-size: 0.58rem; letter-spacing: 0.14em;
    text-transform: uppercase; color: rgba(var(--ts-primary-rgb), 0.8);
}
[data-theme="alientech"] .al-gauge-led { width: 6px; height: 6px; border-radius: 50%; background: rgba(var(--ts-primary-rgb), 0.3); }
[data-theme="alientech"] .al-gauge.is-ok .al-gauge-led { background: var(--ts-success, #22c55e); box-shadow: 0 0 6px var(--ts-success, #22c55e); }
[data-theme="alientech"] .al-gauge.is-warn .al-gauge-led { background: var(--ts-secondary); box-shadow: 0 0 6px var(--ts-secondary); }
[data-theme="alientech"] .al-gauge-v {
    font-family: var(--al-sans); font-size: 1.85rem; font-weight: 700;
    line-height: 1; font-variant-numeric: tabular-nums;
}
[data-theme="alientech"] .al-gauge-u {
    font-family: var(--al-mono); font-size: 0.55rem; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--ts-text-primary); opacity: 0.55; margin-top: 5px;
}
[data-theme="alientech"] .al-gauge-bar { height: 3px; background: rgba(var(--ts-primary-rgb), 0.12); margin-top: 11px; overflow: hidden; }
[data-theme="alientech"] .al-gauge-bar > span { display: block; height: 100%; background: var(--al-grad); }
[data-theme="alientech"] .al-gauge.is-warn .al-gauge-bar > span { background: linear-gradient(90deg, var(--ts-secondary), var(--ts-primary)); }

/* ---- sidebar section headers → technical module readouts ( // LABEL ) ------ */
[data-theme="alientech"] .ts-sidebar .text-uppercase.small,
[data-theme="alientech"] .ts-sidebar .text-uppercase.small.fw-bold,
[data-theme="alientech"] .ts-sidebar .nav-section-label {
    font-family: var(--al-mono) !important;
    letter-spacing: 0.16em !important;
    color: rgba(var(--ts-primary-rgb), 0.7) !important;
}
[data-theme="alientech"] .ts-sidebar .text-uppercase.small::before,
[data-theme="alientech"] .ts-sidebar .nav-section-label::before {
    content: "// ";
    color: rgba(var(--ts-primary-rgb), 0.5);
    font-weight: 700;
}

/* ============================================================================
   SIDEBAR STRUCTURE (stage 3) — the rail is rebuilt as an ECU-tool CONTROL
   PANEL, not a recoloured SaaS menu. A device faceplate replaces the round
   logo, a module-index status strip sits under it, and section headers become
   hardware "bays" (// LABEL + extending rule). All route()/gating in the blade
   is untouched — only the shell chrome + header structure changed.
   ============================================================================ */

/* ---- device faceplate (brand) → hardware nameplate ---- */
[data-theme="alientech"] .al-faceplate {
    display: block;
    padding: 16px 18px 15px;
    margin: 0;
    text-decoration: none;
    position: relative;
    border-bottom: 1px solid var(--al-line);
    background: linear-gradient(180deg, rgba(var(--ts-primary-rgb), 0.07), transparent 92%);
}
/* hazard sliver riding the faceplate's bottom edge */
[data-theme="alientech"] .al-faceplate::after {
    content: ""; position: absolute; left: 18px; right: 18px; bottom: -1px; height: 2px;
    background: repeating-linear-gradient(90deg, var(--ts-primary) 0 9px, transparent 9px 15px);
    opacity: 0.45; pointer-events: none;
}
[data-theme="alientech"] .al-faceplate__row { display: flex; align-items: center; gap: 12px; }
[data-theme="alientech"] .al-faceplate__mark {
    width: 42px; height: 42px; flex: 0 0 auto;
    display: flex; align-items: center; justify-content: center;
    color: var(--al-ink); font-size: 1.25rem;
    background: var(--al-grad);
    /* bevelled twin-notch chip */
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
    box-shadow: 0 0 0 1px rgba(var(--ts-primary-rgb), 0.4), 0 5px 16px rgba(var(--ts-primary-rgb), 0.30);
}
[data-theme="alientech"] .al-faceplate__mark img { max-height: 34px; max-width: 34px; }
/* Logo variant: an operator logo replaces the icon → drop the yellow chip so a
   light-pixel logo reads on the dark sidebar (on the yellow chip it'd vanish).
   Widen the box so a horizontal wordmark isn't squashed into the 34px icon square. */
[data-theme="alientech"] .al-faceplate__mark--logo {
    background: none !important;
    box-shadow: none !important;
    clip-path: none !important;
    width: auto; min-width: 36px; max-width: 104px;
    justify-content: flex-start;
}
[data-theme="alientech"] .al-faceplate__mark--logo img {
    max-height: 38px; max-width: 104px; width: auto; height: auto; object-fit: contain;
}
html.ts-sidebar-collapsed[data-theme="alientech"] .al-faceplate__mark--logo {
    max-width: 42px; justify-content: center;
}
html.ts-sidebar-collapsed[data-theme="alientech"] .al-faceplate__mark--logo img { max-width: 42px; }
[data-theme="alientech"] .al-faceplate__id { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
[data-theme="alientech"] .al-faceplate__name {
    font-family: var(--al-sans); font-weight: 700; font-size: 1.02rem; letter-spacing: 0.01em;
    text-transform: uppercase; color: var(--ts-text-primary);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
[data-theme="alientech"] .al-faceplate__sub {
    font-family: var(--al-mono); font-size: 0.55rem; letter-spacing: 0.17em; text-transform: uppercase;
    color: rgba(var(--ts-primary-rgb), 0.85); margin-top: 3px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* ---- module-index status strip (portal role + connection LED) ---- */
[data-theme="alientech"] .al-rail-status {
    display: flex; align-items: center; gap: 8px; flex-wrap: nowrap;
    padding: 9px 16px; margin: 0;
    border-bottom: 1px solid var(--al-line-soft);
    font-family: var(--al-mono); font-size: 0.55rem; letter-spacing: 0.14em; text-transform: uppercase;
}
[data-theme="alientech"] .al-rail-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 3px 9px; border: 1px solid var(--al-line);
    background: rgba(var(--ts-primary-rgb), 0.05);
    color: rgba(var(--ts-primary-rgb), 0.92);
    clip-path: polygon(0 0, calc(100% - 5px) 0, 100% 5px, 100% 100%, 0 100%);
}
[data-theme="alientech"] .al-rail-chip i { font-size: 0.72rem; }
[data-theme="alientech"] .al-rail-online {
    display: inline-flex; align-items: center; gap: 6px; margin-left: auto;
    color: var(--ts-success, #22c55e);
}
[data-theme="alientech"] .al-rail-online .al-led { background: var(--ts-success, #22c55e); box-shadow: 0 0 8px var(--ts-success, #22c55e); }

/* ---- section headers → hardware "bays" ( // LABEL ──── ) ---- */
[data-theme="alientech"] li.al-bay {
    display: flex; align-items: center; gap: 10px;
    padding: 0 16px; margin: 18px 0 7px; list-style: none;
}
[data-theme="alientech"] li.al-bay:first-of-type { margin-top: 10px; }
[data-theme="alientech"] .al-bay-name {
    font-family: var(--al-mono); font-size: 0.6rem; font-weight: 700;
    letter-spacing: 0.18em; text-transform: uppercase;
    color: rgba(var(--ts-primary-rgb), 0.8); white-space: nowrap;
}
[data-theme="alientech"] .al-bay-name::before { content: "// "; color: rgba(var(--ts-primary-rgb), 0.5); }
[data-theme="alientech"] .al-bay-line {
    flex: 1 1 auto; height: 1px;
    background: linear-gradient(90deg, var(--al-line), transparent);
}

/* ---- footer credit readout → instrument bezel ---- */
[data-theme="alientech"] .al-readout {
    border: 1px solid var(--al-line) !important;
    background: linear-gradient(180deg, rgba(var(--ts-primary-rgb), 0.07), transparent 72%), var(--ts-card-bg) !important;
    clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
    border-radius: 2px !important;
    backdrop-filter: none !important;
}

/* ---- collapsed icon-rail: hide the readouts + faceplate text ---- */
@media (min-width: 992px) {
    html.ts-sidebar-collapsed[data-theme="alientech"] li.al-bay,
    html.ts-sidebar-collapsed[data-theme="alientech"] .al-rail-status { display: none !important; }
    html.ts-sidebar-collapsed[data-theme="alientech"] .al-faceplate { padding: 12px 8px; }
    html.ts-sidebar-collapsed[data-theme="alientech"] .al-faceplate__id { display: none !important; }
    html.ts-sidebar-collapsed[data-theme="alientech"] .al-faceplate__row { justify-content: center; }
    html.ts-sidebar-collapsed[data-theme="alientech"] .al-faceplate::after { display: none; }
}

/* ============================================================================
   FR DETAIL — MEGA-HERO → INSTRUMENT CONSOLE (stage 3)
   The neural-glass animated hero (gradient veil + glow orbs + particles) becomes
   an ECU-tool status console: carbon panel, clipped bezel, left signal rail,
   corner hazard tab, mono readouts and LED vitals. Scoped CSS (U16 CSS-as-
   leverage) — the 7k-line triple-copy blade is untouched.
   ============================================================================ */
/* de-neural-glass: drop the animated gradient veil, glow orbs, particles */
[data-theme="alientech"] .fr-mh__bg-gradient,
[data-theme="alientech"] .fr-mh__glow,
[data-theme="alientech"] .fr-mh__particles { display: none !important; }

/* hero shell → carbon instrument panel */
[data-theme="alientech"] .fr-mh {
    background:
        linear-gradient(180deg, rgba(var(--ts-primary-rgb), 0.06), transparent 130px),
        linear-gradient(var(--al-line-soft) 1px, transparent 1px) 0 0 / 40px 40px,
        var(--ts-card-bg) !important;
    border: 1px solid rgba(var(--ts-primary-rgb), 0.28) !important;
    border-radius: 3px !important;
    clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.40) !important;
}
/* (left signal rail removed per operator request) */
/* top-right hazard tab riding the clipped bezel */
[data-theme="alientech"] .fr-mh::after {
    content: ""; position: absolute; top: 0; right: 0; width: 66px; height: 6px; z-index: 3;
    background: repeating-linear-gradient(-45deg, var(--al-ink) 0 6px, var(--ts-primary) 6px 12px);
    opacity: 0.9; pointer-events: none;
}
/* eyebrow → mono module tag */
[data-theme="alientech"] .fr-mh__eyebrow {
    font-family: var(--al-mono) !important; letter-spacing: 0.18em !important;
    text-transform: uppercase; color: rgba(var(--ts-primary-rgb), 0.82) !important;
}
/* title → technical uppercase */
[data-theme="alientech"] .fr-mh__title-master,
[data-theme="alientech"] .fr-mh__title {
    font-family: var(--al-sans) !important; text-transform: uppercase; letter-spacing: -0.01em;
}
/* icon → bevelled hardware chip */
[data-theme="alientech"] .fr-mh__icon {
    background: var(--al-grad) !important; color: var(--al-ink) !important;
    border-radius: 2px !important;
    clip-path: polygon(0 0, calc(100% - 7px) 0, 100% 7px, 100% 100%, 7px 100%, 0 calc(100% - 7px));
}
/* price anchor → recessed instrument readout */
[data-theme="alientech"] .fr-mh__price-anchor {
    background: rgba(0, 0, 0, 0.26) !important; border: 1px solid var(--al-line) !important;
    border-radius: 2px !important;
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 0 100%);
}
[data-theme="alientech"] .fr-mh__price-label {
    font-family: var(--al-mono) !important; letter-spacing: 0.14em; text-transform: uppercase;
}
[data-theme="alientech"] .fr-mh__price-amount { font-family: var(--al-sans) !important; font-weight: 700; }
[data-theme="alientech"] .fr-mh__price-fiat,
[data-theme="alientech"] .fr-mh__price-meta { font-family: var(--al-mono) !important; }
/* vitals → instrument gauge strip (LED + mono label + value) */
[data-theme="alientech"] .fr-mh__vital {
    background: rgba(var(--ts-primary-rgb), 0.04) !important;
    border: 1px solid var(--al-line) !important; border-radius: 2px !important;
    clip-path: polygon(0 0, calc(100% - 7px) 0, 100% 7px, 100% 100%, 0 100%);
}
[data-theme="alientech"] .fr-mh__vital-label {
    font-family: var(--al-mono) !important; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.72;
}
[data-theme="alientech"] .fr-mh__vital-value { font-family: var(--al-sans) !important; font-weight: 700; }
[data-theme="alientech"] .fr-mh__vital-dot { box-shadow: 0 0 6px currentColor; }

/* hero-tab dock (mode switcher) → hardware toggle bank */
[data-theme="alientech"] .hero-tab-dock {
    background: rgba(0, 0, 0, 0.22) !important;
    border: 1px solid var(--al-line) !important; border-radius: 2px !important;
}
[data-theme="alientech"] .hero-tab { border-radius: 2px !important; }
[data-theme="alientech"] .hero-tab-label { font-family: var(--al-mono) !important; letter-spacing: 0.08em; text-transform: uppercase; }
[data-theme="alientech"] .hero-tab-sub { font-family: var(--al-mono) !important; letter-spacing: 0.04em; }
[data-theme="alientech"] .hero-tab.active {
    background: rgba(var(--ts-primary-rgb), 0.10) !important;
    box-shadow: inset 0 0 0 1px rgba(var(--ts-primary-rgb), 0.4) !important;
}
[data-theme="alientech"] .hero-tab-glider {
    background: var(--al-grad) !important; opacity: 0.14 !important; border-radius: 2px !important;
}

/* LIGHT MODE: the recessed dark-fill readouts (price anchor, tab dock) would
   read as dark boxes on a light hero — swap to a hairline primary-tinted fill. */
[data-theme="alientech"][data-bs-theme="light"] .fr-mh__price-anchor,
[data-theme="alientech"][data-bs-theme="light"] .hero-tab-dock,
[data-theme="alientech"] body.light-mode .fr-mh__price-anchor,
[data-theme="alientech"] body.light-mode .hero-tab-dock {
    background: rgba(var(--ts-primary-rgb), 0.05) !important;
}

/* FR-detail section cards: card titles → mono module headers ( // LABEL ) */
[data-theme="alientech"] .fr-detail .glass-card > .card-header h5,
[data-theme="alientech"] .fr-detail .glass-card > .card-header h6,
[data-theme="alientech"] .fr-detail .glass-card > .p-4 > h5:first-child,
[data-theme="alientech"] .fr-detail .glass-card > .p-4 > h6:first-child {
    font-family: var(--al-mono) !important; text-transform: uppercase; letter-spacing: 0.1em;
}

/* ---- LIGHT MODE: darken the primary-tinted mono micro-labels in the rail so
   the olive-on-cream eyebrows clear WCAG AA (dark mode keeps the bright lime).
   color-mix keeps it palette-driven — it darkens whatever primary the operator
   sets, rather than hardcoding a hue. --- */
[data-theme="alientech"][data-bs-theme="light"] .al-bay-name,
[data-theme="alientech"][data-bs-theme="light"] .al-faceplate__sub,
[data-theme="alientech"][data-bs-theme="light"] .al-rail-status,
[data-theme="alientech"][data-bs-theme="light"] .al-rail-chip,
[data-theme="alientech"] body.light-mode .al-bay-name,
[data-theme="alientech"] body.light-mode .al-faceplate__sub,
[data-theme="alientech"] body.light-mode .al-rail-chip {
    color: color-mix(in srgb, rgb(var(--ts-primary-rgb)) 55%, var(--al-ink) 45%) !important;
}
[data-theme="alientech"][data-bs-theme="light"] .al-bay-name::before,
[data-theme="alientech"] body.light-mode .al-bay-name::before {
    color: color-mix(in srgb, rgb(var(--ts-primary-rgb)) 45%, var(--al-ink) 55%) !important;
}
/* same darkening for the FR-hero mono micro-labels on the light instrument panel */
[data-theme="alientech"][data-bs-theme="light"] .fr-mh__eyebrow,
[data-theme="alientech"][data-bs-theme="light"] .fr-mh__price-label,
[data-theme="alientech"][data-bs-theme="light"] .fr-mh__vital-label,
[data-theme="alientech"] body.light-mode .fr-mh__eyebrow,
[data-theme="alientech"] body.light-mode .fr-mh__price-label,
[data-theme="alientech"] body.light-mode .fr-mh__vital-label {
    color: color-mix(in srgb, rgb(var(--ts-primary-rgb)) 55%, var(--al-ink) 45%) !important;
    opacity: 1 !important;
}
/* "ONLINE" status → a darker semantic green in light mode for legibility */
[data-theme="alientech"][data-bs-theme="light"] .al-rail-online,
[data-theme="alientech"] body.light-mode .al-rail-online { color: var(--ts-success, #15803d) !important; }

/* ============================================================================
   DASHBOARD DEEP SECTIONS (stage 3) — the collapsible `.dash-section` blocks
   (Revenue & Operations, Market Intelligence, …) get hardware "module bay"
   headers: squared bevelled icon chip + mono // TITLE + a divider rule. The
   `> div:not(.dash-section-body)` scope hits ONLY the header row, never the
   glass-card body content (which keeps the base carbon treatment).
   ============================================================================ */
[data-theme="alientech"] .dash-section > div:not(.dash-section-body) {
    border-bottom: 1px solid var(--al-line-soft);
    padding-bottom: 9px;
}
/* icon: round SaaS chip → squared bevelled hardware chip */
[data-theme="alientech"] .dash-section > div:not(.dash-section-body) > .rounded-circle {
    border-radius: 2px !important;
    background: rgba(var(--ts-primary-rgb), 0.10) !important;
    border: 1px solid rgba(var(--ts-primary-rgb), 0.30) !important;
    color: var(--ts-primary) !important;
    clip-path: polygon(0 0, calc(100% - 6px) 0, 100% 6px, 100% 100%, 6px 100%, 0 calc(100% - 6px));
}
/* title: → mono module label with // prefix */
[data-theme="alientech"] .dash-section > div:not(.dash-section-body) > h5,
[data-theme="alientech"] .dash-section > div:not(.dash-section-body) > h6 {
    font-family: var(--al-mono) !important;
    text-transform: uppercase; letter-spacing: 0.13em;
    font-size: 0.78rem !important; color: var(--ts-text-primary) !important;
}
[data-theme="alientech"] .dash-section > div:not(.dash-section-body) > h5::before,
[data-theme="alientech"] .dash-section > div:not(.dash-section-body) > h6::before {
    content: "// "; color: rgba(var(--ts-primary-rgb), 0.55);
}
/* light mode: darken the // prefix on the deep-section titles for AA */
[data-theme="alientech"][data-bs-theme="light"] .dash-section > div:not(.dash-section-body) > h5::before,
[data-theme="alientech"][data-bs-theme="light"] .dash-section > div:not(.dash-section-body) > h6::before,
[data-theme="alientech"] body.light-mode .dash-section > div:not(.dash-section-body) > h6::before {
    color: color-mix(in srgb, rgb(var(--ts-primary-rgb)) 50%, var(--al-ink) 50%);
}

/* ============================================================================
   MASTER DASHBOARD — advanced hero (.mdash-*) + section dividers → industrial
   console. Mirrors the FR-hero instrument treatment for the master surface.
   ============================================================================ */
/* kill the orbiting-dot neural motif */
[data-theme="alientech"] .mdash-hero-orbit { display: none !important; }

/* hero shell → carbon instrument panel */
[data-theme="alientech"] .mdash-hero-shell {
    background:
        linear-gradient(180deg, rgba(var(--ts-primary-rgb), 0.06), transparent 130px),
        linear-gradient(var(--al-line-soft) 1px, transparent 1px) 0 0 / 40px 40px,
        var(--ts-card-bg) !important;
    border: 1px solid rgba(var(--ts-primary-rgb), 0.28) !important;
    border-radius: 3px !important;
    clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.40) !important;
    position: relative;
}
/* (left signal rail removed per operator request) */
[data-theme="alientech"] .mdash-hero-shell::after {
    content: ""; position: absolute; top: 0; right: 0; width: 66px; height: 6px; z-index: 3;
    background: repeating-linear-gradient(-45deg, var(--al-ink) 0 6px, var(--ts-primary) 6px 12px);
    opacity: 0.9; pointer-events: none;
}
[data-theme="alientech"] .mdash-eyebrow {
    font-family: var(--al-mono) !important; letter-spacing: 0.18em !important; text-transform: uppercase;
    color: rgba(var(--ts-primary-rgb), 0.82) !important;
}
[data-theme="alientech"] .mdash-hero-title { font-family: var(--al-sans) !important; text-transform: uppercase; letter-spacing: -0.01em; }
[data-theme="alientech"] .mdash-hero-revenue {
    background: rgba(0, 0, 0, 0.26) !important; border: 1px solid var(--al-line) !important; border-radius: 2px !important;
    clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
}
[data-theme="alientech"] .mdash-hero-revenue-label { font-family: var(--al-mono) !important; letter-spacing: 0.14em; text-transform: uppercase; }
[data-theme="alientech"] .mdash-hero-revenue-amount { font-family: var(--al-sans) !important; font-weight: 700; }
[data-theme="alientech"] .mdash-hero-revenue-meta { font-family: var(--al-mono) !important; }
[data-theme="alientech"] .mdash-vital {
    background: rgba(var(--ts-primary-rgb), 0.04) !important; border: 1px solid var(--al-line) !important; border-radius: 2px !important;
    clip-path: polygon(0 0, calc(100% - 7px) 0, 100% 7px, 100% 100%, 0 100%);
}
[data-theme="alientech"] .mdash-vital-label { font-family: var(--al-mono) !important; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.72; }
[data-theme="alientech"] .mdash-vital-value { font-family: var(--al-sans) !important; font-weight: 700; }
[data-theme="alientech"] .mdash-vital-dot { box-shadow: 0 0 6px currentColor; }

/* section dividers → module bay labels ( // LABEL ) */
[data-theme="alientech"] .mdash-section-divider-label {
    font-family: var(--al-mono) !important; text-transform: uppercase; letter-spacing: 0.16em;
    color: rgba(var(--ts-primary-rgb), 0.78) !important;
}
[data-theme="alientech"] .mdash-section-divider-label::before { content: "// "; color: rgba(var(--ts-primary-rgb), 0.5); }

/* light-mode: dark-fill readout → light; mono labels darkened for AA */
[data-theme="alientech"][data-bs-theme="light"] .mdash-hero-revenue,
[data-theme="alientech"] body.light-mode .mdash-hero-revenue { background: rgba(var(--ts-primary-rgb), 0.05) !important; }
[data-theme="alientech"][data-bs-theme="light"] .mdash-eyebrow,
[data-theme="alientech"][data-bs-theme="light"] .mdash-hero-revenue-label,
[data-theme="alientech"][data-bs-theme="light"] .mdash-vital-label,
[data-theme="alientech"][data-bs-theme="light"] .mdash-section-divider-label,
[data-theme="alientech"] body.light-mode .mdash-eyebrow,
[data-theme="alientech"] body.light-mode .mdash-vital-label,
[data-theme="alientech"] body.light-mode .mdash-section-divider-label {
    color: color-mix(in srgb, rgb(var(--ts-primary-rgb)) 55%, var(--al-ink) 45%) !important;
    opacity: 1 !important;
}
[data-theme="alientech"][data-bs-theme="light"] .mdash-section-divider-label::before,
[data-theme="alientech"] body.light-mode .mdash-section-divider-label::before {
    color: color-mix(in srgb, rgb(var(--ts-primary-rgb)) 45%, var(--al-ink) 55%) !important;
}

/* ============================================================================
   CONTRAST FIX (2026-07-07, Clive: "can't read this in yellow box") — the
   Alientech accent is a LIGHT lime, but many components hardcode WHITE text on
   the accent-FILLED primary buttons / CTAs / toggles (they were built assuming
   a DARK accent). White-on-lime ≈ 1.5:1 = unreadable. Force dark INK on every
   filled-accent control + its icon/label children, with an html-prefixed
   selector so it beats the component-local + glass-v2 rules.
   ============================================================================ */
html[data-theme="alientech"] [class*="btn-primary"],
html[data-theme="alientech"] [class*="btn-primary"] *,
html[data-theme="alientech"] .mdash-cta-primary,
html[data-theme="alientech"] .mdash-cta-primary *,
html[data-theme="alientech"] .ts-netws-btn-primary,
html[data-theme="alientech"] .ts-netws-btn-primary *,
html[data-theme="alientech"] .nc-loc.active,
html[data-theme="alientech"] .nc-loc.active *,
html[data-theme="alientech"] .al-cmd-btn--primary,
html[data-theme="alientech"] .al-cmd-btn--primary * {
    color: var(--al-ink) !important;
}
/* keep the fill lime so the dark ink is readable (re-assert past overrides) */
html[data-theme="alientech"] .ts-btn-primary,
html[data-theme="alientech"] .btn.btn-primary,
html[data-theme="alientech"] .mdash-cta-primary,
html[data-theme="alientech"] .ts-netws-btn-primary {
    background: var(--al-grad) !important;
}
/* off-brand cyan pills → lime (brand consistency in the lime theme) */
[data-theme="alientech"] .mdash-cta-pill--info {
    background: rgba(var(--ts-primary-rgb), 0.16) !important;
    color: var(--ts-primary) !important;
}

/* ============================================================================
   AUTHORISED ALIENTECH DEALER BADGE (footer) — MMT is an authorised Alientech
   dealer + resells the theme. Dark chip (works in both light & dark footer so a
   light Alientech wordmark always shows) + lime mono tagline. Bevelled corner.
   ============================================================================ */
[data-theme="alientech"] .al-dealer-badge {
    display: inline-flex; flex-direction: column; gap: 9px; align-items: flex-start;
    padding: 13px 17px; margin-top: 20px;
    border: 1px solid rgba(var(--ts-primary-rgb), 0.30);
    background: color-mix(in srgb, var(--al-ink) 88%, transparent);
    clip-path: polygon(0 0, calc(100% - 13px) 0, 100% 13px, 100% 100%, 0 100%);
}
[data-theme="alientech"] .al-dealer-logo { max-height: 26px; max-width: 210px; object-fit: contain; display: block; }
[data-theme="alientech"] .al-dealer-txt {
    font-family: var(--al-mono); font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(var(--ts-primary-rgb), 0.92); line-height: 1.2;
}

/* ------------------------------------------------------- reduced motion --- */
@media (prefers-reduced-motion: reduce) {
    [data-theme="alientech"] * {
        animation-duration: 0.001ms !important;
        transition-duration: 0.001ms !important;
    }
}
