:root {
        color-scheme: light;
        --bg-root: #F3F1FC;
        --bg-surface: #FFFFFF;
        --bg-surface-2: #F6F4FD;
        --text-primary: #1A1533;
        --text-secondary: #6E6890;
        --text-muted: #A6A1C4;
        --border-light: #EDEAFA;
        --border-medium: #DDD7F3;

        --accent: #7C6AF5;
        --accent-2: #6552E8;
        --accent-dark: #4E3FCB;
        --accent-light: #EEEBFC;
        --accent-glow: rgba(124, 106, 245, 0.28);
        --accent-gradient: linear-gradient(135deg, #948AF8, #6552E8);

        --violet-2: #B8ACFF;
        --mint: #2FD9A8;
        --peach: #FF9E7D;
        --sky: #5AC8FA;
        --gold: #FFC96B;

        --success: #17B383;
        --success-light: #E4F9EF;
        --success-text: #0E9268;
        --warning: #F0973A;
        --warning-light: #FEF0DF;
        --warning-text: #B4650E;
        --danger: #F0587D;
        --danger-light: #FEE9EE;
        --danger-text: #C93A5C;
        --info: #6552E8;
        --info-light: #EEEBFC;

        --sidebar-w: 268px;
        --sidebar-collapsed-w: 76px;
        --sidebar-bg: #17123A;
        --sidebar-bg-2: #211A4D;
        --sidebar-text: #ADA3D9;
        --sidebar-active-bg: rgba(124, 106, 245, 0.32);
        --sidebar-active-text: #ffffff;
        --sidebar-hover-bg: rgba(255,255,255,0.07);

        --radius-xs: 8px;
        --radius-sm: 10px;
        --radius-md: 12px;
        --radius-lg: 16px;
        --radius-full: 9999px;
        --shadow-xs: 0 1px 2px rgba(26, 21, 51, 0.04);
        --shadow-card: 0 1px 2px rgba(26, 21, 51, 0.04);
        --shadow-card-hover: 0 8px 20px rgba(26, 21, 51, 0.10);
        --shadow-popover: 0 8px 24px rgba(26, 21, 51, 0.12);
        --shadow-sidebar: 1px 0 0 rgba(26,21,51,0.06);
        --shadow-glow: 0 0 0 3px var(--accent-glow);
        --glass-bg: rgba(255,255,255,0.78);
        --transition: 150ms ease;
    }

    [data-theme="dark"] {
        color-scheme: dark;
        --bg-root: #14120D;
        --bg-surface: #1C1913;
        --bg-surface-2: #221C4A;
        --text-primary: #F1EEFC;
        --text-secondary: #C1B9E8;
        --text-muted: #8B82BD;
        --border-light: #2C2560;
        --border-medium: #3B317A;

        --accent-light: rgba(124, 106, 245, 0.20);
        --success-light: rgba(23, 179, 131, 0.18);
        --success-text: #4FE3B3;
        --warning-light: rgba(240, 151, 58, 0.18);
        --warning-text: #FFBB6B;
        --danger-light: rgba(240, 88, 125, 0.18);
        --danger-text: #FF8CA8;
        --info-light: rgba(124, 106, 245, 0.18);

        --sidebar-bg: #0D0A26;
        --sidebar-bg-2: #14103A;

        --shadow-card: 0 1px 2px rgba(0,0,0,0.3);
        --shadow-card-hover: 0 8px 20px rgba(0,0,0,0.45);
        --shadow-popover: 0 8px 24px rgba(0,0,0,0.5);
        --glass-bg: rgba(20,17,13,0.72);
    }

    * { box-sizing: border-box; scrollbar-width: thin; scrollbar-color: var(--border-medium) transparent; }
    *::-webkit-scrollbar { width: 6px; height: 6px; }
    *::-webkit-scrollbar-thumb { background: var(--border-medium); border-radius: 4px; }
    *:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

    html, body {
        background: var(--bg-root);
        color: var(--text-primary);
        font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
        -webkit-font-smoothing: antialiased;
        letter-spacing: -0.011em;
        margin: 0;
        transition: background var(--transition), color var(--transition);
    }
    ::selection { background: var(--accent-glow); color: var(--text-primary); }
    h1,h2,h3,h4,h5,h6 { color: var(--text-primary); font-weight: 700; letter-spacing: -0.02em; }
    a { color: var(--accent); }
    .text-muted { color: var(--text-secondary) !important; }

    /* ---------- Sidebar ---------- */
    .ot-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        width: var(--sidebar-w);
        height: 100vh;
        background: linear-gradient(180deg, var(--sidebar-bg), var(--sidebar-bg-2));
        box-shadow: var(--shadow-sidebar);
        display: flex;
        flex-direction: column;
        z-index: 1200;
        transition: transform var(--transition);
        overflow: hidden;
        transform: translateX(-100%);
    }
    .ot-sidebar.open { transform: translateX(0); box-shadow: 24px 0 60px rgba(0,0,0,0.28); }
    .ot-sidebar .brand {
        padding: 1.2rem 0.9rem 1.2rem 1.4rem;
        display: flex;
        align-items: center;
        gap: 0.7rem;
        border-bottom: 1px solid rgba(255,255,255,0.07);
    }
    .brand .brand-text-wrap { flex: 1; min-width: 0; }
    .sidebar-close-btn {
        width: 32px; height: 32px;
        display: inline-flex; align-items: center; justify-content: center;
        border-radius: var(--radius-sm);
        border: 1px solid rgba(255,255,255,0.08);
        background: rgba(255,255,255,0.04);
        color: #C7BEA9;
        cursor: pointer;
        transition: var(--transition);
        flex-shrink: 0;
    }
    .sidebar-close-btn:hover { background: rgba(255,255,255,0.1); color: #fff; }
    .brand .brand-logo {
        width: 34px;
        height: 34px;
        border-radius: var(--radius-sm);
        background: var(--accent-gradient);
        display: flex;
        align-items: center;
        justify-content: center;
        color: #fff;
        font-weight: 800;
        font-size: 1.05rem;
        box-shadow: 0 0 0 4px rgba(101,82,232,0.25);
        flex-shrink: 0;
    }
    .brand .brand-text { color: #fff; font-weight: 700; font-size: 1.08rem; letter-spacing: -0.02em; }
    .sidebar-scroll {
        flex: 1;
        overflow-y: auto;
        padding: 0.65rem 0.75rem;
    }
    .nav-section-title {
        color: #6B6152;
        font-size: 0.66rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        padding: 1.1rem 0.65rem 0.4rem;
    }
    .sidebar-scroll .nav-link {
        color: var(--sidebar-text);
        padding: 0.6rem 0.75rem;
        border-radius: var(--radius-sm);
        font-weight: 500;
        display: flex;
        align-items: center;
        gap: 0.7rem;
        transition: all var(--transition);
        text-decoration: none;
        margin-bottom: 1px;
        border: none;
        background: transparent;
        cursor: pointer;
        font-size: 0.875rem;
        width: 100%;
        position: relative;
    }
    .sidebar-scroll .nav-link i { font-size: 1.05rem; width: 20px; text-align: center; }
    .sidebar-scroll .nav-link:hover { background: var(--sidebar-hover-bg); color: #fff; }
    .sidebar-scroll .nav-link.active {
        background: var(--sidebar-active-bg);
        color: var(--sidebar-active-text);
        font-weight: 600;
    }
    .sidebar-scroll .nav-link.active::before {
        content: '';
        position: absolute;
        left: -0.75rem;
        top: 50%;
        transform: translateY(-50%);
        width: 3px;
        height: 60%;
        background: var(--accent);
        border-radius: 0 4px 4px 0;
    }
    .sidebar-footer {
        padding: 0.85rem;
        border-top: 1px solid rgba(255,255,255,0.07);
        display: flex;
        align-items: center;
        gap: 0.6rem;
        color: #8A8271;
        font-size: 0.72rem;
    }
    .sidebar-footer i { color: var(--accent); }

    /* ---------- Main / Topbar ---------- */
    .ot-main {
        padding: 1.5rem 1.75rem 2rem;
        min-height: 100vh;
    }
    .ot-topbar {
        background: var(--glass-bg);
        backdrop-filter: blur(18px) saturate(180%);
        -webkit-backdrop-filter: blur(18px) saturate(180%);
        border-radius: 20px;
        box-shadow: 0 1px 2px rgba(20,16,40,.04), 0 12px 28px -16px rgba(20,16,40,.16);
        border: 1px solid var(--border-light);
        position: sticky;
        top: 0.75rem;
        z-index: 900;
        padding: 0.62rem 1.1rem 0.62rem 0.75rem;
        margin-bottom: 1.5rem;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 1rem;
        isolation: isolate;
    }
    .ot-topbar::before {
        content: ''; position: absolute; left: 14px; right: 14px; top: 0; height: 2px; border-radius: 2px;
        background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 55%, transparent), transparent);
        opacity: .7;
    }
    .ot-topbar { position: sticky; }
    .ot-topbar #pageTitle { font-size: 1.08rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; }
    .ot-topbar-left { display: flex; align-items: center; gap: 0.85rem; min-width: 0; }
    .ot-topbar-divider { width: 1px; align-self: stretch; margin: 0 .15rem; background: linear-gradient(180deg, transparent, var(--border-medium), transparent); flex-shrink: 0; }
    .ot-breadcrumb { display:flex; align-items:center; gap:.35rem; list-style:none; padding:0; margin:.15rem 0 0; color:var(--text-muted); font-size:.7rem; font-weight: 600; }
    .ot-breadcrumb li { display: inline-flex; align-items: center; gap: .3rem; }
    .ot-breadcrumb li i { font-size: .68rem; color: color-mix(in srgb, var(--accent) 65%, var(--text-muted)); }
    .ot-breadcrumb li + li::before { content:'/'; margin-right:.35rem; color:var(--border-medium); }
    .ot-breadcrumb [aria-current="page"] { color:var(--text-secondary); font-weight: 700; }
    .shell-store-chip { max-width:180px; min-width:0; align-items:center; gap:.4rem; padding:.4rem .75rem; border:1px solid var(--border-light); border-radius:var(--radius-full); background: linear-gradient(180deg, var(--bg-surface), var(--bg-surface-2)); color:var(--text-secondary); font-size:.75rem; font-weight:650; box-shadow: 0 1px 2px rgba(20,16,40,.03); transition: var(--transition); }
    .shell-store-chip:hover { border-color: color-mix(in srgb, var(--accent) 35%, var(--border-light)); }
    .shell-store-chip span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .shell-store-chip i { color:var(--accent); flex-shrink:0; }
    .plan-status-btn { min-width:94px; border:1px solid var(--border-light); border-radius: 12px; background: linear-gradient(180deg, var(--bg-surface), var(--bg-surface-2)); color:var(--text-primary); padding:.4rem .7rem; text-align:left; transition: var(--transition); }
    .plan-status-btn:hover { border-color: color-mix(in srgb, var(--accent) 35%, var(--border-light)); }
    .plan-status-name { display:block; max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.72rem; font-weight:700; }
    .plan-status-bar-track { height:3px; margin-top:.32rem; border-radius:999px; background:var(--border-light); overflow:hidden; }
    .plan-status-bar-fill { display:block; height:100%; width:0; background:var(--success); border-radius:inherit; transition:width .2s ease; }
    .plan-status-bar-fill.warning { background:var(--warning); }
    .plan-status-bar-fill.danger { background:var(--danger); }
    .ot-topbar .icon-btn, .ot-topbar-left .icon-btn {
        width: 40px; height: 40px;
        display: inline-flex; align-items: center; justify-content: center;
        border-radius: 13px;
        border: 1px solid var(--border-light);
        background: linear-gradient(180deg, var(--bg-surface), var(--bg-surface-2));
        color: var(--text-secondary);
        transition: var(--transition);
        cursor: pointer;
        flex-shrink: 0;
        position: relative;
    }
    .ot-topbar .icon-btn:hover, .ot-topbar-left .icon-btn:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-light); transform: translateY(-1px); box-shadow: 0 6px 14px -8px var(--accent); }
    .ot-topbar .icon-btn:active, .ot-topbar-left .icon-btn:active { transform: translateY(0); }
    #notifBadge { box-shadow: 0 0 0 2px var(--bg-surface); animation: ot-badge-pulse 2.2s ease-in-out infinite; }
    @keyframes ot-badge-pulse { 0%, 100% { box-shadow: 0 0 0 2px var(--bg-surface), 0 0 0 0 rgba(240,88,125,.5); } 50% { box-shadow: 0 0 0 2px var(--bg-surface), 0 0 0 4px rgba(240,88,125,0); } }

    /* ---------- Global search (topbar) ---------- */
    .ot-global-search-control { border: 1px solid var(--border-light); border-radius: var(--radius-full); background: linear-gradient(180deg, var(--bg-surface), var(--bg-surface-2)); overflow: hidden; transition: var(--transition); box-shadow: 0 1px 2px rgba(20,16,40,.03); }
    .ot-global-search-control:focus-within { border-color: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 14%, transparent); }
    .ot-global-search-control .input-group-text { background: transparent !important; border: none !important; padding-left: .95rem; }
    .ot-global-search-control .form-control { border: none !important; background: transparent !important; box-shadow: none !important; font-size: .84rem; font-weight: 500; }
    .ot-global-search-control .ot-search-shortcut { padding-right: .8rem; }
    .ot-global-search-control kbd { font-size: .66rem; font-weight: 700; padding: .12rem .4rem; border-radius: 6px; background: var(--bg-surface-2); border: 1px solid var(--border-light); color: var(--text-muted); }

    /* ---------- Profile menu (topbar) ---------- */
    .profile-btn {
        display: flex; align-items: center; gap: 0.55rem;
        border: 1px solid var(--border-light);
        background: linear-gradient(180deg, var(--bg-surface), var(--bg-surface-2));
        border-radius: var(--radius-full);
        padding: 0.28rem 0.9rem 0.28rem 0.28rem;
        cursor: pointer;
        transition: var(--transition);
        box-shadow: 0 1px 2px rgba(20,16,40,.03);
    }
    .profile-btn:hover { border-color: var(--accent); background: var(--accent-light); transform: translateY(-1px); box-shadow: 0 6px 14px -8px var(--accent); }
    .profile-avatar {
        width: 32px; height: 32px; border-radius: 50%;
        background: var(--accent-gradient);
        color: #fff; font-weight: 700; font-size: 0.8rem;
        display: flex; align-items: center; justify-content: center;
        flex-shrink: 0;
        box-shadow: 0 0 0 2px var(--bg-surface), 0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent);
    }
    .profile-btn .profile-name { font-size: 0.83rem; font-weight: 700; color: var(--text-primary); max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .profile-btn .bi-chevron-down { font-size: 0.7rem; color: var(--text-muted); }
    .profile-dropdown-menu { width: 260px; padding: 0; overflow: hidden; border-radius: 16px; }
    .profile-dropdown-header { padding: 0.9rem 1rem; display: flex; align-items: center; gap: 0.7rem; background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--bg-surface-2)), var(--bg-surface-2)); }
    .profile-dropdown-header .profile-avatar { width: 42px; height: 42px; font-size: 0.98rem; }
    .profile-dropdown-header .pdh-name { font-weight: 700; font-size: 0.88rem; color: var(--text-primary); }
    .profile-dropdown-header .pdh-email { font-size: 0.74rem; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 170px; }
    .profile-dropdown-menu .dropdown-item { padding: 0.6rem 1rem; display: flex; align-items: center; gap: 0.65rem; font-size: 0.85rem; font-weight: 500; transition: var(--transition); }
    .profile-dropdown-menu .dropdown-item i { width: 18px; text-align: center; color: var(--text-muted); }
    .profile-dropdown-menu .dropdown-item:hover { background: var(--accent-light); }
    .profile-dropdown-menu .dropdown-item:hover i { color: var(--accent); }
    .profile-dropdown-menu .dropdown-item.text-danger i { color: var(--danger); }

    /* Notification card should always render above everything, never clipped */
    #notifDropdown, .profile-dropdown-menu { z-index: 1300; }

    /* ---------- Cards ---------- */
    .ot-card {
        background: var(--bg-surface);
        border-radius: var(--radius-md);
        box-shadow: var(--shadow-card);
        border: 1px solid var(--border-light);
        transition: box-shadow var(--transition), transform var(--transition);
    }
    .ot-card:hover { box-shadow: var(--shadow-card-hover); }
    .kpi-card { padding: 1.2rem 1.35rem; display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; border-radius: var(--radius-md); }
    /* .kpi-card::after decorative circle removed — Phase 10 redesign, restraint over flourish */
    .kpi-value { font-size: 1.5rem; font-weight: 800; color: var(--text-primary); line-height: 1.2; position: relative; letter-spacing: -0.02em; }
    .kpi-label { font-size: 0.72rem; color: var(--text-secondary); margin-top: 0.3rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; position: relative; }

    /* ---------- Delivery & COGS Insights panel ---------- */
    .di-subhead { font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-secondary); margin: 0.6rem 0 0.5rem; }
    .di-mini-card { padding: 0.85rem 1rem; border-radius: var(--radius-md); position: relative; overflow: hidden; height: 100%; color: #fff; }
    .di-mini-card .di-mini-icon { font-size: 1.1rem; opacity: 0.85; }
    .di-mini-card .di-mini-value { font-size: 1.35rem; font-weight: 800; line-height: 1.15; margin-top: 0.15rem; }
    .di-mini-card .di-mini-label { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.92; margin-top: 0.2rem; }
    /* .di-mini-card::after decorative circle removed — Phase 10 redesign, restraint over flourish */
    .di-g-blue { background: linear-gradient(135deg,#3b82f6,#2563eb); }
    .di-g-slate { background: linear-gradient(135deg,#64748b,#475569); }
    .di-g-amber { background: linear-gradient(135deg,#f59e0b,#d97706); }
    .di-g-cyan { background: linear-gradient(135deg,#06b6d4,#0891b2); }
    .di-g-green { background: linear-gradient(135deg,#22c55e,#16a34a); }
    .di-g-red { background: linear-gradient(135deg,#ef4444,#dc2626); }
    .di-g-purple { background: linear-gradient(135deg,#8b5cf6,#7c3aed); }
    .di-g-pink { background: linear-gradient(135deg,#ec4899,#db2777); }
    .di-g-teal { background: linear-gradient(135deg,#14b8a6,#0d9488); }
    .di-g-indigo { background: linear-gradient(135deg,#6366f1,#4f46e5); }
    .di-summary-card { padding: 0.9rem 1.1rem; border-radius: var(--radius-md); background: var(--bg-surface-alt, var(--bg-body)); border: 1px solid var(--border-light); height:100%; }
    .di-summary-card .di-summary-value { font-size: 1.3rem; font-weight: 800; color: var(--text-primary); }
    .di-summary-card .di-summary-label { font-size: 0.7rem; color: var(--text-secondary); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
    .di-cat-card { border-radius: var(--radius-md); border: 1px solid var(--border-light); background: var(--bg-surface); padding: 0.9rem 1rem; height: 100%; position: relative; overflow: hidden; }
    .di-cat-card .di-cat-bar { position:absolute; left:0; top:0; bottom:0; width:5px; }
    .di-cat-card .di-cat-name { font-weight: 700; font-size: 0.95rem; color: var(--text-primary); padding-left: 0.5rem; }
    .di-cat-card .di-cat-stats { padding-left: 0.5rem; margin-top: 0.5rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 0.6rem; }
    .di-cat-card .di-cat-stat-label { font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-secondary); font-weight: 600; }
    .di-cat-card .di-cat-stat-value { font-size: 0.92rem; font-weight: 700; color: var(--text-primary); }
    .di-cat-card .di-margin-track { height: 6px; border-radius: 4px; background: var(--border-light); margin-top: 0.6rem; margin-left: 0.5rem; overflow: hidden; }
    .di-cat-card .di-margin-fill { height: 100%; border-radius: 4px; background: linear-gradient(90deg,#22c55e,#16a34a); }
    .di-cat-card .di-margin-fill.neg { background: linear-gradient(90deg,#ef4444,#dc2626); }

    /* ---------- Courier Hub: quick-action nav cards ---------- */
    .qnav-card {
        border: 2px solid var(--border-light); border-radius: var(--radius-md); background: var(--bg-surface);
        padding: 0.95rem 1.1rem; display: flex; align-items: center; gap: 0.8rem; cursor: pointer; height: 100%;
        transition: all var(--transition);
    }
    .qnav-card:hover { border-color: var(--accent); box-shadow: var(--shadow-card-hover); }
    .qnav-card.active { border-color: var(--accent); background: var(--accent-light); }
    .qnav-icon { width: 44px; height: 44px; border-radius: 13px; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; flex-shrink: 0; color: #fff; }
    .qnav-title { font-weight: 700; font-size: 0.9rem; color: var(--text-primary); }
    .qnav-sub { font-size: 0.72rem; color: var(--text-secondary); margin-top: 0.1rem; }
    @media (max-width: 575px) {
        .qnav-card { padding: 0.75rem 0.8rem; gap: 0.6rem; }
        .qnav-icon { width: 36px; height: 36px; font-size: 1rem; border-radius: 11px; }
        .qnav-title { font-size: 0.82rem; }
        .qnav-sub { font-size: 0.66rem; }
    }
    .qnav-card.active { border-color: transparent; background: var(--accent-gradient); box-shadow: var(--shadow-card-hover); }
    .qnav-card.active .qnav-title, .qnav-card.active .qnav-sub { color: #fff; }
    .qnav-card.active .qnav-sub { opacity: 0.85; }
    .qnav-card.active .qnav-icon { background: rgba(255,255,255,0.22) !important; }

    /* ---------- Courier Hub: page hero ---------- */
    .ch-hero {
        background: var(--accent-gradient);
        border-radius: var(--radius-lg);
        padding: 1.35rem 1.6rem;
        color: #fff;
        position: relative;
        overflow: hidden;
    }
    /* .ch-hero::before/::after decorative circles removed — Phase 10 redesign, restraint over flourish */
    .ch-hero-icon { position:relative; width:54px; height:54px; border-radius:16px; background:rgba(255,255,255,0.18); display:flex; align-items:center; justify-content:center; font-size:1.5rem; flex-shrink:0; }
    .ch-hero-eyebrow { position:relative; font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; opacity:0.85; display:flex; align-items:center; gap:0.4rem; }
    .ch-hero-title { position:relative; font-size:1.4rem; font-weight:800; margin:0.15rem 0 0.25rem; letter-spacing:-0.02em; }
    .ch-hero-sub { position:relative; font-size:0.82rem; opacity:0.9; max-width: 620px; }
    @media (max-width: 575px) { .ch-hero-sub { display:none; } }

    /* ---------- Courier Hub: sync status card ---------- */
    .ch-sync-card {
        display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
        background: var(--bg-surface); border:1px solid var(--border-light); border-radius: var(--radius-md);
        padding: 0.9rem 1.15rem; box-shadow: var(--shadow-card);
    }
    .ch-sync-icon-wrap { position:relative; width:42px; height:42px; border-radius:12px; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:1.1rem; background: var(--accent-light); color:var(--accent); }
    .ch-sync-dot { position:absolute; top:-3px; right:-3px; width:12px; height:12px; border-radius:50%; background: var(--text-muted); border:2px solid var(--bg-surface); }
    .ch-sync-dot.live { background: var(--success); animation: chPulse 1.8s infinite; }
    .ch-sync-dot.off { background: var(--text-muted); }
    .ch-sync-dot.err { background: var(--danger); }
    @keyframes chPulse { 0% { box-shadow: 0 0 0 0 rgba(23,179,131,0.45); } 70% { box-shadow: 0 0 0 8px rgba(23,179,131,0); } 100% { box-shadow: 0 0 0 0 rgba(23,179,131,0); } }
    .ch-sync-body { flex:1; min-width:220px; }
    .ch-sync-title { font-weight:700; font-size:0.9rem; color:var(--text-primary); }
    .ch-sync-actions { display:flex; gap:0.5rem; flex-wrap:wrap; }
    .ch-btn-soft { background: var(--accent-light); color: var(--accent-dark); border:1px solid transparent; font-weight:600; }
    .ch-btn-soft:hover { background: var(--accent); color:#fff; }

    /* ---------- Courier Hub: section headers ---------- */
    .ch-section-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0.6rem; margin-bottom:0.9rem; }
    .ch-section-title { display:flex; align-items:center; gap:0.6rem; font-weight:800; font-size:1rem; color:var(--text-primary); }
    .ch-section-title .ch-section-icon { width:32px; height:32px; border-radius:10px; background:var(--accent-light); color:var(--accent); display:flex; align-items:center; justify-content:center; font-size:0.92rem; flex-shrink:0; }
    .ch-section-sub { font-size:0.75rem; color:var(--text-secondary); font-weight:500; margin-top:0.15rem; }

    /* ---------- Courier Hub: pill toggle buttons (Reconciliation/Financial/Category Details/See All) ---------- */
    .ch-toggle-btn { border:1px solid var(--border-medium); background:var(--bg-surface); color:var(--text-primary); font-weight:600; font-size:0.8rem; border-radius: var(--radius-full); padding:0.42rem 0.95rem; display:inline-flex; align-items:center; gap:0.45rem; transition: all var(--transition); }
    .ch-toggle-btn:hover { border-color: var(--accent); color: var(--accent-dark); }
    .ch-toggle-btn[aria-expanded="true"] { background: var(--accent-light); border-color: var(--accent); color: var(--accent-dark); }
    .ch-toggle-btn .bi-chevron-down { transition: transform var(--transition); font-size:0.7rem; }
    .ch-toggle-btn[aria-expanded="true"] .bi-chevron-down { transform: rotate(180deg); }

    /* ---------- Courier Hub: filter toolbar ---------- */
    .ch-filter-card { background: var(--bg-surface); border:1px solid var(--border-light); border-radius: var(--radius-md); box-shadow: var(--shadow-card); padding:1.1rem 1.25rem; }
    .ch-filter-label { font-size:0.66rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; color:var(--text-muted); margin-bottom:0.3rem; display:block; }
    .ch-filter-group { margin-bottom: 0.4rem; }
    .ch-search-wrap { position:relative; }
    .ch-search-wrap i { position:absolute; left:0.75rem; top:50%; transform:translateY(-50%); color:var(--text-muted); font-size:0.85rem; pointer-events:none; }
    .ch-search-wrap input { padding-left:2.1rem; }

    /* ---------- Shipment pill cards (reference-style) ---------- */
    .ship-card-list { display: flex; flex-direction: column; gap: 0.65rem; }
    .ship-pill-card {
        display: flex; align-items: center; gap: 0.9rem; background: var(--bg-surface-2, var(--bg-body));
        border-radius: 18px; padding: 0.9rem 1.1rem; cursor: pointer; transition: all var(--transition);
        border: 1px solid transparent;
    }
    .ship-pill-card:hover { border-color: var(--border-medium); box-shadow: var(--shadow-card); }
    .ship-pill-icon { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; flex-shrink: 0; }
    .ship-pill-body { flex: 1; min-width: 0; }
    .ship-pill-title { font-weight: 700; font-size: 0.98rem; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .ship-pill-sub { font-size: 0.8rem; color: var(--text-secondary); margin-top: 0.1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .ship-pill-status { padding: 0.4rem 0.9rem; border-radius: var(--radius-full); font-size: 0.78rem; font-weight: 700; white-space: nowrap; flex-shrink: 0; }
    .ovr-pill { display: inline-flex; align-items: center; gap: 0.28rem; padding: 0.18rem 0.55rem; border-radius: var(--radius-full); font-size: 0.68rem; font-weight: 700; white-space: nowrap; flex-shrink: 0; background: #fff3e0; color: #b45309; border: 1px solid #fcd9a8; }
    .ovr-pill i { font-size: 0.7rem; }
    .ship-trk-chip { display: inline-flex; align-items: center; gap: 0.3rem; background: var(--bg-surface); border: 1px solid var(--border-light); border-radius: var(--radius-sm); padding: 0.1rem 0.5rem; font-size: 0.72rem; font-weight: 600; color: var(--text-secondary); }
    .shf-prod-row { display: flex; align-items: center; gap: 0.7rem; padding: 0.5rem 0; border-bottom: 1px solid var(--border-light); }
    .shf-prod-row:last-child { border-bottom: none; }
    .shf-prod-name { flex: 1 1 40%; min-width: 0; font-size: 0.84rem; font-weight: 600; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .shf-prod-bar-track { flex: 1 1 30%; height: 8px; background: var(--border-light); border-radius: 4px; overflow: hidden; }
    .shf-prod-bar-fill { height: 100%; border-radius: 4px; }
    .shf-prod-qty { width: 60px; text-align: right; font-size: 0.78rem; font-weight: 700; color: var(--text-primary); flex-shrink: 0; }
    .ship-st-booked { background:#eef2ff; color:#4f46e5; } .ship-st-picked { background:#e0f2fe; color:#0369a1; }
    .ship-st-in_transit { background:#ffedd5; color:#c2410c; } .ship-st-out_for_delivery { background:#cffafe; color:#0e7490; }
    .ship-st-delivered { background:#dcfce7; color:#16a34a; } .ship-st-returned { background:#fee2e2; color:#b91c1c; }
    .ship-st-cancelled { background:#f1f5f9; color:#64748b; }
    .ship-icon-booked { background:#eef2ff; color:#4f46e5; } .ship-icon-picked { background:#e0f2fe; color:#0369a1; }
    .ship-icon-in_transit { background:#ffedd5; color:#c2410c; } .ship-icon-out_for_delivery { background:#cffafe; color:#0e7490; }
    .ship-icon-delivered { background:#dcfce7; color:#16a34a; } .ship-icon-returned { background:#fee2e2; color:#b91c1c; }
    .ship-icon-cancelled { background:#f1f5f9; color:#64748b; }

    /* ---------- Tracking Details card (reference-style modal) ---------- */
    .trk-head { display: flex; align-items: center; gap: 0.9rem; margin-bottom: 1.1rem; }
    .trk-icon { width: 54px; height: 54px; border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; background:#fff1e6; color:#ea7c1f; flex-shrink: 0; }
    .trk-title { font-weight: 800; font-size: 1.05rem; color: var(--text-primary); }
    .trk-id { font-size: 0.8rem; color: var(--text-secondary); display: flex; align-items: center; gap: 0.4rem; margin-top: 0.15rem; }
    .trk-copy-btn { border: none; background: none; color: var(--accent); cursor: pointer; padding: 0; }
    .trk-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem 1rem; background: var(--bg-surface-2, var(--bg-body)); border-radius: var(--radius-md); padding: 0.9rem 1rem; margin-bottom: 1rem; }
    .trk-info-label { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-secondary); font-weight: 600; }
    .trk-info-value { font-size: 0.92rem; font-weight: 700; color: var(--text-primary); margin-top: 0.15rem; }
    .trk-status-row { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1.2rem; }
    .trk-timeline { list-style: none; padding: 0; margin: 0; }
    .trk-timeline li { position: relative; padding-left: 1.7rem; padding-bottom: 1.35rem; }
    .trk-timeline li:last-child { padding-bottom: 0; }
    .trk-timeline li::before { content: ''; position: absolute; left: 4px; top: 3px; width: 12px; height: 12px; border-radius: 50%; background: var(--border-medium); z-index: 1; }
    .trk-timeline li::after { content: ''; position: absolute; left: 9px; top: 15px; bottom: 0; width: 2px; background: var(--border-light); }
    .trk-timeline li:last-child::after { display: none; }
    .trk-timeline li.done::before { background: #7c3aed; }
    .trk-timeline li.done::after { background: #7c3aed; }
    .trk-timeline li.current::before { background: #7c3aed; box-shadow: 0 0 0 4px #ede9fe; }
    .trk-timeline .trk-step-title { font-weight: 700; font-size: 0.9rem; color: var(--text-primary); }
    .trk-timeline li:not(.done):not(.current) .trk-step-title { color: var(--text-secondary); font-weight: 600; }
    .trk-timeline .trk-step-sub { font-size: 0.78rem; color: var(--text-secondary); margin-top: 0.1rem; }

    /* ---------- Sold Articles cards ---------- */
    .sa-mini { padding: 0.85rem 1rem; border-radius: var(--radius-md); background: var(--bg-surface-2, var(--bg-body)); border: 1px solid var(--border-light); height: 100%; display: flex; align-items: center; gap: 0.7rem; }
    .sa-mini .sa-mini-value { font-size: 1.25rem; font-weight: 800; color: var(--text-primary); line-height: 1.15; }
    .sa-mini .sa-mini-label { font-size: 0.68rem; color: var(--text-secondary); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
    .icon-tone-indigo  { background: linear-gradient(135deg,#948AF8,#6552E8); }
    .icon-tone-sky     { background: linear-gradient(135deg,#7DD8FF,#3AAFEA); }
    .icon-tone-peach   { background: linear-gradient(135deg,#FFB79B,#F0783F); }
    .icon-tone-success { background: linear-gradient(135deg,#3FE0AE,#17B383); }
    .icon-tone-warn    { background: linear-gradient(135deg,#FFC27E,#F0973A); }
    .icon-tone-danger  { background: linear-gradient(135deg,#FF8CA8,#F0587D); }
    .icon-tone-slate   { background: linear-gradient(135deg,#B8B2D9,#8B84B8); }
    @media (max-width: 575px) {
        .sa-mini { padding: 0.7rem 0.8rem; gap: 0.55rem; }
        .sa-mini .sa-mini-value { font-size: 1.05rem; }
    }
    .sa-chip { border: 1px solid var(--border-light); background: var(--bg-surface); border-radius: var(--radius-full); padding: 0.35rem 0.85rem; font-size: 0.78rem; font-weight: 600; cursor: pointer; color: var(--text-secondary); white-space: nowrap; }
    .sa-chip.active { background: var(--accent); border-color: var(--accent); color: #fff; }
    .sa-art-card { background: var(--bg-surface); border: 1px solid var(--border-light); border-radius: var(--radius-md); padding: 0.9rem; height: 100%; }
    .sa-art-top { display: flex; align-items: center; gap: 0.7rem; }
    .sa-art-name { font-weight: 700; font-size: 0.88rem; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .sa-art-cat { font-size: 0.72rem; color: var(--text-secondary); }
    .sa-art-stats { display: flex; gap: 0.5rem; margin-top: 0.7rem; }
    .sa-art-stat { flex: 1; background: var(--bg-surface-2, var(--bg-body)); border-radius: var(--radius-sm); padding: 0.45rem 0.6rem; text-align: center; }
    .sa-art-stat .v { font-weight: 700; font-size: 0.86rem; color: var(--text-primary); }
    .sa-art-stat .l { font-size: 0.64rem; color: var(--text-secondary); font-weight: 600; }

    /* ---------- Category Details grid (exact per-category numbers) ---------- */
    .cat-detail-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0.9rem; }
    .cat-detail-card {
        background: var(--bg-surface); border: 1px solid var(--border-light); border-radius: var(--radius-md);
        padding: 1rem 1.1rem; cursor: pointer; transition: all var(--transition);
    }
    .cat-detail-card:hover { border-color: var(--accent); box-shadow: var(--shadow-card-hover); }
    .cat-detail-card.active { border-color: var(--accent); background: var(--accent-light); }
    .cat-detail-head { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.55rem; }
    .cat-detail-name { font-weight: 800; font-size: 0.98rem; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .cat-detail-count { font-size: 0.68rem; font-weight: 700; color: var(--text-secondary); background: var(--bg-surface-2, var(--bg-body)); border-radius: var(--radius-full); padding: 0.15rem 0.55rem; flex-shrink: 0; white-space: nowrap; }
    .cat-detail-bar { height: 6px; border-radius: 4px; background: var(--warning-light); overflow: hidden; margin-bottom: 0.85rem; }
    .cat-detail-bar-fill { height: 100%; border-radius: 4px; background: linear-gradient(90deg,#17B383,#0E9268); }
    .cat-detail-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem 0.5rem; margin-bottom: 0.85rem; }
    .cat-detail-stat .v { font-weight: 800; font-size: 1rem; color: var(--text-primary); line-height: 1.15; }
    .cat-detail-stat .l { font-size: 0.68rem; color: var(--text-secondary); font-weight: 600; display: flex; align-items: center; gap: 0.3rem; margin-top: 0.1rem; }
    .cat-detail-money { display: flex; justify-content: space-between; gap: 0.5rem; border-top: 1px dashed var(--border-light); padding-top: 0.7rem; }
    .cat-detail-money > div { display: flex; flex-direction: column; align-items: center; flex: 1; text-align: center; }
    .cat-detail-money .l { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-secondary); font-weight: 700; }
    .cat-detail-money .v { font-size: 0.82rem; font-weight: 700; color: var(--text-primary); margin-top: 0.1rem; }
    @media (max-width: 575px) {
        .cat-detail-grid { grid-template-columns: 1fr; }
    }

    /* ---------- Premium metric cards (icon badge + trend pill) ---------- */
    .metric-icon {
        width: 42px; height: 42px; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center;
        font-size: 1.15rem; flex-shrink: 0; position: relative; z-index: 1;
    }
    .trend-pill {
        display: inline-flex; align-items: center; gap: 0.2rem; font-size: 0.68rem; font-weight: 700;
        padding: 0.2rem 0.5rem; border-radius: var(--radius-full); line-height: 1.4; white-space: nowrap;
    }
    .trend-pill.up { background: var(--success-light); color: var(--success-text); }
    .trend-pill.down { background: var(--danger-light); color: var(--danger-text); }
    .trend-pill.flat { background: var(--bg-surface-2); color: var(--text-muted); }

    .metric-card-pro {
        background: var(--bg-surface); border: 1px solid var(--border-light); border-radius: var(--radius-lg);
        padding: 1.25rem 1.3rem; box-shadow: var(--shadow-card); transition: box-shadow var(--transition), transform var(--transition);
        position: relative; overflow: hidden; height: 100%;
    }
    .metric-card-pro:hover { box-shadow: var(--shadow-card-hover); }
    .metric-card-pro .metric-top-row { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 0.9rem; }
    .metric-card-pro .metric-value { font-size: 1.7rem; font-weight: 800; letter-spacing: -0.02em; color: var(--text-primary); line-height: 1.15; }
    .metric-card-pro .metric-label { font-size: 0.78rem; color: var(--text-secondary); font-weight: 600; margin-top: 0.3rem; }

    .kpi-group-title {
        font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em;
        color: var(--text-muted); margin: 1.6rem 0 0.7rem; display: flex; align-items: center; gap: 0.5rem;
        scroll-margin-top: 132px;
    }
    .kpi-group-title i { color: var(--accent); font-size: 0.85rem; }
    .kpi-group-title:first-child { margin-top: 0; }

    /* ---------- Reports & Audit: quick section nav + sticky filter polish ---------- */
    .rep-quicknav {
        display: flex; gap: 0.4rem; overflow-x: auto; padding-bottom: 2px; margin-bottom: 0.9rem;
        scrollbar-width: thin;
    }
    .rep-quicknav::-webkit-scrollbar { height: 4px; }
    .rep-quicknav::-webkit-scrollbar-thumb { background: var(--border-medium); border-radius: 4px; }
    .rep-quicknav a {
        flex-shrink: 0; font-size: 0.76rem; font-weight: 600; color: var(--text-secondary);
        background: var(--bg-surface-2); border: 1px solid var(--border-light); border-radius: var(--radius-full);
        padding: 0.36rem 0.85rem; text-decoration: none; transition: var(--transition);
        white-space: nowrap;
    }
    .rep-quicknav a:hover { color: var(--accent); border-color: var(--accent); background: var(--accent-light); }
    .rep-quicknav a.active { color: #fff; background: var(--accent-gradient); border-color: transparent; }
    #repFilterBar { position: sticky; top: 0; z-index: 20; background: var(--glass-bg); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: var(--shadow-card); }
    #repFilterBar.is-stuck { box-shadow: 0 12px 24px rgba(26,21,51,0.10), var(--shadow-card); }
    .rep-filter-count {
        display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px;
        padding: 0 5px; border-radius: 999px; background: var(--accent); color: #fff; font-size: 0.66rem;
        font-weight: 700; margin-left: 0.35rem; vertical-align: middle;
    }

    /* ---------- Unified Filter Bar (Reports & Audit) ---------- */
    /* Layout itself is plain Bootstrap grid/input-group markup (see
       index.php) so it can never collapse into a broken stack even if this
       stylesheet fails to load — everything below is cosmetic polish only,
       layered on top of a layout that already works with zero custom CSS. */
    .rep-filter-label {
        font-size: 0.68rem !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: 0.04em;
        display: flex; align-items: center; gap: 0.3rem;
    }
    #repCustomDateSlot.d-none { display: none !important; }
    .rep-more-chevron { transition: transform var(--transition); }
    .rep-more-chevron.rotated { transform: rotate(180deg); }
    .input-group-text { border-color: var(--border-light); }

    /* ---------- Skeleton loaders — instant first paint, per-section ---------- */
    .rep-skeleton-kpis, .rep-skeleton-tables {
        display: flex; flex-wrap: wrap; gap: 1rem; width: 100%;
    }
    .rep-skel-card { pointer-events: none; }
    .rep-skel-line {
        height: 0.85rem; border-radius: 6px; margin-bottom: 0.5rem;
        background: linear-gradient(90deg, var(--bg-surface-2) 25%, var(--border-light) 37%, var(--bg-surface-2) 63%);
        background-size: 400% 100%; animation: repShimmer 1.4s ease infinite;
    }
    .rep-skel-line:last-child { margin-bottom: 0; }
    .rep-skel-line-lg { height: 1.5rem; width: 55%; }
    .rep-skel-line-sm { width: 75%; }
    @keyframes repShimmer { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
    @media (prefers-reduced-motion: reduce) { .rep-skel-line { animation: none; } }

    /* ---------- Collection & Category taxonomy tabs, Tax total pill ---------- */
    .rep-taxonomy-tabs { display: inline-flex; gap: 0.3rem; background: var(--bg-surface-2); padding: 0.25rem; border-radius: var(--radius-full); }
    .rep-taxonomy-tab {
        border: none; background: none; font-size: 0.76rem; font-weight: 600; color: var(--text-secondary);
        padding: 0.35rem 0.9rem; border-radius: var(--radius-full); transition: var(--transition);
    }
    .rep-taxonomy-tab.active { background: var(--accent-gradient); color: #fff; }
    .rep-taxonomy-tab:not(.active):hover { color: var(--accent); }
    .rep-tax-total { font-size: 0.85rem; background: var(--accent-light); color: var(--accent-dark); padding: 0.35rem 0.85rem; border-radius: var(--radius-full); }

    /* ---------- Audit Trail ---------- */
    .audit-module-badge {
        font-size: 0.68rem; font-weight: 700; text-transform: capitalize; padding: 0.24rem 0.55rem;
        border-radius: var(--radius-full); background: var(--accent-light); color: var(--accent-dark); display: inline-block;
    }
    .audit-row { cursor: pointer; }
    .audit-row:hover { background: var(--bg-surface-2); }
    .audit-detail-row td { background: var(--bg-surface-2); }
    .audit-detail-json {
        font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.74rem;
        white-space: pre-wrap; word-break: break-word; margin: 0; color: var(--text-secondary);
        max-height: 260px; overflow-y: auto;
    }
    .audit-user-cell { display: flex; align-items: center; gap: 0.5rem; }
    .audit-user-avatar {
        width: 26px; height: 26px; border-radius: 50%; background: var(--accent-gradient); color: #fff;
        font-size: 0.7rem; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
    }

    /* ---------- Courier Hub: grouped, color-coded overview cards ---------- */
    .ckpi-group-title {
        font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em;
        color: var(--text-muted); margin: 0.2rem 0 0.65rem; display: flex; align-items: center; gap: 0.5rem;
    }
    .ckpi-group-title i { color: var(--accent); font-size: 0.85rem; }
    .ckpi-card {
        padding: 0.9rem 1rem; display: flex; align-items: center; gap: 0.8rem; cursor: pointer;
        border-left: 3px solid transparent;
    }
    .ckpi-icon {
        width: 42px; height: 42px; border-radius: 13px; display: flex; align-items: center; justify-content: center;
        font-size: 1.1rem; flex-shrink: 0; color: #fff;
    }
    .ckpi-body { min-width: 0; flex: 1; }
    .ckpi-value { font-size: 1.35rem; font-weight: 800; color: var(--text-primary); line-height: 1.15; letter-spacing: -0.02em; }
    .ckpi-label { font-size: 0.72rem; color: var(--text-secondary); font-weight: 600; margin-top: 0.15rem; line-height: 1.2; }
    .ckpi-indigo  { border-left-color: var(--accent); }       .ckpi-indigo  .ckpi-icon { background: linear-gradient(135deg,#948AF8,#6552E8); }
    .ckpi-sky     { border-left-color: var(--sky); }          .ckpi-sky     .ckpi-icon { background: linear-gradient(135deg,#7DD8FF,#3AAFEA); }
    .ckpi-peach   { border-left-color: var(--peach); }        .ckpi-peach   .ckpi-icon { background: linear-gradient(135deg,#FFB79B,#F0783F); }
    .ckpi-success { border-left-color: var(--success); }      .ckpi-success .ckpi-icon { background: linear-gradient(135deg,#3FE0AE,#17B383); }
    .ckpi-warn    { border-left-color: var(--warning); }      .ckpi-warn    .ckpi-icon { background: linear-gradient(135deg,#FFC27E,#F0973A); }
    .ckpi-danger  { border-left-color: var(--danger); }       .ckpi-danger  .ckpi-icon { background: linear-gradient(135deg,#FF8CA8,#F0587D); }
    .ckpi-slate   { border-left-color: var(--text-muted); }   .ckpi-slate   .ckpi-icon { background: linear-gradient(135deg,#B8B2D9,#8B84B8); }
    .ckpi-warn .ckpi-value { color: var(--warning-text); }
    .ckpi-danger .ckpi-value { color: var(--danger-text); }
    .ckpi-success .ckpi-value { color: var(--success-text); }
    @media (max-width: 575px) {
        .ckpi-card { padding: 0.75rem 0.8rem; gap: 0.6rem; }
        .ckpi-icon { width: 36px; height: 36px; font-size: 0.95rem; border-radius: 11px; }
        .ckpi-value { font-size: 1.15rem; }
        .ckpi-label { font-size: 0.68rem; }
    }

    /* =====================================================================
       COURIER HUB — ENTERPRISE REDESIGN (chx- prefix, additive/isolated —
       does not remove or override the existing ch- / ckpi- classes, which
       remain in use by the Shipments/Shopify/Sold Articles panels below).
       ===================================================================== */
    .chx-filterbar {
        position: sticky; top: 0.75rem; z-index: 850;
        background: var(--glass-bg); backdrop-filter: blur(14px) saturate(160%); -webkit-backdrop-filter: blur(14px) saturate(160%);
        border: 1px solid var(--border-light); border-radius: var(--radius-md); box-shadow: var(--shadow-card);
        padding: 0.85rem 1.1rem; margin-bottom: 1.25rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem;
    }
    .chx-filterbar .chx-fb-group { display: flex; align-items: center; gap: 0.4rem; }
    .chx-filterbar select.form-select, .chx-filterbar input.form-control { border-radius: var(--radius-full); font-size: 0.82rem; padding: 0.4rem 0.9rem; }
    .chx-filterbar .chx-fb-spacer { flex: 1 1 auto; }
    .chx-filterbar .chx-fb-actions { display: flex; gap: 0.4rem; }
    .chx-icon-btn-sm {
        width: 36px; height: 36px; border-radius: var(--radius-full);
        border: 1px solid var(--border-light); background: var(--bg-surface); color: var(--text-secondary);
        display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: var(--transition);
    }
    .chx-icon-btn-sm:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-light); }
    @media (max-width: 767px) {
        .chx-filterbar { position: static; overflow-x: visible; flex-wrap: wrap; }
        .chx-filterbar .chx-fb-group:first-child { flex: 1 1 100%; }
        .chx-filterbar #chOvPresetSelect { flex: 1 1 100%; width: 100%; }
        .chx-filterbar .chx-fb-search-group { flex: 1 1 auto; min-width: 0; order: 2; }
        .chx-filterbar .chx-fb-spacer { display: none; }
        .chx-filterbar .chx-fb-actions { order: 3; flex-shrink: 0; }
        .chx-filterbar .ch-search-wrap { min-width: 0 !important; width: 100%; }
    }
    @media (max-width: 575px) {
        .chx-hero-grid { grid-template-columns: repeat(2, 1fr); gap: 0.6rem; }
        .chx-hero-card { padding: 0.9rem 1rem; min-height: 118px; }
        .chx-hero-value { font-size: 1.25rem; }
        .chx-hero-icon { width: 34px; height: 34px; font-size: 0.9rem; }
    }

    .chx-hero-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
    .chx-hero-card {
        background: var(--bg-surface); border: 1px solid var(--border-light); border-radius: var(--radius-lg);
        padding: 1.35rem 1.4rem; box-shadow: var(--shadow-card); transition: box-shadow var(--transition), transform var(--transition);
        position: relative; overflow: hidden; min-height: 148px; display: flex; flex-direction: column; justify-content: space-between;
    }
    .chx-hero-card:hover { box-shadow: var(--shadow-card-hover); }
    .chx-hero-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.5rem; }
    .chx-hero-icon { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.05rem; color: #fff; flex-shrink: 0; }
    .chx-hero-value { font-size: 1.65rem; font-weight: 800; letter-spacing: -0.02em; color: var(--text-primary); line-height: 1.1; margin-top: 0.7rem; }
    .chx-hero-label { font-size: 0.76rem; color: var(--text-secondary); font-weight: 600; margin-top: 0.2rem; }

    .chx-health-strip { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-bottom: 1.5rem; }
    .chx-health-pill {
        display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 0.9rem 0.5rem 0.6rem;
        border-radius: var(--radius-full); background: var(--bg-surface); border: 1px solid var(--border-light);
        box-shadow: var(--shadow-xs); cursor: default; transition: var(--transition);
    }
    .chx-health-pill:hover { border-color: var(--border-medium); }
    .chx-health-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
    .chx-health-dot.ok { background: var(--success); box-shadow: 0 0 0 3px var(--success-light); }
    .chx-health-dot.warn { background: var(--warning); box-shadow: 0 0 0 3px var(--warning-light); }
    .chx-health-dot.err { background: var(--danger); box-shadow: 0 0 0 3px var(--danger-light); }
    .chx-health-dot.off { background: var(--text-muted); box-shadow: 0 0 0 3px var(--bg-surface-2); }
    .chx-health-label { font-size: 0.78rem; font-weight: 600; color: var(--text-secondary); }
    .chx-health-value { font-size: 0.78rem; font-weight: 700; color: var(--text-primary); }

    /* ===================== COMPACT INFO BUTTON (replaces walls of guide text) ===================== */
    .ot-info-btn { width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--border-light); background: var(--bg-surface-2); color: var(--text-secondary); display: inline-flex; align-items: center; justify-content: center; font-size: 0.72rem; flex-shrink: 0; cursor: pointer; transition: var(--transition); padding: 0; }
    .ot-info-btn:hover { background: var(--accent-light); color: var(--accent); border-color: var(--accent); }
    .ot-card-title-row { display: flex; align-items: center; gap: 0.4rem; }
    .ot-guide-modal .modal-body ol { padding-left: 1.1rem; }
    .ot-guide-modal .step-badge { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--accent-light); color: var(--accent); font-size: 0.68rem; font-weight: 800; margin-right: 0.4rem; }

    /* ===================== GENERIC COURIER PARTNER CARDS (provider-agnostic) ===================== */
    .partner-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
    .partner-card { background: var(--bg-surface); border: 1px solid var(--border-light); border-radius: var(--radius-lg); padding: 1.1rem 1.2rem; box-shadow: var(--shadow-card); display: flex; flex-direction: column; gap: 0.7rem; transition: var(--transition); }
    .partner-card.is-connected { border-color: rgba(34,197,94,0.35); }
    .partner-card.not-connected { align-items: flex-start; justify-content: center; min-height: 150px; }
    .partner-card-head { display: flex; align-items: center; gap: 0.7rem; width: 100%; }
    .partner-card-icon { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.05rem; color: #fff; flex-shrink: 0; }
    .partner-card-name { font-weight: 800; font-size: 0.98rem; color: var(--text-primary); display: flex; align-items: center; gap: 0.4rem; }
    .partner-card-desc { font-size: 0.75rem; color: var(--text-secondary); margin-top: 0.1rem; }
    .partner-status-badge { font-size: 0.66rem; font-weight: 700; padding: 0.2rem 0.55rem; border-radius: 999px; text-transform: uppercase; letter-spacing: 0.03em; white-space: nowrap; }
    .partner-status-badge.connected { background: rgba(34,197,94,0.14); color: #15803d; }
    .partner-status-badge.connection_error { background: rgba(239,68,68,0.14); color: #dc2626; }
    .partner-status-badge.not_connected { background: var(--bg-surface-2); color: var(--text-muted); }
    .partner-card-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; }
    .partner-card-stat { background: var(--bg-surface-2); border-radius: var(--radius-md); padding: 0.5rem 0.4rem; text-align: center; }
    .partner-card-stat .pcs-val { font-weight: 800; font-size: 0.95rem; color: var(--text-primary); }
    .partner-card-stat .pcs-label { font-size: 0.62rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.03em; margin-top: 0.1rem; }
    .partner-card-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: auto; width: 100%; }
    .partner-card-caps { display: none; }

    /* Settings: same partner card pattern, plus an inline credentials form that expands under each card */
    .settings-partner-card { background: var(--bg-surface); border: 1px solid var(--border-light); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 1rem; }
    .settings-partner-head { display: flex; align-items: center; gap: 0.7rem; padding: 1rem 1.1rem; cursor: pointer; }
    .settings-partner-head .partner-card-icon { width: 38px; height: 38px; }
    .settings-partner-head-meta { flex: 1; min-width: 0; }
    .settings-partner-body { padding: 0 1.1rem 1.1rem; border-top: 1px solid var(--border-light); }

    /* ===================== GENERIC "TOTAL / SELECTED" COUNT BAR ===================== */
    .ot-count-bar { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; font-size: 0.78rem; }
    .ot-count-chip { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.28rem 0.65rem; border-radius: 999px; background: var(--bg-surface-2); color: var(--text-secondary); font-weight: 600; }
    .ot-count-chip strong { color: var(--text-primary); font-weight: 800; }
    .ot-count-chip.selected { background: var(--accent-light); color: var(--accent); }
    .ot-count-chip.selected strong { color: var(--accent); }

    .chx-section { background: var(--bg-surface); border: 1px solid var(--border-light); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); padding: 1.4rem 1.5rem; margin-bottom: 1.5rem; }
    .chx-section-head { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 1.1rem; flex-wrap: wrap; }
    .chx-section-title { display: flex; align-items: center; gap: 0.65rem; font-weight: 800; font-size: 1.02rem; color: var(--text-primary); }
    .chx-section-title .chx-si { width: 34px; height: 34px; border-radius: 11px; background: var(--accent-light); color: var(--accent); display: flex; align-items: center; justify-content: center; font-size: 0.95rem; flex-shrink: 0; }
    .chx-section-sub { font-size: 0.78rem; color: var(--text-secondary); font-weight: 500; margin-top: 0.15rem; }

    .chx-recon-split { display: grid; grid-template-columns: 1fr 1fr; gap: 1.75rem; }
    @media (max-width: 900px) { .chx-recon-split { grid-template-columns: 1fr; } }
    .chx-recon-col-title { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); margin-bottom: 0.75rem; display: flex; align-items: center; gap: 0.4rem; }
    .chx-recon-list { display: flex; flex-direction: column; gap: 0.6rem; max-height: 420px; overflow-y: auto; }
    .chx-recon-row {
        display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;
        padding: 0.85rem 1rem; border-radius: var(--radius-md); background: var(--bg-surface-2); cursor: pointer;
        border: 1px solid transparent; transition: var(--transition);
    }
    .chx-recon-row:hover { border-color: var(--border-medium); transform: translateX(2px); }
    .chx-recon-row.is-ok { cursor: default; opacity: 0.85; }
    .chx-recon-left { display: flex; align-items: center; gap: 0.7rem; min-width: 0; }
    .chx-recon-icon { width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 0.9rem; flex-shrink: 0; }
    .chx-recon-name { font-size: 0.84rem; font-weight: 600; color: var(--text-primary); }
    .chx-recon-count { font-size: 1.02rem; font-weight: 800; flex-shrink: 0; }

    .chx-fin-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.9rem; }
    .chx-fin-card { border-radius: var(--radius-md); border: 1px solid var(--border-light); background: var(--bg-surface-2); padding: 1rem 1.1rem; display: flex; align-items: flex-start; gap: 0.75rem; }
    .chx-fin-icon { width: 38px; height: 38px; border-radius: 11px; display: flex; align-items: center; justify-content: center; font-size: 1rem; color: #fff; flex-shrink: 0; }
    .chx-fin-value { font-size: 1.15rem; font-weight: 800; color: var(--text-primary); line-height: 1.15; }
    .chx-fin-label { font-size: 0.7rem; color: var(--text-secondary); font-weight: 600; margin-top: 0.15rem; }

    .chx-sync-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0.6rem; margin-top: 0.9rem; }
    .chx-sync-item { border: 1px solid var(--border-light); border-radius: var(--radius-md); padding: 0.75rem 0.85rem; background: var(--bg-surface-2); }
    .chx-sync-item .chx-si-top { display: flex; align-items: center; justify-content: space-between; gap: 0.4rem; }
    .chx-sync-item .chx-si-name { font-size: 0.78rem; font-weight: 700; color: var(--text-primary); }
    .chx-sync-badge { font-size: 0.64rem; font-weight: 700; padding: 0.18rem 0.5rem; border-radius: var(--radius-full); text-transform: uppercase; letter-spacing: 0.03em; }
    .chx-sync-badge.ok { background: var(--success-light); color: var(--success-text); }
    .chx-sync-badge.warn { background: var(--warning-light); color: var(--warning-text); }
    .chx-sync-badge.err { background: var(--danger-light); color: var(--danger-text); }
    .chx-sync-badge.muted { background: var(--bg-surface); color: var(--text-muted); border: 1px solid var(--border-light); }
    .chx-sync-meta { font-size: 0.72rem; color: var(--text-secondary); }
    .chx-sync-actions-row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }

    .chx-quick-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0.6rem; }
    .chx-qa-btn {
        display: flex; flex-direction: column; align-items: center; gap: 0.45rem; text-align: center;
        padding: 0.9rem 0.6rem; border-radius: var(--radius-md); border: 1px solid var(--border-light);
        background: var(--bg-surface); cursor: pointer; transition: var(--transition); color: var(--text-primary);
    }
    .chx-qa-btn:hover { border-color: var(--accent); background: var(--accent-light); box-shadow: var(--shadow-card); }
    .chx-qa-icon { width: 38px; height: 38px; border-radius: 11px; background: var(--accent-light); color: var(--accent); display: flex; align-items: center; justify-content: center; font-size: 1.05rem; }
    .chx-qa-label { font-size: 0.76rem; font-weight: 600; }

    .chx-activity-list { display: flex; flex-direction: column; }
    .chx-activity-row { display: flex; gap: 0.85rem; padding: 0.75rem 0; position: relative; }
    .chx-activity-row::before { content: ''; position: absolute; left: 16px; top: 40px; bottom: -4px; width: 2px; background: var(--border-light); }
    .chx-activity-row:last-child::before { display: none; }
    .chx-activity-dot { width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 0.85rem; color: #fff; z-index: 1; }
    .chx-activity-body { flex: 1; min-width: 0; padding-top: 0.15rem; }
    .chx-activity-title { font-size: 0.85rem; font-weight: 600; color: var(--text-primary); }
    .chx-activity-sub { font-size: 0.75rem; color: var(--text-secondary); margin-top: 0.1rem; }
    .chx-activity-time { font-size: 0.68rem; color: var(--text-muted); white-space: nowrap; flex-shrink: 0; padding-top: 0.2rem; }

    .chx-tone-indigo { background: linear-gradient(135deg,#948AF8,#6552E8); }
    .chx-tone-sky    { background: linear-gradient(135deg,#7DD8FF,#3AAFEA); }
    .chx-tone-green  { background: linear-gradient(135deg,#3FE0AE,#17B383); }
    .chx-tone-red    { background: linear-gradient(135deg,#FF8CA8,#F0587D); }
    .chx-tone-orange { background: linear-gradient(135deg,#FFC27E,#F0973A); }
    .chx-tone-purple { background: linear-gradient(135deg,#C7B8FF,#8B5CF6); }
    .chx-tone-slate  { background: linear-gradient(135deg,#B8B2D9,#8B84B8); }

    /* ---------- AI insight card (dashboard) ---------- */
    .insight-card {
        background: linear-gradient(135deg, #6552E8 0%, #8B7FF5 55%, #A79CFF 100%);
        border-radius: var(--radius-lg); padding: 1.4rem 1.5rem; color: #fff; position: relative; overflow: hidden;
        box-shadow: 0 20px 40px rgba(101, 82, 232, 0.28);
    }
    .insight-card::before {
        content: ''; position: absolute; top: -60px; right: -40px; width: 220px; height: 220px; border-radius: 50%;
        background: rgba(255,255,255,0.10);
    }
    .insight-card::after {
        content: ''; position: absolute; bottom: -70px; left: -30px; width: 180px; height: 180px; border-radius: 50%;
        background: rgba(255,255,255,0.07);
    }
    .insight-card .insight-eyebrow { font-size: 0.72rem; font-weight: 600; color: rgba(255,255,255,0.78); text-transform: uppercase; letter-spacing: 0.06em; }
    .insight-card h5 { color: #fff; font-weight: 800; margin: 0.15rem 0 1rem; position: relative; }
    .insight-chip {
        background: rgba(255,255,255,0.16); border: 1px solid rgba(255,255,255,0.22); color: #fff;
        border-radius: var(--radius-full); padding: 0.45rem 0.9rem; font-size: 0.8rem; font-weight: 600;
        cursor: pointer; transition: var(--transition); position: relative; backdrop-filter: blur(6px);
    }
    .insight-chip:hover { background: rgba(255,255,255,0.28); }

    /* ---------- Premium list rows (recent orders / activity) ---------- */
    .pro-list-row {
        display: flex; align-items: center; gap: 0.85rem; padding: 0.7rem 0.2rem; border-bottom: 1px solid var(--border-light);
    }
    .pro-list-row:last-child { border-bottom: none; }
    .pro-avatar {
        width: 40px; height: 40px; border-radius: 13px; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
        font-weight: 700; font-size: 0.85rem; color: #fff; background: var(--accent-gradient);
    }
    .status-pill {
        font-size: 0.68rem; font-weight: 700; padding: 0.25rem 0.6rem; border-radius: var(--radius-full); white-space: nowrap;
    }

    /* ---------- Buttons ---------- */

    .btn { border-radius: var(--radius-sm); font-weight: 600; transition: all var(--transition); }
    .btn:active { transform: scale(0.98); }
    .btn-primary-ot {
        background: linear-gradient(135deg, var(--accent), var(--accent-dark));
        border: none;
        color: #fff;
        font-weight: 600;
        padding: 0.5rem 1.1rem;
        border-radius: var(--radius-sm);
        box-shadow: 0 2px 10px rgba(101,82,232,0.32);
        transition: all var(--transition);
    }
    .btn-primary-ot:hover { box-shadow: 0 8px 24px rgba(101,82,232,0.42); color: #fff; }
    .btn-primary-ot:active { transform: translateY(0) scale(0.98); }
    .btn-outline-ot {
        background: var(--bg-surface);
        border: 1px solid var(--border-medium);
        color: var(--text-secondary);
        padding: 0.45rem 1rem;
        border-radius: var(--radius-sm);
        transition: var(--transition);
        font-weight: 500;
    }
    .btn-outline-ot:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-light); }
    .btn-outline-ot:active { transform: scale(0.98); }

    /* ---------- Forms ---------- */
    .form-control, .form-select {
        background: var(--bg-surface);
        border: 1px solid var(--border-medium);
        color: var(--text-primary);
        border-radius: var(--radius-sm);
        padding: 0.5rem 0.8rem;
        font-size: 0.9rem;
        transition: var(--transition);
    }
    .form-control:focus, .form-select:focus {
        border-color: var(--accent);
        box-shadow: 0 0 0 3px var(--accent-glow);
        background: var(--bg-surface);
        color: var(--text-primary);
    }
    .form-label { color: var(--text-secondary); font-size: 0.82rem; }
    .form-floating > label { color: var(--text-muted); }
    [data-theme="dark"] .form-control, [data-theme="dark"] .form-select { color-scheme: dark; }

    /* ---------- Tables ---------- */
    .table-ot {
        width: 100%;
        border-collapse: collapse;
        font-size: 0.85rem;
    }
    .table-ot th {
        font-weight: 600;
        font-size: 0.7rem;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: var(--text-secondary);
        padding: 0.75rem 0.85rem;
        border-bottom: 1px solid var(--border-light);
        background: var(--bg-surface-2);
        position: sticky;
        top: 0;
    }
    .table-ot td { padding: 0.7rem 0.85rem; border-bottom: 1px solid var(--border-light); vertical-align: middle; color: var(--text-primary); }
    .table-ot tr:hover td { background: var(--bg-surface-2); }

    /* ---------- Badges ---------- */
    .badge-status {
        font-weight: 600;
        font-size: 0.72rem;
        padding: 0.28em 0.7em;
        border-radius: var(--radius-full);
        display: inline-flex;
        align-items: center;
        gap: 0.3em;
    }
    .badge-active, .badge-success { background: var(--success-light); color: var(--success-text); }
    .badge-draft { background: var(--bg-surface-2); color: var(--text-secondary); }
    .badge-archived { background: var(--bg-surface-2); color: var(--text-muted); }
    .badge-pending, .badge-warning { background: var(--warning-light); color: var(--warning-text); }
    .badge-danger { background: var(--danger-light); color: var(--danger-text); }

    /* ---------- Part 9 (v4 master build prompt) — shared pill component ----------
       One color language for every pill type (success/warning/danger/neutral/
       info) reused everywhere, instead of the three separate ad hoc badge
       conventions above (.badge-status, .pill-badge, .badge-pill — kept as-is,
       unmigrated call sites still work). New markup renders as
       <span class="ot-pill ot-pill--<tone>">...</span> via renderPill() in
       assets/js/pill.js — see that file for the JS side. Reuses the exact
       same --success/--warning/--danger/--info CSS variables every other part
       of the UI already uses; no new colors invented for this. */
    .ot-pill {
        display: inline-flex; align-items: center; gap: 0.3em;
        font-weight: 700; font-size: 0.72rem; line-height: 1;
        padding: 0.32em 0.7em; border-radius: var(--radius-full);
        white-space: nowrap;
    }
    .ot-pill--success { background: var(--success-light); color: var(--success-text); }
    .ot-pill--warning { background: var(--warning-light); color: var(--warning-text); }
    .ot-pill--danger  { background: var(--danger-light);  color: var(--danger-text); }
    .ot-pill--info    { background: var(--info-light);    color: var(--info); }
    .ot-pill--neutral { background: var(--bg-surface-2);  color: var(--text-secondary); }
    .ot-pill--clickable { cursor: pointer; }
    .ot-pill--clickable:hover { filter: brightness(0.95); }
    .ot-pill .ot-pill-arrow { font-size: 0.85em; }

    /* ---------- Modals ---------- */
    .modal-content {
        border-radius: var(--radius-lg);
        border: 1px solid var(--border-light);
        background: var(--bg-surface);
        color: var(--text-primary);
        box-shadow: var(--shadow-popover);
    }
    .modal-header { border-bottom: 1px solid var(--border-light); }
    .modal-footer { border-top: 1px solid var(--border-light); }
    .modal-backdrop.show { opacity: 0.55; backdrop-filter: blur(2px); }

    /* ---------- Login ---------- */
    .login-shell { min-height: 100vh; display: flex; background: var(--bg-surface); }

    .login-panel-form {
        flex: 1 1 480px;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 3rem 2.5rem;
        background: var(--bg-surface);
    }
    .login-panel-form-inner { width: 100%; max-width: 380px; }

    .login-brand-mark { display: flex; align-items: center; gap: 0.65rem; margin-bottom: 2.5rem; }
    .login-brand-mark .brand-logo, .login-brand-top .brand-logo {
        width: 36px; height: 36px; border-radius: var(--radius-sm);
        background: var(--accent-gradient); display: flex; align-items: center;
        justify-content: center; color: #fff; font-weight: 800; font-size: 1.05rem; flex-shrink: 0;
    }
    .login-brand-mark .brand-logo { box-shadow: 0 4px 14px rgba(101,82,232,0.35); }
    .login-brand-mark .brand-word { font-weight: 800; font-size: 1.1rem; color: var(--text-primary); letter-spacing: -0.02em; }

    .login-heading { font-size: 1.65rem; font-weight: 800; color: var(--text-primary); margin-bottom: 0.35rem; letter-spacing: -0.02em; }
    .login-subheading { color: var(--text-secondary); font-size: 0.92rem; margin-bottom: 2rem; }
    .login-subheading a { color: var(--accent-2); font-weight: 600; text-decoration: none; }
    .login-subheading a:hover { text-decoration: underline; }

    .ot-field { margin-bottom: 1.1rem; }
    .ot-field > label { display: block; font-size: 0.8rem; font-weight: 600; color: var(--text-primary); margin-bottom: 0.4rem; }
    .ot-field .field-hint { font-weight: 400; color: var(--text-muted); }
    .ot-input-wrap { position: relative; }
    .ot-input-wrap > i.ot-input-icon {
        position: absolute; left: 0.9rem; top: 50%; transform: translateY(-50%);
        color: var(--text-muted); font-size: 0.95rem; pointer-events: none;
    }
    .ot-input-wrap > .form-control { padding-left: 2.5rem; height: 46px; }
    .ot-input-wrap > .form-control.has-suffix { padding-right: 2.6rem; }

    .login-row-between { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.35rem; }
    .login-row-between a { font-size: 0.83rem; color: var(--accent-2); text-decoration: none; font-weight: 600; }
    .login-row-between a:hover { text-decoration: underline; }

    .ot-btn-primary {
        width: 100%; border: none; border-radius: var(--radius-sm); padding: 0.8rem 1rem;
        background: linear-gradient(135deg, var(--accent), var(--accent-dark)); color: #fff;
        font-weight: 700; font-size: 0.95rem; box-shadow: 0 4px 16px rgba(101,82,232,0.32);
        display: flex; align-items: center; justify-content: center; gap: 0.5rem;
        transition: all var(--transition); cursor: pointer;
    }
    .ot-btn-primary:hover { box-shadow: 0 10px 26px rgba(101,82,232,0.42); transform: translateY(-1px); color: #fff; }
    .ot-btn-primary:active { transform: translateY(0) scale(0.98); }
    .ot-btn-primary:disabled { opacity: 0.72; cursor: not-allowed; transform: none; }

    .login-divider { display: flex; align-items: center; gap: 0.75rem; margin: 1.4rem 0; color: var(--text-muted); font-size: 0.78rem; }
    .login-divider::before, .login-divider::after { content: ''; flex: 1; height: 1px; background: var(--border-light); }

    .ot-btn-whatsapp {
        width: 100%; display: flex; align-items: center; justify-content: center; gap: 0.55rem;
        border: 1.5px solid var(--border-medium); border-radius: var(--radius-sm); padding: 0.72rem 1rem;
        background: var(--bg-surface); color: var(--text-primary); font-weight: 700; font-size: 0.9rem;
        text-decoration: none; transition: all var(--transition);
    }
    .ot-btn-whatsapp i { color: #25D366; font-size: 1.2rem; }
    .ot-btn-whatsapp:hover { border-color: #25D366; background: rgba(37,211,102,0.07); color: var(--text-primary); }

    .login-footnote { text-align: center; color: var(--text-muted); font-size: 0.78rem; margin-top: 2.25rem; }

    .ot-spinner {
        width: 15px; height: 15px; border-radius: 50%; flex-shrink: 0;
        border: 2px solid rgba(255,255,255,0.45); border-top-color: #fff;
        display: inline-block; animation: otSpin 0.7s linear infinite;
    }
    @keyframes otSpin { to { transform: rotate(360deg); } }

    /* ---------- Login: brand panel ---------- */
    .login-panel-brand {
        flex: 1 1 560px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        padding: 3rem;
        color: #fff;
        background:
            radial-gradient(circle at 18% 12%, rgba(124,106,245,0.55), transparent 42%),
            radial-gradient(circle at 85% 88%, rgba(47,217,168,0.16), transparent 45%),
            linear-gradient(160deg, #1B1547 0%, #14102E 100%);
        position: relative;
        overflow: hidden;
    }
    .login-panel-brand::before {
        content: '';
        position: absolute; inset: 0;
        background-image: radial-gradient(rgba(255,255,255,0.09) 1px, transparent 1.5px);
        background-size: 26px 26px;
        -webkit-mask-image: radial-gradient(circle at 50% 38%, #000 0%, transparent 72%);
                mask-image: radial-gradient(circle at 50% 38%, #000 0%, transparent 72%);
    }
    .login-panel-brand > * { position: relative; z-index: 1; }

    .login-brand-top { display: flex; align-items: center; gap: 0.65rem; }
    .login-brand-top .brand-word { font-weight: 800; font-size: 1.1rem; color: #fff; }

    .login-hero-text { margin-top: 2.25rem; max-width: 420px; }
    .login-hero-text h2 { font-size: 1.85rem; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 0.6rem; color: #fff; }
    .login-hero-text p { color: #C9C3EE; font-size: 0.95rem; margin: 0; }

    .login-chip-row { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.6rem; }
    .login-chip {
        display: flex; align-items: center; gap: 0.45rem;
        background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.14);
        backdrop-filter: blur(6px); padding: 0.45rem 0.8rem; border-radius: var(--radius-full);
        font-size: 0.78rem; font-weight: 600; color: #fff;
    }
    .login-chip i { font-size: 0.9rem; }
    .login-chip.c-shopify i { color: #95F088; }
    .login-chip.c-postex i { color: #FFC96B; }
    .login-chip.c-woo i { color: #B8ACFF; }
    .login-chip.c-meta i { color: #5AC8FA; }

    .login-illustration { position: relative; height: 190px; margin: 2.25rem 0 0.5rem; }
    .flow-path { position: absolute; inset: 0; width: 100%; height: 100%; }
    .flow-path path { fill: none; stroke: rgba(255,255,255,0.32); stroke-width: 2; stroke-dasharray: 6 8; animation: dashMove 16s linear infinite; }
    @keyframes dashMove { to { stroke-dashoffset: -400; } }
    .flow-node {
        position: absolute; width: 54px; height: 54px; border-radius: 16px;
        display: flex; align-items: center; justify-content: center; font-size: 1.35rem;
        background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18);
        backdrop-filter: blur(6px); color: #fff; box-shadow: 0 10px 22px rgba(0,0,0,0.25);
    }
    .flow-node.n1 { left: 0; top: 64px; background: linear-gradient(135deg,#948AF8,#6552E8); border-color: transparent; }
    .flow-node.n2 { left: 32%; top: 4px; }
    .flow-node.n3 { left: 64%; top: 66px; }
    .flow-node.n4 { right: 0; top: 18px; background: linear-gradient(135deg,#2FD9A8,#17B383); border-color: transparent; }

    .login-steps { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,0.12); }
    .login-step { display: flex; align-items: center; gap: 0.4rem; font-size: 0.75rem; font-weight: 600; color: #C9C3EE; white-space: nowrap; }
    .login-step i {
        width: 22px; height: 22px; border-radius: 50%; background: rgba(255,255,255,0.12);
        display: flex; align-items: center; justify-content: center; font-size: 0.68rem; color: #fff; flex-shrink: 0;
    }
    .login-step.done i { background: var(--mint); color: #0E3B2C; }
    .login-step-arrow { color: rgba(255,255,255,0.3); font-size: 0.7rem; }

    .login-card {
        background: var(--bg-surface);
        border-radius: var(--radius-lg);
        padding: 2.5rem;
        width: 400px;
        max-width: 100%;
        box-shadow: var(--shadow-card);
        border: 1px solid var(--border-light);
    }
    .login-wrap {
        min-height: 100vh;
        display: flex;
        align-items: center;
        justify-content: center;
        background: radial-gradient(circle at 30% 20%, #1B1547, #14102E 70%);
    }
    .password-toggle-wrap { position: relative; }
    .password-toggle-btn {
        position: absolute; right: 0.7rem; top: 50%; transform: translateY(-50%);
        border: none; background: transparent; color: var(--text-muted); cursor: pointer; padding: 0.2rem;
    }
    .password-toggle-btn:hover { color: var(--accent); }

    @media (max-width: 992px) {
        .login-panel-brand { display: none; }
    }

    /* ---------- Skeleton loaders (replaces plain "Loading…" text) ---------- */
    .ot-skel { display: flex; flex-direction: column; gap: 0.5rem; padding: 0.25rem 0; }
    .ot-skel-bar {
        height: 14px; border-radius: var(--radius-sm, 4px);
        background: linear-gradient(90deg, var(--bg-surface-alt, #eef0f3) 25%, var(--border-light, #e2e5ea) 37%, var(--bg-surface-alt, #eef0f3) 63%);
        background-size: 400% 100%;
        animation: otSkelShimmer 1.4s ease infinite;
    }
    .ot-skel-bar.w-40 { width: 40%; }
    .ot-skel-bar.w-60 { width: 60%; }
    .ot-skel-bar.w-80 { width: 80%; }
    .ot-skel-bar.w-100 { width: 100%; }
    .ot-skel-card { height: 90px; border-radius: var(--radius-md); }
    @keyframes otSkelShimmer {
        0% { background-position: 100% 50%; }
        100% { background-position: 0 50%; }
    }

    /* ---------- Views ---------- */
    .view-section { display: none; animation: fadeSlide 0.25s ease; }
    .view-section.active { display: block; }
    @keyframes fadeSlide {
        from { opacity: 0; transform: translateY(8px); }
        to { opacity: 1; transform: translateY(0); }
    }

    /* Impersonate banner */
    .impersonate-banner {
        background: var(--warning);
        color: #fff;
        text-align: center;
        padding: 0.4rem;
        font-weight: 500;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 1150;
    }

    /* ---------- Sidebar overlay backdrop (always in front, closable, never pushes content) ---------- */
    .ot-backdrop {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(20,17,13,0.5);
        backdrop-filter: blur(1px);
        z-index: 1190;
        opacity: 0;
        transition: opacity var(--transition);
    }
    .ot-backdrop.show { display: block; opacity: 1; }
    .ot-bottom-nav {
        display: none;
        position: fixed;
        bottom: 0; left: 0; right: 0;
        background: var(--bg-surface);
        box-shadow: 0 -4px 20px rgba(23,20,16,0.08);
        z-index: 1045;
        padding: 0.35rem 0.25rem calc(0.35rem + env(safe-area-inset-bottom));
        justify-content: space-around;
        align-items: center;
        border-top: 1px solid var(--border-light);
    }
    .ot-bottom-nav a {
        display: flex; flex-direction: column; align-items: center; gap: 0.15rem;
        color: var(--text-muted); text-decoration: none; font-size: 0.65rem; font-weight: 600;
        padding: 0.25rem 0.5rem; border-radius: var(--radius-sm); flex: 1; min-width: 0;
    }
    .ot-bottom-nav a i { font-size: 1.15rem; }
    .ot-bottom-nav a.active { color: var(--accent); background: var(--accent-light); }
    @media (max-width: 992px) {
        .ot-main { padding: 1.25rem 1rem calc(1.25rem + 64px); }
        .ot-bottom-nav { display: flex; }
        .ot-topbar { flex-wrap: wrap; gap: 0.6rem; top: 0.5rem; border-radius: 16px; padding: 0.55rem 0.85rem; }
        .profile-btn .profile-name { display: none; }
        .ot-topbar-divider { display: none; }
        .table-ot { min-width: 640px; }
        .table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
        .login-panel-brand { display: none; }
    }
    @media (min-width: 993px) {
        .ot-bottom-nav { display: none !important; }
    }

    /* ---------- Sitewide Bootstrap overrides (every module, not just the shell) ---------- */
    .card { background: var(--bg-surface); border: 1px solid var(--border-light); color: var(--text-primary); }
    .card.ot-card { border-radius: var(--radius-md); }

    .btn { border-radius: var(--radius-sm); font-weight: 600; }
    .btn-primary {
        background: linear-gradient(135deg, var(--accent), var(--accent-dark)) !important;
        border-color: var(--accent-dark) !important;
        box-shadow: 0 2px 10px rgba(101,82,232,0.32);
    }
    .btn-primary:hover, .btn-primary:focus { box-shadow: 0 8px 24px rgba(101,82,232,0.42); }
    .btn-primary:active { transform: translateY(0) scale(0.98); }
    .btn-secondary { background: var(--text-secondary) !important; border-color: var(--text-secondary) !important; }
    .btn-outline-secondary, .btn-outline-dark, .btn-outline-light {
        background: var(--bg-surface) !important;
        border-color: var(--border-medium) !important;
        color: var(--text-secondary) !important;
    }
    .btn-outline-secondary:hover, .btn-outline-dark:hover, .btn-outline-light:hover {
        border-color: var(--accent) !important; color: var(--accent) !important; background: var(--accent-light) !important;
    }
    .btn-outline-primary { background: var(--bg-surface) !important; border-color: var(--accent) !important; color: var(--accent) !important; }
    .btn-outline-primary:hover { background: var(--accent) !important; color: #fff !important; }
    .btn-outline-danger { background: var(--bg-surface) !important; border-color: var(--danger) !important; color: var(--danger) !important; }
    .btn-outline-danger:hover { background: var(--danger) !important; color: #fff !important; }
    .btn-outline-success { background: var(--bg-surface) !important; border-color: var(--success) !important; color: var(--success-text) !important; }
    .btn-outline-success:hover { background: var(--success) !important; color: #fff !important; }
    .btn-check:checked + .btn-outline-secondary, .btn-outline-secondary.active { background: var(--accent-light) !important; color: var(--accent) !important; border-color: var(--accent) !important; }

    .form-control, .form-select { background-color: var(--bg-surface) !important; border-color: var(--border-medium) !important; color: var(--text-primary) !important; }
    .form-control:focus, .form-select:focus { background-color: var(--bg-surface) !important; color: var(--text-primary) !important; box-shadow: 0 0 0 3px var(--accent-glow) !important; border-color: var(--accent) !important; }
    .form-control::placeholder { color: var(--text-muted); }
    .form-control:disabled, .form-select:disabled { background-color: var(--bg-surface-2) !important; color: var(--text-muted) !important; }
    .input-group-text { background: var(--bg-surface-2); border-color: var(--border-medium); color: var(--text-secondary); }
    .form-check-input { background-color: var(--bg-surface); border-color: var(--border-medium); }
    .form-check-input:checked { background-color: var(--accent); border-color: var(--accent); }

    .table { --bs-table-bg: var(--bg-surface); --bs-table-color: var(--text-primary); --bs-border-color: var(--border-light); color: var(--text-primary); }
    .table > thead { background: var(--bg-surface-2); }
    .table > thead th { color: var(--text-secondary); font-weight: 600; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.03em; border-bottom-color: var(--border-light); }
    .table-hover > tbody > tr:hover > * { background-color: var(--bg-surface-2); --bs-table-accent-bg: var(--bg-surface-2); }

    .dropdown-menu { background: var(--bg-surface); border: 1px solid var(--border-light); color: var(--text-primary); box-shadow: var(--shadow-popover); border-radius: var(--radius-md); z-index: 1300; }
    .dropdown-item { color: var(--text-primary); }
    .dropdown-item:hover, .dropdown-item:focus { background: var(--bg-surface-2); color: var(--text-primary); }
    .dropdown-divider { border-color: var(--border-light); }

    .alert-danger { background: var(--danger-light); color: var(--danger-text); border-color: transparent; }
    .alert-success { background: var(--success-light); color: var(--success-text); border-color: transparent; }
    .alert-warning { background: var(--warning-light); color: var(--warning-text); border-color: transparent; }
    .alert-info { background: var(--info-light); color: var(--accent-dark); border-color: transparent; }

    .page-link { background: var(--bg-surface); border-color: var(--border-light); color: var(--text-secondary); }
    .page-link:hover { background: var(--accent-light); color: var(--accent); }
    .page-item.active .page-link { background: var(--accent); border-color: var(--accent); color: #fff; }
    .page-item.disabled .page-link { background: var(--bg-surface-2); color: var(--text-muted); }

    .text-dark { color: var(--text-primary) !important; }
    .bg-white { background: var(--bg-surface) !important; }
    .border { border-color: var(--border-light) !important; }
    hr { border-color: var(--border-light); opacity: 1; }
    [data-theme="dark"] .btn-close { filter: invert(1) grayscale(1) brightness(1.8); }
    [data-theme="dark"] .table-light, [data-theme="dark"] .bg-light { background: var(--bg-surface-2) !important; color: var(--text-primary) !important; }

    /* ---------- Mobile card-style tables (auto-applied via JS, see bottom script) ---------- */
    @media (max-width: 767px) {
        .ship-pill-card { gap: 0.5rem; padding: 0.7rem 0.7rem;}
        .ship-pill-icon { width: 43px; height: 43px;font-size: 1rem;}
        .ship-pill-status { padding: 0.3rem 0.7rem; font-size: 0.7rem; }
        .login-panel-form {padding: 2rem 1.35rem;}
        .login-card {padding: 2rem;width: 330px;}
        .table-responsive table.table-mobile-cards { border: none; }
        .table-responsive table.table-mobile-cards thead { display: none; }
        .table-responsive table.table-mobile-cards,
        .table-responsive table.table-mobile-cards tbody,
        .table-responsive table.table-mobile-cards tr,
        .table-responsive table.table-mobile-cards td { display: block; width: 100%; }
        .table-responsive table.table-mobile-cards tr {
            background: var(--bg-surface);
            border: 1px solid var(--border-light);
            border-radius: var(--radius-md);
            margin-bottom: 0.65rem;
            padding: 0.6rem 0.9rem;
            box-shadow: var(--shadow-card);
        }
        .table-responsive table.table-mobile-cards tr:hover { background: var(--bg-surface); }
        .table-responsive table.table-mobile-cards td {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 0.75rem;
            border: none !important;
            border-bottom: 1px solid var(--border-light) !important;
            padding: 0.5rem 0;
            text-align: right;
        }
        .table-responsive table.table-mobile-cards td:last-child { border-bottom: none !important; }
        .table-responsive table.table-mobile-cards td:empty,
        .table-responsive table.table-mobile-cards td[data-label=""] { padding: 0.35rem 0; }
        .table-responsive table.table-mobile-cards td::before {
            content: attr(data-label);
            font-weight: 600;
            color: var(--text-secondary);
            font-size: 0.7rem;
            text-transform: uppercase;
            letter-spacing: 0.03em;
            text-align: left;
            flex-shrink: 0;
            margin-right: 0.75rem;
        }
        .table-responsive { overflow-x: visible !important; }
    }

    /* ---------- Install banner (Android + iOS) ---------- */
    #pwaInstallBanner {
        position: fixed;
        top: 0; left: 0; right: 0;
        z-index: 2000;
        display: flex;
        align-items: center;
        gap: 0.75rem;
        padding: 0.6rem 0.9rem;
        background: linear-gradient(120deg, var(--accent-2), var(--accent-dark));
        color: #fff;
        box-shadow: 0 6px 20px rgba(26,21,51,0.22);
        transform: translateY(-110%);
        transition: transform 320ms cubic-bezier(0.22,0.61,0.36,1);
    }
    #pwaInstallBanner.show { transform: translateY(0); }
    #pwaInstallBanner .pwa-ico {
        width: 38px; height: 38px; border-radius: var(--radius-sm);
        background: rgba(255,255,255,0.16);
        display: flex; align-items: center; justify-content: center; flex-shrink: 0;
        overflow: hidden;
    }
    #pwaInstallBanner .pwa-ico img { width: 100%; height: 100%; object-fit: cover; }
    #pwaInstallBanner .pwa-text { flex: 1; min-width: 0; line-height: 1.2; }
    #pwaInstallBanner .pwa-title { font-weight: 700; font-size: 0.86rem; }
    #pwaInstallBanner .pwa-sub { font-size: 0.74rem; opacity: 0.88; }
    #pwaInstallBanner .pwa-actions { display: flex; align-items: center; gap: 0.4rem; flex-shrink: 0; }
    #pwaInstallBanner .pwa-btn {
        border: none; border-radius: var(--radius-full);
        background: #fff; color: var(--accent-dark);
        font-weight: 700; font-size: 0.78rem;
        padding: 0.4rem 0.85rem; cursor: pointer;
        white-space: nowrap;
    }
    #pwaInstallBanner .pwa-close {
        border: none; background: rgba(255,255,255,0.14); color: #fff;
        width: 28px; height: 28px; border-radius: 50%;
        display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0;
    }
    body.pwa-banner-open .ot-sidebar { padding-top: 58px; }
    #pwaIosSheet {
        position: fixed; inset: 0; z-index: 2100; display: none;
        align-items: flex-end; justify-content: center;
        background: rgba(20,17,13,0.45);
    }
    #pwaIosSheet.show { display: flex; }
    #pwaIosSheet .sheet {
        background: var(--bg-surface); width: 100%; max-width: 480px;
        border-radius: 22px 22px 0 0; padding: 1.25rem 1.25rem 1.6rem;
        box-shadow: var(--shadow-popover);
    }
    #pwaIosSheet .sheet-handle { width: 40px; height: 4px; border-radius: 2px; background: var(--border-medium); margin: 0 auto 1rem; }
    #pwaIosSheet .step { display: flex; align-items: center; gap: 0.75rem; padding: 0.55rem 0; }
    #pwaIosSheet .step .num {
        width: 26px; height: 26px; border-radius: 50%; background: var(--accent-light); color: var(--accent-dark);
        display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.8rem; flex-shrink: 0;
    }
    #pwaIosSheet .share-glyph { color: var(--accent); }

    /* ---------- Product cards (mobile-first grid) ---------- */
    .card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 0.9rem; }
    .prod-card {
        position: relative;
        background: var(--bg-surface);
        border: 1px solid var(--border-light);
        border-radius: var(--radius-md);
        padding: 0.9rem;
        display: flex; flex-direction: column; gap: 0.75rem;
        box-shadow: var(--shadow-card);
        transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
        cursor: pointer;
    }
    .prod-card:hover { box-shadow: var(--shadow-card-hover); border-color: var(--border-medium); }
    .prod-card .prod-top { display: flex; align-items: center; gap: 0.8rem; }
    .prod-thumb {
        width: 52px; height: 52px; border-radius: var(--radius-sm); flex-shrink: 0;
        background: var(--accent-light); color: var(--accent-dark);
        display: flex; align-items: center; justify-content: center;
        font-weight: 700; font-size: 1rem; overflow: hidden;
    }
    .prod-thumb img { width: 100%; height: 100%; object-fit: cover; }
    .prod-info { min-width: 0; flex: 1; }
    .prod-name {
        font-weight: 700; font-size: 0.92rem; color: var(--text-primary);
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
        text-decoration: none; display: block;
    }
    .prod-name:hover { color: var(--accent-dark); }
    .prod-price { font-weight: 700; font-size: 0.88rem; color: var(--accent-dark); margin-top: 0.15rem; }
    .prod-check-overlay {
        position: absolute; top: 0.7rem; right: 0.7rem; width: 20px; height: 20px; cursor: pointer; z-index: 2;
    }
    .prod-stats { display: flex; gap: 0.5rem; }
    .prod-stat {
        flex: 1; background: var(--bg-surface-2); border-radius: var(--radius-sm);
        padding: 0.5rem 0.65rem; text-align: left;
    }
    .prod-stat .stat-value { font-weight: 700; font-size: 0.86rem; color: var(--text-primary); }
    .prod-stat .stat-label { font-size: 0.68rem; color: var(--text-secondary); font-weight: 500; }
    .prod-stat.stat-low .stat-value { color: var(--danger-text); }
    .prod-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
    .prod-badges { display: flex; gap: 0.35rem; flex-wrap: wrap; }
    .pill-badge {
        font-size: 0.66rem; font-weight: 700; padding: 0.22rem 0.55rem; border-radius: var(--radius-full);
        text-transform: capitalize; letter-spacing: 0.01em;
    }
    .pill-badge.st-active { background: var(--success-light); color: var(--success-text); }
    .pill-badge.st-draft { background: var(--bg-surface-2); color: var(--text-secondary); }
    .pill-badge.st-archived { background: var(--danger-light); color: var(--danger-text); }
    .prod-card-actions { display: flex; gap: 0.3rem; }
    .icon-btn {
        width: 30px; height: 30px; border-radius: var(--radius-sm); border: 1px solid var(--border-light);
        background: var(--bg-surface-2); color: var(--text-secondary);
        display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 0.85rem;
        transition: var(--transition);
    }
    .icon-btn:hover { background: var(--danger-light); color: var(--danger-text); border-color: transparent; }
    .prod-img-drop {
        width: 100%; height: 140px; border-radius: var(--radius-md); border: 1.5px dashed var(--border-medium);
        background: var(--bg-surface-2); display: flex; align-items: center; justify-content: center;
        overflow: hidden; cursor: pointer; position: relative; color: var(--text-secondary); font-size: 0.82rem;
    }
    .prod-img-drop img { width: 100%; height: 100%; object-fit: cover; }
    .prod-img-drop:hover { border-color: var(--accent); color: var(--accent-dark); }

    /* ---------- Order cards ---------- */
    .ord-list { display: flex; flex-direction: column; gap: 0.9rem; }
    .ord-card {
        background: var(--bg-surface); border: 1px solid var(--border-light);
        border-radius: var(--radius-md); overflow: hidden;
        box-shadow: var(--shadow-card);
        transition: transform var(--transition), box-shadow var(--transition);
        cursor: pointer;
    }
    .ord-card:hover { box-shadow: var(--shadow-card-hover); }
    .ord-card-head {
        background: var(--accent-gradient); color: #fff;
        padding: 0.7rem 1rem; display: flex; align-items: center; justify-content: space-between; gap: 0.6rem;
    }
    .ord-card-head .ord-num { font-weight: 700; font-size: 0.9rem; }
    .ord-card-head .ord-customer { font-size: 0.76rem; opacity: 0.92; margin-top: 0.1rem; }
    .ord-card-head .ord-date { font-size: 0.74rem; opacity: 0.9; white-space: nowrap; display: flex; align-items: center; gap: 0.3rem; }
    .ord-card-body { padding: 0.85rem 1rem; }
    .ord-total-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.6rem; }
    .ord-total-row .ord-total-label { font-size: 0.78rem; color: var(--text-secondary); font-weight: 500; }
    .ord-total-row .ord-total-value { font-size: 1.05rem; font-weight: 800; color: var(--text-primary); }
    .ord-items { display: flex; flex-direction: column; gap: 0.5rem; }
    .ord-item-row { display: flex; align-items: center; gap: 0.6rem; }
    .ord-item-thumb {
        width: 30px; height: 30px; border-radius: 9px; flex-shrink: 0; overflow: hidden;
        background: var(--accent-light); color: var(--accent-dark);
        display: flex; align-items: center; justify-content: center; font-size: 0.7rem; font-weight: 700;
    }
    .ord-item-thumb img { width: 100%; height: 100%; object-fit: cover; }
    .ord-item-name { font-size: 0.82rem; color: var(--text-primary); flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .ord-item-qty { font-size: 0.78rem; color: var(--text-secondary); font-weight: 600; flex-shrink: 0; }
    .ord-card-foot { display: flex; align-items: center; justify-content: space-between; padding: 0.6rem 1rem; border-top: 1px dashed var(--border-light); }
    .status-badge { font-size: 0.68rem; font-weight: 700; padding: 0.22rem 0.6rem; border-radius: var(--radius-full); }

    /* ---------- Rotating thumbnail colors (cards cycle through these, then repeat) ---------- */
    .thumb-c0 { background: var(--accent-light); color: var(--accent-dark); }
    .thumb-c1 { background: #E4F9EF; color: #0E9268; }
    .thumb-c2 { background: #FFF1E6; color: #C9642E; }
    .thumb-c3 { background: #EAF6FF; color: #1C7BAE; }
    .thumb-c4 { background: #FFF6DC; color: #B4650E; }
    .thumb-c5 { background: #FDEAF3; color: #C93A7A; }
    .thumb-c6 { background: #E6FBF6; color: #10897A; }
    .thumb-c7 { background: #F1ECFF; color: #6B4FE0; }
    [data-theme="dark"] .thumb-c0 { background: rgba(124,106,245,0.20); color: #C9BFFF; }
    [data-theme="dark"] .thumb-c1 { background: rgba(23,179,131,0.20); color: #4FE3B3; }
    [data-theme="dark"] .thumb-c2 { background: rgba(255,158,125,0.20); color: #FFB48F; }
    [data-theme="dark"] .thumb-c3 { background: rgba(90,200,250,0.20); color: #8ED8FF; }
    [data-theme="dark"] .thumb-c4 { background: rgba(255,201,107,0.20); color: #FFCF7C; }
    [data-theme="dark"] .thumb-c5 { background: rgba(240,88,125,0.20); color: #FF9CB6; }
    [data-theme="dark"] .thumb-c6 { background: rgba(47,217,168,0.20); color: #6BF0D2; }
    [data-theme="dark"] .thumb-c7 { background: rgba(184,172,255,0.22); color: #D6CDFF; }
    /* When a PNG with transparency is uploaded, the thumb's own rotating color shows through
       as its background instead of a plain white/neutral tone. */
    .prod-thumb img, .ord-item-thumb img, .inv-thumb img { background: transparent; }

    /* ---------- Inventory cards (mirrors product cards, inventory-specific stats) ---------- */
    .inv-card {
        background: var(--bg-surface); border: 1px solid var(--border-light);
        border-radius: var(--radius-md); padding: 0.9rem;
        display: flex; flex-direction: column; gap: 0.75rem;
        box-shadow: var(--shadow-card);
        transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
    }
    .inv-card:hover { box-shadow: var(--shadow-card-hover); border-color: var(--border-medium); }
    .inv-card.low-stock { border-color: rgba(240,88,125,0.4); }
    .inv-top { display: flex; align-items: center; gap: 0.8rem; }
    .inv-thumb {
        width: 52px; height: 52px; border-radius: var(--radius-sm); flex-shrink: 0;
        display: flex; align-items: center; justify-content: center;
        font-weight: 700; font-size: 1rem; overflow: hidden;
    }
    .inv-thumb img { width: 100%; height: 100%; object-fit: cover; }
    .inv-info { min-width: 0; flex: 1; }
    .inv-name { font-weight: 700; font-size: 0.9rem; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .inv-sku { font-size: 0.74rem; color: var(--text-secondary); margin-top: 0.1rem; }
    .inv-stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
    .inv-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
    .inv-wh-badge { font-size: 0.7rem; font-weight: 600; color: var(--text-secondary); display: flex; align-items: center; gap: 0.3rem; }

    /* ---------- Polished form sections (used across Add/Edit Product, Inventory Adjust/Transfer) ---------- */
    .modal-content { border-radius: var(--radius-lg); border: none; box-shadow: var(--shadow-popover); }
    .modal-header { border-bottom: 1px solid var(--border-light); padding: 1.1rem 1.4rem; }
    .modal-header .modal-title { font-size: 1.05rem; display: flex; align-items: center; gap: 0.55rem; }
    .modal-body { padding: 1.3rem 1.4rem; }
    .modal-footer { border-top: 1px solid var(--border-light); padding: 1rem 1.4rem; }
    .form-label { font-size: 0.8rem; font-weight: 600; color: var(--text-secondary); margin-bottom: 0.3rem; }
    .form-control, .form-select {
        border-radius: var(--radius-sm); border: 1.5px solid var(--border-light);
        padding: 0.55rem 0.8rem; font-size: 0.88rem; background: var(--bg-surface-2);
        transition: var(--transition);
    }
    .form-control:focus, .form-select:focus { border-color: var(--accent); box-shadow: var(--shadow-glow); background: var(--bg-surface); }
    .ot-form-section {
        background: var(--bg-surface-2); border: 1px solid var(--border-light);
        border-radius: var(--radius-md); padding: 1rem 1.1rem; margin-bottom: 1rem;
    }
    .ot-form-section-title {
        font-size: 0.76rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
        color: var(--text-secondary); display: flex; align-items: center; gap: 0.45rem; margin-bottom: 0.8rem;
    }
    .ot-form-section-title i { color: var(--accent); font-size: 0.9rem; }
    .ot-info-box {
        background: var(--accent-light); color: var(--accent-dark); border-radius: var(--radius-sm);
        padding: 0.65rem 0.85rem; font-size: 0.84rem; font-weight: 600; display: flex; align-items: center; gap: 0.5rem;
    }
/* ===================== HOME | BUSINESS COMMAND CENTER v3 ===================== */
#view-dashboard { overflow-x: hidden; max-width:100%; }
#view-dashboard * { min-width:0; }
@keyframes cmdFadeUp { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }

/* ---- Command Header (mobile-first) ---- */
.cmd-header { display:flex; flex-direction:column; gap:0.85rem; margin-bottom:1.1rem; animation: cmdFadeUp .3s ease; }
.cmd-eyebrow { font-size:0.68rem; font-weight:800; color:var(--accent); text-transform:uppercase; letter-spacing:0.09em; display:flex; align-items:center; gap:0.4rem; }
.cmd-eyebrow::before { content:''; width:7px; height:7px; border-radius:50%; background:var(--success); box-shadow:0 0 0 3px var(--success-light); display:inline-block; animation: chPulse 1.8s infinite; flex-shrink:0; }
.cmd-title { font-weight:800; letter-spacing:-0.02em; margin:0.15rem 0 0.2rem; font-size:1.35rem; background:linear-gradient(135deg,var(--text-primary),var(--accent)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.cmd-subtitle { font-size:0.78rem; color:var(--text-secondary); font-weight:500; }
.cmd-header-right { display:flex; align-items:center; gap:0.5rem; overflow-x:auto; padding-bottom:2px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.cmd-header-right::-webkit-scrollbar { display:none; }
.cmd-header-right > * { flex-shrink:0; }
.btn-accent-soft { background:linear-gradient(135deg,var(--accent),var(--accent-dark)); color:#fff; border:none; font-weight:700; box-shadow:0 6px 16px -6px var(--accent); min-height:38px; transition: var(--transition); }
.btn-accent-soft:hover, .btn-accent-soft:active { filter:brightness(1.08); color:#fff; transform: translateY(-1px); box-shadow: 0 10px 20px -8px var(--accent); }
.quick-add-menu { border-radius: var(--radius-md); border:none; box-shadow: var(--shadow-popover); padding:0.5rem; min-width:230px; }
.quick-add-menu .dropdown-item { border-radius: var(--radius-sm); padding:0.65rem 0.8rem; font-weight:600; font-size:0.88rem; display:flex; align-items:center; gap:0.6rem; min-height:44px; }
.quick-add-menu .dropdown-item:hover { background:var(--accent-light); color:var(--accent-dark); }
.quick-add-menu .dropdown-item i { color:var(--accent); }

/* Range picker: one pill-shaped control, touch-height, never wraps mid-control */
.dash-range-group { display:flex; align-items:center; background:var(--bg-surface); border:1px solid var(--border-light); border-radius:999px; padding:0.15rem; box-shadow:var(--shadow-xs); min-height:38px; }
.dash-range-group .form-select, .dash-range-group .form-control { border:none !important; box-shadow:none !important; background:transparent !important; border-radius:999px !important; font-size:0.8rem; font-weight:600; padding:0.4rem 0.85rem; min-height:36px; }
.dash-range-group .form-select:focus, .dash-range-group .form-control:focus { background:var(--accent-light) !important; }
.dash-refresh-btn { position:relative; width:38px; height:38px; flex-shrink:0; }
.dash-refresh-btn.spinning i { animation: dashSpin .7s linear infinite; }
@keyframes dashSpin { to { transform:rotate(360deg); } }

@media (min-width: 768px) {
  .cmd-header { flex-direction:row; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1rem; }
  .cmd-title { font-size:1.65rem; }
  .cmd-subtitle { font-size:0.84rem; }
  .cmd-header-right { overflow-x:visible; flex-wrap:wrap; }
}

/* ---- Hero Stat Cards ---- */
.stat-hero-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; margin-bottom:1.1rem; }
.stat-hero-card { position:relative; overflow:hidden; border-radius:var(--radius-lg,20px); padding:1.3rem 1.35rem; background:var(--bg-surface); border:1px solid var(--border-light); box-shadow:var(--shadow-card); transition:transform .25s ease, box-shadow .25s ease; isolation:isolate; opacity:0; animation: cmdFadeUp .35s ease forwards; }
.stat-hero-card:nth-child(1){animation-delay:.02s;} .stat-hero-card:nth-child(2){animation-delay:.06s;} .stat-hero-card:nth-child(3){animation-delay:.10s;} .stat-hero-card:nth-child(4){animation-delay:.14s;} .stat-hero-card:nth-child(5){animation-delay:.18s;}
.stat-hero-card:hover { box-shadow:var(--shadow-card-hover); }
/* .stat-hero-card::after decorative circle removed — Phase 10 redesign, same issue as .kpi-card::after etc., found on a closer sweep */
.stat-hero-card .stat-top { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:0.8rem; }
.stat-hero-card .stat-icon { width:42px; height:42px; border-radius:13px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; background:var(--stat-tint); color:var(--stat-fg); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.25); }
.stat-hero-card .stat-value { font-size:1.5rem; font-weight:800; letter-spacing:-0.03em; line-height:1.1; }
.stat-hero-card .stat-label { font-size:0.74rem; color:var(--text-secondary); font-weight:700; margin-top:0.28rem; }
.stat-hero-card--accent { --stat-tint: var(--accent-light); --stat-fg: var(--accent); --stat-glow: var(--accent-light); }
.stat-hero-card--gross { --stat-tint: rgba(90,200,250,0.16); --stat-fg: var(--sky); --stat-glow: rgba(90,200,250,0.16); }
.stat-hero-card--success { --stat-tint: var(--success-light); --stat-fg: var(--success-text); --stat-glow: var(--success-light); }
.stat-hero-card--info { --stat-tint: var(--info-light); --stat-fg: var(--info); --stat-glow: var(--info-light); }
.stat-hero-card--warning { --stat-tint: var(--warning-light); --stat-fg: var(--warning-text); --stat-glow: var(--warning-light); }
.stat-hero-skel { border-radius:var(--radius-lg,20px); padding:1.3rem 1.35rem; background:var(--bg-surface); border:1px solid var(--border-light); min-height:112px; }

/* ---- Attention Center ---- */
.attn-wrap { background: var(--bg-surface); border:1px solid var(--border-light); border-radius:var(--radius-md); padding:1rem 1.1rem; box-shadow:var(--shadow-card); }
.attn-head { font-size:0.78rem; font-weight:800; color:var(--text-secondary); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:0.7rem; display:flex; align-items:center; gap:0.4rem; }
.attn-head i { color: var(--danger); }
.attn-strip { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:0.6rem; }
.attn-pill { display:flex; align-items:center; gap:0.55rem; padding:0.65rem 0.9rem; border-radius:14px; font-size:0.82rem; font-weight:700; cursor:pointer; border:1px solid transparent; transition: var(--transition); }
.attn-pill:hover { box-shadow: var(--shadow-card-hover); }
.attn-pill.tone-danger { background:var(--danger-light); color:var(--danger-text); }
.attn-pill.tone-warning { background:var(--warning-light); color:var(--warning-text); }
.attn-pill.tone-info { background:var(--info-light); color:var(--info); }
.attn-pill .attn-count { margin-left:auto; background:rgba(0,0,0,0.08); border-radius:999px; padding:0.05rem 0.55rem; font-weight:800; }

/* ---- Ops row: Cash strip + Pipeline side by side ---- */
.ops-row { display:grid; grid-template-columns: 1.1fr 1.4fr; gap:1rem; }
.cash-strip-card, .pipeline-card { background:var(--bg-surface); border:1px solid var(--border-light); border-radius:var(--radius-md); padding:1.1rem 1.2rem; box-shadow:var(--shadow-card); }
.panel-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:0.9rem; flex-wrap:wrap; gap:0.5rem; }
.panel-head h6 { margin:0; font-weight:800; display:flex; align-items:center; gap:0.4rem; font-size:0.92rem; }
.panel-head h6 i { color:var(--accent); }
.panel-link { font-size:0.78rem; font-weight:700; color:var(--accent); text-decoration:none; }
.panel-link:hover { color: var(--accent-dark); }

.cash-strip { display:grid; grid-template-columns:1fr 1fr; gap:0.7rem; }
.cash-chip { background:var(--bg-root); border:1px solid var(--border-light); border-radius:14px; padding:0.8rem 0.9rem; display:flex; align-items:center; gap:0.65rem; cursor:pointer; transition:var(--transition); }
.cash-chip:hover { box-shadow: var(--shadow-card-hover); background:var(--bg-surface); }
.cash-chip .cash-ic { width:36px; height:36px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:1rem; flex-shrink:0; }
.cash-chip .cash-val { font-weight:800; font-size:0.98rem; letter-spacing:-0.01em; }
.cash-chip .cash-lbl { font-size:0.68rem; color:var(--text-secondary); font-weight:700; }

/* ---- Pipeline Wave — horizontal-scroll on phones (6 steps never squeeze) ---- */
.pipeline-wave-wrap { position:relative; padding:0.3rem 0.1rem 0.4rem; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.pipeline-wave-wrap::-webkit-scrollbar { display:none; }
.pipeline-wave-svg { position:absolute; left:0; top:0; width:100%; height:100%; z-index:0; opacity:0.6; pointer-events:none; }
.pipeline-wave { position:relative; z-index:1; display:flex; align-items:flex-start; gap:0.4rem; }
.pw-step { flex:0 0 65px; display:flex; flex-direction:column; align-items:center; text-align:center; cursor:pointer; transition:transform var(--transition); }
.pw-step:active { transform:scale(0.95); }
.pw-step.pw-up, .pw-step.pw-down { margin-top:0; }
.pw-icon-circle { width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.15rem; color:#fff; box-shadow:0 6px 16px -4px rgba(26,21,51,0.28), 0 0 0 3px var(--bg-surface); margin-bottom:0.4rem; }
.pw-value { font-size:0.95rem; font-weight:800; color:var(--text-primary); line-height:1.1; font-variant-numeric:tabular-nums; }
.pw-label { font-size:0.62rem; font-weight:600; color:var(--text-secondary); margin-top:0.15rem; line-height:1.2; }

@media (min-width: 992px) {
  .ops-row { flex-direction:row; display:grid; grid-template-columns: 1.1fr 1.4fr; gap:1rem; }
  .cash-strip-card, .pipeline-card { padding:1.1rem 1.2rem; border-radius:var(--radius-md); }
  .pipeline-wave-wrap { padding:2.6rem 0.25rem 0.4rem; overflow:visible; }
  .pipeline-wave-svg { display:block; position:absolute; left:0; top:0; width:100%; height:100%; z-index:0; opacity:0.6; pointer-events:none; }
  .pipeline-wave { justify-content:space-between; gap:0.15rem; }
  .pw-step { flex:1; min-width:0; }
  .pw-step.pw-up { margin-top:-16px; }
  .pw-step.pw-down { margin-top:16px; }
  .pw-icon-circle { width:52px; height:52px; font-size:1.3rem; box-shadow:0 6px 16px -4px rgba(26,21,51,0.28), 0 0 0 4px var(--bg-surface); }
  .pw-value { font-size:1.05rem; }
  .pw-label { font-size:0.66rem; max-width:92px; }
}
/* ---- Full Metrics Breakdown — tabbed, mobile-first ---- */
.mm-card { padding:0; overflow:hidden; border-radius:16px; }
.mm-head { display:flex; flex-direction:column; gap:0.7rem; padding:1rem 1rem 0.75rem; }
.mm-head h6 { margin:0; font-weight:800; font-size:0.9rem; display:flex; align-items:center; gap:0.4rem; }
.mm-head h6 i { color:var(--accent); }
.mm-tabs { display:flex; gap:0.3rem; overflow-x:auto; padding-bottom:2px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.mm-tabs::-webkit-scrollbar { display:none; }
.mm-tab { border:none; background:var(--bg-surface-2); color:var(--text-secondary); font-size:0.74rem; font-weight:700; padding:0.5rem 0.85rem; border-radius:999px; white-space:nowrap; display:flex; align-items:center; gap:0.35rem; transition:var(--transition); min-height:38px; flex-shrink:0; }
.mm-tab i { font-size:0.8rem; }
.mm-tab:hover { background:var(--accent-light); color:var(--accent-dark); }
.mm-tab.active { background:linear-gradient(135deg,var(--accent),var(--accent-dark)); color:#fff; box-shadow:var(--shadow-card); }
.mm-body { padding:0.35rem 1rem 1.1rem; }
.mm-group { display:none; }
.mm-group.active { display:block; animation: cmdFadeUp .25s ease; }
.mm-grid { display:grid; grid-template-columns:1fr 1fr; gap:0.6rem; }
.mm-item { display:flex; align-items:center; gap:0.65rem; padding:0.75rem 0.75rem; border-radius:13px; border:1px solid var(--border-light); background:var(--bg-root); transition:var(--transition); }
.mm-item:hover { border-color:var(--border-medium); box-shadow:var(--shadow-card); }
.mm-icon { width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:0.92rem; flex-shrink:0; color:#fff; }
.mm-value { font-size:0.92rem; font-weight:800; color:var(--text-primary); line-height:1.15; font-variant-numeric:tabular-nums; }
.mm-label { font-size:0.66rem; color:var(--text-secondary); font-weight:600; margin-top:0.08rem; }
.mm-tone-indigo  { background: linear-gradient(135deg,#948AF8,#6552E8); }
.mm-tone-success { background: linear-gradient(135deg,#3FE0AE,#17B383); }
.mm-tone-sky     { background: linear-gradient(135deg,#7DD8FF,#3AAFEA); }
.mm-tone-danger  { background: linear-gradient(135deg,#FF8CA8,#F0587D); }
.mm-tone-orange  { background: linear-gradient(135deg,#FFC27E,#F0973A); }
.mm-tone-purple  { background: linear-gradient(135deg,#C7B8FF,#8B5CF6); }
.mm-tone-slate   { background: linear-gradient(135deg,#B8B2D9,#8B84B8); }

@media (min-width: 576px) {
  .mm-grid { grid-template-columns:repeat(3,1fr); }
}
@media (min-width: 768px) {
  .mm-head { flex-direction:row; align-items:center; justify-content:space-between; padding:1.15rem 1.3rem 0.9rem; }
  .mm-body { padding:0.4rem 1.3rem 1.3rem; }
  .mm-grid { grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:0.85rem; }
  .mm-item { padding:0.85rem 0.9rem; border-radius:14px; }
}/* ---- Full Metrics Breakdown — tabbed, mobile-first ---- */
.mm-card { padding:0; overflow:hidden; border-radius:16px; }
.mm-head { display:flex; flex-direction:column; gap:0.7rem; padding:1rem 1rem 0.75rem; }
.mm-head h6 { margin:0; font-weight:800; font-size:0.9rem; display:flex; align-items:center; gap:0.4rem; }
.mm-head h6 i { color:var(--accent); }
.mm-tabs { display:flex; gap:0.3rem; overflow-x:auto; padding-bottom:2px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.mm-tabs::-webkit-scrollbar { display:none; }
.mm-tab { border:none; background:var(--bg-surface-2); color:var(--text-secondary); font-size:0.74rem; font-weight:700; padding:0.5rem 0.85rem; border-radius:999px; white-space:nowrap; display:flex; align-items:center; gap:0.35rem; transition:var(--transition); min-height:38px; flex-shrink:0; }
.mm-tab i { font-size:0.8rem; }
.mm-tab:hover { background:var(--accent-light); color:var(--accent-dark); }
.mm-tab.active { background:linear-gradient(135deg,var(--accent),var(--accent-dark)); color:#fff; box-shadow:var(--shadow-card); }
.mm-body { padding:0.35rem 1rem 1.1rem; }
.mm-group { display:none; }
.mm-group.active { display:block; animation: cmdFadeUp .25s ease; }
.mm-grid { display:grid; grid-template-columns:1fr 1fr; gap:0.6rem; }
.mm-item { display:flex; align-items:center; gap:0.65rem; padding:0.75rem 0.75rem; border-radius:13px; border:1px solid var(--border-light); background:var(--bg-root); transition:var(--transition); }
.mm-item:hover { border-color:var(--border-medium); box-shadow:var(--shadow-card); }
.mm-icon { width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:0.92rem; flex-shrink:0; color:#fff; }
.mm-value { font-size:0.92rem; font-weight:800; color:var(--text-primary); line-height:1.15; font-variant-numeric:tabular-nums; }
.mm-label { font-size:0.66rem; color:var(--text-secondary); font-weight:600; margin-top:0.08rem; }
.mm-tone-indigo  { background: linear-gradient(135deg,#948AF8,#6552E8); }
.mm-tone-success { background: linear-gradient(135deg,#3FE0AE,#17B383); }
.mm-tone-sky     { background: linear-gradient(135deg,#7DD8FF,#3AAFEA); }
.mm-tone-danger  { background: linear-gradient(135deg,#FF8CA8,#F0587D); }
.mm-tone-orange  { background: linear-gradient(135deg,#FFC27E,#F0973A); }
.mm-tone-purple  { background: linear-gradient(135deg,#C7B8FF,#8B5CF6); }
.mm-tone-slate   { background: linear-gradient(135deg,#B8B2D9,#8B84B8); }

@media (min-width: 576px) {
  .mm-grid { grid-template-columns:repeat(3,1fr); }
}
@media (min-width: 768px) {
  .mm-head { flex-direction:row; align-items:center; justify-content:space-between; padding:1.15rem 1.3rem 0.9rem; }
  .mm-body { padding:0.4rem 1.3rem 1.3rem; }
  .mm-grid { grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:0.85rem; }
  .mm-item { padding:0.85rem 0.9rem; border-radius:14px; }
}

/* ---- Inventory Watch thumbnail ---- */
.iw-thumb { width:44px; height:44px; border-radius:11px; overflow:hidden; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:0.8rem; }
.iw-thumb img { width:100%; height:100%; object-fit:cover; }

/* ---- Workspace row: mobile = stacked full-width cards ---- */
.workspace-row { display:flex; flex-direction:column; gap:0.75rem; }
.side-card { background:var(--bg-surface); border:1px solid var(--border-light); border-radius:16px; padding:1rem 1.05rem; box-shadow:var(--shadow-card); }
.side-card-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:0.75rem; }
.side-card-head h6 { margin:0; font-weight:800; font-size:0.86rem; display:flex; align-items:center; gap:0.4rem; }
.side-card-head h6 i { color:var(--accent); }
.side-card-link { font-size:0.74rem; font-weight:700; color:var(--accent); text-decoration:none; min-height:32px; display:inline-flex; align-items:center; }
.side-loading { text-align:center; color:var(--text-muted); font-size:0.8rem; padding:1rem 0; }

.inv-watch-list { display:flex; flex-direction:column; gap:0.3rem; }
.inv-watch-item { display:flex; align-items:center; gap:0.55rem; padding:0.55rem 0.55rem; border-radius:12px; cursor:pointer; transition:var(--transition); min-height:48px; }
.inv-watch-item:active { background:var(--bg-root); }
.inv-watch-item:hover { background:var(--bg-root); }
.inv-watch-item .iw-info { flex:1; min-width:0; }
.inv-watch-item .iw-title { font-size:0.8rem; font-weight:700; color:var(--text-primary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.inv-watch-item .iw-sub { font-size:0.7rem; color:var(--text-muted); }
.iw-badge { font-size:0.66rem; font-weight:800; padding:0.2rem 0.5rem; border-radius:999px; flex-shrink:0; white-space:nowrap; }
.iw-badge.out { background:var(--danger-light); color:var(--danger-text); }
.iw-badge.low { background:var(--warning-light); color:var(--warning-text); }

.activity-feed { display:flex; flex-direction:column; gap:0.1rem; max-height:280px; overflow-y:auto; }
.activity-item { display:flex; gap:0.55rem; padding:0.6rem 0.25rem; border-bottom:1px dashed var(--border-light); cursor:pointer; min-height:44px; }
.activity-item:last-child { border-bottom:none; }
.activity-item:active .act-title, .activity-item:hover .act-title { color: var(--accent); }
.act-dot { width:8px; height:8px; border-radius:50%; margin-top:0.35rem; flex-shrink:0; background:var(--accent); }
.act-title { font-size:0.8rem; font-weight:700; color:var(--text-primary); transition:var(--transition); }
.act-msg { font-size:0.74rem; color:var(--text-secondary); margin-top:0.05rem; }
.act-time { font-size:0.66rem; color:var(--text-muted); margin-top:0.15rem; }

.quick-links-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.5rem; }
.quick-link-tile { background:var(--bg-root); border:1px solid var(--border-light); border-radius:12px; padding:0.8rem 0.4rem; text-align:center; text-decoration:none; color:var(--text-primary); transition:var(--transition); display:block; min-height:64px; }
.quick-link-tile:active { transform: scale(0.96); background:var(--accent-light); }
.quick-link-tile:hover { background:var(--accent-light); color:var(--accent-dark); box-shadow:var(--shadow-card-hover); }
.quick-link-tile i { font-size:1.05rem; display:block; margin-bottom:0.3rem; color:var(--accent); }
.quick-link-tile span { font-size:0.64rem; font-weight:700; }

@media (min-width: 992px) {
  .workspace-row { display:grid; grid-template-columns: repeat(3, 1fr); gap:1rem; }
  .side-card { padding:1.05rem 1.1rem; border-radius:var(--radius-md); }
  .quick-links-grid { grid-template-columns:1fr 1fr; }
  .quick-link-tile span { font-size:0.7rem; }
}

/* ---- Business Intelligence — mobile-first ---- */
.bi-card { padding:1rem 1.05rem; }
.bi-head { display:flex; flex-direction:column; gap:0.7rem; margin-bottom:0.9rem; }
.bi-head h6 { margin:0; font-weight:800; display:flex; align-items:center; gap:0.4rem; font-size:0.94rem; }
.bi-head h6 i { color:var(--accent); }
.bi-tabs { display:flex; gap:0.3rem; background:var(--bg-root); padding:0.28rem; border-radius:999px; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.bi-tabs::-webkit-scrollbar { display:none; }
.bi-tab { border:none; background:transparent; font-size:0.74rem; font-weight:700; padding:0.5rem 0.85rem; border-radius:999px; color:var(--text-secondary); transition:var(--transition); white-space:nowrap; min-height:38px; flex-shrink:0; }
.bi-tab.active { background:linear-gradient(135deg,var(--accent),var(--accent-dark)); color:#fff; box-shadow:var(--shadow-card); }
.bi-panel { display:none; }
.bi-panel.active { display:block; }
.chart-box { background:var(--bg-root); border-radius:14px; padding:0.85rem; height:230px; display:flex; flex-direction:column; }
.chart-box-title { font-size:0.76rem; font-weight:700; color:var(--text-secondary); margin-bottom:0.5rem; }
.chart-box canvas { flex:1; max-width:100%; }

@media (min-width: 768px) {
  .bi-card { padding:1.2rem 1.3rem; }
  .bi-head { flex-direction:row; align-items:center; justify-content:space-between; flex-wrap:wrap; }
  .bi-tabs { flex-wrap:wrap; overflow:visible; }
  .bi-tab { font-size:0.78rem; padding:0.45rem 0.95rem; }
  .chart-box { height:270px; padding:1rem; border-radius:16px; }
  .chart-box-title { font-size:0.8rem; }
}

/* ---- Responsive ---- */
@media (max-width: 1199px) {
  .stat-hero-grid { grid-template-columns:repeat(3,1fr); }
  .ops-row { grid-template-columns:1fr; }
  .workspace-row { grid-template-columns:1fr 1fr; }
}
@media (max-width: 767px) {
  .cmd-header { flex-direction:column; align-items:stretch; }
  .cmd-header-right { justify-content:flex-start; }
  .cmd-title { font-size:1.3rem; }
  .stat-hero-grid { grid-template-columns:1fr 1fr; gap:0.7rem; }
  .stat-hero-card { padding:1rem 1.05rem; border-radius:16px; }
  .stat-hero-card .stat-icon { width:36px; height:36px; border-radius:10px; font-size:0.95rem; }
  .stat-hero-card .stat-value { font-size:1.2rem; }
  .stat-hero-card .stat-label { font-size:0.68rem; }
  .attn-strip { grid-template-columns:1fr 1fr; }
  .attn-pill { padding:0.55rem 0.7rem; font-size:0.76rem; }
  .ops-row { grid-template-columns:1fr; gap:0.7rem; }
  .cash-strip { grid-template-columns:1fr 1fr; }
  .workspace-row { grid-template-columns:1fr; gap:0.7rem; }
  .quick-links-grid { grid-template-columns:1fr 1fr; }
  .mm-grid { grid-template-columns:1fr 1fr; }
  .bi-tabs { width:100%; justify-content:flex-start; overflow-x:auto; }
  .chart-box { height:230px; }
}
@media (max-width: 420px) {
  .stat-hero-grid, .attn-strip, .cash-strip, .mm-grid { grid-template-columns:1fr; }
}

/* =====================================================================
   REDESIGN ADDITIONS — paste into the existing <style> block, anywhere
   after the :root variables are defined. Nothing here overrides existing
   classes; .int-* / .connect-hero / .count-bar are new class names.
   ===================================================================== */

/* ---------- Integration card (Settings: Shopify / Meta / PostEx / TCS) ---------- */
.int-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.int-card { position: relative; background: var(--bg-surface); border: 1px solid var(--border-light); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); overflow: hidden; transition: box-shadow var(--transition), transform var(--transition), border-color var(--transition); }
.int-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-2px); }
.int-card:has(.badge-pill.on) { border-color: color-mix(in srgb, var(--int-accent, var(--accent)) 35%, var(--border-light)); background: linear-gradient(160deg, color-mix(in srgb, var(--int-accent, var(--accent)) 7%, var(--bg-surface)) 0%, var(--bg-surface) 130px); }
.int-head { display: flex; align-items: flex-start; gap: .8rem; padding: 1.15rem 1.25rem; }
.int-icon { width: 48px; height: 48px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; color: #fff; flex-shrink: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.28), 0 4px 12px -4px rgba(26,21,51,0.35); }
.int-meta { flex: 1; min-width: 0; }
/* Phase 12 (addendum §50): Integration Health block, injected into every
   .int-card by loadIntegrationsStatus() below — consistent layout across
   all 5 non-courier providers instead of the previous scattered per-card
   text lines (some providers had a sync-status line, some didn't). */
.int-health { margin: 0 1.25rem .9rem; padding: .55rem .75rem; border-radius: var(--radius-md); background: var(--bg-surface-2); font-size: .78rem; }
.int-health-row { display: flex; justify-content: space-between; gap: .5rem; padding: .1rem 0; }
.int-health-label { color: var(--text-muted); }
.int-health-value { text-align: right; }
.int-health-msg { margin-top: .25rem; color: var(--text-muted); font-size: .74rem; }
/* Phase 12 (addendum §55): Quick Action System — dimmed-but-clickable
   state for menu items whose feature isn't on the current plan.
   Deliberately NOT Bootstrap's .disabled (that sets pointer-events:none,
   which would block the click that's supposed to show the upgrade
   prompt — see assets/js/app.js's gqaApplyGating() for the full story). */
.gqa-locked { opacity: .5; }
.gqa-locked:hover { background: transparent; }
.int-name { font-weight: 800; font-size: .98rem; display: flex; align-items: center; gap: .4rem; color: var(--text-primary); }
.int-desc { font-size: .78rem; color: var(--text-secondary); margin-top: .15rem; line-height: 1.35; }
.badge-pill { font-size: .64rem; font-weight: 800; padding: .22rem .6rem; border-radius: 999px; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; flex-shrink: 0; }
.badge-pill.on { background: rgba(34,197,94,.14); color: #15803d; }
.badge-pill.off { background: var(--bg-surface-2); color: var(--text-muted); }
.badge-pill.err { background: var(--danger-light); color: var(--danger-text); }
.int-body { padding: 0 1.25rem 1.15rem; }
.int-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-bottom: .9rem; }
.int-stat { background: var(--bg-surface-2); border-radius: var(--radius-sm); padding: .55rem .4rem; text-align: center; }
.int-stat b { display: block; font-size: .92rem; font-weight: 800; color: var(--text-primary); }
.int-stat span { font-size: .62rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: .03em; }
.int-drawer { max-height: 0; overflow: hidden; transition: max-height .28s ease; border-top: 1px solid var(--border-light); }
.int-drawer.open { max-height: 700px; }
.int-drawer-inner { padding: 1rem 1.25rem; }

/* ---------- Generic "nothing connected yet" hero — Courier Hub, or any gated panel ---------- */
.connect-hero { background: var(--bg-surface); border: 1px dashed var(--border-medium); border-radius: var(--radius-lg); padding: 2.6rem 2rem; text-align: center; box-shadow: var(--shadow-card); }
.connect-hero .ch-ic { width: 64px; height: 64px; border-radius: 20px; background: var(--accent-gradient); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.7rem; margin: 0 auto 1rem; box-shadow: 0 10px 24px rgba(101,82,232,.28); }
.connect-hero h5 { font-weight: 800; margin: 0 0 .4rem; color: var(--text-primary); }
.connect-hero p { color: var(--text-secondary); font-size: .85rem; max-width: 460px; margin: 0 auto 1.3rem; }
.provider-row { display: flex; gap: .6rem; justify-content: center; flex-wrap: wrap; }
.provider-chip { display: flex; align-items: center; gap: .5rem; border: 1px solid var(--border-light); background: var(--bg-surface-2); border-radius: var(--radius-full); padding: .5rem .95rem .5rem .5rem; font-weight: 700; font-size: .82rem; cursor: pointer; transition: var(--transition); color: var(--text-primary); }
.provider-chip:hover { border-color: var(--accent); background: var(--accent-light); color: var(--accent-dark); }
.provider-chip .ic-sm { width: 26px; height: 26px; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: .85rem; flex-shrink: 0; }

/* ---------- Universal count bar (total always shown; selection is additive, never required) ---------- */
.count-bar { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.count-bar .chip { display: inline-flex; align-items: center; gap: .35rem; padding: .32rem .75rem; border-radius: 999px; background: var(--bg-surface-2); color: var(--text-secondary); font-weight: 700; font-size: .78rem; }
.count-bar .chip b { color: var(--text-primary); font-weight: 800; }
.count-bar .chip.sel { background: var(--accent-light); color: var(--accent); }
.count-bar .chip.sel b { color: var(--accent); }
.count-bar .chip.zero { opacity: .7; }

/* ---------- Smart Insights ---------- */
.smart-insights-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .7rem; }
.insight-card { position: relative; border-radius: var(--radius-lg); padding: 1rem 1.1rem; background: var(--bg-surface); border: 1px solid var(--border-light); box-shadow: var(--shadow-card); transition: box-shadow .2s ease, transform .2s ease; opacity: 0; animation: cmdFadeUp .35s ease forwards; }
.insight-card:nth-child(1) { animation-delay: .02s; } .insight-card:nth-child(2) { animation-delay: .06s; } .insight-card:nth-child(3) { animation-delay: .10s; } .insight-card:nth-child(4) { animation-delay: .14s; } .insight-card:nth-child(5) { animation-delay: .18s; } .insight-card:nth-child(6) { animation-delay: .22s; }
.insight-card:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-2px); }
.insight-card__icon { width: 38px; height: 38px; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-size: 1rem; background: var(--stat-tint); color: var(--stat-fg); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.25); margin-bottom: .65rem; }
.insight-card--warning { --stat-tint: rgba(255, 201, 107, 0.22); --stat-fg: var(--warning-text); }
.insight-card--opportunity { --stat-tint: rgba(47, 217, 168, 0.18); --stat-fg: #0E9268; }
.insight-card--info { --stat-tint: var(--accent-light); --stat-fg: var(--accent); }
.insight-card__title { font-weight: 700; font-size: .87rem; color: var(--text-primary); line-height: 1.35; margin-bottom: .3rem; }
.insight-card__detail { font-size: .78rem; color: var(--text-secondary); line-height: 1.45; }
.insight-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem; }
.insight-card__top .insight-card__icon { margin-bottom: 0; }
.insight-card__badges { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; justify-content: flex-end; }
.insight-card__category { font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); background: var(--bg-surface-2); border-radius: 999px; padding: .18rem .55rem; }
.insight-card__priority { font-size: .66rem; font-weight: 700; text-transform: capitalize; border-radius: 999px; padding: .18rem .55rem; }
.insight-card__priority--high { background: var(--danger-light); color: var(--danger-text); }
.insight-card__priority--medium { background: var(--warning-light); color: var(--warning-text); }
.insight-card__priority--low { background: var(--bg-surface-2); color: var(--text-muted); }
.insight-card__metric-row { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin: .5rem 0; }
.insight-card__metric { display: flex; flex-direction: column; }
.insight-card__metric-label { font-size: .68rem; color: var(--text-muted); }
.insight-card__metric-value { font-size: 1.05rem; font-weight: 800; color: var(--text-primary); }
.insight-card__action { margin-top: .7rem; width: 100%; border: none; background: var(--bg-surface-2); color: var(--accent); font-weight: 700; font-size: .78rem; border-radius: var(--radius-sm); padding: .45rem .6rem; display: flex; align-items: center; justify-content: center; gap: .3rem; transition: var(--transition); }
.insight-card__action:hover { background: var(--accent-light); }
#smartInsightsModalBody .smart-insights-grid { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* =========================================================================
 * OmniTrack AI — offcanvas assistant panel.
 * IMPORTANT: assets/css/ui-system.css and reference-ui.css (loaded AFTER
 * this file — see index.php <head>) already define a complete, more
 * detailed .ot-ai-* component set (launcher, bubbles, avatars, welcome
 * state, suggestion chips, KPI chips). An earlier pass duplicated those
 * rules here too, and because later stylesheets win the cascade, the two
 * competing definitions fought each other — that's what caused the
 * mismatched/broken-dark-mode look. Fixed properly by editing the
 * ui-system.css/reference-ui.css originals in place (see those files) and
 * keeping ONLY the pieces here that those files don't already cover:
 * history panel, table/chart wrap, offcanvas header buttons, and the
 * message form inputs.
 * ------------------------------------------------------------------- */
.ot-ai-panel .offcanvas-header { border-color: var(--border-light) !important; padding: 1.1rem 1.25rem; }
.ot-ai-panel .offcanvas-header .btn-outline-secondary {
    border-color: var(--border-light); color: var(--text-secondary); width: 34px; height: 34px;
    display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-sm); padding: 0;
}
.ot-ai-panel .offcanvas-header .btn-outline-secondary:hover { background: var(--accent-light); border-color: var(--accent); color: var(--accent); }
.ot-ai-panel .offcanvas-title i { color: var(--accent); }
.ot-ai-panel .text-accent { color: var(--accent) !important; letter-spacing: 0.04em; }

#otAiForm { background: var(--bg-surface); border-color: var(--border-light) !important; }
#otAiForm .form-control, #otAiForm .form-select { background: var(--bg-surface-2); border-color: var(--border-light); color: var(--text-primary); }
#otAiForm .form-control:focus, #otAiForm .form-select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-glow, var(--accent-light)); }
#otAiForm .form-text { color: var(--text-muted); font-size: 0.7rem; }
#otAiSend { background: var(--accent); border-color: var(--accent); }
#otAiSend:hover { background: var(--accent-dark, var(--accent)); border-color: var(--accent-dark, var(--accent)); }
