/*
 * KMS — LA Pool & Spas look (2026-10). Loaded only for the new look (includes/theme.php), after
 * Bootstrap 4 and the old stylesheets; everything is scoped to body.kms-new so the old look is untouched.
 * Brand: charcoal #232528, yellow #f4fc00, green #71fc00 (from the logo). Dark mode follows the device.
 */

/* ---------- tokens ---------- */
body.kms-new {
    --kms-bg: #f4f5f2;
    --kms-surface: #ffffff;
    --kms-surface-2: #f8f9f6;
    --kms-ink: #1c1e21;
    --kms-ink-2: #3d4147;
    --kms-muted: #6b7178;
    --kms-border: #e2e4df;
    --kms-border-strong: #cfd2cb;
    --kms-hover: rgba(28, 30, 33, .04);

    --kms-side: #1f2124;
    --kms-side-2: #2a2d31;
    --kms-side-ink: #c5c9ce;
    --kms-side-muted: #7d838a;

    --kms-lime: #c6f31a;          /* between the logo's yellow and green; dark text on it */
    --kms-lime-strong: #b2dc0c;
    --kms-yellow: #f4fc00;
    --kms-green: #71fc00;
    --kms-link: #3f6b00;          /* lime is unreadable as text on white — dark olive instead */
    --kms-focus: rgba(166, 214, 0, .45);

    --kms-ok: #2f9e44;   --kms-ok-soft: #e6f4e9;
    --kms-bad: #d0433a;  --kms-bad-soft: #fbe9e7;
    --kms-warn: #b7791f; --kms-warn-soft: #fdf3dc;
    --kms-info: #2f6fb5; --kms-info-soft: #e5eef8;
    --kms-neutral-soft: #eceee9;

    --kms-radius: 12px;
    --kms-radius-sm: 8px;
    --kms-shadow: 0 1px 2px rgba(20, 22, 25, .05), 0 1px 1px rgba(20, 22, 25, .03);
    --kms-shadow-lg: 0 12px 32px rgba(20, 22, 25, .14);
    --kms-side-w: 244px;

    /* the old pages' own variables, re-pointed */
    --primary-gradient: linear-gradient(135deg, #2a2d31 0%, #1f2124 100%);
    --primary-color: var(--kms-link);
}

@media (prefers-color-scheme: dark) {
    body.kms-new {
        --kms-bg: #141517;
        --kms-surface: #1c1e21;
        --kms-surface-2: #222428;
        --kms-ink: #e9eaeb;
        --kms-ink-2: #c9cbce;
        --kms-muted: #969ba1;
        --kms-border: #2e3135;
        --kms-border-strong: #3b3f44;
        --kms-hover: rgba(255, 255, 255, .04);
        --kms-side: #101113;
        --kms-side-2: #1c1e21;
        --kms-link: #c6f31a;
        --kms-ok-soft: rgba(47, 158, 68, .18);
        --kms-bad-soft: rgba(208, 67, 58, .2);
        --kms-warn-soft: rgba(183, 121, 31, .22);
        --kms-info-soft: rgba(47, 111, 181, .22);
        --kms-neutral-soft: #2a2d31;
        --kms-ok: #4cc25f; --kms-bad: #ef6b62; --kms-warn: #e0a64a; --kms-info: #6aa6e8;
        --kms-shadow: 0 1px 2px rgba(0, 0, 0, .4);
        color-scheme: dark;
    }
}

/* ---------- base ---------- */
body.kms-new {
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--kms-ink);
    background: var(--kms-bg);
    -webkit-font-smoothing: antialiased;
    padding: 0;
}
body.kms-new h1, body.kms-new .h1 { font-size: 1.6rem; font-weight: 700; letter-spacing: -.02em; color: var(--kms-ink); }
body.kms-new h2, body.kms-new .h2 { font-size: 1.35rem; font-weight: 700; letter-spacing: -.015em; }
body.kms-new h3, body.kms-new .h3 { font-size: 1.15rem; font-weight: 600; }
body.kms-new h4, body.kms-new .h4 { font-size: 1.05rem; font-weight: 600; }
body.kms-new h5, body.kms-new .h5 { font-size: .98rem; font-weight: 600; }
body.kms-new h6, body.kms-new .h6 { font-size: .85rem; font-weight: 600; }
body.kms-new a { color: var(--kms-link); }
body.kms-new a:hover { color: var(--kms-ink); }
body.kms-new code { color: var(--kms-ink-2); background: var(--kms-neutral-soft); padding: .1em .35em; border-radius: 5px; font-size: .86em; }
body.kms-new pre { color: var(--kms-ink-2); }
body.kms-new hr { border-top-color: var(--kms-border); }
body.kms-new .text-muted, body.kms-new .form-text, body.kms-new small.text-muted { color: var(--kms-muted) !important; }
body.kms-new .text-primary { color: var(--kms-link) !important; }
body.kms-new .text-success { color: var(--kms-ok) !important; }
body.kms-new .text-danger { color: var(--kms-bad) !important; }
body.kms-new .text-warning { color: var(--kms-warn) !important; }
body.kms-new .text-info { color: var(--kms-info) !important; }
body.kms-new .text-dark { color: var(--kms-ink) !important; }
body.kms-new .bg-light { background: var(--kms-surface-2) !important; }
body.kms-new .bg-white { background: var(--kms-surface) !important; }
body.kms-new .border, body.kms-new .border-top, body.kms-new .border-bottom { border-color: var(--kms-border) !important; }
body.kms-new ::selection { background: var(--kms-lime); color: #1c1e21; }

/* ---------- shell ---------- */
body.kms-new .kms-shell { min-height: 100vh; }
body.kms-new .kms-sidebar {
    position: fixed; inset: 0 auto 0 0; width: var(--kms-side-w); z-index: 1040;
    display: flex; flex-direction: column;
    background: var(--kms-side); color: var(--kms-side-ink);
    padding: 18px 12px 12px;
    padding-left: max(12px, env(safe-area-inset-left));
    overflow-y: auto;
}
body.kms-new .kms-brand { display: flex; align-items: center; gap: 10px; padding: 4px 10px 18px; text-decoration: none; }
body.kms-new .kms-brand-logo { height: 34px; width: auto; }
body.kms-new .kms-brand-text { color: #fff; font-weight: 700; font-size: .82rem; line-height: 1.15; letter-spacing: .02em; text-transform: uppercase; }
body.kms-new .kms-nav { flex: 1; display: flex; flex-direction: column; gap: 2px; }
body.kms-new .kms-nav-heading {
    margin: 16px 10px 6px; font-size: .68rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--kms-side-muted);
}
body.kms-new .kms-nav-link {
    display: flex; align-items: center; gap: 11px; padding: 8px 10px; border-radius: 8px;
    color: var(--kms-side-ink); font-weight: 500; text-decoration: none; transition: background .12s, color .12s;
}
body.kms-new .kms-nav-link i { width: 18px; text-align: center; font-size: .92rem; color: var(--kms-side-muted); transition: color .12s; }
body.kms-new .kms-nav-link:hover { background: var(--kms-side-2); color: #fff; }
body.kms-new .kms-nav-link:hover i { color: #fff; }
body.kms-new .kms-nav-link.active { background: var(--kms-side-2); color: #fff; box-shadow: inset 3px 0 0 var(--kms-lime); }
body.kms-new .kms-nav-link.active i { color: var(--kms-lime); }
body.kms-new .kms-user { border-top: 1px solid rgba(255, 255, 255, .08); margin-top: 14px; padding: 12px 6px 2px; }
body.kms-new .kms-user-name { display: flex; align-items: center; gap: 10px; color: #fff; font-weight: 600; font-size: .9rem; line-height: 1.2; }
body.kms-new .kms-user-name small { display: block; color: var(--kms-side-muted); font-weight: 500; font-size: .72rem; }
body.kms-new .kms-avatar {
    width: 32px; height: 32px; border-radius: 50%; flex: none; display: grid; place-items: center;
    background: var(--kms-lime); color: #1c1e21; font-weight: 700; font-size: .85rem;
}
body.kms-new .kms-user-links { display: flex; gap: 4px; margin-top: 10px; }
body.kms-new .kms-user-links a {
    flex: 1; display: grid; place-items: center; height: 32px; border-radius: 8px;
    color: var(--kms-side-muted); text-decoration: none;
}
body.kms-new .kms-user-links a:hover { background: var(--kms-side-2); color: #fff; }
body.kms-new .kms-user-links a.kms-logout:hover { color: #ff8a80; }

body.kms-new .kms-page { margin-left: var(--kms-side-w); min-height: 100vh; display: flex; flex-direction: column; }
body.kms-new .kms-main { flex: 1; padding: 8px 12px 24px; }
body.kms-new .kms-main > .container-fluid,
body.kms-new .kms-main > .container { max-width: 1440px; padding-left: 20px; padding-right: 20px; }
body.kms-new .kms-main > .container { max-width: 1140px; }
body.kms-new .kms-footer { padding: 18px 32px 22px; color: var(--kms-muted); font-size: .78rem; }
body.kms-new .kms-topbar { display: none; }
body.kms-new .kms-backdrop { display: none; }

@media (max-width: 991px) {
    body.kms-new .kms-sidebar { transform: translateX(-100%); transition: transform .2s ease; box-shadow: var(--kms-shadow-lg); }
    body.kms-new.kms-menu-open .kms-sidebar { transform: none; }
    body.kms-new.kms-menu-open .kms-backdrop { display: block; position: fixed; inset: 0; z-index: 1035; background: rgba(0, 0, 0, .45); }
    body.kms-new .kms-page { margin-left: 0; }
    body.kms-new .kms-topbar {
        display: flex; align-items: center; gap: 10px; position: sticky; top: 0; z-index: 1030;
        height: 56px; padding: 0 12px; padding-top: env(safe-area-inset-top);
        background: var(--kms-side); color: #fff;
    }
    body.kms-new .kms-menu-btn { background: none; border: 0; color: #fff; width: 40px; height: 40px; border-radius: 8px; font-size: 1.1rem; }
    body.kms-new .kms-menu-btn:focus { outline: 2px solid var(--kms-lime); }
    body.kms-new .kms-topbar-brand { display: flex; align-items: center; gap: 10px; color: #fff; font-weight: 600; text-decoration: none; }
    body.kms-new .kms-topbar-brand img { height: 26px; }
    body.kms-new .kms-main { padding: 4px 0 16px; }
    body.kms-new .kms-main > .container-fluid, body.kms-new .kms-main > .container { padding-left: 16px; padding-right: 16px; }
    body.kms-new .kms-footer { padding: 14px 16px 20px; }
}

/* ---------- cards ---------- */
body.kms-new .card {
    background: var(--kms-surface); color: var(--kms-ink);
    border: 1px solid var(--kms-border); border-radius: var(--kms-radius);
    box-shadow: var(--kms-shadow); margin-bottom: 1.25rem;
}
body.kms-new .card-header, body.kms-new .info-card .card-header {
    background: transparent; color: var(--kms-ink); border-bottom: 1px solid var(--kms-border);
    padding: .9rem 1.15rem; font-weight: 600;
}
body.kms-new .card-header:first-child { border-radius: calc(var(--kms-radius) - 1px) calc(var(--kms-radius) - 1px) 0 0; }
body.kms-new .card-header h1, body.kms-new .card-header h2, body.kms-new .card-header h3,
body.kms-new .card-header h4, body.kms-new .card-header h5, body.kms-new .card-header h6 { color: var(--kms-ink); }
body.kms-new .card-body { padding: 1.15rem; }
body.kms-new .card-footer { background: var(--kms-surface-2); border-top: 1px solid var(--kms-border); }
body.kms-new .card-title { color: inherit; }
/* colour-filled stat cards → white cards with a coloured edge */
body.kms-new .card.bg-primary, body.kms-new .card.bg-success, body.kms-new .card.bg-info,
body.kms-new .card.bg-warning, body.kms-new .card.bg-danger, body.kms-new .card.bg-secondary, body.kms-new .card.bg-dark {
    background: var(--kms-surface) !important; color: var(--kms-ink) !important; border-left-width: 4px;
}
body.kms-new .card.bg-primary { border-left-color: var(--kms-lime-strong); }
body.kms-new .card.bg-success { border-left-color: var(--kms-ok); }
body.kms-new .card.bg-info { border-left-color: var(--kms-info); }
body.kms-new .card.bg-warning { border-left-color: var(--kms-warn); }
body.kms-new .card.bg-danger { border-left-color: var(--kms-bad); }
body.kms-new .card.bg-secondary, body.kms-new .card.bg-dark { border-left-color: var(--kms-muted); }
body.kms-new .card.text-white .card-title,
body.kms-new .card.text-white h5, body.kms-new .card.text-white h6 {
    color: var(--kms-muted); font-size: .78rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
}
body.kms-new .card.text-white h2, body.kms-new .card.text-white h1, body.kms-new .card.text-white .h2 { font-size: 2rem; font-weight: 700; color: var(--kms-ink); }
body.kms-new .card.text-white, body.kms-new .card.text-white p, body.kms-new .card.text-white small { color: var(--kms-ink-2) !important; }
body.kms-new .card.text-white i { opacity: .55; }

/* page banners some pages draw themselves */
body.kms-new .page-header {
    background: var(--kms-surface) !important; color: var(--kms-ink) !important;
    border: 1px solid var(--kms-border); border-radius: var(--kms-radius); box-shadow: var(--kms-shadow);
}
body.kms-new .page-header h1, body.kms-new .page-header h2, body.kms-new .page-header p,
body.kms-new .page-header small, body.kms-new .page-header .text-white, body.kms-new .page-header i { color: inherit !important; }
body.kms-new .page-header p, body.kms-new .page-header small { color: var(--kms-muted) !important; }
body.kms-new .page-header .btn-light, body.kms-new .page-header .btn-outline-light {
    background: var(--kms-surface); color: var(--kms-ink); border-color: var(--kms-border-strong);
}

/* ---------- tables ---------- */
body.kms-new .table { color: var(--kms-ink); margin-bottom: 0; }
body.kms-new .table th, body.kms-new .table td { border-top-color: var(--kms-border); vertical-align: middle; padding: .7rem .8rem; }
body.kms-new .table thead th {
    border-bottom: 1px solid var(--kms-border); border-top: 0;
    color: var(--kms-muted); font-size: .72rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap;
    background: var(--kms-surface-2);
}
body.kms-new .table-striped tbody tr:nth-of-type(odd) { background: transparent; }
body.kms-new .table-striped tbody tr:nth-of-type(even) { background: var(--kms-surface-2); }
body.kms-new .table-hover tbody tr:hover { background: var(--kms-hover); color: inherit; }
body.kms-new .table-bordered, body.kms-new .table-bordered th, body.kms-new .table-bordered td { border-color: var(--kms-border); }
body.kms-new .thead-light th, body.kms-new .thead-dark th { background: var(--kms-surface-2); color: var(--kms-muted); border-color: var(--kms-border); }
body.kms-new .card .table-responsive { border-radius: 0 0 var(--kms-radius) var(--kms-radius); }
body.kms-new .card-body > .table-responsive:only-child { margin: -1.15rem; width: auto; }
body.kms-new .table-success, body.kms-new .table-success > td { background: var(--kms-ok-soft); }
body.kms-new .table-danger, body.kms-new .table-danger > td { background: var(--kms-bad-soft); }
body.kms-new .table-warning, body.kms-new .table-warning > td { background: var(--kms-warn-soft); }
body.kms-new .table-info, body.kms-new .table-info > td { background: var(--kms-info-soft); }

/* ---------- buttons ---------- */
body.kms-new .btn {
    border-radius: var(--kms-radius-sm); font-weight: 600; font-size: .88rem; padding: .45rem .9rem;
    box-shadow: none !important; transition: background .12s, border-color .12s, color .12s;
}
body.kms-new .btn-sm { font-size: .78rem; padding: .28rem .6rem; border-radius: 7px; }
body.kms-new .btn-lg { font-size: 1rem; padding: .65rem 1.2rem; }
body.kms-new .btn:focus, body.kms-new .btn.focus { box-shadow: 0 0 0 3px var(--kms-focus) !important; }
body.kms-new .btn-primary, body.kms-new .save-btn, body.kms-new .btn-pricing, body.kms-new .btn-submit {
    background: var(--kms-lime) !important; border: 1px solid var(--kms-lime) !important; color: #1c1e21 !important;
}
body.kms-new .btn-primary:hover, body.kms-new .save-btn:hover {
    background: var(--kms-lime-strong) !important; border-color: var(--kms-lime-strong) !important; color: #1c1e21 !important; transform: none;
}
body.kms-new .btn-secondary, body.kms-new .btn-light {
    background: var(--kms-surface); border: 1px solid var(--kms-border-strong); color: var(--kms-ink);
}
body.kms-new .btn-secondary:hover, body.kms-new .btn-light:hover { background: var(--kms-surface-2); color: var(--kms-ink); border-color: var(--kms-muted); }
body.kms-new .btn-dark { background: var(--kms-side); border-color: var(--kms-side); color: #fff; }
body.kms-new .btn-success { background: var(--kms-ok); border-color: var(--kms-ok); color: #fff; }
body.kms-new .btn-danger { background: var(--kms-bad); border-color: var(--kms-bad); color: #fff; }
body.kms-new .btn-warning { background: #f0b429; border-color: #f0b429; color: #1c1e21; }
body.kms-new .btn-info { background: var(--kms-info); border-color: var(--kms-info); color: #fff; }
body.kms-new .btn-success:hover, body.kms-new .btn-danger:hover, body.kms-new .btn-info:hover, body.kms-new .btn-dark:hover { filter: brightness(.92); color: #fff; }
body.kms-new .btn-outline-primary { color: var(--kms-ink); border-color: var(--kms-border-strong); background: var(--kms-surface); }
body.kms-new .btn-outline-primary:hover, body.kms-new .btn-outline-primary.active { background: var(--kms-lime); border-color: var(--kms-lime); color: #1c1e21; }
body.kms-new .btn-outline-secondary, body.kms-new .btn-outline-dark { color: var(--kms-ink-2); border-color: var(--kms-border-strong); background: var(--kms-surface); }
body.kms-new .btn-outline-secondary:hover, body.kms-new .btn-outline-dark:hover { background: var(--kms-surface-2); color: var(--kms-ink); }
body.kms-new .btn-outline-success { color: var(--kms-ok); border-color: currentColor; }
body.kms-new .btn-outline-danger { color: var(--kms-bad); border-color: currentColor; }
body.kms-new .btn-outline-warning { color: var(--kms-warn); border-color: currentColor; }
body.kms-new .btn-outline-info { color: var(--kms-info); border-color: currentColor; }
body.kms-new .btn-outline-success:hover { background: var(--kms-ok); border-color: var(--kms-ok); color: #fff; }
body.kms-new .btn-outline-danger:hover { background: var(--kms-bad); border-color: var(--kms-bad); color: #fff; }
body.kms-new .btn-outline-warning:hover { background: var(--kms-warn); border-color: var(--kms-warn); color: #fff; }
body.kms-new .btn-outline-info:hover { background: var(--kms-info); border-color: var(--kms-info); color: #fff; }
body.kms-new .btn-link { color: var(--kms-link); font-weight: 500; }
body.kms-new .btn-group > .btn + .btn { margin-left: -1px; }
body.kms-new .btn-group .btn { margin: 0; }
body.kms-new .close { color: var(--kms-ink); text-shadow: none; }

/* ---------- badges ---------- */
body.kms-new .badge {
    font-weight: 600; font-size: .72rem; letter-spacing: .01em; padding: .3em .6em; border-radius: 999px;
}
body.kms-new .badge-primary { background: var(--kms-lime); color: #1c1e21; }
body.kms-new .badge-success { background: var(--kms-ok-soft); color: var(--kms-ok); }
body.kms-new .badge-danger { background: var(--kms-bad-soft); color: var(--kms-bad); }
body.kms-new .badge-warning { background: var(--kms-warn-soft); color: var(--kms-warn); }
body.kms-new .badge-info { background: var(--kms-info-soft); color: var(--kms-info); }
body.kms-new .badge-secondary, body.kms-new .badge-light { background: var(--kms-neutral-soft); color: var(--kms-ink-2); }
body.kms-new .badge-dark { background: var(--kms-side); color: #fff; }

/* ---------- forms ---------- */
body.kms-new label, body.kms-new .form-label-friendly { font-weight: 600; font-size: .86rem; color: var(--kms-ink-2); }
body.kms-new .form-control, body.kms-new .custom-select, body.kms-new select.form-control {
    background-color: var(--kms-surface); color: var(--kms-ink);
    border: 1px solid var(--kms-border-strong); border-radius: var(--kms-radius-sm);
    font-size: .9rem; min-height: 38px; box-shadow: none;
}
body.kms-new textarea.form-control { min-height: 0; }
body.kms-new .form-control:focus, body.kms-new .custom-select:focus {
    border-color: var(--kms-lime-strong) !important; box-shadow: 0 0 0 3px var(--kms-focus) !important; background-color: var(--kms-surface); color: var(--kms-ink);
}
body.kms-new .form-control::placeholder { color: var(--kms-muted); opacity: .8; }
body.kms-new .form-control:disabled, body.kms-new .form-control[readonly] { background: var(--kms-surface-2); color: var(--kms-muted); }
body.kms-new .input-group-text { background: var(--kms-surface-2); border-color: var(--kms-border-strong); color: var(--kms-muted); }
body.kms-new .custom-control-input:checked ~ .custom-control-label::before { background: var(--kms-ink); border-color: var(--kms-ink); }
body.kms-new .form-check-input, body.kms-new input[type=checkbox], body.kms-new input[type=radio], body.kms-new input[type=range] { accent-color: #7fae00; }
body.kms-new .form-check-label { font-weight: 500; }
body.kms-new .help-icon { color: var(--kms-muted) !important; }
body.kms-new .section-help, body.kms-new .info-box {
    background: var(--kms-surface-2) !important; border-left: 3px solid var(--kms-lime-strong) !important; color: var(--kms-ink-2); border-radius: var(--kms-radius-sm);
}
body.kms-new .info-box i { color: var(--kms-link) !important; }
body.kms-new .invalid-feedback { color: var(--kms-bad); }
body.kms-new .is-invalid { border-color: var(--kms-bad) !important; }

/* ---------- alerts ---------- */
body.kms-new .alert { border-radius: var(--kms-radius-sm); border: 1px solid transparent; font-size: .9rem; color: var(--kms-ink); }
body.kms-new .alert-success { background: var(--kms-ok-soft) !important; border-color: rgba(47, 158, 68, .25); color: var(--kms-ink) !important; }
body.kms-new .alert-danger { background: var(--kms-bad-soft) !important; border-color: rgba(208, 67, 58, .25); color: var(--kms-ink) !important; }
body.kms-new .alert-warning { background: var(--kms-warn-soft) !important; border-color: rgba(183, 121, 31, .25); color: var(--kms-ink) !important; }
body.kms-new .alert-info, body.kms-new .alert-primary { background: var(--kms-info-soft) !important; border-color: rgba(47, 111, 181, .22); color: var(--kms-ink) !important; }
body.kms-new .alert-secondary, body.kms-new .alert-light { background: var(--kms-neutral-soft); color: var(--kms-ink); }
body.kms-new .alert-success i, body.kms-new .alert-success .fas { color: var(--kms-ok); }
body.kms-new .alert-danger i, body.kms-new .alert-danger .fas { color: var(--kms-bad); }
body.kms-new .alert-warning i, body.kms-new .alert-warning .fas { color: var(--kms-warn); }
body.kms-new .alert-info i, body.kms-new .alert-info .fas { color: var(--kms-info); }
body.kms-new .alert-link { color: inherit; text-decoration: underline; }

/* ---------- menus, modals, tabs, misc ---------- */
body.kms-new .dropdown-menu {
    background: var(--kms-surface); border: 1px solid var(--kms-border); border-radius: 10px;
    box-shadow: var(--kms-shadow-lg); padding: 6px; font-size: .9rem;
}
body.kms-new .dropdown-item { color: var(--kms-ink); border-radius: 6px; padding: .45rem .7rem; }
body.kms-new .dropdown-item:hover, body.kms-new .dropdown-item:focus { background: var(--kms-surface-2); color: var(--kms-ink); }
body.kms-new .dropdown-item.active, body.kms-new .dropdown-item:active { background: var(--kms-lime); color: #1c1e21; }
body.kms-new .dropdown-divider { border-top-color: var(--kms-border); }
body.kms-new .dropdown-header { color: var(--kms-muted); }
body.kms-new .modal-content { background: var(--kms-surface); color: var(--kms-ink); border: 1px solid var(--kms-border); border-radius: 14px; box-shadow: var(--kms-shadow-lg); }
body.kms-new .modal-header { border-bottom-color: var(--kms-border); background: transparent !important; color: var(--kms-ink) !important; }
body.kms-new .modal-header .modal-title, body.kms-new .modal-header .close { color: var(--kms-ink) !important; }
body.kms-new .modal-footer { border-top-color: var(--kms-border); }
body.kms-new .modal-backdrop.show { opacity: .5; }
body.kms-new .nav-tabs { border-bottom-color: var(--kms-border); gap: 4px; }
body.kms-new .nav-tabs .nav-link { border: 0; border-bottom: 2px solid transparent; color: var(--kms-muted); font-weight: 600; background: none; }
body.kms-new .nav-tabs .nav-link:hover { color: var(--kms-ink); }
body.kms-new .nav-tabs .nav-link.active { color: var(--kms-ink); border-bottom-color: var(--kms-lime-strong); background: none; }
body.kms-new .nav-pills .nav-link { color: var(--kms-ink-2); border-radius: 8px; font-weight: 600; }
body.kms-new .nav-pills .nav-link.active { background: var(--kms-ink); color: var(--kms-surface); }
body.kms-new .list-group-item { background: var(--kms-surface); border-color: var(--kms-border); color: var(--kms-ink); }
body.kms-new .list-group-item.active { background: var(--kms-ink); border-color: var(--kms-ink); color: var(--kms-surface); }
body.kms-new .list-group-item-action:hover { background: var(--kms-surface-2); }
body.kms-new .pagination .page-link { color: var(--kms-ink); background: var(--kms-surface); border-color: var(--kms-border); }
body.kms-new .pagination .page-item.active .page-link { background: var(--kms-ink); border-color: var(--kms-ink); color: var(--kms-surface); }
body.kms-new .pagination .page-item.disabled .page-link { background: var(--kms-surface-2); color: var(--kms-muted); }
body.kms-new .breadcrumb { background: transparent; padding: 0; margin-bottom: .75rem; font-size: .85rem; }
body.kms-new .breadcrumb-item.active { color: var(--kms-muted); }
body.kms-new .progress { background: var(--kms-neutral-soft); border-radius: 999px; height: .55rem; }
body.kms-new .progress-bar { background: var(--kms-ink); }
body.kms-new .progress-bar.bg-success { background: var(--kms-ok) !important; }
body.kms-new .progress-bar.bg-danger { background: var(--kms-bad) !important; }
body.kms-new .progress-bar.bg-warning { background: #f0b429 !important; }
body.kms-new .progress-bar.bg-info { background: var(--kms-info) !important; }
body.kms-new .tooltip-inner { background: var(--kms-side); }
body.kms-new .popover { border-color: var(--kms-border); background: var(--kms-surface); }
body.kms-new .popover-body { color: var(--kms-ink); }
body.kms-new .spinner-border { color: var(--kms-ink-2); }
body.kms-new img.img-thumbnail { background: var(--kms-surface); border-color: var(--kms-border); }
body.kms-new .shadow-sm, body.kms-new .shadow { box-shadow: var(--kms-shadow) !important; }

/* ---------- old page-specific blocks ---------- */
body.kms-new .settings-card { background: var(--kms-surface) !important; color: var(--kms-ink) !important; border: 1px solid var(--kms-border); }
body.kms-new .settings-card * { color: inherit; }
body.kms-new .notification-card .card-header { background: transparent !important; color: var(--kms-ink) !important; }
body.kms-new .download-card { background: var(--kms-surface); border-color: var(--kms-border) !important; color: var(--kms-ink); }
body.kms-new .download-card:hover { border-color: var(--kms-lime-strong) !important; }
body.kms-new .api-key-section { background: var(--kms-surface-2) !important; color: var(--kms-ink); }
body.kms-new .api-key-display { border-color: var(--kms-border-strong) !important; color: var(--kms-ink) !important; background: var(--kms-surface) !important; }
body.kms-new .api-key-display code { color: var(--kms-ink) !important; }
body.kms-new .coming-soon-badge { background: var(--kms-neutral-soft) !important; color: var(--kms-ink-2) !important; }
body.kms-new .platform-filter-btn:hover, body.kms-new .platform-filter-btn.active {
    border-color: var(--kms-ink) !important; color: var(--kms-ink) !important; background: var(--kms-surface-2) !important;
}
body.kms-new .status-online { color: var(--kms-ok); }
body.kms-new .status-offline { color: var(--kms-bad); }
body.kms-new .status-warning { color: var(--kms-warn); }
body.kms-new .pwa-fab, body.kms-new .pwa-update-banner { background: var(--kms-side) !important; color: #fff; }
body.kms-new .pwa-install-floating { background: var(--kms-lime) !important; color: #1c1e21 !important; border-color: var(--kms-lime) !important; }

/* old inline light backgrounds in dark mode */
@media (prefers-color-scheme: dark) {
    body.kms-new [style*="background: #f8f9fa"], body.kms-new [style*="background:#f8f9fa"],
    body.kms-new [style*="background-color: #f8f9fa"], body.kms-new [style*="background: white"],
    body.kms-new [style*="background: #fff"], body.kms-new [style*="background-color: #fff"],
    body.kms-new [style*="background: #f5f5f5"], body.kms-new [style*="background-color: white"] {
        background: var(--kms-surface-2) !important; color: var(--kms-ink) !important;
    }
    body.kms-new [style*="color: #333"], body.kms-new [style*="color: #666"], body.kms-new [style*="color:#666"],
    body.kms-new [style*="color: #555"], body.kms-new [style*="color: #495057"] { color: var(--kms-ink-2) !important; }
    body.kms-new .table-light, body.kms-new .table-light > td, body.kms-new .table-light > th { background: var(--kms-surface-2); color: var(--kms-ink); }
}

/* ======================================================================
 * Public pages: front page (auth/home.php) and sign-in (login, forgot, reset)
 * ====================================================================== */
body.kms-new.kms-public { background: var(--kms-bg); }

/* sign-in */
body.kms-new.kms-auth {
    min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: 32px 16px; background: var(--kms-side);
    background-image: radial-gradient(1200px 600px at 85% -10%, rgba(198, 243, 26, .14), transparent 60%),
                      radial-gradient(900px 500px at -10% 110%, rgba(113, 252, 0, .08), transparent 60%);
}
body.kms-new.kms-auth .particles, body.kms-new.kms-auth .particle, body.kms-new.kms-public .particles { display: none !important; }
body.kms-new .login-container, body.kms-new .forgot-container, body.kms-new .reset-container { width: 100%; max-width: 420px; margin: 0 auto; }
body.kms-new .login-card, body.kms-new .forgot-card, body.kms-new .reset-card {
    background: var(--kms-surface); color: var(--kms-ink); border: 1px solid var(--kms-border);
    border-radius: 16px; box-shadow: 0 24px 60px rgba(0, 0, 0, .35); overflow: hidden;
}
body.kms-new .login-header, body.kms-new .forgot-header, body.kms-new .reset-header {
    background: transparent !important; color: var(--kms-ink) !important; text-align: center; padding: 32px 32px 8px !important;
}
body.kms-new .login-header h1, body.kms-new .login-header h2, body.kms-new .login-header h3,
body.kms-new .forgot-header h1, body.kms-new .reset-header h1, body.kms-new .forgot-header h2, body.kms-new .reset-header h2, body.kms-new .forgot-header h3, body.kms-new .reset-header h3 { color: var(--kms-ink) !important; font-size: 1.35rem; font-weight: 700; margin-top: 14px; }
body.kms-new .login-header p, body.kms-new .forgot-header p, body.kms-new .reset-header p { color: var(--kms-muted) !important; font-size: .9rem; }
body.kms-new .login-header img, body.kms-new .forgot-header img, body.kms-new .reset-header img { max-height: 56px; width: auto; background: var(--kms-side); padding: 10px 14px; border-radius: 12px; }
body.kms-new .login-header > i, body.kms-new .forgot-header > i, body.kms-new .reset-header > i { display: none !important; }
body.kms-new .login-body, body.kms-new .forgot-body, body.kms-new .reset-body { padding: 20px 32px 32px !important; }
body.kms-new .login-body .btn, body.kms-new .forgot-body .btn, body.kms-new .reset-body .btn, body.kms-new .btn-login {
    width: 100%; padding: .7rem 1rem; font-size: .95rem;
    background: var(--kms-lime) !important; border: 1px solid var(--kms-lime) !important; color: #1c1e21 !important;
}
body.kms-new .login-body .btn:hover, body.kms-new .forgot-body .btn:hover, body.kms-new .reset-body .btn:hover, body.kms-new .btn-login:hover { background: var(--kms-lime-strong) !important; transform: none; }
body.kms-new .input-icon i { color: var(--kms-muted) !important; }
body.kms-new .login-body .form-control, body.kms-new .forgot-body .form-control, body.kms-new .reset-body .form-control { min-height: 44px; }
body.kms-new .login-footer, body.kms-new .forgot-footer, body.kms-new .reset-footer { color: rgba(255, 255, 255, .55) !important; margin-top: 18px; text-align: center; font-size: .8rem; }
body.kms-new .login-footer a, body.kms-new .forgot-footer a, body.kms-new .reset-footer a { color: rgba(255, 255, 255, .8) !important; }
body.kms-new .login-body a, body.kms-new .forgot-body a, body.kms-new .reset-body a { color: var(--kms-link) !important; }

/* front page */
body.kms-new.kms-public .navbar {
    background: rgba(31, 33, 36, .92) !important; backdrop-filter: blur(10px); box-shadow: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, .06); padding: 12px 0;
}
body.kms-new.kms-public .navbar.scrolled { background: rgba(31, 33, 36, .98) !important; }
body.kms-new.kms-public .navbar-brand-text { color: #fff !important; -webkit-text-fill-color: #fff !important; background: none !important; font-weight: 700; font-size: 1rem; }
body.kms-new.kms-public .navbar-logo { height: 34px; }
body.kms-new.kms-public .navbar .nav-link { color: rgba(255, 255, 255, .78) !important; font-weight: 500; }
body.kms-new.kms-public .navbar .nav-link:hover { color: #fff !important; }
body.kms-new.kms-public .navbar .btn-login-nav {
    background: var(--kms-lime) !important; color: #1c1e21 !important; border-radius: 8px; padding: .45rem 1rem !important; margin-left: 8px; font-weight: 600;
}
body.kms-new.kms-public .navbar-toggler { border-color: rgba(255, 255, 255, .3); }
body.kms-new.kms-public .navbar-toggler-icon { filter: invert(1); }
body.kms-new.kms-public .hero {
    background: var(--kms-side) !important; color: #fff; min-height: 0 !important; padding: 168px 0 120px !important; position: relative; overflow: hidden;
    background-image: radial-gradient(900px 500px at 90% 0%, rgba(198, 243, 26, .16), transparent 60%),
                      radial-gradient(700px 400px at 0% 100%, rgba(113, 252, 0, .08), transparent 60%) !important;
}
body.kms-new.kms-public .hero::before, body.kms-new.kms-public .hero::after { display: none !important; }
body.kms-new.kms-public .hero h1 { color: #fff !important; font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.08; }
body.kms-new.kms-public .hero p { color: rgba(255, 255, 255, .72) !important; font-size: 1.15rem; max-width: 620px; margin: 20px 0 32px; }
body.kms-new.kms-public .hero-content { opacity: 1 !important; transform: none !important; }
body.kms-new.kms-public .btn-hero { border-radius: 10px !important; padding: .8rem 1.5rem !important; font-weight: 600; font-size: 1rem; box-shadow: none !important; margin: 0 10px 10px 0; }
body.kms-new.kms-public .btn-primary-hero { background: var(--kms-lime) !important; color: #1c1e21 !important; border: 1px solid var(--kms-lime) !important; }
body.kms-new.kms-public .btn-primary-hero:hover { background: var(--kms-yellow) !important; transform: none !important; }
body.kms-new.kms-public .btn-outline-hero { background: transparent !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, .35) !important; }
body.kms-new.kms-public .btn-outline-hero:hover { border-color: #fff !important; transform: none !important; }
body.kms-new.kms-public section { padding: 96px 0; }
body.kms-new.kms-public .features, body.kms-new.kms-public .pricing { background: var(--kms-bg) !important; }
body.kms-new.kms-public .capabilities, body.kms-new.kms-public .contact { background: var(--kms-surface) !important; }
body.kms-new.kms-public .section-title h2, body.kms-new.kms-public .capabilities h2 {
    color: var(--kms-ink) !important; -webkit-text-fill-color: currentColor !important; background: none !important;
    font-size: clamp(1.7rem, 3vw, 2.3rem) !important; font-weight: 700 !important; letter-spacing: -.02em;
}
body.kms-new.kms-public .section-title h2::after { display: none !important; }
body.kms-new.kms-public .section-title p, body.kms-new.kms-public .capabilities p { color: var(--kms-muted) !important; }
body.kms-new.kms-public .feature-card, body.kms-new.kms-public .pricing-card, body.kms-new.kms-public .contact-form {
    background: var(--kms-surface) !important; border: 1px solid var(--kms-border) !important; border-radius: 14px !important;
    box-shadow: var(--kms-shadow) !important; transform: none !important; color: var(--kms-ink);
}
body.kms-new.kms-public .feature-card { padding: 28px !important; height: 100%; }
body.kms-new.kms-public .feature-card:hover, body.kms-new.kms-public .pricing-card:hover { border-color: var(--kms-border-strong) !important; box-shadow: var(--kms-shadow-lg) !important; }
body.kms-new.kms-public .feature-card::before, body.kms-new.kms-public .pricing-card::before { display: none !important; }
body.kms-new.kms-public .feature-icon, body.kms-new.kms-public .capability-icon {
    background: var(--kms-side) !important; color: var(--kms-lime) !important; border-radius: 12px !important;
    width: 48px !important; height: 48px !important; font-size: 1.15rem !important; box-shadow: none !important;
    display: flex; align-items: center; justify-content: center;
}
body.kms-new.kms-public .feature-icon i, body.kms-new.kms-public .capability-icon i { color: var(--kms-lime) !important; -webkit-text-fill-color: currentColor !important; }
body.kms-new.kms-public .feature-card h3 { font-size: 1.08rem !important; margin: 18px 0 8px; color: var(--kms-ink) !important; }
body.kms-new.kms-public .feature-card p, body.kms-new.kms-public .capability-item p { color: var(--kms-muted) !important; font-size: .93rem; }
body.kms-new.kms-public .capability-item h4 { color: var(--kms-ink) !important; font-size: 1rem; }
body.kms-new.kms-public .capability-item:hover { transform: none !important; }
body.kms-new.kms-public .capabilities-image { border-radius: 16px !important; box-shadow: var(--kms-shadow-lg) !important; }
body.kms-new.kms-public .stats {
    background: var(--kms-side) !important; color: #fff; padding: 64px 0;
}
body.kms-new.kms-public .stat-number { color: var(--kms-lime) !important; -webkit-text-fill-color: currentColor !important; background: none !important; font-weight: 700; }
body.kms-new.kms-public .stat-label { color: rgba(255, 255, 255, .7) !important; }
body.kms-new.kms-public .pricing-card.featured { border: 2px solid var(--kms-lime-strong) !important; transform: none !important; }
body.kms-new.kms-public .pricing-badge { background: var(--kms-lime) !important; color: #1c1e21 !important; }
body.kms-new.kms-public .pricing-header h3 { color: var(--kms-ink) !important; }
body.kms-new.kms-public .pricing-header p, body.kms-new.kms-public .pricing-period { color: var(--kms-muted) !important; }
body.kms-new.kms-public .pricing-price { color: var(--kms-ink) !important; -webkit-text-fill-color: currentColor !important; background: none !important; }
body.kms-new.kms-public .pricing-features li { color: var(--kms-ink-2) !important; border-color: var(--kms-border) !important; }
body.kms-new.kms-public .pricing-features i { color: var(--kms-ok) !important; }
body.kms-new.kms-public .pricing-note { color: var(--kms-muted) !important; }
body.kms-new.kms-public .pricing-note i { color: var(--kms-ink-2) !important; }
body.kms-new.kms-public .btn-pricing, body.kms-new.kms-public .btn-submit { border-radius: 10px !important; font-weight: 600 !important; box-shadow: none !important; transform: none !important; }
body.kms-new.kms-public .contact-form label { color: var(--kms-ink-2) !important; }
body.kms-new.kms-public .contact-form label i { color: var(--kms-muted) !important; }
body.kms-new.kms-public .alert-custom-success { background: var(--kms-ok-soft) !important; color: var(--kms-ink) !important; border: 0 !important; }
body.kms-new.kms-public .alert-custom-danger { background: var(--kms-bad-soft) !important; color: var(--kms-ink) !important; border: 0 !important; }
body.kms-new.kms-public footer { background: var(--kms-side) !important; color: rgba(255, 255, 255, .7); padding: 56px 0 24px; }
body.kms-new.kms-public footer h4 { color: #fff !important; font-size: 1rem; }
body.kms-new.kms-public .footer-links a { color: rgba(255, 255, 255, .7) !important; }
body.kms-new.kms-public .footer-links a:hover { color: var(--kms-lime) !important; }
body.kms-new.kms-public .footer-bottom { border-top-color: rgba(255, 255, 255, .08) !important; color: rgba(255, 255, 255, .5); }
body.kms-new.kms-public [data-aos] { opacity: 1 !important; transform: none !important; transition: none !important; }

@media (prefers-reduced-motion: reduce) {
    body.kms-new *, body.kms-new *::before, body.kms-new *::after { transition: none !important; animation: none !important; }
}

/* ---------- fixes from the first visual pass ---------- */
body.kms-new .page-header { margin: 0 0 1.25rem !important; padding: 1.25rem 1.5rem !important; }
body.kms-new .downloads-hero { margin: 0 0 1.5rem !important; border-radius: var(--kms-radius) !important; padding: 36px 8px 28px !important; }
body.kms-new .downloads-hero h1, body.kms-new .downloads-hero h2 { color: #fff !important; font-size: 1.8rem !important; }
body.kms-new .downloads-hero p { color: rgba(255, 255, 255, .75) !important; }
body.kms-new .login-logo, body.kms-new .forgot-header img, body.kms-new .reset-header img {
    filter: none !important; opacity: 1 !important; width: auto !important; height: 64px !important;
    background: var(--kms-side); padding: 12px 18px; border-radius: 12px; margin: 0 auto 4px !important;
}
body.kms-new .login-body label i, body.kms-new .forgot-body label i, body.kms-new .reset-body label i { color: var(--kms-muted) !important; }
/* tables: keep ids, dates and buttons on one line; quieter row buttons */
body.kms-new .table td { padding: .6rem .7rem; }
body.kms-new .table td code { white-space: nowrap; }
body.kms-new .table td:last-child { white-space: nowrap; }
body.kms-new .table td:last-child .btn + .btn { margin-left: 4px; }
body.kms-new .table .btn-info, body.kms-new .table .btn-warning {
    background: var(--kms-surface); border: 1px solid var(--kms-border-strong); color: var(--kms-ink);
}
body.kms-new .table .btn-info:hover, body.kms-new .table .btn-warning:hover { background: var(--kms-lime); border-color: var(--kms-lime); color: #1c1e21; filter: none; }
/* kiosk list: 11 columns */
body.kms-new.kms-p-kiosks .table { font-size: .84rem; }
body.kms-new.kms-p-kiosks .table td, body.kms-new.kms-p-kiosks .table th { padding: .55rem .55rem; white-space: nowrap; }
body.kms-new.kms-p-kiosks .table td:nth-child(2), body.kms-new.kms-p-kiosks .table td:nth-child(4) { white-space: normal; min-width: 150px; }
body.kms-new.kms-p-kiosks .table td:last-child, body.kms-new.kms-p-kiosks .table th:last-child {
    position: sticky; right: 0; z-index: 1; background: var(--kms-surface); box-shadow: -8px 0 12px -10px rgba(0, 0, 0, .25);
}
body.kms-new.kms-p-kiosks .table thead th:last-child { background: var(--kms-surface-2); }
body.kms-new.kms-p-kiosks .table-striped tbody tr:nth-of-type(even) td:last-child { background: var(--kms-surface-2); }
/* page header actions: the yellow Edit button reads as a warning — make it the main action */
body.kms-new .page-header .btn-warning { background: var(--kms-lime); border-color: var(--kms-lime); color: #1c1e21; }
body.kms-new .page-header .btn-lg { font-size: .92rem; padding: .5rem 1rem; }
body.kms-new .status-badge { white-space: nowrap; }
@media (max-width: 767px) {
    body.kms-new .page-header > .d-flex { flex-wrap: wrap; gap: 12px; }
    body.kms-new .page-header h1 { font-size: 1.35rem; }
    body.kms-new .table td code, body.kms-new code { white-space: normal; word-break: break-all; }
    body.kms-new .card-body { padding: .9rem; }
}
@media (max-width: 767px) {
    body.kms-new .info-table { table-layout: fixed; width: 100%; }
    body.kms-new .info-table th { width: 34% !important; }
    body.kms-new .info-table td { overflow-wrap: anywhere; }
    body.kms-new .info-table td iframe, body.kms-new .info-table td img, body.kms-new .info-table td > div { max-width: 100%; }
}
/* Bootstrap 5 classes some pages use (the site loads Bootstrap 4) */
body.kms-new .form-select {
    display: block; width: 100%; min-height: 38px; padding: .375rem 2rem .375rem .75rem; font-size: .9rem;
    color: var(--kms-ink); background-color: var(--kms-surface); border: 1px solid var(--kms-border-strong); border-radius: var(--kms-radius-sm);
}
body.kms-new .form-select:focus { outline: 0; border-color: var(--kms-lime-strong); box-shadow: 0 0 0 3px var(--kms-focus); }
body.kms-new .form-label { margin-bottom: .35rem; }
body.kms-new .text-end { text-align: right !important; }
body.kms-new .row.g-3 > [class*="col"] { margin-bottom: .75rem; }
body.kms-new .card-body.p-0 > .table-responsive:only-child { margin: 0; }
body.kms-new .row.g-3 .btn { white-space: nowrap; }

/* kiosk details page: its own light-only colours */
body.kms-new .kiosk-details-page { background: transparent !important; }
body.kms-new .setting-icon { background: var(--kms-neutral-soft) !important; color: var(--kms-ink-2); }
body.kms-new .setting-icon i { color: var(--kms-muted); }
body.kms-new .setting-label, body.kms-new .info-table th { color: var(--kms-muted) !important; }
body.kms-new .setting-value { color: var(--kms-ink) !important; }
body.kms-new .setting-value .text-muted { color: var(--kms-muted) !important; }
body.kms-new .setting-item { border-color: var(--kms-border) !important; }
body.kms-new .setting-item:hover, body.kms-new .download-table tbody tr:hover { background: var(--kms-hover) !important; }
body.kms-new .settings-pre, body.kms-new .screenshot-info,
body.kms-new .download-table thead th, body.kms-new .log-table thead th { background: var(--kms-surface-2) !important; color: var(--kms-ink-2); border-color: var(--kms-border) !important; }
body.kms-new .screenshot-card { background: var(--kms-surface) !important; border-color: var(--kms-border) !important; color: var(--kms-ink); }
body.kms-new .empty-state { color: var(--kms-muted) !important; }
body.kms-new .empty-state i { color: var(--kms-border-strong) !important; }
body.kms-new .info-table td, body.kms-new .info-table th { border-color: var(--kms-border) !important; }
/* remote-command buttons: one quiet style, colour only for the risky ones */
body.kms-new .action-buttons .btn:not(.btn-danger) { background: var(--kms-surface); border: 1px solid var(--kms-border-strong); color: var(--kms-ink); filter: none; }
body.kms-new .action-buttons .btn:not(.btn-danger):hover { background: var(--kms-lime); border-color: var(--kms-lime); color: #1c1e21; transform: none; }
body.kms-new .action-buttons .btn-danger { background: var(--kms-surface); border: 1px solid var(--kms-bad); color: var(--kms-bad); }
body.kms-new .action-buttons .btn-danger:hover { background: var(--kms-bad); color: #fff; }
body.kms-new .action-buttons .btn-primary { background: var(--kms-surface) !important; border: 1px solid var(--kms-border-strong) !important; color: var(--kms-ink) !important; }
body.kms-new .action-buttons .btn-primary:hover { background: var(--kms-lime) !important; border-color: var(--kms-lime) !important; color: #1c1e21 !important; }

/* downloads page */
body.kms-new .platform-selector, body.kms-new .instructions-section {
    background: var(--kms-surface) !important; color: var(--kms-ink); border: 1px solid var(--kms-border); box-shadow: var(--kms-shadow) !important;
}
body.kms-new .platform-filter-btn { background: var(--kms-surface) !important; color: var(--kms-ink) !important; border-color: var(--kms-border-strong) !important; }
body.kms-new .platform-filter-btn i { color: inherit !important; }
body.kms-new .download-card h3, body.kms-new .download-card h4, body.kms-new .download-card p { color: inherit; }
/* solid-colour card headers (system health, users) → plain header with a coloured icon */
body.kms-new .card-header[class*="bg-"] { background: transparent !important; color: var(--kms-ink) !important; border-bottom: 1px solid var(--kms-border); }
body.kms-new .card-header[class*="bg-"] * { color: inherit !important; }
body.kms-new .card-header.bg-primary i { color: #7fae00 !important; }
body.kms-new .card-header.bg-success i { color: var(--kms-ok) !important; }
body.kms-new .card-header.bg-info i { color: var(--kms-info) !important; }
body.kms-new .card-header.bg-warning i { color: var(--kms-warn) !important; }
body.kms-new .card-header.bg-danger i { color: var(--kms-bad) !important; }
body.kms-new .api-key-section h5, body.kms-new .api-key-section h4, body.kms-new .platform-selector h5,
body.kms-new .api-key-section p { color: var(--kms-ink) !important; }
body.kms-new .alert-info-custom { background: var(--kms-info-soft) !important; color: var(--kms-ink) !important; border-left-color: var(--kms-info) !important; }
body.kms-new .alert-info-custom i, body.kms-new .alert-info-custom strong { color: var(--kms-info) !important; }

/* ---------- LAPS Supply logo (2026-11-01) — taller than the old LA Pool & Spas mark, needs no dark chip ---------- */
body.kms-new .kms-brand-logo { height: 42px; }
body.kms-new .kms-topbar-brand img { height: 32px; }
body.kms-new .login-logo, body.kms-new .forgot-header img, body.kms-new .reset-header img,
body.kms-new .login-header img, body.kms-new .forgot-header img, body.kms-new .reset-header img {
    background: none !important; padding: 0 !important; height: 84px !important; max-height: none !important; border-radius: 0 !important;
}
body.kms-new.kms-public .navbar-logo { height: 42px; }
body.kms-new .footer-logo { filter: none !important; height: 56px; width: auto; }
