:root {
    --ml-v4-primary: #1769e0;
    --ml-v4-primary-hover: #0f57c7;
    --ml-v4-bg: #f6f7f9;
    --ml-v4-surface: #ffffff;
    --ml-v4-sidebar: #121722;
    --ml-v4-sidebar-raised: #1b2230;
    --ml-v4-text: #171a21;
    --ml-v4-secondary: #525866;
    --ml-v4-muted: #858b98;
    --ml-v4-border: #e1e4e9;
    --ml-v4-border-soft: #eceef2;
    --ml-v4-shadow: 0 1px 2px rgba(18, 23, 34, .035), 0 10px 28px rgba(18, 23, 34, .045);
    --ml-primary: var(--ml-v4-primary);
    --ml-primary-hover: var(--ml-v4-primary-hover);
    --ml-bg: var(--ml-v4-bg);
    --ml-surface: var(--ml-v4-surface);
    --ml-text: var(--ml-v4-text);
    --ml-text-secondary: var(--ml-v4-secondary);
    --ml-text-muted: var(--ml-v4-muted);
    --ml-border: var(--ml-v4-border);
    --ml-border-soft: var(--ml-v4-border-soft);
    --tblr-primary: var(--ml-v4-primary);
    --tblr-primary-rgb: 23, 105, 224;
}

body {
    color: var(--ml-v4-text);
    background: var(--ml-v4-bg);
    font-family: "Segoe UI Variable", "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}

:focus-visible {
    outline: 2px solid rgba(23, 105, 224, .38);
    outline-offset: 2px;
}

/* Login: one task, one visual hierarchy. */
.admin-login-page { background: #f4f5f7; }
.admin-login-layout {
    width: min(100%, 432px);
    min-height: 100dvh;
    margin: 0 auto;
    padding: 48px 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.admin-login-brand-panel {
    min-height: 0;
    padding: 0 2px 20px;
    display: block;
    overflow: visible;
    color: var(--ml-v4-text);
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.admin-login-brand-panel::after,
.admin-login-copy,
.admin-login-meta { display: none; }
.admin-login-brand { gap: 12px; }
.admin-login-brand img {
    width: 42px;
    height: 42px;
    padding: 3px;
    border: 1px solid #d9dde4;
    border-radius: 7px;
    box-shadow: none;
}
.admin-login-brand strong { color: #161a22; font-size: 18px; font-weight: 720; }
.admin-login-brand span { margin-top: 2px; color: #818794; font-size: 11px; }
.admin-login-form-panel {
    min-height: 0;
    padding: 34px;
    display: block;
    background: #fff;
    border: 1px solid #dfe2e7;
    border-radius: 8px;
    box-shadow: var(--ml-v4-shadow);
}
.admin-login-form { max-width: none; }
.admin-login-heading { margin-bottom: 26px; }
.admin-login-heading h2 { margin-bottom: 6px; font-size: 22px; font-weight: 720; letter-spacing: 0; }
.admin-login-heading p { color: #7b818d; font-size: 13px; }
.admin-login-form .form-label { margin-bottom: 7px; color: #3f4550; font-size: 12px; font-weight: 650; }
.admin-login-form .form-control,
.admin-captcha-question,
.admin-captcha-refresh { height: 44px; border-radius: 6px; }
.admin-login-form .form-control { border-color: #d5d9e0; box-shadow: none; }
.admin-login-form .form-control:hover { border-color: #b8bec8; }
.admin-login-form .form-control:focus { border-color: var(--ml-v4-primary); box-shadow: 0 0 0 3px rgba(23, 105, 224, .11); }
.admin-captcha-question { border-color: #cbdcf7; background: #f3f7fd; color: #185dbb; }
.admin-login-submit {
    min-height: 44px;
    border-radius: 6px;
    background: var(--ml-v4-primary);
    border-color: var(--ml-v4-primary);
    box-shadow: none;
}
.admin-login-submit:hover,
.admin-login-submit:focus { background: var(--ml-v4-primary-hover); border-color: var(--ml-v4-primary-hover); }
.admin-login-hint { margin-top: 16px; color: #989da7; font-size: 11px; }

/* Product shell */
.admin-shell-page .layui-header {
    inset: 0 0 auto 252px;
    height: 56px;
    background: rgba(255, 255, 255, .98);
    border-bottom: 1px solid var(--ml-v4-border);
    box-shadow: none;
}
.admin-logo {
    position: fixed;
    inset: 0 auto auto 0;
    z-index: 130;
    width: 252px;
    height: 64px;
    padding: 0 18px;
    gap: 11px;
    background: var(--ml-v4-sidebar);
    border: 0;
}
.admin-logo img { width: 34px; height: 34px; border-radius: 6px; box-shadow: none; }
.admin-logo-title { font-size: 15px; font-weight: 700; }
.admin-logo-subtitle { margin-top: 3px; color: #747d8d; font-size: 9px; text-transform: uppercase; }
.admin-top-left {
    left: 0;
    height: 56px;
    padding-left: 8px;
    gap: 8px;
}
.admin-collapse,
.admin-icon-btn,
.admin-top-right .admin-icon-btn {
    width: 36px;
    height: 36px;
    border-radius: 5px;
    color: #626a78;
}
.admin-collapse:hover,
.admin-icon-btn:hover,
.admin-top-right .admin-icon-btn:hover { background: #f0f2f5; color: #20242c; }
.admin-workspace-heading {
    min-width: 0;
    height: 36px;
    padding-left: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    border-left: 1px solid #e8eaee;
    line-height: 1;
}
.admin-workspace-heading span { color: #959aa4; font-size: 11px; }
.admin-workspace-heading strong {
    max-width: 180px;
    overflow: hidden;
    color: #252a33;
    font-size: 13px;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-top-right { top: 0; right: 10px; height: 56px; gap: 2px; }
.admin-user-chip { height: 36px; margin-left: 6px; padding: 0 10px; border-left-color: #e7e9ed; }
.admin-user-avatar { width: 28px; height: 28px; border-radius: 5px; background: #edf3fc; color: #185dbb; }
.admin-user-copy strong { font-size: 12px; }
.admin-user-copy span { font-size: 10px; }
.env-pill {
    height: 24px;
    padding: 0 8px;
    border-color: #d8e9df;
    border-radius: 4px;
    background: #f3faf6;
    color: #28734b;
    font-size: 10px;
    font-weight: 650;
}
.env-pill::before { width: 5px; height: 5px; }
.nbadge { top: 3px; right: 2px; border-color: #fff; }
.npanel { top: 50px; right: 78px; border-radius: 7px; box-shadow: 0 18px 48px rgba(18, 23, 34, .14); }

.admin-shell-page .layui-side {
    top: 0;
    width: 252px;
    background: var(--ml-v4-sidebar);
}
.admin-shell-page .layui-side-scroll {
    padding: 72px 10px 0;
    display: flex;
    flex-direction: column;
}
.admin-side-context { padding: 2px 10px 11px; line-height: 1.35; }
.admin-side-context span { display: block; color: #596273; font-size: 9px; text-transform: uppercase; }
.admin-side-context strong { display: block; margin-top: 3px; color: #aab2bf; font-size: 11px; font-weight: 600; }
.admin-nav-search {
    height: 36px;
    margin: 0 2px 10px;
    padding: 0 9px;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #2a3342;
    border-radius: 6px;
    background: #181f2b;
    color: #657084;
    cursor: text;
}
.admin-nav-search .lucide { width: 15px; height: 15px; }
.admin-nav-search input {
    min-width: 0;
    flex: 1 1 auto;
    border: 0;
    outline: 0;
    background: transparent;
    color: #d9dee7;
    font-size: 11px;
}
.admin-nav-search input::placeholder { color: #667083; }
.admin-nav-search:focus-within { border-color: #4d73aa; background: #1b2432; }
.admin-nav-search kbd {
    min-width: 18px;
    height: 18px;
    padding: 0;
    display: grid;
    place-items: center;
    border: 1px solid #333e50;
    border-radius: 3px;
    background: #202938;
    color: #6e788a;
    font: 10px/1 inherit;
    box-shadow: none;
}
.admin-shell-page .layui-nav { flex: 1 1 auto; min-height: 0; padding-bottom: 12px; overflow-y: auto; }
.admin-shell-page .layui-nav-item { margin: 1px 0; }
.admin-shell-page .layui-nav-item > a,
.admin-shell-page .layui-nav-child a {
    min-height: 38px;
    padding: 0 10px;
    gap: 10px;
    border-radius: 5px;
    color: #9ba5b5;
    font-size: 12px;
}
.admin-shell-page .layui-nav-item > a > .ml-icon { width: 16px; height: 16px; color: #687386; }
.admin-shell-page .layui-nav-item > a:hover,
.admin-shell-page .layui-nav-child a:hover { background: #1a2230; color: #eef1f6; }
.admin-shell-page .layui-nav-child { margin: 2px 0 5px; padding: 2px 0 2px 14px; }
.admin-shell-page .layui-nav-child a { min-height: 33px; padding-left: 12px; color: #768195; font-size: 11px; }
.admin-shell-page .layui-nav-child a::before { width: 3px; height: 3px; background: #4f5b6e; }
.admin-shell-page .layui-this > a,
.admin-shell-page .layui-nav-child .layui-this > a {
    background: #202a3a !important;
    color: #f4f6fa !important;
    box-shadow: inset 2px 0 0 #4d8df7;
}
.admin-shell-page .layui-this > a > .ml-icon { color: #79a8f6; }
.admin-shell-page .layui-nav-child .layui-this > a::before { background: #79a8f6; }
.admin-side-footer { min-height: 46px; border-top-color: rgba(148, 163, 184, .1); color: #5f697b; }
.admin-side-status i { background: #32b67a; box-shadow: none; }

.admin-shell-page .layui-body { top: 56px; left: 252px; background: var(--ml-v4-bg); }
.layuimini-tabs {
    height: 40px;
    padding: 0 6px;
    gap: 4px;
    background: #fff;
    border-bottom: 1px solid var(--ml-v4-border);
}
#adminCrumb { display: none; }
.tab-scroll { height: 40px; padding: 4px 0; gap: 4px; align-items: center; }
.admin-tab {
    min-width: 0;
    height: 32px;
    padding: 0 30px 0 11px;
    border: 0;
    border-radius: 5px;
    color: #747b88;
    font-size: 11px;
}
.admin-tab:first-child { padding-right: 11px; }
.admin-tab:hover { background: #f3f4f6; color: #353a44; }
.admin-tab.active { background: #edf3fc; color: #185dbb; font-weight: 650; }
.admin-tab.active::after { display: none; }
.tab-close { top: 6px; right: 5px; width: 20px; height: 20px; }
.tab-tools { height: 40px !important; margin-left: 0; padding-left: 4px; border-left-color: #eceef2; }
.tab-tools button { width: 30px; height: 30px; border-radius: 4px; }
.admin-frames { inset: 40px 0 0; }
.admin-frame { background: var(--ml-v4-bg); }
.admin-side-state { top: 8px; left: 260px; width: 40px; height: 40px; }
@media (min-width: 901px) {
    .admin-side-state:checked ~ .layui-header { left: 0; }
    .admin-side-state:checked ~ .layui-header .admin-logo { width: 0; padding: 0; overflow: hidden; }
}

/* Shared inner-page language */
.admin-frame-page {
    padding: 20px 22px 28px;
    background: var(--ml-v4-bg);
    color: var(--ml-v4-text);
    font-size: 12px;
}
.admin-frame-page .panel {
    margin-bottom: 14px;
    padding: 16px;
    border: 1px solid var(--ml-v4-border);
    border-radius: 6px;
    background: #fff;
    box-shadow: none;
}
.admin-frame-page .title {
    margin: 0 0 14px;
    color: #20242c;
    font-size: 18px;
    line-height: 1.35;
    font-weight: 700;
}
.admin-frame-page .admin-form-title {
    min-height: 46px;
    margin: -16px -16px 18px;
    padding: 0 16px;
    border-bottom: 1px solid var(--ml-v4-border-soft);
    color: #252a33;
    font-size: 13px;
    font-weight: 680;
}
.admin-frame-page .admin-form-title::before { display: none; }
.admin-frame-page .layui-form-item { margin-bottom: 17px; }
.admin-frame-page .layui-form-label { color: #3d434e; font-size: 12px; font-weight: 620; }
.admin-frame-page .layui-form-mid,
.admin-frame-page .layui-word-aux { color: #858b98 !important; }
.admin-frame-page .layui-input,
.admin-frame-page .layui-select,
.admin-frame-page .layui-textarea,
.admin-frame-page select {
    border-color: #d6dae1;
    border-radius: 5px;
    background-color: #fff;
    color: #292e37;
    box-shadow: none;
}
.admin-frame-page .layui-input:hover,
.admin-frame-page .layui-select:hover,
.admin-frame-page select:hover { border-color: #bbc1cb; }
.admin-frame-page .layui-input:focus,
.admin-frame-page .layui-textarea:focus,
.admin-frame-page select:focus { border-color: var(--ml-v4-primary) !important; box-shadow: 0 0 0 3px rgba(23, 105, 224, .1); }
.admin-frame-page .layui-btn {
    min-height: 32px;
    padding: 0 13px;
    border-radius: 5px;
    font-size: 12px;
    font-weight: 620;
    box-shadow: none;
}
.admin-frame-page .layui-btn-normal { border-color: var(--ml-v4-primary); background: var(--ml-v4-primary); }
.admin-frame-page .layui-btn-primary { border-color: #d0d4db; background: #fff; color: #414854; }
.admin-frame-page .layui-btn-primary:hover { border-color: #aeb5c0; background: #f7f8fa; color: #20242c; }
.admin-frame-page .layui-btn-warm { border-color: #c86b16; background: #c86b16; }
.admin-frame-page .layui-btn-danger { border-color: #c93c4a; background: #c93c4a; }
.admin-frame-page .layui-btn-xs { min-height: 28px; padding: 0 9px; font-size: 11px; }
.admin-frame-page .admin-toolbar,
.admin-frame-page .site-filter-bar,
.admin-frame-page .site-batch-toolbar {
    margin: -2px 0 13px;
    padding: 0 0 13px;
    gap: 7px;
    border-bottom: 1px solid var(--ml-v4-border-soft);
}
.ml-table-responsive {
    border: 1px solid var(--ml-v4-border);
    border-radius: 6px;
    background: #fff;
    box-shadow: none;
}
.admin-frame-page .layui-table th,
.admin-frame-page .layui-table td {
    height: 40px;
    padding: 7px 10px;
    border-color: var(--ml-v4-border-soft);
    font-size: 11px;
}
.admin-frame-page .layui-table th {
    background: #f7f8fa;
    color: #565d69;
    font-weight: 680;
}
.admin-frame-page .layui-table td { color: #4d5460; }
.admin-frame-page .layui-table tbody tr:hover td { background: #f8faff !important; }
.admin-frame-page .tag { border-radius: 4px; font-size: 10px; font-weight: 650; }
.admin-frame-page .layui-tab-title { gap: 8px; }
.admin-frame-page .layui-tab-title li { min-height: 38px; padding: 0 10px; font-size: 12px; line-height: 38px; }
.admin-frame-page .layui-tab-title .layui-this::after { border-bottom-color: var(--ml-v4-primary); }
.admin-frame-page .layui-quote-nm { border-radius: 5px; background: #f8f9fb; }
.layui-layer { border-radius: 7px !important; box-shadow: 0 20px 60px rgba(18, 23, 34, .2) !important; }
.layui-layer-title { border-radius: 7px 7px 0 0 !important; background: #f7f8fa !important; color: #2b3039 !important; font-weight: 650; }

/* Dashboard: continuous metrics and quieter working surfaces. */
.dashboard-heading { margin: 0 0 14px; align-items: center; }
.dashboard-heading h1 { margin: 3px 0 2px; color: #1d2129; font-size: 20px; font-weight: 720; }
.dashboard-heading p { color: #858b98; font-size: 11px; }
.dashboard-eyebrow { color: #1769e0; font-size: 9px; font-weight: 700; }
.dashboard-date { height: 30px; padding: 0 9px; border-color: #dfe2e7; border-radius: 5px; color: #737a87; font-size: 11px; }
.admin-frame-page .dashboard-stat-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    margin-bottom: 14px;
    overflow: hidden;
    border: 1px solid var(--ml-v4-border);
    border-radius: 6px;
    background: #fff;
}
.admin-frame-page .stat .dashboard-stat {
    min-height: 102px;
    padding: 16px;
    gap: 11px;
    border: 0;
    border-right: 1px solid var(--ml-v4-border-soft);
    border-radius: 0;
    box-shadow: none;
}
.admin-frame-page .stat .dashboard-stat:last-child { border-right: 0; }
.dashboard-stat-icon { width: 36px; height: 36px; border-radius: 6px; }
.dashboard-stat-icon .lucide { width: 17px; height: 17px; }
.tone-blue { background: #edf3fc; color: #1769e0; }
.tone-cyan { background: #edf8f7; color: #247d75; }
.tone-orange { background: #fcf4e9; color: #af621c; }
.tone-green { background: #eef7f1; color: #347a51; }
.tone-violet { background: #f2eff9; color: #6e58a0; }
.admin-frame-page .stat .dashboard-stat .dashboard-stat-copy > span { color: #727986; font-size: 11px; }
.admin-frame-page .stat .dashboard-stat b { margin: 5px 0 2px; color: #20242c; font-size: 23px; font-weight: 720; }
.dashboard-stat-copy small { color: #9ca1aa; font-size: 9px; }
.admin-frame-page .dashboard-grid { gap: 14px; margin-bottom: 14px; }
.admin-frame-page .dashboard-chart-grid { grid-template-columns: minmax(0, 1.35fr) minmax(320px, .85fr); }
.admin-frame-page .dashboard-action-grid { grid-template-columns: minmax(0, 1.35fr) minmax(320px, .85fr); }
.admin-frame-page .dashboard-card { padding: 15px; }
.dashboard-card-title { min-height: 24px; margin-bottom: 10px; color: #2c313a; font-size: 12px; font-weight: 680; }
.dashboard-card-title .lucide { width: 15px; height: 15px; color: #697487; }
.dashboard-card-title small { color: #a0a5ae; font-size: 9px; font-weight: 600; }
#chartClicks,
#chartCategory { height: 248px !important; }
#chartNewSites { height: 220px !important; }
.admin-frame-page .dashboard-quick-actions { grid-template-columns: 1fr; gap: 0; }
.dashboard-action {
    min-height: 54px;
    padding: 8px 2px;
    gap: 10px;
    border: 0;
    border-bottom: 1px solid var(--ml-v4-border-soft);
    border-radius: 0;
    background: transparent;
    color: #3e4551;
    box-shadow: none;
}
.dashboard-action:last-child { border-bottom: 0; }
.dashboard-action:hover { padding-left: 6px; border-color: var(--ml-v4-border-soft); background: #f8f9fb; color: #20242c; box-shadow: none; }
.dashboard-action-icon { width: 31px; height: 31px; border-radius: 5px; }
.dashboard-action-icon .lucide { width: 15px; height: 15px; }
.dashboard-action strong { margin-bottom: 2px; font-size: 11px; }
.dashboard-action small { color: #9298a3; font-size: 9px; }
.admin-frame-page .dashboard-info-card { padding: 15px; }
.admin-frame-page .dashboard-info-table td:first-child { width: 126px; background: #fafbfc; color: #5c6470; }
.dashboard-table-note { color: #8c929d; }

/* Task center uses the same metric-band language. */
.admin-frame-page .task-top {
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--ml-v4-border);
    border-radius: 6px;
    background: #fff;
}
.admin-frame-page .task-card {
    min-height: 86px;
    padding: 14px 15px;
    border: 0;
    border-right: 1px solid var(--ml-v4-border-soft);
    border-radius: 0;
    box-shadow: none;
}
.admin-frame-page .task-card:last-child { border-right: 0; }
.admin-frame-page .task-card span { color: #747b88; font-size: 11px; }
.admin-frame-page .task-card strong { margin-top: 6px; color: #20242c; font-size: 22px; }

/* High-frequency business pages */
.admin-frame-page .settings-grid { gap: 0; }
.admin-frame-page .settings-card {
    padding: 20px 0 6px;
    border: 0;
    border-top: 1px solid var(--ml-v4-border-soft);
    border-radius: 0;
    background: transparent;
}
.admin-frame-page .settings-card:first-child { padding-top: 4px; border-top: 0; }
.admin-frame-page .settings-card .admin-form-title {
    min-height: 30px;
    margin: 0 0 16px;
    padding: 0;
    border: 0;
    color: #343a44;
    font-size: 12px;
}
.admin-frame-page .ac-source-card { border-color: var(--ml-v4-border); box-shadow: none; }
.admin-frame-page .ac-source-card:hover { border-color: #cbd2dc; box-shadow: 0 8px 24px rgba(18, 23, 34, .055); }
.admin-frame-page .ac-source-card .actions .layui-btn {
    border: 1px solid #d2d6dd;
    background: #fff;
    color: #48505c;
}
.admin-frame-page .ac-source-card .actions .layui-btn:first-child {
    border-color: var(--ml-v4-primary);
    background: var(--ml-v4-primary);
    color: #fff;
}
.admin-frame-page .ac-source-card .actions .layui-btn-danger {
    border-color: #efc7cc;
    background: #fff;
    color: #b52d3b;
}
.admin-mobile-section-toggle,
.site-mobile-actions { display: none; }

@media (max-width: 1180px) {
    .admin-frame-page .dashboard-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .admin-frame-page .stat .dashboard-stat { border-bottom: 1px solid var(--ml-v4-border-soft); }
    .admin-frame-page .stat .dashboard-stat:nth-child(3n) { border-right: 0; }
    .admin-frame-page .stat .dashboard-stat:nth-last-child(-n + 2) { border-bottom: 0; }
}

@media (max-width: 900px) {
    .admin-shell-page .layui-header { left: 0; }
    .admin-shell-page .layui-side { width: 260px; transform: translateX(-100%); }
    .admin-shell-page .layui-side-scroll { padding-top: 72px; }
    .admin-shell-page .admin-logo { width: 174px; height: 56px; padding: 0 12px; background: #fff; color: #20242c; }
    .admin-logo img { width: 32px; height: 32px; }
    .admin-logo-subtitle { display: none; }
    .admin-shell-page .admin-top-left { left: 174px; }
    .admin-workspace-heading { display: none; }
    .admin-shell-page .layui-body { left: 0; }
    .admin-side-state { top: 8px; left: 178px; }
    .admin-side-state:checked ~ .layui-side { transform: translateX(0); }
    .admin-side-state:checked ~ .admin-side-backdrop { display: block; }
    .admin-side-backdrop { inset: 0; background: rgba(16, 20, 28, .48); }
    .admin-frame-page .dashboard-chart-grid,
    .admin-frame-page .dashboard-action-grid,
    .admin-frame-page .dashboard-info-grid { grid-template-columns: minmax(0, 1fr); }
    .admin-frame-page .task-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-frame-page .task-card { border-bottom: 1px solid var(--ml-v4-border-soft); }
    .admin-frame-page .task-card:nth-child(2n) { border-right: 0; }
    .admin-frame-page .task-card:nth-last-child(-n + 2) { border-bottom: 0; }
}

@media (max-width: 700px) {
    .admin-login-page { background: #fff; }
    .admin-login-layout { width: 100%; padding: 30px 20px; justify-content: flex-start; }
    .admin-login-brand-panel { padding: 0 0 28px; }
    .admin-login-form-panel { padding: 0; border: 0; border-radius: 0; box-shadow: none; }
    .admin-login-heading { margin-bottom: 24px; }
    .admin-login-heading h2 { font-size: 21px; }
    .admin-shell-page .admin-logo { width: 160px; }
    .admin-shell-page .admin-top-left { left: 160px; }
    .admin-side-state { left: 164px; }
    .admin-top-right { right: 5px; }
    .admin-top-right #reloadFrame,
    .admin-top-right #fullscreenBtn,
    .admin-top-right .env-pill,
    .admin-top-right .admin-user-chip,
    .admin-top-right [aria-label="查看前台"] { display: none !important; }
    .layuimini-tabs,
    .tab-scroll { height: 40px; }
    .admin-frames { top: 40px; }
    .admin-tab { height: 32px; }
    .tab-tools { display: none !important; }
    .admin-frame-page { padding: 12px; }
    .admin-frame-page .panel { margin-bottom: 10px; padding: 13px; }
    .admin-frame-page .admin-form-title { margin: -13px -13px 15px; padding: 0 13px; }
    .admin-frame-page .layui-input,
    .admin-frame-page .layui-select,
    .admin-frame-page .layui-textarea,
    .admin-frame-page select { min-height: 44px; font-size: 16px; }
    .admin-frame-page .layui-btn { min-height: 38px; }
    .admin-mobile-section-toggle {
        width: 100%;
        min-height: 42px;
        padding: 0 11px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        border: 1px solid #d8dce3;
        border-radius: 5px;
        background: #fff;
        color: #424955;
        font-size: 12px;
        font-weight: 620;
        cursor: pointer;
    }
    .admin-mobile-section-toggle > span { display: inline-flex; align-items: center; gap: 8px; }
    .admin-mobile-section-toggle .lucide { width: 16px; height: 16px; }
    .admin-mobile-section-toggle > .lucide:last-child { transition: transform .18s ease; }
    .admin-mobile-section-toggle[aria-expanded="true"] > .lucide:last-child { transform: rotate(180deg); }
    .admin-frame-page .site-filter-bar,
    .admin-frame-page .site-batch-toolbar { display: none !important; }
    .admin-frame-page .site-filter-bar.is-open,
    .admin-frame-page .site-batch-toolbar.is-open { display: flex !important; }
    .admin-frame-page .site-filter-bar.is-open { margin-top: 8px; padding: 12px; border: 1px solid var(--ml-v4-border); border-radius: 5px; background: #f8f9fb; }
    .site-mobile-actions { margin: 10px 0 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .site-mobile-actions > .layui-btn { min-height: 42px; margin: 0; display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
    .site-mobile-actions + .site-batch-toolbar.is-open { margin: -4px 0 12px; padding: 12px; border: 1px solid var(--ml-v4-border); border-radius: 5px; background: #f8f9fb; }
    .dashboard-heading { margin-bottom: 11px; }
    .dashboard-heading h1 { font-size: 18px; }
    .dashboard-heading p,
    .dashboard-eyebrow { display: none; }
    .dashboard-date { height: 28px; }
    .admin-frame-page .dashboard-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-frame-page .stat .dashboard-stat { min-height: 82px; padding: 11px; border-right: 1px solid var(--ml-v4-border-soft); border-bottom: 1px solid var(--ml-v4-border-soft); }
    .admin-frame-page .stat .dashboard-stat:nth-child(2n) { border-right: 0; }
    .admin-frame-page .stat .dashboard-stat:nth-child(3) { border-right: 1px solid var(--ml-v4-border-soft); }
    .admin-frame-page .stat .dashboard-stat:nth-last-child(-n + 2) { border-bottom: 1px solid var(--ml-v4-border-soft); }
    .admin-frame-page .stat .dashboard-stat:last-child { grid-column: 1 / -1; border-right: 0; border-bottom: 0; }
    .dashboard-stat-icon { width: 32px; height: 32px; }
    .admin-frame-page .stat .dashboard-stat b { font-size: 20px; }
    .dashboard-stat-copy small { display: none; }
    #chartClicks,
    #chartCategory,
    #chartNewSites { height: 220px !important; }
    .admin-frame-page .dashboard-card { padding: 13px; }
    .dashboard-action { min-height: 56px; }
    .dashboard-table-note { display: block; margin: 3px 0 0; }
}

/* Shared product components used by high- and low-frequency admin pages. */
.admin-onboarding { display:grid; grid-template-columns:minmax(220px,.8fr) minmax(0,2fr) auto; gap:18px; align-items:center; padding:18px 20px; border:1px solid #d8e4f7; background:#f8fbff; box-shadow:none; }
.admin-onboarding-copy h2 { margin:4px 0 5px; color:#172033; font-size:18px; font-weight:700; }
.admin-onboarding-copy p { margin:0; color:#687386; font-size:12px; line-height:1.7; }
.admin-onboarding-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.admin-onboarding-steps a { min-width:0; padding:10px; display:flex; align-items:center; gap:9px; border:1px solid #e0e8f4; border-radius:6px; background:#fff; color:#263248; text-decoration:none; }
.admin-onboarding-steps a:hover { border-color:var(--ml-v4-primary); background:#fbfdff; }
.admin-onboarding-steps .lucide { width:17px; height:17px; flex:0 0 auto; color:var(--ml-v4-primary); }
.admin-onboarding-steps strong,.admin-onboarding-steps small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-onboarding-steps strong { font-size:12px; font-weight:650; }
.admin-onboarding-steps small { margin-top:3px; color:#8791a1; font-size:10px; }
.admin-onboarding-dismiss { margin:0; white-space:nowrap; }
.admin-onboarding-dismiss .layui-btn { margin:0; }
.admin-page-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
.admin-page-toolbar .toolbar-actions { display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.admin-page-toolbar .layui-btn { margin:0; }
.admin-page-toolbar h1 { margin:4px 0 0; color:#172033; font-size:22px; font-weight:700; }
.admin-filter-drawer { border:1px solid var(--ml-v4-border-soft); border-radius:6px; background:#fafbfc; padding:10px; }
.admin-status-dot { width:7px; height:7px; display:inline-block; border-radius:50%; background:#aab2bf; }
.admin-status-dot.is-ok { background:#17a673; }
.admin-status-dot.is-warn { background:#d99018; }
.admin-status-dot.is-bad { background:#d54848; }
.admin-empty-state { padding:48px 18px; text-align:center; border:1px dashed #dfe5ed; border-radius:7px; color:#8993a3; background:#fbfcfd; }
.admin-empty-state .lucide { width:28px; height:28px; margin-bottom:10px; color:#a7b1bf; }
.admin-empty-state strong { display:block; margin-bottom:5px; color:#596476; font-size:13px; }
.admin-table-compact td,.admin-table-compact th { padding:9px 10px; }
.admin-danger-zone { border-color:#f0d3d3; background:#fffafa; }
.settings-page-panel .settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.settings-page-panel .settings-card { border-color: var(--ml-v4-border); border-radius: 6px; box-shadow: none; }
.settings-page-panel .admin-form-title { border-left-color: var(--ml-v4-primary); background: #fbfcfe; }
.settings-save-bar { position: sticky; bottom: 0; z-index: 4; margin: 18px -18px -6px; padding: 12px 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--ml-v4-border); background: rgba(255,255,255,.96); }
.settings-save-bar span { color: #7e8898; font-size: 11px; }
.settings-save-bar .layui-btn { margin: 0; }
.admin-frame-page .sub-hero, .admin-frame-page .media-head, .admin-frame-page .nd-panel-title { border-radius: 6px; box-shadow: none; }
.admin-frame-page .sub-stat, .admin-frame-page .media-card, .admin-frame-page .nd-source, .admin-frame-page .ac-source-card { box-shadow: none; border-color: var(--ml-v4-border); }
.admin-frame-page .sub-stat:hover, .admin-frame-page .media-card:hover, .admin-frame-page .nd-source:hover, .admin-frame-page .ac-source-card:hover { border-color: #b9c9dc; box-shadow: 0 8px 18px rgba(18,23,34,.05); }
.admin-frame-page .layui-btn { background: var(--ml-v4-primary); border-color: var(--ml-v4-primary); }
.admin-frame-page .layui-btn-primary { color: #536176; background: #fff; border-color: var(--ml-v4-border); }
.admin-frame-page .layui-btn-danger { background: #c94949; border-color: #c94949; }

@media (max-width: 720px) {
    .admin-onboarding { grid-template-columns:1fr; gap:12px; padding:15px; }
    .admin-onboarding-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .admin-onboarding-dismiss { justify-self:start; }
    .settings-page-panel .settings-grid { grid-template-columns: 1fr; }
    .settings-save-bar { margin-left:-13px; margin-right:-13px; padding-left:13px; padding-right:13px; align-items:flex-start; flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
