:root {
            --t1: 255,255,255; --t2: 200,200,200; --t3: 150,150,150;
            --blue: 74,122,255; --red: 255,59,48; --orange: 255,149,0;
            --card-bg: rgba(40,40,40,0.65);
            --base-unit: 72px;
            --base-gap: 10px;
            --grid-cols: 8;
            --wallpaper-blur: 0px;
            --wallpaper-brightness: 1;
            --wallpaper-mask: 0.4;
        }
        *{margin:0;padding:0;box-sizing:border-box}
/* 禁止卡片/ Dock 内 favicon 等图片的原生 HTML5 拖拽：浏览器拖 img 会以 img.src(favicon.php)
   作为拖拽数据，松手/拖到地址栏会直接导航到 favicon.php，表现为"拖网站卡却打开 favicon 页面"，
   同时会打断 pointer 拖拽逻辑。仅作用于卡片范围内的图片，不影响其他区域。 */
.card img,.dock-item img,.dock-item-minimized img,.ios-folder-item-icon img,.ann-icon img{-webkit-user-drag:none;user-drag:none}
        body{
            font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,sans-serif;
            font-weight:500;font-size:14px;line-height:1.4;color:#fff;
            height:100vh;overflow:hidden;position:fixed;inset:0;
            user-select:none;-webkit-user-select:none;
        }
        .wallpaper{position:fixed;inset:0;z-index:0;background-size:cover;background-position:center;background-repeat:no-repeat;transition:background-image .5s;filter:brightness(var(--wallpaper-brightness,1)) blur(var(--wallpaper-blur,0px))}
        .wallpaper::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,var(--wallpaper-mask,0.3));pointer-events:none}
        #maskOverlay{position:fixed;inset:0;z-index:0;pointer-events:none;transition:background .3s}

        /* ========== 侧边栏 ========== */
        .sidebar{
            position:fixed;left:12px;top:50%;transform:translateY(-50%);width:56px;height:auto;max-height:90vh;z-index:100;
            background:rgba(30,30,30,0.8);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
            border-radius:16px;border:1px solid rgba(255,255,255,0.15);
            box-shadow:0 8px 32px rgba(0,0,0,0.2);
            display:flex;flex-direction:column;align-items:center;padding:14px 0;
            transition:transform .3s;
            will-change:transform;
        }
        /* 侧边栏头像 */
        .sidebar-avatar{
            width:52px;height:52px;border-radius:14px;
            display:flex;align-items:center;justify-content:center;
            background:rgba(255,255,255,0.10);cursor:pointer;
            transition:background .2s,transform .2s;
            margin-bottom:16px;
        }
        .sidebar-avatar:hover{background:rgba(255,255,255,0.18);transform:scale(1.05)}
        .sidebar-avatar-icon{font-size:24px;color:rgba(255,255,255,0.65);transition:color .2s}
        .sidebar-avatar:hover .sidebar-avatar-icon{color:rgba(255,255,255,0.9)}
        .sidebar-avatar .avatar-text{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:inherit;background:linear-gradient(135deg,#0a84ff,#0060df);color:#fff;font-size:22px;font-weight:600;line-height:1;letter-spacing:.5px}
        .sidebar-nav{flex:1;display:flex;flex-direction:column;gap:4px}
        .nav-item{
            width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;
            color:rgba(255,255,255,0.5);border-radius:10px;cursor:pointer;transition:color .2s,background .2s;position:relative;
        }
        .nav-item i{font-size:18px;margin-bottom:2px}
        .nav-item span{font-size:9px}
        .nav-item:hover,.nav-item.active{color:#fff;background:rgba(255,255,255,0.12)}
        .nav-item.active::before{content:'';position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:3px;height:20px;background:rgb(var(--blue));border-radius:0 2px 2px 0}
        .sidebar-bottom{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,0.1)}
        .sidebar-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.5);cursor:pointer;border-radius:10px;font-size:16px;transition:color .2s,background .2s,transform .2s}
        .sidebar-icon:hover{color:#fff;background:rgba(255,255,255,0.12);transform:rotate(90deg)}

        /* ========== 主容器 ========== */
        .app{position:relative;height:100%;z-index:1;margin-left:76px;display:flex;flex-direction:column;align-items:center;overflow-y:auto;overflow-x:hidden;padding-right:20px;padding-bottom:80px;scrollbar-width:none}
        .app::-webkit-scrollbar{display:none}

        .header{text-align:center;padding:30px 0 20px;cursor:pointer;position:relative}
        .time{font-size:72px;font-weight:200;line-height:1;letter-spacing:-2px;font-variant-numeric:tabular-nums;text-shadow:0 2px 20px rgba(0,0,0,0.3);cursor:pointer;transition:text-shadow .3s}
        .time:hover{text-shadow:0 2px 30px rgba(74,122,255,0.5)}
        .date{font-size:14px;color:rgba(255,255,255,0.7);margin-top:8px;text-shadow:0 1px 10px rgba(0,0,0,0.3)}
        .greeting{font-size:13px;color:rgba(255,255,255,0.5);margin-top:4px}

        /* ========== 每日一言 ========== */
        .daily-quote{font-size:14px;color:rgba(255,255,255,0.6);font-style:italic;text-align:center;max-width:600px;margin:8px auto 0;text-shadow:0 1px 6px rgba(0,0,0,0.3);line-height:1.5;transition:opacity .3s}

        /* ========== 搜索栏 ========== */
        .search-wrap{position:relative;display:flex;justify-content:center;margin-bottom:16px}
        .search-bar{
            display:flex;align-items:center;width:704px;max-width:calc(100vw - 120px);height:44px;
            border-radius:22px;
            background:rgba(60,60,60,0.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
            border:1px solid rgba(255,255,255,0.12);
            padding:0 6px 0 18px;transition:border-color .3s ease,box-shadow .3s ease;position:relative;
        }
        .search-bar:focus-within{border-color:rgba(74,122,255,0.5);box-shadow:0 0 0 3px rgba(74,122,255,0.15)}
        .search-bar i.search-icon{color:rgba(255,255,255,0.5);font-size:16px;margin-right:10px}
        .search-bar input{flex:1;border:none;background:none;font-size:14px;color:#fff;outline:none;min-width:0}
        .search-bar input::placeholder{color:rgba(255,255,255,0.4)}
        .engine-selector{
            display:flex;align-items:center;gap:4px;padding:4px 10px;
            border-radius:16px;cursor:pointer;font-size:12px;color:rgba(255,255,255,0.7);
            transition:color .2s,background .2s;position:relative;white-space:nowrap;
        }
        .engine-selector:hover{background:rgba(255,255,255,0.1);color:#fff}
        .engine-selector i.fa-chevron-down{font-size:8px;transition:transform .2s}
        .engine-selector.open i.fa-chevron-down{transform:rotate(180deg)}
        .engine-dropdown{
            position:fixed;top:0;
            background:rgba(22,22,34,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
            border-radius:12px;border:1px solid rgba(255,255,255,0.15);
            box-shadow:0 12px 40px rgba(0,0,0,.6);padding:6px 0;min-width:120px;
            opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s,visibility .2s,transform .2s;z-index:2147483647;
        }
        .engine-dropdown.show{opacity:1;visibility:visible;transform:translateY(0)}
        .engine-option{padding:8px 16px;cursor:pointer;font-size:13px;color:rgba(255,255,255,0.7);transition:background .15s,color .15s;display:flex;align-items:center;gap:8px}
        .engine-option:hover{background:rgba(255,255,255,0.1);color:#fff}
        .engine-option.active{color:rgb(var(--blue))}
        .search-btn{
            width:32px;height:32px;border-radius:50%;border:none;
            background:rgb(var(--blue));color:#fff;cursor:pointer;
            display:flex;align-items:center;justify-content:center;font-size:14px;
            transition:background .2s,transform .2s;flex-shrink:0;
        }
        .search-btn:hover{background:rgb(90,140,255);transform:scale(1.05)}

        /* ========== 搜索建议 ========== */
        .search-suggestions{
            position:fixed;top:0;left:0;transform:none;
            background:rgba(30,30,30,0.95);
            border-radius:14px;border:1px solid rgba(255,255,255,0.15);
            box-shadow:0 8px 32px rgba(0,0,0,0.4);
            padding:6px 0;max-height:280px;overflow-y:auto;
            opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:9999;
            scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.2) transparent;
        }
        .search-suggestions.show{opacity:1;visibility:visible}
        .search-suggestions::-webkit-scrollbar{width:4px}
        .search-suggestions::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);border-radius:2px}
        .suggest-item{padding:10px 18px;cursor:pointer;font-size:13px;color:rgba(255,255,255,0.7);transition:background .15s,color .15s;display:flex;align-items:center;gap:10px}
        .suggest-item:hover{background:rgba(255,255,255,0.1);color:#fff}
        .suggest-item i{color:rgba(255,255,255,0.3);font-size:11px;flex-shrink:0}
        .suggest-item .suggest-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

        /* ========== 仪表盘Tab标签 ========== */
        .dashboard-tabs{
            display:flex;gap:4px;padding:0 20px;margin-bottom:12px;
            justify-content:center;overflow-x:auto;scrollbar-width:none;
        }
        .dashboard-tabs::-webkit-scrollbar{display:none}
        .dashboard-tab{
            padding:6px 16px;border-radius:16px;
            background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.5);
            cursor:pointer;font-size:12px;transition:all .2s;white-space:nowrap;
            border:none;outline:none;
        }
        .dashboard-tab:hover{background:rgba(255,255,255,0.14);color:rgba(255,255,255,0.7)}
        .dashboard-tab.active{background:rgba(255,255,255,0.2);color:#fff}

        /* ========== 仪表盘面板内容 ========== */
        .dashboard-content{display:none}
        .dashboard-content.active{display:block}
        .dashboard-panel-grid{display:grid;grid-template-columns:repeat(var(--grid-cols),var(--base-unit));gap:var(--base-gap);padding:0 20px;margin:0 auto}
        .dashboard-panel-item{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:6px;border-radius:16px;transition:background .2s,transform .2s}
        .dashboard-panel-item:hover{background:rgba(255,255,255,0.08);transform:translateY(-2px)}
        .dashboard-panel-icon{width:var(--base-unit);height:var(--base-unit);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:28px;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s ease}
        .dashboard-panel-item:hover .dashboard-panel-icon{transform:scale(1.08);box-shadow:0 6px 20px rgba(0,0,0,0.3)}
        .dashboard-panel-name{font-size:12px;color:rgba(255,255,255,0.7);white-space:nowrap;transition:color .2s}
        .dashboard-panel-item:hover .dashboard-panel-name{color:#fff}
        .dashboard-panel-desc{font-size:10px;color:rgba(255,255,255,0.4);text-align:center;line-height:1.3;margin-top:-4px}

        /* ========== 拖拽占位符 ========== */
        .drag-placeholder{
            border:2px dashed rgba(74,122,255,0.5);border-radius:16px;
            background:rgba(74,122,255,0.08);transition:background .2s,border-color .2s;
        }

        /* ========== 统一卡片网格 ========== */
        .cards-grid{
            display:grid;
            grid-template-columns:repeat(var(--grid-cols),var(--base-unit));
            grid-auto-rows:var(--base-unit);
            grid-auto-flow:row dense;
            align-items:stretch;
            gap:var(--base-gap);
            padding:0 20px 30px;
            margin:0 auto;
        }

        /* ========== 通用卡片 ========== */
        .card{
            background:var(--card-bg);
            border-radius:16px;border:1px solid rgba(255,255,255,0.1);
            padding:10px;position:relative;overflow:hidden;transition:transform .25s cubic-bezier(.4,0,.2,1),border-color .25s ease,box-shadow .25s ease;
            cursor:move;user-select:none;-webkit-user-select:none;touch-action:none;
            contain:layout style;
            will-change:transform;
        }
        .card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,0.2);box-shadow:0 8px 25px rgba(0,0,0,0.25)}
        .card.dragging{opacity:0.4;transform:scale(0.95);z-index:100;box-shadow:0 8px 32px rgba(0,0,0,0.5)}
        .card.drag-over{transform:scale(1.02);border-color:rgb(var(--blue))}
        .card.clickable{cursor:pointer}

        /* ========== 尺寸 ========== */
        .card[data-size="1x1"]{grid-column:span 1 !important;grid-row:span 1 !important}
        .card[data-size="1x2"]{grid-column:span 1 !important;grid-row:span 2 !important}
        .card[data-size="1x3"]{grid-column:span 1 !important;grid-row:span 3 !important}
        .card[data-size="2x1"]{grid-column:span 2 !important;grid-row:span 1 !important}
        .card[data-size="2x2"]{grid-column:span 2 !important;grid-row:span 2 !important}
        .card[data-size="2x3"]{grid-column:span 2 !important;grid-row:span 3 !important}
        .card[data-size="2x4"]{grid-column:span 2 !important;grid-row:span 4 !important}
        .card[data-size="3x1"]{grid-column:span 3 !important;grid-row:span 1 !important}
        .card[data-size="3x2"]{grid-column:span 3 !important;grid-row:span 2 !important}
        .card[data-size="3x3"]{grid-column:span 3 !important;grid-row:span 3 !important}
        .card[data-size="3x4"]{grid-column:span 3 !important;grid-row:span 4 !important}
        .card[data-size="4x2"]{grid-column:span 4 !important;grid-row:span 2 !important}
        .card[data-size="4x4"]{grid-column:span 4 !important;grid-row:span 4 !important}
        .card[data-size="4x6"]{grid-column:span 4 !important;grid-row:span 6 !important}

        /* ========== 天气 ========== */
        .card-weather{
            container-type:inline-size;
            display:flex;flex-direction:column;height:100%;overflow:hidden;
        }
        .wx-loc{font-size:clamp(10px,6.5cqi,13px);display:flex;align-items:center;gap:3px;margin-bottom:2px;color:rgba(20,20,20,.85);text-shadow:0 1px 3px rgba(255,255,255,.35)}
        .wx-loc i{font-size:clamp(8px,4.5cqi,10px)}
        .wx-main{display:flex;align-items:center;gap:8px;flex:1}
        .wx-temp{font-size:clamp(20px,16cqi,44px);font-weight:600;line-height:1;white-space:nowrap;color:rgba(20,20,20,.9);text-shadow:0 1px 4px rgba(255,255,255,.35)}
        .wx-temp.stale-soft{opacity:.7;filter:saturate(.6)} /* 陈旧（3~12h）半透明+降饱和 */
        .wx-temp.stale-hard{opacity:.5;filter:saturate(.3) hue-rotate(15deg)} /* 过期（>12h）更明显 */
        .wx-icon{font-size:clamp(15px,11cqi,34px);line-height:1;color:rgba(20,20,20,.8);text-shadow:0 1px 3px rgba(255,255,255,.3)}
        .wx-desc{font-size:clamp(10px,5.5cqi,14px);margin-top:2px;color:rgba(20,20,20,.8);text-shadow:0 1px 2px rgba(255,255,255,.3)}
        .wx-extra{font-size:clamp(9px,4.5cqi,12px);margin-top:4px;line-height:1.5;color:rgba(20,20,20,.75);text-shadow:0 1px 2px rgba(255,255,255,.25)}
        .wx-forecast{display:none;margin-top:6px;padding-top:6px;border-top:1px solid rgba(0,0,0,.15)}
        .wx-fc-day{display:inline-block;margin-right:6px;font-size:clamp(8px,4cqi,11px);text-align:center;line-height:1.4;color:rgba(20,20,20,.8);text-shadow:0 1px 2px rgba(255,255,255,.3)}
        .wx-fc-day i{display:block;font-size:clamp(9px,4.5cqi,13px);margin:1px 0}
        @keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
        @keyframes emojiSlideIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

        /* ========== Emoji 选择器面板 ========== */
        .acc-emoji-btn:hover{background:rgba(124,77,255,.15)!important;border-color:rgba(124,77,255,.4)!important}
        .acc-emoji-tab:hover{background:rgba(124,77,255,.12)!important}
        .acc-emoji-close:hover{background:rgba(255,80,80,.2)!important;color:#ff6b6b!important}
        .acc-emoji-panel::-webkit-scrollbar{width:3px}

        /* ========== 天气动画背景（蓝天底+天气特效）========== */
        .card-weather{position:relative;background:transparent;overflow:hidden;transition:background .6s}

        /* 🌤 天空底色层 + 白云动画 */
        .wx-sky{position:absolute;inset:0;z-index:0;pointer-events:none;
            background:linear-gradient(180deg,#2b7ec9 0%,#4a9de0 30%,#6db9f0 55%,#a8daf8 85%,#c8e6fa 100%)}
        .wx-sky::before{content:'';position:absolute;
            width:110px;height:38px;background:rgba(255,255,255,.5);border-radius:38px;top:12%;
            box-shadow:30px -6px 0 14px rgba(255,255,255,.42),-22px 4px 0 10px rgba(255,255,255,.38);
            animation:skyC1 18s linear infinite}
        .wx-sky::after{content:'';position:absolute;
            width:75px;height:26px;background:rgba(255,255,255,.35);border-radius:26px;top:48%;
            box-shadow:20px -4px 0 9px rgba(255,255,255,.28);
            animation:skyC2 12s linear infinite}
        @keyframes skyC1{from{left:-140px}to{left:calc(100% + 40px)}}
        @keyframes skyC2{from{left:-90px}to{left:calc(100% + 20px)}}

        /* 内容层置顶 */
        .card-weather>*:not(.wx-sky){position:relative;z-index:1}

        /* ☀️ 晴天：暖金半透明覆层 */
        .wx-sunny{background:linear-gradient(180deg,rgba(253,180,60,.45),rgba(253,140,30,.55),rgba(240,110,10,.4))}
        .wx-sunny::before{content:'';position:absolute;inset:-30%;z-index:0;pointer-events:none;
            background:conic-gradient(from 0deg,transparent 0deg,rgba(255,240,180,.18) 10deg,transparent 20deg);
            animation:wxSunRays 8s linear infinite}
        .wx-sunny::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
            background-image:radial-gradient(2px 2px at 20% 80%,rgba(255,250,220,.9),transparent),radial-gradient(2.5px 2.5px at 50% 65%,rgba(255,250,220,.7),transparent),radial-gradient(1.5px 1.5px at 75% 78%,rgba(255,250,220,.9),transparent),radial-gradient(2px 2px at 10% 62%,rgba(255,250,220,.7),transparent),radial-gradient(2.5px 2.5px at 60% 82%,rgba(255,250,220,.8),transparent),radial-gradient(1.5px 1.5px at 35% 70%,rgba(255,250,220,.9),transparent),radial-gradient(2px 2px at 85% 60%,rgba(255,250,220,.7),transparent),radial-gradient(1.5px 1.5px at 45% 88%,rgba(255,250,220,.8),transparent);
            background-size:100px 100px;animation:wxSunParticles 3s ease-in-out infinite alternate}
        @keyframes wxSunRays{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
        @keyframes wxSunParticles{from{transform:translateY(0);opacity:.6}to{transform:translateY(-10px);opacity:1}}

        /* ☁️ 多云：灰蓝半透明覆层（云朵由天空层提供） */
        .wx-cloudy{background:linear-gradient(180deg,rgba(70,90,110,.55),rgba(90,110,130,.5),rgba(110,130,150,.45))}

        /* 🌧️ 雨：深蓝半透明覆层 + 雨丝 */
        .wx-rain{background:linear-gradient(180deg,rgba(10,20,35,.78),rgba(18,30,48,.72),rgba(25,38,58,.65))}
        .wx-rain::before{content:'';position:absolute;inset:-70%;z-index:0;pointer-events:none;opacity:.25;
            background:repeating-linear-gradient(15deg,transparent,transparent 1px,rgba(255,255,255,1) 1px,rgba(255,255,255,1) 2px);
            background-size:16px 16px;animation:wxRainFast .4s linear infinite}
        .wx-rain::after{content:'';position:absolute;inset:-60%;z-index:0;pointer-events:none;opacity:.15;
            background:repeating-linear-gradient(25deg,transparent,transparent 2px,rgba(255,255,255,.85) 2px,rgba(255,255,255,.85) 3px);
            background-size:28px 28px;animation:wxRainSlow .7s linear infinite}
        @keyframes wxRainFast{0%{transform:translate(0,-15%)}100%{transform:translate(-12px,35px)}}
        @keyframes wxRainSlow{0%{transform:translate(0,-10%)}100%{transform:translate(-6px,25px)}}

        /* ❄️ 雪：浅白半透明覆层 + 雪花 */
        .wx-snow{background:linear-gradient(180deg,rgba(160,185,205,.45),rgba(175,200,215,.5),rgba(190,210,225,.45))}
        .wx-snow::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
            background-image:radial-gradient(4px 4px at 10% 10%,rgba(255,255,255,.9),transparent),radial-gradient(3.5px 3.5px at 35% 25%,rgba(255,255,255,.75),transparent),radial-gradient(4px 4px at 60% 5%,rgba(255,255,255,.85),transparent),radial-gradient(3.5px 3.5px at 85% 20%,rgba(255,255,255,.7),transparent),radial-gradient(4px 4px at 20% 50%,rgba(255,255,255,.8),transparent),radial-gradient(3.5px 3.5px at 50% 55%,rgba(255,255,255,.85),transparent),radial-gradient(4px 4px at 75% 40%,rgba(255,255,255,.7),transparent),radial-gradient(3.5px 3.5px at 40% 75%,rgba(255,255,255,.8),transparent);
            background-size:100px 100px;animation:wxSnowBig 4s linear infinite}
        .wx-snow::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
            background-image:radial-gradient(2px 2px at 15% 15%,rgba(255,255,255,1),transparent),radial-gradient(1.5px 1.5px at 45% 30%,rgba(255,255,255,.85),transparent),radial-gradient(2px 2px at 70% 10%,rgba(255,255,255,.9),transparent),radial-gradient(1.5px 1.5px at 25% 55%,rgba(255,255,255,.75),transparent),radial-gradient(2px 2px at 55% 40%,rgba(255,255,255,.85),transparent),radial-gradient(1.5px 1.5px at 80% 60%,rgba(255,255,255,.9),transparent),radial-gradient(2px 2px at 30% 70%,rgba(255,255,255,.75),transparent),radial-gradient(1.5px 1.5px at 65% 80%,rgba(255,255,255,.85),transparent),radial-gradient(2px 2px at 90% 35%,rgba(255,255,255,.8),transparent),radial-gradient(1.5px 1.5px at 5% 40%,rgba(255,255,255,.7),transparent);
            background-size:65px 65px;animation:wxSnowSmall 2.5s linear infinite}
        @keyframes wxSnowBig{0%{background-position:0 0}100%{background-position:20px 100px}}
        @keyframes wxSnowSmall{0%{background-position:0 0}100%{background-position:-12px 65px}}

        /* ⚡ 雷暴：极暗半透明覆层 + 暴雨 + 闪电 */
        .wx-storm{background:linear-gradient(180deg,rgba(3,5,14,.88),rgba(8,14,30,.82),rgba(10,18,38,.78))}
        .wx-storm::before{content:'';position:absolute;inset:-70%;z-index:0;pointer-events:none;opacity:.30;
            background:repeating-linear-gradient(12deg,transparent,transparent 1px,rgba(255,255,255,1) 1px,rgba(255,255,255,1) 2px);
            background-size:14px 14px;animation:wxStormRain .3s linear infinite}
        .wx-storm::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
            background:radial-gradient(ellipse at 60% 25%,rgba(255,255,200,.6) 0%,transparent 50%),radial-gradient(ellipse at 80% 40%,rgba(200,220,255,.45) 0%,transparent 45%);
            animation:wxLightning 4s ease-in-out infinite}
        @keyframes wxStormRain{0%{transform:translate(0,-12%)}100%{transform:translate(-16px,44px)}}
        @keyframes wxLightning{0%,80%,100%{opacity:0}82%{opacity:.7}83%{opacity:.2}84%{opacity:1}85%{opacity:.3}86%{opacity:.9}87%{opacity:0}}

        /* 🌫️ 雾：白灰半透明覆层 + 雾气流动 */
        .wx-fog{background:linear-gradient(180deg,rgba(200,210,220,.65),rgba(215,225,232,.7),rgba(225,232,238,.65))}
        .wx-fog::before{content:'';position:absolute;z-index:0;pointer-events:none;
            width:220%;height:55px;background:radial-gradient(ellipse at center,rgba(255,255,255,.45) 0%,transparent 65%);
            top:22%;animation:wxFog1 8s ease-in-out infinite}
        .wx-fog::after{content:'';position:absolute;z-index:0;pointer-events:none;
            width:180%;height:40px;background:radial-gradient(ellipse at center,rgba(255,255,255,.38) 0%,transparent 60%);
            top:52%;animation:wxFog2 6s ease-in-out infinite}
        @keyframes wxFog1{0%,100%{transform:translateX(-10%);opacity:.7}50%{transform:translateX(10%);opacity:1}}
        @keyframes wxFog2{0%,100%{transform:translateX(8%);opacity:1}50%{transform:translateX(-14%);opacity:.6}}

        /* 宽卡显示预报 / 超大卡加大间距 */
        @container (min-width: 130px){ .wx-forecast{display:block} }
        @container (min-width: 200px){ .wx-main{gap:14px} .wx-fc-day{margin-right:12px} }

        /* ========== 日历 ========== */
        .card-calendar{container-type:inline-size;display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;
            background:rgba(30,30,30,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .5s}
        /* 今日视图（所有尺寸） */
        .cal-today{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:6px 4px;position:relative;z-index:1}
        .cal-today-top{display:flex;align-items:center;gap:6px;margin-bottom:3px;width:100%;justify-content:center}
        .cal-month-row{display:flex;align-items:baseline;gap:4px}
        .cal-emoji{font-size:clamp(11px,9cqi,20px);line-height:1}
        .cal-month{font-size:clamp(11px,8cqi,20px);font-weight:500}
        .cal-year{font-size:clamp(9px,5.5cqi,15px);opacity:.45}
        .cal-wdaytag{font-size:clamp(9px,5.5cqi,15px);padding:1px 6px;border-radius:3px;font-weight:500;margin-left:6px}
        .cal-wdaytag.work{background:rgba(74,122,255,.3);color:rgba(180,210,255,.9)}
        .cal-wdaytag.rest{background:rgba(255,100,100,.3);color:rgba(255,180,180,.9)}
        .cal-day-wrap{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}
        .cal-day-big{font-size:clamp(24px,24cqi,60px);font-weight:700;line-height:1;text-shadow:0 2px 8px rgba(0,0,0,.2);transition:transform .3s;cursor:default}
        .cal-day-big:active{transform:scale(.95)}
        .cal-weekday{font-size:clamp(11px,8cqi,20px);opacity:.65;font-weight:500}
        /* 进度条 */
        .cal-progress{width:70%;height:3px;border-radius:2px;background:rgba(255,255,255,.1);margin:0 auto 4px;overflow:hidden}
        .cal-progress-bar{height:100%;border-radius:2px;background:rgba(255,255,255,.4);transition:width 60s linear}
        /* 信息行 */
        .cal-info{font-size:clamp(9px,4.5cqi,14px);opacity:.6;line-height:1.5}
        .cal-jieqi{display:inline-block;padding:1px 6px;border-radius:4px;background:rgba(255,255,255,.15);font-size:clamp(9px,4cqi,13px);margin-top:3px}
        .cal-countdown{font-size:clamp(9px,4.5cqi,13px);opacity:.55;margin-top:3px;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
        .cal-history{font-size:clamp(8px,4cqi,13px);opacity:.4;margin-top:2px;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
        .cal-weather{font-size:clamp(9px,4.5cqi,14px);opacity:.5;margin-top:2px}
        /* 周条 */
        .cal-week{display:none;padding:3px 6px 5px;border-top:1px solid rgba(255,255,255,.1);position:relative;z-index:1}
        .cal-week-row{display:flex;justify-content:space-between;gap:1px}
        .cal-wday{flex:1;text-align:center;font-size:clamp(8px,3cqi,12px);opacity:.4;padding:1px 0;border-radius:3px;position:relative}
        .cal-wday.today{opacity:1;font-weight:600}
        .cal-wday.today::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:12px;height:2px;border-radius:1px;background:rgba(255,255,255,.7)}
        /* 月历视图（宽卡） */
        .cal-month-view{display:none;flex:1;flex-direction:column;padding:6px 8px 8px;position:relative;z-index:1}
        .cal-month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
        .cal-nav-btn{width:22px;height:22px;border:none;border-radius:6px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .15s}
        .cal-nav-btn:hover{background:rgba(255,255,255,.18)}
        .cal-month-title{font-size:clamp(12px,4cqi,18px);font-weight:500}
        .cal-week-labels{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:2px}
        .cal-week-labels span{text-align:center;font-size:clamp(8px,3cqi,12px);opacity:.35;padding:1px 0}
        .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;flex:1}
        .cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:clamp(10px,3.5cqi,15px);border-radius:4px;cursor:default;position:relative;transition:background .15s}
        .cal-cell.other{opacity:.25}
        .cal-cell.today{background:rgba(255,255,255,.18);font-weight:600}
        .cal-cell.weekend{opacity:.5}
        .cal-cell:hover{background:rgba(255,255,255,.08)}
        /* 面积≤3的小卡（1x1/1x2/1x3/2x1/3x1）：仅年月日 */
        .cal-mini .cal-progress,.cal-mini .cal-info,.cal-mini .cal-jieqi,
        .cal-mini .cal-countdown,.cal-mini .cal-history,.cal-mini .cal-weather,
        .cal-mini .cal-weekday,.cal-mini .cal-wdaytag,.cal-mini .cal-emoji,
        .cal-mini .cal-year,.cal-mini .cal-week,.cal-mini .cal-month-view{display:none!important}
        .cal-mini .cal-today{justify-content:center;padding:4px}
        .cal-mini .cal-today-top{margin-bottom:0}
        .cal-mini .cal-day-wrap{margin-bottom:0}

        /* 容器查询 — 渐进展示 */
        /* 极小卡：仅日期数字 + 月份（默认隐藏，宽卡才显示） */
        .cal-progress,.cal-info,.cal-jieqi,.cal-countdown,.cal-history,.cal-weather,.cal-weekday,.cal-week{display:none}
        @container (min-width: 180px){
            .cal-progress,.cal-info,.cal-jieqi,.cal-countdown,.cal-history,.cal-weather,.cal-weekday{display:initial}
            .cal-week{display:block}
        }
        /* 宽卡：切换月历视图 */
        @container (min-width: 180px) and (min-height: 140px){ .cal-today{display:none} .cal-week{display:none} .cal-month-view{display:flex} }
        /* 季节覆盖色 */
        .cal-spring{background:rgba(100,170,110,.5)!important}.cal-spring .cal-progress-bar{background:rgba(180,240,190,.5)}
        .cal-summer{background:rgba(230,130,30,.5)!important}.cal-summer .cal-progress-bar{background:rgba(255,200,120,.5)}
        .cal-autumn{background:rgba(190,120,35,.5)!important}.cal-autumn .cal-progress-bar{background:rgba(240,180,100,.5)}
        .cal-winter{background:rgba(80,140,210,.5)!important}.cal-winter .cal-progress-bar{background:rgba(150,200,240,.5)}

        /* ========== 日历弹窗 ========== */
        .cal-popup-overlay{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,.5);display:none;justify-content:center;align-items:center}
        .cal-popup-overlay.show{display:flex}
        .cal-popup{width:360px;max-width:95vw;background:rgba(35,35,40,.95);border-radius:20px;padding:44px 20px 20px;box-shadow:0 20px 60px rgba(0,0,0,.5);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);position:relative}
        .cal-popup-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding:0 4px}
        .cal-popup-nav{width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,.08);color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
        .cal-popup-nav:hover{background:rgba(255,255,255,.18)}
        .cal-popup-title{font-size:18px;font-weight:600}
        .cal-popup-close{position:absolute;top:12px;right:16px;width:32px;height:32px;border-radius:50%;border:none;background:rgba(255,255,255,.06);color:rgba(255,255,255,.5);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
        .cal-popup-close:hover{background:rgba(255,255,255,.12);color:#fff}
        .cal-popup-close:hover{background:rgba(255,255,255,.1);color:#fff}
        .cal-popup-wlabels{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}
        .cal-popup-wlabels span{text-align:center;font-size:11px;color:rgba(255,255,255,.35);padding:4px 0}
        .cal-popup-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
        .cal-popup-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:14px;border-radius:8px;cursor:pointer;transition:background .15s;position:relative}
        .cal-popup-cell:hover{background:rgba(255,255,255,.08)}
        .cal-popup-cell.other{opacity:.2}
        .cal-popup-cell.today{background:rgb(var(--blue));font-weight:600;color:#fff;border-radius:50%}
        .cal-popup-cell.weekend{opacity:.5}
        .cal-popup-cell.has-event::after{content:'';position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.5)}
        .cal-popup-today-info{text-align:center;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1);font-size:12px;color:rgba(255,255,255,.5);line-height:1.6}

        /* ========== 热搜 ========== */
        .card-hot{height:100%;display:flex;flex-direction:column;overflow:hidden;container-type:inline-size}
        .hot-tabs{display:flex;gap:6px;margin-bottom:6px;font-size:clamp(10px,4cqi,13px);flex-shrink:0;flex-wrap:wrap}
        .hot-tab{color:rgba(255,255,255,0.5);cursor:pointer;padding:2px 5px;border-radius:4px;transition:color .2s,background .2s;white-space:nowrap}
        .hot-tab.active{color:#fff;background:rgba(255,255,255,0.1)}
        .hot-tab:hover{color:rgba(255,255,255,0.8)}
        .hot-list{display:flex;flex-direction:column;gap:3px;flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent;padding-right:2px}
        .hot-item{display:flex;align-items:center;gap:4px;font-size:clamp(10px,4cqi,13px);cursor:pointer;padding:2px 4px;border-radius:4px;transition:background .15s}
        .hot-item:hover{background:rgba(255,255,255,0.08)}
        .hot-rank{width:12px;text-align:center;font-size:clamp(9px,3.5cqi,12px);color:rgba(255,255,255,0.5);flex-shrink:0}
        .hot-rank.top{color:#ff6b6b;font-weight:600}
        .hot-title{flex:1;color:rgba(255,255,255,0.85);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .hot-num{color:rgba(255,255,255,0.4);font-size:clamp(9px,3.5cqi,12px);flex-shrink:0}

        /* ========== 纪念日 ========== */
        .card-anniversary{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:100%;cursor:pointer}
        .card-anniversary.site-card{padding:6px 6px 18px 6px;display:flex;flex-direction:column;align-items:center;overflow:visible !important;background:none !important;border-color:transparent !important}
        .card-anniversary.site-card:hover{background:rgba(255,255,255,0.08) !important;transform:translateY(-2px);border-color:transparent !important;box-shadow:none !important}
        .card-anniversary.site-card .ann-icon{width:100%;aspect-ratio:1;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:28px;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s ease;background:rgba(255,255,255,0.05)}
        .card-anniversary.site-card:hover .ann-icon{transform:scale(1.08);box-shadow:0 6px 20px rgba(0,0,0,0.3)}
        .card-anniversary.site-card .ann-icon img{width:40px;height:40px;border-radius:8px;object-fit:contain}
        .card-anniversary.site-card .ann-icon .fallback-icon{display:none;font-size:24px;color:rgba(255,255,255,0.3)}
        .card-anniversary.site-card .ann-name{font-size:10px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center;line-height:1.2;position:absolute;bottom:0;left:6px;right:6px;background:rgba(22,22,34,0.9);padding:2px 4px;border-radius:6px}
        .card-anniversary.site-card:hover .ann-name{color:#fff}
        .card-anniversary:not(.site-card){container-type:inline-size;background:linear-gradient(145deg,rgba(80,120,200,0.7),rgba(60,100,180,0.5))}
        .card-anniversary:not(.site-card):hover .ann-days-big{transform:scale(1.05)}
        .ann-label{font-size:clamp(7px,6cqi,13px);color:rgba(255,255,255,0.7);margin-bottom:2px}
        .ann-days-big{font-size:clamp(14px,16cqi,34px);font-weight:600;line-height:1;transition:transform .2s}
        .ann-unit{font-size:clamp(7px,5cqi,12px);color:rgba(255,255,255,0.6)}
        .ann-date-small{font-size:clamp(6px,3.5cqi,10px);color:rgba(255,255,255,0.5);margin-top:2px}

        /* ========== 备忘录 ========== */
        .card-note{container-type:inline-size;background:linear-gradient(145deg,rgba(100,140,230,.8),rgba(70,120,220,.7));height:100%;display:flex;flex-direction:column;justify-content:center;cursor:pointer;padding:10px;transition:transform .2s,box-shadow .2s}
        .card-note:hover{transform:translateY(-1px)}
        .note-title{font-size:clamp(12px,8cqi,18px);font-weight:600;margin-bottom:6px;display:flex;align-items:center;gap:5px}
        .card-pomodoro .note-title{font-size:clamp(11px,7cqi,16px);margin-bottom:0}
        .note-content{font-size:clamp(11px,6cqi,16px);color:rgba(255,255,255,.85);line-height:1.5;flex:1;overflow:hidden}
        .note-content .nm-preview-title{font-weight:500;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .note-content .nm-preview-text{opacity:.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-all}

        /* ========== 电影推荐 ========== */
        .card-movie{container-type:inline-size;display:flex;flex-direction:column;height:100%;overflow:hidden;
            background:linear-gradient(145deg,rgba(80,40,110,.7),rgba(50,20,90,.55));border-radius:16px;padding:10px}
        .movie-header{display:flex;align-items:center;gap:clamp(4px,2cqi,10px);margin-bottom:clamp(2px,1.5cqi,6px);flex-shrink:0}
        .movie-header i{font-size:clamp(10px,7cqi,18px);color:#ffd93d}
        .movie-header-title{font-size:clamp(10px,7cqi,18px);font-weight:600}
        .movie-header-meta{font-size:clamp(7px,5cqi,13px);color:rgba(255,255,255,.35);margin-left:auto}
        .movie-list{display:flex;flex-direction:column;gap:clamp(1px,1cqi,4px);flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}
        .movie-list-item{display:flex;align-items:center;gap:clamp(3px,2cqi,8px);font-size:clamp(8px,7cqi,15px);padding:clamp(1px,1cqi,4px);border-radius:4px;cursor:pointer;transition:background .15s;color:#fff;text-decoration:none}
        .movie-list-item:hover{background:rgba(255,255,255,.1)}
        .movie-list-date{width:clamp(10px,8cqi,24px);text-align:center;font-weight:600;color:rgba(255,255,255,.4);flex-shrink:0;font-size:inherit}
        .movie-list-title{flex:1;color:rgba(255,255,255,.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .movie-list-rating{color:#ffd93d;font-size:90%;flex-shrink:0}

        /* ========== 下班倒计时 ========== */
        .card-countdown{container-type:inline-size;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;background:rgba(30,30,30,.5);border-radius:16px;overflow:hidden}
        .cd-label{font-size:clamp(7px,5cqi,11px);opacity:.55;margin-bottom:2px}
        .cd-time{font-size:clamp(11px,12cqi,30px);font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
        .cd-cat{font-size:clamp(10px,6cqi,16px);margin-top:4px;opacity:.5}
        .cd-progress{display:none;width:70%;height:2px;border-radius:1px;background:rgba(255,255,255,.08);margin:6px auto 0;overflow:hidden}
        .cd-progress-bar{height:100%;border-radius:1px;background:rgba(255,255,255,.25);transition:width 1s linear}
        .cd-info{display:none;font-size:clamp(6px,3.5cqi,11px);opacity:.45;margin-top:4px}
        @container (min-width: 140px){ .cd-progress{display:block} .cd-info{display:block} }
        .cd-mini .cd-progress,.cd-mini .cd-info{display:none!important}
        .countdown-done{color:#90EE90;font-size:clamp(10px,2vw,13px);font-weight:500}

        /* ========== 文件夹 ========== */
        /* ========== iOS风格文件夹卡片 ========== */
        .card-folder{container-type:inline-size;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;cursor:pointer;transition:transform .2s;position:relative;overflow:hidden;gap:2px}
        .card-folder:hover{transform:scale(1.04)}
        .folder-apps{
            display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);
            gap:clamp(1px,1cqi,3px);width:clamp(36px,22cqi,56px);height:clamp(36px,22cqi,56px);
            border-radius:clamp(4px,2cqi,8px);overflow:hidden;padding:clamp(1px,1cqi,2px);
            background:transparent;flex-shrink:0;
        }
        .folder-app{
            width:100%;height:100%;border-radius:clamp(2px,1cqi,4px);display:flex;align-items:center;justify-content:center;
            position:relative;overflow:hidden;
        }
        .folder-app i{font-size:clamp(12px,8cqi,22px);line-height:1}
        .folder-app.empty{background:transparent !important}
        .folder-label{font-size:clamp(10px,5cqi,14px);color:rgba(255,255,255,0.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:clamp(48px,25cqi,72px);text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.3);flex-shrink:0}
        
        /* 文件夹卡片需要适配的1x1卡片样式 */
        .ios-folder-overlay{
            position:fixed;inset:0;z-index:1000;
            background:rgba(0,0,0,0.55);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
            display:none;align-items:center;justify-content:center;
            animation:iosFolderIn .3s cubic-bezier(.25,.1,.25,1);
        }
        .ios-folder-overlay.show{display:flex}
        @keyframes iosFolderIn{
            from{opacity:0}
            to{opacity:1}
        }
        .ios-folder-container{
            background:rgba(255,255,255,0.06);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
            border-radius:20px;border:1px solid rgba(255,255,255,0.12);
            padding:20px 16px 24px;width:90vw;max-width:340px;max-height:80vh;overflow-y:auto;
            animation:iosFolderPop .35s cubic-bezier(.25,.1,.25,1);
            scrollbar-width:none;
        }
        .ios-folder-container::-webkit-scrollbar{display:none}
        @keyframes iosFolderPop{
            from{transform:scale(0.8);opacity:0}
            to{transform:scale(1);opacity:1}
        }
        .ios-folder-title-bar{
            display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:16px;
        }
        .ios-folder-title{
            font-size:16px;font-weight:600;color:rgba(255,255,255,0.9);text-align:center;
            background:none;border:none;outline:none;padding:4px 12px;border-radius:8px;
            cursor:text;max-width:200px;
        }
        .ios-folder-title:focus{background:rgba(255,255,255,0.08)}
        .ios-folder-close{
            position:absolute;right:0;top:50%;transform:translateY(-50%);
            width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,0.12);
            display:flex;align-items:center;justify-content:center;
            color:rgba(255,255,255,0.6);cursor:pointer;font-size:12px;
            border:none;transition:background .2s,color .2s;
        }
        .ios-folder-close:hover{background:rgba(255,255,255,0.22);color:#fff}
        .ios-folder-grid{
            display:grid;grid-template-columns:repeat(3,1fr);gap:12px 8px;
        }
        .ios-folder-item{
            display:flex;flex-direction:column;align-items:center;gap:6px;
            cursor:pointer;padding:4px;border-radius:10px;transition:background .15s;
            -webkit-user-select:none;user-select:none;
        }
        .ios-folder-item:hover{background:rgba(255,255,255,0.08)}
        .ios-folder-item-icon{
            width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;
            font-size:24px;color:#fff;transition:transform .2s;
        }
        .ios-folder-item:hover .ios-folder-item-icon{transform:scale(1.05)}
        .ios-folder-item-name{
            font-size:11px;color:rgba(255,255,255,0.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
            max-width:80px;text-align:center;
        }
        .ios-folder-add{
            display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;padding:4px;border-radius:10px;transition:background .15s;
        }
        .ios-folder-add:hover{background:rgba(255,255,255,0.08)}
        .ios-folder-add .ios-folder-item-icon{
            border:2px dashed rgba(255,255,255,0.2);background:rgba(255,255,255,0.05) !important;
        }
        .ios-folder-add .ios-folder-item-icon i{color:rgba(255,255,255,0.3);font-size:18px}

        /* ========== 重命名弹窗 ========== */
        .rename-overlay{
            position:fixed;inset:0;z-index:10000;
            background:rgba(0,0,0,0.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
            display:none;align-items:center;justify-content:center;
            animation:fadeIn .2s ease;
        }
        .rename-overlay.show{display:flex}
        @keyframes fadeIn{from{opacity:0}to{opacity:1}}
        .rename-dialog{
            background:rgba(40,40,44,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
            border-radius:16px;border:1px solid rgba(255,255,255,0.12);
            padding:20px 24px;text-align:center;min-width:260px;
            box-shadow:0 20px 60px rgba(0,0,0,0.5);
            animation:scaleIn .2s ease;
        }
        @keyframes scaleIn{from{transform:scale(0.9);opacity:0}to{transform:scale(1);opacity:1}}
        .rename-dialog h3{font-size:15px;font-weight:600;color:rgba(255,255,255,0.9);margin:0 0 16px}
        .rename-dialog input{
            width:100%;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,0.15);
            background:rgba(255,255,255,0.08);color:#fff;font-size:14px;padding:0 12px;outline:none;
            text-align:center;margin-bottom:16px;transition:border-color .2s;
        }
        .rename-dialog input:focus{border-color:rgb(var(--blue))}
        .rename-dialog-btns{display:flex;gap:8px}
        .rename-dialog-btns button{
            flex:1;height:34px;border-radius:10px;border:none;font-size:13px;cursor:pointer;font-weight:500;transition:opacity .2s;
        }
        .rename-dialog-btns button:hover{opacity:0.85}
        .rename-btn-cancel{background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7)}
        .rename-btn-confirm{background:rgb(var(--blue));color:#fff}

        .cat-icon-scroll::-webkit-scrollbar{width:4px}
        .cat-icon-scroll::-webkit-scrollbar-track{background:transparent}
        .cat-icon-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px}
        .cat-icon-scroll::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.25)}
        .cat-icon-scroll{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.15) transparent}

        /* ========== 右键菜单 ========== */
        .context-menu{
            position:fixed;z-index:10000;
            background:rgba(30,30,30,0.95);
            border-radius:12px;border:1px solid rgba(255,255,255,0.15);
            box-shadow:0 8px 32px rgba(0,0,0,0.4);
            padding:8px 0;min-width:170px;display:none;
        }
        .context-menu.show{display:block;animation:menuIn .15s ease}
        @keyframes menuIn{from{opacity:0}to{opacity:1}}
        .context-menu-item{
            padding:10px 16px;cursor:pointer;
            display:flex;align-items:center;gap:10px;
            font-size:13px;color:rgba(255,255,255,0.9);
            transition:background .15s;
        }
        .context-menu-item:hover{background:rgba(255,255,255,0.1)}
        .context-menu-item.active{background:rgba(74,122,255,0.3)}
        .context-menu-divider{height:1px;background:rgba(255,255,255,0.1);margin:6px 0}
        
        /* 尺寸选择网格面板 */
        .size-grid-menu{
            position:fixed;z-index:10000;
            background:rgba(30,30,30,0.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
            border-radius:12px;border:1px solid rgba(255,255,255,0.15);
            box-shadow:0 8px 32px rgba(0,0,0,0.4);
            display:none;padding:8px;grid-template-columns:repeat(4,1fr);gap:4px;
            width:220px;
            animation:menuIn .15s ease;
        }
        .size-grid-menu.show{display:grid}
        .size-grid-item{
            display:flex;flex-direction:column;align-items:center;gap:3px;
            padding:6px 2px;border-radius:8px;cursor:pointer;
            transition:background .15s;border:none;background:none;color:inherit;
        }
        .size-grid-item:hover{background:rgba(255,255,255,0.1)}
        .size-grid-item span{font-size:10px;color:rgba(255,255,255,0.6)}
        .size-preview{display:grid;grid-template-columns:repeat(4,7px);grid-template-rows:repeat(4,7px);gap:1px;width:31px;height:31px}
        .size-preview span{border-radius:1px}
        .size-preview span.on{background:rgb(var(--blue));box-shadow:0 0 3px rgba(var(--blue),0.4)}
        .size-preview span.o{background:rgba(255,255,255,0.1)}

        /* ========== 右键添加菜单 ========== */
        .ctx-main-menu, .ctx-sub-menu{
            position:fixed;z-index:10001;
            background:rgba(28,28,32,0.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
            border-radius:12px;border:1px solid rgba(255,255,255,0.12);
            box-shadow:0 10px 40px rgba(0,0,0,0.5);
            display:none;overflow:hidden;
            animation:ctxMenuIn .18s cubic-bezier(.4,0,.2,1);
        }
        .ctx-main-menu.show, .ctx-sub-menu.show{display:block}
        .ctx-sub-panel{
            display:none;
            position:fixed;z-index:10001;
            background:rgba(28,28,32,0.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
            border-radius:12px;border:1px solid rgba(255,255,255,0.12);
            box-shadow:0 10px 40px rgba(0,0,0,0.5);
            width:320px;max-height:480px;overflow-y:auto;
        }
        .ctx-sub-panel.show{display:block}
        @keyframes ctxMenuIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}
        
        .ctx-main-item{
            padding:12px 16px;cursor:pointer;
            display:flex;align-items:center;gap:12px;
            font-size:13px;color:rgba(255,255,255,0.85);
            transition:background .15s;position:relative;
        }
        .ctx-main-item:hover{background:rgba(255,255,255,0.08)}
        .ctx-main-item i:first-child{width:18px;text-align:center;font-size:14px;color:rgb(var(--blue))}
        .ctx-arrow{margin-left:auto;font-size:10px;color:rgba(255,255,255,0.3)}
        
        .ctx-sub-header{
            padding:12px 14px;border-bottom:1px solid rgba(255,255,255,0.08);
            display:flex;align-items:center;gap:10px;font-size:13px;font-weight:500;
            color:rgba(255,255,255,0.9);cursor:pointer;
        }
        .ctx-sub-header:hover{background:rgba(255,255,255,0.05)}
        .ctx-back{font-size:12px;color:rgba(255,255,255,0.5)}
        
        .ctx-sub-body{
            padding:12px;max-height:320px;overflow-y:auto;
            scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.15) transparent;
        }
        .ctx-sub-body::-webkit-scrollbar{width:3px}
        .ctx-sub-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px}
        
        .ctx-widget-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
        .ctx-widget-item{
            display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;
            border-radius:10px;cursor:pointer;transition:background .15s,transform .1s;
            border:none;background:none;color:inherit;
        }
        .ctx-widget-item:hover{background:rgba(255,255,255,0.08);transform:translateY(-1px)}
        .ctx-widget-item.added{opacity:0.3;cursor:default}
        .ctx-widget-item.added:hover{transform:none;background:none}
        .ctx-widget-icon{
            width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;
            font-size:13px;color:#fff;
        }
        .ctx-widget-name{font-size:9px;color:rgba(255,255,255,0.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
        
        .ctx-sub-body input{
            width:100%;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,0.1);
            background:rgba(255,255,255,0.06);color:#fff;font-size:12px;padding:0 12px;margin-bottom:8px;outline:none;
            transition:border-color .2s;
        }
        .ctx-sub-body input:focus{border-color:rgba(74,122,255,0.5)}
        .ctx-sub-body input::placeholder{color:rgba(255,255,255,0.3)}
        .ctx-submit-btn{
            width:100%;height:34px;border-radius:8px;border:none;
            background:rgb(var(--blue));color:#fff;font-size:12px;cursor:pointer;
            transition:opacity .2s;font-weight:500;
        }
        .ctx-submit-btn:hover{opacity:0.85}

        /* ========== 设置面板 v2.0 ========== */
        .settings-overlay{position:fixed;inset:0;z-index:1999;background:rgba(0,0,0,0.4);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
        .settings-overlay.show{opacity:1;visibility:visible}
        .settings-panel{
            position:fixed;right:-420px;top:0;width:400px;height:100vh;z-index:2000;
            background:rgba(22,22,34,.98);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);
            box-shadow:-8px 0 40px rgba(0,0,0,.5);
            transition:right .35s cubic-bezier(.4,0,.2,1);
            display:flex;flex-direction:column;
        }
        .settings-panel.show{right:0}
        .settings-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 0;flex-shrink:0}
        .settings-header h2{font-size:20px;font-weight:700;letter-spacing:-0.3px}
        .settings-close{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.4);cursor:pointer;transition:all .2s;font-size:14px}
        .settings-close:hover{background:rgba(255,255,255,.08);color:#fff}

        /* Tab导航 */
        .settings-tabs{display:flex;gap:0;padding:16px 24px 0;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.06)}
        .settings-tab{flex:1;text-align:center;padding:10px 0 12px;font-size:13px;color:rgba(255,255,255,.4);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;font-weight:500;white-space:nowrap}
        .settings-tab:hover{color:rgba(255,255,255,.7)}
        .settings-tab.active{color:#fff;border-bottom-color:rgb(var(--blue))}

        /* 内容区域 */
        .settings-content{flex:1;overflow-y:auto;padding:20px 24px 30px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}
        .settings-content::-webkit-scrollbar{width:4px}
        .settings-content::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}

        .settings-page{display:none}
        .settings-page.active{display:block}

        /* 分组卡片 */
        .settings-card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05);border-radius:14px;padding:16px;margin-bottom:16px}
        .settings-card h3{font-size:13px;font-weight:600;margin-bottom:12px;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:8px}
        .settings-card h3 i{font-size:15px;opacity:.7;width:20px;text-align:center}
        .settings-reset{font-size:14px;color:rgba(255,255,255,.2);cursor:pointer;transition:all .2s;margin-left:auto;padding:3px 7px;border-radius:5px;border:none;background:none;line-height:1;font-family:inherit}
        .settings-reset:hover{color:rgba(255,200,80,.9);background:rgba(255,200,80,.1)}

        /* 开关行 */
        .settings-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;min-height:38px}
        .settings-row+.settings-row{border-top:1px solid rgba(255,255,255,.04)}
        .settings-row>span{font-size:13px;color:rgba(255,255,255,.65)}
        .settings-row>span small{display:block;font-size:10px;color:rgba(255,255,255,.3);margin-top:1px}

        /* 开关按钮 */
        .stoggle{width:44px;height:26px;border-radius:13px;border:none;cursor:pointer;position:relative;transition:background .25s;flex-shrink:0}
        .stoggle::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px rgba(0,0,0,.3)}
        .stoggle.off{background:rgba(255,255,255,.15)}
        .stoggle.on{background:rgb(var(--blue))}
        .stoggle.on::after{transform:translateX(18px)}

        /* 滑块 */
        .settings-slider{display:flex;align-items:center;gap:10px;padding:6px 0}
        .settings-slider span{font-size:12px;color:rgba(255,255,255,.55);min-width:36px}
        .settings-slider span:last-child{text-align:right}
        .settings-slider input[type="range"]{flex:1;accent-color:rgb(var(--blue));height:4px;cursor:pointer}
        .settings-slider input[type="range"]::-webkit-slider-thumb{width:16px;height:16px}

        /* 选择器 */
        .settings-select{display:flex;gap:4px;flex-wrap:wrap}
        .settings-select-btn{padding:6px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:rgba(255,255,255,.6);font-size:12px;cursor:pointer;transition:all .15s;font-weight:500}
        .settings-select-btn:hover{background:rgba(255,255,255,.08);color:rgba(255,255,255,.7)}
        .settings-select-btn.active{background:rgb(var(--blue));border-color:rgb(var(--blue));color:#fff}

        /* 色块 */
        .settings-swatches{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
        .settings-swatch{width:28px;height:28px;border-radius:8px;cursor:pointer;border:2px solid transparent;transition:all .15s;flex-shrink:0}
        .settings-swatch:hover{transform:scale(1.15)}
        .settings-swatch.active{border-color:#fff;box-shadow:0 0 0 2px rgb(var(--blue))}

        /* 预设壁纸 */
        .wp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
        .wp-preset{aspect-ratio:16/9;border-radius:8px;cursor:pointer;border:2px solid transparent;transition:all .15s;background-size:cover}
        .wp-preset:hover{border-color:rgba(255,255,255,.4);transform:scale(1.03)}
        .wp-preset.active{border-color:rgb(var(--blue))}
        .wp-preset-bing{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.05);color:rgba(255,255,255,.3);font-size:11px;flex-direction:column;gap:4px}
        .wp-preset-bing:hover{color:rgba(255,255,255,.6)}

        /* 登录方式切换标签 */
        .login-method-tabs{display:flex;gap:6px;margin:16px 20px 0;padding:3px;background:rgba(255,255,255,.03);border-radius:12px}
        .login-method-tab{flex:1;padding:8px 0;text-align:center;border-radius:10px;color:rgba(255,255,255,.3);cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}
        .login-method-tab:hover:not(.active){color:rgba(255,255,255,.6);background:rgba(255,255,255,.03)}
        .login-method-tab.active{background:rgba(102,126,234,.2);color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2)}

        .modal-login-form{padding:0 20px 16px}
        .modal-login-form.hidden{display:none!important}
        .wechat-btn{width:100%;padding:12px;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s}
        .wechat-btn.enabled{background:#07c160;color:#fff}
        .wechat-btn.enabled:hover{background:#06ad56}
        .wechat-btn.disabled{background:rgba(255,255,255,.03);color:rgba(255,255,255,.18);cursor:not-allowed;border:1px dashed rgba(255,255,255,.07)}
        .login-divider{display:flex;align-items:center;gap:12px;margin:12px 20px;color:rgba(255,255,255,.18);font-size:11px}
        .login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.06)}
        .pw-toggle-group{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:13px;color:rgba(255,255,255,.5)}
        .pw-toggle-group .link-text,.pw-toggle-group span:last-child{color:var(--primary);cursor:pointer;font-size:12px}
        .pw-toggle-group .link-text:hover{opacity:.8}

        /* 按钮 */
        .stn-btn{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex;align-items:center;gap:6px}
        .stn-btn-primary{background:rgb(var(--blue));color:#fff}
        .stn-btn-primary:hover{background:rgb(90,140,255)}
        .stn-btn-ghost{background:rgba(255,255,255,.06);color:rgba(255,255,255,.6)}
        .stn-btn-ghost:hover{background:rgba(255,255,255,.1);color:#fff}
        .stn-btn-danger{background:rgba(255,59,48,.2);color:#ff6b6b}
        .stn-btn-danger:hover{background:rgba(255,59,48,.35)}
        .stn-btn-block{display:flex;width:100%;justify-content:center}

        /* 搜索引擎卡片 */
        .engine-card-grid{display:flex;flex-wrap:wrap;gap:8px}
        .engine-card{padding:8px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:rgba(255,255,255,.5);font-size:13px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:8px;font-weight:500}
        .engine-card:hover{background:rgba(255,255,255,.08);color:rgba(255,255,255,.75)}
        .engine-card.active{background:rgb(var(--blue));border-color:rgb(var(--blue));color:#fff}
        .engine-card:hover .ce-del-btn{opacity:1 !important}
        .engine-card i{font-size:14px;width:18px;text-align:center}
        /* 自定义引擎列表项 */
        .custom-engine-item{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-radius:8px;background:rgba(255,255,255,.03);margin-bottom:4px;font-size:12px;cursor:pointer;transition:background .15s}
        .custom-engine-item:hover{background:rgba(255,255,255,.06)}
        .custom-engine-item.active{background:rgb(var(--blue));color:#fff}
        .custom-engine-item .ce-info{flex:1;min-width:0;display:flex;align-items:center;gap:8px}
        .custom-engine-item .ce-name{color:rgba(255,255,255,.7);font-weight:500;white-space:nowrap}
        .custom-engine-item .ce-url{color:rgba(255,255,255,.25);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
        .custom-engine-item.active .ce-name,.custom-engine-item.active .ce-url{color:#fff}
        .ce-del-btn{background:none;border:none;color:rgba(255,255,255,.2);cursor:pointer;font-size:13px;padding:4px 8px;border-radius:4px;transition:all .15s}
        .ce-del-btn:hover{color:#ff6b6b;background:rgba(255,59,48,.1)}

        /* 输入框 */
        .stn-input{width:100%;padding:8px 12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:13px;outline:none;transition:border-color .2s;box-sizing:border-box;cursor:pointer}
        .stn-input:focus{border-color:rgb(var(--blue))}
        .stn-input::placeholder{color:rgba(255,255,255,.25)}
        .stn-input option{background:#222;color:#fff;font-size:12px}
        .stn-input-row{display:flex;gap:6px;margin-top:8px}
        .stn-input-row .stn-input{flex:1}

        /* 组件开关列表 */
        .comp-list{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.06) transparent}
        .comp-item{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:8px;transition:background .15s}
        .comp-item:hover{background:rgba(255,255,255,.03)}
        .comp-item-name{font-size:12px;color:rgba(255,255,255,.55);display:flex;align-items:center;gap:6px}
        .comp-item-name i{width:16px;text-align:center;font-size:11px;opacity:.6}

        /* 确认弹窗 */
        .confirm-overlay{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s}
        .confirm-box{background:rgba(30,30,40,.98);border:1px solid rgba(255,255,255,.06);border-radius:16px;padding:24px;width:340px;max-width:92vw;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.5)}
        .confirm-box h4{font-size:16px;margin:0 0 8px}
        .confirm-box p{font-size:12px;color:rgba(255,255,255,.4);margin:0 0 20px;line-height:1.5}
        .confirm-box .btn-row{display:flex;gap:8px;justify-content:center}
        @keyframes fadeIn{from{opacity:0}to{opacity:1}}

        /* 通用弹窗容器（兼容 index.php 中 inline style width） */
        .modal-box{max-width:92vw}

        /* ========== 通知 ========== */
        .notification{
            position:fixed;top:20px;right:20px;z-index:10001;
            padding:12px 20px;border-radius:10px;color:#fff;
            display:flex;align-items:center;gap:10px;
            box-shadow:0 4px 20px rgba(0,0,0,0.3);
            animation:notifIn .3s ease;font-size:13px;
        }
        .notification.success{background:rgba(52,199,89,0.95)}
        .notification.error{background:rgba(255,59,48,0.95)}
        .notification.info{background:rgba(74,122,255,0.95)}
        @keyframes notifIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
        @keyframes notifOut{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}

        /* ========== 备忘录浮层编辑器 ========== */
        .note-editor-popup{
            position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0.6);
            display:none;align-items:center;justify-content:center;
        }
        .note-editor-popup.show{display:flex}
        .note-editor-box{
            background:rgba(40,40,40,0.95);
            border-radius:20px;border:1px solid rgba(255,255,255,0.15);
            padding:24px;width:90%;max-width:420px;
            animation:pagePanelIn .25s ease;
        }
        .note-editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;cursor:grab;user-select:none;-webkit-user-select:none}
        .note-editor-header:active{cursor:grabbing}
        .note-editor-title{font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}
        .note-mode-tabs{display:flex;gap:4px;margin-bottom:12px}
        .note-mode-tab{
            padding:5px 12px;border-radius:8px;font-size:12px;
            background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.6);
            cursor:pointer;transition:background .2s,color .2s;border:none;
        }
        .note-mode-tab.active{background:rgb(var(--blue));color:#fff}
        .note-mode-tab:hover{color:#fff}
        .note-textarea{
            width:100%;min-height:120px;max-height:200px;padding:10px 14px;
            background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);
            border-radius:10px;color:#fff;font-size:13px;line-height:1.5;
            outline:none;resize:vertical;font-family:inherit;
        }
        .note-textarea:focus{border-color:rgb(var(--blue))}
        .note-todo-list{max-height:200px;overflow-y:auto;scrollbar-width:thin}
        .note-todo-item{
            display:flex;align-items:center;gap:8px;padding:8px 10px;
            border-radius:8px;margin-bottom:4px;transition:background .15s;
        }
        .note-todo-item:hover{background:rgba(255,255,255,0.05)}
        .note-todo-item input[type="checkbox"]{
            width:16px;height:16px;border-radius:4px;accent-color:rgb(var(--blue));
            cursor:pointer;flex-shrink:0;
        }
        .note-todo-item.done .todo-text{text-decoration:line-through;color:rgba(255,255,255,0.4)}
        .todo-text{flex:1;font-size:13px;color:rgba(255,255,255,0.85);cursor:text;border:none;background:none;outline:none;width:100%}
        .todo-delete{
            width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;
            color:rgba(255,255,255,0.3);cursor:pointer;font-size:11px;
            background:none;border:none;transition:background .15s,color .15s;flex-shrink:0;opacity:0;
        }
        .note-todo-item:hover .todo-delete{opacity:1}
        .todo-delete:hover{background:rgba(255,59,48,0.2);color:#ff6b6b}
        .todo-add{
            display:flex;align-items:center;gap:6px;padding:8px 10px;
            border-radius:8px;cursor:pointer;color:rgba(255,255,255,0.4);
            font-size:12px;border:none;background:none;width:100%;transition:color .15s;
        }
        .todo-add:hover{color:rgba(255,255,255,0.7)}
        .note-editor-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}

        /* ========== 书签管理面板 ========== */
        .bookmark-panel{
            position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0.6);
            display:none;align-items:center;justify-content:center;
        }
        .bookmark-panel.show{display:flex}
        .bookmark-box{
            background:rgba(40,40,40,0.95);
            border-radius:20px;border:1px solid rgba(255,255,255,0.15);
            padding:24px;width:90%;max-width:480px;
            animation:pagePanelIn .25s ease;max-height:80vh;overflow-y:auto;
        }
        .bookmark-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
        .bookmark-title{font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px}
        .bookmark-add-form{display:flex;gap:8px;margin-bottom:16px}
        .bookmark-add-form input{
            flex:1;padding:8px 12px;background:rgba(255,255,255,0.08);
            border:1px solid rgba(255,255,255,0.12);border-radius:8px;
            color:#fff;font-size:13px;outline:none;
        }
        .bookmark-add-form input:focus{border-color:rgb(var(--blue))}
        .bookmark-add-form input::placeholder{color:rgba(255,255,255,0.3)}
        .bookmark-list{display:flex;flex-direction:column;gap:6px}
        .bookmark-item{
            display:flex;align-items:center;gap:10px;padding:10px 12px;
            border-radius:10px;background:rgba(255,255,255,0.05);transition:background .2s;cursor:pointer;
        }
        .bookmark-item:hover{background:rgba(255,255,255,0.1)}
        .bookmark-item-icon{
            width:32px;height:32px;border-radius:8px;
            background:rgba(255,255,255,0.1);display:flex;align-items:center;justify-content:center;
            font-size:14px;flex-shrink:0;
        }
        .bookmark-item-info{flex:1;min-width:0}
        .bookmark-item-name{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .bookmark-item-url{font-size:10px;color:rgba(255,255,255,0.4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .bookmark-item-del{
            width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
            color:rgba(255,255,255,0.3);cursor:pointer;font-size:11px;
            background:none;border:none;transition:background .15s,color .15s;flex-shrink:0;opacity:0;
        }
        .bookmark-item:hover .bookmark-item-del{opacity:1}
        .bookmark-item-del:hover{background:rgba(255,59,48,0.2);color:#ff6b6b}
        .bookmark-empty{text-align:center;color:rgba(255,255,255,0.3);padding:20px;font-size:13px}

        /* ========== 扩展管理 ========== */
        .ext-item{
            display:flex;align-items:center;gap:10px;padding:10px 12px;
            border-radius:10px;background:rgba(255,255,255,0.05);transition:background .2s;margin-bottom:6px;
        }
        .ext-item:hover{background:rgba(255,255,255,0.1)}
        .ext-item-icon{width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,0.1);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
        .ext-item-name{flex:1;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .ext-toggle{
            width:40px;height:22px;border-radius:11px;border:none;cursor:pointer;
            background:rgba(255,255,255,0.15);position:relative;transition:background .2s;flex-shrink:0;
        }
        .ext-toggle.on{background:rgb(var(--blue))}
        .ext-toggle::after{
            content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;
            border-radius:50%;background:#fff;transition:transform .2s;
        }
        .ext-toggle.on::after{transform:translateX(18px)}

        /* ========== 电影推荐列表 ========== */
        .movie-list{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto;scrollbar-width:thin}
        .movie-list-item{display:flex;align-items:center;gap:6px;font-size:10px;padding:3px 4px;border-radius:4px;cursor:pointer;transition:background .15s;color:#fff;text-decoration:none}
        .movie-list-item:hover{background:rgba(255,255,255,0.08)}
        .movie-list-item.today{background:rgba(74,122,255,0.15)}
        .movie-list-date{width:22px;text-align:center;font-weight:600;color:rgba(255,255,255,0.5);flex-shrink:0;font-size:11px}
        .movie-list-item.today .movie-list-date{color:rgb(var(--blue))}
        .movie-list-title{flex:1;color:rgba(255,255,255,0.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .movie-list-rating{color:#ffd93d;font-size:9px;flex-shrink:0}

        /* ========== 倒计时已下班状态 ========== */
        .countdown-offwork{color:#90EE90}
        .countdown-offwork-detail{font-size:9px;color:rgba(255,255,255,0.4);margin-top:2px}

        /* ========== 纪念日倒计时模式 ========== */
        .ann-mode-toggle{display:flex;gap:4px;margin-top:8px}
        .ann-mode-btn{
            padding:4px 10px;border-radius:6px;font-size:11px;
            background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.5);
            cursor:pointer;transition:background .2s,color .2s;border:none;
        }
        .ann-mode-btn.active{background:rgb(var(--blue));color:#fff}
        .ann-mode-btn:hover{color:#fff}
        .card-anniversary .ann-countdown{color:#ffd93d}

        /* ========== 必应壁纸加载指示 ========== */
        .bg-preset-loading{
            display:flex;align-items:center;justify-content:center;
            background:rgba(255,255,255,0.08)!important;
        }
        .bg-preset-loading i{color:rgba(255,255,255,0.3);font-size:14px}

        /* ========== Dock 栏 ========== */
        .dock-bar{
            position:fixed;bottom:12px;left:50%;transform:translateX(-50%);
            display:inline-flex;align-items:center;gap:0;padding:8px 22px;
            background:rgba(40,40,40,0.65);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
            border-radius:18px;z-index:100;
            border:1px solid rgba(255,255,255,0.12);
            box-shadow:0 8px 32px rgba(0,0,0,0.3);
            transition:opacity .3s,transform .3s;
            max-width:calc(100vw - 120px);flex-wrap:nowrap;flex-shrink:0;
        }
        .dock-bar::-webkit-scrollbar{display:none}
        .dock-scroll-btn{
            position:absolute;top:50%;transform:translateY(-50%);
            width:28px;height:28px;border-radius:50%;border:none;
            background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.6);
            font-size:12px;cursor:pointer;z-index:2;display:flex;
            align-items:center;justify-content:center;transition:all .2s;
            flex-shrink:0;
        }
        .dock-scroll-btn:hover{background:rgba(255,255,255,0.2);color:#fff}
        .dock-scroll-btn.hidden{display:none}
        .dock-scroll-left{left:-8px}
        .dock-scroll-right{right:-8px}
        .dock-items-wrap{
            display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;
            -ms-overflow-style:none;scroll-behavior:smooth;align-items:center;
        }
        .dock-items-wrap::-webkit-scrollbar{display:none}
        .dock-bar.hidden{opacity:0;transform:translateX(-50%) translateY(80px);pointer-events:none}
        .dock-item{
            width:48px;height:48px;border-radius:12px;
            display:flex;align-items:center;justify-content:center;
            cursor:pointer;transition:transform .2s;font-size:22px;
            position:relative;flex-shrink:0;
        }
        .dock-item:hover{transform:scale(1.3) translateY(-8px)}
        .dock-item:hover ~ .dock-item{transform:scale(0.9)}
        .dock-bar:hover .dock-item:not(:hover){transform:scale(0.9)}
        .dock-item-separator{width:1px;background:rgba(255,255,255,0.15);margin:4px 2px;flex-shrink:0}
        .dock-item[draggable="true"]{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
        .dock-item[draggable="true"]:active{cursor:grabbing}
        .dock-tooltip{
            position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);
            background:rgba(30,30,30,0.95);color:#fff;font-size:11px;padding:4px 10px;
            border-radius:6px;white-space:nowrap;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;
        }
        .dock-item:hover .dock-tooltip{opacity:1;transform:translateX(-50%) translateY(0)}
        .dock-bar.drag-over{border-color:rgb(var(--blue));box-shadow:0 0 20px rgba(74,122,255,0.3),0 8px 32px rgba(0,0,0,0.3)}
        .dock-drop-indicator{width:3px;height:32px;background:rgb(var(--blue));border-radius:2px;flex-shrink:0;animation:dockPulse .8s ease infinite alternate}
        @keyframes dockPulse{from{opacity:0.5}to{opacity:1}}

        /* ========== + 按钮（组件库） ========== */
        .add-widget-btn{display:none}
        .add-widget-btn:hover{background:rgba(74,122,255,0.8);color:#fff;transform:scale(1.1)}
        .add-card-btn{
            display:flex;align-items:center;justify-content:center;
            border:2px dashed rgba(255,255,255,0.15)!important;
            background:rgba(255,255,255,0.03)!important;
            cursor:pointer;font-size:28px;color:rgba(255,255,255,0.25);
            transition:all .2s;user-select:none;
            grid-column:span 1!important;grid-row:span 1!important;
        }
        .add-card-btn:hover{border-color:rgba(74,122,255,0.5)!important;color:rgba(74,122,255,0.7);background:rgba(74,122,255,0.08)!important}

        /* ========== 组件库面板 ========== */
        .widget-panel{
            position:fixed;top:68px;right:24px;z-index:150;
            width:320px;max-height:480px;
            background:rgba(30,30,30,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
            border-radius:16px;border:1px solid rgba(255,255,255,0.15);
            box-shadow:0 8px 32px rgba(0,0,0,0.4);
            display:none;flex-direction:column;overflow:hidden;
            animation:widgetPanelIn .2s ease;
        }
        .widget-panel.show{display:flex}
        @keyframes widgetPanelIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
        .widget-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,0.1)}
        .widget-panel-title{font-size:15px;font-weight:600}
        .widget-panel-close{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.5);cursor:pointer;transition:background .2s,color .2s;border:none;background:none;font-size:14px}
        .widget-panel-close:hover{background:rgba(255,255,255,0.1);color:#fff}
        .widget-panel-body{overflow-y:auto;padding:12px 16px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.2) transparent;flex:1}
        .widget-panel-body::-webkit-scrollbar{width:4px}
        .widget-panel-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);border-radius:2px}
        .widget-category{margin-bottom:16px}
        .widget-category-title{font-size:11px;color:rgba(255,255,255,0.4);margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}
        .widget-category-grid{display:grid;grid-template-columns:repeat(var(--grid-cols),var(--base-unit));gap:var(--base-gap)}
        .widget-option{
            display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;
            border-radius:16px;cursor:pointer;transition:background .2s,transform .2s,opacity .2s;
            position:relative;border:none;background:none;color:inherit;
        }
        .widget-option:hover{background:rgba(255,255,255,0.08);transform:translateY(-2px)}
        .widget-option.added{opacity:0.4;cursor:default}
        .widget-option.added:hover{transform:none}
        .widget-option.added::after{
            content:'已添加';position:absolute;top:2px;right:2px;font-size:8px;
            background:rgb(var(--blue));color:#fff;padding:1px 4px;border-radius:4px;
        }
        .widget-option-icon{width:var(--base-unit);height:var(--base-unit);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:28px;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s ease}
        .widget-option:hover .widget-option-icon{transform:scale(1.08);box-shadow:0 6px 20px rgba(0,0,0,0.3)}
        .widget-option-name{font-size:12px;color:rgba(255,255,255,0.7);white-space:nowrap;transition:color .2s}
        .widget-option:hover .widget-option-name{color:#fff}
        .widget-add-form{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,0.08)}
        .widget-add-form input{
            width:100%;padding:8px 12px;background:rgba(255,255,255,0.08);
            border:1px solid rgba(255,255,255,0.12);border-radius:8px;
            color:#fff;font-size:12px;outline:none;margin-bottom:6px;
        }
        .widget-add-form input:focus{border-color:rgb(var(--blue))}
        .widget-add-form input::placeholder{color:rgba(255,255,255,0.3)}

        /* ========== 极简模式 ========== */
        body.minimal-mode .cards-grid,
        body.minimal-mode .dock-bar,
        body.minimal-mode .dashboard-tabs,
        body.minimal-mode .dashboard-content,
        body.minimal-mode .add-widget-btn { display:none !important }
        body.minimal-mode .header { cursor:pointer }
        body.minimal-mode .app { padding-bottom:20px }
        .minimal-hint{
            font-size:11px;color:rgba(255,255,255,0.25);text-align:center;margin-top:12px;
            display:none;
        }
        body.minimal-mode .minimal-hint{display:block}

        /* ========== 习惯打卡浮层 ========== */
        .habit-popup{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.55);z-index:800;display:none;justify-content:center;align-items:center}
        .habit-popup.show{display:flex}
        .habit-box{background:linear-gradient(160deg,rgba(30,30,40,.99),rgba(22,22,32,.99));border:1px solid rgba(255,255,255,.06);border-radius:22px;width:440px;max-width:95vw;max-height:82vh;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.7);animation:pagePanelIn .3s ease}
        .habit-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 14px;flex-shrink:0}
        .habit-header-left{display:flex;align-items:center;gap:10px}
        .habit-header-icon{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,rgba(233,30,99,.3),rgba(200,20,80,.15));display:flex;align-items:center;justify-content:center;font-size:18px}
        .habit-header-title{font-size:17px;font-weight:600}
        .habit-header-close{width:34px;height:34px;border-radius:10px;border:none;background:rgba(255,255,255,.04);color:rgba(255,255,255,.35);font-size:16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}
        .habit-header-close:hover{background:rgba(255,80,80,.15);color:#ff6b6b}
        .habit-list{flex:1;overflow-y:auto;padding:6px 16px 10px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}
        .habit-item{display:flex;align-items:center;padding:12px 14px;border-radius:14px;margin-bottom:6px;background:rgba(255,255,255,.03);transition:all .25s;border:1px solid rgba(255,255,255,.03)}
        .habit-item:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.06);transform:translateX(2px)}
        .habit-item.checked{background:rgba(0,200,83,.08);border-color:rgba(0,200,83,.12)}
        .habit-check-wrap{position:relative;margin-right:12px;flex-shrink:0}
        .habit-check{width:26px;height:26px;border-radius:50%;border:2px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);background:transparent}
        .habit-check:hover{border-color:rgba(255,255,255,.35);transform:scale(1.08)}
        .habit-check.done{background:#00c853;border-color:#00c853;transform:scale(1);box-shadow:0 2px 12px rgba(0,200,83,.3)}
        .habit-check.done:hover{transform:scale(1.1)}
        .habit-check.done i{color:#fff;font-size:11px;animation:checkPop .3s ease}
        @keyframes checkPop{0%{transform:scale(0)}60%{transform:scale(1.2)}100%{transform:scale(1)}}
        .habit-name{flex:1;font-size:14px;color:rgba(255,255,255,.85);transition:all .25s;font-weight:500}
        .habit-item.checked .habit-name{text-decoration:line-through;color:rgba(255,255,255,.25)}
        .habit-streak{font-size:11px;opacity:.3;margin-right:10px;white-space:nowrap;font-weight:500;min-width:30px;text-align:right}
        .habit-del{background:none;border:none;color:rgba(255,255,255,.12);cursor:pointer;padding:6px 8px;font-size:12px;transition:all .2s;border-radius:6px;flex-shrink:0}
        .habit-del:hover{color:#ff6b6b;background:rgba(255,80,80,.1)}
        .habit-add-row{display:flex;padding:12px 16px 16px;border-top:1px solid rgba(255,255,255,.04);gap:8px;flex-shrink:0}
        .habit-add-row input{flex:1;height:42px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px;color:#fff;font-size:13px;padding:0 14px;outline:none;transition:all .2s}
        .habit-add-row input:focus{border-color:rgb(var(--blue));background:rgba(255,255,255,.06)}
        .habit-add-row input::placeholder{color:rgba(255,255,255,.2)}
        .habit-add-row button{height:42px;padding:0 20px;border:none;border-radius:12px;background:linear-gradient(135deg,rgba(233,30,99,.8),rgba(200,20,80,.7));color:#fff;font-size:13px;cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap}
        .habit-add-row button:hover{opacity:.9;transform:translateY(-1px)}
        .habit-stats{font-size:11px;color:rgba(255,255,255,.3);text-align:center;padding:4px 16px 6px;flex-shrink:0}
        /* 周历网格 */
        .habit-week{display:flex;gap:4px;justify-content:flex-end;flex-shrink:0;margin:0 6px}
        .habit-week-dot{width:14px;height:14px;border-radius:4px;background:rgba(255,255,255,.06);transition:all .25s;cursor:default}
        .habit-week-dot.done{background:rgba(0,200,83,.45)}
        .habit-week-dot.miss{background:rgba(255,80,80,.2)}
        .habit-week-dot.today{border:2px solid rgba(255,255,255,.25);box-sizing:border-box}

        /* ========== 通用动画 ========== */
        @keyframes pagePanelIn{from{opacity:0;transform:scale(0.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}

        /* ========== 番茄钟组件 ========== */
        .card-pomodoro{background:linear-gradient(145deg,rgba(255,87,34,.75),rgba(230,74,25,.55))!important}
        .pomodoro-card{container-type:inline-size;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:100%;gap:clamp(2px,1cqi,6px)}
        .pomodoro-ring{position:relative;width:clamp(55px,40cqi,100px);height:clamp(55px,40cqi,100px);margin:0 auto}
        .pomodoro-ring svg{transform:rotate(-90deg);width:100%;height:100%}
        .pomodoro-ring circle{fill:none;stroke-width:clamp(3px,2cqi,5px)}
        .pomodoro-ring .ring-bg{stroke:rgba(255,255,255,0.1)}
        .pomodoro-ring .ring-progress{stroke:#fff;stroke-linecap:round;transition:stroke-dashoffset .8s linear}
        .pomodoro-time{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:clamp(14px,12cqi,28px);font-weight:700;font-variant-numeric:tabular-nums}
        .pomodoro-label{font-size:clamp(10px,6cqi,15px);color:rgba(255,255,255,0.5)}
        .pomodoro-btns{display:flex;gap:clamp(4px,3cqi,10px)}
        .pomodoro-btn{width:clamp(26px,14cqi,38px);height:clamp(26px,14cqi,38px);border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;color:#fff;font-size:clamp(11px,6cqi,16px)}
        .pomodoro-btn:hover{transform:scale(1.1)}
        .pomodoro-btn:active{transform:scale(0.95)}
        .pomodoro-btn.play{background:rgba(255,149,0,0.85)}
        .pomodoro-btn.pause{background:rgba(255,59,48,0.85)}
        .pomodoro-btn.reset{background:rgba(255,255,255,0.12);color:rgba(255,255,255,0.6)}
        .pomodoro-mode{font-size:clamp(8px,4cqi,12px);padding:2px 8px;border-radius:8px;background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.5);cursor:pointer;transition:background .2s;border:none}
        .pomodoro-mode:hover{background:rgba(255,255,255,0.15)}
        .pomodoro-count{font-size:clamp(8px,3.5cqi,12px);color:rgba(255,255,255,0.35)}

        /* ========== 秒表组件 ========== */
        .stopwatch-card{container-type:inline-size;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:100%;gap:4px}
        .stopwatch-display{font-size:clamp(16px,12cqi,36px);font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:-1px}
        .stopwatch-ms{font-size:clamp(10px,6cqi,20px);font-weight:400;color:rgba(255,255,255,0.5)}
        .stopwatch-btns{display:flex;gap:6px;margin-top:4px}
        .stopwatch-laps{font-size:clamp(7px,3cqi,10px);color:rgba(255,255,255,0.4);max-height:30px;overflow-y:auto;scrollbar-width:none;width:100%;text-align:left;padding:0 4px;margin-top:2px}
        .card-stopwatch{background:linear-gradient(145deg,rgba(38,166,154,.75),rgba(0,137,123,.55))!important}
        .stopwatch-laps::-webkit-scrollbar{display:none}

        /* ========== 记账组件 ========== */
        .account-card{display:flex;flex-direction:column;height:100%;gap:4px}
        .account-summary{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:rgba(255,255,255,0.5)}
        .account-income{color:#00c853}
        .account-expense{color:#ff6b6b}
        .account-balance{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;text-align:center;margin:2px 0}
        .account-balance.positive{color:#00c853}
        .account-balance.negative{color:#ff6b6b}
        .account-list{flex:1;overflow-y:auto;scrollbar-width:none;font-size:10px}
        .account-list::-webkit-scrollbar{display:none}
        .account-item{display:flex;justify-content:space-between;align-items:center;padding:3px 0;border-bottom:1px solid rgba(255,255,255,0.04)}
        .account-item-name{color:rgba(255,255,255,0.7);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
        .account-item-amount{font-variant-numeric:tabular-nums;margin-left:6px}
        .account-add-row{display:flex;gap:4px;margin-top:2px}
        .account-add-row input{flex:1;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);border-radius:6px;padding:3px 6px;color:#fff;font-size:10px;outline:none;min-width:0}
        .account-add-row input:focus{border-color:rgb(var(--blue))}
        .account-add-row input::placeholder{color:rgba(255,255,255,0.2)}
        .account-add-row select{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.08);border-radius:6px;padding:3px 4px;color:rgba(255,255,255,0.7);font-size:10px;outline:none;cursor:pointer}
        .account-add-row select option{background:#2a2a2a;color:#fff}
        .account-add-row button{background:rgb(var(--blue));border:none;border-radius:6px;color:#fff;padding:3px 8px;font-size:10px;cursor:pointer;transition:opacity .15s}
        .account-add-row button:hover{opacity:0.85}

        /* ========== 语音搜索 ========== */
        .voice-btn{width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:rgba(255,255,255,0.4);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,background .2s,transform .15s;flex-shrink:0}
        .voice-btn:hover{color:rgb(var(--blue));background:rgba(74,122,255,0.1)}
        .voice-btn.listening{color:#ff6b6b;background:rgba(255,107,107,0.15);animation:voicePulse 1s infinite}
        @keyframes voicePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}

        /* ========== 搜索历史标签 ========== */
        .search-history{display:none}
        .search-history-tag{font-size:11px;padding:3px 10px;border-radius:12px;background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.5);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}
        .search-history-tag:hover{background:rgba(255,255,255,0.15);color:rgba(255,255,255,0.8)}

        /* ========== 计算器组件 ========== */
        .calc-card{display:flex;flex-direction:column;height:100%;gap:2px;overflow:hidden}
        .calc-display{background:rgba(0,0,0,0.35);border-radius:6px;padding:3px 8px;text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}
.calc-expr{font-size:9px;color:rgba(255,255,255,.7);min-height:0;word-break:break-all;line-height:1.2}
.calc-result{font-size:18px;font-weight:600;color:#fff;min-height:0;overflow:hidden;text-overflow:ellipsis;line-height:1.2}
.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.1) transparent}
.calc-btn{border:none;border-radius:6px;padding:4px 1px;font-size:11px;cursor:pointer;transition:transform .1s;background:rgba(255,255,255,0.22);color:#fff;font-weight:500;display:flex;align-items:center;justify-content:center;min-height:0}
.calc-btn:hover{background:rgba(255,255,255,0.35)}
.calc-btn:active{transform:scale(0.93)}
.calc-btn.op{background:rgba(255,149,0,0.45);color:#ffd080}
.calc-btn.op:hover{background:rgba(255,149,0,0.6)}
.calc-btn.eq{background:rgba(0,200,83,0.5);color:#80ffb0}
.calc-btn.eq:hover{background:rgba(0,200,83,0.65)}
.calc-btn.clear{background:rgba(255,59,48,0.4);color:#ff8080}
.calc-btn.clear:hover{background:rgba(255,59,48,0.55)}
.calc-history{font-size:8px;color:rgba(255,255,255,.5);max-height:14px;overflow:hidden;margin-top:1px;flex-shrink:0;line-height:1.2}

        /* ========== 白噪音组件 ========== */
        .whitenoise-card{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:6px}
        .whitenoise-icons{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
        .wn-btn{width:36px;height:36px;border-radius:50%;border:2px solid rgba(255,255,255,0.3);background:rgba(255,255,255,0.1);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:14px;color:rgba(255,255,255,0.7)}
        .wn-btn:hover{border-color:rgba(255,255,255,0.5);color:#fff;background:rgba(255,255,255,0.15)}
        .wn-btn.active{border-color:rgb(var(--blue));background:rgba(74,122,255,0.25);color:rgb(var(--blue))}
        .wn-volume{width:80%;-webkit-appearance:none;height:3px;border-radius:2px;background:rgba(255,255,255,0.25);outline:none}
        .wn-volume::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:rgb(var(--blue));cursor:pointer}
        .wn-timer{font-size:9px;color:rgba(255,255,255,0.6)}

        /* ========== 喝水记录器组件 ========== */
        .water-card{container-type:inline-size;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:4px;overflow:hidden}
        .water-btns{display:flex;gap:8px}
        .water-btn:hover{filter:brightness(1.3)}
        .water-card{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:4px}
        .water-visual{position:relative;width:50px;height:64px}
        .water-cup{width:50px;height:64px;border:2px solid rgba(255,255,255,0.3);border-radius:0 0 10px 10px;position:relative;overflow:hidden}
        .water-fill{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(180deg,rgba(0,191,255,0.7),rgba(0,150,255,0.9));transition:height .4s ease;border-radius:0 0 8px 8px}
        .water-fill::before{content:'';position:absolute;top:-3px;left:0;right:0;height:6px;background:rgba(255,255,255,0.3);border-radius:50%}
        .water-amount{font-size:16px;font-weight:600;color:rgba(255,255,255,0.9);font-variant-numeric:tabular-nums}
        .water-goal{font-size:9px;color:rgba(255,255,255,0.35)}
        .water-add-btn{width:28px;height:28px;border-radius:50%;border:2px solid rgba(0,191,255,0.5);background:rgba(0,191,255,0.15);color:rgba(0,191,255,0.9);font-size:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}
        .water-add-btn:hover{background:rgba(0,191,255,0.3);transform:scale(1.1)}

        /* ========== 夜间模式 ========== */
        body.night-mode .card{background:rgba(20,20,25,0.7);border-color:rgba(255,255,255,0.06)}
        body.night-mode .search-bar{background:rgba(20,20,25,0.6);border-color:rgba(255,255,255,0.06)}
        body.night-mode .sidebar{background:rgba(20,20,25,0.85)}
        body.night-mode .dock-bar{background:rgba(20,20,25,0.85)}
        body.night-mode .time{text-shadow:0 2px 30px rgba(0,0,0,0.6)}
        body.night-mode .wallpaper::after{background:rgba(0,0,0,0.6)!important}

        /* ========== 快捷键帮助面板 ========== */
        .shortcuts-panel{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.6);z-index:900;display:none;justify-content:center;align-items:center}
        .shortcuts-panel.show{display:flex}
        .shortcuts-box{background:rgba(30,30,35,0.95);border-radius:16px;width:340px;max-width:92vw;padding:24px;animation:pagePanelIn .25s ease}
        .shortcuts-title{font-size:16px;font-weight:600;margin-bottom:16px;color:rgba(255,255,255,0.9)}
        .shortcut-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.05)}
        .shortcut-row:last-child{border-bottom:none}
        .shortcut-key{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;padding:0 8px;background:rgba(255,255,255,0.1);border-radius:6px;font-size:12px;font-weight:600;color:rgba(255,255,255,0.7);font-family:monospace}
        .shortcut-desc{font-size:13px;color:rgba(255,255,255,0.6)}

        /* ========== 响应式 v4 — 手机端全新重写 ========== */
        /* ── 平板横屏 (769-1024px)：微调，不动桌面布局 ── */
        @media(max-width:1024px){
            .time{font-size:56px}
            .header{padding:24px 0 16px}
            .app{padding-right:16px}
            .search-bar{max-width:520px}
        }

        /* ═══════════ 手机/平板竖屏 (≤768px)：完整重写 ═══════════ */
        @media(max-width:768px){
            /* ── 可滚动body ── */
            body{position:relative;overflow-x:hidden;overflow-y:auto;height:auto}
            .wallpaper,.maskOverlay{position:fixed}

            /* ── 底部标签栏 ── */
            .sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;height:56px;max-height:none;transform:none;flex-direction:row;padding:0 8px;justify-content:space-around;border-radius:16px 16px 0 0;z-index:999;padding-bottom:env(safe-area-inset-bottom,2px)}
            .sidebar-avatar{width:32px;height:32px;border-radius:50%;margin-bottom:0;margin-right:8px;flex-shrink:0}
            .sidebar-nav{flex-direction:row;gap:0;justify-content:space-around;width:100%;flex:0 1 auto;overflow-x:auto;scrollbar-width:none}
            .nav-item{width:auto;height:auto;padding:4px 8px;flex-direction:column;flex-shrink:0;border-radius:8px}
            .nav-item i{font-size:18px;margin-bottom:1px}
            .nav-item span{font-size:8px;line-height:1}
            .nav-item.active::before{display:none}
            .sidebar-bottom{margin:0;padding:0 0 0 10px;border-top:none;border-left:1px solid rgba(255,255,255,.12);flex-shrink:0}
            .sidebar-icon{width:36px;height:36px;font-size:16px}

            /* ── 主区域 ── */
            .app{margin-left:0;margin-bottom:62px;padding:10px 0 80px;height:auto;min-height:100vh;overflow:visible;align-items:stretch}
            .cards-grid{grid-template-columns:repeat(5,1fr);grid-auto-rows:88px;gap:4px;width:calc(100% - 16px);margin:0 auto;padding:0 0 14px}
            .dashboard-panel-grid{grid-template-columns:repeat(5,1fr);gap:6px;padding:0 8px;width:calc(100% - 16px);margin:0 auto}
            .dashboard-panel-icon{width:60px;height:60px;font-size:24px;border-radius:12px}
            .time{font-size:38px;letter-spacing:-1px}
            .date{font-size:12px}
            .header{padding:8px 0 6px}
            .search-bar{height:40px;width:calc(100% - 16px);max-width:none;margin:0 auto;border-radius:20px;padding:0 12px;box-sizing:border-box}
            .search-bar input{font-size:14px}
            .search-bar i.search-icon{font-size:14px;margin-right:6px}
            .engine-selector{font-size:10px;padding:3px 8px}

            /* ── 卡片网格：边到边 ── */
            .card{border-radius:10px;overflow:hidden}
            /* 大组件限制跨度：保留组件视觉比例，但不占满整行 */
            .card[data-size="4x2"]{grid-column:span 3!important}
            .card[data-size="4x4"]{grid-column:span 3!important}
            .card[data-size="4x6"]{grid-column:span 3!important}

            /* ── 网站卡片 ── */
            .card-anniversary.site-card{padding:3px;overflow:hidden!important}
            .card-anniversary.site-card .ann-icon{width:auto;aspect-ratio:1;padding:2px;border-radius:8px;flex-shrink:0;background:rgba(255,255,255,.04)!important}
            .card-anniversary.site-card .ann-icon img{width:50px;height:50px;border-radius:6px}
            .card-anniversary.site-card .ann-icon i{font-size:34px}
            .card-anniversary.site-card .ann-name{font-size:10px;left:4px;right:4px;padding:2px 4px;border-radius:5px;line-height:1.2;max-width:calc(100% - 8px)}

            /* ── 组件卡片压缩 ── */
            .card-weather{font-size:10px;padding:4px}
            .wx-loc{font-size:9px}
            .wx-temp{font-size:16px}
            .ann-days-big{font-size:18px}

            /* ── 设置面板 ── */
            .settings-panel{width:100vw;max-width:100vw;right:-100vw;border-radius:16px 16px 0 0}
            .settings-panel.show{right:0}
            .settings-header{padding:14px 16px 0}
            .settings-header h2{font-size:17px}
            .settings-close{width:40px;height:40px;font-size:18px}
            .settings-tabs{padding:8px 12px 0;gap:2px}
            .settings-tab{font-size:12px;padding:10px 0;flex:none;min-width:48px}
            .settings-content{padding:12px 16px 24px}
            .stn-input{padding:10px 14px;font-size:14px;border-radius:10px}
            .stn-btn{padding:10px 20px;font-size:13px;border-radius:10px}
            .add-widget-btn{top:8px;right:8px;width:30px;height:30px;font-size:13px}
            .widget-panel{right:6px;width:calc(100vw - 12px);top:42px;max-height:65vh}

            /* ── Dock栏 ── */
            .dock-bar{gap:5px;padding:4px 8px;bottom:68px}
            .notif-panel{right:8px;width:calc(100vw - 16px);max-width:320px;top:50px;max-height:360px}
            .dock-item{width:46px;height:46px;font-size:20px;border-radius:12px}

            /* ── 文件夹卡片：手机端放大图标预览 ── */
            .card-folder{justify-content:flex-start;padding-top:10px}
            .folder-apps{width:48px!important;height:48px!important;gap:3px;border-radius:10px;padding:3px}
            .folder-app{border-radius:6px}
            .folder-app i{font-size:18px!important}
            .folder-app img{object-fit:cover!important;border-radius:5px!important}
            .folder-label{font-size:10px;max-width:60px;margin-top:4px}

            /* ── 备忘录等弹窗：手机端全屏化 ── */
            .note-editor-popup{align-items:flex-end}
            .note-editor-box{
                width:100%;max-width:100%;padding:20px 16px 24px;
                border-radius:20px 20px 0 0;min-height:55vh;
                animation:slideUp .3s ease;
            }
            @keyframes slideUp{from{transform:translateY(50px);opacity:.5}to{transform:translateY(0);opacity:1}}
            @keyframes nmSlideUp{from{transform:translateY(100%);opacity:.6}to{transform:translateY(0);opacity:1}}
            .note-editor-title{font-size:16px}
            .note-mode-tab{padding:9px 18px;font-size:13px;border-radius:10px}
            .note-textarea{min-height:180px;max-height:50vh;font-size:15px;padding:14px 16px;line-height:1.6}
            .todo-text{font-size:15px;padding:2px 0}
            .note-todo-list{max-height:40vh}
            .note-todo-item{padding:10px 12px;gap:10px}
            .note-todo-item input[type="checkbox"]{width:22px;height:22px}
            .todo-delete{opacity:1;width:32px;height:32px;font-size:16px}
            .todo-add{font-size:13px;padding:10px 12px}
            .note-editor-footer{gap:10px;margin-top:16px}
            .note-editor-footer button{font-size:14px;padding:10px 22px;border-radius:12px}
            .rename-dialog{max-width:95vw!important;padding:20px 22px!important;border-radius:18px!important}
            .rename-dialog h3{font-size:15px}
            .rename-dialog input{font-size:15px;padding:12px 16px;height:46px}
            .rename-dialog-btns button{font-size:14px;padding:10px 22px}

            /* ── 其他 ── */
            .notif-bell-btn{width:30px;height:30px;font-size:13px}
            .notif-btns-wrap{top:10px;right:40px}
            .auto-layout-btn{top:10px;left:8px;width:30px;height:30px;font-size:13px}
            .minimal-toggle-btn{top:10px;left:44px;width:30px;height:30px;font-size:12px}
            /* 用户下拉：手机端从底部滑出 */
            .sidebar-user-dropdown{left:0;right:0;top:auto;bottom:0;width:100%;max-width:100%;border-radius:16px 16px 0 0;max-height:55vh;overflow-y:auto}
        }

        /* ═══════════ 手机竖屏 (≤480px) ═══════════ */
        @media(max-width:480px){
            .cards-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:86px;gap:3px;width:calc(100% - 12px);margin:0 auto;padding:0 0 12px}
            .dashboard-panel-grid{grid-template-columns:repeat(4,1fr);gap:4px;padding:0 4px;width:calc(100% - 12px);margin:0 auto}
            .dashboard-panel-icon{width:52px;height:52px;font-size:20px;border-radius:10px}
            .time{font-size:30px}
            .date{font-size:11px;margin-top:2px}
            .search-bar{height:36px;border-radius:18px;padding:0 10px}
            .search-bar input{font-size:13px}
            .card{border-radius:8px}
            /* 组件在窄屏进一步收窄 */
            .card[data-size="3x2"],.card[data-size="3x1"],.card[data-size="4x2"],.card[data-size="4x6"]{grid-column:span 2!important}
            .card-anniversary.site-card{padding:2px}
            .card-anniversary.site-card .ann-icon img{width:44px;height:44px}
            .card-anniversary.site-card .ann-icon i{font-size:30px}
            .card-anniversary.site-card .ann-name{font-size:10px}
            .sidebar{height:50px;padding:0 4px}
            .nav-item i{font-size:16px}
            .nav-item span{font-size:7px}
            .sidebar-icon{width:32px;height:32px;font-size:14px}
            .app{margin-bottom:56px;padding:8px 0 70px;align-items:stretch}
            .dock-bar{bottom:62px}
            .dock-item{width:40px;height:40px;font-size:17px;border-radius:10px}
            /* 文件夹卡片：窄屏比例 */
            .folder-apps{width:42px!important;height:42px!important;gap:2px;border-radius:8px;padding:2px}
            .folder-app i{font-size:16px!important}
            .card-folder{padding-top:8px}
        }

        /* ═══════════ 小屏手机 (≤360px) ═══════════ */
        @media(max-width:360px){
            .cards-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:80px;gap:2px;width:calc(100% - 10px);margin:0 auto;padding:0 0 10px}
            .card[data-size="3x2"],.card[data-size="3x1"],.card[data-size="4x2"],.card[data-size="4x6"]{grid-column:span 2!important}
            .time{font-size:26px}
            .search-bar{height:34px;padding:0 8px}
            .card-anniversary.site-card .ann-icon img{width:38px;height:38px}
            .card-anniversary.site-card .ann-icon i{font-size:26px}
            .card-anniversary.site-card .ann-name{font-size:10px}
            .sidebar{height:46px}
            .nav-item i{font-size:14px}
            .app{margin-bottom:52px;padding-bottom:60px}
            .dock-bar{bottom:58px}
            .dock-item{width:36px;height:36px;font-size:15px;border-radius:8px}
        }

        /* ========== v11 新组件样式 ========== */

        /* 呼吸练习 */
        .breath-card{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:4px;overflow:hidden}

        /* 世界时钟 */
        .worldclock-card{container-type:inline-size;display:flex;flex-direction:column;height:100%}
        .worldclock-list{flex:1;display:flex;flex-direction:column;justify-content:center;gap:clamp(3px,1.5cqi,8px)}
        .worldclock-item{display:flex;align-items:center;justify-content:space-between;padding:2px 4px;border-radius:6px;background:rgba(255,255,255,.03);font-size:clamp(12px,5cqi,16px)}
        .worldclock-flag{font-size:clamp(14px,6cqi,22px);margin-right:6px}
        .worldclock-city{color:rgba(255,255,255,.85);flex:1}
        .worldclock-time{font-weight:600;font-variant-numeric:tabular-nums}
        .breath-ring{width:clamp(50px,30cqi,100px);height:clamp(50px,30cqi,100px);border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid rgba(255,255,255,.2);box-shadow:0 0 15px rgba(0,191,255,.1);flex-shrink:0;transition:transform 5s ease-in-out,border-color 2s,box-shadow 2s}
        .breath-ring-inner{width:72%;height:72%;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06)}
        .breath-icon{font-size:clamp(16px,10cqi,32px)}
        .breath-ring.active .breath-icon{animation:breathPulse 1.5s ease-in-out infinite}
        @keyframes breathPulse{0%,100%{opacity:0.5}50%{opacity:1}}
        .breath-label{font-size:clamp(12px,5cqi,18px);font-weight:600;color:#fff;text-align:center;min-height:1.3em;text-shadow:0 1px 4px rgba(0,0,0,.5)}
        .breath-count{font-size:clamp(9px,3cqi,12px);color:rgba(255,255,255,.35)}
        .breath-btns{display:flex;gap:12px}
        .breath-btn:hover{filter:brightness(1.5);transform:scale(1.08)}
        .breath-btn.play:hover{background:rgba(0,200,83,.4)!important}
        .breath-btn.stop:hover{background:rgba(255,80,80,.4)!important}

        /* 待办清单 */
        .todolist-card{container-type:inline-size;display:flex;flex-direction:column;height:100%;gap:4px}
        .todolist-header{display:flex;align-items:center;justify-content:space-between}
        .todolist-progress{font-size:clamp(9px,3cqi,12px);color:rgba(255,255,255,.4);font-variant-numeric:tabular-nums}
        .todolist-add{display:flex;gap:4px}
        .todolist-input{flex:1;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;padding:4px 8px;font-size:clamp(10px,3cqi,12px);outline:none}
        .todolist-input:focus{border-color:rgba(255,255,255,.3)}
        .todolist-add-btn{background:rgba(0,200,83,.2);border:none;border-radius:6px;color:#00c853;width:28px;height:28px;font-size:16px;cursor:pointer;flex-shrink:0}
        .todolist-items{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent;min-height:0}
        .todolist-item{display:flex;align-items:center;gap:4px;font-size:clamp(10px,3cqi,12px);padding:2px 2px;border-radius:4px}
        .todolist-item input[type="checkbox"]{accent-color:#4caf50;width:13px;height:13px;flex-shrink:0;cursor:pointer}
        .todolist-item.done span{text-decoration:line-through;opacity:.35}
        .todolist-item span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(255,255,255,.85)}
        .todolist-del,.todolist-edit-btn{font-size:10px;color:rgba(255,255,255,.15);cursor:pointer;padding:2px 4px;border:none;background:none;flex-shrink:0;transition:color .15s}
        .todolist-del:hover{color:#ff6b6b}
        .todolist-edit-btn:hover{color:rgba(180,130,255,.8)}
        .todolist-item.editing{padding:0}
        .todolist-edit{flex:1;background:rgba(255,255,255,.1);border:1px solid rgba(124,77,255,.3);border-radius:4px;color:#fff;padding:2px 6px;font-size:clamp(10px,3cqi,12px);outline:none}
        .todolist-save{background:rgba(124,77,255,.3);border:none;border-radius:4px;color:rgba(180,130,255,.9);width:22px;height:22px;font-size:12px;cursor:pointer;flex-shrink:0}
        .todolist-footer{padding-top:4px;border-top:1px solid rgba(255,255,255,.06)}
        .todolist-clear{font-size:clamp(9px,3cqi,11px);color:rgba(255,255,255,.25);background:none;border:none;cursor:pointer;transition:color .15s}
        .todolist-clear:hover{color:#ff6b6b}
        .todolist-input{flex:1;min-width:0}
        .todolist-date{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:6px;color:rgba(255,255,255,.5);padding:0 4px;font-size:clamp(9px,2.5cqi,11px);outline:none;width:clamp(24px,8cqi,32px);cursor:pointer}
        .todolist-date:focus{border-color:rgba(255,255,255,.2)}
        .todolist-item.due-overdue span{color:#ff6b6b!important}
        .todolist-item.due-today{background:rgba(255,200,0,.06)}
        .todolist-time{font-size:clamp(7px,2cqi,9px);color:rgba(255,255,255,.15);flex-shrink:0;min-width:clamp(20px,6cqi,30px);text-align:right}

        /* 年度/月度进度 */

        /* 多倒计时/生日 */
        .bdays-list{display:flex;flex-direction:column;gap:4px;max-height:110px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.15) transparent}
        .bdays-list::-webkit-scrollbar{width:3px}
        .bdays-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px}
        .bday-item{display:flex;justify-content:space-between;align-items:center;font-size:11px;padding:2px 0}
        .bday-name{color:rgba(255,255,255,0.8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}
        .bday-days{color:rgba(255,255,255,0.5);font-variant-numeric:tabular-nums;flex-shrink:0}
        .bday-add-row{display:flex;gap:4px;margin-top:6px}
        .bday-add-row input{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);border-radius:6px;color:#fff;padding:3px 6px;font-size:10px;outline:none;flex:1;min-width:0}
        .bday-add-row input:focus{border-color:rgba(255,255,255,0.3)}
        .bday-add-row button{background:rgb(var(--blue));border:none;border-radius:6px;color:#fff;width:22px;height:22px;font-size:10px;cursor:pointer;flex-shrink:0}

        /* 实时汇率 */
        .ex-card{container-type:inline-size;display:flex;flex-direction:column;height:100%;gap:clamp(2px,1cqi,8px)}
        .ex-head{display:flex;justify-content:space-between;align-items:center}
        .ex-update{font-size:clamp(8px,2.5cqi,11px);color:rgba(255,255,255,.4)}
        .ex-rates{flex:1;display:flex;flex-direction:column;gap:clamp(1px,0.8cqi,4px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.1) transparent;min-height:0}
        .ex-rate-row{display:flex;align-items:center;padding:clamp(2px,0.8cqi,5px) clamp(3px,1.5cqi,8px);border-radius:clamp(3px,1cqi,6px);background:rgba(255,255,255,.06);gap:clamp(4px,2cqi,8px);flex-shrink:0}
        .ex-flag{font-size:clamp(14px,6cqi,22px);flex-shrink:0}
        .ex-info{flex:1;min-width:0;overflow:hidden}
        .ex-name{font-size:clamp(9px,3.5cqi,13px);color:rgba(255,255,255,.8);line-height:1.2;white-space:nowrap}
        .ex-currency{font-size:clamp(8px,2.5cqi,10px);color:rgba(255,255,255,.45);line-height:1.1}
        .ex-value{font-size:clamp(11px,4cqi,15px);font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0;text-align:right}
        .ex-unit{font-size:clamp(7px,2cqi,9px);color:rgba(255,255,255,.4);margin-left:1px}
        .ex-hint{text-align:center;font-size:clamp(7px,2cqi,10px);color:rgba(255,255,255,.2);flex-shrink:0}

        /* 单位换算 */
        .uc-card{container-type:inline-size;display:flex;flex-direction:column;height:100%;gap:clamp(2px,1cqi,6px)}
        .uc-tabs{display:flex;gap:clamp(2px,1cqi,5px);flex-wrap:wrap}
        .uc-tab{padding:clamp(3px,1.5cqi,5px) clamp(8px,3.5cqi,14px);border-radius:clamp(4px,1.5cqi,8px);background:rgba(255,255,255,.1);color:rgba(255,255,255,.65);font-size:clamp(11px,4cqi,15px);cursor:pointer;border:none;transition:all .15s}
        .uc-tab.active{background:rgba(141,110,99,.6);color:#fff}
        .uc-row{display:flex;gap:clamp(3px,1.5cqi,6px);align-items:center}
        .uc-input,.uc-result{flex:1;min-width:0;height:clamp(32px,14cqi,38px);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:clamp(5px,1.5cqi,8px);color:#fff;font-size:clamp(15px,6cqi,20px);font-weight:600;padding:0 clamp(6px,2cqi,10px);outline:none;text-align:center;font-variant-numeric:tabular-nums}
        .uc-input:focus{border-color:rgba(255,255,255,.35)}
        .uc-result{background:rgba(141,110,99,.2);border-color:rgba(141,110,99,.3);color:rgba(255,200,150,1)}
        .uc-from,.uc-to{width:clamp(60px,20cqi,80px);height:clamp(32px,14cqi,38px);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:clamp(5px,1.5cqi,8px);color:#fff;font-size:clamp(12px,4cqi,15px);outline:none;padding:0 2px;text-align:center;cursor:pointer;flex-shrink:0}
        .uc-from option,.uc-to option{background:#333;color:#fff}
        .uc-swap{width:28px;height:28px;border-radius:50%;border:none;background:rgba(141,110,99,.35);color:#fff;font-size:15px;cursor:pointer;margin:0 auto;display:block;transition:all .15s}
        .uc-swap:hover{background:rgba(141,110,99,.55)}

        /* 二维码生成 */
        .qr-card{container-type:inline-size;display:flex;flex-direction:column;height:100%;gap:clamp(3px,1.5cqi,6px);overflow:hidden}
        .qr-types{display:flex;gap:clamp(3px,1.5cqi,5px);flex-wrap:wrap;flex-shrink:0}
        .qr-type-btn{padding:clamp(3px,1.5cqi,5px) clamp(8px,3cqi,12px);border-radius:clamp(4px,1.5cqi,6px);background:rgba(255,255,255,.15);color:rgba(255,255,255,.8);font-size:clamp(11px,4cqi,15px);cursor:pointer;border:none;transition:all .15s;white-space:nowrap;font-weight:500}
        .qr-type-btn.active{background:rgba(96,125,139,.6);color:#fff;font-weight:600}
        .qr-type-btn:hover{background:rgba(255,255,255,.18)}
        .qr-input-row{flex-shrink:0}
        .qr-input{width:100%;box-sizing:border-box;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.22);border-radius:clamp(5px,1.5cqi,8px);color:#fff;padding:clamp(5px,2cqi,8px) clamp(8px,3cqi,12px);font-size:clamp(12px,4.5cqi,16px);outline:none;font-weight:500}
        .qr-input:focus{border-color:rgba(255,255,255,.4)}
        .qr-input::placeholder{color:rgba(255,255,255,.55)}
        .qr-output{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden}
        .qr-output canvas,.qr-output img{max-width:100%;max-height:100%;display:block;border-radius:clamp(4px,1.5cqi,8px);background:#fff;padding:clamp(4px,1.5cqi,6px)}
        .qr-placeholder{text-align:center;opacity:.85}
        .qr-placeholder-icon{font-size:clamp(28px,16cqi,46px);margin-bottom:clamp(2px,1cqi,4px)}
.qr-placeholder-text{font-size:clamp(12px,4.5cqi,16px);color:#fff;margin-bottom:2px;font-weight:500}
.qr-placeholder-sub{font-size:clamp(9px,3cqi,12px);color:rgba(255,255,255,.7)}
.qr-actions{display:flex;justify-content:center;gap:clamp(6px,3cqi,10px);flex-shrink:0;padding-bottom:2px}
        .qr-act-btn{width:clamp(26px,11cqi,34px);height:clamp(26px,11cqi,34px);border-radius:clamp(5px,2cqi,8px);border:none;background:rgba(255,255,255,.15);color:rgba(255,255,255,.8);font-size:clamp(12px,4.5cqi,16px);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}
        .qr-act-btn:hover{background:rgba(255,255,255,.2);color:#fff}
        .qr-gen-btn{background:rgb(var(--blue));border:none;border-radius:6px;color:#fff;padding:4px 10px;font-size:12px;cursor:pointer}
        .qr-display{background:#fff;border-radius:8px;padding:6px;display:flex;align-items:center;justify-content:center;min-height:60px;margin:4px 0}
        .qr-display canvas,.qr-display img{max-width:80px!important;max-height:80px!important}
        .qr-history{font-size:clamp(8px,2.5cqi,11px);color:rgba(255,255,255,.65);max-height:28px;overflow:hidden}

        /* 主题色自定义 */
        .theme-color-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
        .theme-color-swatch{width:28px;height:28px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:border-color .2s,transform .2s}
        .theme-color-swatch:hover{transform:scale(1.15)}
        .theme-color-swatch.active{border-color:#fff}
        .theme-color-custom{display:flex;align-items:center;gap:6px}
        .theme-color-input{width:32px;height:28px;border:none;border-radius:6px;cursor:pointer;background:none;padding:0}
        .settings-swatch-sep{width:100%;font-size:11px;color:rgba(255,255,255,.35);margin:6px 0 2px;flex-basis:100%}

        /* 公告横幅 */
        .ann-bar{display:flex;flex-direction:column;gap:6px;margin:0 0 12px;padding:0}
        .ann-item{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:10px;
            background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);position:relative}
        .ann-ico{margin-top:2px;font-size:15px}
        .ann-body{flex:1;min-width:0}
        .ann-title{font-size:13px;font-weight:600;color:#fff;margin-bottom:2px}
        .ann-text{font-size:12px;color:rgba(255,255,255,.6);line-height:1.5;word-break:break-word}
        .ann-close{position:absolute;top:6px;right:8px;background:none;border:none;color:rgba(255,255,255,.4);
            font-size:18px;line-height:1;cursor:pointer;padding:2px 6px}
        .ann-close:hover{color:#fff}
        .ann-info .ann-ico{color:#42a5f5}
        .ann-success .ann-ico{color:#66bb6a}
        .ann-warning .ann-ico{color:#ffa726}
        .ann-danger .ann-ico{color:#ef5350}

        /* 数据导出/导入 */
        .dataio-btns{display:flex;gap:8px;flex-wrap:wrap}
        .dataio-btn{padding:6px 14px;border-radius:8px;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.15);color:rgba(255,255,255,0.7);cursor:pointer;font-size:12px;transition:background .2s,color .2s}
        .dataio-btn:hover{background:rgba(255,255,255,0.18);color:#fff}
        .dataio-btn i{margin-right:4px}

        /* 通知中心 */
        .notif-bell{position:relative;cursor:pointer}
        .notif-badge{position:absolute;top:-4px;right:-4px;width:14px;height:14px;border-radius:50%;background:rgb(var(--red));font-size:8px;color:#fff;display:flex;align-items:center;justify-content:center}
        .notif-panel{position:fixed;top:60px;right:20px;width:320px;max-height:400px;background:rgba(30,30,30,0.95);border-radius:14px;border:1px solid rgba(255,255,255,0.15);box-shadow:0 8px 32px rgba(0,0,0,0.4);z-index:300;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s,visibility .2s,transform .2s;overflow:hidden}
        .notif-panel.show{opacity:1;visibility:visible;transform:translateY(0)}
        .notif-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,0.1)}
        .notif-panel-title{font-size:14px;font-weight:600}
        .notif-clear{font-size:11px;color:rgba(255,255,255,0.4);cursor:pointer}
        .notif-clear:hover{color:rgba(255,255,255,0.7)}
        .notif-list{max-height:340px;overflow-y:auto;padding:8px 0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.15) transparent}
        .notif-list::-webkit-scrollbar{width:3px}
        .notif-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px}
        .notif-item{padding:8px 16px;font-size:12px;color:rgba(255,255,255,0.7);border-bottom:1px solid rgba(255,255,255,0.04);display:flex;gap:8px;align-items:flex-start}
        .notif-item i{margin-top:2px;flex-shrink:0}
        .notif-time{font-size:9px;color:rgba(255,255,255,0.3);margin-top:2px}
        .notif-empty{text-align:center;padding:40px 20px;color:rgba(255,255,255,0.3);font-size:13px}

        /* 天气粒子背景 */
        .particle-canvas{position:fixed;inset:0;z-index:0;pointer-events:none}

        /* 视频壁纸 */
        .video-wallpaper{position:fixed;inset:0;z-index:0;overflow:hidden}
        .video-wallpaper video{width:100%;height:100%;object-fit:cover}
        .video-wallpaper::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,var(--wallpaper-mask,0.4));pointer-events:none}

        /* ====== iOS 风格右上角公告通知卡片 ====== */
        .ios-notify-card{
            position:fixed;top:16px;right:16px;z-index:1000;
            width:340px;max-width:calc(100vw - 32px);
            border-radius:16px;
            background:rgba(30,30,30,0.82);
            backdrop-filter:blur(40px) saturate(1.8);-webkit-backdrop-filter:blur(40px) saturate(1.8);
            border:1px solid rgba(255,255,255,0.12);
            box-shadow:0 8px 32px rgba(0,0,0,0.45), 0 2px 8px rgba(0,0,0,0.25);
            color:#fff;font-size:13px;line-height:1.5;
            animation:iosNotifyIn .4s cubic-bezier(.22,1,.36,1);
            overflow:hidden;
            will-change:transform,opacity;
            /* 确保在毛玻璃壁纸之上 */
        }
        .ios-notify-inner{
            display:flex;align-items:stretch;padding:14px 14px 14px 0;position:relative;
        }
        /* 左侧彩色竖条 — 级别标识 */
        .ios-notify-accent{
            width:4px;border-radius:0 3px 3px 0;flex-shrink:0;margin-right:2px;
            align-self:stretch;
        }
        .ios-notify-body{flex:1;min-width:0;padding-right:8px}
        .ios-notify-head{
            display:flex;align-items:center;gap:7px;margin-bottom:5px;
        }
        .ios-notify-icon{
            font-size:15px;flex-shrink:0;display:flex;align-items:center;
        }
        .ios-notify-title{
            font-weight:600;font-size:14px;letter-spacing:.01em;
            overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
        }
        .ios-notify-text{
            color:rgba(255,255,255,0.75);font-size:12.5px;line-height:1.55;
            display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
        }
        /* 关闭按钮 */
        .ios-notify-close{
            position:absolute;top:8px;right:6px;z-index:2;
            width:26px;height:26px;border-radius:50%;
            background:rgba(255,255,255,0.08);border:none;color:rgba(255,255,255,0.45);
            font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;
            transition:background .15s,color .15s;flex-shrink:0;align-self:flex-start;
        }
        .ios-notify-close:hover{background:rgba(255,255,255,0.18);color:rgba(255,255,255,0.85)}
        /* 底部轮播导航（多条时） */
        .ios-notify-footer{
            display:flex;align-items:center;justify-content:center;gap:10px;
            margin-top:10px;padding-top:9px;
            border-top:1px solid rgba(255,255,255,0.07);
        }
        .ios-notify-nav{
            font-size:17px;cursor:pointer;opacity:.4;transition:opacity .15s;
            user-select:none;width:20px;text-align:center;line-height:1;
        }
        .ios-notify-nav:hover{opacity:.85}
        .ios-notify-dots{display:inline-flex;gap:6px;align-items:center}
        .ios-notify-dot{
            width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.25);
            transition:all .25s cubic-bezier(.22,1,.36,1);
        }
        .ios-notify-dot.active{background:rgba(255,255,255,.85);transform:scale(1.25)}
        /* 入场 / 出场动画 */
        @keyframes iosNotifyIn{
            from{opacity:0;transform:translateX(40px) scale(.95)}
            to{opacity:1;transform:translateX(0) scale(1)}
        }
        .ios-notify-out{
            animation:iosNotifyOut .28s cubic-bezier(.55,0,.85,.36) forwards;
        }
        @keyframes iosNotifyOut{
            from{opacity:1;transform:translateX(0) scale(1)}
            to{opacity:0;transform:translateX(30px) scale(.92)}
        }

        /* 壁纸轮换 */
        .wp-rotation-section{margin-top:8px}
        .wp-rotation-toggle{display:flex;align-items:center;gap:8px;margin-bottom:6px}
        .wp-rotation-toggle label{font-size:12px;color:rgba(255,255,255,0.7)}
        .wp-rotation-interval{display:flex;align-items:center;gap:6px;font-size:11px;color:rgba(255,255,255,0.5)}

        /* 音乐播放器 */
        .mv-card{display:flex;flex-direction:column;height:100%;gap:clamp(1px,0.8cqi,4px);overflow:hidden;container-type:inline-size;min-height:0}
        .mv-head{display:flex;align-items:center;flex-shrink:0;padding:clamp(1px,0.5cqi,3px) 0}
        .mv-head i{font-size:clamp(13px,5cqi,22px)!important}
        .mv-station{font-size:clamp(13px,5cqi,18px);color:rgba(255,255,255,.75);font-weight:500;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
        .mv-station:hover{color:rgba(200,150,255,.9)}
        .mv-canvas-wrap{flex:1;min-height:0;border-radius:clamp(3px,2cqi,10px);overflow:hidden;background:rgba(0,0,0,.3);position:relative}
        .mv-canvas{position:absolute;top:0;left:0;width:100%!important;height:100%!important;display:block}
        .mv-controls{display:flex;align-items:center;justify-content:center;gap:clamp(2px,1.5cqi,6px);flex-shrink:0}
        .mv-btn{width:clamp(28px,12cqi,44px);height:clamp(28px,12cqi,44px);border-radius:50%;border:none;background:rgba(255,255,255,.1);color:rgba(255,255,255,.6);font-size:clamp(13px,4.5cqi,18px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}
        .mv-btn:hover{background:rgba(255,255,255,.18);color:#fff}
        .mv-play{width:clamp(36px,14cqi,56px);height:clamp(36px,14cqi,56px);background:rgba(171,71,188,.3);color:#fff;font-size:clamp(16px,6cqi,26px)}
        .mv-play:hover{background:rgba(171,71,188,.5)}
        .mv-play.playing{background:rgba(171,71,188,.4)}
        .mv-vol-wrap{display:flex;align-items:center;gap:1px;margin-left:clamp(1px,1cqi,4px);flex-shrink:0}
        .mv-vol-icon{font-size:clamp(11px,3.5cqi,17px);cursor:pointer;opacity:.65;flex-shrink:0}
        .mv-vol-icon:hover{opacity:1}
        .mv-volume{width:clamp(20px,14cqi,60px);height:2px;-webkit-appearance:none;appearance:none;background:rgba(255,255,255,.2);border-radius:1px;outline:none;cursor:pointer;flex-shrink:1}
        .mv-volume::-webkit-slider-thumb{-webkit-appearance:none;width:clamp(6px,5cqi,10px);height:clamp(6px,5cqi,10px);border-radius:50%;background:rgba(171,71,188,.9);cursor:pointer}
        .mv-status{text-align:center;font-size:clamp(10px,3cqi,14px);color:rgba(255,255,255,.35);flex-shrink:0;min-height:clamp(10px,4cqi,18px)}
        .mv-station-list-scroll{scrollbar-width:thin;scrollbar-color:rgba(171,71,188,.15) transparent}
        .mv-station-list-scroll::-webkit-scrollbar{width:4px}
        .mv-station-list-scroll::-webkit-scrollbar-track{background:transparent}
        .mv-station-list-scroll::-webkit-scrollbar-thumb{background:rgba(171,71,188,.2);border-radius:2px}
        .mv-station-list-scroll::-webkit-scrollbar-thumb:hover{background:rgba(171,71,188,.35)}

        /* RSS信息流 */
        .rss-card{display:flex;flex-direction:column;height:100%;width:100%;gap:clamp(1px,1cqi,5px);overflow:hidden;container-type:inline-size;min-height:0}
        .rss-head{display:flex;align-items:center;gap:clamp(2px,1cqi,8px);flex-shrink:0;padding:clamp(0px,0.5cqi,3px) 0}
        .rss-title-icon{font-size:clamp(14px,6cqi,26px)!important;color:rgba(255,255,255,.95)}
        .rss-title-text{font-size:clamp(14px,6cqi,26px);color:rgba(255,255,255,.95);font-weight:500}
        .rss-add-btn{width:clamp(24px,9cqi,36px);height:clamp(24px,9cqi,36px);border-radius:50%;border:none;background:rgba(255,255,255,.15);color:rgba(255,255,255,.8);font-size:clamp(14px,5.5cqi,22px);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}
        .rss-add-btn:hover{background:rgba(255,255,255,.3);color:#fff}
        .rss-sources{display:flex;flex-wrap:wrap;gap:clamp(1px,1cqi,5px);padding:clamp(0px,0.4cqi,3px) 0;flex-shrink:0}
        .rss-src-chip{flex-shrink:0;padding:clamp(2px,1cqi,5px) clamp(5px,3cqi,12px);border-radius:clamp(4px,3cqi,12px);font-size:clamp(11px,4cqi,16px);cursor:pointer;background:rgba(255,255,255,.1);color:rgba(255,255,255,.6);white-space:nowrap;transition:all .15s;user-select:none}
        .rss-src-chip:hover{background:rgba(255,255,255,.2);color:#fff}
        .rss-src-chip.active{background:rgba(255,255,255,.25);color:#fff;font-weight:500}
        .rss-src-more{background:rgba(255,255,255,.06)!important;color:rgba(255,255,255,.5)!important}
        .rss-list{flex:1;min-height:0;max-height:clamp(60px,25cqi,130px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.15) transparent}
        .rss-list::-webkit-scrollbar{width:3px}
        .rss-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);border-radius:2px}
        .rss-item{font-size:clamp(11px,4cqi,17px);padding:clamp(2px,0.8cqi,5px) 0;color:rgba(255,255,255,.75);border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
        .rss-item:hover{color:#fff}
        .rss-placeholder{font-size:clamp(11px,4cqi,15px);color:rgba(255,255,255,.45);text-align:center;padding:clamp(8px,4cqi,16px)}

        /* 布局预设/工作区 */
        .workspace-section{margin-top:8px}
        .workspace-list{display:flex;flex-direction:column;gap:4px;max-height:120px;overflow-y:auto}
        .workspace-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:rgba(255,255,255,0.06);border-radius:8px;cursor:pointer;font-size:12px;color:rgba(255,255,255,0.7);transition:background .2s,color .2s}
        .workspace-item:hover{background:rgba(255,255,255,0.12);color:#fff}
        .workspace-item.active{background:rgba(74,122,255,0.2);color:#fff}
        .workspace-item-name{display:flex;align-items:center;gap:6px}
        .workspace-item-del{font-size:10px;color:rgba(255,255,255,0.2);padding:2px 4px;cursor:pointer}
        .workspace-item-del:hover{color:rgba(255,255,255,0.6)}
        .workspace-add-row{display:flex;gap:4px;margin-top:6px}
        .workspace-add-row input{flex:1;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.12);border-radius:6px;color:#fff;padding:4px 8px;font-size:11px;outline:none}
        .workspace-add-row button{background:rgb(var(--blue));border:none;border-radius:6px;color:#fff;padding:4px 10px;font-size:11px;cursor:pointer}

        /* 通知中心铃铛按钮 */
        .notif-bell-btn{position:fixed;top:16px;right:70px;z-index:150;width:36px;height:36px;border-radius:50%;background:rgba(30,30,30,0.6);border:1px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.6);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;transition:color .2s,background .2s}
        .notif-bell-btn:hover{color:#fff;background:rgba(30,30,30,0.8)}

        /* 自动排版按钮 */
        .auto-layout-btn{position:fixed;top:16px;left:78px;z-index:150;width:36px;height:36px;border-radius:50%;background:rgba(30,30,30,0.6);border:1px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.6);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;transition:color .2s,background .2s}
        .auto-layout-btn:hover{color:#fff;background:rgba(30,30,30,0.85)}
        .auto-layout-btn:active{transform:scale(0.92)}
        /* 极简模式切换按钮（排版按钮旁边） */
        .minimal-toggle-btn{position:fixed;top:16px;left:120px;z-index:150;width:36px;height:36px;border-radius:50%;background:rgba(30,30,30,0.6);border:1px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.6);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px;transition:color .2s,background .2s}
        .minimal-toggle-btn:hover{color:#fff;background:rgba(30,30,30,0.85)}
        .minimal-toggle-btn:active{transform:scale(0.92)}
        /* 极简模式激活态：换个更亮的颜色 */
        @keyframes slideInRemind{from{transform:translateX(100px);opacity:0}to{transform:translateX(0);opacity:1}}
        @keyframes fadeIn{from{opacity:0}to{opacity:1}}
        .collapsed-force{transform:translateX(-100%)!important;opacity:0!important;pointer-events:none!important}
        .card-customscript{display:flex;flex-direction:column;overflow:hidden;cursor:pointer}
        .card-customscript .cs-head{font-size:12px;color:rgba(255,255,255,0.9);padding:8px;font-weight:500}

        /* ==================== 个人中心扩展样式 ==================== */

        /* 数据看板 3列网格 */
        .dashboard-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
        .dash-card{background:rgba(255,255,255,.04);border-radius:10px;padding:14px 8px;text-align:center}
        .dash-num{display:block;font-size:22px;font-weight:700;color:rgb(var(--blue));margin-bottom:4px}
        .dash-label{display:block;font-size:11px;color:rgba(255,255,255,.4)}

        /* 设备列表 */
        .device-list{max-height:240px;overflow-y:auto}
        .device-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04)}
        .device-item:last-child{border-bottom:none}
        .device-item.current{opacity:0.6}
        .device-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
        .device-name{font-size:12px;color:rgba(255,255,255,.75);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
        .device-meta{font-size:10px;color:rgba(255,255,255,.3)}
        .device-kick{background:none;border:none;color:rgba(255,255,255,.25);cursor:pointer;font-size:13px;padding:4px 6px;border-radius:6px;transition:color .15s,background .15s}
        .device-kick:hover{color:#ff5252;background:rgba(255,82,82,.1)}

        /* TOTP 二维码 */
        .totp-qrcode{display:flex;align-items:center;justify-content:center;padding:8px;background:#fff;border-radius:8px;width:176px;height:176px;margin:0 auto}

        /* 账号注销危险区 */
        .danger-zone{border-color:rgba(255,59,48,.2)!important;background:rgba(255,59,48,.04)!important}
        .danger-zone h3{color:#ff6b6b!important}

        /* 头像上传 */
        .avatar-upload{cursor:pointer;transition:opacity .15s}
        .avatar-upload:hover{opacity:.8}
        .avatar-preview{transition:transform .2s}
        .avatar-upload:hover .avatar-preview{transform:scale(1.05)}

        /* 手机号脱敏显示 */
        .phone-display{font-size:14px;padding:6px 0}

        /* 头像选择网格 */
        .pf-av-opt:hover{transform:scale(1.1)!important;border-color:var(--primary)!important;box-shadow:0 2px 10px rgba(102,126,234,.3)!important}
        .pf-av-opt.selected{border-color:var(--primary)!important;box-shadow:0 0 0 3px rgba(102,126,234,.3)!important}

        /* ==================== 内嵌框架(iframe)卡片 ==================== */
        .card-iframe{
            background:linear-gradient(145deg,rgba(74,144,226,.55),rgba(50,100,200,.4));
            position:relative;
            overflow:hidden;
            padding:0!important;
            display:flex;flex-direction:column;
        }
        .iframe-head{
            position:absolute;top:0;left:0;right:0;
            display:flex;align-items:center;gap:6px;
            padding:4px 8px;
            height:32px;
            background:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.15));
            z-index:2;
            cursor:grab;
            user-select:none;-webkit-user-select:none;
            opacity:0;pointer-events:none;
            transition:opacity .25s;
        }
        .card-iframe:hover .iframe-head{opacity:1;pointer-events:auto}
        .iframe-head:active{cursor:grabbing}
        .iframe-drag-icon{
            color:rgba(255,255,255,.35);
            font-size:12px;
            display:flex;align-items:center;
        }
        .iframe-title{
            flex:1;
            font-size:11px;font-weight:500;
            color:rgba(255,255,255,.55);
            overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
        }
        /* 编辑按钮 */
        .iframe-edit-btn{
            width:28px;height:28px;
            border-radius:50%;
            background:rgba(255,255,255,.12);
            color:rgba(255,255,255,.6);
            display:flex;align-items:center;justify-content:center;
            font-size:10px;
            cursor:pointer;
            opacity:0;
            transition:opacity .2s,background .15s,transform .15s;
            flex-shrink:0;
            border:1px solid rgba(255,255,255,.1);
        }
        .card-iframe:hover .iframe-edit-btn{opacity:1}
        .iframe-edit-btn:hover{
            background:rgba(74,122,255,.5)!important;
            color:#fff!important;
            transform:scale(1.1);
        }
        .iframe-inner{
            flex:1;
            position:relative;
            display:flex;align-items:center;justify-content:center;
            flex-direction:column;gap:8px;
            color:rgba(255,255,255,.35);font-size:13px;
            overflow:hidden;
        }
        /* iframe加宽把滚动条推出可视区 */
        .iframe-inner iframe{
            width:calc(100% + 17px)!important;
            max-width:none!important;
        }
        /* iframe loading spinner */
        .iframe-spinner{
            position:absolute;inset:0;
            display:flex;flex-direction:column;
            align-items:center;justify-content:center;
            gap:12px;z-index:1;
            background:rgba(20,20,30,.6);
            color:rgba(255,255,255,.5);font-size:13px;
            z-index:2;
        }
        .ifs-ring{
            width:32px;height:32px;
            border:3px solid rgba(255,255,255,.15);
            border-top-color:rgba(74,144,226,.8);
            border-radius:50%;
            animation:ifs-spin .8s linear infinite;
        }
        @keyframes ifs-spin{to{transform:rotate(360deg)}}

        /* 编辑弹窗 — 与系统rename-dialog统一风格 */
        .iframe-edit-dialog{
            background:rgba(40,40,44,0.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
            border-radius:16px;border:1px solid rgba(255,255,255,0.12);
            width:440px;max-width:95vw;
            box-shadow:0 20px 60px rgba(0,0,0,0.5);
            overflow:hidden;
            animation:scaleIn .2s ease;
        }
        .ied-header{
            display:flex;align-items:center;justify-content:space-between;
            padding:18px 22px 14px;
            border-bottom:1px solid rgba(255,255,255,0.06);
        }
        .ied-title{
            font-size:15px;font-weight:600;color:rgba(255,255,255,0.9);
        }
        .ied-close{
            width:26px;height:26px;border-radius:50%;
            background:rgba(255,255,255,0.1);border:none;cursor:pointer;
            color:rgba(255,255,255,0.55);font-size:12px;display:flex;align-items:center;justify-content:center;
            flex-shrink:0;transition:background .15s,color .15s;
        }
        .ied-close:hover{background:rgba(255,255,255,0.18);color:#fff}
        .ied-body{
            padding:14px 22px 6px;
            display:flex;flex-direction:column;gap:12px;
        }
        .ied-row{
            display:flex;align-items:center;gap:10px;
        }
        .ied-label{
            font-size:13px;color:rgba(255,255,255,0.55);font-weight:500;
            min-width:64px;flex-shrink:0;
            text-align:right;
        }
        .ied-required::before{
            content:'*';color:#ff4d4f;margin-right:3px;
        }
        /* 输入框 — 与系统rename-dialog input一致 */
        .ied-input-wrap{
            flex:1;position:relative;display:flex;align-items:center;
        }
        .ied-input{
            flex:1;width:100%;height:38px;
            border:1px solid rgba(255,255,255,0.15);border-radius:10px;
            padding:0 34px 0 12px;font-size:13px;color:#fff;
            outline:none;background:rgba(255,255,255,0.08);
            transition:border-color .2s;
            font-family:inherit;
        }
        .ied-input:focus{border-color:rgb(var(--blue))}
        .ied-input.ied-url{padding-right:12px}
        .ied-input::placeholder{color:rgba(255,255,255,0.3)}
        .ied-clear{
            position:absolute;right:8px;top:50%;transform:translateY(-50%);
            border:none;background:none;cursor:pointer;
            color:rgba(255,255,255,0.4);font-size:16px;line-height:1;padding:0;
        }
        .ied-clear:hover{color:rgba(255,255,255,0.8)}
        /* 下拉选择 — 与输入框统一风格 */
        .ied-select-wrap{
            flex:1;position:relative;display:flex;align-items:center;
        }
        .ied-select{
            flex:1;width:100%;height:38px;
            border:1px solid rgba(255,255,255,0.15);border-radius:10px;
            padding:0 30px 0 12px;font-size:13px;color:#fff;
            background:rgba(255,255,255,0.08);outline:none;
            appearance:none;-webkit-appearance:none;
            cursor:pointer;
            transition:border-color .2s;
            font-family:inherit;
        }
        .ied-select:focus{border-color:rgb(var(--blue))}
        .ied-select option{background:#2a2a30;color:#fff}
        .ied-sel-arrow{
            position:absolute;right:12px;top:50%;transform:translateY(-50%);
            font-size:11px;color:rgba(255,255,255,0.4);pointer-events:none;
        }
        /* 底部按钮 — 与系统rename-dialog-btns一致 */
        .ied-footer{
            display:flex;justify-content:flex-end;gap:8px;
            padding:14px 22px 20px;
        }
        .ied-btn-cancel{
            height:34px;padding:0 22px;border-radius:10px;
            border:none;background:rgba(255,255,255,0.1);
            color:rgba(255,255,255,0.7);font-size:13px;font-weight:500;cursor:pointer;
            font-family:inherit;transition:opacity .2s;
        }
        .ied-btn-cancel:hover{opacity:.85}
        .ied-btn-confirm{
            height:34px;padding:0 26px;border-radius:10px;
            border:none;background:rgb(var(--blue));
            color:#fff;font-size:13px;font-weight:500;cursor:pointer;
            font-family:inherit;transition:opacity .2s;
        }
        .ied-btn-confirm:hover{opacity:.85}

        /* ==================== 翻译卡片 ==================== */
        .card-translate{
            background:linear-gradient(145deg,rgba(0,188,212,.6),rgba(0,150,180,.4));
            padding:10px!important;
            overflow:visible !important;
            contain:none;will-change:auto;transform:none!important;
        }
        .card-translate:hover{transform:none!important;border-color:rgba(255,255,255,0.2);box-shadow:0 8px 25px rgba(0,0,0,0.25)}
        .card-translate.dragging{transform:scale(0.95)!important}
        .card-translate .tr-dd-menu {
            z-index:100;
        }
        .translate-card{
            display:flex;flex-direction:column;gap:6px;height:100%;
        }
        .tr-title{
            font-size:12px;font-weight:600;color:rgba(255,255,255,.75);
            display:flex;align-items:center;flex-shrink:0;
        }
        .tr-lang-row{
            display:flex;align-items:center;gap:6px;position:relative;
        }
        .tr-dropdown{
            flex:1;position:relative;outline:none;user-select:none;
        }
        .tr-dd-trigger{
            display:flex;align-items:center;justify-content:space-between;
            height:30px;padding:0 10px;border-radius:8px;
            border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.25);
            color:rgba(255,255,255,.85);font-size:12px;font-weight:500;
            cursor:pointer;transition:border-color .2s,background .2s;
            font-family:inherit;
        }
        .tr-dd-trigger:hover{background:rgba(255,255,255,.05)}
        .tr-dropdown.open .tr-dd-trigger{border-color:rgba(0,188,212,.5);background:rgba(255,255,255,.06)}
        .tr-dd-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:left}
        .tr-dd-arrow{font-size:8px;color:rgba(255,255,255,.4);transition:transform .2s;margin-left:4px;flex-shrink:0}
        .tr-dropdown.open .tr-dd-arrow{transform:rotate(180deg)}
        .tr-dd-menu{
            display:none;position:absolute;top:100%;left:0;right:0;margin-top:4px;
            background:#1e1e2a;border:1px solid rgba(255,255,255,.12);border-radius:8px;
            z-index:10;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.4);
        }
        .tr-dropdown.open .tr-dd-menu{display:block;position:fixed;z-index:99999}
        .tr-dd-list{
            max-height:160px;overflow-y:auto;padding:4px 0;
            scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent;
        }
        .tr-dd-list::-webkit-scrollbar{width:4px}
        .tr-dd-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}
        .tr-dd-list::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.25)}
        .tr-dd-item{
            padding:6px 12px;font-size:12px;color:rgba(255,255,255,.8);cursor:pointer;
            transition:background .15s;text-align:left;
        }
        .tr-dd-item:hover{background:rgba(0,188,212,.2);color:#fff}
        .tr-dd-item.selected{background:rgba(0,188,212,.3);color:#fff;font-weight:600}
        .tr-dd-sep{height:1px;background:rgba(255,255,255,.06);margin:3px 12px}
        /* 自定义语言下拉 */
        .tr-swap{
            width:28px;height:28px;border-radius:50%;border:none;
            background:rgba(255,255,255,.1);color:rgba(255,255,255,.7);
            font-size:11px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;
            transition:background .2s,transform .2s;
        }
        .tr-swap:hover{background:rgba(255,255,255,.2);transform:rotate(180deg)}
        .tr-input{
            flex:1;min-height:50px;border-radius:8px;border:1px solid rgba(255,255,255,.12);
            background:rgba(0,0,0,.2);color:rgba(255,255,255,.9);font-size:13px;
            padding:8px 10px;resize:none;outline:none;font-family:inherit;
            transition:border-color .2s;
            scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent;
        }
        .tr-input::-webkit-scrollbar{width:4px}
        .tr-input::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}
        .tr-input::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.25)}
        .tr-input::placeholder{color:rgba(255,255,255,.25)}
        .tr-input:focus{border-color:rgba(0,188,212,.5)}
        .tr-btn-submit{
            width:100%;height:34px;border-radius:10px;border:none;
            background:rgba(0,188,212,.7);color:#fff;font-size:13px;font-weight:600;
            cursor:pointer;transition:background .2s,transform .1s;
            font-family:inherit;
        }
        .tr-btn-submit:hover{background:rgba(0,188,212,.9)}
        .tr-btn-submit:active{transform:scale(.97)}
        .tr-btn-submit:disabled{opacity:.5;cursor:not-allowed}
        .tr-result{
            flex:1;min-height:40px;border-radius:8px;border:1px solid rgba(255,255,255,.08);
            background:rgba(0,0,0,.15);padding:8px 10px;
            color:rgba(255,255,255,.85);font-size:13px;
            word-break:break-word;overflow-y:auto;
        }
        .tr-out-wrap{
            flex:1;display:flex;gap:4px;min-height:0;
        }
        .tr-out-wrap .tr-result{
            flex:1;
            scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent;
        }
        .tr-out-wrap .tr-result::-webkit-scrollbar{width:4px}
        .tr-out-wrap .tr-result::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}
        .tr-out-wrap .tr-result::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.25)}
        .tr-copy{
            width:28px;height:28px;border-radius:6px;border:none;flex-shrink:0;align-self:flex-start;
            background:rgba(255,255,255,.08);color:rgba(255,255,255,.5);font-size:11px;
            cursor:pointer;display:flex;align-items:center;justify-content:center;
            transition:background .2s,color .2s;
        }
        .tr-copy:hover{background:rgba(255,255,255,.18);color:#fff}
        .tr-loading{
            display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.4);
        }
        .tr-spinner{
            width:16px;height:16px;border:2px solid rgba(255,255,255,.15);
            border-top-color:rgba(255,255,255,.6);border-radius:50%;
            animation:tr-spin .6s linear infinite;
        }
        @keyframes tr-spin{to{transform:rotate(360deg)}}

        /* ==================== v14 完善：快捷键面板 ==================== */
        .shortcut-panel{position:fixed;inset:0;z-index:99999;pointer-events:none}
        .shortcut-panel > * {pointer-events:auto}
        .sp-backdrop{
            position:absolute;inset:0;background:rgba(0,0,0,.5);
            backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
        }
        .sp-card{
            position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
            background:rgba(30,30,38,.95);border-radius:16px;
            border:1px solid rgba(255,255,255,.1);
            width:420px;max-width:92vw;box-shadow:0 20px 60px rgba(0,0,0,.5);
            overflow:hidden;
        }
        .sp-head{
            display:flex;align-items:center;justify-content:space-between;
            padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.06);
            font-size:15px;font-weight:600;color:rgba(255,255,255,.9);
        }
        .sp-close{
            width:26px;height:26px;border-radius:50%;border:none;
            background:rgba(255,255,255,.1);color:rgba(255,255,255,.55);
            font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;
        }
        .sp-close:hover{background:rgba(255,255,255,.18);color:#fff}
        .sp-body{
            padding:16px 20px;max-height:420px;overflow-y:auto;
            scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent;
        }
        .sp-body::-webkit-scrollbar{width:4px}
        .sp-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}
        .sp-body::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.25)}
        .sp-group{margin-bottom:14px}
        .sp-gtitle{font-size:11px;color:rgb(var(--blue));text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-weight:600}
        .sp-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;font-size:13px;color:rgba(255,255,255,.7)}
        .sp-row kbd{
            padding:3px 8px;border-radius:5px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);
            font-size:11px;color:rgba(255,255,255,.8);font-family:inherit;white-space:nowrap;
        }
        .fade-in{animation:fadeIn .2s ease}
        @keyframes fadeIn{from{opacity:0}to{opacity:1}}

        /* ==================== v14 完善：临时便签 ==================== */
        .clipboard-widget{
            position:fixed;right:16px;bottom:80px;z-index:999;
        }
        .clip-toggle{
            width:40px;height:40px;border-radius:50%;background:rgba(30,30,38,.9);
            border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.7);
            font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;
            box-shadow:0 4px 16px rgba(0,0,0,.3);transition:transform .2s,background .2s;
            position:relative;z-index:2;
        }
        .clip-toggle:hover{background:rgba(50,50,60,.95);transform:scale(1.05)}
        .clip-panel{
            position:absolute;bottom:48px;right:0;width:260px;background:rgba(30,30,38,.95);
            border-radius:12px;border:1px solid rgba(255,255,255,.1);
            box-shadow:0 8px 32px rgba(0,0,0,.4);overflow:hidden;
            display:none;flex-direction:column;
        }
        .clipboard-widget.open .clip-panel{display:flex}
        .clip-head{
            display:flex;align-items:center;justify-content:space-between;
            padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.06);
            font-size:12px;font-weight:600;color:rgba(255,255,255,.6);
        }
        .clip-clear{
            border:none;background:none;color:rgba(255,255,255,.3);cursor:pointer;font-size:11px;padding:4px;
        }
        .clip-clear:hover{color:#ff6b6b}
        .clip-text{
            width:100%;min-height:120px;border:none;background:rgba(0,0,0,.2);
            color:rgba(255,255,255,.85);font-size:13px;padding:10px 14px;resize:none;
            font-family:inherit;outline:none;
        }
        .clip-text::placeholder{color:rgba(255,255,255,.2)}

        /* ==================== v14 完善：搜索建议 ==================== */
        .search-suggest-box{
            display:none;position:absolute;top:100%;left:0;right:0;
            background:rgba(30,30,38,.95);border-radius:0 0 14px 14px;
            border:1px solid rgba(255,255,255,.1);border-top:none;
            box-shadow:0 8px 24px rgba(0,0,0,.3);z-index:50;
            overflow:hidden;margin-top:-1px;
        }
        .ss-item{
            padding:10px 16px;font-size:13px;color:rgba(255,255,255,.7);
            cursor:pointer;transition:background .1s;
        }
        .ss-item:hover{background:rgba(255,255,255,.08);color:#fff}

        /* ==================== v14 密码本卡片 ==================== */
        .card-vault{
            background:linear-gradient(145deg,rgba(124,77,255,.65),rgba(98,0,234,.45));
            padding:10px!important;overflow:hidden;
        }
        .vault-card{
            display:flex;flex-direction:column;gap:6px;height:100%;
        }
        .vault-head{
            display:flex;align-items:center;justify-content:space-between;flex-shrink:0;
        }
        .vault-actions{display:flex;gap:4px}
        .vault-act-btn{
            width:24px;height:24px;border-radius:50%;border:none;
            background:rgba(255,255,255,.08);color:rgba(255,255,255,.45);
            font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;
            transition:background .15s,color .15s;
        }
        .vault-act-btn:hover{background:rgba(255,255,255,.18);color:#fff}
        .vault-hint-title{font-size:14px;color:rgba(255,255,255,.7);font-weight:500;margin-bottom:2px}
        .vault-hint-desc{font-size:11px;color:rgba(255,255,255,.3);margin-bottom:10px}
        .vault-locked{
            display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 0;
        }
        .vault-list{
            flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px;
            scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent;
        }
        .vault-list::-webkit-scrollbar{width:4px}
        .vault-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}
        .vault-list::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.25)}
        .vault-locked{
            display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 0;
        }
        .vault-pin-input{
            width:120px;padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.15);
            background:rgba(0,0,0,.25);color:#fff;font-size:14px;text-align:center;outline:none;
            font-family:inherit;transition:border-color .2s;
        }
        .vault-pin-input:focus{border-color:rgba(124,77,255,.6)}
        .vault-confirm-pin{
            width:120px;padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.15);
            background:rgba(0,0,0,.25);color:#fff;font-size:14px;text-align:center;outline:none;
            font-family:inherit;transition:border-color .2s;
        }
        .vault-pin-btn{
            padding:6px 20px;border-radius:8px;border:none;background:rgba(124,77,255,.6);
            color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;
        }
        .vault-pin-btn:hover{background:rgba(124,77,255,.8)}
        .vault-forgot{
            margin-top:8px;font-size:11px;color:rgba(255,255,255,.25);
        }
        .vault-reset-link{
            color:rgba(255,107,107,.6);text-decoration:none;cursor:pointer;
        }
        .vault-reset-link:hover{color:#ff6b6b;text-decoration:underline}
        .vault-item{
            background:rgba(0,0,0,.15);border-radius:8px;padding:6px 8px;
        }
        .vi-header{
            display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;
        }
        .vi-name{
            font-size:11px;color:rgba(255,255,255,.6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;
        }
        .vi-account{
            font-size:10px;color:rgba(255,255,255,.35);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
        }
        .vi-del{
            width:18px;height:18px;border-radius:50%;border:none;background:rgba(255,255,255,.08);
            color:rgba(255,255,255,.3);font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;
            transition:color .15s,background .15s;flex-shrink:0;
        }
        .vi-del:hover{color:#ff6b6b;background:rgba(255,107,107,.2)}
        .vi-value-row{
            display:flex;align-items:center;gap:6px;
        }
        .vi-val{
            flex:1;font-size:13px;color:rgba(255,255,255,.85);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
        }
        .vi-masked{color:rgba(255,255,255,.35);letter-spacing:2px}
        .vi-reveal, .vi-copy{
            width:22px;height:22px;border-radius:4px;border:none;background:rgba(255,255,255,.06);
            color:rgba(255,255,255,.35);font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;
            flex-shrink:0;transition:color .15s,background .15s;
        }
        .vi-reveal:hover, .vi-copy:hover{color:#fff;background:rgba(255,255,255,.15)}
        .vault-add-btn{
            width:100%;padding:6px;border-radius:8px;border:1px dashed rgba(255,255,255,.15);
            background:rgba(255,255,255,.04);color:rgba(255,255,255,.45);font-size:12px;
            cursor:pointer;font-family:inherit;transition:color .15s,background .15s;flex-shrink:0;
        }
        .vault-add-btn:hover{color:#fff;background:rgba(255,255,255,.1)}

        /* ==================== v14 Markdown编辑器（启动器卡片 + 弹窗）==================== */
        /* 启动器卡片 */
        .card-md{
            background:linear-gradient(145deg,rgba(38,166,154,.55),rgba(30,140,130,.35));
            cursor:pointer;
        }
        .md-launcher{
            display:flex;flex-direction:column;align-items:center;justify-content:center;
            gap:10px;height:100%;padding:12px;
        }
        .md-launcher-icon{
            font-size:32px;color:rgba(77,208,196,.9);
            text-shadow:0 0 20px rgba(38,166,154,.6);
        }
        .md-launcher-title{
            font-size:13px;font-weight:600;color:rgba(255,255,255,.85);
        }
        .md-open-btn{
            padding:6px 16px;border-radius:20px;border:1px solid rgba(77,208,196,.4);
            background:rgba(38,166,154,.2);color:rgba(255,255,255,.8);
            font-size:12px;cursor:pointer;transition:all .2s;
        }
        .md-open-btn:hover{background:rgba(38,166,154,.45);color:#fff;border-color:rgba(77,208,196,.7)}

        /* 弹窗遮罩 */
        .md-modal{
            position:fixed;inset:0;z-index:99998;
            background:rgba(0,0,0,.65);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
            display:flex;align-items:center;justify-content:center;
            opacity:0;pointer-events:none;transition:opacity .2s;
        }
        .md-modal.md-modal-open{opacity:1;pointer-events:all}
        .md-modal-inner{
            width:calc(100vw - 48px);max-width:1400px;
            height:calc(100vh - 64px);max-height:900px;
            border-radius:16px;overflow:hidden;
            display:flex;flex-direction:column;
            background:rgba(18,22,30,.92);border:1px solid rgba(255,255,255,.1);
            box-shadow:0 24px 80px rgba(0,0,0,.6);
            transform:scale(.97);transition:transform .2s;
        }
        .md-modal.md-modal-open .md-modal-inner{transform:scale(1)}

        /* 标题栏 */
        .md-modal-head{
            display:flex;align-items:center;justify-content:space-between;
            padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08);
            background:rgba(0,0,0,.2);flex-shrink:0;
        }
        .md-modal-title{
            font-size:15px;font-weight:700;color:rgba(255,255,255,.9);
        }
        .md-modal-actions{display:flex;align-items:center;gap:6px}
        .md-modal-btn{
            padding:5px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.12);
            background:rgba(255,255,255,.06);color:rgba(255,255,255,.6);
            font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap;
        }
        .md-modal-btn:hover{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.25)}
        .md-modal-btn.active{background:rgba(38,166,154,.3);color:#4dd0c4;border-color:rgba(38,166,154,.5)}
        .md-modal-close{
            width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.12);
            background:rgba(255,255,255,.06);color:rgba(255,255,255,.5);
            font-size:14px;cursor:pointer;transition:all .15s;
            display:flex;align-items:center;justify-content:center;
        }
        .md-modal-close:hover{background:rgba(255,80,80,.3);color:#ff7875;border-color:rgba(255,80,80,.4)}

        /* 编辑区 */
        .md-modal-body{
            flex:1;min-height:0;display:flex;overflow:hidden;
        }
        .md-modal-editor{
            flex:1;min-width:0;border:none;outline:none;resize:none;
            background:rgba(8,12,18,.7);color:rgba(255,255,255,.85);
            font-size:14px;line-height:1.8;padding:20px 24px;
            font-family:'SF Mono','Fira Code','JetBrains Mono','Consolas',monospace;
            tab-size:2;
            scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent;
        }
        .md-modal-editor::-webkit-scrollbar{width:5px}
        .md-modal-editor::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:3px}
        .md-modal-editor::placeholder{color:rgba(255,255,255,.15)}
        .md-modal-divider{
            width:1px;background:rgba(255,255,255,.08);flex-shrink:0;
        }
        .md-modal-preview{
            flex:1;min-width:0;overflow-y:auto;
            padding:20px 28px;color:rgba(255,255,255,.82);
            font-size:14px;line-height:1.8;
            scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent;
        }
        .md-modal-preview::-webkit-scrollbar{width:5px}
        .md-modal-preview::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:3px}
        /* 预览内容排版 */
        .md-modal-preview h1{font-size:22px;font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:8px;margin:0 0 16px}
        .md-modal-preview h2{font-size:18px;font-weight:600;color:rgba(255,255,255,.9);margin:20px 0 10px}
        .md-modal-preview h3{font-size:15px;font-weight:600;color:rgba(255,255,255,.85);margin:16px 0 8px}
        .md-modal-preview p{margin:0 0 12px}
        .md-modal-preview strong{color:#fff}
        .md-modal-preview em{color:rgba(255,255,255,.7)}
        .md-modal-preview del{color:rgba(255,255,255,.4)}
        .md-modal-preview code{background:rgba(0,0,0,.4);color:#4dd0c4;padding:2px 6px;border-radius:4px;font-family:monospace;font-size:13px}
        .md-modal-preview pre{background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:14px 18px;overflow-x:auto;margin:0 0 16px}
        .md-modal-preview pre code{background:none;padding:0;color:rgba(255,255,255,.8)}
        .md-modal-preview blockquote{border-left:3px solid rgba(38,166,154,.6);margin:0 0 12px;padding:6px 16px;background:rgba(38,166,154,.07);border-radius:0 6px 6px 0;color:rgba(255,255,255,.6)}
        .md-modal-preview ul,.md-modal-preview ol{margin:0 0 12px;padding-left:24px}
        .md-modal-preview li{margin:4px 0}
        .md-modal-preview a{color:#4dd0c4;text-decoration:none}
        .md-modal-preview a:hover{text-decoration:underline}
        .md-modal-preview table{border-collapse:collapse;width:100%;margin:0 0 16px;font-size:13px}
        .md-modal-preview th{background:rgba(38,166,154,.15);color:rgba(255,255,255,.9);font-weight:600}
        .md-modal-preview th,.md-modal-preview td{border:1px solid rgba(255,255,255,.1);padding:8px 12px}
        .md-modal-preview tr:nth-child(even) td{background:rgba(255,255,255,.03)}
        .md-modal-preview hr{border:none;border-top:1px solid rgba(255,255,255,.1);margin:20px 0}
        .md-modal-preview img{max-width:100%;border-radius:6px}

        /* 底部状态栏 */
        .md-modal-footer{
            display:flex;align-items:center;justify-content:space-between;
            padding:8px 20px;border-top:1px solid rgba(255,255,255,.06);
            background:rgba(0,0,0,.15);flex-shrink:0;
        }
        .md-modal-hint{font-size:11px;color:rgba(255,255,255,.3)}
        .md-modal-wordcount{font-size:11px;color:rgba(255,255,255,.35)}

/* ========== v14 AI助理 ========== */

/* --- AI 悬浮气泡 --- */
.ai-bubble{
    position:fixed;bottom:20px;right:20px;z-index:200;
    width:56px;height:56px;border-radius:50%;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    cursor:pointer;transition:all .3s ease;
    box-shadow:0 4px 20px rgba(0,0,0,.3);
    animation:ai-bob 3s ease-in-out infinite;
}
.ai-bubble:hover{transform:scale(1.08);box-shadow:0 6px 28px rgba(0,0,0,.4)}
.ai-bubble.ai-bubble-open{animation:none;transform:scale(0);opacity:0;pointer-events:none}
.ai-bubble i{font-size:22px}
.ai-bubble-label{font-size:8px;margin-top:1px;line-height:1}
/* 登录态 */
.ai-bubble-logged{background:linear-gradient(135deg,#4A90D9,#357ABD);color:#fff}
.ai-bubble-logged:hover{background:linear-gradient(135deg,#5AA0E9,#458ACD)}
/* 未登录态 */
.ai-bubble-guest{background:rgba(136,136,136,.6);color:rgba(255,255,255,.5)}
/* 脉冲动画 */
.ai-bubble-pulse{animation:ai-pulse 1.5s ease-in-out infinite,ai-bob 3s ease-in-out infinite}
.ai-bubble-pulse::after{
    content:'';position:absolute;inset:-6px;border-radius:50%;
    border:2px solid rgba(74,144,217,.4);animation:ai-pulse-ring 1.5s ease-out infinite
}

@keyframes ai-bob{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-6px)}
}
@keyframes ai-pulse{
    0%,100%{transform:scale(1)}
    50%{transform:scale(1.06)}
}
@keyframes ai-pulse-ring{
    0%{transform:scale(1);opacity:.6}
    100%{transform:scale(1.5);opacity:0}
}

/* --- AI 对话面板 --- */
.ai-panel{
    position:fixed;bottom:88px;right:20px;z-index:199;
    width:380px;height:520px;max-height:calc(100vh - 120px);
    background:rgba(28,28,40,.95);backdrop-filter:blur(24px);
    -webkit-backdrop-filter:blur(24px);
    border-radius:16px;border:1px solid rgba(255,255,255,.12);
    box-shadow:0 12px 48px rgba(0,0,0,.45);
    display:flex;flex-direction:column;overflow:hidden;
    transform:scale(.8);opacity:0;pointer-events:none;
    transition:transform .2s ease-out,opacity .2s ease-out;
}
.ai-panel.ai-panel-open{transform:scale(1);opacity:1;pointer-events:auto}
.ai-panel.ai-panel-no-anim{transition:none}

/* 面板头部 */
.ai-panel-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.08);
    flex-shrink:0
}
.ai-panel-title{font-size:15px;font-weight:600;color:rgba(255,255,255,.9);display:flex;align-items:center;gap:8px}
.ai-panel-title i{color:#4A90D9}
.ai-panel-close{
    background:none;border:none;color:rgba(255,255,255,.4);font-size:22px;
    cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;
    align-items:center;justify-content:center;transition:all .2s
}
.ai-panel-close:hover{color:#fff;background:rgba(255,255,255,.1)}

/* 消息列表 */
.ai-message-list{
    flex:1;overflow-y:auto;padding:16px;
    display:flex;flex-direction:column;gap:10px
}
.ai-message-list::-webkit-scrollbar{width:4px}
.ai-message-list::-webkit-scrollbar-track{background:transparent}
.ai-message-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:2px}
.ai-message-list::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.18)}

/* 加载/错误 */
.ai-loading{text-align:center;color:rgba(255,255,255,.4);padding:40px 0;font-size:13px}
.ai-loading i{margin-right:6px}
.ai-loading.ai-error{color:rgba(255,89,48,.8)}

/* --- 消息气泡 --- */
.ai-msg-user{display:flex;flex-direction:column;align-items:flex-end;padding:0 4px}
.ai-msg-assistant{display:flex;flex-direction:column;align-items:flex-start;padding:0 4px}
.ai-msg-bubble{
    max-width:85%;padding:10px 14px;border-radius:14px;
    font-size:13px;line-height:1.55;word-break:break-word
}
.ai-msg-user .ai-msg-bubble{
    background:linear-gradient(135deg,#4A90D9,#357ABD);
    color:#fff;border-bottom-right-radius:4px
}
.ai-msg-assistant .ai-msg-bubble{
    background:rgba(255,255,255,.08);color:rgba(255,255,255,.85);
    border-bottom-left-radius:4px
}
.ai-msg-time{font-size:10px;color:rgba(255,255,255,.25);margin-top:3px;padding:0 4px}

/* --- 输入区域 --- */
.ai-input-area{
    display:flex;align-items:center;gap:8px;
    padding:12px 16px;border-top:1px solid rgba(255,255,255,.08);
    flex-shrink:0
}
.ai-input{
    flex:1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
    border-radius:10px;padding:10px 14px;font-size:13px;color:#fff;
    outline:none;transition:border .2s
}
.ai-input::placeholder{color:rgba(255,255,255,.25)}
.ai-input:focus{border-color:rgba(74,144,217,.5)}
.ai-send-btn{
    width:38px;height:38px;border-radius:10px;border:none;
    background:linear-gradient(135deg,#4A90D9,#357ABD);color:#fff;
    cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;
    transition:all .2s;flex-shrink:0
}
.ai-send-btn:hover{background:linear-gradient(135deg,#5AA0E9,#458ACD);transform:scale(1.05)}

/* --- 哨兵简报卡片 --- */
.ai-briefing-card{
    background:rgba(255,255,255,.04);border-radius:12px;
    padding:14px 16px;font-size:12px;line-height:1.6
}
.ai-briefing-section{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.ai-briefing-section:last-child{border-bottom:none}
.ai-briefing-greeting{font-size:14px;font-weight:600;color:rgba(255,255,255,.9);border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:10px}
.ai-briefing-emoji{flex-shrink:0;font-size:16px;width:24px;text-align:center}
.ai-briefing-text{flex:1;color:rgba(255,255,255,.7)}
.ai-briefing-text strong{color:rgba(255,255,255,.9)}
.ai-briefing-sub{color:rgba(255,255,255,.45);font-size:11px;margin-top:2px}
.ai-briefing-item{font-size:11px;color:rgba(255,255,255,.6);padding:2px 0}
.ai-briefing-item.ai-prio-high{border-left:3px solid #f44336;padding-left:8px}
.ai-briefing-item.ai-prio-medium{border-left:3px solid #ff9800;padding-left:8px}
.ai-briefing-item.ai-prio-low{border-left:3px solid #4caf50;padding-left:8px}
.ai-deadline{color:rgba(255,255,255,.35);font-size:10px}
.ai-hot-tag{display:inline-block;background:rgba(255,152,0,.15);color:rgba(255,152,0,.8);padding:2px 8px;border-radius:4px;font-size:10px;margin:2px 4px 2px 0}
.ai-briefing-quote{color:rgba(255,255,255,.55);font-style:italic;font-size:12px;padding:6px 0;text-align:center;border-top:1px solid rgba(255,255,255,.06)}
.ai-briefing-time{font-size:9px;color:rgba(255,255,255,.2);text-align:right;margin-top:6px}
/* 各模块彩色左边框 */
.ai-briefing-weather{border-left:3px solid #4A90D9;padding-left:10px;margin:2px 0}
.ai-briefing-todo{border-left:3px solid #f44336;padding-left:10px;margin:2px 0}
.ai-briefing-habit{border-left:3px solid #4caf50;padding-left:10px;margin:2px 0}
.ai-briefing-anniversary{border-left:3px solid #e91e63;padding-left:10px;margin:2px 0}
.ai-briefing-countdown{border-left:3px solid #ff9800;padding-left:10px;margin:2px 0}
.ai-briefing-finance{border-left:3px solid #00bcd4;padding-left:10px;margin:2px 0}
.ai-briefing-hot{border-left:3px solid #ff5722;padding-left:10px;margin:2px 0}

/* --- 确认弹窗 --- */
.ai-confirm-overlay{
    position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.6);
    display:flex;align-items:center;justify-content:center;
    animation:ai-overlay-in .2s ease
}
@keyframes ai-overlay-in{from{opacity:0}to{opacity:1}}
.ai-confirm-box{
    background:rgba(40,40,55,.98);backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    border-radius:16px;border:1px solid rgba(255,255,255,.12);
    padding:24px;width:340px;max-width:90vw;
    box-shadow:0 16px 48px rgba(0,0,0,.5);
    animation:ai-confirm-in .25s ease
}
@keyframes ai-confirm-in{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
.ai-confirm-title{font-size:16px;font-weight:600;color:#fff;margin-bottom:10px}
.ai-confirm-msg{font-size:13px;color:rgba(255,255,255,.65);line-height:1.6;margin-bottom:20px}
.ai-confirm-actions{display:flex;gap:10px;justify-content:flex-end}
.ai-confirm-btn{padding:8px 20px;border-radius:8px;font-size:13px;cursor:pointer;border:none;transition:all .2s}
.ai-confirm-cancel{background:rgba(255,255,255,.1);color:rgba(255,255,255,.6)}
.ai-confirm-cancel:hover{background:rgba(255,255,255,.18)}
.ai-confirm-ok{background:#f44336;color:#fff}
.ai-confirm-ok:hover{background:#d32f2f}

/* --- 登录引导 --- */
.ai-login-guide-overlay{
    position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.55);
    display:flex;align-items:center;justify-content:center;
    animation:ai-overlay-in .2s ease
}
.ai-login-guide{
    background:rgba(40,40,55,.98);backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    border-radius:16px;border:1px solid rgba(255,255,255,.12);
    padding:28px 32px;width:360px;max-width:90vw;text-align:center;
    box-shadow:0 16px 48px rgba(0,0,0,.5);
    animation:ai-confirm-in .25s ease
}
.ai-login-guide-icon{font-size:40px;margin-bottom:12px}
.ai-login-guide-title{font-size:18px;font-weight:700;color:#fff;margin-bottom:8px}
.ai-login-guide-desc{font-size:13px;color:rgba(255,255,255,.5);margin-bottom:16px}
.ai-login-guide-features{list-style:none;text-align:left;margin-bottom:20px}
.ai-login-guide-features li{font-size:13px;color:rgba(255,255,255,.7);padding:4px 0}
.ai-login-guide-actions{display:flex;gap:10px;justify-content:center}
.ai-login-guide-btn{padding:10px 24px;border-radius:10px;font-size:14px;cursor:pointer;border:none;transition:all .2s;font-weight:600}
.ai-login-guide-login{background:linear-gradient(135deg,#4A90D9,#357ABD);color:#fff}
.ai-login-guide-login:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(74,144,217,.3)}
.ai-login-guide-cancel{background:rgba(255,255,255,.08);color:rgba(255,255,255,.5)}
.ai-login-guide-cancel:hover{background:rgba(255,255,255,.14)}

/* --- 移动端响应式 --- */
@media(max-width:768px){
    .ai-bubble{bottom:16px;right:16px;width:48px;height:48px}
    .ai-bubble i{font-size:18px}
    .ai-bubble-label{font-size:7px}
    .ai-panel{
        bottom:0;right:0;left:0;width:100%;height:100%;
        max-height:100vh;border-radius:0;border:none
    }
    .ai-panel-header{padding:12px 16px}
    .ai-message-list{padding:12px}
    .ai-input-area{padding:10px 12px}
    .ai-msg-bubble{font-size:12px}
}
