/* ============================================================
   森域浏览器 — 全局样式（高级感重设计）
   主题色 #7C3AED（森域青） · 次强调 #7C5CFC（紫）· 暖橙 #FF8A5B
   浅色主题 · 红涨绿跌 · 玻璃拟态 + 多层阴影 + 渐变层次
   ============================================================ */

:root{
  --primary:#7C3AED;
  --primary-d:#6D28D9;
  --primary-l:#F3EBFF;
  --accent2:#A855F7;          /* 亮紫，用于层次与渐变 */
  --accent3:#FF8A5B;          /* 暖橙，点缀 */
  --up:#E64545;               /* 涨 · 红（A股惯例） */
  --down:#1EAA6B;             /* 跌 · 绿 */
  /* 节假日红：法定节假日 / 周末统一红色系 */
  --hol:#E0393E;
  --hol-d:#B71C1C;
  --hol-l:#FFEBEE;
  --hol-mid:#F4A0A0;
  --bg:#F2EEFA;
  --card:#FFFFFF;
  --text:#16202B;
  --text-2:#5B6675;
  --text-3:#93A0AE;
  --border:rgba(20,32,48,.09);
  --hair:rgba(16,24,40,.08);
  --radius:18px;
  --radius-s:12px;
  --shadow:0 1px 2px rgba(16,24,40,.04), 0 10px 30px rgba(16,24,40,.06), inset 0 1px 0 rgba(255,255,255,.65);
  --shadow-h:0 18px 40px rgba(124,58,237,.18), 0 6px 14px rgba(124,92,252,.10), inset 0 1px 0 rgba(255,255,255,.7);
  --shadow-soft:0 1px 2px rgba(16,24,40,.04), 0 6px 18px rgba(16,24,40,.05);
  --grad:linear-gradient(135deg,#7C3AED,#A855F7);
  --grad-2:linear-gradient(135deg,#7C5CFC,#7C3AED);
  --grad-soft:linear-gradient(135deg,#F6F0FF,#F2FAF8 50%,#F1EEFF);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--font);
  color:var(--text);
  font-size:14px;
  line-height:1.6;
  min-height:100dvh;
  background:
    radial-gradient(1000px 560px at 6% -10%, rgba(124,58,237,.20), transparent 62%),
    radial-gradient(880px 520px at 96% 0%, rgba(168,85,247,.18), transparent 60%),
    radial-gradient(820px 620px at 30% 108%, rgba(255,138,91,.10), transparent 62%),
    radial-gradient(760px 700px at 78% 118%, rgba(99,102,241,.12), transparent 60%),
    linear-gradient(180deg,#FAF7FF 0%, #F3EFFB 52%, #EDE7F7 100%);
  background-attachment:fixed;
}
a{color:inherit;text-decoration:none}
button{font-family:var(--font);cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}
input,select,textarea{font-family:var(--font);font-size:14px;color:var(--text)}
ol,ul{list-style:none}

/* ---------- 通用组件 ---------- */
.card{
  background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.82));
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.btn-primary{
  background:var(--grad);background-size:160% 160%;
  color:#fff;border-radius:var(--radius-s);
  padding:9px 20px;font-weight:600;transition:transform .12s,box-shadow .22s,background-position .4s;
  white-space:nowrap;
  box-shadow:0 6px 16px rgba(124,58,237,.32), inset 0 1px 0 rgba(255,255,255,.4);
}
.btn-primary:hover{background-position:100% 0;background:var(--grad-2);background-size:160% 160%;box-shadow:0 10px 24px rgba(124,92,252,.40);transform:translateY(-1px)}
.btn-primary:active{transform:scale(.97)}
.btn-ghost{
  background:rgba(255,255,255,.72);border:1px solid var(--border);border-radius:var(--radius-s);
  padding:8px 16px;font-weight:500;transition:border-color .15s,color .15s,box-shadow .18s,transform .12s;
  white-space:nowrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary-d);box-shadow:0 4px 12px rgba(124,58,237,.12)}
.btn-ghost:active{transform:scale(.97)}
.btn-sm{padding:6px 15px;font-size:13px}
.icon-btn{
  width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;
  font-size:17px;transition:background .15s;
}
.icon-btn:hover{background:var(--primary-l)}
.danger{color:var(--up)!important}
.tip{font-size:12px;color:var(--text-3);margin-top:10px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{
  padding:6px 15px;border-radius:999px;background:rgba(255,255,255,.7);color:var(--text-2);
  font-size:13px;transition:all .15s;border:1px solid var(--border);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}
.chips button:hover{color:var(--primary);border-color:rgba(124,58,237,.3)}
.chips button.on{background:var(--grad);color:#fff;border-color:transparent;font-weight:600;box-shadow:0 4px 12px rgba(124,58,237,.28)}
.seg{display:inline-flex;background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:11px;padding:3px;box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.seg button{padding:6px 15px;border-radius:9px;font-size:13px;color:var(--text-2);transition:all .15s}
.seg button.on{background:var(--grad);color:#fff;font-weight:600;box-shadow:0 4px 12px rgba(124,58,237,.3)}
.file-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.file-chips.grow{flex:1;margin-top:0}
.file-chip{
  display:inline-flex;align-items:center;gap:6px;background:var(--primary-l);
  color:var(--primary-d);border-radius:9px;padding:4px 10px;font-size:12px;max-width:240px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}
.file-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-chip button{font-size:11px;color:var(--primary-d);opacity:.7;flex-shrink:0}
.file-chip button:hover{opacity:1}
/* 开关 */
.switch{position:relative;width:44px;height:25px;flex-shrink:0;cursor:pointer}
.switch input{opacity:0;width:0;height:0}
.switch i{
  position:absolute;inset:0;background:#CFD7E2;border-radius:99px;transition:background .2s;
  box-shadow:inset 0 1px 3px rgba(16,24,40,.18);
}
.switch i::after{
  content:"";position:absolute;left:3px;top:3px;width:19px;height:19px;border-radius:50%;
  background:#fff;transition:transform .2s;box-shadow:0 1px 4px rgba(0,0,0,.28);
}
.switch input:checked + i{background:var(--grad)}
.switch input:checked + i::after{transform:translateX(19px)}
input[type=text],input[type=password],select,textarea{
  border:1px solid var(--border);border-radius:var(--radius-s);
  padding:10px 13px;background:rgba(255,255,255,.85);outline:none;transition:border-color .15s,box-shadow .15s;
  width:100%;box-shadow:inset 0 1px 2px rgba(16,24,40,.03);
}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-l), 0 4px 12px rgba(124,58,237,.12)}
textarea{resize:vertical}
label{display:block;font-size:13px;font-weight:600;color:var(--text-2)}
label select,label input{margin-top:6px;font-weight:400;color:var(--text)}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}

/* ---------- 顶部：浏览器式窗口 ---------- */
.chrome{
  position:sticky;top:0;z-index:60;
  background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(240,244,250,.72));
  backdrop-filter:blur(22px) saturate(160%);
  -webkit-backdrop-filter:blur(22px) saturate(160%);
  border-bottom:1px solid var(--hair);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 8px 28px rgba(16,24,40,.08);
}
.chrome::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2.5px;z-index:2;
  background:linear-gradient(90deg,var(--primary),#A855F7 38%,var(--accent2) 72%,var(--accent3));
}
.tabstrip{
  display:flex;align-items:flex-end;gap:6px;height:42px;padding:8px 10px 0;
}
.tab{
  display:flex;align-items:center;gap:8px;max-width:260px;min-width:150px;
  background:rgba(255,255,255,.7);border:1px solid rgba(20,32,48,.1);border-bottom:none;
  border-radius:11px 11px 0 0;padding:0 10px;height:34px;font-size:12.5px;
  box-shadow:0 -2px 10px rgba(16,24,40,.05);
  transition:background .15s,box-shadow .15s;
}
.tab:hover{background:rgba(255,255,255,.92)}
.tab.active{font-weight:600;background:#fff;box-shadow:0 -4px 14px rgba(124,58,237,.16), inset 0 2px 0 var(--primary)}
.tab-fav{
  width:18px;height:18px;border-radius:5px;background:var(--grad);color:#fff;
  font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 1px 4px rgba(124,58,237,.5);
}
.tab-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tab-x{color:var(--text-3);font-size:11px}
.newtab{
  width:28px;height:28px;border-radius:9px;color:var(--text-2);font-size:15px;
  margin-bottom:3px;flex-shrink:0;transition:background .15s;
}
.newtab:hover{background:rgba(124,58,237,.14);color:var(--primary-d)}
/* 窗控按钮（仿 macOS 红黄绿圆点） */
.win-controls{margin-left:auto;display:flex;align-items:center;gap:8px;padding:0 4px}
.win-controls button{
  width:13px;height:13px;border-radius:50%;padding:0;font-size:0;
  border:1px solid rgba(0,0,0,.06);transition:filter .15s,transform .15s;
}
.win-controls button:hover{filter:brightness(.92);transform:scale(1.08)}
.win-controls button[data-win=min]{background:#FFBD44}
.win-controls button[data-win=max]{background:#28C840}
.win-controls .wc-close{background:#FF5F57}
.win-controls .wc-close:hover{background:#E23B32}
.toolbar{
  display:flex;align-items:center;gap:8px;height:54px;padding:0 12px;
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(250,252,254,.78));
  border-top:1px solid rgba(255,255,255,.6);
  box-shadow:0 4px 16px rgba(16,24,40,.05);
}
.tbtn{
  min-width:34px;height:34px;border-radius:10px;font-size:15px;color:var(--text-2);
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:background .15s,color .15s,transform .1s,box-shadow .15s;
}
.tbtn:hover{background:var(--primary-l);color:var(--primary-d);box-shadow:0 3px 8px rgba(124,58,237,.12)}
.tbtn:active{transform:scale(.92)}
.nav-toggle{display:none;font-size:19px}
.addr{
  position:relative;flex:1;display:flex;align-items:center;gap:8px;min-width:0;
  background:rgba(255,255,255,.92);
  border:1.5px solid rgba(20,32,48,.12);border-radius:999px;
  padding:3px 6px 3px 14px;
  box-shadow:inset 0 1px 2px rgba(16,24,40,.04), 0 2px 8px rgba(16,24,40,.04);
  transition:border-color .15s,box-shadow .15s,background .15s;
  max-width:760px;margin:0 auto;
}
.addr:focus-within{
  border-color:var(--primary);background:#fff;
  box-shadow:0 0 0 4px var(--primary-l),0 6px 18px rgba(124,58,237,.20);
}
.addr.ext{border-color:#F2B100;box-shadow:0 0 0 4px rgba(242,177,0,.20),0 4px 14px rgba(242,177,0,.18)}
.addr.ext #globalSearch{color:#8a6d00}
.lock{font-size:13px;opacity:.7;flex-shrink:0;cursor:default;user-select:none}
#globalSearch{flex:1;border:none;background:none;outline:none;font-size:13.5px;padding:7px 0;min-width:0;color:var(--text)}
#globalSearch::placeholder{color:var(--text-3)}
.attach-btn{font-size:15px;width:32px;height:32px;border-radius:50%;flex-shrink:0;transition:background .15s}
.attach-btn:hover{background:var(--primary-l)}
.addr-star{
  width:32px;height:32px;border-radius:50%;font-size:16px;color:var(--text-3);
  flex-shrink:0;transition:background .15s,color .15s,transform .15s;
}
.addr-star:hover{background:var(--primary-l);color:var(--primary-d)}
.addr-star.on{color:#F5A623}
.addr-star:active{transform:scale(.9)}
.topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:4px}
.user-box{position:relative}
.avatar{
  width:36px;height:36px;border-radius:50%;background:var(--grad);
  color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 12px rgba(124,58,237,.4), inset 0 1px 0 rgba(255,255,255,.4);
}
.user-menu{
  position:absolute;right:0;top:46px;background:rgba(255,255,255,.96);border:1px solid var(--border);
  border-radius:14px;box-shadow:var(--shadow-h);padding:8px;min-width:170px;z-index:70;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.user-menu-name{font-size:13px;font-weight:700;padding:6px 10px 8px;border-bottom:1px solid var(--border);margin-bottom:6px}
.user-menu button{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:9px;font-size:13px;transition:background .15s}
.user-menu button:hover{background:var(--primary-l)}

/* ---------- 三栏布局 ---------- */
.layout{
  max-width:1480px;margin:0 auto;padding:18px;
  display:grid;gap:18px;align-items:start;
  grid-template-columns:210px minmax(0,1fr) 322px;
  grid-template-areas:"nav main hot";
}
.side-nav{grid-area:nav;position:sticky;top:78px}
.main{grid-area:main;min-width:0}
.side-right{grid-area:hot;position:sticky;top:78px}

/* 左侧导航 + 折叠开关 */
.side-toggle{
  display:flex;align-items:center;gap:10px;width:100%;
  margin-bottom:9px;padding:10px 13px;border-radius:13px;
  font-size:13px;font-weight:600;color:var(--primary-d);
  background:linear-gradient(135deg, rgba(124,58,237,.14), rgba(168,85,247,.10));
  border:1px solid rgba(124,58,237,.22);
  box-shadow:0 4px 12px rgba(124,58,237,.10), inset 0 1px 0 rgba(255,255,255,.6);
  transition:background .15s,transform .12s,box-shadow .15s;
}
.side-toggle:hover{background:linear-gradient(135deg, rgba(124,58,237,.22), rgba(168,85,247,.16));transform:translateY(-1px);box-shadow:0 8px 18px rgba(124,58,237,.18)}
.side-toggle-ico{font-size:15px;width:22px;text-align:center;flex-shrink:0;transition:transform .25s;font-weight:800}
.side-toggle-tx{white-space:nowrap;overflow:hidden}
/* 收起态（仅桌面三栏生效，平板/手机由媒体查询覆盖） */
@media (min-width:1200px){
  body.nav-min .layout{grid-template-columns:66px minmax(0,1fr) 322px}
  body.nav-min .side-toggle{justify-content:center;padding:10px 0}
  body.nav-min .side-toggle-tx{display:none}
  body.nav-min .side-toggle-ico{transform:rotate(180deg)}
  body.nav-min .nav-list button{justify-content:center;padding:11px 0}
  body.nav-min .nav-list button .nav-tx{display:none}
  body.nav-min .nav-ico{font-size:19px}
  body.nav-min .nav-list{padding:8px 6px}
}
.nav-list{
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.82));border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow);padding:10px;display:flex;flex-direction:column;gap:3px;
  max-height:calc(100dvh - 100px);overflow-y:auto;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.nav-list button{
  display:flex;align-items:center;gap:11px;width:100%;text-align:left;
  padding:10px 13px;border-radius:11px;font-size:14px;color:var(--text-2);
  transition:background .15s,color .15s,transform .12s;
}
.nav-list button:hover{background:var(--primary-l);color:var(--primary-d);transform:translateX(2px)}
.nav-list button.on{
  background:var(--grad);color:#fff;font-weight:600;
  box-shadow:0 8px 18px rgba(124,58,237,.35), inset 0 1px 0 rgba(255,255,255,.3);
}
.nav-ico{font-size:16px;width:22px;text-align:center;flex-shrink:0}

/* ---------- 首页 ---------- */
.panel{display:flex;flex-direction:column;gap:16px;animation:fadeUp .25s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.hero{
  position:relative;overflow:hidden;
  padding:30px 34px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  background:
    radial-gradient(720px 340px at 95% -40%, rgba(0,196,203,.30), transparent 60%),
    radial-gradient(520px 320px at -4% 130%, rgba(124,92,252,.18), transparent 60%),
    linear-gradient(120deg,#F6F0FF 0%, #F2FAF8 45%, #F1EEFF 100%);
  border:1px solid rgba(124,58,237,.18);
  box-shadow:0 20px 50px rgba(124,58,237,.14), inset 0 1px 0 rgba(255,255,255,.75);
  border-radius:var(--radius);
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(124,58,237,.10) 1px,transparent 1px);
  background-size:22px 22px;
  -webkit-mask-image:linear-gradient(120deg,#000,transparent 70%);
  mask-image:linear-gradient(120deg,#000,transparent 70%);
}
.hero::before{
  content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(124,92,252,.35), transparent 70%);
  filter:blur(8px);pointer-events:none;
}
.hero-text{position:relative;z-index:1}
.hero-text h1{
  font-size:25px;font-weight:800;letter-spacing:.3px;
  background:linear-gradient(120deg,#0E7C82,#7C3AED 55%,#7C5CFC);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero-sub{color:var(--text-2);margin-top:6px;font-size:13.5px}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:1}

/* 大号 AI 搜索框（首页 · 置顶 · 深色 hero） */
.big-search{
  position:relative;padding:18px 20px;
  background:linear-gradient(120deg,#241B54 0%,#3A2A7A 48%,#1E2A5E 100%);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 26px 60px rgba(40,27,94,.34), inset 0 1px 0 rgba(255,255,255,.12);
  color:#fff;
}
.big-search .bs-row{
  display:flex;align-items:center;gap:10px;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);
  border-radius:14px;padding:6px 8px 6px 14px;backdrop-filter:blur(6px);
}
.big-search .bs-ico{color:#fff;opacity:.85}
#homeSearch{color:#fff}
#homeSearch::placeholder{color:rgba(255,255,255,.62)}
.big-search .bs-btn{box-shadow:0 8px 20px rgba(0,0,0,.25)}
.big-search .bs-quick{color:rgba(255,255,255,.72)}
.big-search .bs-quick button{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.92)}
.big-search .bs-quick button:hover{background:rgba(255,255,255,.24);color:#fff;border-color:rgba(255,255,255,.40)}
.big-search .btn-ghost{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);color:#fff}
.big-search .btn-ghost:hover{border-color:#fff;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.22)}
.big-search .eng-bar{border-top:1px dashed rgba(255,255,255,.18)}
.big-search .eng-lbl{color:#fff;background:rgba(255,255,255,.16)}
.big-search .eng-chip{color:rgba(255,255,255,.90);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.20)}
.big-search .eng-chip:hover{color:#fff;background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.40)}
.big-search .eng-hint{color:rgba(255,255,255,.50)}
.bs-row{display:flex;align-items:center;gap:10px}
.bs-ico{font-size:19px;opacity:.6}
#homeSearch{
  flex:1;border:none;background:none;outline:none;font-size:15.5px;padding:10px 0;min-width:0;color:var(--text);
}
#homeSearch::placeholder{color:var(--text-3)}
.bs-btn{padding:10px 26px;font-size:14px;border-radius:12px}
.bs-quick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;font-size:12px;color:var(--text-3)}
.bs-quick button{background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:999px;padding:5px 14px;font-size:12.5px;color:var(--text-2);transition:all .15s}
.bs-quick button:hover{background:var(--primary-l);color:var(--primary-d);border-color:rgba(124,58,237,.3)}

/* 分类栏 */
.cat-bar{display:flex;gap:4px;padding:9px 14px;overflow-x:auto;scrollbar-width:none}
.cat-bar::-webkit-scrollbar{display:none}
.cat-bar button{
  padding:8px 17px;border-radius:11px;font-size:14px;color:var(--text-2);white-space:nowrap;
  transition:all .15s;background:rgba(255,255,255,.6);border:1px solid transparent;
}
.cat-bar button:hover{color:var(--primary-d);background:var(--primary-l)}
.cat-bar button.on{color:#fff;font-weight:700;background:var(--grad);box-shadow:0 6px 16px rgba(124,58,237,.30)}
.cat-bar button.on::after{display:none}

/* 应用宫格 */
.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:13px}
.app-card{
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(180deg,#ffffff,#FBFEFE);
  border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:0 1px 2px rgba(16,24,40,.04), 0 8px 20px rgba(16,24,40,.05), inset 0 1px 0 rgba(255,255,255,.7);
  padding:14px;text-align:left;
  transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s,border-color .18s;
  min-width:0;position:relative;overflow:hidden;
}
.app-card::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--grad);opacity:.35;transition:opacity .18s,width .18s;
}
.app-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-h);border-color:rgba(124,58,237,.35)}
.app-card:hover::before{opacity:1;width:4px}
.app-card:hover .app-ico{transform:scale(1.08);box-shadow:0 6px 16px rgba(124,58,237,.3)}
.app-ico{
  width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  font-size:22px;flex-shrink:0;box-shadow:0 3px 8px rgba(16,24,40,.12), inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .18s,box-shadow .18s;
}
/* ---------- 原创图标单元（字标 + 可选 favicon 覆盖层） ---------- */
.ico-unit{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;border-radius:13px}
.ico-mark{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  border-radius:inherit;color:#fff;font-weight:800;letter-spacing:0;
  box-shadow:0 3px 8px rgba(16,24,40,.14), inset 0 1px 0 rgba(255,255,255,.38), inset 0 -1px 0 rgba(0,0,0,.06);
  text-shadow:0 1px 3px rgba(0,0,0,.22);user-select:none;
}
.ico-unit.md .ico-mark{font-size:22px}
.ico-unit.sm .ico-mark{font-size:15px}
.ico-unit.lg .ico-mark{font-size:30px}
.ico-unit .ico-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;border-radius:inherit}
.ico-unit.app-ico{width:46px;height:46px}
.ico-unit.app-ico.sm{width:38px;height:38px}
.ico-unit.sw-ico{width:30px;height:30px;border-radius:9px}
.ico-unit.sh-ico{width:26px;height:26px;border-radius:8px}
.app-card:hover .ico-unit.app-ico{transform:scale(1.08);box-shadow:0 6px 16px rgba(124,58,237,.3)}
.ico-unit.app-ico,.ico-unit.sw-ico{transition:transform .18s,box-shadow .18s}
.app-meta{min-width:0;display:flex;flex-direction:column}
.app-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-desc{font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 首页小组件 */
.widget-row{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
.widget{padding:18px;min-height:184px}
.widget h3{font-size:14px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}
.widget h3 .more{font-size:12px;color:var(--primary);font-weight:500}
.wx-now{display:flex;align-items:center;gap:14px}
.wx-now .t{font-size:34px;font-weight:700}
.wx-now .ic{font-size:38px}
.wx-meta{font-size:12px;color:var(--text-2);margin-top:2px}
.mini-stock-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed var(--border);font-size:13px}
.mini-stock-row:last-child{border-bottom:none}
.up{color:var(--up)}
.down{color:var(--down)}
.flat{color:var(--text-2)}
.mini-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;font-size:11px;text-align:center}
.mini-cal .d{color:var(--text-3);padding:2px 0}
.mini-cal .cell{padding:3px 0;border-radius:6px;color:var(--text-2)}
.mini-cal .cell.today{background:var(--grad);color:#fff;font-weight:700;box-shadow:0 4px 10px rgba(124,58,237,.3)}
.mini-cal .cell.hol{color:var(--up);font-weight:600}
.mini-cal .cell.wk{color:#C0705A}

/* ---------- 功能面板 ---------- */
.panel-head{position:relative;padding-left:16px;margin-bottom:2px}
.panel-head::before{
  content:"";position:absolute;left:0;top:2px;bottom:2px;width:5px;border-radius:3px;
  background:var(--grad-2);box-shadow:0 1px 5px rgba(124,92,252,.45);
}
.panel-head h2{font-size:21px;font-weight:800;letter-spacing:.3px}
.panel-head p{color:var(--text-2);font-size:13px;margin-top:3px}

/* 分类站点卡片（首页就地展开） */
.sitelink-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.sitelink-head strong{font-size:14.5px}
.sitelink-head span{font-size:12px;color:var(--text-3)}

/* 精选引导条 */
.featured-banner{
  display:flex;align-items:center;gap:14px;padding:18px 20px;
  background:
    radial-gradient(420px 200px at 95% -40%, rgba(0,196,203,.28), transparent 60%),
    linear-gradient(120deg,#F6F0FF,#F2FAF8 60%,#F1EEFF);
  border:1px solid rgba(124,58,237,.18);border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
}
.featured-banner .fb-ico{font-size:30px;filter:drop-shadow(0 2px 4px rgba(124,58,237,.3))}
.featured-banner strong{font-size:15px;display:block}
.featured-banner p{font-size:12.5px;color:var(--text-2);margin-top:2px}
.ai-search-box{padding:18px;display:flex;flex-direction:column;gap:12px}
.ai-search-box textarea{border:none;background:#F5F8FB;font-size:14px;padding:13px;box-shadow:inset 0 1px 3px rgba(16,24,40,.05)}
.ai-attach-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ai-quick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--text-3)}
.ai-quick button{
  background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:999px;padding:5px 13px;font-size:12px;color:var(--text-2);transition:all .15s;
}
.ai-quick button:hover{background:var(--primary-l);color:var(--primary-d);border-color:rgba(124,58,237,.3)}
.ai-answer{padding:20px}
.ai-thinking{display:flex;align-items:center;gap:6px;color:var(--text-2);font-size:13px;padding:8px 0}
.ai-thinking .dot{width:6px;height:6px;border-radius:50%;background:var(--primary);animation:blink 1.2s infinite}
.ai-thinking .dot:nth-child(2){animation-delay:.2s}
.ai-thinking .dot:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.ai-answer-head{display:flex;align-items:center;gap:10px;margin:6px 0 10px}
.ai-badge{
  background:var(--grad);color:#fff;font-size:12px;font-weight:700;
  padding:3px 11px;border-radius:999px;box-shadow:0 3px 8px rgba(124,58,237,.3);
}
.ai-src{font-size:12px;color:var(--text-3)}
.ai-answer-body{font-size:14px;line-height:1.85;white-space:pre-wrap;word-break:break-word}
.ai-answer-body h4{font-size:15px;margin:10px 0 4px;color:var(--primary-d)}
.ai-answer-body li{margin-left:18px;list-style:disc}
.ai-files-analysis{margin-top:14px;border-top:1px dashed var(--border);padding-top:12px;display:grid;gap:10px}
.fa-card{background:#F8FAFB;border:1px solid var(--border);border-radius:12px;padding:12px;font-size:13px}
.fa-card b{font-size:13px}
.fa-meta{color:var(--text-3);font-size:12px;margin-top:2px}
.fa-table{margin-top:8px;overflow-x:auto}
.ai-answer-actions{display:flex;gap:10px;margin-top:14px}

/* AI 写作 */
.write-box{padding:18px;display:flex;flex-direction:column;gap:14px}
.write-box .btn-primary{align-self:flex-start}
.write-output{padding:18px}
.write-output-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px;flex-wrap:wrap}
.write-output-head div{display:flex;gap:8px}
.write-output-body{
  white-space:pre-wrap;line-height:1.9;font-size:14px;background:#F8FAFB;
  border-radius:12px;padding:18px;min-height:180px;border:1px solid var(--border);
}

/* 扫描王 */
.scan-box{padding:18px}
.scan-drop{
  border:2px dashed rgba(124,58,237,.35);border-radius:14px;padding:40px 16px;text-align:center;
  color:var(--text-2);cursor:pointer;transition:border-color .15s,background .15s;background:rgba(255,255,255,.6);
}
.scan-drop:hover,.scan-drop.over{border-color:var(--primary);background:var(--primary-l);color:var(--primary-d)}
.scan-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:13px;color:var(--text-2)}
.scan-controls label{display:flex;align-items:center;gap:8px;font-weight:500}
.scan-controls input[type=range]{width:130px;accent-color:var(--primary)}
.scan-controls .ck{flex-direction:row}
.scan-preview{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.scan-preview figure{background:#F2F4F7;border-radius:12px;padding:10px;text-align:center}
.scan-preview figcaption{font-size:12px;color:var(--text-2);margin-bottom:8px}
.scan-preview canvas{max-width:100%;height:auto;border-radius:8px;background:#fff}
.scan-info{margin-top:10px;font-size:12px;color:var(--text-3)}

/* 格式转换 */
.convert-box{padding:18px}
.convert-row{display:flex;gap:12px;align-items:flex-end;margin-top:14px;flex-wrap:wrap}
.convert-row label{min-width:220px}
.convert-result{margin-top:14px;background:#F8FAFB;border:1px solid var(--border);border-radius:12px;padding:14px;font-size:13px}
.convert-result .row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px dashed var(--border)}
.convert-result .row:last-child{border:none}
.convert-result .row b{color:var(--primary-d)}

/* 数据分析 */
.data-box{padding:18px;display:flex;flex-direction:column;gap:14px}
.data-actions{display:flex;gap:10px}
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.stat-card{
  background:linear-gradient(135deg,#fff,#F4FAFB);border:1px solid var(--border);border-radius:12px;padding:13px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
}
.stat-card .k{font-size:12px;color:var(--text-3)}
.stat-card .v{font-size:19px;font-weight:700;margin-top:2px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.data-chart-bar{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.data-chart-bar label{min-width:140px}
.chart-holder{background:linear-gradient(180deg,#fff,#FBFDFE);border:1px solid var(--border);border-radius:12px;padding:12px;height:320px;box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.chart-holder canvas{width:100%;height:100%;display:block}
.table-wrap{overflow:auto;max-height:380px;border:1px solid var(--border);border-radius:12px}
table{width:100%;border-collapse:collapse;font-size:13px;background:#fff}
th,td{padding:9px 13px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}
th{background:#F4F7FB;font-weight:600;color:var(--text-2);position:sticky;top:0;z-index:1}
tr:hover td{background:#FAFDFD}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}

/* 新闻 */
.news-box{padding:18px;display:flex;flex-direction:column;gap:14px}
.news-tools{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.news-tools input{max-width:240px}
.news-list{display:flex;flex-direction:column;gap:11px}
.news-item{
  display:flex;gap:12px;padding:15px;border:1px solid var(--border);border-radius:14px;
  background:rgba(255,255,255,.85);transition:border-color .15s,box-shadow .15s,transform .12s;cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}
.news-item:hover{border-color:rgba(124,58,237,.35);box-shadow:var(--shadow);transform:translateY(-1px)}
.news-item .rank{
  width:26px;height:26px;border-radius:9px;background:rgba(255,255,255,.7);color:var(--text-3);
  font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--border);
}
.news-item .body{flex:1;min-width:0}
.news-item .t{font-weight:600;font-size:14.5px}
.news-item .s{color:var(--text-2);font-size:12.5px;margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-item .m{display:flex;gap:10px;margin-top:6px;font-size:12px;color:var(--text-3);align-items:center;flex-wrap:wrap}
.tag{background:var(--primary-l);color:var(--primary-d);border-radius:6px;padding:1px 8px;font-size:11px;font-weight:600}
.tag.real{background:#E6F7EF;color:#1EAA6B;border:1px solid #B7E8D2}
.star-btn{font-size:16px;color:#C9CFD8;flex-shrink:0;align-self:flex-start;padding:2px;transition:color .15s,transform .15s}
.star-btn:hover{transform:scale(1.1)}
.star-btn.on{color:#F5A623}

/* 股票 */
.stock-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}
.stock-side{padding:12px}
.stock-side input{margin-bottom:10px}
.stock-list{display:flex;flex-direction:column;gap:2px;max-height:560px;overflow-y:auto}
.stock-item{
  display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:9px 10px;border-radius:11px;width:100%;text-align:left;transition:background .15s;
}
.stock-item:hover{background:var(--primary-l)}
.stock-item.on{background:var(--primary-l);box-shadow:inset 0 0 0 1px rgba(124,58,237,.25)}
.stock-item .nm{font-weight:600;font-size:13px}
.stock-item .cd{font-size:11px;color:var(--text-3)}
.stock-item .pr{text-align:right;font-variant-numeric:tabular-nums}
.stock-item .pr .p{font-weight:700;font-size:13px}
.stock-item .pr .c{font-size:11px}
.stock-item canvas{width:64px;height:26px}
.stock-main{padding:20px;min-height:480px}
.st-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.st-title .nm{font-size:20px;font-weight:700}
.st-title .cd{color:var(--text-3);font-size:12px}
.st-price{display:flex;align-items:baseline;gap:14px;margin:8px 0 14px;flex-wrap:wrap}
.st-metrics{display:flex;flex-wrap:wrap;gap:6px 14px;margin:-6px 0 12px;font-size:12px;color:var(--text-2)}
.st-metrics b{color:var(--text-1);font-weight:600;font-variant-numeric:tabular-nums;margin-right:3px}
.st-price .p{font-size:32px;font-weight:800;font-variant-numeric:tabular-nums}
.st-price .c{font-size:14px;font-weight:600}
.st-tabs{display:flex;gap:6px;margin-bottom:10px;align-items:center;flex-wrap:wrap}
.st-chart{height:340px;background:linear-gradient(180deg,#fff,#FBFDFE);border:1px solid var(--border);border-radius:12px;padding:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.st-chart canvas{width:100%;height:100%;display:block}
.st-order{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.st-order table{font-size:12px}
.st-order th{background:#fff}
.st-actions{display:flex;gap:10px;margin-top:14px}

/* 快递 */
.express-box{padding:18px}
.express-form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.express-form label{min-width:200px}
.ex-card{margin-top:16px;border:1px solid var(--border);border-radius:14px;padding:18px;background:linear-gradient(180deg,#fff,#FBFDFE);box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.ex-status{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;margin-bottom:4px}
.live-badge{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#E6F7F0;color:#0A8F5B;border:1px solid #9FE3C6}
.ex-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin:12px 0;font-size:13px}
.ex-meta .k{color:var(--text-3);font-size:12px}
.timeline{margin-top:12px;border-left:2px solid var(--primary-l);padding-left:18px;display:grid;gap:14px}
.tl-item{position:relative;font-size:13px}
.tl-item::before{
  content:"";position:absolute;left:-24px;top:4px;width:11px;height:11px;border-radius:50%;
  background:#fff;border:2px solid var(--primary-l);
}
.tl-item.first::before{background:var(--grad);border-color:var(--primary)}
.tl-item .tm{color:var(--text-3);font-size:12px}
.tl-item.first .tx{font-weight:600;color:var(--primary-d)}

/* 天气日历 */
.weather-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;align-items:start}
.weather-now{padding:22px}
.wx-city{font-size:15px;font-weight:700}
.wx-big{display:flex;align-items:center;gap:18px;margin:10px 0}
.wx-big .ic{font-size:58px;filter:drop-shadow(0 4px 8px rgba(124,58,237,.25))}
.wx-big .t{font-size:46px;font-weight:800;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.wx-big .d{color:var(--text-2);font-size:13px}
.wx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.wx-grid .cell{background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:11px;padding:11px;text-align:center}
.wx-grid .k{font-size:11px;color:var(--text-3)}
.wx-grid .v{font-weight:700;font-size:14px;margin-top:2px}
.weather-side{padding:18px}
.weather-city-row{display:flex;gap:12px;align-items:flex-end;margin-bottom:12px}
.weather-city-row label{flex:1}
.wx-hours{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}
.wx-hours::-webkit-scrollbar{display:none}
.wx-hour{min-width:58px;text-align:center;background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:11px;padding:9px 4px;font-size:12px;flex-shrink:0}
.wx-hour .ic{font-size:20px;margin:3px 0}
.wx-days{display:grid;gap:6px;margin-top:12px}
.wx-day{display:grid;grid-template-columns:70px 34px 1fr auto;gap:8px;align-items:center;font-size:13px;padding:8px 11px;background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:11px}
.calendar-card{padding:20px}
.cal-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.cal-head strong{font-size:16px;min-width:120px;text-align:center;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.cal-select{height:32px;border-radius:9px;border:1px solid var(--border);background:rgba(255,255,255,.8);color:var(--text);font-size:12.5px;font-weight:600;padding:0 8px;cursor:pointer;font-family:inherit}
.cal-select:hover{border-color:rgba(124,58,237,.35)}
.cal-count{font-size:12px;color:var(--accent2);font-weight:700;white-space:nowrap}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}
.cal-grid .wd{text-align:center;font-size:12px;color:var(--text-3);padding:6px 0;font-weight:600;position:relative}
.cal-grid .wd.we{color:var(--hol-d)}
.cal-grid .wd-xiu{display:inline-block;margin-left:3px;font-size:9px;font-style:normal;background:rgba(224,57,62,.14);color:var(--hol-d);border-radius:4px;padding:0 3px;transform:translateY(-1px)}

/* 选中日 hero 大数字 + 农历详情 */
.cal-hero{
  display:flex;align-items:center;gap:18px;margin-bottom:14px;padding:20px 22px;border-radius:18px;position:relative;overflow:hidden;
  background:
    radial-gradient(120% 150% at 0% 0%, rgba(124,58,237,.18), transparent 55%),
    radial-gradient(120% 150% at 100% 100%, rgba(124,92,255,.18), transparent 55%),
    linear-gradient(135deg, rgba(255,255,255,.78), rgba(255,255,255,.42));
  border:1px solid rgba(255,255,255,.6);box-shadow:0 10px 30px rgba(20,40,80,.10), inset 0 1px 0 rgba(255,255,255,.7);
}
.cal-hero.cn{
  background:
    radial-gradient(120% 150% at 0% 0%, rgba(229,57,53,.26), transparent 55%),
    radial-gradient(120% 150% at 100% 100%, rgba(255,138,91,.18), transparent 55%),
    linear-gradient(135deg, rgba(255,238,238,.92), rgba(255,246,244,.58));
  border-color:rgba(229,57,53,.22);
}
.hero-num{font-size:64px;line-height:1;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;min-width:74px;text-align:center;text-shadow:0 6px 18px rgba(124,58,237,.18)}
.cal-hero.cn .hero-num{background:linear-gradient(135deg,#E53935,#B71C1C);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 6px 18px rgba(183,28,28,.18)}
.hero-meta{flex:1;min-width:0}
.hero-date{font-size:14px;font-weight:700;color:var(--text-1)}
.hero-lunar{font-size:13px;color:var(--text-2);margin-top:3px}
.hero-fest{display:inline-block;margin-top:8px;font-size:13px;font-weight:700;padding:4px 12px;border-radius:999px;background:linear-gradient(135deg,#8B5CF6,#A855F7);color:#fff;box-shadow:0 6px 16px rgba(139,92,246,.3)}
.hero-fest.cn{background:linear-gradient(135deg,#E53935,#C62828);box-shadow:0 6px 16px rgba(198,40,40,.32)}
.hero-fest.stat{background:linear-gradient(135deg,#D32F2F,#8E0000);box-shadow:0 6px 18px rgba(142,0,0,.34)}
.hero-fest.term{background:rgba(124,58,237,.12);color:var(--primary-d);box-shadow:none}
.hero-fest.work{background:rgba(255,138,91,.16);color:#C24A0A;box-shadow:none}
.hero-fest + .hero-fest{margin-left:0}

/* 日历格 */
.cal-cell{
  aspect-ratio:1;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-size:14px;font-weight:600;background:rgba(255,255,255,.72);color:var(--text-1);gap:2px;transition:all .16s;position:relative;
  border:1px solid rgba(255,255,255,.6);box-shadow:0 2px 6px rgba(20,40,80,.05);cursor:pointer;padding:0;
}
.cal-cell:hover{transform:translateY(-2px);background:#fff;border-color:rgba(124,58,237,.35);box-shadow:0 8px 18px rgba(124,58,237,.18)}
.cal-cell .d-num{line-height:1}
.cal-cell .d-sub{font-size:9px;font-weight:600;line-height:1;color:var(--text-3);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px;transform:scale(.96)}
/* 周末（固定双休）：淡红底 + 红字 */
.cal-cell.we{background:rgba(224,57,62,.08);border-color:rgba(224,57,62,.18)}
.cal-cell.we .d-num{color:#D3343A}
.cal-cell.we .d-sub{color:#C0392B}
/* 二十四节气：淡紫（与节假日的红区分开） */
.cal-cell.term{background:rgba(124,58,237,.09)}
.cal-cell.term .d-sub{color:var(--primary-d);font-weight:700}
/* 西方节日：中性浅紫底 */
.cal-cell.fest{background:rgba(124,92,252,.09)}
.cal-cell.fest .d-sub{color:var(--accent2);font-weight:700}
/* 中国传统节日（非法定）：中红，明显凸显 */
.cal-cell.fest-cn{
  background:linear-gradient(160deg, rgba(229,57,53,.24), rgba(229,57,53,.13));
  border-color:rgba(229,57,53,.42);box-shadow:0 4px 12px rgba(229,57,53,.16);
}
.cal-cell.fest-cn .d-num{color:#C62828;font-weight:800}
.cal-cell.fest-cn .d-sub{color:#C62828;font-weight:800}
/* 法定节假日：最深 —— 实心红底 + 白字 */
.cal-cell.hol-stat{
  background:linear-gradient(160deg,#E64545,#C1272D);
  border-color:#A51C22;box-shadow:0 6px 18px rgba(183,28,28,.34);
}
.cal-cell.hol-stat .d-num{color:#fff;font-weight:800}
.cal-cell.hol-stat .d-sub{color:rgba(255,255,255,.95);font-weight:800}
/* 放假安排筛选 */
.cal-cell.dim{opacity:.26;filter:saturate(.4)}
.cal-cell.hl{outline:2px solid var(--primary);outline-offset:-2px}
.cal-cell.today{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 8px 20px rgba(124,58,237,.35)}
.cal-cell.today .d-num{color:#fff}
.cal-cell.today .d-sub{color:rgba(255,255,255,.92)}
/* 今天若恰逢法定节假日：保留红底，用紫色描边标记“今天” */
.cal-cell.today.hol-stat{
  background:linear-gradient(160deg,#E64545,#A51C22);
  outline:2px solid #7C3AED;outline-offset:1px;
  box-shadow:0 8px 22px rgba(165,28,34,.45);
}
.cal-cell.sel{outline:2px solid var(--accent,#7c5cff);outline-offset:-2px}
.cal-cell.other{opacity:.35;background:transparent;box-shadow:none;border-color:transparent}
.cal-cell .badge{position:absolute;top:3px;right:3px;font-size:8px;line-height:1;font-weight:800;padding:2px 4px;border-radius:6px}
.cal-cell .badge.rest{background:rgba(224,57,62,.16);color:#C62828}
.cal-cell.hol-stat .badge.rest{background:rgba(255,255,255,.30);color:#fff}
.cal-cell.fest-cn .badge.rest{background:rgba(198,40,40,.18);color:#8E0000}
.cal-cell .badge.work{background:rgba(255,138,91,.28);color:#C24A0A}
.cal-cell.today .badge.rest,.cal-cell.today .badge.work{background:rgba(255,255,255,.30);color:#fff}

/* 详情卡 */
.cal-day-info{margin-top:14px;background:rgba(255,255,255,.72);border:1px solid var(--border);border-radius:14px;padding:14px;font-size:13px}
.di-weather{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text-1);padding-bottom:10px;border-bottom:1px dashed var(--border)}
.di-weather .ic{font-size:22px}
.di-weather b{font-size:18px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.di-events{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.ev{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text-2);background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:10px;padding:9px 11px}
.ev-ic{font-size:16px}
.ev-fest{border-color:rgba(229,57,53,.35);background:linear-gradient(135deg,rgba(255,235,235,.82),rgba(255,244,243,.6));color:#C62828;font-weight:600}
.ev-hol{border-color:rgba(229,57,53,.42);background:linear-gradient(135deg,rgba(255,228,228,.9),rgba(255,240,239,.6));color:#8E0000;font-weight:700}
.ev-rest{border-color:rgba(229,57,53,.28);color:#C62828}
.ev-work{border-color:rgba(255,138,91,.38);color:#C24A0A}
.ev-none{color:var(--text-3);justify-content:center;background:transparent}

/* ============================================================
   内容广场（热播剧 / 短剧 / 体育 / 小说 / 娱乐）
   ============================================================ */
.content-plaza{margin-top:18px}
.plaza-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.plaza-head h3{font-size:17px;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.plaza-head p{font-size:12.5px;color:var(--text-3)}
.cp-main{padding:16px 18px;margin-bottom:14px}
.cp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.cp-card{padding:15px 16px}
.cp-card-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.cp-ico{font-size:18px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:var(--primary-l)}
.cp-card-head h4{font-size:15px;font-weight:800;flex:1}
.cp-more{font-size:12px;color:var(--accent2);font-weight:700;cursor:pointer;white-space:nowrap}
.cp-more:hover{color:var(--primary-d)}
.cp-seg{margin-left:auto}
.cp-feature{display:flex;gap:13px;align-items:stretch;cursor:pointer}
.cp-poster{
  width:132px;min-height:96px;border-radius:14px;flex-shrink:0;position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(16,24,40,.20);
  background:#2A2140;transform:translateZ(0);
}
/* 封面真图（WebP 512²）：淡入，避免加载时闪白块 */
.cp-img{opacity:0}
.cp-img.is-loaded{opacity:1}
.cp-poster .cp-img,.cp-poster .cp-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease,opacity .35s ease}
.cp-feature:hover .cp-poster .cp-img,.cp-feature:hover .cp-poster .cp-art{transform:scale(1.07)}
/* 原创设计封面（无真图时的兜底，仍然是设计稿不是灰块） */
.cp-art{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;border-radius:inherit}
.cp-art::before{
  content:"";position:absolute;top:-28%;right:-22%;width:78%;height:78%;border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.30), transparent 68%);
}
.cp-art::after{
  content:"";position:absolute;bottom:-34%;left:-18%;width:88%;height:82%;border-radius:50%;
  background:radial-gradient(circle, rgba(0,0,0,.22), transparent 70%);
}
.cp-art-ini{position:relative;z-index:2;font-size:30px;font-weight:800;color:#fff;text-shadow:0 3px 10px rgba(0,0,0,.30);letter-spacing:1px}
.cp-art-tag{position:relative;z-index:2;font-size:10px;font-weight:800;color:rgba(255,255,255,.9);background:rgba(0,0,0,.22);border-radius:6px;padding:1px 7px}
.cp-ini{font-size:34px;font-weight:800;color:rgba(255,255,255,.92);text-shadow:0 3px 8px rgba(0,0,0,.18)}
/* 海报底部压字：渐变遮罩 + 剧名，像真正的影视卡片 */
.cp-shade{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,0) 42%, rgba(8,6,18,.55) 78%, rgba(8,6,18,.86) 100%);pointer-events:none}
.cp-poster-title{
  position:absolute;left:8px;right:8px;bottom:7px;z-index:3;
  font-size:12px;font-weight:800;color:#fff;line-height:1.25;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 2px 6px rgba(0,0,0,.55);
}
.cp-hot{
  position:absolute;top:6px;left:6px;z-index:3;font-size:9.5px;font-weight:800;color:#fff;
  background:linear-gradient(135deg, rgba(229,57,53,.92), rgba(255,138,91,.92));
  border-radius:6px;padding:2px 6px;text-align:center;box-shadow:0 3px 8px rgba(0,0,0,.25);
}
.cp-fmeta{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.cp-ftitle{font-size:14.5px;font-weight:800;color:var(--text);line-height:1.35}
.cp-fsub{font-size:12px;color:var(--text-2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-tags{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}
.cp-tag{font-size:10.5px;font-weight:700;color:var(--primary-d);background:var(--primary-l);border-radius:6px;padding:2px 7px}
.cp-tag.alt{color:var(--accent2);background:rgba(124,92,252,.12)}
.cp-rows{margin-top:11px;display:flex;flex-direction:column;gap:7px}
.cp-row{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:11px;background:rgba(255,255,255,.65);border:1px solid var(--border);cursor:pointer;transition:all .15s}
.cp-row:hover{background:#fff;border-color:rgba(124,58,237,.3);transform:translateX(2px);box-shadow:0 4px 12px rgba(124,58,237,.12)}
.cp-thumb{
  width:38px;height:38px;border-radius:9px;flex-shrink:0;position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px;
  box-shadow:0 3px 8px rgba(16,24,40,.16);background:#2A2140;
}
.cp-thumb .cp-img,.cp-thumb .cp-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s ease,opacity .35s ease}
.cp-row:hover .cp-thumb .cp-img,.cp-row:hover .cp-thumb .cp-art{transform:scale(1.10)}
.cp-rtxt{flex:1;min-width:0}
.cp-rtitle{font-size:13px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-rsub{font-size:11.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-rhot{font-size:11px;font-weight:800;color:#D9601F;white-space:nowrap}
.cp-feature-wrap{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}

/* ---------- 真实搜索：引擎条 + 站内直达 ---------- */
.eng-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:11px;padding-top:11px;border-top:1px dashed var(--border)}
.eng-lbl{font-size:11.5px;font-weight:800;color:var(--primary-d);background:var(--primary-l);border-radius:6px;padding:2px 7px;white-space:nowrap}
.eng-chips{display:flex;gap:6px;flex-wrap:wrap}
.eng-chip{
  font-size:12px;font-weight:600;color:var(--text-2);padding:4px 11px;border-radius:999px;
  background:rgba(255,255,255,.8);border:1px solid var(--border);transition:all .15s;
}
.eng-chip:hover{color:var(--primary-d);border-color:rgba(124,58,237,.4);background:#fff;transform:translateY(-1px)}
.eng-chip.on{
  color:#fff;font-weight:700;border-color:transparent;
  background:linear-gradient(135deg,#7C3AED,#A855F7);box-shadow:0 4px 12px rgba(124,58,237,.28);
}
.eng-hint{font-size:11px;color:var(--text-3)}
.site-hits{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}
.sh-head{font-size:12px;font-weight:800;color:var(--text-2);margin-bottom:8px}
.sh-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.sh-item{
  display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:11px;text-align:left;
  background:rgba(255,255,255,.72);border:1px solid var(--border);transition:all .15s;
}
.sh-item:hover{background:#fff;border-color:rgba(124,58,237,.35);transform:translateY(-2px);box-shadow:0 6px 14px rgba(124,58,237,.14)}
.sh-name{font-size:12.5px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.sh-kind{font-size:10px;font-weight:700;color:var(--text-3);background:rgba(20,32,48,.05);border-radius:5px;padding:1px 5px;white-space:nowrap}

/* 外链卡片角标（AI 网页版 / 官方小程序） */
.app-badge{
  position:absolute;top:8px;right:8px;font-size:9.5px;font-weight:800;letter-spacing:.2px;
  color:var(--primary-d);background:rgba(124,58,237,.14);border-radius:6px;padding:2px 6px;white-space:nowrap;
}
.app-card.ext{border-color:rgba(124,58,237,.28)}

/* 名站导航（首页网址墙） */
.sitewall-card{margin-top:16px;padding:14px 16px}
.sitewall-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.sitewall-head strong{font-size:14.5px;font-weight:800}
.sitewall-head span{font-size:11.5px;color:var(--text-3)}
.sitewall{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}
.sw-item{
  display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:10px;text-decoration:none;
  background:rgba(255,255,255,.7);border:1px solid var(--border);transition:all .15s;
}
.sw-item:hover{background:#fff;border-color:rgba(124,58,237,.32);transform:translateY(-1px);box-shadow:0 4px 12px rgba(124,58,237,.14)}
.sw-ico{font-size:15px;line-height:1}
.sw-name{font-size:12px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ============================================================
   计算器 / 记账本 / 笔记
   ============================================================ */
.calc-wrap{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;align-items:start}
.calc-card{padding:18px}
.calc-screen{
  background:linear-gradient(135deg,#0E2A33,#154654);border-radius:14px;padding:14px 16px;text-align:right;
  box-shadow:inset 0 2px 10px rgba(0,0,0,.28);min-height:74px;display:flex;flex-direction:column;justify-content:center;
}
.calc-expr{font-size:13px;color:rgba(255,255,255,.62);min-height:17px;word-break:break-all;font-variant-numeric:tabular-nums}
.calc-out{font-size:30px;font-weight:800;color:#7FE9EE;line-height:1.2;word-break:break-all;font-variant-numeric:tabular-nums}
.calc-pad{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.ck{height:48px;border-radius:12px;border:1px solid var(--border);background:rgba(255,255,255,.75);font-size:17px;font-weight:700;color:var(--text);transition:all .14s}
.ck:hover{background:#fff;border-color:rgba(124,58,237,.3);transform:translateY(-1px)}
.ck.op{color:var(--primary-d);background:var(--primary-l)}
.ck.fn{color:var(--accent2);background:rgba(124,92,252,.10)}
.ck.eq{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 6px 16px rgba(124,58,237,.32)}
.calc-hist-card{padding:16px}
.calc-hist-card h3{font-size:14px;margin-bottom:10px}
.calc-hist{display:flex;flex-direction:column;gap:6px;max-height:330px;overflow:auto}
.ch-item{display:flex;flex-direction:column;align-items:flex-end;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.7);border:1px solid var(--border);text-align:right}
.ch-item:hover{background:var(--primary-l);border-color:rgba(124,58,237,.3)}
.ch-e{font-size:11.5px;color:var(--text-3);word-break:break-all}
.ch-item b{font-size:15px;color:var(--primary-d)}

.ledger-card{padding:18px}
.ledger-form{display:grid;grid-template-columns:110px 1fr 130px 1fr auto;gap:9px;margin-bottom:14px}
.ledger-form input,.ledger-form select{height:38px}
.ledger-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.lgs{background:rgba(255,255,255,.72);border:1px solid var(--border);border-radius:12px;padding:11px;text-align:center}
.lgs .k{font-size:11.5px;color:var(--text-3)}
.lgs .v{font-size:17px;font-weight:800;margin-top:2px;font-variant-numeric:tabular-nums}
.lgs .v.up{color:var(--up)}
.lgs .v.down{color:var(--down)}
.ledger-list{display:flex;flex-direction:column;gap:7px}
.lg-item{display:grid;grid-template-columns:78px 1fr auto 96px 62px;gap:10px;align-items:center;padding:10px 12px;border-radius:11px;background:rgba(255,255,255,.7);border:1px solid var(--border)}
.lg-cat{font-size:12.5px;font-weight:700;color:var(--primary-d);background:var(--primary-l);border-radius:7px;padding:3px 7px;text-align:center}
.lg-note{font-size:13px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lg-amt{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}
.lg-amt.up{color:var(--up)}
.lg-amt.down{color:var(--down)}
.lg-time{font-size:11.5px;color:var(--text-3)}
.lg-item button{font-size:11.5px}

.notes-card{padding:18px}
.notes-form{display:grid;grid-template-columns:1fr;gap:9px;margin-bottom:14px}
.notes-form .btn-primary{justify-self:start;padding:9px 22px}
.notes-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:11px}
.nt-item{background:rgba(255,255,255,.72);border:1px solid var(--border);border-radius:12px;padding:13px;position:relative}
.nt-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}
.nt-head strong{font-size:14px;font-weight:800;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nt-head span{font-size:11.5px;color:var(--text-3);white-space:nowrap}
.nt-body{font-size:13px;color:var(--text-2);white-space:pre-wrap;word-break:break-word;max-height:120px;overflow:auto}
.nt-item button{font-size:11.5px;margin-top:9px}

/* 网盘 */
.drive-box{padding:18px;display:flex;flex-direction:column;gap:14px}
.drive-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
.drive-btns{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.drive-btns input{width:220px}
.drive-cap{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.drive-cap canvas{width:110px;height:110px;flex-shrink:0}
.drive-cap .legend{font-size:12.5px;color:var(--text-2);display:grid;gap:5px}
.drive-cap .legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px}
.file-ico{font-size:19px;margin-right:4px}
.row-actions{display:flex;gap:4px}
.row-actions button{font-size:12px;padding:4px 9px;border-radius:7px;background:rgba(255,255,255,.8);color:var(--text-2);border:1px solid var(--border)}
.row-actions button:hover{background:var(--primary-l);color:var(--primary-d)}

/* 下载管理 */
.dl-box{padding:18px;display:flex;flex-direction:column;gap:14px}
.dl-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
.dl-list{display:flex;flex-direction:column;gap:10px}
.dl-item{border:1px solid var(--border);border-radius:13px;padding:13px 15px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:rgba(255,255,255,.82)}
.dl-item .fi{font-size:20px}
.dl-item .info{flex:1;min-width:180px}
.dl-item .nm{font-weight:600;font-size:13.5px}
.dl-item .sub{font-size:12px;color:var(--text-3);margin-top:2px}
.progress{height:7px;background:#E7ECF2;border-radius:99px;overflow:hidden;margin-top:7px}
.progress i{display:block;height:100%;background:var(--grad);border-radius:99px;transition:width .4s}
.dl-item .ops{display:flex;gap:6px}
.dl-item .ops button{font-size:12px;padding:5px 11px;border-radius:8px;background:rgba(255,255,255,.8);color:var(--text-2);border:1px solid var(--border)}
.dl-item .ops button:hover{background:var(--primary-l);color:var(--primary-d)}

/* 收藏夹 */
.fav-box{padding:18px;display:flex;flex-direction:column;gap:14px}
.fav-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
.fav-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.fav-item{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:13px;padding:12px;background:rgba(255,255,255,.85);box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.fav-item .fi{font-size:19px}
.fav-item .nm{flex:1;min-width:0;font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fav-item .tp{font-size:11px;color:var(--text-3)}
.empty{text-align:center;color:var(--text-3);padding:44px 0;font-size:13px;grid-column:1/-1}

/* 软件中心 */
.sw-box{padding:18px;display:flex;flex-direction:column;gap:14px}
.sw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.sw-card{display:flex;gap:12px;border:1px solid var(--border);border-radius:15px;padding:15px;background:rgba(255,255,255,.85);transition:box-shadow .15s,transform .15s;box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.sw-card:hover{box-shadow:var(--shadow-h);transform:translateY(-2px)}
.sw-card .ic{width:48px;height:48px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:23px;flex-shrink:0;box-shadow:0 3px 8px rgba(16,24,40,.12)}
.sw-card .meta{flex:1;min-width:0}
.sw-card .nm{font-weight:700;font-size:14px}
.sw-card .ds{font-size:12px;color:var(--text-3);margin-top:2px}
.sw-card .sub{display:flex;gap:10px;font-size:11.5px;color:var(--text-2);margin-top:6px;align-items:center}
.sw-card .stars{color:#F5A623;letter-spacing:1px}
.sw-card .ops{margin-top:9px}
.sw-card .ops button{font-size:12px;padding:6px 14px;border-radius:9px;background:var(--grad);color:#fff;font-weight:600;box-shadow:0 4px 12px rgba(124,58,237,.3)}
.sw-card .ops button.installed{background:#F2F4F7;color:var(--text-2);box-shadow:none}

/* ---------- 右侧热搜榜 ---------- */
.hot-card{padding:16px 18px;position:sticky;top:78px}
.hot-head{display:flex;justify-content:space-between;align-items:baseline}
.hot-head strong{font-size:15px}
.hot-time{font-size:11px;color:var(--text-3)}
.hot-tabs{display:flex;gap:4px;margin:10px 0 6px;background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:11px;padding:3px}
.hot-tabs button{flex:1;padding:6px 0;border-radius:9px;font-size:12.5px;color:var(--text-2);transition:all .15s}
.hot-tabs button.on{background:var(--grad);color:#fff;font-weight:700;box-shadow:0 4px 12px rgba(124,58,237,.3)}
.hot-list{display:flex;flex-direction:column}
.hot-item{
  display:flex;align-items:center;gap:9px;padding:8px 4px;width:100%;text-align:left;
  border-bottom:1px dashed var(--border);font-size:13px;border-radius:6px;transition:background .15s;
}
.hot-item:last-child{border-bottom:none}
.hot-item:hover{background:var(--primary-l)}
.hot-item .rk{
  width:20px;height:20px;border-radius:6px;color:#fff;
  font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;
  background:rgba(20,32,48,.18);
}
.hot-item .rk.t1{background:linear-gradient(135deg,#FF6B6B,#E64545);box-shadow:0 3px 8px rgba(230,69,69,.4)}
.hot-item .rk.t2{background:linear-gradient(135deg,#FF9D5C,#F27B3A);box-shadow:0 3px 8px rgba(242,123,58,.35)}
.hot-item .rk.t3{background:linear-gradient(135deg,#FFD36E,#F5A623);box-shadow:0 3px 8px rgba(245,166,35,.35)}
.hot-item .tx{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hot-item .heat{font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums;flex-shrink:0}
.hot-tip{font-size:11px;color:var(--text-3);margin-top:10px;text-align:center}

/* ---------- 右栏：站点导航（原创排版） ---------- */
.sitenav-card{padding:16px 18px;margin-top:14px}
.sitenav-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.sitenav-head strong{font-size:15px}
.sn-more{font-size:12px;color:var(--primary);font-weight:500}
.sn-more:hover{text-decoration:underline}
.sn-group{padding:9px 0;border-bottom:1px dashed var(--border)}
.sn-group:last-child{border-bottom:none}
.sn-cat{
  display:inline-block;font-size:12px;font-weight:700;color:var(--primary-d);
  background:var(--primary-l);border-radius:6px;padding:2px 10px;margin-bottom:7px;
}
.sn-links{display:flex;flex-wrap:wrap;gap:4px 14px}
.sn-links a{
  font-size:13px;color:var(--text-2);padding:3px 2px;border-radius:6px;transition:color .15s;
}
.sn-links a:hover{color:var(--primary-d);background:var(--primary-l)}
.sn-tools{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.sn-tools .sn-cat{margin-bottom:4px}
.quicktools-card{margin-top:14px;padding:10px 12px}
.qt-row{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.qt-row button{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  font-size:11.5px;color:var(--text-2);padding:10px 2px;border-radius:11px;transition:all .15s;
}
.qt-row button span{font-size:19px}
.qt-row button:hover{background:var(--primary-l);color:var(--primary-d);transform:translateY(-1px)}

/* ---------- 闹钟 ---------- */
.clock-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:16px;align-items:start}
.clock-face-card{padding:28px;text-align:center;border-radius:var(--radius)}
.clock-time{
  font-size:54px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:2px;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.clock-date{color:var(--text-2);margin-top:6px;font-size:14px}
.clock-tip{margin-top:14px;font-size:12px;color:var(--text-3)}
.clock-side{padding:18px}
.clock-add{display:grid;grid-template-columns:1fr 1.4fr auto;gap:10px;align-items:end;padding-bottom:12px;border-bottom:1px solid var(--border)}
.clock-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.ck-item{
  display:flex;align-items:center;gap:12px;border:1px solid var(--border);
  border-radius:13px;padding:12px 15px;background:rgba(255,255,255,.85);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}
.ck-item .tm{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.ck-item .lb{flex:1;min-width:0;font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ck-item.off .tm,.ck-item.off .lb{opacity:.45}
.ck-item .ops{display:flex;gap:6px}
.ck-item .ops button{font-size:12px;padding:5px 11px;border-radius:8px;background:rgba(255,255,255,.8);color:var(--text-2);border:1px solid var(--border)}
.ck-item .ops button:hover{background:var(--primary-l);color:var(--primary-d)}
.ring-face{text-align:center;padding:10px 0}
.ring-face .ic{font-size:64px;animation:ringShake 1s infinite}
@keyframes ringShake{0%,100%{transform:rotate(0)}25%{transform:rotate(-14deg)}75%{transform:rotate(14deg)}}

/* ---------- 移动端底部导航 / 抽屉 ---------- */
.tabbar{display:none}
.drawer-mask{
  position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:80;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.drawer-mask.show{opacity:1;pointer-events:auto}

/* ---------- 弹窗 ---------- */
.modal-mask{
  position:fixed;inset:0;background:rgba(15,23,42,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:100;
  display:flex;align-items:center;justify-content:center;padding:16px;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.modal-mask.show{opacity:1;pointer-events:auto}
.modal{
  background:linear-gradient(180deg,#ffffff,#FBFDFE);border:1px solid var(--border);border-radius:20px;width:100%;max-width:470px;max-height:88dvh;overflow-y:auto;
  padding:26px;box-shadow:0 30px 70px rgba(15,23,42,.32), inset 0 1px 0 rgba(255,255,255,.8);
  transform:translateY(14px) scale(.98);transition:transform .2s;position:relative;
}
.modal-mask.show .modal{transform:none}
.modal h3{font-size:18px;font-weight:800;margin-bottom:16px}
.modal .close-x{position:absolute;top:16px;right:18px;font-size:18px;color:var(--text-3);width:30px;height:30px;border-radius:50%;transition:background .15s}
.modal .close-x:hover{background:var(--primary-l)}
.auth-tabs{display:flex;gap:4px;background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:11px;padding:3px;margin-bottom:16px}
.auth-tabs button{flex:1;padding:9px 0;border-radius:9px;font-weight:600;color:var(--text-2);transition:all .15s}
.auth-tabs button.on{background:var(--grad);color:#fff;box-shadow:0 4px 12px rgba(124,58,237,.3)}
.modal .field{margin-bottom:12px}
.modal .field input{width:100%}
.modal .btn-primary{width:100%;padding:12px;font-size:15px;margin-top:4px}
.auth-tip{font-size:12px;color:var(--text-3);margin-top:12px;background:#F6F9FB;border-radius:9px;padding:10px 12px;border:1px solid var(--border)}
.set-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;border-bottom:1px dashed var(--border);font-size:13.5px}
.set-row:last-child{border-bottom:none}
.set-row .lbl{font-weight:600}
.set-row .sub{font-size:12px;color:var(--text-3);margin-top:2px}
.theme-dots{display:flex;gap:8px}
.theme-dot{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .12s}
.theme-dot:hover{transform:scale(1.1)}
.theme-dot.on{border-color:var(--text);box-shadow:0 0 0 2px #fff inset}
.set-ai{display:grid;gap:10px;padding:14px;background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:13px;margin-top:8px}
.set-ai input{font-size:13px}
.set-ai-btns{display:flex;gap:10px;flex-wrap:wrap}
.set-ai-btns .btn-sm{flex:1;min-width:120px}
.set-provider-row{display:flex;flex-direction:column;gap:5px}
.set-provider-row label{font-size:12px;color:var(--text-3);font-weight:600}
.set-provider{font-size:13px}
.mini-frame{
  width:280px;margin:0 auto;border:8px solid #1E2933;border-radius:26px;overflow:hidden;
  background:#EDF1F8;box-shadow:var(--shadow-h);
}
.mini-frame .bar{background:#1E2933;color:#fff;font-size:11px;padding:7px 12px;display:flex;justify-content:space-between}
.mini-frame .scr{padding:26px 14px;text-align:center;min-height:300px}
.mini-frame .scr .ic{font-size:52px}
.mini-frame .scr .nm{font-weight:700;margin:10px 0 4px}
.mini-frame .scr .ds{font-size:12px;color:var(--text-2)}
.news-detail h3{font-size:17px;line-height:1.5}
.news-detail .m{font-size:12px;color:var(--text-3);margin:8px 0 12px}
.news-detail .body{font-size:14px;line-height:1.9;color:var(--text)}

/* ---------- Toast ---------- */
.toast-wrap{position:fixed;top:76px;left:50%;transform:translateX(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center}
.toast{
  background:linear-gradient(180deg,#1E2933,#27364a);color:#fff;font-size:13px;padding:10px 20px;border-radius:999px;
  box-shadow:0 10px 28px rgba(15,23,42,.35);animation:toastIn .25s ease;max-width:86vw;
}
.toast.out{animation:toastOut .25s ease forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateY(-8px)}}

/* ============================================================
   响应式
   ============================================================ */

/* 平板：导航收窄为图标，热搜榜移到主体下方 */
@media (max-width:1199px){
  .layout{grid-template-columns:66px minmax(0,1fr);grid-template-areas:"nav main" "nav hot";gap:16px}
  .side-right{position:static}
  .side-toggle{display:none}   /* 窄屏侧栏本来就是图标模式，无需折叠开关 */
  .nav-list button{justify-content:center;padding:11px 0}
  .nav-list button .nav-tx{display:none}
  .nav-ico{font-size:18px}
  .tab{max-width:210px}
  .clock-layout{grid-template-columns:1fr}
  .stock-layout{grid-template-columns:1fr}
  .weather-layout{grid-template-columns:1fr}
  .cal-hero{gap:12px;padding:14px 16px}
  .hero-num{font-size:46px;min-width:54px}
  .hero-fest{padding:3px 10px;font-size:12px}
  .cal-cell .d-sub{font-size:8px}
  .cp-feature-wrap{grid-template-columns:1fr}
  .calc-wrap{grid-template-columns:1fr}
  .ledger-stats{grid-template-columns:repeat(2,1fr)}
  .widget-row{grid-template-columns:repeat(2,1fr)}
  .widget-row .widget:last-child{grid-column:1/-1}
}

/* 手机：单栏 + 抽屉 + 底部 Tab */
@media (max-width:767px){
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom))}
  .tabstrip{height:36px;padding:5px 6px 0}
  .tab{min-width:110px;height:28px;font-size:11.5px;max-width:180px}
  .win-controls button{width:34px;height:26px}
  .toolbar{height:48px;padding:0 8px;gap:5px}
  .nav-toggle{display:flex;align-items:center;justify-content:center}
  .tbtn{min-width:30px;height:30px;font-size:13px}
  .addr{padding:2px 4px 2px 10px}
  #globalSearch{font-size:12.5px;padding:5px 0}
  .addr .attach-btn{display:none}
  .addr #searchBtn{display:none}
  #loginBtn{display:none}

  .cp-grid{grid-template-columns:1fr}
  .ledger-form{grid-template-columns:1fr 1fr}
  .ledger-form .btn-primary{grid-column:1/-1}
  .lg-item{grid-template-columns:70px 1fr auto;gap:8px}
  .lg-item .lg-time,.lg-item .lg-amt{display:none}
  .sitewall{grid-template-columns:repeat(auto-fill,minmax(78px,1fr))}
  .layout{grid-template-columns:1fr;grid-template-areas:"main" "hot";padding:13px;gap:13px}
  .side-nav{
    position:fixed;top:0;left:0;bottom:0;width:240px;z-index:90;
    transform:translateX(-105%);transition:transform .25s ease;padding-top:12px;
  }
  .side-nav.open{transform:none}
  .side-nav .nav-list{max-height:none;height:100%;border-radius:0 16px 16px 0;box-shadow:var(--shadow-h)}
  .side-nav .nav-list button{justify-content:flex-start;padding:11px 14px;font-size:15px}
  .side-nav .nav-list button .nav-tx{display:inline}
  .side-right{position:static}

  .hero{padding:20px}
  .hero-text h1{font-size:19px}
  .hero-actions{width:100%}
  .hero-actions .btn-ghost,.hero-actions .btn-primary{flex:1;text-align:center;padding:9px 6px;font-size:13px}
  .app-grid{grid-template-columns:repeat(2,1fr);gap:11px}
  .widget-row{grid-template-columns:1fr}
  .widget-row .widget:last-child{grid-column:auto}
  .panel-head h2{font-size:18px}
  .form-grid{grid-template-columns:1fr}
  .scan-preview{grid-template-columns:1fr}
  .stock-side{max-width:none}
  .stock-list{max-height:280px}
  .st-chart{height:260px}
  .chart-holder{height:250px}
  .table-wrap{max-height:300px}
  .wx-grid{grid-template-columns:repeat(2,1fr)}
  .drive-btns input{width:150px}
  .news-tools input{max-width:none;width:100%}
  .hot-card{position:static}

  .tabbar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:70;
    background:rgba(255,255,255,.94);backdrop-filter:blur(14px);
    border-top:1px solid var(--border);
    padding:6px 8px calc(6px + env(safe-area-inset-bottom));
    justify-content:space-around;box-shadow:0 -4px 18px rgba(16,24,40,.08);
  }
  .tabbar button{
    display:flex;flex-direction:column;align-items:center;gap:1px;
    font-size:11px;color:var(--text-2);padding:4px 12px;border-radius:10px;transition:color .15s;
  }
  .tabbar button span{font-size:19px}
  .tabbar button.on{color:var(--primary-d);font-weight:700}
  .modal{max-width:none;border-radius:18px;padding:22px}
  .toast-wrap{top:66px}
}

/* 超小屏 */
@media (max-width:359px){
  .app-grid{grid-template-columns:1fr}
  .bs-row .bs-btn{padding:10px 15px}
  .clock-add{grid-template-columns:1fr}
}

/* ---------- 注册方式分段 / 快捷登录 ---------- */
.auth-method{display:flex;gap:4px;background:rgba(255,255,255,.7);border:1px solid var(--border);border-radius:9px;padding:3px;margin-bottom:12px}
.auth-method button{flex:1;padding:7px 0;border-radius:7px;font-size:13px;color:var(--text-2);transition:all .15s}
.auth-method button.on{background:var(--grad);color:#fff;font-weight:600;box-shadow:0 4px 12px rgba(124,58,237,.3)}
.code-row{display:flex;gap:8px}
.code-row input{flex:1}
.quick-login{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.quick-login button{
  display:flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid var(--border);border-radius:12px;padding:13px;font-weight:600;font-size:14px;
  transition:all .15s;background:#fff;
}
.quick-login button:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-1px)}
.ql-note{font-size:11.5px;color:var(--text-3);margin-top:10px;text-align:center}

/* ============================================================
   护眼模式
   ============================================================ */
body[data-mode="eye"]{background:#CCE8CF}
body[data-mode="eye"] .card,
body[data-mode="eye"] .chrome,
body[data-mode="eye"] .toolbar,
body[data-mode="eye"] .nav-list,
body[data-mode="eye"] .modal,
body[data-mode="eye"] .app-card,
body[data-mode="eye"] .news-item,
body[data-mode="eye"] .sw-card,
body[data-mode="eye"] .fav-item,
body[data-mode="eye"] .dl-item,
body[data-mode="eye"] .ck-item,
body[data-mode="eye"] .user-menu{background:#EFF7EC;border-color:#CFE3C8}
body[data-mode="eye"] .tab{background:#EFF7EC;border-color:#CFE3C8}
body[data-mode="eye"] .addr,body[data-mode="eye"] input,body[data-mode="eye"] select,body[data-mode="eye"] textarea{background:#F6FBF3}
body[data-mode="eye"] .tabstrip{background:#DDEBD8}
body[data-mode="eye"] .chrome{background:linear-gradient(180deg,#DFEDDA,#D8E8D2);border-bottom-color:#C4DABD}
body[data-mode="eye"] th{background:#E4F1DE}
body[data-mode="eye"] .hero{background:linear-gradient(120deg,#DFF0D8 0%,#E8F4E0 60%,#F4F9E8 100%);border-color:#C9E0C0}
body[data-mode="eye"] .ai-search-box textarea,body[data-mode="eye"] .write-output-body,
body[data-mode="eye"] .fa-card,body[data-mode="eye"] .stat-card,body[data-mode="eye"] .wx-grid .cell,
body[data-mode="eye"] .wx-hour,body[data-mode="eye"] .wx-day,body[data-mode="eye"] .cal-cell,
body[data-mode="eye"] .cal-day-info,body[data-mode="eye"] .cal-hero,body[data-mode="eye"] .ev,
body[data-mode="eye"] .convert-result{background:#F0F8EA;border-color:#D5E6CC}
body[data-mode="eye"] .cal-cell .d-sub{color:#4d6b3f}
/* 护眼模式下节假日/周末仍保持红色识别度（降低饱和、去掉强阴影） */
body[data-mode="eye"] .cal-cell.fest-cn{background:#f0d9d6}
body[data-mode="eye"] .cal-cell.fest-cn .d-num,body[data-mode="eye"] .cal-cell.fest-cn .d-sub{color:#8e3b32}
body[data-mode="eye"] .cal-cell.hol-stat{background:#d99a95;border-color:#b9706a;box-shadow:none}
body[data-mode="eye"] .cal-cell.hol-stat .d-num,body[data-mode="eye"] .cal-cell.hol-stat .d-sub{color:#4a1f1a}
body[data-mode="eye"] .cal-cell.we{background:#f2e2df}
body[data-mode="eye"] .cal-cell.we .d-num{color:#8e3b32}
body[data-mode="eye"] .cp-main,body[data-mode="eye"] .cp-card,body[data-mode="eye"] .cp-row{background:#F0F8EA;border-color:#D5E6CC}
body[data-mode="eye"] .cp-tag{color:#2e7d32;background:#d9eccf}
body[data-mode="eye"] .cp-tag.alt{color:#4a6b3f;background:#d9eccf}
body[data-mode="eye"] .cp-ico{background:#d9eccf}
body[data-mode="eye"] .cp-rhot{color:#8a6a1f}
body[data-mode="eye"] .sw-item,body[data-mode="eye"] .ck,body[data-mode="eye"] .ch-item,
body[data-mode="eye"] .lgs,body[data-mode="eye"] .lg-item,body[data-mode="eye"] .nt-item{background:#F0F8EA;border-color:#D5E6CC}
body[data-mode="eye"] .ck.op{background:#d9eccf;color:#2e7d32}
body[data-mode="eye"] .ck.fn{background:#e0ecd8;color:#4a6b3f}
body[data-mode="eye"] .ck.eq{background:#5C8A5F;color:#fff}
body[data-mode="eye"] .calc-screen{background:#3B5A3F}
body[data-mode="eye"] .calc-out{color:#CFEBD2}
body[data-mode="eye"] .lg-cat{background:#d9eccf;color:#2e7d32}
body[data-mode="eye"] .app-badge{background:#d9eccf;color:#2e7d32}
body[data-mode="eye"] .cal-hero.cn{background:#eef5e4}
body[data-mode="eye"] .chips button,body[data-mode="eye"] .ai-quick button,body[data-mode="eye"] .bs-quick button{background:#E2EFDB}
body[data-mode="eye"] .seg{background:#E2EFDB}
body[data-mode="eye"] .seg button.on{background:#fff}
body[data-mode="eye"] .hero-text h1,
body[data-mode="eye"] .wx-big .t,
body[data-mode="eye"] .stat-card .v,
body[data-mode="eye"] .clock-time{background:none;-webkit-background-clip:initial;background-clip:initial;color:#2E5A3A}
body[data-mode="eye"] .nav-list button.on,
body[data-mode="eye"] .cat-bar button.on,
body[data-mode="eye"] .hot-tabs button.on,
body[data-mode="eye"] .auth-tabs button.on,
body[data-mode="eye"] .auth-method button.on,
body[data-mode="eye"] .chips button.on,
body[data-mode="eye"] .btn-primary,
body[data-mode="eye"] .sw-card .ops button,
body[data-mode="eye"] .ai-badge,
body[data-mode="eye"] .cal-cell.today{background:#5C8A5F;box-shadow:none;color:#fff}
body[data-mode="eye"] .cal-cell.today.fest-cn{background:#5C8A5F}
body[data-mode="eye"] .cal-cell.today .d-sub{color:#fff}
body[data-mode="eye"] .cal-hero .hero-num{background:none;-webkit-background-clip:initial;background-clip:initial;color:#2E5A3A}
body[data-mode="eye"] .cal-hero.cn .hero-num{background:none;-webkit-background-clip:initial;background-clip:initial;color:#2E5A3A}
body[data-mode="eye"] .di-weather b{background:none;-webkit-background-clip:initial;background-clip:initial;color:#2E5A3A}
body[data-mode="eye"] .cal-head strong{background:none;-webkit-background-clip:initial;background-clip:initial;color:#2E5A3A}
body[data-mode="eye"] .app-card::before{background:#5C8A5F}

/* ============================================================
   背景主题（原创 SVG 场景 · 上层自动铺白纱保证可读性）
   ============================================================ */
body[data-bg]::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-size:cover;background-position:center;
  opacity:1;
}
body[data-bg="scenic"]::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='xMidYMid slice'%3E%3Cdefs%3E%3ClinearGradient id='s' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23BFE0F2'/%3E%3Cstop offset='.6' stop-color='%23E8F3EA'/%3E%3Cstop offset='1' stop-color='%23FDF3E0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='1600' height='900' fill='url(%23s)'/%3E%3Ccircle cx='1260' cy='210' r='86' fill='%23FFD98A' opacity='.9'/%3E%3Cellipse cx='380' cy='170' rx='150' ry='42' fill='%23fff' opacity='.75'/%3E%3Cellipse cx='620' cy='120' rx='110' ry='30' fill='%23fff' opacity='.6'/%3E%3Cpath d='M0 620 L260 380 L470 600 L700 330 L980 640 L1200 420 L1600 660 L1600 900 L0 900 Z' fill='%239CC7A8' opacity='.8'/%3E%3Cpath d='M0 720 L320 500 L640 730 L1000 480 L1320 720 L1600 560 L1600 900 L0 900 Z' fill='%237FB08D' opacity='.85'/%3E%3Crect width='1600' height='900' fill='%23ffffff' opacity='.6'/%3E%3C/svg%3E");
}
body[data-bg="car"]::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='xMidYMid slice'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23E8EDF4'/%3E%3Cstop offset='1' stop-color='%23C7D2E0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='1600' height='900' fill='url(%23a)'/%3E%3Cpath d='M0 560 L1600 560 L1600 900 L0 900 Z' fill='%23AEB9C9'/%3E%3Cpath d='M780 560 L820 560 L900 900 L700 900 Z' fill='%23ffffff' opacity='.9'/%3E%3Cpath d='M560 620 q120 -30 240 0' stroke='%23DDE4EE' stroke-width='10' fill='none' opacity='.7'/%3E%3Ccircle cx='640' cy='700' r='60' fill='%234B5563'/%3E%3Ccircle cx='640' cy='700' r='30' fill='%23CBD5E1'/%3E%3Ccircle cx='960' cy='700' r='60' fill='%234B5563'/%3E%3Ccircle cx='960' cy='700' r='30' fill='%23CBD5E1'/%3E%3Cpath d='M560 700 q60 -170 200 -170 q160 0 220 170 Z' fill='%23E15B64' opacity='.85'/%3E%3Cpath d='M640 545 q80 -40 150 0 l-20 60 q-60 -18 -110 0 Z' fill='%23BFE0F2' opacity='.9'/%3E%3Cpath d='M180 300 h240 M1240 260 h260 M180 380 h160' stroke='%23ffffff' stroke-width='14' stroke-linecap='round' opacity='.8'/%3E%3Crect width='1600' height='900' fill='%23ffffff' opacity='.6'/%3E%3C/svg%3E");
}
body[data-bg="moto"]::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='xMidYMid slice'%3E%3Cdefs%3E%3ClinearGradient id='m' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23FFE3C2'/%3E%3Cstop offset='.55' stop-color='%23FFC9A3'/%3E%3Cstop offset='1' stop-color='%23F2A98B'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='1600' height='900' fill='url(%23m)'/%3E%3Ccircle cx='800' cy='430' r='130' fill='%23FFB65C' opacity='.9'/%3E%3Crect y='600' width='1600' height='300' fill='%23B08166' opacity='.75'/%3E%3Ccircle cx='620' cy='640' r='86' fill='none' stroke='%233D3A44' stroke-width='16'/%3E%3Ccircle cx='980' cy='640' r='86' fill='none' stroke='%233D3A44' stroke-width='16'/%3E%3Cpath d='M620 640 L760 500 L920 520 L980 640 M760 500 L780 640' stroke='%233D3A44' stroke-width='14' fill='none' stroke-linecap='round'/%3E%3Cpath d='M820 470 q60 -50 130 -30' stroke='%233D3A44' stroke-width='14' fill='none' stroke-linecap='round'/%3E%3Cpath d='M0 200 h200 M300 150 h140 M1180 190 h260' stroke='%23ffffff' stroke-width='12' stroke-linecap='round' opacity='.7'/%3E%3Crect width='1600' height='900' fill='%23ffffff' opacity='.58'/%3E%3C/svg%3E");
}
body[data-bg="cartoon"]::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='xMidYMid slice'%3E%3Crect width='1600' height='900' fill='%23FFF1E0'/%3E%3Ccircle cx='300' cy='160' r='70' fill='%23FFD3E0'/%3E%3Ccircle cx='240' cy='140' r='40' fill='%23FFD3E0'/%3E%3Ccircle cx='360' cy='140' r='40' fill='%23FFD3E0'/%3E%3Cellipse cx='1200' cy='180' rx='120' ry='44' fill='%23ffffff'/%3E%3Cellipse cx='1300' cy='150' rx='80' ry='34' fill='%23ffffff'/%3E%3Cpath d='M150 900 A420 420 0 0 1 990 900' stroke='%23FFB65C' stroke-width='46' fill='none' opacity='.55'/%3E%3Cpath d='M230 900 A340 340 0 0 1 910 900' stroke='%2387D8DE' stroke-width='46' fill='none' opacity='.55'/%3E%3Ccircle cx='1450' cy='640' r='26' fill='%23A5D8FF'/%3E%3Ccircle cx='120' cy='620' r='20' fill='%23B9F0CA'/%3E%3Ccircle cx='700' cy='760' r='16' fill='%23FFD3E0'/%3E%3Ccircle cx='980' cy='560' r='12' fill='%23FFB65C'/%3E%3Crect width='1600' height='900' fill='%23ffffff' opacity='.55'/%3E%3C/svg%3E");
}
body[data-bg="sky"]::before{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='xMidYMid slice'%3E%3Cdefs%3E%3ClinearGradient id='k' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23DCE4FA'/%3E%3Cstop offset='1' stop-color='%23EFF2FE'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='1600' height='900' fill='url(%23k)'/%3E%3Cpath d='M1330 140 a90 90 0 1 0 90 130 a72 72 0 1 1 -90 -130 Z' fill='%23F5D98B' opacity='.9'/%3E%3Ccircle cx='260' cy='200' r='4' fill='%238FA3D9'/%3E%3Ccircle cx='420' cy='120' r='3' fill='%238FA3D9'/%3E%3Ccircle cx='620' cy='260' r='3.5' fill='%238FA3D9'/%3E%3Ccircle cx='900' cy='140' r='3' fill='%238FA3D9'/%3E%3Ccircle cx='1100' cy='300' r='4' fill='%238FA3D9'/%3E%3Ccircle cx='1480' cy='420' r='3' fill='%238FA3D9'/%3E%3Ccircle cx='180' cy='420' r='3.5' fill='%238FA3D9'/%3E%3Ccircle cx='760' cy='420' r='3' fill='%238FA3D9'/%3E%3Crect width='1600' height='900' fill='%23ffffff' opacity='.62'/%3E%3C/svg%3E");
}

/* 减少动效 */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}


/* ==========================================================================
   智能化模块样式：地址栏建议 / 即时应答卡 / 智能首页 / 语音
   ========================================================================== */

/* ---------- 地址栏智能建议下拉 ---------- */
.addr-suggest{
  position:absolute;top:calc(100% + 9px);left:-6px;right:-6px;z-index:200;
  max-height:min(58vh, 460px);overflow-y:auto;overscroll-behavior:contain;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,249,255,.97));
  backdrop-filter:blur(24px) saturate(170%);
  -webkit-backdrop-filter:blur(24px) saturate(170%);
  border:1px solid rgba(124,58,237,.20);border-radius:16px;
  padding:6px;
  box-shadow:0 24px 60px rgba(16,24,40,.20), 0 2px 8px rgba(124,58,237,.10),
             inset 0 1px 0 rgba(255,255,255,.9);
  animation:sgIn .16s ease;
}
.home-suggest{top:calc(100% - 4px);left:18px;right:18px}
@keyframes sgIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.addr-suggest[hidden]{display:none}
.sg-group{
  font-size:10.5px;font-weight:800;letter-spacing:.6px;color:var(--text-3);
  padding:8px 10px 5px;text-transform:none;
}
.sg-item{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:8px 10px;border-radius:11px;text-align:left;
  transition:background .12s,box-shadow .12s;
}
.sg-item:hover,.sg-item.on{
  background:linear-gradient(135deg, rgba(124,58,237,.13), rgba(168,85,247,.09));
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.18);
}
.sg-ico{
  width:28px;height:28px;border-radius:9px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:14px;
  background:linear-gradient(135deg,#F3EBFF,#EDE4FF);color:var(--primary-d);
}
.sg-ico .zm-ico,.sg-ico-el{border-radius:9px}
.sg-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.sg-tx b{font-size:13.5px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sg-tx b em,.sg-tx b b{color:var(--primary-d);font-weight:800}
.sg-tx i{font-size:11.5px;font-style:normal;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sg-go{font-size:12px;color:var(--text-3);flex-shrink:0}

/* ---------- 即时应答卡（Instant Answer） ---------- */
.ia-wrap{
  border:1px solid rgba(124,58,237,.22);border-radius:16px;overflow:hidden;margin-bottom:14px;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(249,247,255,.92));
  box-shadow:0 10px 28px rgba(124,58,237,.10);
}
.ia-head{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  padding:11px 15px;border-bottom:1px solid rgba(124,58,237,.13);
  background:linear-gradient(135deg, rgba(124,58,237,.12), rgba(168,85,247,.07));
}
.ia-hico{font-size:17px}
.ia-head b{font-size:14.5px;font-weight:800;color:var(--text)}
.ia-badge{
  font-size:10px;font-weight:800;color:#fff;padding:2px 8px;border-radius:999px;
  background:linear-gradient(135deg,#7C3AED,#A855F7);
}
.ia-note{font-size:11px;color:var(--text-3);margin-left:auto}
.ia{padding:14px 15px}
.ia-tips{
  display:flex;flex-wrap:wrap;gap:7px;margin-top:11px;
}
.ia-tips span{
  font-size:11.5px;color:var(--text-2);background:rgba(124,58,237,.07);
  border:1px solid rgba(124,58,237,.13);border-radius:8px;padding:3px 9px;
}
.ia-tips span.hot{background:rgba(230,69,69,.10);border-color:rgba(230,69,69,.25);color:#C62828;font-weight:700}

/* 天气 */
.ia-wx-now{display:flex;align-items:center;gap:15px}
.ia-wx-ico{font-size:44px;line-height:1}
.ia-wx-temp{font-size:30px;font-weight:800;line-height:1.1;background:linear-gradient(135deg,#7C3AED,#A855F7);-webkit-background-clip:text;background-clip:text;color:transparent}
.ia-wx-sub{font-size:12.5px;color:var(--text-2);margin-top:3px}
.ia-wx-right{margin-left:auto;display:flex;flex-direction:column;gap:6px;text-align:right}
.ia-wx-right div{font-size:11.5px;color:var(--text-3)}
.ia-wx-right b{font-size:15px;color:var(--text);margin-left:6px}

/* 快递 */
.ia-ex-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.ia-ex-head b{font-size:14px}
.ia-ex-head span{font-size:11.5px;color:var(--text-3)}
.ia-timeline{list-style:none;margin:0;padding:0}
.ia-timeline li{display:flex;gap:11px;padding:6px 0;position:relative}
.ia-timeline li .dot{
  width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-top:5px;
  background:#D8D3E8;box-shadow:0 0 0 3px rgba(124,58,237,.08);
}
.ia-timeline li.done .dot{background:linear-gradient(135deg,#7C3AED,#A855F7);box-shadow:0 0 0 3px rgba(124,58,237,.16)}
.ia-timeline li div{display:flex;flex-direction:column}
.ia-timeline li b{font-size:12.5px;font-weight:700;color:var(--text-2)}
.ia-timeline li.done b{color:var(--text)}
.ia-timeline li span{font-size:11px;color:var(--text-3)}

/* 股票 */
.ia-st-head{display:flex;align-items:baseline;gap:10px}
.ia-st-head b{font-size:15px}
.ia-st-head span{font-size:11.5px;color:var(--text-3)}
.ia-st-price{font-size:30px;font-weight:800;margin-top:6px;display:flex;align-items:baseline;gap:9px}
.ia-st-price.up{color:#E64545}      /* A股：涨红 */
.ia-st-price.down{color:#1EAA6B}    /* A股：跌绿 */
.ia-st-price small{font-size:14px;font-weight:700}

/* 汇率 / 换算 */
.ia-fx-main,.ia-un-main{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap}
.ia-fx-main b,.ia-un-main b{font-size:26px;font-weight:800;background:linear-gradient(135deg,#7C3AED,#A855F7);-webkit-background-clip:text;background-clip:text;color:transparent}
.ia-fx-main span,.ia-un-main span{font-size:12.5px;color:var(--text-2)}
.ia-un-list{display:flex;gap:9px;margin-top:11px;flex-wrap:wrap}
.ia-un-item{
  display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:11px;min-width:88px;
  background:rgba(124,58,237,.06);border:1px solid rgba(124,58,237,.13);
}
.ia-un-item span{font-size:11px;color:var(--text-3)}
.ia-un-item b{font-size:15px;color:var(--text)}

/* 计算 / 假期 / 时间 */
.ia-cl-main{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.ia-cl-main b{font-size:16px;font-weight:700;color:var(--text-2)}
.ia-cl-main .res{
  font-size:30px;font-weight:800;
  background:linear-gradient(135deg,#7C3AED,#A855F7);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.ia-hd-main{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ia-hd-main b{font-size:15px}
.ia-hd-main span{font-size:12.5px;color:var(--text-2)}
.ia-hd-main span.big{
  font-size:34px;font-weight:800;line-height:1;
  background:linear-gradient(135deg,#E64545,#FF8A5B);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.ia-tm-main{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.ia-tm-main b{font-size:32px;font-weight:800;letter-spacing:1px;background:linear-gradient(135deg,#7C3AED,#A855F7);-webkit-background-clip:text;background-clip:text;color:transparent}
.ia-tm-main span{font-size:12.5px;color:var(--text-2)}

/* 命令列表 */
.ia-cmds{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.ia-cmd{
  display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:11px;
  background:rgba(124,58,237,.06);border:1px solid rgba(124,58,237,.13);
}
.ia-cmd b{font-size:12.5px;font-weight:800;color:var(--primary-d)}
.ia-cmd span{font-size:11.5px;color:var(--text-3)}

.ia-ai-split{
  margin:16px 0 8px;padding-top:12px;border-top:1px dashed var(--border);
  font-size:12px;font-weight:800;color:var(--text-3);
}
.ai-text{font-size:14px;line-height:1.85;color:var(--text);white-space:pre-wrap}

/* ---------- 智能首页 ---------- */
.smart-home{
  display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:14px;margin-bottom:14px;
}
.sh-card{padding:15px 17px}
.sh-head{display:flex;align-items:baseline;gap:9px;margin-bottom:11px;flex-wrap:wrap}
.sh-head strong{font-size:14px;font-weight:800;color:var(--text)}
.sh-head span{font-size:11px;color:var(--text-3)}
.sh-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:9px}
.sh-item{
  display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:12px;text-align:left;
  background:linear-gradient(135deg, rgba(124,58,237,.055), rgba(168,85,247,.035));
  border:1px solid rgba(124,58,237,.13);
  transition:transform .14s,box-shadow .14s,border-color .14s;
}
.sh-item:hover{
  transform:translateY(-2px);border-color:rgba(124,58,237,.30);
  box-shadow:0 8px 18px rgba(124,58,237,.14);
}
.sh-ico{
  width:30px;height:30px;border-radius:10px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:15px;
  background:linear-gradient(135deg,#F3EBFF,#E9E0FF);
}
.sh-tx{min-width:0;display:flex;flex-direction:column}
.sh-tx b{font-size:12.5px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-tx i{font-size:10.5px;font-style:normal;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.sh-hd-body{display:flex;align-items:center;gap:14px}
.sh-hd-num{
  font-size:40px;font-weight:800;line-height:1;min-width:62px;text-align:center;
  background:linear-gradient(135deg,#E64545,#FF8A5B);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.sh-hd-tx{display:flex;flex-direction:column;gap:3px;min-width:0}
.sh-hd-tx b{font-size:13.5px;font-weight:800;color:var(--text)}
.sh-hd-tx i{font-size:11.5px;font-style:normal;color:var(--text-3)}

.sh-cmd-list{display:flex;flex-wrap:wrap;gap:7px}
.sh-cmd-item{
  display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;
  padding:6px 11px;border-radius:999px;color:var(--primary-d);
  background:rgba(124,58,237,.08);border:1px solid rgba(124,58,237,.16);
  transition:background .14s,transform .12s;
}
.sh-cmd-item:hover{background:rgba(124,58,237,.16);transform:translateY(-1px)}
.sh-cmd-item span{font-size:13px}

/* ---------- 语音按钮 ---------- */
.attach-btn.on{
  background:linear-gradient(135deg,#E64545,#FF8A5B);color:#fff;
  box-shadow:0 0 0 3px rgba(230,69,69,.18);
  animation:micPulse 1.1s ease-in-out infinite;
}
@keyframes micPulse{
  0%,100%{box-shadow:0 0 0 3px rgba(230,69,69,.18)}
  50%{box-shadow:0 0 0 7px rgba(230,69,69,.06)}
}

/* ---------- 护眼模式适配 ---------- */
body[data-mode="eye"] .addr-suggest{background:#FBFAF2;border-color:#D5E6CC}
body[data-mode="eye"] .sg-item:hover,body[data-mode="eye"] .sg-item.on{background:#EDF5E6;box-shadow:inset 0 0 0 1px #C9DEC0}
body[data-mode="eye"] .ia-wrap{background:#FBFAF2;border-color:#D5E6CC}
body[data-mode="eye"] .ia-head{background:#EEF5E7;border-color:#D5E6CC}
body[data-mode="eye"] .sh-item,body[data-mode="eye"] .ia-cmd{background:#F2F7EA;border-color:#D5E6CC}
body[data-mode="eye"] .ia-badge{background:#5C8A5F}
body[data-mode="eye"] .ia-st-price.up{color:#C62828}
body[data-mode="eye"] .ia-st-price.down{color:#2E7D32}

/* ---------- 回到顶部悬浮按钮 ---------- */
.back-top{
  position:fixed;right:22px;bottom:26px;z-index:70;
  width:52px;height:56px;border-radius:15px;
  background:#fff;border:1px solid rgba(20,32,48,.10);
  box-shadow:0 10px 26px rgba(16,24,40,.16);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  cursor:pointer;color:var(--text);
  opacity:0;transform:translateY(14px);pointer-events:none;
  transition:opacity .25s,transform .25s,box-shadow .18s;
}
.back-top.show{opacity:1;transform:translateY(0);pointer-events:auto}
.back-top:hover{
  box-shadow:0 14px 32px rgba(124,58,237,.28);
  border-color:rgba(124,58,237,.40);
  background:var(--primary-l);
}
.back-top:active{transform:translateY(0) scale(.94)}
.bt-ico{font-size:15px;line-height:1;color:var(--primary-d);transition:transform .18s}
.back-top:hover .bt-ico{transform:translateY(-2px)}
.bt-tx{font-size:11px;font-weight:700;letter-spacing:.5px}

/* ---------- 响应式 ---------- */
@media (max-width:1199px){
  .smart-home{grid-template-columns:1fr 1fr}
  .sh-cmd{grid-column:1 / -1}
}
@media (max-width:719px){
  .back-top{right:14px;bottom:16px;width:48px;height:52px}
}
@media (max-width:719px){
  .smart-home{grid-template-columns:1fr}
  .sh-list{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
  .addr-suggest{max-height:52vh}
  .home-suggest{left:12px;right:12px}
  .ia-note{margin-left:0;width:100%}
}
