:root{--bg:#0c1422;--panel:#142034;--border:#2a3a51;--muted:#9badc4;--ink:#edf3fb;--accent:#4b96ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 system-ui,"Microsoft YaHei",sans-serif}a{color:#8ebfff;text-decoration:none}a:hover{text-decoration:underline}aside{width:232px;position:fixed;inset:0 auto 0 0;background:#101c2e;border-right:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column}.brand{font-weight:700;font-size:18px}.brand span{display:inline-grid;place-items:center;background:#3e7cc7;color:white;border-radius:9px;width:38px;height:38px;margin-right:7px}.brand small{font-size:10px;letter-spacing:2px;margin:12px 0 22px;color:var(--muted)}nav{display:grid;gap:5px}nav a{padding:11px 14px;color:#c0cde0;border-radius:8px}nav a.active{background:#203653;color:white;border-left:3px solid var(--accent)}.sidebottom{margin-top:auto;color:var(--muted);padding:10px}main{margin-left:232px;padding:0 28px 24px;min-width:0}header{display:flex;justify-content:space-between;align-items:center;gap:15px;height:70px;border-bottom:1px solid var(--border);color:var(--muted);margin-bottom:24px}h1{font-size:28px;margin:0 0 12px}h2{font-size:18px;margin:0 0 14px}h1 small{font-size:16px}small{display:block;color:var(--muted)}p{margin:10px 0 16px}.muted{color:var(--muted)}.title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:10px 0 18px}.cards{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:14px}.card{border:1px solid var(--border);border-radius:12px;padding:18px;background:var(--panel);display:block;color:var(--ink)}.card span{color:var(--muted)}.card strong{display:block;font-size:34px;margin:10px 0}.card small{font-size:11px}.card:hover{border-color:#5c91d9;text-decoration:none}.panel{border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:20px;margin:18px 0}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:16px}.twocol .panel{margin:0}.narrow{max-width:700px}.statline{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding:9px 0}input,select,textarea{background:#0e1929;color:var(--ink);border:1px solid #3a4c65;padding:10px 11px;border-radius:7px;font:inherit;max-width:100%;min-width:0}textarea{width:100%;min-height:85px;resize:vertical;overflow-wrap:anywhere}input:not([type=checkbox]):not([type=radio]),select{width:100%}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:auto}label{display:block;margin:9px 0}label input,label select{display:block;margin-top:5px}button,.btn{display:inline-block;border:none;background:#347ed9;color:white;border-radius:7px;padding:10px 15px;cursor:pointer;font:600 13px/1.4 system-ui,sans-serif;white-space:nowrap}button:hover,.btn:hover{filter:brightness(1.15);text-decoration:none}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:wait}.secondary{background:#314159}.danger{background:#a43d50}.wide{width:100%}.inline{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.inline input,.inline select{width:auto!important;flex:1;min-width:130px}.filter{margin:18px 0}form button{margin-top:8px}.inline button{margin-top:0}.formgrid{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr));gap:14px}.modepanel{border:1px solid var(--border);padding:13px;border-radius:8px;margin:15px 0}.modecards{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.modecards label{background:#1b2e48;border:1px solid #334b6a;padding:12px;border-radius:8px;cursor:pointer}.modecards input{display:inline;margin-right:6px}.check input{display:inline}summary{cursor:pointer;color:#a4cafa;font-weight:600;overflow-wrap:anywhere}details[open]>summary{margin-bottom:12px}.tablewrap{overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{background:#1b2c44;color:#aabbd1;font-weight:600;white-space:nowrap}th,td{padding:13px 12px;border-bottom:1px solid var(--border);vertical-align:top}td{max-width:350px;overflow-wrap:anywhere}td form input,td form select{min-width:120px;margin-bottom:5px}td button{padding:7px 11px}.actions{display:flex;gap:8px}.fullurl{min-width:260px;min-height:160px;font-family:monospace;font-size:12px}.badge{display:inline-block;border:1px solid #3c5573;padding:4px 9px;border-radius:14px;white-space:nowrap}.notice{border:1px solid #416489;background:#193451;padding:15px;border-radius:9px;margin:15px 0}.error{border-color:#a65b65;background:#3d2535}.pager{display:flex;gap:18px;justify-content:center;margin:20px}.auth{display:grid;place-items:center;min-height:100vh;padding:24px}.authcard{width:min(450px,100%);padding:32px;border:1px solid var(--border);background:var(--panel);border-radius:15px}.authcard h1{font-size:25px;margin-top:22px}.authcard label{margin:16px 0}.authcard .muted{font-size:13px}.authcard form button{margin-top:16px}footer{color:#788ca8;font-size:12px;padding-top:26px}#toast{position:fixed;top:20px;left:50%;transform:translateX(-50%);padding:13px 20px;background:#225a45;border:1px solid #58a586;color:white;border-radius:9px;z-index:500;display:none;max-width:80vw}#toast.error{background:#713345;border-color:#ae6175}#toast.show{display:block}canvas{width:100%;height:220px}hr{border:0;border-top:1px solid var(--border);margin:22px 0}[hidden]{display:none!important}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.formgrid{grid-template-columns:repeat(2,1fr)}.modecards{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){aside{position:static;width:auto;padding:14px}nav{display:flex;overflow:auto}nav a{white-space:nowrap}.sidebottom{display:none}.brand small{display:none}main{margin:0;padding:0 12px 20px}header{height:auto;padding:15px 0;flex-wrap:wrap}.twocol,.formgrid{grid-template-columns:1fr}.title{align-items:flex-start}h1{font-size:24px}.panel{padding:15px}.cards{gap:9px}.card{padding:13px}.card strong{font-size:28px}}

/* FG_LINK_SOURCE_HIGHLIGHT_V1 */
.link-source-device {
    color: #ff4d4f;
    font-size: 16px;
    font-weight: 700;
}


/* FG_LINK_SOURCE_HIGHLIGHT_V2 */
table td small.link-source-device {
    color: #ff3b30 !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.6 !important;
}


/* FG_LINK_SOURCE_HIGHLIGHT_V3 */
.link-source-device,
small.link-source-device {
    color: red !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    opacity: 1 !important;
}


/* FG_LIVE_REFRESH_COMPACT_V1 */
.live-refresh-box{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:6px !important;
    margin:4px 0 8px auto !important;
    width:fit-content !important;
    font-size:13px !important;
    line-height:1 !important;
}

.live-refresh-box > span:first-child{
    font-size:13px !important;
    white-space:nowrap !important;
}

.live-refresh-box select#liveRefreshInterval{
    width:105px !important;
    min-width:105px !important;
    height:30px !important;
    padding:2px 26px 2px 8px !important;
    font-size:13px !important;
    margin:0 !important;
}

.live-refresh-box #liveRefreshStatus{
    font-size:12px !important;
    white-space:nowrap !important;
    opacity:.75 !important;
}

/* FG_LINK_AUTO_CHECK_UI_V1 */
.link-auto-check{
    line-height:1.7;
    min-width:170px;
}
.link-auto-check strong{
    font-size:16px;
    font-weight:800;
}
.link-auto-check small{
    font-size:13px;
    opacity:.85;
}
.check-ok{color:#32d583 !important;}
.check-bad{color:#ff4d4f !important;}
.check-warn{color:#fdb022 !important;}
.check-none{color:#98a2b3 !important;}

/* FG_LINK_CHECK_TOOLBAR_V1 */
.fg-link-check-toolbar{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    margin:0 0 8px auto;
    white-space:nowrap;
    font-size:13px;
}
.fg-check-inline{
    display:inline-flex;
    align-items:center;
    gap:5px;
    margin:0;
}
.fg-check-title{font-size:13px;}
.fg-check-state{font-size:12px;opacity:.8;}
.fg-check-select{
    width:auto !important;
    min-width:82px !important;
    height:30px !important;
    padding:2px 24px 2px 8px !important;
    margin:0 !important;
    font-size:12px !important;
}
.fg-check-now{
    min-height:30px !important;
    height:30px !important;
    padding:3px 10px !important;
    font-size:12px !important;
}
.fg-check-switch{
    position:relative;
    width:36px;
    height:20px;
    padding:0;
    border:0;
    border-radius:12px;
    background:#667085;
    cursor:pointer;
}
.fg-check-switch span{
    position:absolute;
    width:16px;
    height:16px;
    left:2px;
    top:2px;
    border-radius:50%;
    background:white;
}
.fg-check-switch.is-on{background:#2e90fa;}
.fg-check-switch.is-on span{left:18px;}

/* FG_AUTO_FILTER_FINAL_V1 */
.fg-auto-status-filter{
    font-size:13px !important;
    height:34px !important;
    line-height:1.6 !important;
}
.fg-auto-status-filter option{
    font-size:13px !important;
}
.fg-delete-selected-form{
    display:flex !important;
    justify-content:flex-end !important;
    align-items:center !important;
    margin:0 0 8px auto !important;
}
.fg-delete-selected{
    width:auto !important;
    min-width:76px !important;
    height:30px !important;
    min-height:30px !important;
    padding:3px 10px !important;
    margin:0 !important;
    font-size:13px !important;
    line-height:1.2 !important;
}

/* FG_LINKS_LAYOUT_FIX_V2 */

/* 自动检测筛选 */
select.fg-auto-status-filter{
    height:42px !important;
    min-height:42px !important;
    font-size:16px !important;
    font-weight:600 !important;
    line-height:1.4 !important;
    padding:6px 34px 6px 14px !important;
    opacity:1 !important;
}

select.fg-auto-status-filter option{
    font-size:16px !important;
    font-weight:500 !important;
}

/* 删除所选：不要旧的大面板 */
form#linksBulk.fg-delete-selected-form{
    display:flex !important;
    width:auto !important;
    min-height:0 !important;
    padding:0 !important;
    margin:10px 0 8px 0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    justify-content:flex-start !important;
    align-items:center !important;
}

/* 删除按钮 */
form#linksBulk .fg-delete-selected{
    width:auto !important;
    min-width:88px !important;
    height:36px !important;
    min-height:36px !important;
    padding:5px 13px !important;
    margin:0 !important;
    font-size:14px !important;
    font-weight:700 !important;
}

/* FG_FAIL_COUNT_UI_V1 */
.check-fail-count{
    display:block !important;
    margin-top:4px !important;
    font-size:12px !important;
    line-height:1.4 !important;
    opacity:.82 !important;
}

/* Front login wallpaper */
body.auth.front-login-bg {
    background-image: url('/static/front-login-bg.png?v=20261005') !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-attachment: fixed !important;
}

body.auth.front-login-bg .authcard {
    background: rgba(18,34,58,.82) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

/* ===== Dashboard V2.1 折叠功能卡片布局 ===== */

main > details.panel {
    display: inline-block;
    vertical-align: top;
    width: calc(25% - 14px);
    min-height: 88px;
    margin: 0 10px 18px 0;
    padding: 0;
    box-sizing: border-box;
    overflow: visible;
}

main > details.panel > summary {
    min-height: 88px;
    padding: 18px 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 7px;
    cursor: pointer;
    border-radius: 12px;
}

main > details.panel > summary strong {
    font-size: 16px;
}

main > details.panel > summary .muted {
    font-size: 13px;
    line-height: 1.4;
}

/* 展开以后占满整行，方便显示趋势图、表格等详细内容 */
main > details.panel[open] {
    display: block;
    width: 100%;
    min-height: 0;
    margin: 0 0 18px 0;
    padding: 0 18px 18px;
}

main > details.panel[open] > summary {
    min-height: 64px;
    margin: 0 -18px 16px;
    padding: 16px 18px;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
}

/* 中等屏幕：3列 */
@media (max-width: 1300px) {
    main > details.panel {
        width: calc(33.333% - 14px);
    }

    main > details.panel[open] {
        width: 100%;
    }
}

/* 小屏幕：2列 */
@media (max-width: 900px) {
    main > details.panel {
        width: calc(50% - 12px);
    }

    main > details.panel[open] {
        width: 100%;
    }
}

/* 手机：1列 */
@media (max-width: 600px) {
    main > details.panel {
        display: block;
        width: 100%;
        margin-right: 0;
    }
}


/* ===== Dashboard V2.1 展开层级增强 ===== */

/* 收起的小功能卡 */
main > details.panel:not([open]) {
    background: #142238;
    border: 1px solid #263a55;
    box-shadow: none;
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

main > details.panel:not([open]):hover {
    transform: translateY(-2px);
    border-color: #4b96f3;
    background: #182a44;
}

main > details.panel:not([open]) > summary {
    background: transparent;
}

/* 展开以后明显成为“大面板” */
main > details.panel[open] {
    position: relative;
    background: #101d30;
    border: 1px solid #3d6592;
    border-left: 5px solid #4b96f3;
    border-radius: 14px;
    box-shadow:
        0 14px 35px rgba(0,0,0,.28),
        0 0 0 1px rgba(75,150,243,.06);
    padding: 0 22px 24px;
}

/* 展开标题独立出来 */
main > details.panel[open] > summary {
    background: #192b45;
    border-bottom: 1px solid #345273;
    border-radius: 10px 10px 0 0;
    margin: 0 -22px 22px;
    padding: 17px 20px;
}

main > details.panel[open] > summary strong {
    font-size: 18px;
    color: #eaf4ff;
}

main > details.panel[open] > summary .muted {
    color: #8fb9e8;
}

/* 展开区域内部的小卡片再压暗一级 */
main > details.panel[open] .card {
    background: #132137;
    border-color: #29405d;
    box-shadow: none;
}

/* 展开区域内部标题 */
main > details.panel[open] h2,
main > details.panel[open] h3 {
    color: #edf6ff;
}

/* 表格也和外层区分 */
main > details.panel[open] .tablewrap {
    background: #0d1929;
    border: 1px solid #263c57;
    border-radius: 10px;
    padding: 8px;
}

/* 展开态加一个很轻的标识 */
main > details.panel[open]::before {
    content: "已展开";
    position: absolute;
    right: 18px;
    top: 18px;
    font-size: 12px;
    color: #83bfff;
    opacity: .8;
    pointer-events: none;
}


/* ===== Dashboard V2.1 功能卡最终规整 ===== */

/* 桌面端：严格四列 */
main > details.panel:not([open]) {
    display: inline-block !important;
    vertical-align: top;
    width: calc(25% - 15px) !important;
    height: 112px;
    min-height: 112px;
    margin: 0 15px 18px 0 !important;
    padding: 0 !important;
    border-radius: 12px;
}

/* 收起状态标题区域完全撑满 */
main > details.panel:not([open]) > summary {
    width: 100%;
    height: 110px;
    min-height: 110px;
    padding: 20px !important;
    margin: 0 !important;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;

    box-sizing: border-box;
    border-radius: 12px;
}

/* 主标题 */
main > details.panel:not([open]) > summary strong {
    display: block;
    font-size: 16px;
    line-height: 1.4;
    margin-bottom: 6px;
}

/* 副标题 */
main > details.panel:not([open]) > summary .muted {
    display: block;
    font-size: 13px;
    line-height: 1.4;
    min-height: 18px;
}

/* 展开状态始终独占整行 */
main > details.panel[open] {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 0 20px 0 !important;
}

/* 展开标题不继承小卡高度 */
main > details.panel[open] > summary {
    width: auto;
    height: auto;
    min-height: 64px;
}

/* 卡片悬停稍微浮起 */
main > details.panel:not([open]):hover {
    transform: translateY(-3px);
}

/* 1300 以下三列 */
@media (max-width: 1300px) {
    main > details.panel:not([open]) {
        width: calc(33.333% - 14px) !important;
    }
}

/* 900 以下两列 */
@media (max-width: 900px) {
    main > details.panel:not([open]) {
        width: calc(50% - 12px) !important;
    }
}

/* 手机一列 */
@media (max-width: 600px) {
    main > details.panel:not([open]) {
        display: block !important;
        width: 100% !important;
        margin-right: 0 !important;
    }
}


/* =========================================================
   Dashboard V2.1 FINAL POLISH
   统一网格 + 立体卡片
   ========================================================= */

/* ---------- 顶部数据卡：桌面端 5 个整齐一排 ---------- */

main > .cards:first-of-type {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 16px !important;
    width: 100%;
    margin-bottom: 20px;
}

main > .cards:first-of-type > .card {
    width: auto !important;
    min-width: 0;
    min-height: 142px;

    background:
        linear-gradient(
            145deg,
            #182840 0%,
            #142238 55%,
            #111e31 100%
        );

    border: 1px solid #2b405d;
    border-top-color: #3b5678;

    border-radius: 14px;

    box-shadow:
        0 8px 20px rgba(0,0,0,.20),
        inset 0 1px 0 rgba(255,255,255,.035);

    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

main > .cards:first-of-type > .card:hover {
    transform: translateY(-3px);
    border-color: #4a7db5;

    box-shadow:
        0 13px 28px rgba(0,0,0,.27),
        0 0 0 1px rgba(75,150,243,.08),
        inset 0 1px 0 rgba(255,255,255,.05);
}


/* ---------- 下面功能卡：严格 4 + 3 ---------- */

main > details.panel:not([open]) {
    position: relative;

    display: inline-block !important;
    vertical-align: top;

    width: calc(25% - 15px) !important;
    height: 116px !important;
    min-height: 116px !important;

    margin: 0 15px 18px 0 !important;
    padding: 0 !important;

    background:
        linear-gradient(
            145deg,
            #192a43 0%,
            #15243a 55%,
            #111f33 100%
        ) !important;

    border: 1px solid #2b415f !important;
    border-top-color: #405d82 !important;

    border-radius: 14px !important;

    box-shadow:
        0 8px 18px rgba(0,0,0,.22),
        inset 0 1px 0 rgba(255,255,255,.04);

    overflow: hidden;

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}


/* 卡片顶部轻微高光 */
main > details.panel:not([open])::after {
    content: "";
    position: absolute;

    left: 16px;
    right: 16px;
    top: 0;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(120,180,255,.38),
            transparent
        );

    pointer-events: none;
}


/* 鼠标经过 */
main > details.panel:not([open]):hover {
    transform: translateY(-4px);

    border-color: #4b82bd !important;

    box-shadow:
        0 14px 28px rgba(0,0,0,.30),
        0 0 0 1px rgba(75,150,243,.08),
        inset 0 1px 0 rgba(255,255,255,.05);
}


/* 功能卡内部统一 */
main > details.panel:not([open]) > summary {
    width: 100%;
    height: 114px !important;
    min-height: 114px !important;

    padding: 20px !important;
    margin: 0 !important;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;

    box-sizing: border-box;

    background: transparent !important;
    border: 0 !important;
}


/* 功能标题 */
main > details.panel:not([open]) > summary strong {
    font-size: 17px !important;
    font-weight: 700;

    line-height: 1.35;

    margin: 0 0 8px 0 !important;

    color: #d9ecff;
}


/* 功能副标题 */
main > details.panel:not([open]) > summary .muted {
    font-size: 13px !important;
    line-height: 1.4;

    color: #8faac7 !important;
}


/* ---------- 展开后的大面板 ---------- */

main > details.panel[open] {
    width: 100% !important;

    margin: 4px 0 24px 0 !important;

    background:
        linear-gradient(
            180deg,
            #101f33 0%,
            #0d1929 100%
        ) !important;

    border: 1px solid #365a82 !important;
    border-left: 5px solid #4b9cff !important;

    border-radius: 15px !important;

    box-shadow:
        0 18px 42px rgba(0,0,0,.32),
        0 0 0 1px rgba(75,156,255,.06) !important;
}


/* 展开标题 */
main > details.panel[open] > summary {
    min-height: 66px !important;

    background:
        linear-gradient(
            90deg,
            #1d3554 0%,
            #182b45 65%,
            #16273e 100%
        ) !important;

    border-bottom: 1px solid #355576 !important;
}


/* 展开里面的数据卡稍微压暗 */
main > details.panel[open] .card {
    background:
        linear-gradient(
            145deg,
            #14243a,
            #101d30
        ) !important;

    border: 1px solid #2b425f !important;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.025) !important;
}


/* ---------- 响应式 ---------- */

@media (max-width: 1400px) {

    main > .cards:first-of-type {
        grid-template-columns: repeat(3, minmax(0,1fr)) !important;
    }

    main > details.panel:not([open]) {
        width: calc(33.333% - 14px) !important;
    }
}

@media (max-width: 900px) {

    main > .cards:first-of-type {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }

    main > details.panel:not([open]) {
        width: calc(50% - 12px) !important;
    }
}

@media (max-width: 600px) {

    main > .cards:first-of-type {
        grid-template-columns: 1fr !important;
    }

    main > details.panel:not([open]) {
        display: block !important;
        width: 100% !important;
        margin-right: 0 !important;
    }
}


/* =========================================================
   Dashboard 顶部统计卡：颜色区分 + 立体增强
   ========================================================= */

main > .cards:first-of-type > .card {
    position: relative;
    overflow: hidden;

    background:
        linear-gradient(
            145deg,
            #1a2b45 0%,
            #14243a 55%,
            #101d30 100%
        ) !important;

    border: 1px solid #304967 !important;

    box-shadow:
        0 10px 24px rgba(0,0,0,.26),
        inset 0 1px 0 rgba(255,255,255,.055),
        inset 0 -1px 0 rgba(0,0,0,.18) !important;
}

/* 顶部彩色高光线 */
main > .cards:first-of-type > .card::before {
    content: "";
    position: absolute;
    left: 18px;
    right: 18px;
    top: 0;
    height: 3px;
    border-radius: 0 0 4px 4px;
}

/* 数字统一加强 */
main > .cards:first-of-type > .card strong {
    display: block;
    font-size: 38px !important;
    line-height: 1.05;
    font-weight: 800 !important;
    letter-spacing: -1px;
    margin: 14px 0 16px;
}

/* 1 今日上传：蓝 */
main > .cards:first-of-type > .card:nth-child(1)::before {
    background: #4b9cff;
}
main > .cards:first-of-type > .card:nth-child(1) strong {
    color: #69adff !important;
    text-shadow: 0 0 18px rgba(75,156,255,.22);
}

/* 2 今日新增：绿 */
main > .cards:first-of-type > .card:nth-child(2)::before {
    background: #4fd1a1;
}
main > .cards:first-of-type > .card:nth-child(2) strong {
    color: #66ddb0 !important;
    text-shadow: 0 0 18px rgba(79,209,161,.20);
}

/* 3 链接总数：紫 */
main > .cards:first-of-type > .card:nth-child(3)::before {
    background: #a78bfa;
}
main > .cards:first-of-type > .card:nth-child(3) strong {
    color: #b9a5ff !important;
    text-shadow: 0 0 18px rgba(167,139,250,.20);
}

/* 4 在线设备：青 */
main > .cards:first-of-type > .card:nth-child(4)::before {
    background: #40c9e8;
}
main > .cards:first-of-type > .card:nth-child(4) strong {
    color: #63d5ed !important;
    text-shadow: 0 0 18px rgba(64,201,232,.20);
}

/* 5 入口账号：金 */
main > .cards:first-of-type > .card:nth-child(5)::before {
    background: #f0b95a;
}
main > .cards:first-of-type > .card:nth-child(5) strong {
    color: #f4c66f !important;
    text-shadow: 0 0 18px rgba(240,185,90,.20);
}

/* 标签稍亮 */
main > .cards:first-of-type > .card small {
    color: #9eb7d2 !important;
    font-weight: 600;
}

/* 底部说明降低一点亮度，让数字更突出 */
main > .cards:first-of-type > .card span {
    color: #89a3bf !important;
}

/* Hover：真正有一点浮起来的感觉 */
main > .cards:first-of-type > .card:hover {
    transform: translateY(-5px) !important;

    border-color: #4b6d94 !important;

    box-shadow:
        0 17px 34px rgba(0,0,0,.34),
        0 0 0 1px rgba(100,170,255,.07),
        inset 0 1px 0 rgba(255,255,255,.07) !important;
}


/* ===== Dashboard 顶部统计卡专用 V4 ===== */

.dashboard-metrics {
    display: grid !important;
    grid-template-columns: repeat(5,minmax(0,1fr)) !important;
    gap: 16px !important;
    width: 100%;
    margin-bottom: 22px;
}

.dashboard-metrics .card {
    position: relative;
    min-width: 0;
    min-height: 150px;
    overflow: hidden;

    background:
        radial-gradient(circle at 85% 0%,
            rgba(80,145,220,.10),
            transparent 38%),
        linear-gradient(145deg,#1b2d48,#14243a 58%,#101d30) !important;

    border: 1px solid #304b6b !important;
    border-radius: 15px !important;

    box-shadow:
        0 12px 25px rgba(0,0,0,.30),
        inset 0 1px 0 rgba(255,255,255,.07),
        inset 0 -1px 0 rgba(0,0,0,.22) !important;

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.dashboard-metrics .card::before {
    content:"";
    position:absolute;
    top:0;
    left:16px;
    right:16px;
    height:4px;
    border-radius:0 0 5px 5px;
}

.dashboard-metrics .card::after {
    content:"";
    position:absolute;
    width:90px;
    height:90px;
    right:-30px;
    top:-35px;
    border-radius:50%;
    opacity:.10;
    filter:blur(4px);
    pointer-events:none;
}

.dashboard-metrics .card strong {
    display:block !important;
    font-size:40px !important;
    line-height:1 !important;
    font-weight:800 !important;
    letter-spacing:-1px;
    margin:16px 0 17px !important;
}

.dashboard-metrics .card small {
    color:#a6bdd6 !important;
    font-weight:600;
}

.dashboard-metrics .card span {
    color:#8da7c3 !important;
}

/* 今日上传：蓝 */
.dashboard-metrics .metric-upload::before {
    background:#4b9cff !important;
}
.dashboard-metrics .metric-upload::after {
    background:#4b9cff !important;
}
.dashboard-metrics .metric-upload strong {
    color:#66adff !important;
    text-shadow:0 0 20px rgba(75,156,255,.30) !important;
}

/* 今日新增：绿色 */
.dashboard-metrics .metric-new::before {
    background:#43d39e !important;
}
.dashboard-metrics .metric-new::after {
    background:#43d39e !important;
}
.dashboard-metrics .metric-new strong {
    color:#62dfae !important;
    text-shadow:0 0 20px rgba(67,211,158,.27) !important;
}

/* 链接总数：紫色 */
.dashboard-metrics .metric-links::before {
    background:#9a83ff !important;
}
.dashboard-metrics .metric-links::after {
    background:#9a83ff !important;
}
.dashboard-metrics .metric-links strong {
    color:#b39fff !important;
    text-shadow:0 0 20px rgba(154,131,255,.27) !important;
}

/* 在线设备：青色 */
.dashboard-metrics .metric-device::before {
    background:#36c9e8 !important;
}
.dashboard-metrics .metric-device::after {
    background:#36c9e8 !important;
}
.dashboard-metrics .metric-device strong {
    color:#59d7ef !important;
    text-shadow:0 0 20px rgba(54,201,232,.27) !important;
}

/* 入口账号：金色 */
.dashboard-metrics .metric-account::before {
    background:#efb64f !important;
}
.dashboard-metrics .metric-account::after {
    background:#efb64f !important;
}
.dashboard-metrics .metric-account strong {
    color:#f4c56a !important;
    text-shadow:0 0 20px rgba(239,182,79,.27) !important;
}

.dashboard-metrics .card:hover {
    transform:translateY(-5px) !important;
    border-color:#527aa5 !important;

    box-shadow:
        0 18px 36px rgba(0,0,0,.38),
        0 0 0 1px rgba(90,165,255,.09),
        inset 0 1px 0 rgba(255,255,255,.09) !important;
}

@media(max-width:1400px){
    .dashboard-metrics {
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
}

@media(max-width:900px){
    .dashboard-metrics {
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}

@media(max-width:600px){
    .dashboard-metrics {
        grid-template-columns:1fr !important;
    }
}


/* =========================================================
   Dashboard 固定信息卡 V1
   ========================================================= */

.overview-info-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    margin:22px 0 28px;
}

.overview-info-card {
    position:relative;
    min-height:205px;
    padding:22px;
    box-sizing:border-box;

    display:flex;
    flex-direction:column;

    background:
        radial-gradient(circle at 100% 0%,
            rgba(83,151,230,.08),
            transparent 42%),
        linear-gradient(145deg,#192b45,#14243a 58%,#101d30);

    border:1px solid #304967;
    border-top-color:#45658b;
    border-radius:15px;

    box-shadow:
        0 11px 25px rgba(0,0,0,.26),
        inset 0 1px 0 rgba(255,255,255,.055);

    transition:transform .18s ease,
               border-color .18s ease,
               box-shadow .18s ease;
}

.overview-info-card:hover {
    transform:translateY(-4px);
    border-color:#4d79a8;

    box-shadow:
        0 17px 34px rgba(0,0,0,.34),
        inset 0 1px 0 rgba(255,255,255,.07);
}

.info-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:20px;
}

.info-head h3 {
    margin:0 0 6px;
    font-size:18px;
    color:#e6f2ff;
}

.info-head small {
    color:#8ea8c4;
    font-size:13px;
}

.info-icon {
    color:#69adff;
    font-size:18px;
}

.info-stats {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-bottom:18px;
}

.info-stats-3 {
    grid-template-columns:repeat(3,minmax(0,1fr));
}

.info-stats > div {
    padding:12px 14px;
    background:rgba(8,20,35,.32);
    border:1px solid #29415e;
    border-radius:10px;
}

.info-stats span {
    display:block;
    margin-bottom:7px;
    font-size:12px;
    color:#829db9;
}

.info-stats strong {
    font-size:25px;
    line-height:1;
    color:#dcecff;
}

.info-main-number {
    display:flex;
    align-items:baseline;
    gap:8px;
    margin:5px 0 24px;
}

.info-main-number strong {
    font-size:42px;
    line-height:1;
    color:#65b0ff;
}

.info-main-number span {
    color:#90abc6;
}

.backup-time {
    margin:7px 0 27px;
    font-size:20px;
    font-weight:700;
    color:#f0c36b;
}

.info-action {
    margin-top:auto;
    color:#66adff;
    font-weight:700;
    text-decoration:none;
}

.info-action:hover {
    color:#91c6ff;
}

.info-foot {
    margin-top:auto;
    color:#829db9;
    font-size:13px;
}

/* 每张卡顶部一点颜色区别 */
.info-links    { border-top:3px solid #4b9cff; }
.info-accounts { border-top:3px solid #58d6a7; }
.info-devices  { border-top:3px solid #42cbe8; }
.info-system   { border-top:3px solid #9a83ff; }
.info-backup   { border-top:3px solid #efb64f; }
.info-recent   { border-top:3px solid #5ba6ff; }

@media(max-width:1100px) {
    .overview-info-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:650px) {
    .overview-info-grid {
        grid-template-columns:1fr;
    }
}


/* =========================================================
   Dashboard 信息卡内部数据框统一 V2
   ========================================================= */

/* 采集设备、最近发现链接的大数字区域做成内层立体框 */
.info-devices .info-main-number,
.info-recent .info-main-number {
    min-height: 76px;
    margin: 4px 0 18px !important;
    padding: 14px 16px;

    display:flex;
    align-items:center;
    gap:9px;

    background:
        linear-gradient(
            145deg,
            rgba(17,35,57,.96),
            rgba(12,27,45,.96)
        );

    border:1px solid #294563;
    border-top-color:#365b80;
    border-radius:11px;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.045),
        inset 0 -1px 0 rgba(0,0,0,.20),
        0 5px 12px rgba(0,0,0,.12);

    box-sizing:border-box;
}

/* 备份时间也做成同样的内框 */
.info-backup .backup-time {
    min-height:76px;
    margin:4px 0 18px !important;
    padding:14px 16px;

    display:flex;
    align-items:center;

    background:
        linear-gradient(
            145deg,
            rgba(17,35,57,.96),
            rgba(12,27,45,.96)
        );

    border:1px solid #294563;
    border-top-color:#365b80;
    border-radius:11px;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.045),
        inset 0 -1px 0 rgba(0,0,0,.20),
        0 5px 12px rgba(0,0,0,.12);

    box-sizing:border-box;
}

/* 三个内框数字稍微突出 */
.info-devices .info-main-number strong,
.info-recent .info-main-number strong {
    font-size:38px !important;
    font-weight:800;
}

/* 在线设备继续使用蓝青色 */
.info-devices .info-main-number strong {
    color:#55cfee !important;
}

/* 最近记录使用蓝色 */
.info-recent .info-main-number strong {
    color:#62adff !important;
}

/* 备份时间金色 */
.info-backup .backup-time {
    color:#f4c467 !important;
    font-size:19px;
    font-weight:750;
}



/* FG_SPEECH_UI_V2 */
.fg-check-inline{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
  margin:0 8px 8px 0 !important;
  vertical-align:middle !important;
}

.fg-check-switch.fg-check-switch-on,
.fg-check-switch.is-on{
  background:#2e90fa !important;
  box-shadow:0 0 0 1px rgba(46,144,250,.25);
}

.fg-check-switch.fg-check-switch-on span,
.fg-check-switch.is-on span{
  left:18px !important;
}

.fg-check-inline .fg-check-select{
  height:38px !important;
  min-height:38px !important;
  box-sizing:border-box !important;
}

.fg-check-inline button:not(.fg-check-switch){
  height:38px !important;
  min-height:38px !important;
  min-width:118px !important;
  padding:0 16px !important;
  box-sizing:border-box !important;
  border-radius:8px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:14px !important;
  line-height:1 !important;
}

.fg-check-run{
  background:#2e90fa !important;
  border:1px solid #2e90fa !important;
  color:#fff !important;
  opacity:1 !important;
  cursor:pointer !important;
  pointer-events:auto !important;
}

.fg-check-run:hover{
  filter:brightness(1.08);
}

form[action="/admin/links/speech-observer"] .fg-check-select{
  min-width:360px !important;
  max-width:520px !important;
}

@media (max-width:900px){
  .fg-check-inline{
    flex-wrap:wrap !important;
  }

  form[action="/admin/links/speech-observer"] .fg-check-select{
    min-width:260px !important;
    max-width:100% !important;
  }
}

/* FG_SPEECH_UI_V3 */

.fg-check-inline,
.fg-speech-run-form,
form[action="/admin/links/speech-observer"]{
    display:inline-flex !important;
    align-items:center !important;
    gap:10px !important;
    vertical-align:middle !important;
    margin:0 8px 10px 0 !important;
}

/* 开关尺寸 */
.fg-check-switch{
    width:42px !important;
    height:24px !important;
    min-width:42px !important;
    padding:0 !important;
    border-radius:20px !important;
    background:#64748b !important;
    border:0 !important;
    position:relative !important;
}

.fg-check-switch span{
    position:absolute !important;
    width:18px !important;
    height:18px !important;
    top:3px !important;
    left:3px !important;
    border-radius:50% !important;
    background:#fff !important;
    transition:.2s !important;
}

/* 开启必须明显变蓝 */
.fg-check-switch.is-on,
.fg-check-switch.fg-check-switch-on{
    background:#2e90fa !important;
    box-shadow:0 0 0 2px rgba(46,144,250,.18) !important;
}

.fg-check-switch.is-on span,
.fg-check-switch.fg-check-switch-on span{
    left:21px !important;
}

/* 所有发言检测区域按钮统一 */
.fg-speech-btn,
.fg-check-inline button:not(.fg-check-switch),
form[action="/admin/links/speech-observer"] button{
    height:40px !important;
    min-height:40px !important;
    min-width:126px !important;
    padding:0 18px !important;
    border-radius:8px !important;
    box-sizing:border-box !important;
    font-size:14px !important;
    font-weight:600 !important;
    line-height:40px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
}

/* 立即检测按钮 */
.fg-speech-run-btn{
    background:#2e90fa !important;
    border:1px solid #2e90fa !important;
    color:#fff !important;
    opacity:1 !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    box-shadow:none !important;
}

.fg-speech-run-btn:hover{
    filter:brightness(1.08) !important;
}

/* 下拉框统一高度 */
.fg-check-select,
form[action="/admin/links/speech-observer"] select{
    height:40px !important;
    min-height:40px !important;
    border-radius:8px !important;
    box-sizing:border-box !important;
}

/* 观察账号不要过宽 */
form[action="/admin/links/speech-observer"] select{
    width:350px !important;
    min-width:350px !important;
}

/* 防止任何旧 disabled 样式把立即检测变灰 */
.fg-speech-run-btn:disabled{
    opacity:1 !important;
    cursor:pointer !important;
    pointer-events:auto !important;
    background:#2e90fa !important;
    color:#fff !important;
}


/* FG_SPEECH_BUTTON_V4 */
.fg-speech-run-btn{
    width:126px !important;
    min-width:126px !important;
    height:40px !important;
    min-height:40px !important;

    padding:0 18px !important;
    margin-left:8px !important;

    border:1px solid #2e90fa !important;
    border-radius:8px !important;

    background:#2e90fa !important;
    color:#ffffff !important;

    font-size:14px !important;
    font-weight:600 !important;
    line-height:38px !important;

    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;

    opacity:1 !important;
    cursor:pointer !important;
    pointer-events:auto !important;

    box-sizing:border-box !important;
}

/* 与“保存观察账号”统一尺寸 */
form[action="/admin/links/speech-observer"] button{
    min-width:126px !important;
    height:40px !important;
    min-height:40px !important;
    padding:0 18px !important;
    border-radius:8px !important;
    box-sizing:border-box !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
}

/* 保险：即便旧CSS还命中disabled，也不让它变灰 */
.fg-speech-run-btn:disabled{
    background:#2e90fa !important;
    border-color:#2e90fa !important;
    color:#fff !important;
    opacity:1 !important;
}

/* FG_SPEECH_SELECTED_BUTTON_V5 */

.fg-speech-run-real{
    width:150px !important;
    min-width:150px !important;
    height:42px !important;
    min-height:42px !important;

    padding:0 20px !important;
    margin-left:10px !important;

    border:1px solid #2e90fa !important;
    border-radius:8px !important;

    background:#2e90fa !important;
    color:#fff !important;

    font-size:14px !important;
    font-weight:600 !important;
    line-height:40px !important;

    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;

    opacity:1 !important;
    cursor:pointer !important;
    pointer-events:auto !important;

    box-sizing:border-box !important;
    box-shadow:none !important;
}

.fg-speech-run-real:hover{
    filter:brightness(1.08) !important;
}

/* 保存观察账号同步尺寸 */
form[action="/admin/links/speech-observer"] button{
    width:150px !important;
    min-width:150px !important;
    height:42px !important;
    min-height:42px !important;

    padding:0 20px !important;

    border-radius:8px !important;
    box-sizing:border-box !important;

    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
}

/* 检测中可以灰一点 */
.fg-speech-run-real:disabled{
    opacity:.65 !important;
    cursor:wait !important;
    pointer-events:none !important;
}


/* FG_SPEECH_QUEUE_ROOM_V10 */

.fg-speech-queued{
    color:#f59e0b !important;
    font-weight:700 !important;
}

.fg-speech-running{
    color:#2e90fa !important;
    font-weight:700 !important;
}

.fg-speech-detail{
    display:block !important;
    margin-top:6px !important;
    max-width:340px !important;
    line-height:1.55 !important;
    white-space:normal !important;
    word-break:break-word !important;
    opacity:.86 !important;
}

/* FG_ACCOUNTS_STATUS_COLORS_V1_BEGIN */

/* ==========================================
   前端入口账号 - 状态颜色及表格阅读优化
   ========================================== */

.fg-accounts-table {
    border-collapse: separate;
    border-spacing: 0;
}


/* 表头更清楚 */
.fg-accounts-table thead th {
    color: #b7c8dc;
    font-weight: 700;
    white-space: nowrap;
}


/* 行分隔 */
.fg-accounts-table tbody td {
    border-bottom-color: rgba(93,124,159,.30);
    transition: background .15s ease;
}


/* 鼠标划过 */
.fg-accounts-table tbody tr:hover > td {
    background-color: rgba(47,112,190,.10);
}


/* 昵称 */
.fg-accounts-table tbody td:nth-child(3) {
    color: #f1f6fd;
    font-weight: 700;
}


/* 入口检测时间、发言检测时间 */
.fg-accounts-table tbody td:nth-child(7),
.fg-accounts-table tbody td:nth-child(9) {
    color: #becdde;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}


/* 次数 */
.fg-accounts-table tbody td:nth-child(10) {
    color: #eef5ff;
    font-weight: 700;
}


/* 状态列禁止乱换行 */
.fg-accounts-table tbody td:nth-child(5),
.fg-accounts-table tbody td:nth-child(6),
.fg-accounts-table tbody td:nth-child(8) {
    white-space: nowrap;
}


/* ========== 状态胶囊 ========== */

.fg-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    padding: 5px 9px;

    border-radius: 8px;
    border: 1px solid transparent;

    font-size: 12px;
    font-weight: 750;
    line-height: 1.2;

    white-space: nowrap;
}

.fg-status::before {
    content: "";

    width: 7px;
    height: 7px;

    flex: 0 0 7px;

    border-radius: 50%;

    background: currentColor;
    box-shadow: 0 0 8px currentColor;
}


/* 入口正常：青绿色 */
.fg-status-entry-ok {
    color: #35ddb4;
    background: rgba(20,184,166,.14);
    border-color: rgba(45,212,191,.38);
}


/* 发言正常：绿色 */
.fg-status-speech-ok {
    color: #4ade80;
    background: rgba(34,197,94,.14);
    border-color: rgba(74,222,128,.38);
}


/* 已禁言：橙色 */
.fg-status-muted {
    color: #ffad38;
    background: rgba(245,158,11,.15);
    border-color: rgba(245,158,11,.45);
}


/* 检测中：蓝色 */
.fg-status-running {
    color: #60a5fa;
    background: rgba(59,130,246,.15);
    border-color: rgba(96,165,250,.42);
}

.fg-status-running::before {
    animation: fgStatusPulse 1.1s infinite;
}


/* 排队：黄色 */
.fg-status-queued {
    color: #f6cf4e;
    background: rgba(234,179,8,.14);
    border-color: rgba(250,204,21,.40);
}


/* 异常：红色 */
.fg-status-error {
    color: #ff7373;
    background: rgba(239,68,68,.15);
    border-color: rgba(248,113,113,.42);
}


/* 待检测：灰色 */
.fg-status-idle {
    color: #9faec0;
    background: rgba(100,116,139,.15);
    border-color: rgba(148,163,184,.28);
}


@keyframes fgStatusPulse {
    0%,100% {
        opacity: .45;
        transform: scale(.85);
    }

    50% {
        opacity: 1;
        transform: scale(1.15);
    }
}


/* ==========================================
   整行状态提醒
   Chromium / Edge 支持 :has()
   ========================================== */


/* 禁言账号：淡橙色 */
.fg-accounts-table tbody tr:has(.fg-status-muted) > td {
    background:
        linear-gradient(
            90deg,
            rgba(245,158,11,.065),
            rgba(245,158,11,.012)
        );
}

.fg-accounts-table tbody tr:has(.fg-status-muted) > td:first-child {
    box-shadow:
        inset 3px 0 0 #f59e0b;
}


/* 异常账号：淡红色 */
.fg-accounts-table tbody tr:has(.fg-status-error) > td {
    background:
        linear-gradient(
            90deg,
            rgba(239,68,68,.075),
            rgba(239,68,68,.012)
        );
}

.fg-accounts-table tbody tr:has(.fg-status-error) > td:first-child {
    box-shadow:
        inset 3px 0 0 #ef4444;
}


/* 检测中的账号：淡蓝色 */
.fg-accounts-table tbody tr:has(.fg-status-running) > td {
    background:
        linear-gradient(
            90deg,
            rgba(59,130,246,.055),
            rgba(59,130,246,.008)
        );
}


/* 输入框稍微清楚一点 */
.fg-accounts-table input[type="text"],
.fg-accounts-table input[type="number"] {
    background: #0b1929;
    border-color: #385674;
    color: #edf5ff;
}

.fg-accounts-table input[type="text"]:focus,
.fg-accounts-table input[type="number"]:focus {
    border-color: #3d91f4;
    box-shadow: 0 0 0 2px rgba(59,130,246,.14);
}


/* FG_ACCOUNTS_STATUS_COLORS_V1_END */


/* FG_ACCOUNTS_POLISH_V2_BEGIN */


/* ===== 表格整体 ===== */

.fg-accounts-table tbody td {
    padding-top: 14px;
    padding-bottom: 14px;
}


/* 链接 ID 更突出 */
.fg-accounts-table tbody td:nth-child(2) {
    min-width: 120px;
}

.fg-accounts-table tbody td:nth-child(2) strong,
.fg-accounts-table tbody td:nth-child(2) b {
    color: #e8f3ff;
    font-weight: 800;
}


/* 昵称尽量不折行 */
.fg-accounts-table th:nth-child(3),
.fg-accounts-table td:nth-child(3) {
    min-width: 115px;
}

.fg-accounts-table td:nth-child(3) {
    color: #f6f9ff;
    font-weight: 750;
    word-break: normal;
}


/* 入口账号 */
.fg-accounts-table th:nth-child(4),
.fg-accounts-table td:nth-child(4) {
    min-width: 205px;
}


/* 状态列 */
.fg-accounts-table th:nth-child(5),
.fg-accounts-table th:nth-child(6),
.fg-accounts-table th:nth-child(8) {
    min-width: 88px;
}


/* 检测时间统一 */
.fg-accounts-table th:nth-child(7),
.fg-accounts-table td:nth-child(7),
.fg-accounts-table th:nth-child(9),
.fg-accounts-table td:nth-child(9) {
    min-width: 122px;
    white-space: nowrap;
    line-height: 1.55;
}


/* 次数更明显 */
.fg-accounts-table th:nth-child(10),
.fg-accounts-table td:nth-child(10) {
    min-width: 58px;
    text-align: center;
}

.fg-accounts-table td:nth-child(10) {
    color: #ffffff;
    font-size: 14px;
    font-weight: 800;
}


/* ===== 修复禁言/异常行的竖条渐变 ===== */

.fg-accounts-table tbody tr:has(.fg-status-muted) > td {
    background: rgba(245,158,11,.055) !important;
}

.fg-accounts-table tbody tr:has(.fg-status-muted) > td:first-child {
    box-shadow: inset 3px 0 0 #f59e0b !important;
}


.fg-accounts-table tbody tr:has(.fg-status-error) > td {
    background: rgba(239,68,68,.065) !important;
}

.fg-accounts-table tbody tr:has(.fg-status-error) > td:first-child {
    box-shadow: inset 3px 0 0 #ef4444 !important;
}


.fg-accounts-table tbody tr:has(.fg-status-running) > td {
    background: rgba(59,130,246,.045) !important;
}


/* 鼠标移入仍然明显 */
.fg-accounts-table tbody tr:hover > td {
    background-color: rgba(52,116,193,.11) !important;
}


/* 状态胶囊稍微大一点 */
.fg-status {
    min-width: 64px;
    justify-content: center;
    padding: 5px 9px;
}


/* 绑定区稍微规整 */
.fg-accounts-table th:last-child,
.fg-accounts-table td:last-child {
    min-width: 150px;
}


/* FG_ACCOUNTS_POLISH_V2_END */




/* FG_LINKS_STATUS_POLISH_V2_BEGIN */


/* 发言状态统一做成胶囊 */
.fg-link-status {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;

    min-width: 68px;
    padding: 5px 9px !important;

    border-radius: 8px !important;
    border: 1px solid transparent !important;

    font-weight: 750 !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.08),
        0 3px 7px rgba(0,0,0,.18);
}

.fg-link-status::before {
    content: "";

    width: 7px;
    height: 7px;

    border-radius: 50%;
    flex: 0 0 7px;

    background: currentColor;

    box-shadow:
        0 0 7px currentColor;
}


/* 发言正常 */
.fg-link-status-normal {
    color: #4ade80 !important;
    background: rgba(34,197,94,.14) !important;
    border-color: rgba(74,222,128,.42) !important;
}


/* 已禁言 */
.fg-link-status-muted {
    color: #ffae36 !important;
    background: rgba(245,158,11,.16) !important;
    border-color: rgba(245,158,11,.50) !important;
}


/* 异常 */
.fg-link-status-error {
    color: #ff7373 !important;
    background: rgba(239,68,68,.16) !important;
    border-color: rgba(248,113,113,.46) !important;
}


/* 检测中 */
.fg-link-status-running {
    color: #67b7ff !important;
    background: rgba(59,130,246,.16) !important;
    border-color: rgba(96,165,250,.44) !important;
}


/* 排队 */
.fg-link-status-queued {
    color: #f6cf51 !important;
    background: rgba(234,179,8,.14) !important;
    border-color: rgba(250,204,21,.42) !important;
}


/* 待检测 */
.fg-link-status-idle {
    color: #9faec0 !important;
    background: rgba(100,116,139,.15) !important;
    border-color: rgba(148,163,184,.30) !important;
}


/* ===== 禁言卡片：保持原来的立体感，再加淡橙提示 ===== */

.fg-links-table tbody tr.fg-link-row-muted > td {
    background:
        linear-gradient(
            rgba(245,158,11,.055),
            rgba(245,158,11,.055)
        ),
        linear-gradient(
            180deg,
            #162b45 0%,
            #12253d 52%,
            #102138 100%
        ) !important;
}

.fg-links-table tbody tr.fg-link-row-muted > td:first-child {
    box-shadow:
        inset 4px 0 0 #f59e0b,
        inset 0 1px 0 rgba(255,255,255,.025),
        inset 0 -1px 0 rgba(0,0,0,.16) !important;
}

.fg-links-table tbody tr.fg-link-row-muted {
    filter:
        drop-shadow(
            0 6px 10px
            rgba(245,158,11,.09)
        );
}


/* ===== 真异常才使用红色 ===== */

.fg-links-table tbody tr.fg-link-row-error > td {
    background:
        linear-gradient(
            rgba(239,68,68,.055),
            rgba(239,68,68,.055)
        ),
        linear-gradient(
            180deg,
            #162b45 0%,
            #12253d 52%,
            #102138 100%
        ) !important;
}

.fg-links-table tbody tr.fg-link-row-error > td:first-child {
    box-shadow:
        inset 4px 0 0 #ef4444,
        inset 0 1px 0 rgba(255,255,255,.025) !important;
}


/* 检测中淡蓝 */
.fg-links-table tbody tr.fg-link-row-running > td {
    background:
        linear-gradient(
            rgba(59,130,246,.045),
            rgba(59,130,246,.045)
        ),
        linear-gradient(
            180deg,
            #162b45 0%,
            #12253d 52%,
            #102138 100%
        ) !important;
}


/* ===== 完整链接降低视觉权重 ===== */

.fg-links-table .fg-link-full-cell {
    color: #94abc2 !important;
    font-size: 12px;
}

.fg-links-table .fg-link-full-cell a,
.fg-links-table .fg-link-full-cell strong,
.fg-links-table .fg-link-full-cell b {
    color: #a9c5df !important;
    font-weight: 600 !important;
}


/* 鼠标经过仍然保持立体 */
.fg-links-table tbody tr:hover {
    filter:
        drop-shadow(
            0 8px 13px rgba(0,0,0,.24)
        )
        brightness(1.055);
}


/* FG_LINKS_STATUS_POLISH_V2_END */

/* FG_LINKS_FLAT_MATCH_ACCOUNTS_V1_BEGIN */


/* ======================================
   链接库：与前端入口账号统一的平面风格
   ====================================== */

.fg-links-table {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    background: transparent !important;
}


/* 表头 */
.fg-links-table thead th {
    background: #1b2f4b !important;

    color: #b7c8dc !important;
    font-weight: 700 !important;

    border-radius: 0 !important;

    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;

    border-bottom:
        1px solid #34506f !important;

    box-shadow: none !important;

    padding-top: 13px !important;
    padding-bottom: 13px !important;

    white-space: nowrap;
}


/* 普通行 */
.fg-links-table tbody tr {
    filter: none !important;
    transform: none !important;
    box-shadow: none !important;

    transition:
        background .15s ease !important;
}


.fg-links-table tbody td {
    background: #13243a !important;

    border-radius: 0 !important;

    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;

    border-bottom:
        1px solid rgba(91,122,158,.28) !important;

    box-shadow: none !important;

    padding-top: 14px !important;
    padding-bottom: 14px !important;

    line-height: 1.45;
}


/* 鼠标经过：只做轻微蓝色高亮 */
.fg-links-table tbody tr:hover {
    filter: none !important;
    transform: none !important;
}

.fg-links-table tbody tr:hover > td {
    background:
        rgba(52,116,193,.10) !important;
}


/* 域名 / ID */
.fg-links-table tbody td strong,
.fg-links-table tbody td b {
    text-shadow: none !important;
}


/* 输入框与前端入口账号统一 */
.fg-links-table input[type="text"],
.fg-links-table input[type="number"],
.fg-links-table select {
    background: #0b1929 !important;

    border:
        1px solid #385674 !important;

    color: #edf5ff !important;

    border-radius:
        7px !important;

    box-shadow: none !important;
}


.fg-links-table input:focus,
.fg-links-table select:focus {
    border-color:
        #3d91f4 !important;

    box-shadow:
        0 0 0 2px
        rgba(59,130,246,.14) !important;
}


/* 按钮取消浮起卡片感 */
.fg-links-table button,
.fg-links-table input[type="submit"],
.fg-links-table .btn {
    box-shadow: none !important;
    transform: none !important;
}

.fg-links-table button:hover,
.fg-links-table input[type="submit"]:hover,
.fg-links-table .btn:hover {
    transform: none !important;
    box-shadow: none !important;
    filter: brightness(1.06);
}


/* ============================
   状态行和前端入口账号保持一致
   ============================ */


/* 已禁言：整行淡橙 */
.fg-links-table tbody tr.fg-link-row-muted > td {
    background:
        rgba(245,158,11,.055) !important;
}

.fg-links-table tbody tr.fg-link-row-muted > td:first-child {
    box-shadow:
        inset 3px 0 0 #f59e0b !important;
}


/* 异常：整行淡红 */
.fg-links-table tbody tr.fg-link-row-error > td {
    background:
        rgba(239,68,68,.065) !important;
}

.fg-links-table tbody tr.fg-link-row-error > td:first-child {
    box-shadow:
        inset 3px 0 0 #ef4444 !important;
}


/* 检测中：整行淡蓝 */
.fg-links-table tbody tr.fg-link-row-running > td {
    background:
        rgba(59,130,246,.045) !important;
}


/* 禁言、异常行鼠标经过不要变成重色 */
.fg-links-table tbody tr.fg-link-row-muted:hover > td {
    background:
        rgba(245,158,11,.085) !important;
}

.fg-links-table tbody tr.fg-link-row-error:hover > td {
    background:
        rgba(239,68,68,.085) !important;
}


/* 完整链接继续降低一点视觉权重 */
.fg-links-table .fg-link-full-cell {
    color: #93a9c0 !important;
}


/* 状态标签保留现有颜色，但阴影减轻 */
.fg-links-table .fg-link-status {
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.045) !important;
}


/* FG_LINKS_FLAT_MATCH_ACCOUNTS_V1_END */


/* FG_PLATFORM_UI_AUDIT_20261012: keep the production styles above intact. */
:root{color-scheme:dark}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid #9fcbff;outline-offset:3px}
aside{overflow-y:auto;overscroll-behavior:contain}
aside>*{flex-shrink:0}
.sidebottom{padding-top:18px}
.panel,.tablewrap{box-shadow:0 5px 16px #050c1729,inset 0 1px 0 #ffffff05}
.panel,.tablewrap,.title>*{min-width:0}
.table-scroll{width:100%;max-width:100%;overflow:auto;overscroll-behavior-x:contain;border-radius:8px}
.table-scroll table{min-width:580px}
.table-scroll:focus-visible{outline-offset:2px}
th{font-variant-numeric:tabular-nums}
button:disabled{cursor:not-allowed}
.pager{flex-wrap:wrap;align-items:center;gap:12px 18px}
.pager a{padding:7px 10px;border:1px solid var(--border);border-radius:7px}
.live-refresh-box{max-width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0;color:var(--muted)}
.live-refresh-box select{width:auto;min-width:90px}
@media(max-width:720px){
  aside{overflow:visible}
  nav{padding-bottom:5px;scrollbar-width:thin}
  body>aside>.sidebottom{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0 0;font-size:12px}
  .sidebottom form{margin:0}
  .sidebottom button{margin:0;min-height:40px;padding:8px 12px}
  button:not(.lib-toggle),.btn{min-height:40px}
  input[type=checkbox],input[type=radio]{width:19px;height:19px;vertical-align:middle}
  .title{flex-wrap:wrap}
  .panel,.tablewrap{max-width:100%}
  .tablewrap{overscroll-behavior-x:contain}
  .notice{overflow-wrap:anywhere}
}

/* Shared pagination. Scoped so the sidebar navigation keeps its own styles. */
.pager.fg-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 18px;margin:20px 0;padding:16px;border:1px solid var(--border,#2a3a51);border-radius:10px;background:var(--panel,#142034);box-shadow:0 3px 12px #050c1729;max-width:100%;min-width:0}
.fg-pager .fg-pager-summary{margin:0;color:var(--muted,#9badc4);font-size:12px;line-height:1.7;font-variant-numeric:tabular-nums}
.fg-pager .fg-pager-summary strong{font-weight:650;color:var(--ink,#edf3fb)}
.fg-pager .fg-pager-controls,.fg-pager .fg-pager-edges,.fg-pager .fg-pager-numbers{display:flex;align-items:center;gap:6px;min-width:0}
.fg-pager .fg-pager-controls{flex-wrap:wrap;justify-content:center}
.fg-pager .fg-pager-numbers{flex-wrap:nowrap}
.fg-pager .fg-pager-link,.fg-pager .fg-pager-number{display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:40px;margin:0;padding:8px 10px;border:1px solid #36516f;border-radius:7px;background:#15283e;color:#bdd6f3;line-height:1.2;font-size:12px;white-space:nowrap;text-decoration:none;font-variant-numeric:tabular-nums}
.fg-pager a.fg-pager-link:hover,.fg-pager a.fg-pager-number:hover{border-color:#7eb4f6;background:#203b59;color:#fff;text-decoration:none}
.fg-pager .is-current{border-color:#76b5ff;background:#27598b;color:#fff;font-weight:750;box-shadow:inset 0 1px 0 #ffffff16}
.fg-pager .is-disabled{color:#73879f;border-color:#2a3a51;background:#122033;cursor:default}
.fg-pager .fg-pager-jump{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;min-width:0;margin:0}
.fg-pager .fg-pager-jump label{display:flex;align-items:center;gap:7px;margin:0;color:var(--muted,#9badc4);font-size:12px;white-space:nowrap}
.fg-pager .fg-pager-jump input[data-pager-input]{display:inline-block;width:76px;min-width:0;max-width:110px;height:40px;margin:0;padding:7px 8px;text-align:center;font-variant-numeric:tabular-nums}
.fg-pager .fg-pager-jump button{min-height:40px;margin:0;padding:8px 13px;font-size:12px}
.fg-pager :is(a,button,input):focus-visible{outline:2px solid #9fcbff;outline-offset:3px}
@media(max-width:600px){
  .pager.fg-pager{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;padding:12px 8px;gap:10px 4px}
  .fg-pager .fg-pager-summary{grid-column:2;grid-row:1;text-align:center;font-size:11px}
  .fg-pager .fg-pager-controls,.fg-pager .fg-pager-edges{display:contents}
  .fg-pager .fg-pager-first{grid-column:1;grid-row:1}
  .fg-pager .fg-pager-last{grid-column:3;grid-row:1}
  .fg-pager .fg-pager-prev{grid-column:1;grid-row:2}
  .fg-pager .fg-pager-next{grid-column:3;grid-row:2}
  .fg-pager .fg-pager-numbers{grid-column:2;grid-row:2;justify-content:center;gap:4px;min-width:0}
  .fg-pager .fg-pager-number{flex:1 1 0;min-width:0;max-width:42px;min-height:42px;padding:8px 2px;font-size:11px}
  .fg-pager .fg-pager-link{min-width:0;min-height:42px;padding:8px 3px;font-size:11px}
  .fg-pager .fg-pager-jump{grid-column:1/-1;grid-row:3;width:100%}
}

.fg-page-size{display:flex;align-items:center;gap:8px;margin:0}
.fg-detection-shortcuts{border:1px solid var(--border);border-radius:10px;background:var(--panel);padding:12px 14px;margin:12px 0}
.fg-detection-shortcuts form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px}
.fg-detection-shortcuts strong{font-size:12px;color:var(--muted);margin-right:4px}
.fg-detection-shortcuts button{margin:0;min-height:38px}
.fg-detection-shortcuts p{font-size:12px;line-height:1.6;color:var(--muted);margin:8px 0 0}
.fg-page-size label{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:12px;white-space:nowrap}
.fg-page-size select{display:inline-block;width:90px;margin:0;min-height:40px;padding:7px 9px}
.fg-list-size-top{display:flex;justify-content:flex-end;margin:10px 0}
.fg-page-size select:focus-visible{outline:2px solid #9fcbff;outline-offset:3px}
@media(max-width:600px){.fg-pager .fg-page-size{grid-column:1/-1;grid-row:4;justify-content:center}.fg-list-size-top{justify-content:flex-start}}
