/* ============================================================
   icon-system.css
   桌面应用图标视觉层（增强可维护性版）
   当前只处理首页 .app-card
   不参与路由、事件和模块逻辑
   ============================================================ */

/* ---------- 各主题的图标基础色 ---------- */

:root {
    --desktop-icon-ink: #ffffff;
    --desktop-icon-shadow: rgba(69, 46, 24, 0.18);
    --desktop-icon-border: rgba(255, 255, 255, 0.34);

    --worldbook-ink: #493321;
    --rolebook-ink: #592b40;
    --worldnet-ink: #4a301b;
    --chat-ink: #183f54;
    --music-ink: #244a2c;
    --memorybook-ink: #283d47;
    --gallery-ink: #512c3d;
    --bulletin-ink: #4b3024;
    --location-ink: #29472b;
    --teahouse-ink: #49301f;
    --bookcity-ink: #3e244c;
    --gallerycard-ink: #302352;
    --sketchbook-ink: #4d321f;
    --lingxi-bg: #897ac5;
    --lingxi-ink: #33295f;
    --divination-ink: #43306b;
    --diary-ink: #5a4120;
    --textgame-ink: #2f4a3d;
    --minigames-ink: #3a2f63;
    --weave-ink: #33405e;


}

html[data-theme="warm"] {
    --desktop-icon-border: rgba(255, 255, 255, 0.42);
    --worldbook-ink: #493321;
    --rolebook-ink: #592b40;
    --worldnet-ink: #4a301b;
    --chat-ink: #1e3f4d;
    --music-ink: #29452b;
    --memorybook-ink: #354033;
    --gallery-ink: #542d3c;
    --bulletin-ink: #4b3024;
    --location-ink: #29452b;
    --teahouse-ink: #49301f;
    --bookcity-ink: #3e244c;
    --gallerycard-ink: #3e294e;
    --sketchbook-ink: #4d321f;
    --lingxi-bg: #9a82b8;
    --lingxi-ink: #3d2d50;
    --divination-ink: #4b3163;
    --diary-ink: #5a4120;
    --textgame-ink: #3f4a2a;
    --minigames-ink: #40305f;
    --weave-ink: #3a3a5c;

}

html[data-theme="cool"] {
    --desktop-icon-border: rgba(255, 255, 255, 0.48);
    --worldbook-ink: #263f50;
    --rolebook-ink: #2f4054;
    --worldnet-ink: #263f50;
    --chat-ink: #243e50;
    --music-ink: #23463f;
    --memorybook-ink: #263f4d;
    --gallery-ink: #2d4155;
    --bulletin-ink: #2c3f50;
    --location-ink: #23463f;
    --teahouse-ink: #293f4c;
    --bookcity-ink: #2d4054;
    --gallerycard-ink: #29384f;
    --sketchbook-ink: #293f51;
    --lingxi-bg: #718ba9;
    --lingxi-ink: #29384f;
    --divination-ink: #343a68;
    --diary-ink: #2d4152;
    --textgame-ink: #29464a;
    --minigames-ink: #2f3570;
    --weave-ink: #2f3a6a;

}

html[data-theme="pink"] {
    --desktop-icon-border: rgba(255, 255, 255, 0.5);
    --worldbook-ink: #5a3042;
    --rolebook-ink: #592b40;
    --worldnet-ink: #5a3042;
    --chat-ink: #542e43;
    --music-ink: #34482e;
    --memorybook-ink: #463442;
    --gallery-ink: #592b40;
    --bulletin-ink: #51323d;
    --location-ink: #34482e;
    --teahouse-ink: #53333e;
    --bookcity-ink: #542d43;
    --gallerycard-ink: #4d2948;
    --sketchbook-ink: #5a3044;
    --lingxi-bg: #b477a2;
    --lingxi-ink: #512d4d;
    --divination-ink: #552e64;
    --diary-ink: #58343f;
    --textgame-ink: #4a3a46;
    --minigames-ink: #4a2b5e;
    --weave-ink: #443055;

}

html[data-theme="geo"] {
    --desktop-icon-border: rgba(255, 255, 255, 0.42);
    --worldbook-ink: #343449;
    --rolebook-ink: #3d3548;
    --worldnet-ink: #343449;
    --chat-ink: #30384f;
    --music-ink: #2e453c;
    --memorybook-ink: #383b50;
    --gallery-ink: #40364a;
    --bulletin-ink: #3c3745;
    --location-ink: #2e453c;
    --teahouse-ink: #3d3542;
    --bookcity-ink: #3c354d;
    --gallerycard-ink: #393550;
    --sketchbook-ink: #40384e;
    --lingxi-bg: #817ba4;
    --lingxi-ink: #39344f;
    --divination-ink: #413a5e;
    --diary-ink: #3d3846;
    --textgame-ink: #37433c;
    --minigames-ink: #38305e;
    --weave-ink: #343055;

}

html[data-theme="clean"] {
    --desktop-icon-border: rgba(70, 70, 70, 0.22);

    --worldbook-ink: #4a3825;

    --rolebook-ink: #542f3e;

    --worldnet-ink: #343b58;

    --chat-ink: #294957;

    --music-ink: #30462b;

    --memorybook-ink: #30434c;

    --gallery-ink: #53303f;

    --bulletin-ink: #49382c;

    --location-ink: #304a2e;

    --teahouse-ink: #4c3423;

    --bookcity-ink: #493454;

    --gallerycard-ink: #3f355d;

    --sketchbook-ink: #4d3823;

    --lingxi-bg: #b5a9ce;
    --lingxi-ink: #4b4260;
    --divination-ink: #4f4172;
    --diary-ink: #4e3a21;
    --textgame-ink: #3d4a33;
    --minigames-ink: #3a3163;
    --weave-ink: #343c5e;

}

html[data-theme="dark"] {
    --desktop-icon-ink: #fffaf0;
    --desktop-icon-shadow: rgba(0, 0, 0, 0.36);
    --desktop-icon-border: rgba(255, 255, 255, 0.18);

    --worldbook-ink: #fffaf0;
    --rolebook-ink: #fff5f7;
    --worldnet-ink: #fffaf0;
    --chat-ink: #edf8ff;
    --music-ink: #effbe9;
    --memorybook-ink: #edf7fa;
    --gallery-ink: #fff3f7;
    --bulletin-ink: #fff5ec;
    --location-ink: #effbe9;
    --teahouse-ink: #fff3df;
    --bookcity-ink: #fff3ff;
    --gallerycard-ink: #f5efff;
    --sketchbook-ink: #fff4dc;
    --lingxi-bg: #7566a9;
    --lingxi-ink: #f5efff;
    --divination-ink: #f3edff;
    --diary-ink: #fff6e8;
    --textgame-ink: #f0fbf4;
    --minigames-ink: #f0eaff;
    --weave-ink: #e2e8ff;

}

/* ---------- 桌面图标容器 ---------- */

.home-screen .app-card .icon-box {
    position: relative;
    isolation: isolate;
    border: 1px solid var(--desktop-icon-border);
    color: var(--desktop-icon-ink);
    box-shadow:
        0 5px 13px var(--desktop-icon-shadow),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.home-screen .app-card .icon-box::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background:
        linear-gradient(145deg,
            rgba(255, 255, 255, 0.24),
            transparent 45%);
    pointer-events: none;
}

.home-screen .app-card .icon-box::after {
    z-index: 2;
}

/* 隐藏原 Emoji，但不改变按钮文本结构 */
.home-screen .app-card .icon-box {
    font-size: 0;
}

/* ---------- 主题下的底色增强 ---------- */

html[data-theme="warm"] .home-screen .app-card .icon-box {
    filter: saturate(0.9) brightness(0.98);
}

html[data-theme="cool"] .home-screen .app-card .icon-box {
    filter: saturate(0.82) brightness(1.02);
}

html[data-theme="pink"] .home-screen .app-card .icon-box {
    filter: saturate(0.88) brightness(1.02);
}

html[data-theme="geo"] .home-screen .app-card .icon-box {
    filter: saturate(0.72) contrast(0.98);
}

html[data-theme="clean"] .home-screen .app-card .icon-box {
    filter: none;
    box-shadow:
        0 3px 8px rgba(60, 60, 60, 0.14),
        inset 0 1px 0 rgba(255, 255, 255, 0.62);
    border-color: var(--desktop-icon-border);
}

html[data-theme="dark"] .home-screen .app-card .icon-box {
    filter: saturate(0.82) brightness(0.86);
    box-shadow:
        0 6px 16px var(--desktop-icon-shadow),
        inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

/* ---------- 世界书图标 ---------- */

.home-screen .app-card[data-route="worldBookPage"] .icon-box {
    color: var(--worldbook-ink);
}

.home-screen .app-card[data-route="worldBookPage"] .icon-box::before {
    z-index: 1;
    inset: 15px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 4.5A2.5 2.5 0 0 1 7.5 2H20v17H7.5A2.5 2.5 0 0 0 5 21.5zM5 4.5v17M9 6h7M9 10h6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 4.5A2.5 2.5 0 0 1 7.5 2H20v17H7.5A2.5 2.5 0 0 0 5 21.5zM5 4.5v17M9 6h7M9 10h6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 角色名册图标 ---------- */

.home-screen .app-card[data-route="roleBookPage"] .icon-box {
    color: var(--rolebook-ink);
}

.home-screen .app-card[data-route="roleBookPage"] .icon-box::before {
    z-index: 1;
    inset: 14px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='3.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M5.5 20a6.5 6.5 0 0 1 13 0' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='8' r='3.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M5.5 20a6.5 6.5 0 0 1 13 0' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 角色网络图标 ---------- */

.home-screen .app-card[data-route="worldNetPage"] .icon-box {
    color: var(--worldnet-ink);
}

.home-screen .app-card[data-route="worldNetPage"] .icon-box::before {
    z-index: 1;
    inset: 14px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 7l10 4M7 7l3 10M17 11l-7 6' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='7' cy='7' r='2.6' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='17' cy='11' r='2.6' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='10' cy='17' r='2.6' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 7l10 4M7 7l3 10M17 11l-7 6' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='7' cy='7' r='2.6' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='17' cy='11' r='2.6' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='10' cy='17' r='2.6' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 聊天图标 ---------- */

.home-screen .app-card[data-route="chatPage"] .icon-box {
    color: var(--chat-ink);
}

.home-screen .app-card[data-route="chatPage"] .icon-box::before {
    z-index: 1;
    inset: 14px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 11.5a7.5 7.5 0 0 1-8 7.5 8.8 8.8 0 0 1-3.2-.6L4 20l1.6-3.7A7.3 7.3 0 0 1 4 11.5 7.5 7.5 0 0 1 12 4a7.5 7.5 0 0 1 8 7.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 11.5h.01M12 11.5h.01M16 11.5h.01' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 11.5a7.5 7.5 0 0 1-8 7.5 8.8 8.8 0 0 1-3.2-.6L4 20l1.6-3.7A7.3 7.3 0 0 1 4 11.5 7.5 7.5 0 0 1 12 4a7.5 7.5 0 0 1 8 7.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 11.5h.01M12 11.5h.01M16 11.5h.01' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 音乐图标 ---------- */

.home-screen .app-card[data-route="musicPage"] .icon-box {
    color: var(--music-ink);
}

.home-screen .app-card[data-route="musicPage"] .icon-box::before {
    z-index: 1;
    inset: 14px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='6.5' cy='18' r='2.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='16.5' cy='16' r='2.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M9 18V5l10-2v13M9 7l10-2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='6.5' cy='18' r='2.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Ccircle cx='16.5' cy='16' r='2.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M9 18V5l10-2v13M9 7l10-2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 记忆簿图标 ---------- */

.home-screen .app-card[data-route="memoryBookPage"] .icon-box {
    color: var(--memorybook-ink);
}

.home-screen .app-card[data-route="memoryBookPage"] .icon-box::before {
    z-index: 1;
    inset: 14px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3.5h10.5A1.5 1.5 0 0 1 18 5v15.5H7.5A2.5 2.5 0 0 1 5 18V5a1.5 1.5 0 0 1 1-1.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8.5 8h6M8.5 12h6M8.5 16h3.5M15.5 3.5V8l-2-1.4L11.5 8V3.5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3.5h10.5A1.5 1.5 0 0 1 18 5v15.5H7.5A2.5 2.5 0 0 1 5 18V5a1.5 1.5 0 0 1 1-1.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8.5 8h6M8.5 12h6M8.5 16h3.5M15.5 3.5V8l-2-1.4L11.5 8V3.5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 相册图标 ---------- */

.home-screen .app-card[data-route="gallery"] .icon-box {
    color: var(--gallery-ink);
}

.home-screen .app-card[data-route="gallery"] .icon-box::before {
    z-index: 1;
    inset: 14px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='6' width='13' height='12' rx='1.8' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M7 15l3-3 2.2 2.2 1.7-1.7 3.1 3.1M8.5 10h.01' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M7 4h11a2 2 0 0 1 2 2v10' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4' y='6' width='13' height='12' rx='1.8' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M7 15l3-3 2.2 2.2 1.7-1.7 3.1 3.1M8.5 10h.01' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M7 4h11a2 2 0 0 1 2 2v10' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 告示栏图标 ---------- */

.home-screen .app-card[data-route="bulletin"] .icon-box {
    color: var(--bulletin-ink);
}

.home-screen .app-card[data-route="bulletin"] .icon-box::before {
    z-index: 1;
    inset: 14px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='3.5' width='14' height='17' rx='2' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M9 3.5v2h6v-2M8.5 9h7M8.5 12.5h7M8.5 16h4' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='6.5' cy='9' r='1' fill='black'/%3E%3Ccircle cx='6.5' cy='12.5' r='1' fill='black'/%3E%3Ccircle cx='6.5' cy='16' r='1' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='5' y='3.5' width='14' height='17' rx='2' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M9 3.5v2h6v-2M8.5 9h7M8.5 12.5h7M8.5 16h4' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='6.5' cy='9' r='1' fill='black'/%3E%3Ccircle cx='6.5' cy='12.5' r='1' fill='black'/%3E%3Ccircle cx='6.5' cy='16' r='1' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 定位图标 ---------- */

.home-screen .app-card[data-route="location"] .icon-box {
    color: var(--location-ink);
}

.home-screen .app-card[data-route="location"] .icon-box::before {
    z-index: 1;
    inset: 14px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 10c0 5-7 10-7 10S5 15 5 10a7 7 0 1 1 14 0z' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='10' r='2.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 10c0 5-7 10-7 10S5 15 5 10a7 7 0 1 1 14 0z' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='10' r='2.5' fill='none' stroke='black' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 茶社图标 ---------- */

.home-screen .app-card[data-route="bookClub"] .icon-box {
    color: var(--teahouse-ink);
}

.home-screen .app-card[data-route="bookClub"] .icon-box::before {
    z-index: 1;
    inset: 14px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9h11v5.5A4.5 4.5 0 0 1 11.5 19h-2A4.5 4.5 0 0 1 5 14.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M16 11h1.5a2.5 2.5 0 0 1 0 5H16M4 20h14' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 6.5c-.8-.8-.8-1.5 0-2.3M11 6.5c-.8-.8-.8-1.5 0-2.3M14 6.5c-.8-.8-.8-1.5 0-2.3' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9h11v5.5A4.5 4.5 0 0 1 11.5 19h-2A4.5 4.5 0 0 1 5 14.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M16 11h1.5a2.5 2.5 0 0 1 0 5H16M4 20h14' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M8 6.5c-.8-.8-.8-1.5 0-2.3M11 6.5c-.8-.8-.8-1.5 0-2.3M14 6.5c-.8-.8-.8-1.5 0-2.3' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 线上书城图标 ---------- */

.home-screen .app-card[data-route="onlineBookCity"] .icon-box {
    color: var(--bookcity-ink);
}

.home-screen .app-card[data-route="onlineBookCity"] .icon-box::before {
    z-index: 1;
    inset: 13px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 8.5h16v11H4zM3 8.5l1.5-4h15L21 8.5' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M4 8.5c.7 1.3 2.5 1.3 3.2 0 .8 1.3 2.6 1.3 3.4 0 .8 1.3 2.6 1.3 3.4 0 .7 1.3 2.5 1.3 3.2 0M7.5 12h3M7.5 15h6M13.5 4.5V2.8M13.5 2.8l-1.5 1.5M13.5 2.8L15 4.3' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 8.5h16v11H4zM3 8.5l1.5-4h15L21 8.5' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M4 8.5c.7 1.3 2.5 1.3 3.2 0 .8 1.3 2.6 1.3 3.4 0 .8 1.3 2.6 1.3 3.4 0 .7 1.3 2.5 1.3 3.2 0M7.5 12h3M7.5 15h6M13.5 4.5V2.8M13.5 2.8l-1.5 1.5M13.5 2.8L15 4.3' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 角色卡图标 ---------- */

.home-screen .app-card[data-route="gallerycard"] .icon-box {
    color: var(--gallerycard-ink);
}

.home-screen .app-card[data-route="gallerycard"] .icon-box::before {
    z-index: 1;
    inset: 13px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 5.5A1.5 1.5 0 0 1 7.5 4H18a1.5 1.5 0 0 1 1.5 1.5V18A1.5 1.5 0 0 1 18 19.5H7.5A1.5 1.5 0 0 1 6 18z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M4.5 7.5V19A1.5 1.5 0 0 0 6 20.5h10.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='12.5' cy='9' r='2' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M9 16a3.5 3.5 0 0 1 7 0M9 6.8h4' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 5.5A1.5 1.5 0 0 1 7.5 4H18a1.5 1.5 0 0 1 1.5 1.5V18A1.5 1.5 0 0 1 18 19.5H7.5A1.5 1.5 0 0 1 6 18z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M4.5 7.5V19A1.5 1.5 0 0 0 6 20.5h10.5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='12.5' cy='9' r='2' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M9 16a3.5 3.5 0 0 1 7 0M9 6.8h4' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 灵光图标 ---------- */

.home-screen .app-card[data-route="sketchbook"] .icon-box {
    color: var(--sketchbook-ink);
}

.home-screen .app-card[data-route="sketchbook"] .icon-box::before {
    z-index: 1;
    inset: 13px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5v14M19 5v14' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M5 6c2 1.8 2 4.2 0 6M19 6c-2 1.8-2 4.2 0 6' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M8 17h8M8 19.5h8' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M12 4.5l.55 1.45L14 6.5l-1.45.55L12 8.5l-.55-1.45L10 6.5l1.45-.55zM16.5 9l.35.9.9.35-.9.35-.35.9-.35-.9-.9-.35.9-.35z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 5v14M19 5v14' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M5 6c2 1.8 2 4.2 0 6M19 6c-2 1.8-2 4.2 0 6' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M8 17h8M8 19.5h8' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M12 4.5l.55 1.45L14 6.5l-1.45.55L12 8.5l-.55-1.45L10 6.5l1.45-.55zM16.5 9l.35.9.9.35-.9.35-.35.9-.35-.9-.9-.35.9-.35z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 灵犀图标 ---------- */

.home-screen .app-card[data-route="lingxi"] .icon-box {
    background: var(--lingxi-bg);
    color: var(--lingxi-ink);
}

.home-screen .app-card[data-route="lingxi"] .icon-box::before {
    z-index: 1;
    inset: 12px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.18));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 8.5c2.4-2.4 5.2-2.4 8 1.2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M20 8.5c-2.4-2.4-5.2-2.4-8 1.2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M4 15.5c2.4 2.4 5.2 2.4 8-1.2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M20 15.5c-2.4 2.4-5.2 2.4-8-1.2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M12 9.1l1.25 2.1L15.4 12l-2.15.8L12 14.9l-1.25-2.1L8.6 12l2.15-.8z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 8.5c2.4-2.4 5.2-2.4 8 1.2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M20 8.5c-2.4-2.4-5.2-2.4-8 1.2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M4 15.5c2.4 2.4 5.2 2.4 8-1.2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M20 15.5c-2.4 2.4-5.2 2.4-8-1.2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Cpath d='M12 9.1l1.25 2.1L15.4 12l-2.15.8L12 14.9l-1.25-2.1L8.6 12l2.15-.8z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
}

.home-screen .app-card[data-route="lingxi"] .icon-box::after {
    background:
        radial-gradient(
            circle at 50% 48%,
            rgba(255, 255, 255, 0.42) 0%,
            rgba(255, 255, 255, 0.12) 24%,
            transparent 58%
        );
}

.home-screen .app-card[data-route="lingxi"]:hover .icon-box {
    box-shadow:
        0 8px 22px color-mix(in srgb, var(--lingxi-bg) 36%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, 0.42);
}

/* ---------- 占卜屋图标 ---------- */

.home-screen .app-card[data-route="divination"] .icon-box {
    color: var(--divination-ink);
}

.home-screen .app-card[data-route="divination"] .icon-box::before {
    z-index: 1;
    inset: 13px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='10' r='6.6' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M10 17.2 8.4 20M14 17.2 15.6 20M8.4 20h7.2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M11.9 7.4A3.2 3.2 0 1 0 11.9 13.4A3.2 3.2 0 0 1 11.9 7.4z' fill='black'/%3E%3Cpath d='M15.1 6.05l.39 1.06L16.55 7.5l-1.06.39L15.1 8.95l-.39-1.06L13.65 7.5l1.06-.39zM20 3l.35.95L21.3 4.3l-.95.35L20 5.6l-.35-.95L18.7 4.3l.95-.35zM4.3 3.75l.26.69L5.25 4.7l-.69.26L4.3 5.65l-.26-.69L3.35 4.7l.69-.26z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='10' r='6.6' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M10 17.2 8.4 20M14 17.2 15.6 20M8.4 20h7.2' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M11.9 7.4A3.2 3.2 0 1 0 11.9 13.4A3.2 3.2 0 0 1 11.9 7.4z' fill='black'/%3E%3Cpath d='M15.1 6.05l.39 1.06L16.55 7.5l-1.06.39L15.1 8.95l-.39-1.06L13.65 7.5l1.06-.39zM20 3l.35.95L21.3 4.3l-.95.35L20 5.6l-.35-.95L18.7 4.3l.95-.35zM4.3 3.75l.26.69L5.25 4.7l-.69.26L4.3 5.65l-.26-.69L3.35 4.7l.69-.26z' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 日记图标 ---------- */

.home-screen .app-card[data-route="diary"] .icon-box {
    color: var(--diary-ink);
}

.home-screen .app-card[data-route="diary"] .icon-box::before {
    z-index: 1;
    inset: 13px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.4 2.5h11a2.5 2.5 0 0 1 2.5 2.5v14a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 4.9 19V5a2.5 2.5 0 0 1 2.5-2.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M3 6.15h2.6M3 10.05h2.6M3 13.95h2.6M3 17.85h2.6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M10.2 14.8l2.48-0.92 4.95-4.95a1.1 1.1 0 0 0-1.56-1.55l-4.95 4.95z' fill='black' stroke='black' stroke-width='0.5' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.4 2.5h11a2.5 2.5 0 0 1 2.5 2.5v14a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 4.9 19V5a2.5 2.5 0 0 1 2.5-2.5z' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M3 6.15h2.6M3 10.05h2.6M3 13.95h2.6M3 17.85h2.6' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3Cpath d='M10.2 14.8l2.48-0.92 4.95-4.95a1.1 1.1 0 0 0-1.56-1.55l-4.95 4.95z' fill='black' stroke='black' stroke-width='0.5' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 文游图标 ---------- */

.home-screen .app-card[data-route="textgame"] .icon-box {
    color: var(--textgame-ink);
}

.home-screen .app-card[data-route="textgame"] .icon-box::before {
    z-index: 1;
    inset: 13px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.6 3.2h16.8a1.1 1.1 0 0 1 0 2.2H3.6a1.1 1.1 0 0 1 0-2.2z' fill='black'/%3E%3Cpath d='M3.6 18.6h16.8a1.1 1.1 0 0 1 0 2.2H3.6a1.1 1.1 0 0 1 0-2.2z' fill='black'/%3E%3Crect x='6.6' y='5.4' width='10.8' height='13.2' rx='1.5' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M9.4 9.1h5.2M9.4 12h5.2M9.4 14.9h3.4' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.6 3.2h16.8a1.1 1.1 0 0 1 0 2.2H3.6a1.1 1.1 0 0 1 0-2.2z' fill='black'/%3E%3Cpath d='M3.6 18.6h16.8a1.1 1.1 0 0 1 0 2.2H3.6a1.1 1.1 0 0 1 0-2.2z' fill='black'/%3E%3Crect x='6.6' y='5.4' width='10.8' height='13.2' rx='1.5' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M9.4 9.1h5.2M9.4 12h5.2M9.4 14.9h3.4' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 互动组件图标（三条滑杆 + 三个旋钮） ---------- */

.home-screen .app-card[data-route="miniGames"] .icon-box {
    color: var(--minigames-ink);
}

.home-screen .app-card[data-route="miniGames"] .icon-box::before {
    z-index: 1;
    inset: 14px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6.5h16M4 12h16M4 17.5h16' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='9.2' cy='6.5' r='2.4' fill='black'/%3E%3Ccircle cx='15.4' cy='12' r='2.4' fill='black'/%3E%3Ccircle cx='7.6' cy='17.5' r='2.4' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 6.5h16M4 12h16M4 17.5h16' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='9.2' cy='6.5' r='2.4' fill='black'/%3E%3Ccircle cx='15.4' cy='12' r='2.4' fill='black'/%3E%3Ccircle cx='7.6' cy='17.5' r='2.4' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 织网图标（同心菱形 + 顶点连线 = 多层网眼） ---------- */

.home-screen .app-card[data-route="weave"] .icon-box {
    color: var(--weave-ink);
}

.home-screen .app-card[data-route="weave"] .icon-box::before {
    z-index: 1;
    inset: 13px;
    border-radius: 0;
    background: currentColor;
    filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.16));

    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.6 21.4 12 12 21.4 2.6 12z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M12 7 17 12 12 17 7 12z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M12 2.6V7M12 17v4.4M2.6 12H7M17 12h4.4' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;

    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.6 21.4 12 12 21.4 2.6 12z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M12 7 17 12 12 17 7 12z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M12 2.6V7M12 17v4.4M2.6 12H7M17 12h4.4' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---------- 底部导航图标 ---------- */

:root {
    --nav-icon-settings: #9a6f42;
    --nav-icon-market: #b47a38;
    --nav-icon-memory: #6d8e87;
}

html[data-theme="cool"] {
    --nav-icon-settings: #5f7f97;
    --nav-icon-market: #74889b;
    --nav-icon-memory: #668b87;
}

html[data-theme="pink"] {
    --nav-icon-settings: #b76e8e;
    --nav-icon-market: #b17a8a;
    --nav-icon-memory: #798f9d;
}

html[data-theme="geo"] {
    --nav-icon-settings: #747495;
    --nav-icon-market: #8a7e9d;
    --nav-icon-memory: #738b82;
}

html[data-theme="clean"] {
    --nav-icon-settings: #5e5e5e;
    --nav-icon-market: #747474;
    --nav-icon-memory: #63726a;
}

html[data-theme="dark"] {
    --nav-icon-settings: #d6a462;
    --nav-icon-market: #dfa867;
    --nav-icon-memory: #91b5a7;
}

/* 只隐藏 nav-icon 内原有 Emoji，文字标签仍正常显示。 */
.bottom-nav .nav-item .nav-icon {
    display: block;
    width: 22px;
    height: 22px;
    margin: 0 auto 3px;
    font-size: 0;
    line-height: 1;
    background-color: var(--nav-icon-color, var(--nav-icon-settings));
    -webkit-mask: var(--nav-icon-mask) center / contain no-repeat;
    mask: var(--nav-icon-mask) center / contain no-repeat;
    transition: transform 0.18s ease, background-color 0.18s ease;
}

/* 设置：齿轮 */
.bottom-nav .nav-item[data-route="settings"] .nav-icon {
    --nav-icon-color: var(--nav-icon-settings);
    --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='3' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1-1.8 1.8-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.6v.2h-2.5V20a1.7 1.7 0 0 0-1-1.6 1.7 1.7 0 0 0-1.9.3l-.1.1-1.8-1.8.1-.1a1.7 1.7 0 0 0 .3-1.9 1.7 1.7 0 0 0-1.6-1H6v-2.5h.2a1.7 1.7 0 0 0 1.6-1 1.7 1.7 0 0 0-.3-1.9l-.1-.1 1.8-1.8.1.1a1.7 1.7 0 0 0 1.9.3 1.7 1.7 0 0 0 1-1.6V5h2.5v.2a1.7 1.7 0 0 0 1 1.6 1.7 1.7 0 0 0 1.9-.3l.1-.1 1.8 1.8-.1.1a1.7 1.7 0 0 0-.3 1.9 1.7 1.7 0 0 0 1.6 1h.2v2.5h-.2a1.7 1.7 0 0 0-1.6 1z' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* 应用市场：店铺 */
.bottom-nav .nav-item[data-route="market"] .nav-icon {
    --nav-icon-color: var(--nav-icon-market);
    --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 10h16v10H4zM3 10l1.5-5h15L21 10' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3Cpath d='M4 10c.6 1.3 2.4 1.3 3 0 1 1.3 2.8 1.3 3.8 0 1 1.3 2.8 1.3 3.8 0 .6 1.3 2.4 1.3 3 0M8 20v-5h4v5' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* 记忆储存：记忆节点与存档盒 */
.bottom-nav .nav-item[data-route="memory"] .nav-icon {
    --nav-icon-color: var(--nav-icon-memory);
    --nav-icon-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9h14v10H5zM8 9V6h8v3' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3Ccircle cx='9' cy='14' r='1.3' fill='black'/%3E%3Ccircle cx='15' cy='14' r='1.3' fill='black'/%3E%3Cpath d='M10.2 14h3.6' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
}

.bottom-nav .nav-item:hover .nav-icon {
    transform: translateY(-1px) scale(1.05);
}

.bottom-nav .nav-item:active .nav-icon {
    transform: scale(0.94);
}

@media (prefers-reduced-motion: reduce) {
    .bottom-nav .nav-item .nav-icon {
        transition: none;
    }

    .bottom-nav .nav-item:hover .nav-icon,
    .bottom-nav .nav-item:active .nav-icon {
        transform: none;
    }
}

/* ---------- 通用 hover ---------- */

.home-screen .app-card:hover .icon-box {
    box-shadow:
        0 8px 20px var(--desktop-icon-shadow),
        inset 0 1px 0 rgba(255, 255, 255, 0.38);
}

.home-screen .app-card:hover .icon-box::before {
    transform: scale(1.06);
}

.home-screen .app-card:active .icon-box {
    transform: scale(0.96);
}

/* ---------- 减少动态效果 ---------- */

@media (prefers-reduced-motion: reduce) {

    .home-screen .app-card .icon-box,
    .home-screen .app-card .icon-box::before {
        transition: none !important;
    }

    .home-screen .app-card:hover .icon-box::before {
        transform: none;
    }
}

/* 全局返回按钮：透明背景，适配所有主题 */
.status-back-btn {
    background: transparent;
    border: none;
    color: var(--text, #333);
    box-shadow: none;
}

.status-back-btn:hover {
    background: transparent;
    color: var(--text, #333);
}

.status-back-btn:active {
    background: transparent;
    transform: scale(0.92);
}

.status-back-btn:focus-visible {
    outline: 2px solid color-mix(in srgb,
            var(--accent, #0b93f6) 65%,
            transparent);
    outline-offset: 2px;
}