:root{
  --bg:#fafbfc;--panel:#fff;--fg:#1a1a1a;--muted:#8a8a8a;
  --line:#ececec;--hover:#f6f7f9;--accent:#2b6cb0;--accent-soft:#eef4fb;
  --sidebar-w:240px;--topbar-h:60px;--radius:12px;
}
[data-theme="dark"]{
  --bg:#0f1115;--panel:#161a20;--fg:#e6e8eb;--muted:#7a8290;
  --line:#232830;--hover:#1c2129;--accent:#5b9bd5;--accent-soft:#172233;
}
*{box-sizing:border-box}
html, body {
  word-break: break-word;
  overflow-wrap: anywhere;
}
html,body{margin:0;padding:0}
body{
  background:var(--bg);color:var(--fg);
  font:15px/1.7 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased;
  transition:background .25s,color .25s;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

/* 顶栏 */
.topbar{
  position:fixed;top:0;left:0;right:0;height:var(--topbar-h);z-index:100;
  background:var(--panel);border-bottom:1px solid var(--line);
  transition:background .25s,border-color .25s;
}
.topbar-inner{
  height:100%;display:flex;align-items:center;gap:16px;padding:0 24px;
}
.top-spacer{flex:1}
.logo{
  font-size:18px;font-weight:600;color:var(--accent);
  display:flex;align-items:center;gap:8px;flex:none;
}
.logo i{font-size:20px}

.menu-toggle,.theme-toggle{
  width:38px;height:38px;border:0;background:transparent;cursor:pointer;
  border-radius:50%;color:var(--muted);font-size:16px;
  display:none;align-items:center;justify-content:center;transition:.15s;
}
.menu-toggle:hover,.theme-toggle:hover{background:var(--hover);color:var(--accent)}
.theme-toggle{display:flex}

/* 侧栏 */
.sidebar{
  position:fixed;top:var(--topbar-h);left:0;bottom:0;width:var(--sidebar-w);
  background:var(--panel);border-right:1px solid var(--line);
  overflow-y:auto;padding:16px 14px;
  display:flex;flex-direction:column;
  transition:background .25s,border-color .25s;
}
.sidebar .search{
  display:flex;align-items:center;gap:8px;
  height:38px;background:var(--hover);border-radius:19px;
  padding:0 14px;margin-bottom:14px;border:1px solid transparent;
  transition:.2s;
}
.sidebar .search i{color:var(--muted);font-size:13px}
.sidebar .search input{
  flex:1;border:0;background:transparent;outline:none;
  font-size:14px;color:var(--fg);
}
.sidebar .search:focus-within{
  background:var(--panel);border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);
}

.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}
.sidebar nav a{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:10px;
  color:var(--fg);font-size:14px;transition:.15s;
}
.sidebar nav a i{width:18px;text-align:center;color:var(--muted);font-size:15px}
.sidebar nav a:hover{background:var(--hover);color:var(--accent)}
.sidebar nav a:hover i{color:var(--accent)}
.sidebar nav a.on{background:var(--accent-soft);color:var(--accent);font-weight:500}
.sidebar nav a.on i{color:var(--accent)}

.sidebar-foot{
  margin-top:14px;padding-top:14px;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:2px;
}
.sidebar-foot a{
  display:flex;align-items:center;gap:10px;
  padding:8px 14px;border-radius:10px;font-size:13px;color:var(--muted);
}
.sidebar-foot a i{width:18px;text-align:center}
.sidebar-foot a:hover{background:var(--hover);color:var(--accent)}

/* 遮罩（移动端抽屉） */
.overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:99;
  opacity:0;visibility:hidden;transition:.25s;
}



/* ===== 工具图标统一染色（只处理 SVG） ===== */
.tool-icon-mask{
  display:inline-block;
  width:28px;
  height:28px;
  background-color: var(--icon-color, #666);
  -webkit-mask: var(--icon) no-repeat center / contain;
  mask: var(--icon) no-repeat center / contain;
  transition: transform .15s;
  vertical-align: middle;
  flex-shrink: 0;
  filter: saturate(1.15) contrast(1.05);
}
.tool-card:hover .tool-icon-mask{ transform: scale(1.08); }
.tool-icon-mask.sm{ width:32px; height:32px; }
.tool-icon-mask.lg{ width:48px; height:48px; }

/* 详情页大图标 */
.page-icon-mask{
  display:inline-block;
  width:36px;
  height:36px;
  background-color: var(--icon-color, #666);
  -webkit-mask: var(--icon) no-repeat center / contain;
  mask: var(--icon) no-repeat center / contain;
  flex-shrink: 0;
  vertical-align: middle;
  filter: saturate(1.15) contrast(1.05);
}

/* 暗色模式下自动提亮 */
html.dark .tool-icon-mask,
html.dark .page-icon-mask{ filter: brightness(1.18) saturate(1.15) contrast(1.05); }




body.nav-open .overlay{opacity:1;visibility:visible}

/* 内容区 */
.content{
  margin-left:var(--sidebar-w);
  padding:calc(var(--topbar-h) + 28px) 36px 60px;
  min-height:100vh;
}

.page-head{margin-bottom:32px}
.page-crumb{font-size:13px;color:var(--muted);margin-bottom:10px;display:flex;align-items:center;gap:6px;flex-wrap:nowrap;overflow:hidden;white-space:nowrap;max-width:100%}
.page-crumb a{flex:0 0 auto;white-space:nowrap}
.page-crumb span{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-crumb a:hover{color:var(--accent)}
.page-crumb i{font-size:10px;flex:0 0 auto}
.page-head h1{
  font-size:22px;font-weight:600;margin:0 0 8px;
  display:flex;align-items:center;gap:12px;
}
.page-head h1 > i{color:var(--accent)}
.page-icon{width:36px;height:36px;border-radius:8px}
.page-sub{color:var(--muted);font-size:14px;margin:0}

.cat-block{margin-bottom:44px}
.cat-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px}
.cat-head h2{font-size:18px;font-weight:600;margin:0;display:flex;align-items:center;gap:10px}
.cat-head h2 i{color:var(--accent);font-size:17px}
.more{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:4px}
.more:hover{color:var(--accent)}
.more i{font-size:10px}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:12px;
}
.card{
  display:flex;align-items:center;gap:14px;
  padding:16px;border-radius:var(--radius);
  background:var(--panel);border:1px solid var(--line);
  transition:all .2s cubic-bezier(.4,0,.2,1);
  position:relative;overflow:hidden;
}
.card::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--accent);transform:scaleY(0);transition:.2s;
  transform-origin:top;
}
.card:hover{
  border-color:var(--accent);box-shadow:0 6px 20px rgba(43,108,176,.08);
  transform:translateY(-2px);
}
.card:hover::before{transform:scaleY(1)}
.card-icon{
  width:44px;height:44px;flex:none;
  display:flex;align-items:center;justify-content:center;
  border-radius:10px;background:var(--hover);overflow:hidden;
  transition:.2s;
}
.card-icon img{width:28px;height:28px;object-fit:contain}
.card-icon i{font-size:20px;color:var(--accent)}
.card:hover .card-icon{background:var(--accent-soft)}
.card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.card-name{font-size:14px;font-weight:500;color:var(--fg);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.card-desc{font-size:12px;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.list{list-style:none;padding:0;margin:0;background:var(--panel);border-radius:var(--radius);border:1px solid var(--line);overflow:hidden}
.list li{border-bottom:1px solid var(--line)}
.list li:last-child{border-bottom:0}
.list li a{display:flex;align-items:center;gap:10px;padding:14px 20px;color:var(--fg);font-size:14px;transition:.15s}
.list li a i{color:var(--muted);font-size:11px;transition:.15s}
.list li a:hover{background:var(--hover);color:var(--accent)}
.list li a:hover i{color:var(--accent);transform:translateX(3px)}

.pager{margin:28px 0;display:flex;gap:6px;justify-content:center}
.pager a{min-width:36px;height:36px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;font-size:13px;background:var(--panel);transition:.15s;}
.pager a:hover{border-color:var(--accent);color:var(--accent)}
.pager a.on{background:var(--accent);color:#fff;border-color:var(--accent)}

.empty-box{padding:80px 20px;text-align:center;color:var(--muted);background:var(--panel);border-radius:var(--radius);border:1px solid var(--line)}
.empty-box i{font-size:48px;color:var(--line);display:block;margin-bottom:16px}
.empty-box p{margin:0;font-size:14px}

.foot{text-align:center;color:var(--muted);font-size:13px;padding:40px 0 20px}

/* 移动端 */
@media (max-width:820px){
  :root{--sidebar-w:260px}
  .menu-toggle{display:flex}
  .topbar-inner{padding:0 14px;gap:8px}
  .logo{font-size:16px}
  .logo i{font-size:18px}

  .sidebar{
    transform:translateX(-100%);
    transition:transform .25s cubic-bezier(.4,0,.2,1);
    z-index:100;
    box-shadow:0 0 30px rgba(0,0,0,.1);
  }
  body.nav-open .sidebar{transform:translateX(0)}

  .content{
    margin-left:0;
    padding:calc(var(--topbar-h) + 16px) 16px 40px;
  }
  .grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
  .card{padding:12px;gap:10px}
  .card-icon{width:36px;height:36px}
  .card-icon img{width:22px;height:22px}
  .card-desc{display:none}
}
.hero{padding:20px 0 32px;text-align:center}
.hero h1{font-size:32px;font-weight:700;margin:0 0 8px;letter-spacing:1px}
.hero-sub{color:var(--muted);font-size:14px;margin:0}

.foot p{margin:4px 0}
.foot p:first-child{color:var(--muted);font-size:13px}
.foot p:last-child{font-size:12px;color:#b0b6bd}
.foot a:hover{color:var(--accent)}
.pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;margin:32px 0}
.pager a,.pager span{display:inline-flex;align-items:center;justify-content:center;
  min-width:36px;height:36px;padding:0 12px;border:1px solid var(--line);
  border-radius:8px;font-size:13px;background:var(--panel);color:var(--fg);
  transition:.15s;white-space:nowrap;}
.pager a:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.pager a.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.pager .pg-dot{border:0;background:transparent;padding:0 2px;color:var(--muted)}
.pager .pg-jump{border:0;background:transparent;padding:0 8px;font-size:13px;color:var(--muted);gap:6px}
.pager .pg-input{width:56px;height:32px;text-align:center;border:1px solid var(--line);
  border-radius:6px;outline:none;background:var(--panel);color:var(--fg);font-size:13px}
.pager .pg-input:focus{border-color:var(--accent)}
.pager .pg-prev,.pager .pg-next{padding:0 14px}
/* 字母导航 */
.alpha-nav{
  display:flex;flex-wrap:wrap;gap:4px;margin-bottom:20px;
  padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.alpha-nav a{
  min-width:32px;height:32px;padding:0 8px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:8px;font-size:13px;color:var(--fg);transition:.15s;
}
.alpha-nav a:hover{background:var(--hover);color:var(--accent)}
.alpha-nav a.on{background:var(--accent);color:#fff}

/* 汉字网格 */
.hanzi-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));
  gap:8px;margin-bottom:24px;
}
.hanzi-cell{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;padding:14px 6px;background:var(--panel);
  border:1px solid var(--line);border-radius:10px;transition:.15s;
}
.hanzi-cell:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}
.hanzi-zi{font-size:26px;font-weight:500;line-height:1.2}
.hanzi-py{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* ============ 汉字详情 ============ */
.hanzi-detail{width:100%;max-width:none}

/* 顶部卡片 */
.hanzi-hero{
  display:flex;gap:32px;align-items:center;
  padding:32px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:32px;
}
.hanzi-big{
  width:160px;height:160px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--hover);border-radius:16px;overflow:hidden;
}
.hanzi-big img{width:100%;height:100%;object-fit:contain}
.hanzi-big-text{font-size:110px;line-height:1;font-family:"KaiTi","STKaiti",serif;color:var(--fg)}
.hanzi-info{flex:1;min-width:0}
.hanzi-info h1{
  font-size:48px;font-weight:600;margin:0 0 8px;line-height:1.1;
  font-family:"KaiTi","STKaiti",serif;
}
.hanzi-pinyin{
  font-size:18px;color:var(--accent);margin:0 0 18px;
  font-family:Georgia,serif;letter-spacing:.5px;
  word-break:break-word;overflow-wrap:anywhere;
}
.hanzi-tags{display:flex;flex-wrap:wrap;gap:8px}
.hanzi-tags .tag{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 12px;font-size:13px;color:var(--muted);
  background:var(--hover);border-radius:20px;
}
.hanzi-tags .tag i{font-size:12px;color:var(--accent)}

/* 基本信息表 */
.info-table{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:0;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;
}
.info-cell{
  display:flex;align-items:baseline;gap:10px;
  padding:14px 20px;border-bottom:1px solid var(--line);
  border-right:1px solid var(--line);font-size:14px;
  min-width:0;
}
.info-key{color:var(--muted);flex:none;min-width:64px}
.info-val{
  color:var(--fg);min-width:0;
  word-break:break-word;overflow-wrap:anywhere;
}

/* 正文 */
.art-body{
  background:var(--panel);
  border-radius:var(--radius);padding:8px 8px;
  font-size:15.5px;line-height:1.95;color:var(--fg);
  word-break:break-word;overflow-wrap:anywhere;
}
.art-body p{
  margin:0;padding:8px 0;
  word-break:break-word;overflow-wrap:anywhere;
}
.art-body p + p{border-top:1px dashed var(--line)}
.art-body b,.art-body strong{font-weight:600}

/* 【动】【名】这类词性标签 */
.pos-tag{
  display:inline-block;
  padding:1px 8px;margin-right:6px;
  font-size:12px;color:var(--accent);
  background:var(--accent-soft);
  border-radius:4px;
  font-weight:500;
  vertical-align:middle;
}

/* 字义/详解 */
.ziyi-body,.xiangjie-body{font-size:15.5px}
.art-body.ziyi-body {
    padding-left: 20px;
}
/* 笔顺 */
.bishun-desc{
  font-size:22px;letter-spacing:10px;color:var(--fg);
  margin:0 0 12px;font-family:"KaiTi","STKaiti",serif;
}
.bishun-code{font-size:13px;color:var(--muted);margin:0 0 16px}
.bishun-img{
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);padding:20px;text-align:center;
}
.bishun-img img{max-width:520px;margin:0 auto;display:block}

/* 相关汉字 */
.related-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));
  gap:8px;
}
.related-cell{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:12px 4px;background:var(--panel);border:1px solid var(--line);
  border-radius:10px;transition:.15s;
}
.related-cell:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}
.rc-zi{font-size:22px;font-weight:500;font-family:"KaiTi","STKaiti",serif}
.rc-py{
  font-size:11px;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}

/* 移动端 */

/* 下半区：出处 / 例句 整行卡片 */

.cy-section h2{
  font-size:15px;font-weight:600;margin:0 0 16px;
  padding-left:10px;border-left:3px solid var(--accent);
  color:var(--fg);
}
.cy-section .art-body{font-size:15px;line-height:1.9;color:#2a2a2a;margin:0}
[data-theme="dark"] .cy-section .art-body{color:#c8cdd4}

.cy-related li a{
  display:flex;flex-direction:column;gap:2px;padding:10px 14px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;
  transition:.15s;
}
.cy-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.cy-related 
.cy-related 

/* 移动端 */

/* 头部 */

.cy-hero h1{font-size:38px;font-weight:600;margin:0 0 12px;letter-spacing:6px}

/* 每个板块：整宽卡片 */

.cy-section h2{
  font-size:15px;font-weight:600;margin:0 0 16px;
  padding-left:10px;border-left:3px solid var(--accent);
  color:var(--fg);
}
.cy-section .art-body{font-size:15px;line-height:1.9;color:#2a2a2a;margin:0}
[data-theme="dark"] .cy-section .art-body{color:#c8cdd4}

.cy-related li a{
  display:flex;flex-direction:column;gap:2px;padding:10px 14px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;
  transition:.15s;
}
.cy-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.cy-related 
.cy-related 

.cy-card:hover{
  border-color:var(--accent);background:var(--accent-soft);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(43,108,176,.08);
}

[data-theme="dark"] 

/* 移动端 */

.cy-meta li{
  display:flex;align-items:flex-start;gap:16px;
  padding:12px 0;border-bottom:1px solid var(--line);
  font-size:14px;line-height:1.7;
}
.cy-meta li:first-child{padding-top:0}
.cy-meta li:last-child{border-bottom:0;padding-bottom:0}
.cy-meta li b{
  flex:none;width:48px;color:var(--muted);font-weight:500;
  font-size:13px;padding-top:2px;
}
.cy-meta li span{flex:1;min-width:0;color:#2a2a2a;word-break:break-word}
[data-theme="dark"] .cy-meta li span{color:#c8cdd4}
[data-theme="dark"] .cy-meta li{border-bottom-color:var(--line)}

.cy-card:hover{
  border-color:var(--accent)!important;
  background:var(--accent-soft)!important;
  transform:translateY(-2px)!important;
  box-shadow:0 6px 20px rgba(43,108,176,.08)!important;
}

.cy-card-head 
.cy-card-head 
.cy-card 
[data-theme="dark"] .cy-card 

/* 详情页段落 */

.cy-section h2{
  font-size:15px!important;font-weight:600!important;
  margin:0 0 16px!important;padding-left:10px!important;
  border-left:3px solid var(--accent)!important;
}
.cy-section .art-body{
  font-size:15px!important;line-height:1.9!important;
  color:#2a2a2a!important;margin:0!important;
}
[data-theme="dark"] .cy-section .art-body{color:#c8cdd4!important}

/* 详情页信息列表 */

.cy-meta li{
  display:flex!important;align-items:flex-start!important;gap:16px!important;
  padding:12px 0!important;border-bottom:1px solid var(--line)!important;
  font-size:14px!important;line-height:1.7!important;
}
.cy-meta li:last-child{border-bottom:0!important}
.cy-meta li b{
  flex:none!important;width:48px!important;
  color:var(--muted)!important;font-weight:500!important;
  font-size:13px!important;
}
.cy-meta li span{
  flex:1!important;min-width:0!important;
  color:#2a2a2a!important;word-break:break-word!important;
}
[data-theme="dark"] .cy-meta li span{color:#c8cdd4!important}

/* 详情页头部 */

.cy-hero h1{
  font-size:38px!important;font-weight:600!important;
  margin:0 0 12px!important;letter-spacing:6px!important;
}

/* 相关推荐 */

.cy-related li a{
  display:flex!important;flex-direction:column!important;gap:2px!important;
  padding:10px 14px!important;background:var(--panel)!important;
  border:1px solid var(--line)!important;border-radius:8px!important;
  transition:.15s!important;text-decoration:none!important;color:inherit!important;
}
.cy-related li a:hover{border-color:var(--accent)!important;background:var(--accent-soft)!important}
.cy-related 
.cy-related 

.cy-card:hover{
  border-color:var(--accent);background:var(--accent-soft);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(43,108,176,.08);
}

.cy-card-head 
.cy-card-head 
.cy-card 
[data-theme="dark"] .cy-card 

.cy-hero h1{font-size:38px;font-weight:600;margin:0 0 12px;letter-spacing:6px}

.cy-section h2{
  font-size:15px;font-weight:600;margin:0 0 16px;
  padding-left:10px;border-left:3px solid var(--accent);
}
.cy-section .art-body{font-size:15px;line-height:1.9;color:var(--fg);margin:0}
.cy-section .art-body p{margin:0 0 8px}

.cy-meta li{
  display:flex;align-items:flex-start;gap:16px;
  padding:12px 0;border-bottom:1px solid var(--line);
  font-size:14px;line-height:1.7;list-style:none;
}
.cy-meta li:last-child{border-bottom:0;padding-bottom:0}
.cy-meta li b{flex:none;width:48px;color:var(--muted);font-weight:500;font-size:13px;padding-top:2px}
.cy-meta li span{flex:1;min-width:0;color:var(--fg);word-break:break-word}

.cy-related li{list-style:none;padding:0;margin:0}
.cy-related li a{
  display:flex;flex-direction:column;gap:2px;padding:10px 14px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;
  transition:.15s;text-decoration:none;color:inherit;
}
.cy-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.cy-related 
.cy-related 

@media (max-width:820px){
  
  
  .cy-hero h1{font-size:26px;letter-spacing:3px}
  
}

.cy-card:hover{
  border-color:var(--accent) !important;
  background:var(--accent-soft) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(43,108,176,.08) !important;
}

.cy-card 
.cy-card 
.cy-card 
[data-theme="dark"] .cy-card 

@media (max-width:820px){
  
  
  .cy-card 
}

/* ============ 成语 ============ */
.cy-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:12px;margin-bottom:24px;
}
.cy-card{
  display:block;padding:14px 16px;
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);transition:.18s;
  text-decoration:none;color:inherit;
}
.cy-card:hover{
  border-color:var(--accent);background:var(--accent-soft);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(43,108,176,.08);
}
.cy-card-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.cy-card .cy-name{font-size:15px;font-weight:600;color:var(--accent);letter-spacing:.5px}
.cy-card .cy-py{font-size:11px;color:var(--muted)}
.cy-card .cy-js{
  font-size:13px;color:#666;line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
[data-theme="dark"] .cy-card .cy-js{color:#a8b0bb}

.cy-hero{
  text-align:center;padding:36px 20px;
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:20px;
}
.cy-hero h1{font-size:38px;font-weight:600;margin:0 0 12px;letter-spacing:6px}
.cy-pinyin{font-size:16px;color:var(--accent);margin:0 0 8px;letter-spacing:2px}
.cy-zhuyin{font-size:14px;color:var(--muted);margin:0}

.cy-section{
  padding:24px 26px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);
}
.cy-section h2{
  font-size:15px;font-weight:600;margin:0 0 16px;
  padding-left:10px;border-left:3px solid var(--accent);
}
.cy-section .art-body{font-size:15px;line-height:1.9;color:var(--fg);margin:0}

.cy-meta{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.cy-meta li{
  display:flex;align-items:flex-start;gap:16px;
  padding:12px 0;border-bottom:1px solid var(--line);
  font-size:14px;line-height:1.7;list-style:none;
}
.cy-meta li:last-child{border-bottom:0;padding-bottom:0}
.cy-meta li b{flex:none;width:48px;color:var(--muted);font-weight:500;font-size:13px;padding-top:2px}
.cy-meta li span{flex:1;min-width:0;color:var(--fg);word-break:break-word}

.cy-related{list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;
}
.cy-related li{list-style:none;padding:0;margin:0}
.cy-related li a{
  display:flex;flex-direction:column;gap:2px;padding:10px 14px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;
  transition:.15s;text-decoration:none;color:inherit;
}
.cy-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.cy-related .cy-name{font-size:14px;min-width:0;letter-spacing:0}
.cy-related .cy-py{font-size:11px;min-width:0}

@media (max-width:820px){
  .cy-grid{grid-template-columns:1fr;gap:8px}
  .cy-hero{padding:24px 16px}
  .cy-hero h1{font-size:26px;letter-spacing:3px}
  .cy-related{grid-template-columns:1fr 1fr}
}

/* ============ 词典 ============ */
.cd-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:12px;margin-bottom:24px;
}
.cd-card{
  display:block;padding:14px 16px;
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);transition:.18s;
  text-decoration:none;color:inherit;
}
.cd-card:hover{
  border-color:var(--accent);background:var(--accent-soft);
  transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(43,108,176,.08);
}
.cd-card-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.cd-card .cd-name{font-size:15px;font-weight:600;color:var(--accent);letter-spacing:.5px}
.cd-card .cd-py{font-size:11px;color:var(--muted)}
.cd-card .cd-js{
  font-size:13px;color:#666;line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
[data-theme="dark"] .cd-card .cd-js{color:#a8b0bb}

.cd-hero{
  text-align:center;padding:36px 20px;
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:20px;
}
.cd-hero h1{font-size:38px;font-weight:600;margin:0 0 12px;letter-spacing:6px}
.cd-pinyin{font-size:16px;color:var(--accent);margin:0 0 8px;letter-spacing:2px}
.cd-zhuyin{font-size:14px;color:var(--muted);margin:0}

.cd-section{
  padding:24px 26px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);
}
.cd-section h2{
  font-size:15px;font-weight:600;margin:0 0 16px;
  padding-left:10px;border-left:3px solid var(--accent);
}
.cd-section .art-body{font-size:15px;line-height:1.9;color:var(--fg);margin:0}

.cd-meta{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.cd-meta li{
  display:flex;align-items:flex-start;gap:16px;
  padding:12px 0;border-bottom:1px solid var(--line);
  font-size:14px;line-height:1.7;list-style:none;
}
.cd-meta li:last-child{border-bottom:0;padding-bottom:0}
.cd-meta li b{flex:none;width:64px;color:var(--muted);font-weight:500;font-size:13px;padding-top:2px}
.cd-meta li span{flex:1;min-width:0;color:var(--fg);word-break:break-word}

.cd-related{list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;
}
.cd-related li{list-style:none;padding:0;margin:0}
.cd-related li a{
  display:flex;flex-direction:column;gap:2px;padding:10px 14px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;
  transition:.15s;text-decoration:none;color:inherit;
}
.cd-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.cd-related .cd-name{font-size:14px;min-width:0;letter-spacing:0}
.cd-related .cd-py{font-size:11px;min-width:0}

@media (max-width:820px){
  .cd-grid{grid-template-columns:1fr;gap:8px}
  .cd-hero{padding:24px 16px}
  .cd-hero h1{font-size:26px;letter-spacing:3px}
  .cd-related{grid-template-columns:1fr 1fr}
}

/* ========== 英语单词 ========== */
.wd-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.wd-list li{border-bottom:1px solid var(--line)}
.wd-list li:last-child{border-bottom:0}
.wd-list li a{display:flex;align-items:center;gap:16px;padding:12px 20px;transition:.15s}
.wd-list li a:hover{background:var(--hover)}
.wd-word{font-size:15px;font-weight:500;color:var(--accent);flex:none;min-width:120px;font-family:-apple-system,"Segoe UI",Roboto,sans-serif}
.wd-phonetic{font-size:12px;color:var(--muted);flex:none;min-width:220px;font-family:"Times New Roman",serif}
.wd-phonetic em{font-style:normal;color:var(--accent);margin-right:3px;font-size:11px}
.wd-phonetic em + em{margin-left:12px}
.wd-js{font-size:13px;color:#555;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme="dark"] .wd-js{color:#a8b0bb}

.wd-detail{max-width:880px}
.wd-hero{text-align:center;padding:36px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:28px}
.wd-hero h1{font-size:44px;font-weight:600;margin:0 0 16px;font-family:-apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:1px}
.wd-phonetic-lg{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;font-family:"Times New Roman",serif}
.wd-ph{font-size:16px;color:var(--fg)}
.wd-ph em{font-style:normal;color:var(--accent);font-size:13px;margin-right:4px}

.wd-meta{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px}
.wd-meta li{font-size:14px;color:#444}
.wd-meta li b{color:var(--fg);font-weight:500}
[data-theme="dark"] .wd-meta li{color:#c0c5cd}

.wd-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.wd-related li a{display:flex;flex-direction:column;gap:3px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:8px;transition:.15s}
.wd-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.wd-related .wd-word{font-size:14px;font-weight:500}
.wd-phonetic-sm{font-size:11px;color:var(--muted);font-family:"Times New Roman",serif}

@media (max-width:640px){
  .wd-hero h1{font-size:32px}
  .wd-hero{padding:24px 16px}
  .wd-list li a{flex-wrap:wrap;gap:6px}
  .wd-word,.wd-phonetic{min-width:0}
  .wd-phonetic{width:100%;order:2}
  .wd-js{width:100%;order:3;white-space:normal}
  .wd-related{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}

/* 详情页宽度 100% */
.cy-detail,
.wd-detail,
.hanzi-detail,
.article{max-width:none !important}

/* ========== 谜语 ========== */
.rd-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.rd-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.rd-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.rd-cats a.on{background:var(--accent);color:#fff}

.rd-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.rd-list li{border-bottom:1px solid var(--line)}
.rd-list li:last-child{border-bottom:0}
.rd-list li a{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:14px 20px;transition:.15s;
}
.rd-list li a:hover{background:var(--hover)}
.rd-q{font-size:15px;color:var(--accent);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rd-a{font-size:13px;color:var(--muted);flex:none}

.rd-detail{max-width:none}
.rd-hero{
  text-align:center;padding:36px 20px 28px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.rd-hero h1{font-size:24px;font-weight:600;margin:0 0 12px;line-height:1.5;color:var(--fg)}
.rd-cat{font-size:13px;color:var(--muted);margin:0}
.rd-cat i{color:var(--accent);margin-right:4px}

.rd-answer{
  padding:28px;background:linear-gradient(135deg,var(--accent-soft),var(--panel));
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:32px;text-align:center;
}
.rd-answer-label{font-size:12px;color:var(--muted);letter-spacing:3px;margin-bottom:10px;text-transform:uppercase}
.rd-answer-text{font-size:28px;font-weight:600;color:var(--accent);letter-spacing:2px;line-height:1.4}

.rd-meta{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px}
.rd-meta li{font-size:14px;color:#444}
.rd-meta li b{color:var(--fg);font-weight:500}
[data-theme="dark"] .rd-meta li{color:#c0c5cd}

.rd-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.rd-related li a{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;transition:.15s;
}
.rd-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.rd-rel-q{font-size:13px;color:var(--fg);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rd-rel-a{font-size:12px;color:var(--accent);flex:none}

@media (max-width:640px){
  .rd-hero{padding:24px 16px}
  .rd-hero h1{font-size:18px}
  .rd-answer-text{font-size:22px}
  .rd-list li a{flex-direction:column;align-items:flex-start;gap:6px}
  .rd-q{white-space:normal;width:100%}
  .rd-related{grid-template-columns:1fr}
}

/* ========== 脑筋急转弯 ========== */
.bt-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.bt-list li{border-bottom:1px solid var(--line)}
.bt-list li:last-child{border-bottom:0}
.bt-list li a{
  display:flex;align-items:center;gap:16px;padding:14px 20px;transition:.15s;
}
.bt-list li a:hover{background:var(--hover)}
.bt-num{
  width:32px;height:32px;flex:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:13px;
}
.bt-q{font-size:15px;color:var(--accent);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bt-more{font-size:12px;color:var(--muted);flex:none;transition:.15s}
.bt-more i{font-size:10px;margin-left:2px}
.bt-list li a:hover .bt-more{color:var(--accent)}

.bt-detail{max-width:none}
.bt-hero{
  text-align:center;padding:40px 20px 28px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;position:relative;
}
.bt-badge{
  width:60px;height:60px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:24px;margin-bottom:18px;
}
.bt-hero h1{font-size:22px;font-weight:600;margin:0;line-height:1.6;color:var(--fg)}

.bt-answer{
  padding:32px 24px;background:linear-gradient(135deg,var(--accent-soft),var(--panel));
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:32px;text-align:center;
}
.bt-answer-label{font-size:12px;color:var(--muted);letter-spacing:3px;margin-bottom:14px;text-transform:uppercase}
.bt-answer-text{font-size:24px;font-weight:600;color:var(--accent);line-height:1.5}

.bt-meta{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px}
.bt-meta li{font-size:14px;color:#444}
.bt-meta li b{color:var(--fg);font-weight:500}
[data-theme="dark"] .bt-meta li{color:#c0c5cd}

.bt-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}
.bt-related li a{
  display:block;padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:13px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.bt-related li a:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .bt-hero{padding:28px 16px}
  .bt-hero h1{font-size:17px}
  .bt-answer-text{font-size:18px}
  .bt-list li a{gap:10px}
  .bt-q{white-space:normal}
  .bt-related{grid-template-columns:1fr}
}

/* ========== 古诗文 ========== */
.po-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.po-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.po-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.po-cats a.on{background:var(--accent);color:#fff}

.po-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.po-list li{border-bottom:1px solid var(--line)}
.po-list li:last-child{border-bottom:0}
.po-list li a{display:block;padding:14px 20px;transition:.15s}
.po-list li a:hover{background:var(--hover)}
.po-line1{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:4px}
.po-name{font-size:15px;font-weight:500;color:var(--accent)}
.po-author{font-size:13px;color:var(--muted);flex:none}
.po-line2{font-size:13px;color:#666;line-height:1.6;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
[data-theme="dark"] .po-line2{color:#a8b0bb}

.po-detail{max-width:none}
.po-hero{
  text-align:center;padding:36px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:28px;
}
.po-hero h1{font-size:32px;font-weight:600;margin:0 0 12px;letter-spacing:2px;color:var(--fg)}
.po-author-lg{font-size:14px;color:var(--muted);margin:0 0 16px;letter-spacing:1px}
.po-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:12px}
.po-tag{padding:3px 12px;background:var(--hover);color:var(--muted);font-size:12px;border-radius:12px}

.po-content{
  font-size:17px;line-height:2.2;color:var(--fg);text-align:center;
  padding:28px 32px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:28px;letter-spacing:1px;
}
.po-content p{margin:0 0 10px}
.po-content p:last-child{margin-bottom:0}

.po-meta{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px}
.po-meta li{font-size:14px;color:#444}
.po-meta li b{color:var(--fg);font-weight:500}
[data-theme="dark"] .po-meta li{color:#c0c5cd}

.po-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.po-related li a{
  display:flex;flex-direction:column;gap:4px;padding:12px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;transition:.15s;
}
.po-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.po-rel-name{font-size:14px;font-weight:500;color:var(--fg)}
.po-rel-author{font-size:12px;color:var(--muted)}

@media (max-width:640px){
  .po-hero h1{font-size:22px;letter-spacing:1px}
  .po-content{font-size:15px;padding:20px 16px;line-height:2}
  .po-list li a{padding:12px 16px}
  .po-line1{flex-direction:column;gap:2px}
  .po-related{grid-template-columns:1fr}
}

/* ========== 名人名言 ========== */
.ws-authors{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  max-height:180px;overflow-y:auto;
}
.ws-authors a{
  padding:5px 12px;border-radius:14px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.ws-authors a em{font-style:normal;color:var(--muted);font-size:11px;margin-left:3px}
.ws-authors a:hover{background:var(--accent-soft);color:var(--accent)}
.ws-authors a.on{background:var(--accent);color:#fff}
.ws-authors a.on em{color:rgba(255,255,255,.8)}

.ws-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.ws-list li{border-bottom:1px solid var(--line)}
.ws-list li:last-child{border-bottom:0}
.ws-list li a{
  display:block;padding:16px 22px 16px 52px;position:relative;transition:.15s;
}
.ws-list li a:hover{background:var(--hover)}
.ws-quote{
  position:absolute;left:20px;top:18px;color:var(--accent);font-size:14px;opacity:.35;
}
.ws-text{display:block;font-size:15px;color:var(--accent);line-height:1.7;margin-bottom:6px}
.ws-author{display:block;font-size:13px;color:var(--muted);text-align:right}

.ws-detail{max-width:none}
.ws-hero{
  text-align:center;padding:56px 24px 40px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:32px;position:relative;
}
.ws-hero-quote{font-size:32px;color:var(--accent);opacity:.3;margin-bottom:18px;display:block}
.ws-hero-text{
  font-size:26px;line-height:1.8;color:var(--fg);margin:0 0 20px;
  font-weight:500;letter-spacing:1px;font-style:normal;
}
.ws-hero-author{font-size:15px;color:var(--muted);margin:0;letter-spacing:1px}
.ws-hero-author span{color:var(--accent)}

.ws-meta{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px}
.ws-meta li{font-size:14px;color:#444}
.ws-meta li b{color:var(--fg);font-weight:500}
.ws-meta li a{color:var(--accent)}
.ws-meta li a:hover{text-decoration:underline}
[data-theme="dark"] .ws-meta li{color:#c0c5cd}

.ws-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px}
.ws-related li a{
  display:block;padding:14px 18px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;line-height:1.6;color:var(--fg);transition:.15s;
}
.ws-related li a:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .ws-hero{padding:36px 16px 28px}
  .ws-hero-text{font-size:18px}
  .ws-list li a{padding:14px 16px 14px 42px}
  .ws-quote{left:14px;top:16px;font-size:12px}
  .ws-related{grid-template-columns:1fr}
}

/* ========== 歇后语 ========== */
.efs-search{
  display:flex;align-items:center;gap:0;max-width:600px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);border-radius:24px;
  padding:4px 4px 4px 18px;transition:.2s;
}
.efs-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.efs-search i{color:var(--muted);font-size:14px}
.efs-search input{
  flex:1;height:36px;border:0;outline:none;background:transparent;
  padding:0 12px;font-size:14px;color:var(--fg);
}
.efs-search button{
  height:36px;padding:0 22px;border:0;border-radius:20px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;transition:.15s;
}
.efs-search button:hover{filter:brightness(1.1)}

.efs-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.efs-list li{border-bottom:1px solid var(--line)}
.efs-list li:last-child{border-bottom:0}
.efs-list li a{
  display:flex;align-items:center;gap:14px;padding:14px 22px;transition:.15s;
}
.efs-list li a:hover{background:var(--hover)}
.efs-facet{font-size:15px;color:var(--fg);flex:none}
.efs-arrow{color:var(--accent);font-size:12px;flex:none}
.efs-undertone{font-size:15px;color:var(--accent);font-weight:500}

.efs-detail{max-width:none}
.efs-hero{
  text-align:center;padding:48px 20px 40px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.efs-facet-lg{font-size:28px;font-weight:600;margin:0 0 20px;color:var(--fg);letter-spacing:2px;line-height:1.5}
.efs-arrow-lg{color:var(--accent);font-size:22px;margin:12px 0}
.efs-under-lg{font-size:32px;font-weight:700;color:var(--accent);letter-spacing:3px;line-height:1.5}

.efs-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.efs-nav a,.efs-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.efs-nav a{color:var(--accent)}
.efs-nav a:hover{text-decoration:underline}
.efs-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.efs-nav .disabled{opacity:.5}

.efs-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px}
.efs-related li a{
  display:flex;align-items:center;gap:8px;padding:12px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;transition:.15s;
  font-size:13px;
}
.efs-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.efs-related li a i{color:var(--accent);font-size:10px;flex:none}
.efs-rel-f{color:var(--fg);flex:none}
.efs-rel-u{color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:640px){
  .efs-facet-lg{font-size:20px;letter-spacing:1px}
  .efs-under-lg{font-size:22px;letter-spacing:1px}
  .efs-hero{padding:32px 16px}
  .efs-list li a{padding:12px 16px;gap:8px}
  .efs-facet,.efs-undertone{font-size:14px}
  .efs-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .efs-nav a,.efs-nav .disabled{max-width:100%}
  .efs-related{grid-template-columns:1fr}
}

/* ========== 对联 ========== */
.cl-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.cl-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.cl-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.cl-cats a.on{background:var(--accent);color:#fff}

.cl-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px}
.cl-list li a{
  display:block;padding:18px 22px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);transition:.15s;position:relative;
}
.cl-list li a:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.cl-hp{
  font-size:15px;font-weight:600;color:var(--accent);margin-bottom:12px;
  display:flex;align-items:center;gap:8px;
}
.cl-hp i{font-size:13px;opacity:.7}
.cl-line{font-size:14px;color:var(--fg);line-height:1.9;display:flex;gap:8px}
.cl-label{
  display:inline-block;padding:0 6px;font-size:11px;color:var(--muted);
  background:var(--hover);border-radius:4px;height:20px;line-height:20px;flex:none;
}

.cl-detail{max-width:none}
.cl-hero{
  text-align:center;padding:32px 20px 20px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;
  border-bottom:0;margin-bottom:0;
}
.cl-hp-lg{font-size:30px;font-weight:700;margin:0 0 10px;color:var(--accent);letter-spacing:4px}
.cl-cat{font-size:13px;color:var(--muted);margin:0}
.cl-cat i{color:var(--accent);margin-right:4px}

.cl-body{
  padding:36px 24px;background:var(--panel);
  border:1px solid var(--line);border-top:0;
  border-radius:0 0 var(--radius) var(--radius);margin-bottom:32px;
}
.cl-line-lg{
  display:flex;align-items:center;justify-content:center;gap:20px;
  padding:16px 0;font-size:22px;line-height:1.6;
}
.cl-line-lg + .cl-line-lg{border-top:1px dashed var(--line)}
.cl-label-lg{
  display:inline-block;padding:4px 12px;font-size:12px;color:#fff;
  background:var(--accent);border-radius:6px;letter-spacing:2px;flex:none;
}
.cl-text-lg{color:var(--fg);font-weight:500;letter-spacing:2px}

.cl-meta{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px}
.cl-meta li{font-size:14px;color:#444}
.cl-meta li b{color:var(--fg);font-weight:500}
[data-theme="dark"] .cl-meta li{color:#c0c5cd}

.cl-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.cl-related li a{
  display:flex;flex-direction:column;gap:5px;padding:14px 18px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;transition:.15s;
}
.cl-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.cl-rel-hp{font-size:13px;font-weight:600;color:var(--accent)}
.cl-rel-sl,.cl-rel-xl{font-size:13px;color:var(--fg);line-height:1.6}

@media (max-width:640px){
  .cl-list{grid-template-columns:1fr}
  .cl-hp-lg{font-size:22px;letter-spacing:2px}
  .cl-line-lg{font-size:16px;flex-direction:column;gap:8px;padding:14px 0}
  .cl-text-lg{letter-spacing:1px;text-align:center}
  .cl-body{padding:24px 16px}
  .cl-related{grid-template-columns:1fr}
}

/* ========== 笑话 ========== */
.jk-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.jk-list li a{
  display:block;padding:18px 22px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);transition:.15s;
  height:100%;box-sizing:border-box;
}
.jk-list li a:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.jk-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.jk-title{
  font-size:15px;font-weight:600;color:var(--accent);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.jk-title i{font-size:13px;margin-right:4px}
.jk-views{font-size:12px;color:var(--muted);flex:none}
.jk-views i{font-size:11px;margin-right:3px}
.jk-excerpt{
  font-size:13px;color:#555;line-height:1.75;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
[data-theme="dark"] .jk-excerpt{color:#a8b0bb}

.jk-detail{max-width:800px;margin:0 auto}
.jk-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;border-bottom:0;
}
.jk-hero h1{font-size:22px;font-weight:600;margin:0 0 10px;color:var(--fg);line-height:1.5}
.jk-hero h1 i{color:var(--accent);font-size:18px;margin-right:6px}
.jk-views-lg{font-size:13px;color:var(--muted);margin:0}
.jk-views-lg i{font-size:12px;margin-right:4px}

.jk-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);border-top:0;
  border-radius:0 0 var(--radius) var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2;color:var(--fg);
}
.jk-content br{line-height:2}

.jk-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.jk-nav a,.jk-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.jk-nav a{color:var(--accent)}
.jk-nav a:hover{text-decoration:underline}
.jk-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jk-nav .disabled{opacity:.5}

.jk-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
.jk-related li a{
  display:flex;flex-direction:column;gap:6px;padding:14px 18px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;transition:.15s;
}
.jk-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.jk-rel-title{font-size:14px;font-weight:600;color:var(--accent);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jk-rel-ex{font-size:12px;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

@media (max-width:640px){
  .jk-list{grid-template-columns:1fr}
  .jk-hero{padding:24px 16px 18px}
  .jk-hero h1{font-size:18px}
  .jk-content{padding:22px 18px;font-size:15px}
  .jk-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .jk-nav a,.jk-nav .disabled{max-width:100%}
  .jk-related{grid-template-columns:1fr}
}

/* 全站详情页宽度 100% 统一 */
.jk-detail,
.cy-detail,
.wd-detail,
.po-detail,
.ws-detail,
.rd-detail,
.bt-detail,
.efs-detail,
.cl-detail,
.hanzi-detail,
.article{
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* ========== 周公解梦 ========== */
.zg-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  max-height:200px;overflow-y:auto;
}
.zg-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.zg-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.zg-cats a.on{background:var(--accent);color:#fff}

.zg-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.zg-list li{border-bottom:1px solid var(--line)}
.zg-list li:last-child{border-bottom:0}
.zg-list li a{
  display:flex;align-items:center;gap:14px;padding:14px 22px;transition:.15s;
}
.zg-list li a:hover{background:var(--hover)}
.zg-icon{
  width:36px;height:36px;flex:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:15px;
}
.zg-name{flex:1;font-size:15px;color:var(--accent);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zg-more{font-size:12px;color:var(--muted);flex:none;transition:.15s}
.zg-more i{font-size:10px;margin-left:2px}
.zg-list li a:hover .zg-more{color:var(--accent)}

.zg-detail{max-width:none}
.zg-hero{
  text-align:center;padding:40px 20px 28px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.zg-badge{
  width:60px;height:60px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:24px;margin-bottom:16px;
}
.zg-hero h1{font-size:28px;font-weight:600;margin:0 0 12px;color:var(--fg);letter-spacing:1px}
.zg-cat{font-size:13px;color:var(--muted);margin:0}
.zg-cat i{color:var(--accent);margin-right:4px}

.zg-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2;color:var(--fg);
}
.zg-content p{margin:0 0 1em}
.zg-content p:last-child{margin-bottom:0}
.zg-content img{max-width:100%;height:auto;border-radius:6px}

.zg-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.zg-nav a,.zg-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.zg-nav a{color:var(--accent)}
.zg-nav a:hover{text-decoration:underline}
.zg-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zg-nav .disabled{opacity:.5}

.zg-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.zg-related li a{
  display:block;padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.zg-related li a:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .zg-hero{padding:28px 16px 20px}
  .zg-hero h1{font-size:20px}
  .zg-content{padding:22px 18px;font-size:15px}
  .zg-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .zg-nav a,.zg-nav .disabled{max-width:100%}
  .zg-related{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
}

/* ========== 十万个为什么 ========== */
.wy-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.wy-list li{border-bottom:1px solid var(--line)}
.wy-list li:last-child{border-bottom:0}
.wy-list li a{display:block;padding:14px 22px;transition:.15s}
.wy-list li a:hover{background:var(--hover)}
.wy-q{display:block;font-size:15px;font-weight:500;color:var(--accent);margin-bottom:4px;line-height:1.6}
.wy-q i{font-size:13px;margin-right:4px;opacity:.7}
.wy-ex{display:block;font-size:13px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme="dark"] .wy-ex{color:#a8b0bb}

.wy-detail{max-width:none}
.wy-hero{
  text-align:left;padding:32px 0 24px;margin-bottom:24px;
  border-bottom:1px solid var(--line);
}
.wy-hero h1{font-size:24px;font-weight:600;margin:0 0 10px;color:var(--fg);line-height:1.5}
.wy-views{font-size:13px;color:var(--muted);margin:0}
.wy-views i{font-size:12px;margin-right:4px}

.wy-content{
  font-size:16px;line-height:2;color:var(--fg);
  margin-bottom:28px;
}
.wy-content br{line-height:2}

.wy-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.wy-nav a,.wy-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.wy-nav a{color:var(--accent)}
.wy-nav a:hover{text-decoration:underline}
.wy-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wy-nav .disabled{opacity:.5}

.wy-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px}
.wy-related li a{
  display:block;padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.wy-related li a:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .wy-hero h1{font-size:18px}
  .wy-content{font-size:15px}
  .wy-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .wy-nav a,.wy-nav .disabled{max-width:100%}
  .wy-related{grid-template-columns:1fr}
}

/* 十万个为什么、周公解梦 详情页内容卡片统一 */
.wy-content,
.zg-content{
  padding:32px 36px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin-bottom:24px;
  font-size:16px;
  line-height:2;
  color:var(--fg);
}
.wy-content br{line-height:2}

@media (max-width:640px){
  .wy-content,.zg-content{padding:22px 18px;font-size:15px}
}

/* ========== 故事 ========== */
.st-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.st-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.st-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.st-cats a.on{background:var(--accent);color:#fff}

.st-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.st-list li{border-bottom:1px solid var(--line)}
.st-list li:last-child{border-bottom:0}
.st-list li a{display:block;padding:14px 22px;transition:.15s}
.st-list li a:hover{background:var(--hover)}
.st-title{display:block;font-size:15px;font-weight:500;color:var(--accent);margin-bottom:4px}
.st-title i{font-size:13px;margin-right:4px;opacity:.7}
.st-ex{display:block;font-size:13px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme="dark"] .st-ex{color:#a8b0bb}

.st-detail{max-width:none}
.st-hero{
  padding:32px 0 24px;margin-bottom:24px;border-bottom:1px solid var(--line);
}
.st-hero h1{font-size:24px;font-weight:600;margin:0 0 10px;color:var(--fg);line-height:1.5}
.st-cat{font-size:13px;color:var(--muted);margin:0 0 6px}
.st-cat i{color:var(--accent);margin-right:4px}
.st-views{font-size:13px;color:var(--muted);margin:0}
.st-views i{font-size:12px;margin-right:4px}

.st-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2;color:var(--fg);
}
.st-content br{line-height:2}
.st-content p{margin:0 0 1em}
.st-content p:last-child{margin-bottom:0}

.st-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.st-nav a,.st-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.st-nav a{color:var(--accent)}
.st-nav a:hover{text-decoration:underline}
.st-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-nav .disabled{opacity:.5}

.st-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}
.st-related li a{
  display:block;padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.st-related li a:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .st-hero h1{font-size:18px}
  .st-content{padding:22px 18px;font-size:15px}
  .st-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .st-nav a,.st-nav .disabled{max-width:100%}
  .st-related{grid-template-columns:1fr}
}

/* ========== 中草药 ========== */
.hb-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  max-height:180px;overflow-y:auto;
}
.hb-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.hb-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.hb-cats a.on{background:var(--accent);color:#fff}

.hb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.hb-card{
  display:flex;gap:14px;padding:14px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);transition:.15s;
}
.hb-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.hb-img{
  width:80px;height:80px;flex:none;border-radius:10px;overflow:hidden;
  background:var(--hover);display:flex;align-items:center;justify-content:center;
}
.hb-img img{width:100%;height:100%;object-fit:cover}
.hb-img i{font-size:32px;color:var(--accent)}
.hb-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.hb-name{font-size:15px;font-weight:600;color:var(--accent);margin:0}
.hb-spell{font-size:12px;color:var(--accent);margin:0}
.hb-alias{font-size:11px;color:var(--muted);margin:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-effect{font-size:12px;color:#666;margin:4px 0 0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-effect i{color:#2e7d32;margin-right:3px;font-size:11px}
[data-theme="dark"] .hb-effect{color:#a8b0bb}

.hb-detail{max-width:none}
.hb-hero{
  display:flex;gap:28px;align-items:flex-start;
  padding:28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:28px;
}
.hb-hero-img{
  width:200px;height:200px;flex:none;border-radius:12px;overflow:hidden;
  background:var(--hover);display:flex;align-items:center;justify-content:center;
}
.hb-hero-img img{width:100%;height:100%;object-fit:cover}
.hb-hero-img i{font-size:80px;color:var(--accent);opacity:.5}
.hb-hero-info{flex:1;min-width:0}
.hb-hero-info h1{font-size:28px;font-weight:600;margin:0 0 8px;color:var(--fg);letter-spacing:1px}
.hb-hero-spell{font-size:15px;color:var(--accent);margin:0 0 6px}
.hb-hero-en{font-size:14px;color:var(--muted);margin:0 0 12px;font-family:"Times New Roman",serif}
.hb-hero-cat{font-size:13px;color:var(--muted);margin:0 0 8px}
.hb-hero-cat i{color:var(--accent);margin-right:4px}
.hb-hero-alias{font-size:13px;color:#555;margin:0;line-height:1.6}
.hb-hero-alias b{color:var(--fg);font-weight:500}
[data-theme="dark"] .hb-hero-alias{color:#a8b0bb}

.hb-meta{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px}
.hb-meta li{font-size:14px;color:#444}
.hb-meta li b{color:var(--fg);font-weight:500}
[data-theme="dark"] .hb-meta li{color:#c0c5cd}

.hb-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.hb-rel-card{
  display:flex;gap:12px;padding:12px;background:var(--panel);
  border:1px solid var(--line);border-radius:10px;transition:.15s;
}
.hb-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.hb-rel-img{
  width:60px;height:60px;flex:none;border-radius:8px;overflow:hidden;
  background:var(--hover);display:flex;align-items:center;justify-content:center;
}
.hb-rel-img img{width:100%;height:100%;object-fit:cover}
.hb-rel-img i{font-size:24px;color:var(--accent)}
.hb-rel-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px}
.hb-rel-name{font-size:14px;font-weight:500;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-rel-spell{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media (max-width:640px){
  .hb-grid{grid-template-columns:1fr}
  .hb-hero{flex-direction:column;align-items:center;text-align:center;padding:20px}
  .hb-hero-img{width:140px;height:140px}
  .hb-hero-info h1{font-size:22px}
  .hb-related{grid-template-columns:1fr}
}

/* 中草药分类移动端换行 + 修复溢出 */
.hb-cats{
  max-height:none !important;
  overflow-y:visible !important;
  overflow-x:hidden !important;
}
.hb-cats a{
  white-space:normal !important;
  word-break:break-all;
  max-width:100%;
}

@media (max-width:640px){
  .hb-cats{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:6px !important;
  }
  .hb-cats a{
    font-size:12px !important;
    padding:5px 10px !important;
  }
  /* 防止整个内容区横向溢出 */
  .content{overflow-x:hidden}
  .hb-grid{grid-template-columns:1fr !important;padding:0}
  .hb-card{max-width:100%}
}

/* 中草药卡片文字自动换行，不截断 */
.hb-alias,
.hb-effect{
  white-space:normal !important;
  text-overflow:clip !important;
  overflow:visible !important;
  word-break:break-word;
  line-height:1.5;
}
.hb-body{gap:4px}

@media (max-width:640px){
  .hb-card{padding:12px;gap:12px}
  .hb-img{width:72px;height:72px}
  .hb-name{font-size:14px}
  .hb-spell{font-size:12px}
  .hb-alias{font-size:11px}
  .hb-effect{font-size:12px}
}

/* 中草药列表卡片 别名单行截断，保持卡片整齐 */
.hb-alias{
  white-space:nowrap !important;
  text-overflow:ellipsis !important;
  overflow:hidden !important;
  display:block;
}
.hb-body{gap:4px}

/* ========== 民间偏方 ========== */
.pf-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.pf-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.pf-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.pf-cats a.on{background:var(--accent);color:#fff}

.pf-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.pf-list li{border-bottom:1px solid var(--line)}
.pf-list li:last-child{border-bottom:0}
.pf-list li a{display:block;padding:14px 22px;transition:.15s}
.pf-list li a:hover{background:var(--hover)}
.pf-title{display:block;font-size:15px;font-weight:500;color:var(--accent);margin-bottom:4px}
.pf-title i{font-size:13px;margin-right:4px;opacity:.7}
.pf-ex{display:block;font-size:13px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme="dark"] .pf-ex{color:#a8b0bb}

.pf-detail{max-width:none}
.pf-hero{
  padding:32px 0 20px;margin-bottom:24px;border-bottom:1px solid var(--line);
}
.pf-hero h1{font-size:24px;font-weight:600;margin:0 0 10px;color:var(--fg);line-height:1.5}
.pf-hero h1 i{color:var(--accent);font-size:20px;margin-right:6px}
.pf-sub{font-size:13px;color:var(--muted);margin:0;gap:16px;flex-wrap:wrap}
.pf-sub i{font-size:12px;margin-right:4px}

.pf-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2;color:var(--fg);
}
.pf-content br{line-height:2}
.pf-content p{margin:0 0 1em}
.pf-content p:last-child{margin-bottom:0}

.pf-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.pf-nav a,.pf-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.pf-nav a{color:var(--accent)}
.pf-nav a:hover{text-decoration:underline}
.pf-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-nav .disabled{opacity:.5}

.pf-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px}
.pf-related li a{
  display:block;padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pf-related li a:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .pf-hero h1{font-size:18px}
  .pf-content{padding:22px 18px;font-size:15px}
  .pf-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .pf-nav a,.pf-nav .disabled{max-width:100%}
  .pf-related{grid-template-columns:1fr}
}

/* ========== 谚语 ========== */
.sy-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  max-height:160px;overflow-y:auto;
}
.sy-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.sy-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.sy-cats a.on{background:var(--accent);color:#fff}

.sy-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.sy-list li{border-bottom:1px solid var(--line)}
.sy-list li:last-child{border-bottom:0}
.sy-list li a{
  display:flex;align-items:center;gap:14px;padding:14px 22px;transition:.15s;
}
.sy-list li a:hover{background:var(--hover)}
.sy-quote{color:var(--accent);opacity:.35;font-size:13px;flex:none}
.sy-text{font-size:15px;color:var(--accent);flex:1;min-width:0;line-height:1.7}
.sy-more{font-size:12px;color:var(--muted);flex:none}
.sy-more i{font-size:10px;margin-left:2px}
.sy-list li a:hover .sy-more{color:var(--accent)}

.sy-detail{max-width:none}
.sy-hero{
  text-align:center;padding:48px 24px 32px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.sy-hero-quote{font-size:32px;color:var(--accent);opacity:.3;display:block;margin-bottom:16px}
.sy-hero-text{
  font-size:26px;font-weight:500;line-height:1.7;color:var(--fg);margin:0 0 16px;
  letter-spacing:1px;
}
.sy-hero-cat{font-size:13px;color:var(--muted);margin:0}
.sy-hero-cat i{color:var(--accent);margin-right:4px}

.sy-explain{
  padding:28px 32px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
}
.sy-explain h2{
  font-size:17px;font-weight:600;margin:0 0 14px;
  padding-left:10px;border-left:3px solid var(--accent);
}
.sy-explain-body{font-size:15px;line-height:1.9;color:var(--fg)}

.sy-meta{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px}
.sy-meta li{font-size:14px;color:#444}
.sy-meta li b{color:var(--fg);font-weight:500}
[data-theme="dark"] .sy-meta li{color:#c0c5cd}

.sy-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.sy-nav a,.sy-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.sy-nav a{color:var(--accent)}
.sy-nav a:hover{text-decoration:underline}
.sy-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sy-nav .disabled{opacity:.5}

.sy-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px}
.sy-related li a{
  display:block;padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.sy-related li a:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .sy-hero{padding:32px 18px 24px}
  .sy-hero-text{font-size:18px}
  .sy-list li a{flex-wrap:wrap;gap:6px}
  .sy-text{width:100%}
  .sy-more{width:100%;text-align:right}
  .sy-explain{padding:20px 18px}
  .sy-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .sy-nav a,.sy-nav .disabled{max-width:100%}
  .sy-related{grid-template-columns:1fr}
}

/* 谚语详情 hero 里的 meta（分类 + 浏览） */
.sy-hero-meta{
  display:flex;justify-content:center;align-items:center;gap:16px;
  flex-wrap:wrap;margin-top:6px;
}
.sy-hero-cat{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 14px;background:var(--accent-soft);color:var(--accent);
  border-radius:14px;font-size:13px;transition:.15s;
}
.sy-hero-cat:hover{background:var(--accent);color:#fff}
.sy-hero-cat i{font-size:12px}
.sy-hero-views{
  display:inline-flex;align-items:center;gap:5px;
  font-size:13px;color:var(--muted);
}
.sy-hero-views i{font-size:12px}

/* ========== 酒方 ========== */
.wi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.wi-card{
  display:block;padding:18px 20px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);transition:.15s;
}
.wi-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.wi-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.wi-card-icon{
  width:36px;height:36px;flex:none;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:16px;
}
.wi-card-name{font-size:15px;font-weight:600;color:var(--accent);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wi-card-src{font-size:12px;color:var(--muted);margin:0 0 8px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wi-card-line{font-size:13px;color:#555;margin:0 0 4px;line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wi-card-line b{color:var(--fg);font-weight:500}
.wi-card-effect{color:#2e7d32}
[data-theme="dark"] .wi-card-line{color:#a8b0bb}
[data-theme="dark"] .wi-card-effect{color:#6ec07a}

.wi-detail{max-width:none}
.wi-hero{
  text-align:center;padding:36px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.wi-hero-icon{
  width:60px;height:60px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:24px;margin-bottom:16px;
}
.wi-hero h1{font-size:26px;font-weight:600;margin:0 0 10px;color:var(--fg);letter-spacing:1px}
.wi-hero-src{font-size:14px;color:var(--muted);margin:0 0 12px}
.wi-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.wi-hero-meta i{font-size:12px;margin-right:4px}

.wi-section{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.wi-section h2{
  font-size:16px;font-weight:600;margin:0 0 14px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.wi-section h2 i{color:var(--accent);font-size:15px}
.wi-body{font-size:15px;line-height:1.9;color:var(--fg)}
.wi-section-taboo{background:#fff8e6;border-color:#f5d99a}
[data-theme="dark"] .wi-section-taboo{background:#2a2415;border-color:#5c4a1a}
.wi-section-taboo h2 i{color:#c98a00}
.wi-section-taboo .wi-body{color:#8a6000}
[data-theme="dark"] .wi-section-taboo .wi-body{color:#e0c070}

.wi-nav{
  display:flex;justify-content:space-between;gap:12px;margin:24px 0 32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.wi-nav a,.wi-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.wi-nav a{color:var(--accent)}
.wi-nav a:hover{text-decoration:underline}
.wi-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wi-nav .disabled{opacity:.5}

.wi-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.wi-rel-card{
  display:flex;gap:12px;padding:12px;background:var(--panel);
  border:1px solid var(--line);border-radius:10px;transition:.15s;align-items:center;
}
.wi-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.wi-rel-icon{
  width:40px;height:40px;flex:none;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  background:var(--hover);color:var(--accent);font-size:16px;
}
.wi-rel-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.wi-rel-name{font-size:14px;font-weight:500;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wi-rel-src{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media (max-width:640px){
  .wi-grid{grid-template-columns:1fr}
  .wi-hero{padding:24px 16px 18px}
  .wi-hero h1{font-size:20px}
  .wi-section{padding:18px 16px}
  .wi-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .wi-nav a,.wi-nav .disabled{max-width:100%}
  .wi-related{grid-template-columns:1fr}
}

/* ========== 药茶 ========== */
.ti-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.ti-card{
  display:block;padding:18px 20px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);transition:.15s;
}
.ti-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.ti-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ti-card-icon{
  width:36px;height:36px;flex:none;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:16px;
}
.ti-card-name{font-size:15px;font-weight:600;color:var(--accent);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ti-card-src{font-size:12px;color:var(--muted);margin:0 0 8px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ti-card-line{font-size:13px;color:#555;margin:0 0 4px;line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ti-card-line b{color:var(--fg);font-weight:500}
.ti-card-effect{color:#2e7d32}
[data-theme="dark"] .ti-card-line{color:#a8b0bb}
[data-theme="dark"] .ti-card-effect{color:#6ec07a}

.ti-detail{max-width:none}
.ti-hero{
  text-align:center;padding:36px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.ti-hero-icon{
  width:60px;height:60px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:24px;margin-bottom:16px;
}
.ti-hero h1{font-size:26px;font-weight:600;margin:0 0 10px;color:var(--fg);letter-spacing:1px}
.ti-hero-src{font-size:14px;color:var(--muted);margin:0 0 12px}
.ti-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.ti-hero-meta i{font-size:12px;margin-right:4px}

.ti-section{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.ti-section h2{
  font-size:16px;font-weight:600;margin:0 0 14px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.ti-section h2 i{color:var(--accent);font-size:15px}
.ti-body{font-size:15px;line-height:1.9;color:var(--fg)}
.ti-section-taboo{background:#fff8e6;border-color:#f5d99a}
[data-theme="dark"] .ti-section-taboo{background:#2a2415;border-color:#5c4a1a}
.ti-section-taboo h2 i{color:#c98a00}
.ti-section-taboo .ti-body{color:#8a6000}
[data-theme="dark"] .ti-section-taboo .ti-body{color:#e0c070}

.ti-nav{
  display:flex;justify-content:space-between;gap:12px;margin:24px 0 32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.ti-nav a,.ti-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.ti-nav a{color:var(--accent)}
.ti-nav a:hover{text-decoration:underline}
.ti-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ti-nav .disabled{opacity:.5}

.ti-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.ti-rel-card{
  display:flex;gap:12px;padding:12px;background:var(--panel);
  border:1px solid var(--line);border-radius:10px;transition:.15s;align-items:center;
}
.ti-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.ti-rel-icon{
  width:40px;height:40px;flex:none;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  background:var(--hover);color:var(--accent);font-size:16px;
}
.ti-rel-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ti-rel-name{font-size:14px;font-weight:500;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ti-rel-src{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media (max-width:640px){
  .ti-grid{grid-template-columns:1fr}
  .ti-hero{padding:24px 16px 18px}
  .ti-hero h1{font-size:20px}
  .ti-section{padding:18px 16px}
  .ti-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .ti-nav a,.ti-nav .disabled{max-width:100%}
  .ti-related{grid-template-columns:1fr}
}

/* ========== 药品查询 ========== */
.dr-search{
  display:flex;align-items:center;gap:0;max-width:600px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);border-radius:24px;
  padding:4px 4px 4px 18px;transition:.2s;
}
.dr-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.dr-search i{color:var(--muted);font-size:14px}
.dr-search input{flex:1;height:36px;border:0;outline:none;background:transparent;
  padding:0 12px;font-size:14px;color:var(--fg)}
.dr-search button{height:36px;padding:0 22px;border:0;border-radius:20px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;transition:.15s}
.dr-search button:hover{filter:brightness(1.1)}

.dr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.dr-card{
  display:block;padding:18px 20px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);transition:.15s;
}
.dr-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.dr-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.dr-card-icon{
  width:36px;height:36px;flex:none;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:16px;
}
.dr-card-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.dr-card-name{font-size:15px;font-weight:600;color:var(--accent);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dr-card-goods{font-size:12px;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dr-card-line{font-size:13px;color:#555;margin:0 0 4px;line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dr-card-line b{color:var(--fg);font-weight:500}
[data-theme="dark"] .dr-card-line{color:#a8b0bb}

.dr-detail{max-width:none}
.dr-hero{
  text-align:center;padding:36px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.dr-hero-icon{
  width:60px;height:60px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:24px;margin-bottom:16px;
}
.dr-hero h1{font-size:26px;font-weight:600;margin:0 0 8px;color:var(--fg);letter-spacing:1px}
.dr-hero-goods{font-size:14px;color:var(--muted);margin:0 0 12px}
.dr-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.dr-hero-meta i{font-size:12px;margin-right:4px}

.dr-section{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.dr-section h2{
  font-size:16px;font-weight:600;margin:0 0 14px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.dr-section h2 i{color:var(--accent);font-size:15px}
.dr-body{font-size:15px;line-height:1.9;color:var(--fg)}
.dr-section-jj{background:#fff0f0;border-color:#f5baba}
[data-theme="dark"] .dr-section-jj{background:#2a1616;border-color:#5c2020}
.dr-section-jj h2 i{color:#c62828}
.dr-section-jj .dr-body{color:#8a2020}
[data-theme="dark"] .dr-section-jj .dr-body{color:#e07070}
.dr-section-zysx{background:#fff8e6;border-color:#f5d99a}
[data-theme="dark"] .dr-section-zysx{background:#2a2415;border-color:#5c4a1a}
.dr-section-zysx h2 i{color:#c98a00}
.dr-section-info .dr-meta{list-style:none;padding:0;margin:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px 20px}
.dr-section-info .dr-meta li{font-size:14px;color:#444}
.dr-section-info .dr-meta li b{color:var(--fg);font-weight:500}
[data-theme="dark"] .dr-section-info .dr-meta li{color:#c0c5cd}

.dr-nav{
  display:flex;justify-content:space-between;gap:12px;margin:24px 0 32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.dr-nav a,.dr-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.dr-nav a{color:var(--accent)}
.dr-nav a:hover{text-decoration:underline}
.dr-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dr-nav .disabled{opacity:.5}

.dr-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.dr-rel-card{
  display:flex;gap:12px;padding:12px;background:var(--panel);
  border:1px solid var(--line);border-radius:10px;transition:.15s;align-items:center;
}
.dr-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.dr-rel-icon{
  width:40px;height:40px;flex:none;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  background:var(--hover);color:var(--accent);font-size:16px;
}
.dr-rel-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.dr-rel-name{font-size:14px;font-weight:500;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dr-rel-goods{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media (max-width:640px){
  .dr-grid{grid-template-columns:1fr}
  .dr-hero{padding:24px 16px 18px}
  .dr-hero h1{font-size:20px}
  .dr-section{padding:18px 16px}
  .dr-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .dr-nav a,.dr-nav .disabled{max-width:100%}
  .dr-related{grid-template-columns:1fr}
}

/* ========== 绕口令 ========== */
.sl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.sl-card{
  display:block;padding:18px 20px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);transition:.15s;
}
.sl-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.sl-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.sl-card-icon{
  width:36px;height:36px;flex:none;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:16px;
}
.sl-card-name{font-size:15px;font-weight:600;color:var(--accent);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sl-card-ex{font-size:13px;color:#666;line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
[data-theme="dark"] .sl-card-ex{color:#a8b0bb}

.sl-detail{max-width:none}
.sl-hero{
  text-align:center;padding:36px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.sl-hero-icon{
  width:60px;height:60px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:24px;margin-bottom:16px;
}
.sl-hero h1{font-size:26px;font-weight:600;margin:0 0 10px;color:var(--fg);letter-spacing:1px}
.sl-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.sl-hero-meta i{font-size:12px;margin-right:4px}

.sl-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:17px;line-height:2.2;color:var(--fg);
  letter-spacing:1px;
}
.sl-content div{margin:0 0 6px}
.sl-content br{line-height:2.2}

.sl-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.sl-nav a,.sl-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.sl-nav a{color:var(--accent)}
.sl-nav a:hover{text-decoration:underline}
.sl-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sl-nav .disabled{opacity:.5}

.sl-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.sl-rel-card{
  display:flex;gap:8px;padding:12px 16px;background:var(--panel);
  border:1px solid var(--line);border-radius:8px;transition:.15s;align-items:center;
}
.sl-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.sl-rel-icon{color:var(--accent);font-size:12px;flex:none;opacity:.6}
.sl-rel-name{font-size:14px;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:640px){
  .sl-grid{grid-template-columns:1fr}
  .sl-hero{padding:24px 16px 18px}
  .sl-hero h1{font-size:20px}
  .sl-content{padding:22px 18px;font-size:15px;line-height:2}
  .sl-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .sl-nav a,.sl-nav .disabled{max-width:100%}
  .sl-related{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
}

/* ========== 百家姓 ========== */
.sn-alpha{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.sn-alpha a{
  min-width:36px;height:36px;padding:0 10px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:10px;font-size:14px;color:var(--fg);background:var(--hover);transition:.15s;
}
.sn-alpha a:hover{background:var(--accent-soft);color:var(--accent)}
.sn-alpha a.on{background:var(--accent);color:#fff}

.sn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.sn-card{
  display:flex;align-items:center;gap:12px;padding:14px 18px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  transition:.15s;
}
.sn-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.sn-zi{
  width:52px;height:52px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);
  font-size:26px;font-weight:600;border-radius:12px;
}
.sn-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.sn-ini{font-size:12px;color:var(--muted);font-weight:500}
.sn-more{font-size:12px;color:var(--muted)}
.sn-more i{font-size:10px;margin-left:2px}
.sn-card:hover .sn-more{color:var(--accent)}

.sn-detail{max-width:none}
.sn-hero{
  text-align:center;padding:36px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.sn-hero-zi{
  width:100px;height:100px;margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);
  font-size:56px;font-weight:600;border-radius:20px;
}
.sn-hero h1{font-size:26px;font-weight:600;margin:0 0 12px;color:var(--fg);letter-spacing:2px}
.sn-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.sn-hero-ini{color:var(--accent);font-weight:500}
.sn-hero-meta i{font-size:12px;margin-right:4px}

.sn-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2;color:var(--fg);
}
.sn-content p{margin:0 0 1em}
.sn-content p:last-child{margin-bottom:0}
.sn-content br{line-height:2}

.sn-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.sn-nav a,.sn-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.sn-nav a{color:var(--accent)}
.sn-nav a:hover{text-decoration:underline}
.sn-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sn-nav .disabled{opacity:.5}

.sn-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.sn-rel-card{
  display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:14px 8px;background:var(--panel);border:1px solid var(--line);
  border-radius:10px;transition:.15s;
}
.sn-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.sn-rel-zi{
  width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  background:var(--hover);color:var(--accent);font-size:22px;font-weight:600;border-radius:10px;
}
.sn-rel-card:hover .sn-rel-zi{background:#fff}
[data-theme="dark"] .sn-rel-card:hover .sn-rel-zi{background:var(--panel)}
.sn-rel-name{font-size:12px;color:var(--muted)}

@media (max-width:640px){
  .sn-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
  .sn-card{padding:12px 14px}
  .sn-zi{width:44px;height:44px;font-size:22px}
  .sn-more{display:none}
  .sn-hero{padding:28px 16px}
  .sn-hero-zi{width:80px;height:80px;font-size:44px}
  .sn-hero h1{font-size:22px}
  .sn-content{padding:22px 18px;font-size:15px}
  .sn-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .sn-nav a,.sn-nav .disabled{max-width:100%}
}

/* 百家姓卡片更宽松 */
.sn-grid{gap:14px}
.sn-card{padding:16px 20px}
.sn-zi{width:56px;height:56px;font-size:28px}
@media (max-width:640px){
  .sn-zi{width:48px;height:48px;font-size:24px}
}

/* 百家姓：多字复姓不塞方块，改用文字 */
.sn-card-multi .sn-zi{
  width:auto;
  min-width:56px;
  padding:0 8px;
  font-size:20px;
  font-weight:500;
  letter-spacing:1px;
  line-height:1.2;
  text-align:center;
  word-break:break-all;
}
.sn-card-multi .sn-zi.sn-zi-sm{
  font-size:16px;
  padding:0 6px;
}
@media (max-width:640px){
  .sn-card-multi .sn-zi{min-width:48px;font-size:16px}
  .sn-card-multi .sn-zi.sn-zi-sm{font-size:14px}
}

/* 百家姓详情 hero 多字姓氏不塞方块 */
.sn-hero-zi-multi{
  width:auto !important;
  min-width:120px;
  padding:12px 28px;
  font-size:36px !important;
  letter-spacing:4px;
  line-height:1.2;
  height:auto !important;
}
.sn-hero-zi-long{
  font-size:26px !important;
  letter-spacing:2px;
  padding:14px 20px;
}
@media (max-width:640px){
  .sn-hero-zi-multi{font-size:26px !important;padding:10px 20px;letter-spacing:2px}
  .sn-hero-zi-long{font-size:20px !important;letter-spacing:1px}
}

/* ========== 歌词 ========== */
.ly-search{
  display:flex;align-items:center;gap:0;max-width:600px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);border-radius:24px;
  padding:4px 4px 4px 18px;transition:.2s;
}
.ly-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ly-search i{color:var(--muted);font-size:14px}
.ly-search input{flex:1;height:36px;border:0;outline:none;background:transparent;
  padding:0 12px;font-size:14px;color:var(--fg)}
.ly-search button{height:36px;padding:0 22px;border:0;border-radius:20px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;transition:.15s}
.ly-search button:hover{filter:brightness(1.1)}

.ly-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.ly-list li{border-bottom:1px solid var(--line)}
.ly-list li:last-child{border-bottom:0}
.ly-list li a{display:block;padding:14px 22px;transition:.15s}
.ly-list li a:hover{background:var(--hover)}
.ly-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:4px}
.ly-title{font-size:15px;font-weight:500;color:var(--accent);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ly-title i{font-size:13px;margin-right:4px;opacity:.7}
.ly-singer{font-size:13px;color:var(--muted);flex:none}
.ly-ex{font-size:13px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme="dark"] .ly-ex{color:#a8b0bb}

.ly-detail{max-width:none}
.ly-hero{
  text-align:center;padding:36px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.ly-hero-icon{
  width:60px;height:60px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:24px;margin-bottom:16px;
}
.ly-hero h1{font-size:26px;font-weight:600;margin:0 0 8px;color:var(--fg);letter-spacing:1px}
.ly-hero-singer{font-size:14px;color:var(--muted);margin:0 0 12px}
.ly-hero-singer i{color:var(--accent);margin-right:4px;font-size:13px}
.ly-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.ly-hero-meta i{font-size:12px;margin-right:4px}

.ly-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2.2;color:var(--fg);
  white-space:pre-wrap;word-break:break-word;
}
.ly-content br{line-height:2.2}

.ly-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.ly-nav a,.ly-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.ly-nav a{color:var(--accent)}
.ly-nav a:hover{text-decoration:underline}
.ly-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ly-nav .disabled{opacity:.5}

.ly-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.ly-rel-card{
  display:flex;gap:12px;padding:12px;background:var(--panel);
  border:1px solid var(--line);border-radius:10px;transition:.15s;align-items:center;
}
.ly-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.ly-rel-icon{
  width:40px;height:40px;flex:none;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  background:var(--hover);color:var(--accent);font-size:16px;
}
.ly-rel-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ly-rel-name{font-size:14px;font-weight:500;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ly-rel-singer{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media (max-width:640px){
  .ly-hero{padding:24px 16px 18px}
  .ly-hero h1{font-size:20px}
  .ly-content{padding:22px 18px;font-size:15px}
  .ly-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .ly-nav a,.ly-nav .disabled{max-width:100%}
  .ly-related{grid-template-columns:1fr}
}

/* 歌词段落样式 */
.ly-content p{
  margin:0 0 6px;
  line-height:2;
  padding:0;
  min-height:1em;
}
.ly-content p:last-child{margin-bottom:0}
.ly-content p:empty{display:none}

@media (max-width:640px){
  .ly-content p{margin:0 0 4px;line-height:1.9}
}

/* ========== 身份证归属地 ========== */
.ic-search{
  display:flex;align-items:center;gap:0;max-width:600px;margin-bottom:24px;
  background:var(--panel);border:1px solid var(--line);border-radius:24px;
  padding:4px 4px 4px 18px;transition:.2s;
}
.ic-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ic-search > i{color:var(--muted);font-size:14px}
.ic-search input{
  flex:1;height:36px;border:0;outline:none;background:transparent;
  padding:0 12px;font-size:14px;color:var(--fg);letter-spacing:2px;
}
.ic-search button{
  height:36px;padding:0 22px;border:0;border-radius:20px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;transition:.15s;
}
.ic-search button:hover{filter:brightness(1.1)}

.ic-result{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:24px;overflow:hidden;
}
.ic-result-head{
  padding:14px 22px;background:var(--accent-soft);color:var(--accent);
  font-size:14px;font-weight:500;
}
.ic-result-head i{font-size:15px;margin-right:6px}
.ic-result-body{padding:8px 22px 20px}
.ic-result-row{
  display:flex;gap:20px;padding:14px 0;
  border-bottom:1px solid var(--line);
}
.ic-result-row:last-child{border-bottom:0}
.ic-lb{width:110px;flex:none;color:var(--muted);font-size:14px}
.ic-vl{color:var(--fg);font-size:15px;font-weight:500}

.ic-provinces{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;
}
.ic-prov{
  display:flex;align-items:center;gap:10px;padding:12px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  transition:.15s;
}
.ic-prov:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}
.ic-prov-code{
  font-size:13px;font-weight:600;color:var(--accent);
  padding:2px 8px;background:var(--accent-soft);border-radius:6px;
}
.ic-prov:hover .ic-prov-code{background:var(--accent);color:#fff}
.ic-prov-name{font-size:14px;color:var(--fg);font-weight:500}

.ic-desc{font-size:14px;line-height:2;color:var(--fg)}
.ic-desc p{margin:0 0 10px}
.ic-desc p:last-child{margin-bottom:0}
.ic-desc code{
  padding:2px 8px;background:var(--hover);border-radius:5px;
  font-family:Consolas,Monaco,monospace;font-size:13px;color:var(--accent);
}

@media (max-width:640px){
  .ic-search input{letter-spacing:1px}
  .ic-provinces{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}
  .ic-prov{padding:10px 12px;gap:8px}
  .ic-prov-code{font-size:12px;padding:2px 6px}
  .ic-prov-name{font-size:13px}
  .ic-lb{width:90px;font-size:13px}
  .ic-vl{font-size:14px}
}

/* ========== 二十四节气 ========== */
.jq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.jq-card{
  display:block;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;transition:.15s;
}
.jq-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(43,108,176,.08)}
.jq-card-img{
  width:100%;height:140px;background:var(--hover);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.jq-card-img img{width:100%;height:100%;object-fit:cover}
.jq-card-img i{font-size:40px;color:var(--accent);opacity:.5}
.jq-card-body{padding:14px 18px}
.jq-card-name{display:block;font-size:17px;font-weight:600;color:var(--accent);margin-bottom:4px}
.jq-card-en{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;font-family:"Times New Roman",serif}
.jq-card-date{display:block;font-size:13px;color:var(--accent);font-weight:500}

.jq-detail{max-width:none}
.jq-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.jq-hero-img{
  width:120px;height:120px;margin:0 auto 16px;
  background:var(--hover);border-radius:50%;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.jq-hero-img img{width:100%;height:100%;object-fit:cover}
.jq-hero h1{font-size:32px;font-weight:600;margin:0 0 8px;color:var(--fg);letter-spacing:4px}
.jq-hero-en{font-size:14px;color:var(--muted);margin:0 0 14px;font-family:"Times New Roman",serif;letter-spacing:1px}
.jq-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.jq-hero-date{color:var(--accent);font-weight:500}
.jq-hero-meta i{font-size:12px;margin-right:4px}

.jq-section{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.jq-section h2{
  font-size:16px;font-weight:600;margin:0 0 14px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.jq-section h2 i{color:var(--accent);font-size:15px}
.jq-body{font-size:15px;line-height:2;color:var(--fg)}
.jq-body p{margin:0 0 0.8em}
.jq-body p:last-child{margin-bottom:0}
.jq-body strong{color:var(--accent);font-weight:600}

.jq-nav{
  display:flex;justify-content:space-between;gap:12px;margin:24px 0 32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.jq-nav a,.jq-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.jq-nav a{color:var(--accent)}
.jq-nav a:hover{text-decoration:underline}
.jq-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jq-nav .disabled{opacity:.5}

.jq-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.jq-rel-card{
  display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;transition:.15s;
}
.jq-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.jq-rel-icon{
  width:50px;height:50px;border-radius:50%;overflow:hidden;background:var(--hover);
  display:flex;align-items:center;justify-content:center;
}
.jq-rel-icon img{width:100%;height:100%;object-fit:cover}
.jq-rel-icon i{color:var(--accent);font-size:20px}
.jq-rel-name{font-size:13px;color:var(--fg);font-weight:500}

@media (max-width:640px){
  .jq-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
  .jq-card-img{height:100px}
  .jq-card-name{font-size:15px}
  .jq-card-body{padding:10px 12px}
  .jq-hero{padding:24px 16px 18px}
  .jq-hero h1{font-size:24px;letter-spacing:2px}
  .jq-hero-img{width:90px;height:90px}
  .jq-section{padding:18px 16px}
  .jq-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .jq-nav a,.jq-nav .disabled{max-width:100%}
  .jq-related{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}
}

/* ========== 国家地区 ========== */
.na-alpha{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.na-alpha a{
  min-width:36px;height:36px;padding:0 10px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:10px;font-size:14px;color:var(--fg);background:var(--hover);transition:.15s;
}
.na-alpha a:hover{background:var(--accent-soft);color:var(--accent)}
.na-alpha a.on{background:var(--accent);color:#fff}

.na-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.na-card{
  display:flex;align-items:center;gap:14px;padding:14px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  transition:.15s;
}
.na-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.na-flag{
  width:56px;height:42px;flex:none;border-radius:6px;overflow:hidden;
  background:var(--hover);display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);
}
.na-flag img{width:100%;height:100%;object-fit:cover}
.na-flag i{color:var(--accent);font-size:20px;opacity:.5}
.na-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.na-name{font-size:15px;font-weight:600;color:var(--fg)}
.na-sub{font-size:12px;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.na-meta{display:flex;gap:12px;font-size:12px;color:var(--muted);flex-wrap:wrap;margin-top:2px}
.na-meta i{font-size:11px;margin-right:2px}
.na-code{color:var(--accent);font-family:Consolas,Monaco,monospace;font-weight:500}

.na-detail{max-width:none}
.na-hero{
  display:flex;align-items:center;gap:24px;padding:28px 32px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:24px;
}
.na-hero-flag{
  width:140px;height:96px;flex:none;border-radius:10px;overflow:hidden;
  background:var(--hover);display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);
}
.na-hero-flag img{width:100%;height:100%;object-fit:cover}
.na-hero-flag i{color:var(--accent);font-size:48px;opacity:.5}
.na-hero-info{flex:1;min-width:0}
.na-hero-info h1{font-size:28px;font-weight:600;margin:0 0 8px;color:var(--fg);letter-spacing:1px}
.na-hero-sub{font-size:14px;color:var(--muted);margin:0 0 8px;line-height:1.5}
.na-hero-vae{font-size:13px;color:var(--muted);margin:0 0 12px;font-family:"Times New Roman",serif}
.na-hero-vae i{color:var(--accent);margin-right:4px;font-size:12px}
.na-hero-meta{display:flex;gap:16px;font-size:13px;color:var(--muted)}
.na-hero-meta i{font-size:12px;margin-right:4px}

.na-facts{
  padding:22px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.na-facts h2{
  font-size:16px;font-weight:600;margin:0 0 16px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.na-facts h2 i{color:var(--accent);font-size:15px}
.na-facts-list{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 24px;
}
.na-facts-list li{font-size:14px;color:var(--fg);display:flex;gap:8px}
.na-facts-list li b{
  color:var(--muted);font-weight:400;flex:none;width:60px;
}
.na-facts-list li span{color:var(--fg);font-weight:500}

.na-content{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.na-content h2{
  font-size:16px;font-weight:600;margin:0 0 16px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.na-content h2 i{color:var(--accent);font-size:15px}
.na-content-body{font-size:15px;line-height:2;color:var(--fg)}
.na-content-body h3{
  font-size:15px;font-weight:600;color:var(--accent);
  margin:20px 0 10px;padding-left:10px;border-left:3px solid var(--accent);
}
.na-content-body h3:first-child{margin-top:0}
.na-content-body p{margin:0 0 0.8em}
.na-content-body p:last-child{margin-bottom:0}

.na-nav{
  display:flex;justify-content:space-between;gap:12px;margin:24px 0 32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.na-nav a,.na-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.na-nav a{color:var(--accent)}
.na-nav a:hover{text-decoration:underline}
.na-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.na-nav .disabled{opacity:.5}

.na-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.na-rel-card{
  display:flex;align-items:center;gap:10px;padding:10px 12px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;transition:.15s;
}
.na-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.na-rel-flag{
  width:36px;height:26px;flex:none;border-radius:4px;overflow:hidden;
  background:var(--hover);display:flex;align-items:center;justify-content:center;
}
.na-rel-flag img{width:100%;height:100%;object-fit:cover}
.na-rel-flag i{color:var(--accent);font-size:14px;opacity:.5}
.na-rel-name{font-size:13px;color:var(--fg);font-weight:500;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:640px){
  .na-grid{grid-template-columns:1fr}
  .na-hero{flex-direction:column;text-align:center;padding:20px}
  .na-hero-flag{width:120px;height:80px}
  .na-hero-info h1{font-size:22px}
  .na-hero-meta{justify-content:center}
  .na-facts,.na-content{padding:18px 16px}
  .na-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .na-nav a,.na-nav .disabled{max-width:100%}
  .na-related{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
}

/* ========== 十二生肖 ========== */
.sx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.sx-card{
  display:block;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;transition:.15s;text-align:center;
}
.sx-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(43,108,176,.08)}
.sx-card-img{
  width:100%;height:140px;background:var(--hover);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.sx-card-img img{width:100%;height:100%;object-fit:contain}
.sx-card-abbr{
  font-size:56px;font-weight:600;color:var(--accent);
}
.sx-card-body{padding:12px 16px}
.sx-card-name{display:block;font-size:17px;font-weight:600;color:var(--fg);margin-bottom:4px}
.sx-card-more{display:block;font-size:12px;color:var(--muted)}
.sx-card-more i{font-size:10px;margin-left:2px}
.sx-card:hover .sx-card-more{color:var(--accent)}

.sx-detail{max-width:none}
.sx-hero{
  display:flex;align-items:center;gap:24px;padding:28px 32px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:24px;
}
.sx-hero-img{
  width:140px;height:140px;flex:none;border-radius:12px;
  background:var(--hover);display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.sx-hero-img img{width:100%;height:100%;object-fit:contain}
.sx-hero-abbr{font-size:72px;font-weight:600;color:var(--accent)}
.sx-hero-info{flex:1;min-width:0}
.sx-hero-info h1{font-size:32px;font-weight:600;margin:0 0 12px;color:var(--fg);letter-spacing:2px}
.sx-hero-years{font-size:13px;color:var(--muted);margin:0 0 10px;line-height:1.7}
.sx-hero-years b{color:var(--fg);font-weight:500}
.sx-hero-meta{display:flex;gap:16px;font-size:13px;color:var(--muted)}
.sx-hero-meta i{font-size:12px;margin-right:4px}

.sx-section{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.sx-section h2{
  font-size:16px;font-weight:600;margin:0 0 14px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.sx-section h2 i{color:var(--accent);font-size:15px}
.sx-body{font-size:15px;line-height:2;color:var(--fg)}
.sx-body h3{
  font-size:15px;font-weight:600;color:var(--accent);
  margin:20px 0 10px;padding-left:10px;border-left:3px solid var(--accent);
}
.sx-body h3:first-child{margin-top:0}
.sx-body p{margin:0 0 0.8em}
.sx-body p:last-child{margin-bottom:0}
.sx-body hr{border:0;border-top:1px dashed var(--line);margin:16px 0}

.sx-nav{
  display:flex;justify-content:space-between;gap:12px;margin:24px 0 32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.sx-nav a,.sx-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.sx-nav a{color:var(--accent)}
.sx-nav a:hover{text-decoration:underline}
.sx-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sx-nav .disabled{opacity:.5}

.sx-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.sx-rel-card{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:12px 8px;background:var(--panel);border:1px solid var(--line);
  border-radius:10px;transition:.15s;
}
.sx-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.sx-rel-img{
  width:52px;height:52px;border-radius:50%;overflow:hidden;background:var(--hover);
  display:flex;align-items:center;justify-content:center;
}
.sx-rel-img img{width:100%;height:100%;object-fit:contain}
.sx-rel-abbr{font-size:24px;font-weight:600;color:var(--accent)}
.sx-rel-name{font-size:13px;color:var(--fg);font-weight:500}

@media (max-width:640px){
  .sx-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
  .sx-card-img{height:110px}
  .sx-card-abbr{font-size:42px}
  .sx-card-name{font-size:15px}
  .sx-hero{flex-direction:column;text-align:center;padding:20px}
  .sx-hero-img{width:110px;height:110px}
  .sx-hero-abbr{font-size:56px}
  .sx-hero-info h1{font-size:24px}
  .sx-hero-meta{justify-content:center}
  .sx-section{padding:18px 16px}
  .sx-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .sx-nav a,.sx-nav .disabled{max-width:100%}
  .sx-related{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}
}

/* ========== 历史朝代顺序表 ========== */
.lscd-table-wrap{
  overflow-x:auto;margin-bottom:24px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.lscd-table{
  width:100%;border-collapse:collapse;font-size:14px;
  min-width:600px;
}
.lscd-table th,
.lscd-table td{
  padding:10px 14px;text-align:center;
  border-bottom:1px solid var(--line);
  color:var(--fg);
  line-height:1.6;
}
.lscd-table thead th{
  background:var(--accent-soft);color:var(--accent);font-weight:600;
  border-bottom:2px solid var(--accent);
}
.lscd-table thead th:first-child{border-radius:var(--radius) 0 0 0}
.lscd-table thead th:last-child{border-radius:0 var(--radius) 0 0}
.lscd-table tbody tr:hover{background:var(--hover)}
.lscd-table tbody th{
  font-weight:500;color:var(--fg);background:var(--hover);width:80px;
}
.lscd-table tbody tr:hover th{background:var(--accent-soft)}
.lscd-num{
  display:inline-block;color:var(--accent);font-style:normal;
  font-size:12px;font-weight:600;margin-right:4px;
}
.lscd-note-bottom{
  text-align:center;color:var(--accent);font-weight:500;padding:14px;
  background:var(--accent-soft);
}

.lscd-notes{
  padding:24px 28px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.lscd-notes h2{
  font-size:16px;font-weight:600;margin:0 0 14px;color:var(--fg);
  padding-left:10px;border-left:3px solid var(--accent);
}
.lscd-notes ol{
  padding-left:24px;margin:0;font-size:14px;line-height:2;color:var(--fg);
}
.lscd-notes li{margin-bottom:6px}
.lscd-notes li:last-child{margin-bottom:0}

@media (max-width:640px){
  .lscd-table{font-size:12px}
  .lscd-table th,.lscd-table td{padding:8px 6px}
  .lscd-notes{padding:18px 16px}
  .lscd-notes ol{font-size:13px;padding-left:20px}
}

/* ========== 历史上的今天 ========== */
.td-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.td-list li{border-bottom:1px solid var(--line)}
.td-list li:last-child{border-bottom:0}
.td-list li a{
  display:flex;align-items:center;gap:18px;padding:16px 22px;transition:.15s;
}
.td-list li a:hover{background:var(--hover)}
.td-year{
  font-size:20px;font-weight:600;color:var(--accent);
  flex:none;min-width:70px;font-family:"Times New Roman",serif;
}
.td-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.td-title{font-size:15px;color:var(--accent);font-weight:500;line-height:1.5}
.td-date{font-size:12px;color:var(--muted)}
.td-views{font-size:12px;color:var(--muted);flex:none}
.td-views i{font-size:11px;margin-right:3px}

.td-months{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 18px;
}
.td-month-row{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 0;
  border-bottom:1px dashed var(--line);
}
.td-month-row:last-child{border-bottom:0}
.td-month-label{
  font-size:13px;font-weight:600;color:var(--accent);width:50px;flex:none;
}
.td-month-row a{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:28px;height:26px;padding:0 4px;
  border-radius:5px;font-size:12px;color:var(--fg);transition:.15s;
}
.td-month-row a:hover{background:var(--accent-soft);color:var(--accent)}
.td-month-row a.on{background:var(--accent);color:#fff}

.td-detail{max-width:none}
.td-hero{
  text-align:center;padding:36px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.td-hero-year{
  display:inline-block;padding:6px 20px;margin-bottom:14px;
  background:var(--accent-soft);color:var(--accent);
  font-size:24px;font-weight:600;border-radius:20px;font-family:"Times New Roman",serif;
}
.td-hero h1{font-size:22px;font-weight:600;margin:0 0 12px;color:var(--fg);line-height:1.5}
.td-hero-date{font-size:14px;color:var(--muted);margin:0 0 10px;letter-spacing:1px}
.td-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.td-hero-meta i{font-size:12px;margin-right:4px}

.td-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2;color:var(--fg);
}
.td-content br{line-height:2}

.td-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.td-nav a,.td-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.td-nav a{color:var(--accent)}
.td-nav a:hover{text-decoration:underline}
.td-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-nav .disabled{opacity:.5}

.td-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.td-related li a{
  display:flex;gap:12px;padding:12px 16px;background:var(--panel);
  border:1px solid var(--line);border-radius:8px;transition:.15s;align-items:center;
}
.td-related li a:hover{border-color:var(--accent);background:var(--accent-soft)}
.td-rel-year{
  font-size:15px;font-weight:600;color:var(--accent);flex:none;
  font-family:"Times New Roman",serif;min-width:50px;
}
.td-rel-title{font-size:13px;color:var(--fg);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:640px){
  .td-list li a{flex-wrap:wrap;gap:8px;padding:12px 16px}
  .td-year{font-size:17px;min-width:55px}
  .td-views{display:none}
  .td-hero{padding:24px 16px 18px}
  .td-hero-year{font-size:20px}
  .td-hero h1{font-size:18px}
  .td-content{padding:22px 18px;font-size:15px}
  .td-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .td-nav a,.td-nav .disabled{max-width:100%}
  .td-month-label{width:40px;font-size:12px}
  .td-month-row a{min-width:24px;height:24px;font-size:11px}
  .td-related{grid-template-columns:1fr}
}

/* 历史上的今天：按日期查看卡片对齐 */
.td-months{
  margin-left:0;
  margin-right:0;
  padding:16px 22px;
  box-sizing:border-box;
  width:100%;
}
.td-months .td-month-row{
  padding:8px 0;
}
.td-months .td-month-label{
  width:56px;
  margin-right:10px;
  color:var(--accent);
  font-weight:600;
  font-size:13px;
}
.td-months .td-month-row a{
  min-width:30px;
  height:28px;
  margin-right:2px;
}
@media (max-width:640px){
  .td-months{padding:12px 14px}
  .td-months .td-month-label{width:44px;margin-right:6px;font-size:12px}
  .td-months .td-month-row a{min-width:26px;height:26px;font-size:11px;margin-right:1px}
}

/* 强制对齐 */
/* ========== 三字经 ========== */
.szj-book{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;
}
.szj-line{
  display:flex;align-items:center;gap:16px;padding:14px 22px;
  border-bottom:1px solid var(--line);transition:.15s;
}
.szj-line:last-child{border-bottom:0}
.szj-line:hover{background:var(--hover)}
.szj-num{
  font-size:13px;font-weight:600;color:var(--muted);
  font-family:Consolas,Monaco,monospace;flex:none;
  width:36px;
}
.szj-text{
  font-size:16px;color:var(--accent);flex:1;letter-spacing:1px;
}
.szj-more{color:var(--muted);font-size:12px;flex:none}
.szj-line:hover .szj-more{color:var(--accent)}

.szj-detail{max-width:none}
.szj-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.szj-hero-num{
  display:inline-block;padding:4px 16px;margin-bottom:16px;
  background:var(--accent-soft);color:var(--accent);
  font-size:13px;font-weight:500;border-radius:16px;
}
.szj-hero-text{
  font-size:26px;font-weight:600;margin:0 0 16px;color:var(--fg);
  line-height:1.7;letter-spacing:3px;
}
.szj-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.szj-hero-meta i{font-size:12px;margin-right:4px}

.szj-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2;color:var(--fg);
}
.szj-content h3{
  font-size:15px;font-weight:600;color:var(--accent);
  margin:20px 0 10px;padding-left:10px;border-left:3px solid var(--accent);
}
.szj-content h3:first-child{margin-top:0}
.szj-content p{margin:0 0 0.8em}
.szj-content p:last-child{margin-bottom:0}
.szj-content hr{border:0;border-top:1px dashed var(--line);margin:16px 0}

.szj-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.szj-nav a,.szj-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.szj-nav a{color:var(--accent)}
.szj-nav a:hover{text-decoration:underline}
.szj-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.szj-nav .disabled{opacity:.5}

@media (max-width:640px){
  .szj-line{padding:12px 16px;gap:10px}
  .szj-text{font-size:14px;letter-spacing:0}
  .szj-num{width:30px;font-size:11px}
  .szj-hero{padding:24px 16px 18px}
  .szj-hero-text{font-size:18px;letter-spacing:1px}
  .szj-content{padding:22px 18px;font-size:15px}
  .szj-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .szj-nav a,.szj-nav .disabled{max-width:100%}
}

/* ========== PHP 函数大全 ========== */
.fn-alpha{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.fn-alpha a{
  min-width:36px;height:36px;padding:0 10px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:10px;font-size:14px;color:var(--fg);background:var(--hover);transition:.15s;
  font-family:Consolas,Monaco,monospace;
}
.fn-alpha a:hover{background:var(--accent-soft);color:var(--accent)}
.fn-alpha a.on{background:var(--accent);color:#fff}

.fn-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.fn-list li{border-bottom:1px solid var(--line)}
.fn-list li:last-child{border-bottom:0}
.fn-list li a{
  display:flex;align-items:center;gap:14px;padding:12px 22px;transition:.15s;
}
.fn-list li a:hover{background:var(--hover)}
.fn-name{
  font-size:14px;font-family:Consolas,Monaco,monospace;font-weight:600;
  color:var(--accent);flex:none;min-width:180px;
}
.fn-purpose{font-size:13px;color:var(--fg);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fn-more{color:var(--muted);font-size:12px;flex:none}
.fn-list li a:hover .fn-more{color:var(--accent)}

.fn-detail{max-width:none}
.fn-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.fn-hero-icon{
  width:60px;height:60px;border-radius:14px;margin-bottom:16px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:28px;
}
.fn-hero h1{
  font-size:28px;font-weight:600;margin:0 0 8px;color:var(--fg);
  font-family:Consolas,Monaco,monospace;letter-spacing:1px;
}
.fn-hero-purpose{font-size:15px;color:var(--muted);margin:0 0 12px;line-height:1.6}
.fn-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.fn-hero-ini{color:var(--accent);font-weight:500;font-family:Consolas,Monaco,monospace}
.fn-hero-meta i{font-size:12px;margin-right:4px}

.fn-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:15px;line-height:2;color:var(--fg);
}
.fn-content pre{
  background:var(--hover);border:1px solid var(--line);border-radius:8px;
  padding:14px 18px;overflow-x:auto;margin:12px 0;
  font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.7;
  color:var(--fg);
}
.fn-content code{
  font-family:Consolas,Monaco,monospace;font-size:13px;
  background:var(--hover);padding:2px 6px;border-radius:4px;
}
.fn-content pre code{background:transparent;padding:0}
.fn-content br{line-height:2}

.fn-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.fn-nav a,.fn-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.fn-nav a{color:var(--accent)}
.fn-nav a:hover{text-decoration:underline}
.fn-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-family:Consolas,Monaco,monospace}
.fn-nav .disabled{opacity:.5}

.fn-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.fn-rel-card{
  display:flex;flex-direction:column;gap:3px;padding:12px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;transition:.15s;
}
.fn-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.fn-rel-name{
  font-size:14px;font-family:Consolas,Monaco,monospace;font-weight:600;color:var(--accent);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.fn-rel-purpose{font-size:12px;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:640px){
  .fn-alpha a{min-width:32px;height:32px;font-size:13px;padding:0 8px}
  .fn-list li a{gap:10px;padding:10px 16px}
  .fn-name{min-width:0;font-size:13px}
  .fn-purpose{font-size:12px}
  .fn-more{display:none}
  .fn-hero{padding:24px 16px 18px}
  .fn-hero h1{font-size:22px}
  .fn-content{padding:22px 18px;font-size:14px}
  .fn-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .fn-nav a,.fn-nav .disabled{max-width:100%}
  .fn-related{grid-template-columns:1fr}
}

/* ========== 搜索引擎蜘蛛 ========== */
.bot-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.bot-list li{border-bottom:1px solid var(--line)}
.bot-list li:last-child{border-bottom:0}
.bot-list li a{
  display:flex;align-items:center;gap:14px;padding:14px 22px;transition:.15s;
}
.bot-list li a:hover{background:var(--hover)}
.bot-icon{
  width:38px;height:38px;flex:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:16px;
}
.bot-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.bot-title{
  font-size:14px;font-family:Consolas,Monaco,monospace;font-weight:600;
  color:var(--fg);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.bot-chinese{font-size:12px;color:var(--muted)}
.bot-more{color:var(--muted);font-size:12px;flex:none}
.bot-list li a:hover .bot-more{color:var(--accent)}

.bot-detail{max-width:none}
.bot-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.bot-hero-icon{
  width:60px;height:60px;border-radius:14px;margin-bottom:16px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:26px;
}
.bot-hero h1{
  font-size:26px;font-weight:600;margin:0 0 8px;color:var(--fg);
  font-family:Consolas,Monaco,monospace;letter-spacing:1px;word-break:break-all;
}
.bot-hero-cn{font-size:14px;color:var(--accent);margin:0 0 12px;font-weight:500}
.bot-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.bot-hero-meta i{font-size:12px;margin-right:4px}

.bot-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:15px;line-height:2;color:var(--fg);
}
.bot-content h3{
  font-size:15px;font-weight:600;color:var(--accent);
  margin:20px 0 10px;padding-left:10px;border-left:3px solid var(--accent);
}
.bot-content h3:first-child{margin-top:0}
.bot-content p{margin:0 0 0.8em}
.bot-content p:last-child{margin-bottom:0}
.bot-content hr{border:0;border-top:1px dashed var(--line);margin:16px 0}
.bot-content pre{
  background:var(--hover);border:1px solid var(--line);border-radius:8px;
  padding:14px 18px;overflow-x:auto;margin:12px 0;
  font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.7;
  color:var(--fg);
}
.bot-content code{
  font-family:Consolas,Monaco,monospace;font-size:13px;
  background:var(--hover);padding:2px 6px;border-radius:4px;
}
.bot-content pre code{background:transparent;padding:0}

.bot-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.bot-nav a,.bot-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.bot-nav a{color:var(--accent)}
.bot-nav a:hover{text-decoration:underline}
.bot-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bot-nav .disabled{opacity:.5}

.bot-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.bot-rel-card{
  display:flex;flex-direction:column;gap:3px;padding:12px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;transition:.15s;
}
.bot-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.bot-rel-title{
  font-size:13px;font-family:Consolas,Monaco,monospace;font-weight:600;color:var(--accent);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.bot-rel-cn{font-size:12px;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:640px){
  .bot-list li a{gap:10px;padding:12px 16px}
  .bot-hero{padding:24px 16px 18px}
  .bot-hero h1{font-size:20px}
  .bot-content{padding:22px 18px;font-size:14px}
  .bot-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .bot-nav a,.bot-nav .disabled{max-width:100%}
  .bot-related{grid-template-columns:1fr}
}

/* ========== 符号大全 ========== */
.sym-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.sym-card{
  display:flex;align-items:center;gap:14px;padding:16px 18px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  transition:.15s;
}
.sym-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.sym-card-icon{
  width:44px;height:44px;flex:none;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:20px;
}
.sym-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.sym-card-title{font-size:15px;font-weight:600;color:var(--fg);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sym-card-more{font-size:12px;color:var(--muted)}
.sym-card:hover .sym-card-more{color:var(--accent)}
.sym-card-more i{font-size:10px;margin-left:2px}

.sym-detail{max-width:none}
.sym-hero{
  text-align:center;padding:28px 20px 20px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.sym-hero h1{font-size:24px;font-weight:600;margin:0 0 12px;color:var(--fg);letter-spacing:2px}
.sym-hero-meta{display:flex;justify-content:center;gap:20px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.sym-hero-meta i{font-size:12px;margin-right:4px}
.sym-hero-tip{color:var(--accent)}

.sym-content{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
}
.sym-grid-chars{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px;
}
.sym-char{
  width:100%;min-height:52px;padding:6px;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;line-height:1;color:var(--fg);
  background:var(--hover);border:1px solid var(--line);
  border-radius:8px;cursor:pointer;transition:.15s;
  font-family:-apple-system,"Segoe UI",Roboto,"Microsoft YaHei",sans-serif;
  word-break:break-all;text-align:center;
}
.sym-char:hover{
  background:var(--accent-soft);border-color:var(--accent);
  color:var(--accent);transform:scale(1.08);
}

.sym-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.sym-rel-card{
  display:block;padding:10px 14px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:13px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.sym-rel-card:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .sym-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
  .sym-card{padding:12px 14px;gap:10px}
  .sym-card-icon{width:36px;height:36px;font-size:16px}
  .sym-card-title{font-size:13px}
  .sym-card-more{display:none}
  .sym-hero{padding:22px 16px 16px}
  .sym-hero h1{font-size:18px}
  .sym-content{padding:16px}
  .sym-grid-chars{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}
  .sym-char{min-height:44px;font-size:18px;border-radius:6px}
  .sym-related{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
}

/* ========== 实用网站 ========== */
.st-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  max-height:200px;overflow-y:auto;
}
.st-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.st-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.st-cats a.on{background:var(--accent);color:#fff}

.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.st-card{
  display:flex;align-items:center;gap:14px;padding:14px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  transition:.15s;
}
.st-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(43,108,176,.08)}
.st-icon{
  width:48px;height:48px;flex:none;border-radius:10px;overflow:hidden;
  background:var(--hover);display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);
}
.st-icon img{width:100%;height:100%;object-fit:cover}
.st-icon > i{color:var(--accent);font-size:22px}
.st-icon-fb{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);
}
.st-icon-fb i{color:var(--accent);font-size:22px}
.st-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.st-name{
  display:flex;align-items:center;gap:6px;
  font-size:15px;font-weight:600;color:var(--fg);
}
.st-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-card:hover @media (max-width:640px){
  .st-grid{grid-template-columns:1fr}
  .st-card{padding:12px 14px;gap:10px}
  .st-icon{width:40px;height:40px}
  .st-name{font-size:14px}
}

/* ========== 实用网站 ========== */
.st-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  max-height:200px;overflow-y:auto;
}
.st-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.st-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.st-cats a.on{background:var(--accent);color:#fff}

.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.st-card{
  display:flex;align-items:center;gap:14px;padding:14px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  transition:.15s;
}
.st-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(43,108,176,.08)}
.st-icon{
  width:48px;height:48px;flex:none;border-radius:10px;overflow:hidden;
  background:var(--hover);display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);
}
.st-icon img{width:100%;height:100%;object-fit:cover}
.st-icon > i{color:var(--accent);font-size:22px}
.st-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.st-name{
  display:flex;align-items:center;gap:6px;
  font-size:15px;font-weight:600;color:var(--fg);
}
.st-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-link{color:var(--muted);font-size:10px;opacity:.5}
.st-card:hover .st-link{color:var(--accent);opacity:1}
.st-desc{
  font-size:12px;color:var(--muted);margin:0;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

@media (max-width:640px){
  .st-grid{grid-template-columns:1fr}
  .st-card{padding:12px 14px;gap:10px}
  .st-icon{width:40px;height:40px}
  .st-name{font-size:14px}
}

/* ========== 古文类通用 ========== */
.gw-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  max-height:200px;overflow-y:auto;
}
.gw-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.gw-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.gw-cats a.on{background:var(--accent);color:#fff}

.gw-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.gw-list li{border-bottom:1px solid var(--line)}
.gw-list li:last-child{border-bottom:0}
.gw-list li a{display:block;padding:14px 22px;transition:.15s}
.gw-list li a:hover{background:var(--hover)}
.gw-title{display:block;font-size:15px;font-weight:500;color:var(--accent);margin-bottom:4px}
.gw-ex{display:block;font-size:13px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme="dark"] .gw-ex{color:#a8b0bb}

.gw-detail{max-width:none}
.gw-hero{
  padding:32px 0 20px;margin-bottom:24px;border-bottom:1px solid var(--line);text-align:center;
}
.gw-hero h1{font-size:26px;font-weight:600;margin:0 0 10px;color:var(--fg);line-height:1.5}
.gw-cat{font-size:13px;color:var(--muted);margin:0 0 10px}
.gw-cat i{color:var(--accent);margin-right:4px}
.gw-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.gw-hero-meta i{font-size:12px;margin-right:4px}
.gw-hero-img{margin-bottom:20px}
.gw-hero-img img{max-width:100%;height:auto;border-radius:var(--radius);display:block;margin:0 auto}

.gw-section{
  padding:28px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.gw-section h2{
  font-size:16px;font-weight:600;margin:0 0 16px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.gw-section h2 i{color:var(--accent);font-size:15px}
.gw-body{font-size:16px;line-height:2.2;color:var(--fg)}
.gw-body p{margin:0 0 0.8em}
.gw-body p:last-child{margin-bottom:0}
.gw-body br{line-height:2.2}
.gw-original{
  font-size:17px;letter-spacing:1px;
  font-family:"Source Han Serif SC","Songti SC",STSong,SimSun,serif;
}

.gw-nav{
  display:flex;justify-content:space-between;gap:12px;margin:24px 0 32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.gw-nav a,.gw-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.gw-nav a{color:var(--accent)}
.gw-nav a:hover{text-decoration:underline}
.gw-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gw-nav .disabled{opacity:.5}

@media (max-width:640px){
  .gw-hero{padding:24px 0 16px}
  .gw-hero h1{font-size:20px}
  .gw-section{padding:20px 18px}
  .gw-body{font-size:15px;line-height:2}
  .gw-original{font-size:16px;letter-spacing:0}
  .gw-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .gw-nav a,.gw-nav .disabled{max-width:100%}
}

/* ========== 机场三字代码 / 世界港口 ========== */
.ap-search{
  display:flex;align-items:center;gap:0;max-width:600px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);border-radius:24px;
  padding:4px 4px 4px 18px;transition:.2s;
}
.ap-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.ap-search > i{color:var(--muted);font-size:14px}
.ap-search input{
  flex:1;height:36px;border:0;outline:none;background:transparent;
  padding:0 12px;font-size:14px;color:var(--fg);
}
.ap-search button{
  height:36px;padding:0 22px;border:0;border-radius:20px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;transition:.15s;
}
.ap-search button:hover{filter:brightness(1.1)}

.ap-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.ap-list li{border-bottom:1px solid var(--line)}
.ap-list li:last-child{border-bottom:0}
.ap-list li a{
  display:flex;align-items:center;gap:16px;padding:14px 22px;transition:.15s;
}
.ap-list li a:hover{background:var(--hover)}
.ap-code{
  font-size:16px;font-weight:600;color:var(--accent);
  font-family:Consolas,Monaco,monospace;flex:none;min-width:56px;
  padding:4px 10px;background:var(--accent-soft);border-radius:8px;text-align:center;
}
.ap-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ap-name{font-size:14px;color:var(--fg);font-weight:500;line-height:1.5;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-meta{font-size:12px;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-meta i{font-size:11px;margin-right:3px}
.ap-4code{
  font-size:12px;color:var(--muted);font-family:Consolas,Monaco,monospace;flex:none;
}

.ap-detail{max-width:none}
.ap-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.ap-hero-code{
  display:inline-block;padding:10px 26px;margin-bottom:14px;
  background:var(--accent-soft);color:var(--accent);
  font-size:32px;font-weight:700;border-radius:14px;
  font-family:Consolas,Monaco,monospace;letter-spacing:3px;
}
.ap-hero h1{font-size:20px;font-weight:600;margin:0 0 8px;color:var(--fg);line-height:1.5}
.ap-hero-4code{font-size:13px;color:var(--muted);margin:0 0 12px;
  font-family:Consolas,Monaco,monospace;letter-spacing:1px}
.ap-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.ap-hero-meta i{font-size:12px;margin-right:4px}

.ap-section{
  padding:22px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.ap-section h2{
  font-size:16px;font-weight:600;margin:0 0 16px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.ap-section h2 i{color:var(--accent);font-size:15px}
.ap-facts{list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 24px}
.ap-facts li{font-size:14px;color:var(--fg);display:flex;gap:8px}
.ap-facts li b{color:var(--muted);font-weight:400;flex:none;width:60px}
.ap-facts li span{color:var(--fg);font-weight:500;
  font-family:Consolas,Monaco,monospace}
.ap-body{font-size:15px;line-height:2;color:var(--fg)}
.ap-body p{margin:0 0 0.8em}
.ap-body p:last-child{margin-bottom:0}

.ap-nav{
  display:flex;justify-content:space-between;gap:12px;margin:24px 0 32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.ap-nav a,.ap-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.ap-nav a{color:var(--accent)}
.ap-nav a:hover{text-decoration:underline}
.ap-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-nav .disabled{opacity:.5}

.ap-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.ap-rel-card{
  display:flex;align-items:center;gap:10px;padding:12px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;transition:.15s;
}
.ap-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.ap-rel-code{
  font-size:14px;font-weight:600;color:var(--accent);flex:none;
  font-family:Consolas,Monaco,monospace;
}
.ap-rel-name{font-size:13px;color:var(--fg);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:640px){
  .ap-list li a{gap:10px;padding:12px 16px}
  .ap-code{font-size:14px;min-width:48px;padding:3px 8px}
  .ap-name{font-size:13px}
  .ap-4code{display:none}
  .ap-hero{padding:24px 16px 18px}
  .ap-hero-code{font-size:24px;padding:8px 20px}
  .ap-hero h1{font-size:17px}
  .ap-section{padding:18px 16px}
  .ap-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .ap-nav a,.ap-nav .disabled{max-width:100%}
  .ap-related{grid-template-columns:1fr}
}

/* ========== 作文大全 ========== */
.cp-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  max-height:200px;overflow-y:auto;
}
.cp-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.cp-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.cp-cats a.on{background:var(--accent);color:#fff}

.cp-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.cp-list li{border-bottom:1px solid var(--line)}
.cp-list li:last-child{border-bottom:0}
.cp-list li a{display:block;padding:14px 22px;transition:.15s}
.cp-list li a:hover{background:var(--hover)}
.cp-title{display:block;font-size:15px;font-weight:500;color:var(--accent);margin-bottom:4px}
.cp-ex{display:block;font-size:13px;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme="dark"] .cp-ex{color:#a8b0bb}

.cp-detail{max-width:none}
.cp-hero{
  padding:32px 0 20px;margin-bottom:24px;border-bottom:1px solid var(--line);text-align:center;
}
.cp-hero h1{font-size:24px;font-weight:600;margin:0 0 10px;color:var(--fg);line-height:1.5}
.cp-cat{font-size:13px;color:var(--muted);margin:0 0 10px}
.cp-cat i{color:var(--accent);margin-right:4px}
.cp-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.cp-hero-meta i{font-size:12px;margin-right:4px}

.cp-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2.2;color:var(--fg);
}
.cp-content p{margin:0 0 1em;text-indent:2em}
.cp-content p:last-child{margin-bottom:0}
.cp-content br{line-height:2.2}

.cp-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.cp-nav a,.cp-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.cp-nav a{color:var(--accent)}
.cp-nav a:hover{text-decoration:underline}
.cp-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-nav .disabled{opacity:.5}

.cp-related{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}
.cp-related li a{
  display:block;padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cp-related li a:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .cp-hero h1{font-size:20px}
  .cp-content{padding:22px 18px;font-size:15px;line-height:2}
  .cp-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .cp-nav a,.cp-nav .disabled{max-width:100%}
  .cp-related{grid-template-columns:1fr}
}

/* ========== 网名大全 ========== */
.nk-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.nk-cats a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.nk-cats a em{font-style:normal;color:var(--muted);font-size:11px;margin-left:3px}
.nk-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.nk-cats a.on{background:var(--accent);color:#fff}
.nk-cats a.on em{color:rgba(255,255,255,.8)}

.nk-grid{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;
}
.nk-item{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:10px;cursor:pointer;transition:.15s;
}
.nk-item:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}
.nk-text{
  font-size:14px;color:var(--fg);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;
}
.nk-copy{
  color:var(--muted);font-size:12px;flex:none;opacity:.5;
}
.nk-item:hover .nk-copy{color:var(--accent);opacity:1}

@media (max-width:640px){
  .nk-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
  .nk-item{padding:10px 12px;font-size:13px}
  .nk-copy{display:none}
}









/* ===== 食物相生相克 shiwu- ===== */
.shiwu-search{
  display:flex;align-items:center;gap:10px;
  padding:8px 8px 8px 16px;margin:0 0 18px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
}
.shiwu-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.shiwu-search > i{color:var(--muted);font-size:14px}
.shiwu-search input{
  flex:1;min-width:0;height:38px;border:0;background:transparent;outline:none;
  font-size:14.5px;color:var(--fg);
}
.shiwu-search button{
  flex:none;height:38px;padding:0 20px;border:0;border-radius:8px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;font-weight:500;
}
.shiwu-search button:hover{filter:brightness(1.1)}

.shiwu-cats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.shiwu-cats a{
  padding:7px 16px;border:1px solid var(--line);background:var(--panel);
  border-radius:20px;font-size:13.5px;color:var(--fg);transition:.15s;
}
.shiwu-cats a:hover{border-color:var(--accent);color:var(--accent)}
.shiwu-cats a.on{background:var(--accent);border-color:var(--accent);color:#fff}

.shiwu-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:12px;
  width:100%;
  box-sizing:border-box;
}
.shiwu-card{
  display:block;
  padding:16px 20px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:.15s;
  text-decoration:none;
  color:inherit;
  box-sizing:border-box;
}
.shiwu-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.05)}
.shiwu-card-sheng{border-left:3px solid #2e7d32}
.shiwu-card-ke{border-left:3px solid #c62828}
.shiwu-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.shiwu-tag{
  display:inline-block;padding:2px 10px;border-radius:12px;
  font-size:12px;font-weight:500;flex:none;
}
.shiwu-card-sheng .shiwu-tag{background:#e6f7e8;color:#2e7d32}
.shiwu-card-ke .shiwu-tag{background:#ffeaea;color:#c62828}
.shiwu-sw{font-size:15px;font-weight:600;color:var(--fg)}
.shiwu-yh{
  font-size:13px;line-height:1.7;color:var(--muted);margin:0 0 10px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.shiwu-more{font-size:12.5px;color:var(--accent);display:inline-flex;align-items:center;gap:4px}
.shiwu-more i{font-size:11px}

@media (max-width:640px){
  .shiwu-grid{grid-template-columns:1fr;gap:10px}
  .shiwu-card{padding:14px 16px}
  .shiwu-search{padding:6px 6px 6px 14px}
  .shiwu-search input{height:36px;font-size:14px}
  .shiwu-search button{height:36px;padding:0 16px;font-size:13.5px}
}


/* ========== 食物相生相克 ========== */
.fd-search{
  display:flex;align-items:center;gap:0;max-width:600px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);border-radius:24px;
  padding:4px 4px 4px 18px;transition:.2s;
}
.fd-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.fd-search > i{color:var(--muted);font-size:14px}
.fd-search input{
  flex:1;height:36px;border:0;outline:none;background:transparent;
  padding:0 12px;font-size:14px;color:var(--fg);
}
.fd-search button{
  height:36px;padding:0 22px;border:0;border-radius:20px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;transition:.15s;
}
.fd-search button:hover{filter:brightness(1.1)}

.fd-cats{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.fd-cats a{
  padding:6px 16px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.fd-cats a:hover{background:var(--accent-soft);color:var(--accent)}
.fd-cats a.on{background:var(--accent);color:#fff}
.fd-cats a.fd-sheng:hover{background:#e6f7e8;color:#2e7d32}
[data-theme="dark"] .fd-cats a.fd-sheng:hover{background:#1a2e1d;color:#6ec07a}
.fd-cats a.fd-ke:hover{background:#ffeaea;color:#c62828}
[data-theme="dark"] .fd-cats a.fd-ke:hover{background:#2e1a1a;color:#e07070}

.fd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.fd-card{
  padding:16px 20px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);transition:.15s;
}
.fd-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.05)}
.fd-card-sheng{border-left:3px solid #2e7d32}
.fd-card-ke{border-left:3px solid #c62828}

.fd-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.fd-tag{
  display:inline-block;padding:2px 10px;border-radius:12px;
  font-size:12px;font-weight:500;flex:none;
}
.fd-card-sheng .fd-tag{background:#e6f7e8;color:#2e7d32}
[data-theme="dark"] .fd-card-sheng .fd-tag{background:#1a2e1d;color:#6ec07a}
.fd-card-ke .fd-tag{background:#ffeaea;color:#c62828}
[data-theme="dark"] .fd-card-ke .fd-tag{background:#2e1a1a;color:#e07070}

.fd-sw{
  font-size:15px;font-weight:600;color:var(--fg);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.fd-yh{
  font-size:13px;color:#666;margin:0;line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
[data-theme="dark"] .fd-yh{color:#a8b0bb}

/* ===== 食物相生相克：移动端 ===== */
@media (max-width:640px){
  .fd-grid{grid-template-columns:1fr}
  .fd-card{padding:14px 16px}
}



/* 食物卡片变成链接，加更多指示 */
.fd-card{display:block;text-decoration:none;color:inherit}
.fd-more{
  display:block;margin-top:8px;font-size:12px;color:var(--muted);
  text-align:right;
}
.fd-more i{font-size:10px;margin-left:2px}
.fd-card:hover .fd-more{color:var(--accent)}

/* 食物详情页 */
.fd-detail{max-width:none}
.fd-detail-sheng .fd-hero-tag{background:#e6f7e8;color:#2e7d32}
[data-theme="dark"] .fd-detail-sheng .fd-hero-tag{background:#1a2e1d;color:#6ec07a}
.fd-detail-ke .fd-hero-tag{background:#ffeaea;color:#c62828}
[data-theme="dark"] .fd-detail-ke .fd-hero-tag{background:#2e1a1a;color:#e07070}

.fd-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.fd-hero-tag{
  display:inline-block;padding:4px 16px;margin-bottom:14px;
  font-size:13px;font-weight:500;border-radius:16px;
}
.fd-detail-sheng .fd-hero{border-left:4px solid #2e7d32}
.fd-detail-ke .fd-hero{border-left:4px solid #c62828}
.fd-hero h1{font-size:26px;font-weight:600;margin:0 0 12px;color:var(--fg);line-height:1.4}
.fd-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.fd-hero-meta i{font-size:12px;margin-right:4px}

.fd-detail-content{
  padding:28px 32px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
}
.fd-detail-content h2{
  font-size:16px;font-weight:600;margin:0 0 16px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.fd-detail-content h2 i{color:var(--accent);font-size:15px}
.fd-detail-body{font-size:15px;line-height:2;color:var(--fg)}

.fd-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.fd-nav a,.fd-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.fd-nav a{color:var(--accent)}
.fd-nav a:hover{text-decoration:underline}
.fd-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fd-nav .disabled{opacity:.5}

.fd-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.fd-rel-card{
  display:block;padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.fd-rel-card:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .fd-hero{padding:24px 16px 18px}
  .fd-hero h1{font-size:20px}
  .fd-detail-content{padding:22px 18px}
  .fd-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .fd-nav a,.fd-nav .disabled{max-width:100%}
  .fd-related{grid-template-columns:1fr}
}

/* ========== 疾病自查 ========== */
.il-search{
  display:flex;align-items:center;gap:0;max-width:600px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);border-radius:24px;
  padding:4px 4px 4px 18px;transition:.2s;
}
.il-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.il-search > i{color:var(--muted);font-size:14px}
.il-search input{
  flex:1;height:36px;border:0;outline:none;background:transparent;
  padding:0 12px;font-size:14px;color:var(--fg);
}
.il-search button{
  height:36px;padding:0 22px;border:0;border-radius:20px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;transition:.15s;
}
.il-search button:hover{filter:brightness(1.1)}

.il-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.il-card{
  display:block;padding:16px 20px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);transition:.15s;
}
.il-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.il-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.il-icon{
  width:36px;height:36px;flex:none;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:16px;
}
.il-jb{font-size:15px;font-weight:600;color:var(--accent);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.il-zz{font-size:13px;color:#666;margin:0 0 8px;line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.il-zz b{color:var(--fg);font-weight:500}
[data-theme="dark"] .il-zz{color:#a8b0bb}
.il-more{font-size:12px;color:var(--muted);text-align:right;display:block}
.il-card:hover .il-more{color:var(--accent)}
.il-more i{font-size:10px;margin-left:2px}

.il-detail{max-width:none}
.il-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.il-hero-icon{
  width:60px;height:60px;border-radius:50%;margin-bottom:16px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:26px;
}
.il-hero h1{font-size:24px;font-weight:600;margin:0 0 12px;color:var(--fg);line-height:1.4}
.il-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.il-hero-meta i{font-size:12px;margin-right:4px}

.il-section{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.il-section h2{
  font-size:16px;font-weight:600;margin:0 0 14px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.il-section h2 i{color:var(--accent);font-size:15px}
.il-body{font-size:15px;line-height:2;color:var(--fg)}
.il-section-zz{border-left:4px solid #e69500}
.il-section-zz h2 i{color:#e69500}
.il-section-zl{border-left:4px solid #2e7d32}
.il-section-zl h2 i{color:#2e7d32}

.il-tip{
  padding:14px 20px;background:#fff8e6;border:1px solid #f5d99a;
  border-radius:var(--radius);margin-bottom:24px;
  font-size:13px;color:#8a6000;line-height:1.7;
}
[data-theme="dark"] .il-tip{background:#2a2415;border-color:#5c4a1a;color:#e0c070}
.il-tip i{color:#c98a00;margin-right:6px}

.il-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.il-nav a,.il-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.il-nav a{color:var(--accent)}
.il-nav a:hover{text-decoration:underline}
.il-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.il-nav .disabled{opacity:.5}

.il-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.il-rel-card{
  display:block;padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.il-rel-card:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .il-grid{grid-template-columns:1fr}
  .il-hero{padding:24px 16px 18px}
  .il-hero h1{font-size:19px}
  .il-section{padding:18px 16px}
  .il-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .il-nav a,.il-nav .disabled{max-width:100%}
  .il-related{grid-template-columns:1fr}
}

/* ========== 宋词 ========== */
.po-search{
  display:flex;align-items:center;gap:0;max-width:600px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);border-radius:24px;
  padding:4px 4px 4px 18px;transition:.2s;
}
.po-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.po-search > i{color:var(--muted);font-size:14px}
.po-search input{
  flex:1;height:36px;border:0;outline:none;background:transparent;
  padding:0 12px;font-size:14px;color:var(--fg);
}
.po-search button{
  height:36px;padding:0 22px;border:0;border-radius:20px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;transition:.15s;
}
.po-search button:hover{filter:brightness(1.1)}

@media (max-width:640px){
  .cs-hero h1{font-size:20px;letter-spacing:1px}
  .cs-content{padding:22px 18px;font-size:16px;line-height:2}
  .cs-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .cs-nav a,.cs-nav .disabled{max-width:100%}
  .cs-related{grid-template-columns:1fr}
}

/* ========== 诗人 ========== */
.pt-search{
  display:flex;align-items:center;gap:0;max-width:600px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);border-radius:24px;
  padding:4px 4px 4px 18px;transition:.2s;
}
.pt-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.pt-search > i{color:var(--muted);font-size:14px}
.pt-search input{flex:1;height:36px;border:0;outline:none;background:transparent;
  padding:0 12px;font-size:14px;color:var(--fg)}
.pt-search button{height:36px;padding:0 22px;border:0;border-radius:20px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;transition:.15s}
.pt-search button:hover{filter:brightness(1.1)}

.pt-dy{
  display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;padding:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  max-height:120px;overflow-y:auto;
}
.pt-dy a{
  padding:6px 14px;border-radius:16px;font-size:13px;color:var(--fg);
  background:var(--hover);transition:.15s;white-space:nowrap;
}
.pt-dy a em{font-style:normal;color:var(--muted);font-size:11px;margin-left:3px}
.pt-dy a:hover{background:var(--accent-soft);color:var(--accent)}
.pt-dy a.on{background:var(--accent);color:#fff}
.pt-dy a.on em{color:rgba(255,255,255,.8)}

.pt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.pt-card{
  display:flex;align-items:center;gap:14px;padding:14px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  transition:.15s;
}
.pt-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.pt-avatar{
  width:56px;height:56px;flex:none;border-radius:50%;overflow:hidden;
  background:var(--accent-soft);display:flex;align-items:center;justify-content:center;
  border:2px solid var(--panel);box-shadow:0 0 0 1px var(--line);
}
.pt-avatar img{width:100%;height:100%;object-fit:cover}
.pt-avatar i{color:var(--accent);font-size:22px}
.pt-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pt-name{font-size:16px;font-weight:600;color:var(--fg)}
.pt-designation{font-size:12px;color:var(--accent)}
.pt-dy-tag{font-size:12px;color:var(--muted)}

.pt-detail{max-width:none}
.pt-hero{
  display:flex;align-items:center;gap:24px;padding:28px 32px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:24px;
}
.pt-hero-avatar{
  width:120px;height:120px;flex:none;border-radius:50%;overflow:hidden;
  background:var(--accent-soft);display:flex;align-items:center;justify-content:center;
  border:3px solid var(--panel);box-shadow:0 0 0 1px var(--line);
}
.pt-hero-avatar img{width:100%;height:100%;object-fit:cover}
.pt-hero-avatar i{color:var(--accent);font-size:48px}
.pt-hero-info{flex:1;min-width:0}
.pt-hero-info h1{font-size:32px;font-weight:600;margin:0 0 12px;color:var(--fg);letter-spacing:2px}
.pt-hero-desig,.pt-hero-dy,.pt-hero-tags{font-size:14px;color:var(--muted);margin:0 0 6px;line-height:1.6}
.pt-hero-desig i,.pt-hero-dy i{color:var(--accent);margin-right:6px;font-size:13px}
.pt-hero-tags b{color:var(--fg);font-weight:500}
.pt-hero-meta{display:flex;gap:16px;font-size:13px;color:var(--muted);margin-top:10px}
.pt-hero-meta i{font-size:12px;margin-right:4px}

.pt-section{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.pt-section h2{
  font-size:16px;font-weight:600;margin:0 0 16px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.pt-section h2 i{color:var(--accent);font-size:15px}
.pt-body{font-size:15px;line-height:2;color:var(--fg)}
.pt-body p{margin:0 0 0.8em}
.pt-body p:last-child{margin-bottom:0}
.pt-body strong{color:var(--accent)}

.pt-poems{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.pt-poem{
  display:block;padding:10px 14px;background:var(--hover);border-radius:8px;
  font-size:13px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pt-poem:hover{background:var(--accent-soft);color:var(--accent)}

.pt-nav{
  display:flex;justify-content:space-between;gap:12px;margin:24px 0 32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.pt-nav a,.pt-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.pt-nav a{color:var(--accent)}
.pt-nav a:hover{text-decoration:underline}
.pt-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pt-nav .disabled{opacity:.5}

@media (max-width:640px){
  .pt-grid{grid-template-columns:1fr}
  .pt-hero{flex-direction:column;text-align:center;padding:20px}
  .pt-hero-avatar{width:90px;height:90px}
  .pt-hero-avatar i{font-size:36px}
  .pt-hero-info h1{font-size:22px;letter-spacing:1px}
  .pt-hero-meta{justify-content:center}
  .pt-section{padding:18px 16px}
  .pt-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .pt-nav a,.pt-nav .disabled{max-width:100%}
  .pt-poems{grid-template-columns:1fr}
}

/* ========== 近义词/反义词 ========== */
.jf-search{
  display:flex;align-items:center;gap:0;max-width:600px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);border-radius:24px;
  padding:4px 4px 4px 18px;transition:.2s;
}
.jf-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.jf-search > i{color:var(--muted);font-size:14px}
.jf-search input{
  flex:1;height:36px;border:0;outline:none;background:transparent;
  padding:0 12px;font-size:14px;color:var(--fg);
}
.jf-search button{
  height:36px;padding:0 22px;border:0;border-radius:20px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;transition:.15s;
}
.jf-search button:hover{filter:brightness(1.1)}

.jf-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.jf-list li{border-bottom:1px solid var(--line)}
.jf-list li:last-child{border-bottom:0}
.jf-list li a{display:block;padding:14px 22px;transition:.15s}
.jf-list li a:hover{background:var(--hover)}
.jf-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.jf-ci{font-size:16px;font-weight:600;color:var(--accent);letter-spacing:1px}
.jf-label{
  display:inline-block;padding:1px 8px;border-radius:10px;
  font-size:11px;color:var(--muted);background:var(--hover);
}
.jf-words{display:flex;flex-wrap:wrap;gap:6px}
.jf-word{
  padding:3px 10px;background:var(--hover);color:var(--fg);
  font-size:13px;border-radius:12px;transition:.15s;
}
.jf-list li a:hover .jf-word{background:var(--accent-soft);color:var(--accent)}
.jf-word-more{color:var(--muted)}

.jf-detail{max-width:none}
.jf-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.jf-hero h1{font-size:32px;font-weight:600;margin:0 0 12px;color:var(--fg);letter-spacing:3px}
.jf-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.jf-hero-meta i{font-size:12px;margin-right:4px}

.jf-section{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.jf-section-jy{border-left:4px solid #2e7d32}
.jf-section-fy{border-left:4px solid #c62828}
.jf-section h2{
  font-size:16px;font-weight:600;margin:0 0 16px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.jf-section-jy h2 i{color:#2e7d32}
.jf-section-fy h2 i{color:#c62828}
.jf-section h2 i{font-size:15px}

.jf-words-lg{display:flex;flex-wrap:wrap;gap:8px}
.jf-word-lg{
  display:inline-block;padding:6px 14px;background:var(--hover);
  color:var(--fg);font-size:14px;border-radius:8px;transition:.15s;
}
.jf-section-jy .jf-word-lg:hover{background:#e6f7e8;color:#2e7d32}
.jf-section-fy .jf-word-lg:hover{background:#ffeaea;color:#c62828}

.jf-body{font-size:15px;line-height:2;color:var(--fg)}
.jf-body p{margin:0 0 0.8em}
.jf-body p:last-child{margin-bottom:0}

.jf-nav{
  display:flex;justify-content:space-between;gap:12px;margin:24px 0 32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.jf-nav a,.jf-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.jf-nav a{color:var(--accent)}
.jf-nav a:hover{text-decoration:underline}
.jf-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jf-nav .disabled{opacity:.5}

.jf-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.jf-rel-card{
  display:block;padding:10px 14px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:13px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.jf-rel-card:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

@media (max-width:640px){
  .jf-hero{padding:24px 16px 18px}
  .jf-hero h1{font-size:22px;letter-spacing:1px}
  .jf-section{padding:18px 16px}
  .jf-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .jf-nav a,.jf-nav .disabled{max-width:100%}
  .jf-related{grid-template-columns:1fr}
}

/* ========== 商品条码查询 ========== */
.bc-search{
  display:flex;align-items:center;gap:0;max-width:640px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);border-radius:24px;
  padding:4px 4px 4px 18px;transition:.2s;
}
.bc-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.bc-search > i{color:var(--muted);font-size:14px}
.bc-search input{
  flex:1;height:36px;border:0;outline:none;background:transparent;
  padding:0 12px;font-size:14px;color:var(--fg);
}
.bc-search button{
  height:36px;padding:0 22px;border:0;border-radius:20px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;transition:.15s;
}
.bc-search button:hover{filter:brightness(1.1)}

.bc-tip{
  display:flex;gap:16px;padding:22px 26px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.bc-tip > i{color:var(--accent);font-size:20px;margin-top:4px;flex:none}
.bc-tip h3{font-size:15px;font-weight:600;color:var(--fg);margin:0 0 10px}
.bc-tip p{font-size:14px;color:#555;margin:0 0 6px;line-height:1.7}
.bc-tip p:last-child{margin-bottom:0}
.bc-tip code{
  padding:2px 8px;background:var(--hover);border-radius:5px;
  font-family:Consolas,Monaco,monospace;font-size:13px;color:var(--accent);
}
[data-theme="dark"] .bc-tip p{color:#a8b0bb}

.bc-list{list-style:none;padding:0;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.bc-list li{border-bottom:1px solid var(--line)}
.bc-list li:last-child{border-bottom:0}
.bc-list li a{display:block;padding:16px 22px;transition:.15s}
.bc-list li a:hover{background:var(--hover)}
.bc-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:6px}
.bc-code{
  font-size:13px;color:var(--muted);
  font-family:Consolas,Monaco,monospace;
}
.bc-code i{font-size:12px;margin-right:4px;color:var(--accent)}
.bc-price{font-size:15px;font-weight:600;color:#c62828;flex:none}
[data-theme="dark"] .bc-price{color:#e07070}
.bc-name{font-size:15px;font-weight:500;color:var(--accent);line-height:1.5;margin-bottom:6px}
.bc-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;color:var(--muted)}
.bc-meta i{font-size:11px;margin-right:3px}

.bc-detail{max-width:none}
.bc-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.bc-hero-icon{
  width:60px;height:60px;border-radius:50%;margin-bottom:16px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--accent-soft);color:var(--accent);font-size:26px;
}
.bc-hero h1{font-size:22px;font-weight:600;margin:0 0 12px;color:var(--fg);line-height:1.5}
.bc-hero-code{
  font-size:15px;color:var(--muted);font-family:Consolas,Monaco,monospace;
  letter-spacing:2px;margin-bottom:12px;
}
.bc-hero-code i{color:var(--accent);margin-right:6px;font-size:14px}
.bc-hero-price{
  display:inline-block;padding:6px 20px;margin-bottom:12px;
  background:#ffeaea;color:#c62828;border-radius:20px;
  font-size:22px;font-weight:700;
}
[data-theme="dark"] .bc-hero-price{background:#2e1a1a;color:#e07070}
.bc-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.bc-hero-meta i{font-size:12px;margin-right:4px}

.bc-section{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.bc-section h2{
  font-size:16px;font-weight:600;margin:0 0 16px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.bc-section h2 i{color:var(--accent);font-size:15px}
.bc-facts{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px 24px;
}
.bc-facts li{font-size:14px;color:var(--fg);display:flex;gap:8px}
.bc-facts li b{color:var(--muted);font-weight:400;flex:none;width:70px}
.bc-facts li span{color:var(--fg);font-weight:500;word-break:break-all}

.bc-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.bc-rel-card{
  display:flex;flex-direction:column;gap:3px;padding:12px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:8px;transition:.15s;
}
.bc-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.bc-rel-code{font-size:11px;color:var(--muted);font-family:Consolas,Monaco,monospace}
.bc-rel-name{font-size:13px;color:var(--fg);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:640px){
  .bc-list li a{padding:14px 16px}
  .bc-hero{padding:24px 16px 18px}
  .bc-hero h1{font-size:18px}
  .bc-hero-price{font-size:18px}
  .bc-section{padding:18px 16px}
  .bc-facts li b{width:60px;font-size:13px}
  .bc-related{grid-template-columns:1fr}
}

/* ========== 千字文（复用三字经样式） ========== */
.qzw-book{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;
}
.qzw-line{
  display:flex;align-items:center;gap:16px;padding:14px 22px;
  border-bottom:1px solid var(--line);transition:.15s;
}
.qzw-line:last-child{border-bottom:0}
.qzw-line:hover{background:var(--hover)}
.qzw-num{
  font-size:13px;font-weight:600;color:var(--muted);
  font-family:Consolas,Monaco,monospace;flex:none;width:36px;
}
.qzw-text{font-size:16px;color:var(--accent);flex:1;letter-spacing:1px}
.qzw-more{color:var(--muted);font-size:12px;flex:none}
.qzw-line:hover .qzw-more{color:var(--accent)}

.qzw-detail{max-width:none}
.qzw-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.qzw-hero-num{
  display:inline-block;padding:4px 16px;margin-bottom:16px;
  background:var(--accent-soft);color:var(--accent);
  font-size:13px;font-weight:500;border-radius:16px;
}
.qzw-hero h1{font-size:26px;font-weight:600;margin:0 0 16px;color:var(--fg);
  line-height:1.7;letter-spacing:3px}
.qzw-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.qzw-hero-meta i{font-size:12px;margin-right:4px}

.qzw-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2;color:var(--fg);
}
.qzw-content h3{
  font-size:15px;font-weight:600;color:var(--accent);
  margin:20px 0 10px;padding-left:10px;border-left:3px solid var(--accent);
}
.qzw-content h3:first-child{margin-top:0}
.qzw-content p{margin:0 0 0.8em}
.qzw-content p:last-child{margin-bottom:0}

.qzw-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.qzw-nav a,.qzw-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.qzw-nav a{color:var(--accent)}
.qzw-nav a:hover{text-decoration:underline}
.qzw-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qzw-nav .disabled{opacity:.5}

@media (max-width:640px){
  .qzw-line{padding:12px 16px;gap:10px}
  .qzw-text{font-size:14px;letter-spacing:0}
  .qzw-hero{padding:24px 16px 18px}
  .qzw-hero h1{font-size:18px;letter-spacing:1px}
  .qzw-content{padding:22px 18px;font-size:15px}
  .qzw-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .qzw-nav a,.qzw-nav .disabled{max-width:100%}
}

/* ========== 知识百科 ========== */
@media (max-width:640px){
  .cs-hero h1{font-size:19px}
  .cs-content{padding:22px 18px;font-size:15px}
  .cs-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .cs-nav a,.cs-nav .disabled{max-width:100%}
  .cs-related{grid-template-columns:1fr}
}

/* 古文列表摘要：单行省略号 */
.gw-ex{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
.gw-list li a{display:block;overflow:hidden}
.gw-list li{overflow:hidden}

/* 古诗文、宋词列表也一样 */
.po-line2{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
.po-list li a{display:block;overflow:hidden}
.po-list li{overflow:hidden}

/* 传记、故事、作文、药方等列表 */
.st-ex,
.cp-ex,
.pf-ex,
.wy-ex,
.jk-excerpt,
.rd-a{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}

/* 名人名言详情 hero 里的浏览 */
.ws-hero-views{
  font-size:13px;color:var(--muted);margin:8px 0 0;
  display:flex;align-items:center;justify-content:center;gap:6px;
}
.ws-hero-views i{font-size:12px}

/* 古诗文详情：hero 里的浏览数 */
.po-author-lg .po-hero-views{
  display:inline-flex;align-items:center;gap:4px;
  margin-left:10px;font-size:12px;color:var(--muted);
  font-weight:400;
}
.po-author-lg .po-hero-views i{font-size:11px}

/* art-section 统一卡片背景 */
.art-body{font-size:15px;line-height:2;color:var(--fg)}

@media (max-width:640px){
  .art-section{padding:18px 16px}
}

/* ========== 汉字笔顺 ========== */
.bs-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));
  gap:8px;margin-bottom:24px;
}
.bs-cell{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;padding:14px 6px;background:var(--panel);
  border:1px solid var(--line);border-radius:10px;transition:.15s;
}
.bs-cell:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}
.bs-zi{font-size:28px;font-weight:500;line-height:1.2}
.bs-bh{font-size:11px;color:var(--muted)}

.bs-detail{max-width:none}
.bs-hero{
  display:flex;gap:28px;align-items:center;padding:28px 32px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:24px;
}
.bs-hero-zi{
  width:160px;height:160px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--hover);border-radius:12px;font-size:96px;line-height:1;
}
.bs-hero-info{flex:1;min-width:0}
.bs-hero-info h1{font-size:28px;font-weight:600;margin:0 0 16px;color:var(--fg)}
.bs-hero-meta{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px 16px;
}
.bs-hero-meta li{font-size:14px;color:var(--fg)}
.bs-hero-meta li b{color:var(--muted);font-weight:400;margin-right:6px}

.bs-section{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.bs-section h2{
  font-size:16px;font-weight:600;margin:0 0 16px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.bs-section h2 i{color:var(--accent);font-size:15px}
.bs-body{font-size:15px;line-height:2;color:var(--fg)}

.bs-steps{display:flex;flex-wrap:wrap;gap:8px}
.bs-step{
  display:inline-flex;align-items:center;gap:6px;padding:8px 16px;
  background:var(--hover);border-radius:8px;font-size:14px;color:var(--fg);
}
.bs-step em{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;
  font-style:normal;font-size:11px;
}

.bs-image img{max-width:480px;border-radius:8px}

.bs-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px}
.bs-rel-card{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:10px 4px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;transition:.15s;
}
.bs-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.bs-rel-zi{font-size:20px;font-weight:500}
.bs-rel-py{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

@media (max-width:640px){
  .bs-hero{flex-direction:column;align-items:center;text-align:center;padding:20px}
  .bs-hero-zi{width:120px;height:120px;font-size:72px}
  .bs-hero-info h1{font-size:22px}
  .bs-hero-meta{justify-content:center;text-align:left}
  .bs-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}
  .bs-zi{font-size:22px}
  .bs-section{padding:18px 16px}
  .bs-related{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}
}

/* 笔顺编码块 */





/* 笔顺笔画块 */
/* 笔顺笔画块：改居中 */





/* 笔顺笔画块：序号在左上角，笔画居中 */






/* ========== 详情页 section 统一样式 ========== */
.cy-detail .art-section, .wd-detail .art-section, .po-detail .art-section,
.ws-detail .art-section, .rd-detail .art-section, .bt-detail .art-section,
.efs-detail .art-section, .cl-detail .art-section, .zg-detail .art-section,
.jk-detail .art-section, .cs-detail .art-section, .bs-detail .art-section,
.gw-detail .art-section, .pt-detail .art-section, .hb-detail .art-section,
.ap-detail .art-section, .td-detail .art-section, .st-detail .art-section,
.wy-detail .art-section, .jf-detail .art-section, .bc-detail .art-section,
.article .art-section{
  padding:24px 28px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  margin-bottom:16px;
}
.cy-detail .art-section h2, .wd-detail .art-section h2, .po-detail .art-section h2,
.ws-detail .art-section h2, .rd-detail .art-section h2, .bt-detail .art-section h2,
.efs-detail .art-section h2, .cl-detail .art-section h2, .zg-detail .art-section h2,
.jk-detail .art-section h2, .cs-detail .art-section h2, .bs-detail .art-section h2,
.gw-detail .art-section h2, .pt-detail .art-section h2, .hb-detail .art-section h2,
.ap-detail .art-section h2, .td-detail .art-section h2, .st-detail .art-section h2,
.wy-detail .art-section h2, .jf-detail .art-section h2, .bc-detail .art-section h2,
.article .art-section h2{
  font-size:16px;font-weight:600;margin:0 0 16px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
  padding-left:10px;border-left:3px solid var(--accent);
}

@media (max-width:640px){
  .cy-detail .art-section, .wd-detail .art-section, .po-detail .art-section,
  .ws-detail .art-section, .rd-detail .art-section, .bt-detail .art-section,
  .gw-detail .art-section, .hb-detail .art-section, .ap-detail .art-section,
  .bs-detail .art-section, .cs-detail .art-section{
    padding:18px 16px;
  }
}

/* 列表容器撑满 */
.wy-list, .cp-list, .po-list, .gw-list,
.st-list, .td-list, .jf-list, .efs-list, .cl-list,
.bc-list, .bc-grid, .il-grid, .fd-grid, .hb-grid,
.nk-grid, .pt-grid, .bs-grid, .ct-list {
  width: 100%;
  box-sizing: border-box;
}
.content > main, main.content {
  width: 100%;
  box-sizing: border-box;
}

/* 知识百科详情 */
.cs-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.cs-hero h1{font-size:24px;font-weight:600;margin:0 0 12px;color:var(--fg);line-height:1.5}
.cs-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.cs-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2;color:var(--fg);
}
.cs-content p{margin:0 0 0.8em}
.cs-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.cs-nav a,.cs-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.cs-nav a{color:var(--accent)}
.cs-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cs-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}
.cs-rel-card{
  display:block;padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cs-rel-card:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

/* 全站 content 宽度 100% */
html, body{width:100%;overflow-x:hidden}
main.content{
  width:calc(100% - var(--sidebar-w));
  box-sizing:border-box;
  margin-left:var(--sidebar-w);
  padding:calc(var(--topbar-h) + 28px) 36px 60px;
}
main.content > *{max-width:100%;box-sizing:border-box}

/* 列表容器统一撑满 */
.wy-list, .cp-list, .po-list, .gw-list,
.st-list, .td-list, .jf-list, .efs-list, .cl-list,
.bc-list, .il-grid, .fd-grid, .hb-grid,
.nk-grid, .pt-grid, .bs-grid, .ab-list {
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

@media (max-width:820px){
  main.content{
    width:100%;
    margin-left:0;
    padding:calc(var(--topbar-h) + 16px) 16px 40px;
  }
}

/* ========== 英文缩写 ========== */
.ab-list{
  list-style:none;padding:0;margin:0;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;width:100%;box-sizing:border-box;
}
.ab-list li{border-bottom:1px solid var(--line)}
.ab-list li:last-child{border-bottom:0}
.ab-list li a{
  display:flex;align-items:center;gap:16px;
  padding:14px 22px;transition:.15s;
}
.ab-list li a:hover{background:var(--hover)}
.ab-code{
  font-size:16px;font-weight:600;color:var(--accent);
  font-family:Consolas,Monaco,monospace;
  flex:none;min-width:80px;
  padding:4px 10px;background:var(--accent-soft);border-radius:8px;text-align:center;
}
.ab-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ab-full{font-size:14px;color:var(--accent);font-weight:500;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ab-prc{font-size:12px;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 英文缩写详情 */
.ab-detail{max-width:none;width:100%;box-sizing:border-box}
.ab-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.ab-hero-code{
  display:inline-block;padding:8px 24px;margin-bottom:14px;
  background:var(--accent-soft);color:var(--accent);
  font-size:28px;font-weight:700;border-radius:12px;
  font-family:Consolas,Monaco,monospace;letter-spacing:2px;
}
.ab-hero h1{font-size:22px;font-weight:600;margin:0 0 10px;color:var(--fg);line-height:1.5}
.ab-hero-prc{font-size:15px;color:var(--muted);margin:0 0 12px}
.ab-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.ab-hero-meta i{font-size:12px;margin-right:4px}

.ab-section{
  padding:24px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
}
.ab-section h2{
  font-size:16px;font-weight:600;margin:0 0 16px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
  padding-left:10px;border-left:3px solid var(--accent);
}
.ab-section h2 i{color:var(--accent);font-size:15px}
.ab-body{font-size:15px;line-height:2;color:var(--fg)}

.ab-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.ab-nav a,.ab-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.ab-nav a{color:var(--accent)}
.ab-nav a:hover{text-decoration:underline}
.ab-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ab-nav .disabled{opacity:.5}

.ab-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
.ab-rel-card{
  display:flex;align-items:center;gap:8px;
  padding:10px 14px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;transition:.15s;
}
.ab-rel-card:hover{border-color:var(--accent);background:var(--accent-soft)}
.ab-rel-code{
  font-size:14px;font-weight:600;color:var(--accent);
  font-family:Consolas,Monaco,monospace;flex:none;
}
.ab-rel-prc{font-size:12px;color:var(--muted);flex:1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 知识百科详情 */
.cs-detail{max-width:none;width:100%;box-sizing:border-box}
.cs-hero{
  text-align:center;padding:32px 20px 24px;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius);margin-bottom:24px;
}
.cs-hero h1{font-size:24px;font-weight:600;margin:0 0 12px;color:var(--fg);line-height:1.5}
.cs-hero-meta{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--muted)}
.cs-content{
  padding:32px 36px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:24px;
  font-size:16px;line-height:2;color:var(--fg);
}
.cs-content p{margin:0 0 0.8em}
.cs-content h3{font-size:15px;font-weight:600;color:var(--accent);
  margin:20px 0 10px;padding-left:10px;border-left:3px solid var(--accent)}
.cs-nav{
  display:flex;justify-content:space-between;gap:12px;margin-bottom:32px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.cs-nav a,.cs-nav .disabled{
  display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.cs-nav a{color:var(--accent)}
.cs-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cs-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}
.cs-rel-card{
  display:block;padding:12px 16px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;color:var(--fg);transition:.15s;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cs-rel-card:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

/* 强制 content 里所有块级子元素撑满 */
main.content,
main.content > *,
main.content > * > *,
main.content > * > * > *{
  max-width:100%;
  box-sizing:border-box;
}
main.content ul,
main.content ol,
main.content .wy-list,
main.content .po-list,
main.content .gw-list,
main.content .cp-list,
main.content .st-list,
main.content .jf-list,
main.content .ab-list,
main.content .efs-list,
main.content .cl-list{
  width:100% !important;
  max-width:100% !important;
}
main.content .wy-list li a,
main.content .po-list li a,
main.content .gw-list li a,
main.content .cp-list li a{
  width:100%;
  box-sizing:border-box;
}

/* 列表简介：多行显示 */
.wy-ex,
.po-line2,
.cs-ex,
.cp-ex,
.st-ex,
.gw-ex{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  white-space:normal;
  line-height:1.6;
}

/* 列表简介强制单行省略号 */
.wy-ex, .po-line2, .cs-ex, .cp-ex, .st-ex, .gw-ex,
.jk-excerpt, .pf-ex, .il-zz, .fd-yh, .ct-list li,
.bc-list .bc-meta, .ab-list .ab-full{
  display:block !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:unset !important;
  line-height:1.6 !important;
  max-width:100% !important;
}

/* 十万个为什么列表简介单行 */
.wy-list .wy-ex{
  display:block !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-size:13px !important;
  color:#666 !important;
  line-height:1.8 !important;
  margin-top:4px !important;
}
.wy-list .wy-q{
  display:block !important;
  font-size:15px !important;
  font-weight:500 !important;
  color:var(--accent) !important;
  margin-bottom:4px !important;
}
.wy-list li a{display:block !important;padding:14px 22px !important}
.wy-list li{list-style:none !important}
.wy-list{width:100% !important;padding:0 !important;margin:0 !important}

/* ========== 弟子规 ========== */
.dzg-intro{
  padding:16px 22px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);margin-bottom:16px;
  font-size:14px;line-height:1.9;color:var(--fg);
}

.dzg-tabs{
  display:flex;gap:8px;margin-bottom:16px;
}
.dzg-tab{
  padding:8px 22px;border:1px solid var(--line);background:var(--panel);
  color:var(--fg);font-size:14px;cursor:pointer;border-radius:22px;
  transition:.15s;
}
.dzg-tab:hover{border-color:var(--accent);color:var(--accent)}
.dzg-tab.on{background:var(--accent);color:#fff;border-color:var(--accent)}

.dzg-panel{display:none}
.dzg-panel.on{display:block}

.dzg-list{
  list-style:none;padding:0;margin:0;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 22px;
}
.dzg-list li{
  padding:6px 0;font-size:16px;line-height:2;color:var(--fg);
  display:flex;gap:16px;
}
.dzg-cell{flex:1;min-width:0}

/* 注音版：每个字带拼音 */
.dzg-list-yin li{flex-wrap:wrap;gap:6px 10px;padding:10px 0}
.dzg-char{
  display:inline-flex;flex-direction:column;align-items:center;
  gap:0;min-width:32px;
}
.dzg-char em{
  font-style:normal;font-size:11px;color:var(--muted);
  line-height:1.4;
}
.dzg-char b{
  font-weight:500;font-size:18px;color:var(--fg);
  line-height:1.4;
}

/* 译文版 */
.dzg-list-yi li{
  display:block;padding:14px 0;border-bottom:1px solid var(--line);
}
.dzg-list-yi li:last-child{border-bottom:0}
.dzg-yi-chars{
  display:flex;flex-wrap:wrap;gap:4px 8px;margin-bottom:10px;
}
.dzg-exp{
  font-size:13px;color:var(--muted);margin:0;line-height:1.8;
  padding-left:10px;border-left:2px solid var(--line);
}

@media (max-width:640px){
  .dzg-list li{font-size:14px;gap:10px}
  .dzg-char{min-width:26px}
  .dzg-char b{font-size:16px}
  .dzg-tab{padding:6px 16px;font-size:13px}
}

/* 弟子规 - 原文版：左右两个格子居中一行 */
.dzg-list:not(.dzg-list-yin):not(.dzg-list-yi) li{
  display:flex;
  justify-content:center;
  align-items:baseline;
  gap:40px;
  padding:8px 0;
  border-bottom:1px dashed var(--line);
}
.dzg-list:not(.dzg-list-yin):not(.dzg-list-yi) li:last-child{
  border-bottom:0;
}
.dzg-list:not(.dzg-list-yin):not(.dzg-list-yi) .dzg-cell{
  flex:none;
  font-size:16px;
  line-height:2;
  white-space:nowrap;
  color:var(--fg);
}

@media (max-width:640px){
  .dzg-list:not(.dzg-list-yin):not(.dzg-list-yi) li{
    gap:14px;
  }
  .dzg-list:not(.dzg-list-yin):not(.dzg-list-yi) .dzg-cell{
    font-size:14px;
    white-space:normal;
    flex:1;
    text-align:center;
  }
}

/* 弟子规 - 原文版：每行一句居中 */
.dzg-list:not(.dzg-list-yin):not(.dzg-list-yi) li{
  display:block;
  padding:8px 0;
  border-bottom:1px dashed var(--line);
  text-align:center;
}
.dzg-list:not(.dzg-list-yin):not(.dzg-list-yi) li:last-child{border-bottom:0}
.dzg-list:not(.dzg-list-yin):not(.dzg-list-yi) .dzg-cell{
  display:block;
  font-size:16px;
  line-height:2;
  color:var(--fg);
}

/* 弟子规 - 注音版：每行一句居中 */
.dzg-list-yin li{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  padding:10px 0;
  border-bottom:1px dashed var(--line);
}
.dzg-list-yin li:last-child{border-bottom:0}
.dzg-list-yin .dzg-char{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:0;
  min-width:32px;
}

/* 弟子规 - 译文版：每行一句 + 解释，居中 */
.dzg-list-yi li{
  display:block;
  padding:14px 0;
  border-bottom:1px dashed var(--line);
  text-align:center;
}
.dzg-list-yi li:last-child{border-bottom:0}
.dzg-list-yi .dzg-yi-chars{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:10px;
}
.dzg-list-yi .dzg-exp{
  font-size:13px;
  color:var(--muted);
  margin:0 auto;
  line-height:1.8;
  max-width:800px;
  text-align:center;
}

/* 通用：字符样式 */
.dzg-char em{
  font-style:normal;
  font-size:11px;
  color:var(--muted);
  line-height:1.4;
}
.dzg-char b{
  font-weight:500;
  font-size:18px;
  color:var(--fg);
  line-height:1.4;
}

@media (max-width:640px){
  .dzg-list:not(.dzg-list-yin):not(.dzg-list-yi) .dzg-cell{font-size:15px}
  .dzg-char{min-width:26px}
  .dzg-char b{font-size:16px}
  .dzg-list-yin li{gap:6px}
  .dzg-list-yi .dzg-yi-chars{gap:5px}
}

/* ========== 乘法口诀表 ========== */
.cf-block{
  margin-bottom:24px;padding:22px 26px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.cf-block h2{
  font-size:16px;font-weight:600;margin:0 0 16px;
  display:flex;align-items:center;gap:8px;color:var(--fg);
}
.cf-block h2 i{color:var(--accent);font-size:15px}
.cf-block p{font-size:14px;line-height:1.9;color:var(--fg);margin:0 0 10px}
.cf-block p:last-child{margin-bottom:0}

/* 九九乘法表（数字） */
.cf-table{
  border-collapse:collapse;margin:0 auto;
}
.cf-table td{
  padding:8px 14px;
  border:1px solid var(--line);
  font-family:Consolas,Monaco,monospace;
  font-size:14px;
  color:var(--fg);
  text-align:center;
  white-space:nowrap;
  transition:.15s;
}
.cf-table td:hover{background:var(--accent-soft);color:var(--accent)}
.cf-table tr:nth-child(odd) td{background:rgba(0,0,0,.015)}
[data-theme="dark"] .cf-table tr:nth-child(odd) td{background:rgba(255,255,255,.02)}

/* 乘法口诀（中文） */
.cf-cn-table{
  font-size:15px;line-height:2.4;color:var(--fg);
  text-align:center;
}
.cf-cn-row{
  padding:4px 0;display:flex;justify-content:center;flex-wrap:wrap;
  gap:6px 18px;
}
.cf-cn-row + .cf-cn-row{border-top:1px dashed var(--line)}
.cf-cn-cell{
  display:inline-block;white-space:nowrap;
  padding:2px 8px;border-radius:6px;
  transition:.15s;
}
.cf-cn-cell:hover{background:var(--accent-soft);color:var(--accent)}

/* 大九九 */
.cf-big-line{
  font-size:14px;line-height:2;color:var(--fg);
  padding:10px 0;border-bottom:1px dashed var(--line);
  word-break:break-all;
}
.cf-big-line:last-child{border-bottom:0}
.cf-big-line b{
  display:inline-block;min-width:120px;
  color:var(--accent);font-weight:600;
}

@media (max-width:640px){
  .cf-block{padding:18px 16px}
  .cf-table td{padding:5px 6px;font-size:12px}
  .cf-cn-table{font-size:13px;line-height:2.2}
  .cf-cn-row{gap:4px 10px}
  .cf-cn-cell{padding:1px 4px}
  .cf-big-line{font-size:13px}
  .cf-big-line b{display:block;min-width:0;margin-bottom:4px}
}

/* 乘法口诀表：靠左显示 */
.cf-table{
  margin:0;
}
.cf-cn-table{
  text-align:left;
}
.cf-cn-row{
  justify-content:flex-start;
}
.cf-block{
  text-align:left;
}

/* ============================================================
   中国传统色（tc-*）
   列表页 .tc-grid / .tc-card / .tc-swatch
   详情页 .tc-detail / .tc-hero / .tc-facts / .tc-nav / .tc-related
   ============================================================ */

/* ---------- 列表页：色卡网格 ---------- */
.tc-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(120px,1fr));
  gap:12px;
  margin:0 0 24px;
}
.tc-card{
  display:block;
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  background:var(--card);
  text-decoration:none;
  color:inherit;
  transition:transform .15s ease, box-shadow .15s ease;
}
.tc-card:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(0,0,0,.08);
}
.tc-swatch{
  display:block;
  width:100%;
  aspect-ratio:1 / 1;
  border-bottom:1px solid var(--line);
}
.tc-info{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:8px 10px 10px;
}
.tc-name{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
  line-height:1.3;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tc-hex{
  font-size:12px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  letter-spacing:.3px;
}

/* ---------- 详情页 ---------- */
.tc-detail{
  max-width:900px;
}
.tc-hero{
  position:relative;
  border-radius:12px;
  padding:48px 24px;
  margin:0 0 20px;
  border:1px solid var(--line);
  overflow:hidden;
  text-align:center;
}
.tc-hero h1{
  display:inline-block;
  margin:0;
  padding:6px 18px;
  background:rgba(255,255,255,.88);
  color:#111;
  border-radius:6px;
  font-size:28px;
  font-weight:700;
  letter-spacing:2px;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
}
[data-theme="dark"] .tc-hero h1{
  background:rgba(0,0,0,.65);
  color:#fff;
}

.tc-section{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  padding:18px 20px;
  margin:0 0 20px;
}
.tc-section h2{
  margin:0 0 12px;
  font-size:16px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}

.tc-facts{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.tc-facts li{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border:1px dashed var(--line);
  border-radius:8px;
  font-size:14px;
  color:var(--fg);
}
.tc-facts li b{
  flex:0 0 64px;
  font-weight:600;
  color:var(--muted, #888);
  font-size:13px;
}
.tc-facts li span{
  flex:1;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  letter-spacing:.3px;
}
.tc-fact-copy{
  cursor:pointer;
  transition:background .15s ease, border-color .15s ease;
}
.tc-fact-copy:hover{
  background:rgba(0,0,0,.03);
  border-color:var(--accent, #c0392b);
}
.tc-fact-copy i{
  opacity:.5;
  margin-left:4px;
}
.tc-fact-copy:hover i{
  opacity:1;
}

/* 上下篇导航 */
.tc-nav{
  display:flex;
  gap:10px;
  margin:0 0 20px;
  flex-wrap:wrap;
}
.tc-nav a,
.tc-nav span{
  flex:1 1 0;
  min-width:140px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--card);
  color:var(--fg);
  text-decoration:none;
  font-size:14px;
  transition:border-color .15s ease, color .15s ease;
}
.tc-nav a:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}
.tc-nav .disabled{
  opacity:.45;
  cursor:not-allowed;
}
.tc-next{
  justify-content:flex-end;
  text-align:right;
}

/* 相近色 */
.tc-related{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(88px,1fr));
  gap:10px;
}
.tc-rel-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  padding:8px 6px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--card);
  color:var(--fg);
  text-decoration:none;
  font-size:12px;
  transition:border-color .15s ease, transform .15s ease;
}
.tc-rel-card:hover{
  border-color:var(--accent, #c0392b);
  transform:translateY(-2px);
}
.tc-rel-swatch{
  display:block;
  width:100%;
  aspect-ratio:1 / 1;
  border-radius:6px;
  border:1px solid var(--line);
}
.tc-rel-name{
  text-align:center;
  line-height:1.3;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:100%;
}

/* ---------- 暗黑模式 ---------- */
[data-theme="dark"] .tc-card,
[data-theme="dark"] .tc-section,
[data-theme="dark"] .tc-nav a,
[data-theme="dark"] .tc-nav span,
[data-theme="dark"] .tc-rel-card{
  background:var(--card);
  border-color:var(--line);
}
[data-theme="dark"] .tc-fact-copy:hover{
  background:rgba(255,255,255,.04);
}

/* ---------- 响应式 ---------- */
@media (max-width:640px){
  .tc-grid{
    grid-template-columns:repeat(auto-fill,minmax(96px,1fr));
    gap:8px;
  }
  .tc-info{padding:6px 8px 8px}
  .tc-name{font-size:13px}
  .tc-hex{font-size:11px}
  .tc-hero{padding:32px 16px}
  .tc-hero h1{font-size:22px}
  .tc-facts li{font-size:13px}
  .tc-facts li b{flex-basis:56px;font-size:12px}
}

/* ============================================================
   性交姿势大全（ct-*）
   列表 .ct-grid / .ct-card
   详情 .ct-detail / .ct-hero / .ct-content / .ct-tip / .ct-nav / .ct-related
   ============================================================ */

/* ---------- 列表页：卡片网格 ---------- */
.ct-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:16px;
  margin:0 0 24px;
}
.ct-card{
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  background:var(--card);
  text-decoration:none;
  color:inherit;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.ct-card:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(0,0,0,.08);
  border-color:var(--accent, #c0392b);
}
.ct-card-img{
  width:100%;
  aspect-ratio:4 / 3;
  background:var(--bg-soft, #f5f5f5);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.ct-card-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.ct-card-img i{
  font-size:32px;
  color:var(--muted, #bbb);
}
.ct-card-body{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:10px 12px 12px;
}
.ct-card-title{
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  line-height:1.4;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ct-card-more{
  font-size:12px;
  color:var(--muted, #888);
  display:flex;
  align-items:center;
  gap:4px;
}
.ct-card:hover .ct-card-more{
  color:var(--accent, #c0392b);
}

/* ---------- 详情页 ---------- */
.ct-detail{
  max-width:820px;
}
.ct-hero{
  margin:0 0 16px;
}
.ct-hero h1{
  margin:0 0 8px;
  font-size:24px;
  font-weight:700;
  color:var(--fg);
  line-height:1.35;
}
.ct-hero-meta{
  display:flex;
  gap:16px;
  font-size:13px;
  color:var(--muted, #888);
}
.ct-hero-views{
  display:inline-flex;
  align-items:center;
  gap:4px;
}

.ct-hero-img{
  margin:0 auto 20px;
  max-width:480px;
  border-radius:10px;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--bg-soft, #f5f5f5);
}
.ct-hero-img img{
  display:block;
  width:100%;
  height:auto;
  max-height:480px;
  object-fit:contain;
  margin:0 auto;
}

/* 正文 */
.ct-content{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  padding:20px;
  margin:0 0 16px;
  font-size:15px;
  line-height:1.9;
  color:var(--fg);
}
.ct-content p{
  margin:0 0 10px;
}
.ct-content p:last-child{
  margin-bottom:0;
}
.ct-content img{
  max-width:100%;
  height:auto;
  border-radius:6px;
  margin:8px 0;
}
.ct-content b,
.ct-content strong{
  font-weight:600;
}

/* 难度星级 */
.ct-stars{
  color:#f5a623;
  letter-spacing:2px;
  font-size:15px;
  vertical-align:middle;
}

/* 科普提示 */
.ct-tip{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:10px 14px;
  margin:0 0 20px;
  background:rgba(192,57,43,.06);
  border-left:3px solid var(--accent, #c0392b);
  border-radius:6px;
  font-size:13px;
  color:var(--fg);
  line-height:1.7;
}
.ct-tip i{
  color:var(--accent, #c0392b);
  margin-top:3px;
}

/* 上下篇 */
.ct-nav{
  display:flex;
  gap:10px;
  margin:0 0 20px;
  flex-wrap:wrap;
}
.ct-nav a,
.ct-nav span{
  flex:1 1 0;
  min-width:160px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--card);
  color:var(--fg);
  text-decoration:none;
  font-size:14px;
  line-height:1.4;
  transition:border-color .15s ease, color .15s ease;
}
.ct-nav a:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}
.ct-nav .disabled{
  opacity:.45;
  cursor:not-allowed;
}
.ct-next{
  justify-content:flex-end;
  text-align:right;
}

/* 相关姿势 */
.ct-related{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.ct-rel-card{
  display:inline-flex;
  align-items:center;
  padding:6px 12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  color:var(--fg);
  text-decoration:none;
  font-size:13px;
  line-height:1.4;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.ct-rel-card:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}

/* ---------- 暗黑模式 ---------- */
[data-theme="dark"] .ct-content,
[data-theme="dark"] .ct-nav a,
[data-theme="dark"] .ct-nav span,
[data-theme="dark"] .ct-rel-card{
  background:var(--card);
  border-color:var(--line);
}
[data-theme="dark"] .ct-card-img{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .ct-tip{
  background:rgba(192,57,43,.14);
}

/* ---------- 响应式 ---------- */
@media (max-width:640px){
  .ct-grid{
    grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
    gap:10px;
  }
  .ct-card-title{font-size:14px}
  .ct-hero h1{font-size:20px}
  .ct-content{padding:14px;font-size:14px}
  .ct-nav a,
  .ct-nav span{font-size:13px;padding:8px 12px}
}

/* ============================================================
   BMI 指数计算器（bm-*）
   ============================================================ */

/* ---------- 计算器 ---------- */
.bm-calc{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  padding:20px;
  margin:0 0 24px;
}
.bm-calc h2{
  margin:0 0 16px;
  font-size:16px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.bm-calc-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:flex-end;
}
.bm-calc-row label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:13px;
  color:var(--muted, #888);
}
.bm-calc-row input{
  width:140px;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  color:var(--fg);
  font-size:15px;
  font-family:inherit;
  outline:none;
  transition:border-color .15s ease;
}
.bm-calc-row input:focus{
  border-color:var(--accent, #c0392b);
}
.bm-btn{
  padding:10px 22px;
  border:none;
  border-radius:8px;
  background:var(--accent, #c0392b);
  color:#fff;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
  font-family:inherit;
  transition:opacity .15s ease;
}
.bm-btn:hover{opacity:.88}

.bm-result{
  margin-top:20px;
  padding:18px 20px;
  border-radius:10px;
  background:var(--bg-soft, #f7f7f7);
  display:flex;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
}
.bm-result-bmi{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.bm-result-label{
  font-size:12px;
  color:var(--muted, #888);
}
.bm-result-value{
  font-size:36px;
  font-weight:700;
  color:var(--accent, #c0392b);
  line-height:1.1;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.bm-result-tag{
  padding:4px 14px;
  border-radius:20px;
  font-size:14px;
  font-weight:600;
  color:#fff;
}
.bm-result-tip{
  flex:1;
  min-width:200px;
  font-size:14px;
  color:var(--fg);
  line-height:1.6;
}

.bm-note{
  margin:16px 0 0;
  font-size:12.5px;
  color:var(--muted, #888);
  line-height:1.9;
}

/* BMI 状态颜色 */
.bm-tag-thin   { background:#5b9bd5; }
.bm-tag-normal { background:#4caf50; }
.bm-tag-over   { background:#ff9800; }
.bm-tag-obese  { background:#e74c3c; }

/* ---------- 列表 ---------- */
.bm-list h2{
  margin:0 0 16px;
  font-size:16px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.bm-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:12px;
  margin:0 0 24px;
}
.bm-card{
  display:block;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:14px 16px;
  text-decoration:none;
  color:inherit;
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.bm-card:hover{
  transform:translateY(-2px);
  border-color:var(--accent, #c0392b);
  box-shadow:0 6px 16px rgba(0,0,0,.06);
}
.bm-card-head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin:0 0 8px;
  padding-bottom:8px;
  border-bottom:1px dashed var(--line);
}
.bm-card-stature{
  font-size:15px;
  font-weight:600;
  color:var(--fg);
}
.bm-card-weight{
  font-size:13px;
  color:var(--muted, #888);
}
.bm-card-body{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin:0 0 8px;
}
.bm-card-bmi{
  font-size:13px;
  color:var(--muted, #888);
}
.bm-card-bmi b{
  font-size:18px;
  font-weight:700;
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  margin-left:2px;
}
.bm-card-idw{
  font-size:12.5px;
  color:var(--muted, #888);
}
.bm-card-suggest{
  font-size:13px;
  color:var(--fg);
  line-height:1.5;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}

/* ---------- 详情 ---------- */
.bm-detail{max-width:820px}

.bm-hero{
  position:relative;
  border-radius:12px;
  padding:28px 24px;
  margin:0 0 20px;
  color:#fff;
  overflow:hidden;
}
.bm-hero-bmi{
  display:flex;
  align-items:baseline;
  gap:8px;
}
.bm-hero-label{
  font-size:14px;
  opacity:.85;
  letter-spacing:2px;
}
.bm-hero-value{
  font-size:48px;
  font-weight:700;
  line-height:1.1;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.bm-hero-tag{
  display:inline-block;
  padding:3px 12px;
  border-radius:14px;
  background:rgba(255,255,255,.25);
  font-size:13px;
  font-weight:600;
  margin:10px 0 12px;
}
.bm-hero h1{
  margin:0;
  font-size:18px;
  font-weight:500;
  opacity:.95;
  letter-spacing:.5px;
}

.bm-facts{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  padding:18px 20px;
  margin:0 0 20px;
}
.bm-facts h2{
  margin:0 0 14px;
  font-size:16px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.bm-fact-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.bm-fact-list li{
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border:1px dashed var(--line);
  border-radius:8px;
  font-size:14px;
  color:var(--fg);
}
.bm-fact-list li b{
  flex:0 0 80px;
  font-weight:600;
  color:var(--muted, #888);
  font-size:13px;
}
.bm-fact-list li span{flex:1;line-height:1.6}
.bm-tag-text{
  display:inline-block;
  padding:2px 10px;
  border-radius:12px;
  color:#fff;
  font-size:13px;
  width:fit-content;
}

.bm-tip{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:14px 16px;
  margin:0 0 20px;
  background:rgba(192,57,43,.05);
  border-left:3px solid var(--accent, #c0392b);
  border-radius:6px;
  font-size:13.5px;
  color:var(--fg);
  line-height:1.8;
}
.bm-tip > i{
  color:var(--accent, #c0392b);
  margin-top:4px;
}
.bm-tip strong{display:block;margin-bottom:4px;font-size:14px}
.bm-tip p{margin:0 0 4px}
.bm-tip p:last-child{margin-bottom:0}

.bm-nav{
  display:flex;
  gap:10px;
  margin:0 0 20px;
  flex-wrap:wrap;
}
.bm-nav a,
.bm-nav span{
  flex:1 1 0;
  min-width:180px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--card);
  color:var(--fg);
  text-decoration:none;
  font-size:13.5px;
  line-height:1.4;
  transition:border-color .15s ease, color .15s ease;
}
.bm-nav a:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}
.bm-nav .disabled{opacity:.45;cursor:not-allowed}
.bm-next{justify-content:flex-end;text-align:right}

.bm-related{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:10px;
}
.bm-rel-card{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--card);
  color:var(--fg);
  text-decoration:none;
  transition:border-color .15s ease, transform .15s ease;
}
.bm-rel-card:hover{
  border-color:var(--accent, #c0392b);
  transform:translateY(-2px);
}
.bm-rel-bmi{
  font-size:15px;
  font-weight:700;
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.bm-rel-meta{
  font-size:12px;
  color:var(--muted, #888);
}

/* ---------- 暗黑模式 ---------- */
[data-theme="dark"] .bm-calc,
[data-theme="dark"] .bm-card,
[data-theme="dark"] .bm-facts,
[data-theme="dark"] .bm-nav a,
[data-theme="dark"] .bm-nav span,
[data-theme="dark"] .bm-rel-card{
  background:var(--card);
  border-color:var(--line);
}
[data-theme="dark"] .bm-result{background:rgba(255,255,255,.04)}
[data-theme="dark"] .bm-tip{background:rgba(192,57,43,.14)}

/* ---------- 响应式 ---------- */
@media (max-width:640px){
  .bm-calc{padding:16px}
  .bm-calc-row{gap:10px}
  .bm-calc-row input{width:100%}
  .bm-calc-row label{flex:1 1 100%}
  .bm-btn{width:100%}
  .bm-result{padding:14px;gap:14px}
  .bm-result-value{font-size:30px}
  .bm-grid{grid-template-columns:1fr;gap:10px}
  .bm-hero{padding:20px}
  .bm-hero-value{font-size:38px}
  .bm-hero h1{font-size:15px}
  .bm-nav a, .bm-nav span{font-size:12.5px;padding:8px 12px}
}

/* ============================================================
   URL 编解码工具（uc-*）
   ============================================================ */

.uc-box{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  padding:20px;
  margin:0 0 24px;
}

.uc-row{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:0 0 16px;
}
.uc-label{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
}
.uc-ta{
  width:100%;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  color:var(--fg);
  font-size:14px;
  line-height:1.6;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  outline:none;
  resize:vertical;
  transition:border-color .15s ease;
  box-sizing:border-box;
}
.uc-ta:focus{
  border-color:var(--accent, #c0392b);
}

.uc-btns{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 16px;
}
.uc-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:9px 18px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--card);
  color:var(--fg);
  font-size:14px;
  font-weight:500;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.uc-btn:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}
.uc-btn-primary{
  background:var(--accent, #c0392b);
  border-color:var(--accent, #c0392b);
  color:#fff;
}
.uc-btn-primary:hover{
  opacity:.88;
  color:#fff;
}

.uc-tips{
  margin:20px 0 0;
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  font-size:13px;
  color:var(--muted, #888);
  line-height:1.9;
}
.uc-tips p{margin:0 0 6px}
.uc-tips p:last-child{margin-bottom:0}
.uc-tips b{color:var(--fg);font-weight:600}
.uc-tips code{
  padding:1px 6px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:4px;
  font-size:12.5px;
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

[data-theme="dark"] .uc-tips{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .uc-tips code{
  background:rgba(255,255,255,.06);
}

@media (max-width:640px){
  .uc-box{padding:14px}
  .uc-btn{font-size:13px;padding:8px 14px}
}

/* ============================================================
   进制转换器（jz-*）
   ============================================================ */

.jz-input-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.jz-input{
  flex:1 1 240px;
  min-width:200px;
  padding:11px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  color:var(--fg);
  font-size:15px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  outline:none;
  transition:border-color .15s ease;
  box-sizing:border-box;
}
.jz-input:focus{border-color:var(--accent, #c0392b)}
.jz-select{
  flex:0 0 130px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  color:var(--fg);
  font-size:14px;
  font-family:inherit;
  outline:none;
  cursor:pointer;
  transition:border-color .15s ease;
}
.jz-select:focus{border-color:var(--accent, #c0392b)}

.jz-result{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin:16px 0 0;
}
.jz-item{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.jz-label{
  font-size:12.5px;
  color:var(--muted, #888);
  font-weight:600;
  letter-spacing:.3px;
}
.jz-line{
  display:flex;
  gap:8px;
  align-items:stretch;
}
.jz-output{
  flex:1;
  padding:10px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
  color:var(--fg);
  font-size:15px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  outline:none;
  box-sizing:border-box;
  word-break:break-all;
}
.jz-copy{
  flex:0 0 42px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--card);
  color:var(--muted, #888);
  cursor:pointer;
  font-size:14px;
  transition:border-color .15s ease, color .15s ease;
}
.jz-copy:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}

[data-theme="dark"] .jz-output{
  background:rgba(255,255,255,.04);
}

@media (max-width:640px){
  .jz-select{flex:1 1 100%}
  .jz-input{flex:1 1 100%;min-width:0}
  .jz-output{font-size:14px;padding:9px 12px}
}

/* ============================================================
   Unix 时间戳转换器（ts-*）
   ============================================================ */

.ts-now{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 18px;
  margin:0 0 20px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:10px;
  border:1px solid var(--line);
}
.ts-now-label{
  font-size:13px;
  color:var(--muted, #888);
}
.ts-now-value{
  flex:1;
  font-size:22px;
  font-weight:700;
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  letter-spacing:1px;
}
.ts-now-refresh,
.ts-now-copy{
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--card);
  color:var(--muted, #888);
  width:36px;
  height:36px;
  cursor:pointer;
  font-size:13px;
  transition:border-color .15s ease, color .15s ease;
}
.ts-now-refresh:hover,
.ts-now-copy:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}

.ts-block{
  margin:0 0 24px;
}
.ts-block h3{
  margin:0 0 12px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.ts-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:0 0 14px;
}
.ts-row .jz-input{flex:1 1 240px;min-width:200px}
.ts-row .uc-btn{flex:0 0 auto}

.ts-result{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

[data-theme="dark"] .ts-now{
  background:rgba(255,255,255,.04);
}

@media (max-width:640px){
  .ts-now{padding:12px 14px;flex-wrap:wrap}
  .ts-now-value{font-size:18px;flex:1 1 100%}
  .ts-row .jz-input{flex:1 1 100%;min-width:0}
  .ts-row .uc-btn{flex:1 1 100%}
}

/* ============================================================
   HTML 颜色代码表（hc-*）
   ============================================================ */

.hc-search-wrap{
  margin:0 0 20px;
}
.hc-search{
  width:100%;
  padding:11px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  color:var(--fg);
  font-size:14px;
  font-family:inherit;
  outline:none;
  box-sizing:border-box;
  transition:border-color .15s ease;
}
.hc-search:focus{border-color:var(--accent, #c0392b)}

.hc-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  gap:12px;
  margin:0 0 24px;
}
.hc-card{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.hc-card:hover{
  transform:translateY(-2px);
  border-color:var(--accent, #c0392b);
  box-shadow:0 6px 16px rgba(0,0,0,.06);
}
.hc-swatch{
  flex:0 0 48px;
  width:48px;
  height:48px;
  border-radius:8px;
  border:1px solid var(--line);
}
.hc-info{
  flex:1;
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.hc-name{
  font-size:13.5px;
  font-weight:600;
  color:var(--fg);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.hc-hex{
  font-size:12.5px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  cursor:pointer;
  letter-spacing:.3px;
  transition:color .15s ease;
}
.hc-hex:hover{color:var(--accent, #c0392b)}

@media (max-width:640px){
  .hc-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
  .hc-swatch{flex-basis:40px;width:40px;height:40px}
  .hc-name{font-size:12.5px}
  .hc-hex{font-size:11.5px}
}

/* AES 工具：修正 .uc-row 里的 input / select 高度 */
.uc-row .jz-input,
.uc-row .jz-select{
  flex:0 0 auto;
  width:100%;
  min-width:0;
  height:auto;
  padding:11px 14px;
  font-size:14px;
  line-height:1.4;
}
.uc-row .jz-select{
  width:auto;
  min-width:200px;
  cursor:pointer;
}

/* 修正 .uc-row 里 select 的高度（避免被 flex 撑开） */
.uc-row .jz-select{
  align-self:flex-start;
  height:42px;
  min-height:42px;
  max-height:42px;
  padding:0 14px;
  font-size:14px;
  line-height:42px;
  flex:0 0 auto;
  width:auto;
  min-width:200px;
}

/* ============================================================
   工具通用：uc-input / uc-select（用在 .uc-row 里，正确高度）
   ============================================================ */

.uc-input{
  display:block;
  width:100%;
  height:42px;
  padding:0 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  color:var(--fg);
  font-size:14px;
  font-family:inherit;
  outline:none;
  box-sizing:border-box;
  transition:border-color .15s ease;
}
.uc-input:focus{border-color:var(--accent, #c0392b)}

.uc-select{
  display:block;
  width:auto;
  min-width:200px;
  height:42px;
  padding:0 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  color:var(--fg);
  font-size:14px;
  font-family:inherit;
  outline:none;
  cursor:pointer;
  box-sizing:border-box;
  transition:border-color .15s ease;
}
.uc-select:focus{border-color:var(--accent, #c0392b)}

.uc-row .uc-input,
.uc-row .uc-select{
  align-self:flex-start;
  flex:0 0 auto;
}
.uc-row .uc-input{width:100%;min-width:0}
.uc-row .uc-select{width:auto;min-width:200px}

@media (max-width:640px){
  .uc-row .uc-select{width:100%}
}

/* RSA 工具：生成密钥行 */
.rsa-gen-row{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.rsa-gen-tip{
  font-size:13px;
  color:var(--muted, #888);
}

/* ============================================================
   SHA 哈希工具（sha-*）
   ============================================================ */

.sha-result{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  margin:16px 0 0;
}
.sha-item{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.sha-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.sha-label{
  font-size:13px;
  font-weight:600;
  color:var(--fg);
}
.sha-copy{
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--card);
  color:var(--muted, #888);
  font-size:12px;
  padding:3px 10px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease;
}
.sha-copy:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}
.sha-output{
  width:100%;
  padding:10px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
  color:var(--fg);
  font-size:13.5px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  outline:none;
  box-sizing:border-box;
  word-break:break-all;
}

[data-theme="dark"] .sha-output{
  background:rgba(255,255,255,.04);
}

/* 随机数生成器 */
.rn-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin:0 0 14px;
}
.rn-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.rn-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.rn-options{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin:0 0 16px;
  font-size:14px;
  color:var(--fg);
}
.rn-check{
  display:inline-flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
}
.rn-check input{
  width:16px;
  height:16px;
  cursor:pointer;
}

@media (max-width:640px){
  .rn-row{grid-template-columns:1fr}
}

/* HTML 压缩工具 */
.hm-opts{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  font-size:14px;
  color:var(--fg);
}
.hm-stat{
  margin:12px 0 0;
  padding:10px 14px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  font-size:13px;
  color:var(--muted, #888);
}
.hm-stat b{color:var(--accent, #c0392b);font-family:ui-monospace,Menlo,Consolas,monospace}
[data-theme="dark"] .hm-stat{background:rgba(255,255,255,.04)}

/* ============================================================
   HTTP 状态码（ht-*）
   ============================================================ */

.ht-group{margin:0 0 28px}
.ht-group-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 12px;
  font-size:16px;
  font-weight:600;
  color:var(--fg);
}
.ht-count{
  font-size:12.5px;
  color:var(--muted, #888);
  font-weight:400;
}
.ht-badge{
  display:inline-block;
  padding:3px 10px;
  border-radius:12px;
  font-size:13px;
  font-weight:600;
  color:#fff;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  letter-spacing:.5px;
}
.ht-badge-1{background:#5b9bd5}
.ht-badge-2{background:#4caf50}
.ht-badge-3{background:#ff9800}
.ht-badge-4{background:#e74c3c}
.ht-badge-5{background:#9c27b0}

.ht-list{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.ht-item{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:12px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.ht-item:hover{
  border-color:var(--accent, #c0392b);
  box-shadow:0 4px 12px rgba(0,0,0,.05);
}
.ht-code{
  flex:0 0 60px;
  text-align:center;
  padding:5px 0;
  border-radius:8px;
  color:#fff;
  font-size:15px;
  font-weight:700;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  letter-spacing:.5px;
}
.ht-body{flex:1;min-width:0}
.ht-name{
  font-size:14.5px;
  font-weight:600;
  color:var(--fg);
  margin:0 0 4px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.ht-desc{
  font-size:13.5px;
  color:var(--muted, #888);
  line-height:1.6;
}

@media (max-width:640px){
  .ht-code{flex-basis:52px;font-size:14px}
  .ht-item{padding:10px 12px;gap:10px}
  .ht-name{font-size:13.5px}
  .ht-desc{font-size:12.5px}
}

/* ============================================================
   UserAgent 查看（ua-*）
   ============================================================ */

.ua-summary{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:12px;
  margin:0 0 24px;
}
.ua-card{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
}
.ua-card-icon{
  flex:0 0 40px;
  width:40px;
  height:40px;
  border-radius:10px;
  background:rgba(192,57,43,.08);
  color:var(--accent, #c0392b);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
}
.ua-card-body{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.ua-card-label{
  font-size:12px;
  color:var(--muted, #888);
}
.ua-card-value{
  font-size:14.5px;
  font-weight:600;
  color:var(--fg);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ua-table{
  margin:20px 0 0;
  border-top:1px dashed var(--line);
  padding-top:14px;
}
.ua-row{
  display:flex;
  gap:12px;
  padding:8px 0;
  font-size:13.5px;
  line-height:1.6;
  border-bottom:1px dashed var(--line);
}
.ua-row:last-child{border-bottom:none}
.ua-row b{
  flex:0 0 90px;
  color:var(--muted, #888);
  font-weight:600;
}
.ua-row span{
  flex:1;
  color:var(--fg);
  word-break:break-all;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

[data-theme="dark"] .ua-card-icon{
  background:rgba(192,57,43,.2);
}

@media (max-width:640px){
  .ua-summary{grid-template-columns:1fr 1fr;gap:8px}
  .ua-card{padding:10px 12px;gap:8px}
  .ua-card-icon{flex-basis:32px;width:32px;height:32px;font-size:14px}
  .ua-card-value{font-size:13px}
  .ua-row b{flex-basis:70px;font-size:12.5px}
  .ua-row span{font-size:12.5px}
}

/* ============================================================
   二维码生成器（qr-*）
   ============================================================ */

.qr-wrap{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:24px;
  margin:0 0 8px;
}
.qr-left{min-width:0}
.qr-right{
  display:flex;
  align-items:flex-start;
  justify-content:center;
}

.qr-opts{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  margin:0 0 16px;
}
.qr-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.qr-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.qr-color{
  width:100%;
  height:42px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  cursor:pointer;
  padding:3px;
  box-sizing:border-box;
}

.qr-preview{
  width:100%;
  min-height:240px;
  border:1px dashed var(--line);
  border-radius:12px;
  background:var(--card);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.qr-preview canvas,
.qr-preview img{
  display:block;
  max-width:100%;
  height:auto;
}
.qr-placeholder{
  text-align:center;
  color:var(--muted, #ccc);
}
.qr-placeholder i{
  font-size:48px;
  display:block;
  margin:0 0 8px;
}
.qr-placeholder p{
  margin:0;
  font-size:13px;
}

@media (max-width:760px){
  .qr-wrap{grid-template-columns:1fr}
  .qr-right{order:-1}
  .qr-opts{grid-template-columns:1fr 1fr}
}

/* ============================================================
   二维码解析器（qd-*）
   ============================================================ */

.qd-wrap{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  padding:20px;
  margin:0 0 24px;
}

.qd-upload{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:36px 20px;
  border:2px dashed var(--line);
  border-radius:12px;
  background:var(--bg);
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease;
  text-align:center;
}
.qd-upload:hover,
.qd-upload.qd-dragover{
  border-color:var(--accent, #c0392b);
  background:rgba(192,57,43,.04);
}
.qd-upload > i{
  font-size:42px;
  color:var(--muted, #888);
  margin:0 0 4px;
}
.qd-upload p{
  margin:0;
  font-size:14px;
  color:var(--fg);
}
.qd-upload b{color:var(--accent, #c0392b)}
.qd-hint{
  font-size:12.5px !important;
  color:var(--muted, #888) !important;
}

.qd-preview{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--bg);
}
.qd-preview img{
  max-width:100%;
  max-height:320px;
  border-radius:8px;
  background:#fff;
  padding:8px;
}
.qd-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
}

[data-theme="dark"] .qd-preview img{
  background:#fff;
}

@media (max-width:640px){
  .qd-wrap{padding:14px}
  .qd-upload{padding:24px 14px}
  .qd-upload > i{font-size:32px}
  .qd-preview img{max-height:240px}
}

/* SEO超级外链工具 */
.sl-box{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  padding:20px;
  margin:0 0 24px;
}
.sl-checks{
  display:flex;
  flex-wrap:wrap;
  gap:14px 22px;
  font-size:14px;
  color:var(--fg);
}

@media (max-width:640px){
  .sl-box{padding:14px}
  .sl-checks{gap:10px 16px;font-size:13px}
}

/* ============================================================
   正则表达式工具（re-*）
   ============================================================ */

.re-box{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  padding:20px;
  margin:0 0 24px;
}

.re-pattern-row{
  display:flex;
  align-items:center;
  gap:6px;
  margin:0 0 12px;
}
.re-slash{
  font-size:22px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.re-input{
  flex:1;
  padding:11px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  color:var(--fg);
  font-size:14px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  outline:none;
  transition:border-color .15s ease;
}
.re-input:focus{border-color:var(--accent, #c0392b)}
.re-flags{
  flex:0 0 80px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  color:var(--fg);
  font-size:14px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  outline:none;
  text-align:center;
}

.re-flags-help{
  display:flex;
  flex-wrap:wrap;
  gap:14px 20px;
  margin:0 0 16px;
  font-size:13.5px;
  color:var(--fg);
}

.re-result-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:8px 0 12px;
}
.re-status{
  font-size:13.5px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  padding:4px 12px;
  border-radius:6px;
  background:var(--bg-soft, #f7f7f7);
}
.re-status.re-ok{background:rgba(76,175,80,.1);color:#4caf50}
.re-status.re-err{background:rgba(231,76,60,.1);color:#e74c3c}

.re-highlight{
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  white-space:pre-wrap;
  word-break:break-all;
  min-height:60px;
  max-height:400px;
  overflow:auto;
}
.re-mark{
  background:rgba(255,193,7,.4);
  color:inherit;
  padding:1px 2px;
  border-radius:3px;
  font-weight:600;
}
[data-theme="dark"] .re-mark{
  background:rgba(255,193,7,.3);
  color:#fff;
}

.re-detail{
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
  font-size:13px;
  line-height:1.8;
  max-height:280px;
  overflow:auto;
}
.re-detail-item{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  padding:5px 0;
  border-bottom:1px dashed var(--line);
}
.re-detail-item:last-child{border-bottom:none}
.re-detail-idx{
  color:var(--accent, #c0392b);
  font-weight:600;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:12px;
}
.re-detail-pos{
  color:var(--muted, #888);
  font-size:12px;
}
.re-detail-val{
  padding:2px 8px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:4px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  color:var(--fg);
  word-break:break-all;
}
.re-group{
  font-size:12px;
  color:#5b9bd5;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.re-empty{
  color:var(--muted, #888);
  font-size:13px;
}
.re-detail-more{
  color:var(--muted, #888);
  font-size:12.5px;
  padding:6px 0 0;
  font-style:italic;
}

.re-replace-row{
  display:flex;
  gap:10px;
  margin:0 0 8px;
}

.re-cheatsheet{
  margin-top:20px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
  padding:12px 16px;
}
.re-cheatsheet summary{
  cursor:pointer;
  font-size:14px;
  font-weight:600;
  color:var(--fg);
  user-select:none;
}
.re-cheat-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:10px 18px;
  margin-top:12px;
}
.re-cheat-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:13px;
}
.re-cheat-item b{
  color:var(--muted, #888);
  font-weight:600;
  font-size:12.5px;
}
.re-cheat-item code{
  padding:5px 10px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:6px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:12.5px;
  color:var(--accent, #c0392b);
  word-break:break-all;
}

[data-theme="dark"] .re-detail,
[data-theme="dark"] .re-cheatsheet{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .re-status{
  background:rgba(255,255,255,.06);
}

@media (max-width:640px){
  .re-box{padding:14px}
  .re-flags{flex-basis:60px}
  .re-highlight{font-size:12.5px;padding:10px}
  .re-detail{font-size:12px}
  .re-cheat-grid{grid-template-columns:1fr}
}

/* 端口检测工具 */
.pt-presets{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.pt-preset{
  padding:5px 12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  color:var(--fg);
  font-size:12.5px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease;
}
.pt-preset:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}

.pt-status{
  margin:16px 0 12px;
  font-size:13.5px;
  color:var(--muted, #888);
  min-height:20px;
}
.pt-status b{color:var(--fg);font-family:ui-monospace,Menlo,Consolas,monospace}

.pt-result{margin:0 0 20px}

.pt-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:10px;
}
.pt-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  transition:border-color .15s ease;
}
.pt-item.pt-open{
  border-color:#4caf50;
  background:rgba(76,175,80,.05);
}
.pt-item.pt-closed{
  border-color:var(--line);
  opacity:.75;
}
.pt-port{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.pt-info{
  font-size:13px;
  display:flex;
  align-items:center;
  gap:5px;
}
.pt-open .pt-info{color:#4caf50}
.pt-closed .pt-info{color:var(--muted, #888)}
.pt-ms{
  font-size:11.5px;
  color:var(--muted, #888);
  margin-left:auto;
}

[data-theme="dark"] .pt-item.pt-open{
  background:rgba(76,175,80,.12);
}

@media (max-width:640px){
  .pt-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
  .pt-item{padding:10px 12px}
  .pt-port{font-size:16px}
  .pt-info{font-size:12px}
}

/* ============================================================
   IP 检测工具（ip-*）
   ============================================================ */

.ip-my{
  display:flex;
  align-items:center;
  gap:16px;
  padding:18px 22px;
  margin:0 0 24px;
  background:linear-gradient(135deg, rgba(192,57,43,.08), rgba(192,57,43,.02));
  border:1px solid rgba(192,57,43,.2);
  border-radius:12px;
  flex-wrap:wrap;
}
.ip-my-label{
  font-size:13.5px;
  color:var(--muted, #888);
  display:flex;
  align-items:center;
  gap:6px;
}
.ip-my-label i{color:var(--accent, #c0392b)}
.ip-my-value{
  flex:1;
  font-size:22px;
  font-weight:700;
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  letter-spacing:1px;
  min-width:140px;
}

.ip-input-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.ip-input-row .uc-input{flex:1;min-width:200px}
.ip-input-row .uc-btn{flex:0 0 auto}

.ip-result{
  margin:20px 0 0;
}

.ip-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  overflow:hidden;
}
.ip-card-query{
  padding:14px 18px;
  background:var(--bg-soft, #f7f7f7);
  border-bottom:1px solid var(--line);
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  display:flex;
  align-items:center;
  gap:8px;
}
.ip-card-query i{color:var(--accent, #c0392b)}

.ip-card-grid{
  display:grid;
  grid-template-columns:1fr;
}
.ip-row{
  display:flex;
  gap:14px;
  padding:10px 18px;
  font-size:13.5px;
  border-bottom:1px dashed var(--line);
}
.ip-row:last-child{border-bottom:none}
.ip-row b{
  flex:0 0 90px;
  color:var(--muted, #888);
  font-weight:600;
}
.ip-row span{
  flex:1;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.ip-loading,
.ip-error{
  padding:24px;
  text-align:center;
  font-size:14px;
  color:var(--muted, #888);
  border:1px dashed var(--line);
  border-radius:10px;
}
.ip-loading i{margin-right:6px;color:var(--accent, #c0392b)}
.ip-error{color:#e74c3c;border-color:rgba(231,76,60,.3)}

[data-theme="dark"] .ip-card-query{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .ip-my{
  background:linear-gradient(135deg, rgba(192,57,43,.18), rgba(192,57,43,.06));
  border-color:rgba(192,57,43,.35);
}

@media (max-width:640px){
  .ip-my{padding:14px 16px;gap:10px}
  .ip-my-value{font-size:18px;flex:1 1 100%}
  .ip-row b{flex-basis:72px;font-size:12.5px}
  .ip-row span{font-size:12.5px}
}

/* 获取网页头部信息 */
.hd-summary{
  margin:0 0 16px;
  min-height:20px;
}
.hd-summary-row{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
  padding:14px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.hd-status{
  display:inline-block;
  padding:4px 14px;
  border-radius:8px;
  color:#fff;
  font-size:14px;
  font-weight:700;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  letter-spacing:.5px;
}
.hd-status.hd-ok{background:#4caf50}
.hd-status.hd-redirect{background:#ff9800}
.hd-status.hd-client{background:#e74c3c}
.hd-status.hd-server{background:#9c27b0}
.hd-url{
  font-size:13.5px;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}
.hd-ip{
  font-size:12.5px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.hd-loading,
.hd-error{
  padding:20px;
  text-align:center;
  font-size:14px;
  color:var(--muted, #888);
  border:1px dashed var(--line);
  border-radius:10px;
}
.hd-loading i{margin-right:6px;color:var(--accent, #c0392b)}
.hd-error{color:#e74c3c;border-color:rgba(231,76,60,.3)}

.hd-list{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  overflow:hidden;
}
.hd-row{
  display:flex;
  gap:14px;
  padding:10px 16px;
  border-bottom:1px dashed var(--line);
  font-size:13.5px;
  line-height:1.7;
}
.hd-row:last-child{border-bottom:none}
.hd-name{
  flex:0 0 180px;
  color:var(--accent, #c0392b);
  font-weight:600;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}
.hd-value{
  flex:1;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}
.hd-empty{
  padding:20px;
  text-align:center;
  color:var(--muted, #888);
  font-size:13.5px;
}

[data-theme="dark"] .hd-summary-row,
[data-theme="dark"] .hd-list{
  background:rgba(255,255,255,.04);
}

@media (max-width:640px){
  .hd-name{flex:0 0 120px;font-size:12.5px}
  .hd-value{font-size:12.5px}
  .hd-summary-row{padding:10px 12px}
}

/* UserAgent生成器 */
.ua-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:0 0 14px;
}
.ua-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ua-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.ua-field .uc-select{width:100%;min-width:0}

.ua-presets{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:12px;
}
.ua-preset{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:10px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--card);
  cursor:pointer;
  transition:border-color .15s ease;
}
.ua-preset:hover{border-color:var(--accent, #c0392b)}
.ua-preset b{
  font-size:13px;
  color:var(--fg);
  font-weight:600;
}
.ua-preset code{
  font-size:12px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
  line-height:1.6;
}

@media (max-width:640px){
  .ua-form{grid-template-columns:1fr}
}

/* 图片压缩工具 */
.iz-box{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  padding:20px;
  margin:0 0 24px;
}

.iz-compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin:0 0 20px;
}
.iz-side{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.iz-side h3{
  margin:0;
  font-size:14px;
  font-weight:600;
  color:var(--fg);
}
.iz-side img{
  width:100%;
  max-height:300px;
  object-fit:contain;
  border-radius:6px;
  background:#fff;
  padding:4px;
  box-sizing:border-box;
}
.iz-meta{
  font-size:12.5px;
  color:var(--muted, #888);
  line-height:1.8;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.iz-meta b{font-family:inherit}

.iz-controls{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
  margin:0 0 18px;
}
.iz-ctrl{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.iz-ctrl label{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.iz-ctrl label span{color:var(--accent, #c0392b)}
.iz-ctrl input[type=range]{
  width:100%;
  height:6px;
  accent-color:var(--accent, #c0392b);
  cursor:pointer;
}

[data-theme="dark"] .iz-side{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .iz-side img{
  background:#222;
}

@media (max-width:640px){
  .iz-box{padding:14px}
  .iz-compare{grid-template-columns:1fr;gap:12px}
  .iz-side img{max-height:220px}
}

/* 批量打开网址工具 */
.ou-opts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
  margin:0 0 18px;
}
.ou-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ou-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.ou-preview{
  margin:16px 0 0;
}
.ou-preview-title{
  font-size:13px;
  color:var(--muted, #888);
  margin:0 0 8px;
}
.ou-list{
  margin:0;
  padding:0 0 0 24px;
  max-height:240px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
  padding:12px 12px 12px 32px;
  font-size:13px;
  line-height:1.9;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  color:var(--fg);
}
.ou-list li{word-break:break-all}

[data-theme="dark"] .ou-list{
  background:rgba(255,255,255,.04);
}

/* robots.txt 生成工具 */
.rb-presets{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.rb-preset{
  padding:6px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  color:var(--fg);
  font-size:13px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.rb-preset:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}

/* UUID 生成器 */
.uu-opts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.uu-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.uu-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

/* 代码高亮工具 */
.hl-opts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.hl-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.hl-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.hl-field .uc-select{width:100%;min-width:0}

.hl-preview{
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  overflow:auto;
  max-height:480px;
}
.hl-preview pre{
  margin:0;
  padding:16px 18px;
  font-size:13.5px;
  line-height:1.7;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  overflow:auto;
}
.hl-preview code{
  font-family:inherit;
  background:none;
  padding:0;
}
[data-theme="dark"] .hl-preview{
  background:#0d1117;
}

/* 行号表格 */
.hljs-ln{
  width:100%;
  border-collapse:collapse;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.7;
}
.hljs-ln td{
  padding:0;
  border:none;
}
.hljs-ln-nos{
  width:36px;
  padding-right:14px !important;
  text-align:right;
  color:var(--muted, #aaa);
  user-select:none;
  vertical-align:top;
}
.hljs-ln-code{
  white-space:pre-wrap;
  word-break:break-all;
  vertical-align:top;
}

/* 图片转 Base64 */
.b64-panel{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.b64-preview{
  display:flex;
  gap:16px;
  align-items:flex-start;
  padding:14px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
  flex-wrap:wrap;
}
.b64-preview img{
  max-width:200px;
  max-height:160px;
  border-radius:6px;
  background:#fff;
  padding:4px;
  border:1px solid var(--line);
}
.b64-meta{
  flex:1;
  min-width:180px;
  font-size:12.5px;
  color:var(--muted, #888);
  line-height:1.9;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

[data-theme="dark"] .b64-preview{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .b64-preview img{
  background:#fff;
}

@media (max-width:640px){
  .b64-preview{flex-direction:column}
  .b64-preview img{max-width:100%}
}

/* 爬虫模拟抓取工具 */
.cr-summary{
  margin:16px 0 16px;
  min-height:20px;
}
.cr-detail{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.cr-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.cr-card h3{
  margin:0 0 12px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.cr-card h3 i{color:var(--accent, #c0392b)}
.cr-row{
  display:flex;
  gap:14px;
  padding:8px 0;
  font-size:13.5px;
  line-height:1.7;
  border-bottom:1px dashed var(--line);
}
.cr-row:last-child{border-bottom:none}
.cr-row b{
  flex:0 0 140px;
  color:var(--muted, #888);
  font-weight:600;
}
.cr-row span{
  flex:1;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}
.cr-text{
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:12px 14px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
  max-height:300px;
  overflow:auto;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
[data-theme="dark"] .cr-text{
  background:rgba(255,255,255,.04);
}

@media (max-width:640px){
  .cr-row{flex-direction:column;gap:4px;padding:6px 0}
  .cr-row b{flex:none}
  .cr-card{padding:12px 14px}
}

/* JS 在线运行工具 */
.jr-hint{
  font-size:12px;
  opacity:.7;
  margin-left:4px;
}
.jr-output{
  min-height:140px;
  max-height:360px;
  overflow:auto;
  padding:14px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#1e1e1e;
  color:#d4d4d4;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13px;
  line-height:1.8;
}
[data-theme="light"] .jr-output{
  background:#f6f8fa;
  color:#24292e;
}
.jr-line{
  padding:2px 0;
  word-break:break-all;
  white-space:pre-wrap;
}
.jr-line-error{color:#f48771}
[data-theme="light"] .jr-line-error{color:#cb2431}
.jr-line-warn{color:#dcdcaa}
[data-theme="light"] .jr-line-warn{color:#b08800}
.jr-line-info{color:#6a9955;font-style:italic}
[data-theme="light"] .jr-line-info{color:#22863a}
.jr-empty{
  color:#888;
  font-style:italic;
  text-align:center;
  padding:20px 0;
}

@media (max-width:640px){
  .jr-output{font-size:12px;padding:10px 12px}
}

/* 文字竖排工具 */
.vt-opts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.vt-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.vt-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.vt-field .uc-select{width:100%;min-width:0}

.vt-preview-wrap{
  display:flex;
  justify-content:center;
  align-items:flex-start;
  padding:0;
  min-height:200px;
  transition:background .15s ease, border-color .15s ease;
  overflow:auto;
}
.vt-preview{
  display:flex;
  gap:12px;
  padding:10px 4px;
  color:#3a2c1a;
  font-weight:500;
}
.vt-preview .vt-line{
  letter-spacing:2px;
  white-space:nowrap;
}

@media (max-width:640px){
  .vt-preview-wrap{padding:0}
}

/* Linux 命令大全 */
.lx-group{margin:0 0 26px}
.lx-group-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 12px;
  font-size:16px;
  font-weight:600;
  color:var(--fg);
}
.lx-group-title i{color:var(--accent, #c0392b)}
.lx-count{
  font-size:12.5px;
  color:var(--muted, #888);
  font-weight:400;
}

.lx-list{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(340px,1fr));
  gap:10px;
}
.lx-item{
  padding:12px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.lx-item:hover{
  border-color:var(--accent, #c0392b);
  box-shadow:0 4px 12px rgba(0,0,0,.05);
}
.lx-head{
  display:flex;
  align-items:baseline;
  gap:14px;
  margin:0 0 8px;
  flex-wrap:wrap;
}
.lx-cmd{
  display:inline-block;
  padding:3px 12px;
  border-radius:6px;
  background:rgba(192,57,43,.08);
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:14px;
  font-weight:600;
  cursor:pointer;
  transition:background .15s ease;
}
.lx-cmd:hover{background:rgba(192,57,43,.16)}
.lx-desc{
  font-size:13.5px;
  color:var(--fg);
}
.lx-example{
  font-size:0;
}
.lx-ex{
  display:inline-block;
  padding:6px 12px;
  border-radius:6px;
  background:var(--bg-soft, #f7f7f7);
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:12.5px;
  cursor:pointer;
  word-break:break-all;
  transition:background .15s ease;
}
.lx-ex:hover{background:rgba(192,57,43,.08);color:var(--accent, #c0392b)}

[data-theme="dark"] .lx-cmd{background:rgba(192,57,43,.2)}
[data-theme="dark"] .lx-cmd:hover{background:rgba(192,57,43,.35)}
[data-theme="dark"] .lx-ex{background:rgba(255,255,255,.05)}

@media (max-width:640px){
  .lx-item{padding:10px 12px}
  .lx-head{gap:8px}
  .lx-cmd{font-size:13px;padding:2px 10px}
  .lx-desc{font-size:12.5px}
  .lx-ex{font-size:11.5px;padding:5px 10px}
}

/* ============================================================
   HTML 表格生成器（tg-*）
   ============================================================ */

.tg-opts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.tg-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.tg-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.tg-field .uc-select{width:100%;min-width:0}

.tg-editor{
  border:1px solid var(--line);
  border-radius:10px;
  padding:14px;
  background:var(--bg-soft, #f7f7f7);
  overflow-x:auto;
}
.tg-edit-table{
  width:100%;
  border-collapse:collapse;
  min-width:400px;
}
.tg-edit-table th,
.tg-edit-table td{
  padding:4px;
  border:1px solid var(--line);
}
.tg-edit-table th{
  background:var(--card);
}
.tg-cell{
  width:100%;
  padding:6px 8px;
  border:1px solid transparent;
  border-radius:4px;
  background:var(--card);
  color:var(--fg);
  font-size:13px;
  font-family:inherit;
  outline:none;
  box-sizing:border-box;
}
.tg-cell:focus{
  border-color:var(--accent, #c0392b);
}

.tg-preview{
  border:1px solid var(--line);
  border-radius:10px;
  padding:16px;
  background:#fff;
  overflow-x:auto;
  min-height:80px;
}
.tg-preview table{
  color:#333;
}
.tg-preview:empty::before{
  content: '预览会显示在这里…';
  color:var(--muted, #aaa);
  font-size:13px;
}

[data-theme="dark"] .tg-editor{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .tg-preview{
  background:#fff;
}

@media (max-width:640px){
  .tg-editor{padding:8px}
  .tg-preview{padding:10px}
}

/* ============================================================
   网站缩略图（ts-*）
   ============================================================ */

.ts-opts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.ts-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ts-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.ts-field .uc-select{width:100%;min-width:0}

.ts-preview{
  border:1px solid var(--line);
  border-radius:10px;
  padding:20px;
  background:var(--bg-soft, #f7f7f7);
  min-height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:auto;
}
.ts-preview img{
  display:block;
  max-width:100%;
}
.ts-empty,
.ts-loading,
.ts-error{
  text-align:center;
  color:var(--muted, #888);
  font-size:13.5px;
}
.ts-empty i,
.ts-loading i,
.ts-error i{
  font-size:36px;
  display:block;
  margin:0 0 10px;
  color:var(--muted, #ccc);
}
.ts-loading i{color:var(--accent, #c0392b)}
.ts-error i{color:#e74c3c}
.ts-error{color:#e74c3c}
.ts-empty p,
.ts-loading p,
.ts-error p{margin:0}

[data-theme="dark"] .ts-preview{
  background:rgba(255,255,255,.04);
}

@media (max-width:640px){
  .ts-preview{padding:12px;min-height:160px}
}

/* ICO 图标制作 */
.ico-panel{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.ico-preview{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  padding:16px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.ico-orig h3,
.ico-sizes h3{
  margin:0 0 10px;
  font-size:14px;
  font-weight:600;
  color:var(--fg);
}
.ico-orig img{
  max-width:160px;
  max-height:160px;
  border-radius:8px;
  background:#fff;
  padding:6px;
  border:1px solid var(--line);
}
.ico-size-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.ico-size-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  padding:6px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--card);
}
.ico-size-item span{
  font-size:11px;
  color:var(--muted, #888);
}
.ico-size-item canvas{
  background:#fff;
  border-radius:4px;
  border:1px solid var(--line);
}

.ico-checks{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  font-size:14px;
  color:var(--fg);
}

[data-theme="dark"] .ico-preview{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .ico-orig img{
  background:#fff;
}

@media (max-width:640px){
  .ico-preview{grid-template-columns:1fr;gap:14px}
  .ico-orig img{max-width:120px;max-height:120px}
}

/* 字符串转数组工具 */
.sa-opts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.sa-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.sa-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.sa-field .uc-select{width:100%;min-width:0}

/* 数组拼接字符串工具 */
.as-opts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.as-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.as-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.as-field .uc-select{width:100%;min-width:0}

/* 英文字母大小写转换 */
.uc-btn[data-mode]{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13px;
}

/* ============================================================
   花体英文转换（fy-*）
   ============================================================ */

.fy-list{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin:16px 0 0;
}
.fy-item{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:12px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  transition:border-color .15s ease;
}
.fy-item:hover{
  border-color:var(--accent, #c0392b);
}
.fy-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.fy-name{
  font-size:12.5px;
  color:var(--muted, #888);
  font-weight:600;
}
.fy-copy{
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--card);
  color:var(--muted, #888);
  font-size:12px;
  padding:3px 10px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease;
}
.fy-copy:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}
.fy-value{
  font-size:18px;
  color:var(--fg);
  line-height:1.6;
  word-break:break-all;
  min-height:24px;
}
.fy-empty{
  padding:30px;
  text-align:center;
  color:var(--muted, #888);
  font-size:13.5px;
}

[data-theme="dark"] .fy-item{
  background:var(--card);
}

@media (max-width:640px){
  .fy-item{padding:10px 12px}
  .fy-value{font-size:15px}
}

/* 修复 layer 弹窗位置：固定在视口水平居中、垂直 40% 处 */
.layui-layer-msg{
  position:fixed !important;
  top:40vh !important;
  left:50% !important;
  transform:translate(-50%, -50%) !important;
  margin:0 !important;
  z-index:99999999 !important;
}
.layui-layer-shade{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  width:100vw !important;
  height:100vh !important;
}

/* 花体英文：指定字体，确保特殊 Unicode 区块能显示 */
.fy-value{
  font-family: "Segoe UI Symbol", "Cambria Math", "STIX Two Math",
               "Symbola", "Noto Sans Symbols 2", "Apple Symbols",
               "DejaVu Sans", "Arial Unicode MS", sans-serif;
}

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Symbols+2&display=swap');

/* ============================================================
   JSON 转 Excel（je-*）
   ============================================================ */

.je-preview{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  overflow:hidden;
  min-height:60px;
}
.je-table-wrap{
  overflow:auto;
  max-height:400px;
}
.je-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.je-table th,
.je-table td{
  padding:8px 12px;
  border:1px solid var(--line);
  text-align:left;
  white-space:nowrap;
  max-width:300px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.je-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  position:sticky;
  top:0;
  z-index:1;
}
.je-table td{
  color:var(--fg);
}
.je-table tr:nth-child(even) td{
  background:rgba(0,0,0,.02);
}
.je-empty{
  padding:30px;
  text-align:center;
  color:var(--muted, #888);
  font-size:13.5px;
}
.je-more{
  padding:10px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-top:1px solid var(--line);
  font-size:12.5px;
  color:var(--muted, #888);
  text-align:center;
}

[data-theme="dark"] .je-table th,
[data-theme="dark"] .je-more{
  background:rgba(255,255,255,.05);
}
[data-theme="dark"] .je-table tr:nth-child(even) td{
  background:rgba(255,255,255,.02);
}

@media (max-width:640px){
  .je-table th,
  .je-table td{padding:6px 10px;font-size:12px}
}

/* ============================================================
   批量 IP 归属地查询（ib-*）
   ============================================================ */

.ib-result{
  margin:20px 0 0;
  min-height:60px;
}
.ib-table-wrap{
  overflow:auto;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  max-height:520px;
}
.ib-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.ib-table th,
.ib-table td{
  padding:9px 12px;
  border-bottom:1px solid var(--line);
  text-align:left;
  white-space:nowrap;
}
.ib-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  position:sticky;
  top:0;
  z-index:1;
}
.ib-table td{
  color:var(--fg);
}
.ib-table tr:last-child td{border-bottom:none}
.ib-table tr:hover td{background:rgba(0,0,0,.02)}
.ib-ip{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  color:var(--accent, #c0392b) !important;
  font-weight:600;
}
.ib-fail td{color:#e74c3c}

.ib-empty,
.ib-loading,
.ib-error{
  padding:30px;
  text-align:center;
  font-size:13.5px;
  border:1px dashed var(--line);
  border-radius:10px;
  color:var(--muted, #888);
}
.ib-loading i{margin-right:6px;color:var(--accent, #c0392b)}
.ib-error{color:#e74c3c;border-color:rgba(231,76,60,.3)}

[data-theme="dark"] .ib-table th{
  background:rgba(255,255,255,.05);
}
[data-theme="dark"] .ib-table tr:hover td{
  background:rgba(255,255,255,.03);
}

@media (max-width:640px){
  .ib-table th,
  .ib-table td{padding:6px 8px;font-size:12px}
}

/* ============================================================
   WebSocket 测试工具（ws-*）
   ============================================================ */

.ws-status{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
  font-size:13.5px;
  color:var(--fg);
  margin:0 0 18px;
}
.ws-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
}
.ws-dot-off{background:#bbb}
.ws-dot-connecting{background:#ff9800;animation:ws-pulse 1s infinite}
.ws-dot-on{background:#4caf50;animation:ws-pulse 2s infinite}
@keyframes ws-pulse{
  0%, 100% {opacity:1}
  50% {opacity:.4}
}

.ws-log{
  min-height:240px;
  max-height:400px;
  overflow:auto;
  padding:12px 16px;
  background:#1e1e1e;
  color:#d4d4d4;
  border-radius:10px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:12.5px;
  line-height:1.8;
}
[data-theme="light"] .ws-log{
  background:#f6f8fa;
  color:#24292e;
}

.ws-log-empty{
  color:#888;
  font-style:italic;
  text-align:center;
  padding:40px 0;
}

.ws-line{
  display:flex;
  gap:8px;
  padding:2px 0;
  word-break:break-all;
}
.ws-time{color:#6a9955;flex:0 0 auto}
.ws-tag{
  flex:0 0 40px;
  text-align:center;
  font-weight:600;
  padding:0 4px;
  border-radius:3px;
  font-size:11px;
}
.ws-msg{flex:1;white-space:pre-wrap}

.ws-line-system .ws-tag{background:rgba(91,155,213,.2);color:#5b9bd5}
.ws-line-send .ws-tag{background:rgba(76,175,80,.2);color:#4caf50}
.ws-line-recv .ws-tag{background:rgba(255,152,0,.2);color:#ff9800}
.ws-line-error .ws-tag{background:rgba(231,76,60,.2);color:#e74c3c}
.ws-line-error .ws-msg{color:#f48771}
[data-theme="light"] .ws-line-error .ws-msg{color:#cb2431}

[data-theme="dark"] .ws-status{
  background:rgba(255,255,255,.04);
}

@media (max-width:640px){
  .ws-log{font-size:11.5px;padding:10px 12px}
}

/* ============================================================
   聚合图床（ib-*）
   ============================================================ */

.ib-list{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin:20px 0 0;
}

.ib-card{
  display:flex;
  gap:16px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  align-items:center;
  flex-wrap:wrap;
}
.ib-card-preview{
  flex:0 0 80px;
  width:80px;
  height:80px;
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.ib-card-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.ib-card-preview i{
  font-size:26px;
  color:var(--muted, #ccc);
}
.ib-card-info{
  flex:1;
  min-width:180px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.ib-card-name{
  font-size:13.5px;
  font-weight:600;
  color:var(--fg);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ib-card-size{
  font-size:12px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.ib-card-status{
  font-size:12.5px;
  color:var(--muted, #888);
}
.ib-card-url{
  flex:1 1 100%;
  display:flex;
  gap:8px;
  margin-top:6px;
}
.ib-url-input{
  flex:1;
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--bg);
  color:var(--fg);
  font-size:13px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  outline:none;
  box-sizing:border-box;
}
.ib-url-copy{
  flex:0 0 40px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--card);
  color:var(--muted, #888);
  cursor:pointer;
  font-size:13px;
  transition:border-color .15s ease, color .15s ease;
}
.ib-url-copy:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}

[data-theme="dark"] .ib-card-preview{
  background:rgba(255,255,255,.05);
}

@media (max-width:640px){
  .ib-card{padding:10px;gap:10px}
  .ib-card-preview{flex-basis:60px;width:60px;height:60px}
}

/* 聚合图床 - 顶部工具条 */
.ib-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:12px 16px;
  margin:20px 0 0;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
  flex-wrap:wrap;
}
.ib-bar-left{
  font-size:13.5px;
  color:var(--muted, #888);
}
.ib-bar-left b{
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:15px;
}
.ib-list-title{
  margin:20px 0 12px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
}

/* 卡片行动按钮 */
.ib-card-actions{
  display:flex;
  gap:6px;
  flex:0 0 auto;
}
.ib-act-copy,
.ib-act-open,
.ib-act-del{
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--card);
  color:var(--muted, #888);
  cursor:pointer;
  font-size:13px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  transition:border-color .15s ease, color .15s ease;
}
.ib-act-copy:hover,
.ib-act-open:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}
.ib-act-del:hover{
  border-color:#e74c3c;
  color:#e74c3c;
}
.ib-loading,
.ib-empty{
  padding:30px;
  text-align:center;
  color:var(--muted, #888);
  font-size:13.5px;
  border:1px dashed var(--line);
  border-radius:10px;
}
.ib-loading i{margin-right:6px;color:var(--accent, #c0392b)}

[data-theme="dark"] .ib-bar{
  background:rgba(255,255,255,.04);
}

@media (max-width:640px){
  .ib-bar{padding:10px 12px}
  .ib-card-actions{flex:1 1 100%;justify-content:flex-end;margin-top:4px}
}

/* ============================================================
   Meta 标签生成工具（mg-*）
   ============================================================ */

.mg-section{
  margin:0 0 24px;
  padding:18px 20px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg-soft, #f7f7f7);
}
.mg-section h3{
  margin:0 0 16px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.mg-section h3 i{color:var(--accent, #c0392b)}

.mg-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:14px;
}
.mg-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.mg-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.mg-field .uc-select{width:100%;min-width:0}

[data-theme="dark"] .mg-section{
  background:rgba(255,255,255,.04);
}

@media (max-width:640px){
  .mg-section{padding:14px}
  .mg-grid{grid-template-columns:1fr}
}

/* 网页常用色彩 */
.wc-group{margin:0 0 28px}
.wc-group-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 14px;
  font-size:16px;
  font-weight:600;
  color:var(--fg);
}
.wc-group-title i{color:var(--accent, #c0392b)}
.wc-count{
  font-size:12.5px;
  color:var(--muted, #888);
  font-weight:400;
}

/* ============================================================
   WEB 安全色（ws-*）
   ============================================================ */

.ws-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(96px,1fr));
  gap:4px;
  margin:20px 0 0;
}

.ws-swatch{
  position:relative;
  aspect-ratio:1 / 1;
  border-radius:6px;
  cursor:pointer;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:4px;
  overflow:hidden;
  transition:transform .12s ease, box-shadow .12s ease;
  border:1px solid rgba(0,0,0,.05);
}
.ws-swatch:hover{
  transform:scale(1.1);
  z-index:2;
  box-shadow:0 4px 12px rgba(0,0,0,.2);
}

.ws-hex{
  font-size:10px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-weight:600;
  color:rgba(255,255,255,.9);
  text-shadow:0 1px 2px rgba(0,0,0,.6);
  letter-spacing:.3px;
  user-select:none;
  pointer-events:none;
}
.ws-swatch[style*="#FFFFFF"] .ws-hex,
.ws-swatch[style*="#FFFF"] .ws-hex,
.ws-swatch[style*="#FFF"] .ws-hex{
  color:rgba(0,0,0,.6);
  text-shadow:none;
}

@media (max-width:640px){
  .ws-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:3px}
  .ws-hex{font-size:9px}
}

/* ============================================================
   网址链接批量生产器（ug-*）
   ============================================================ */

.ug-mode{
  display:flex;
  gap:8px;
  margin:0 0 20px;
  flex-wrap:wrap;
}
.ug-tab{
  padding:8px 18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--card);
  color:var(--fg);
  font-size:13.5px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.ug-tab:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}
.ug-tab-on{
  background:var(--accent, #c0392b);
  border-color:var(--accent, #c0392b);
  color:#fff;
}
.ug-tab-on:hover{
  color:#fff;
}

.ug-pane{
  padding:18px 0 4px;
  border-top:1px dashed var(--line);
  margin:0 0 20px;
}
.ug-pane .uc-row:first-child{margin-top:0}

.ug-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:14px;
  margin:0 0 16px;
}
.ug-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ug-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.ug-gen{
  margin-top:4px;
}

@media (max-width:640px){
  .ug-tab{padding:6px 14px;font-size:12.5px}
  .ug-grid{grid-template-columns:1fr 1fr}
}

/* ============================================================
   定时自动刷新网页（ar-*）
   ============================================================ */

.ar-tabs{
  display:flex;
  gap:8px;
  margin:0 0 20px;
  flex-wrap:wrap;
}
.ar-tab{
  padding:8px 18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--card);
  color:var(--fg);
  font-size:13.5px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.ar-tab:hover{border-color:var(--accent, #c0392b);color:var(--accent, #c0392b)}
.ar-tab-on{background:var(--accent, #c0392b);border-color:var(--accent, #c0392b);color:#fff}
.ar-tab-on:hover{color:#fff}

.ar-pane{margin:0 0 16px}
.ar-info{
  padding:12px 16px;
  background:rgba(255,193,7,.08);
  border-left:3px solid #ffc107;
  border-radius:6px;
  font-size:13.5px;
  color:var(--fg);
  line-height:1.7;
}
.ar-info p{margin:0}

.ar-interval{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.ar-interval .uc-input{
  flex:0 0 140px;
  min-width:120px;
}
.ar-presets{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.ar-preset{
  padding:6px 12px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  color:var(--fg);
  font-size:12.5px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.ar-preset:hover{border-color:var(--accent, #c0392b);color:var(--accent, #c0392b)}
.ar-preset-on{background:var(--accent, #c0392b);border-color:var(--accent, #c0392b);color:#fff}
.ar-preset-on:hover{color:#fff}

.ar-status{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:12px;
  margin:16px 0 12px;
  padding:16px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.ar-status-item{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.ar-status-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.ar-status-value{
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.ar-big{font-size:22px;color:var(--accent, #c0392b)}
.ar-state-running{color:#4caf50}
.ar-state-stopped{color:var(--muted, #888)}

.ar-progress{
  height:6px;
  border-radius:3px;
  background:var(--line);
  overflow:hidden;
  margin:0 0 16px;
}
.ar-progress-bar{
  height:100%;
  width:0;
  background:var(--accent, #c0392b);
  border-radius:3px;
  transition:width .95s linear;
}

.ar-frame-wrap{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  margin:0 0 24px;
}
.ar-frame-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:10px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-bottom:1px solid var(--line);
  font-size:13px;
}
.ar-frame-title{
  color:var(--fg);
  font-weight:600;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.ar-frame-info{
  color:var(--muted, #888);
  font-size:12px;
  flex:0 0 auto;
}
.ar-frame{
  width:100%;
  height:600px;
  border:none;
  display:block;
  background:#fff;
}

[data-theme="dark"] .ar-status,
[data-theme="dark"] .ar-frame-head{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .ar-info{
  background:rgba(255,193,7,.12);
}

@media (max-width:640px){
  .ar-tab{padding:6px 14px;font-size:12.5px}
  .ar-status{padding:12px;gap:10px}
  .ar-frame{height:400px}
}

/* ============================================================
   DNS 地址列表（dn-*）
   ============================================================ */

.dn-group{margin:0 0 26px}
.dn-group-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 12px;
  font-size:16px;
  font-weight:600;
  color:var(--fg);
}
.dn-group-title i{color:var(--accent, #c0392b)}
.dn-count{
  font-size:12.5px;
  color:var(--muted, #888);
  font-weight:400;
}

.dn-list{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:10px;
}

.dn-card{
  padding:14px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.dn-card:hover{
  border-color:var(--accent, #c0392b);
  box-shadow:0 4px 12px rgba(0,0,0,.05);
}
.dn-name{
  font-size:14.5px;
  font-weight:600;
  color:var(--fg);
  margin:0 0 10px;
}
.dn-ips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.dn-ip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 12px;
  border-radius:16px;
  background:var(--bg-soft, #f7f7f7);
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:12.5px;
  cursor:pointer;
  user-select:none;
  transition:background .15s ease, color .15s ease;
}
.dn-ip:hover{
  background:rgba(192,57,43,.1);
  color:var(--accent, #c0392b);
}
.dn-ip i{
  font-size:11px;
  opacity:.5;
}
.dn-ip:hover i{opacity:1}
.dn-ip-v6{
  color:#5b9bd5;
}
.dn-ip-v6:hover{
  background:rgba(91,155,213,.1);
  color:#5b9bd5;
}

[data-theme="dark"] .dn-ip{
  background:rgba(255,255,255,.05);
}

@media (max-width:640px){
  .dn-list{grid-template-columns:1fr}
  .dn-card{padding:12px 14px}
  .dn-ip{font-size:11.5px;padding:4px 10px}
}

/* ============================================================
   Word 快捷键（wk-*）
   ============================================================ */

.wk-group{margin:0 0 24px}
.wk-group-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 12px;
  font-size:16px;
  font-weight:600;
  color:var(--fg);
}
.wk-group-title i{color:var(--accent, #c0392b)}
.wk-count{
  font-size:12.5px;
  color:var(--muted, #888);
  font-weight:400;
}

.wk-list{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:8px;
}

.wk-item{
  display:flex;
  align-items:center;
  gap:14px;
  padding:10px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  transition:border-color .15s ease;
}
.wk-item:hover{
  border-color:var(--accent, #c0392b);
}

.wk-key{
  flex:0 0 auto;
  display:inline-block;
  padding:4px 12px;
  border:1px solid var(--line);
  border-bottom-width:2px;
  border-radius:6px;
  background:var(--bg-soft, #f7f7f7);
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
  transition:background .15s ease, transform .1s ease;
}
.wk-key:hover{
  background:rgba(192,57,43,.1);
}
.wk-key:active{
  transform:translateY(1px);
  border-bottom-width:1px;
}

.wk-desc{
  flex:1;
  font-size:13.5px;
  color:var(--fg);
  min-width:0;
}

[data-theme="dark"] .wk-key{
  background:rgba(255,255,255,.05);
}

@media (max-width:640px){
  .wk-list{grid-template-columns:1fr}
  .wk-item{padding:8px 12px;gap:10px}
  .wk-key{font-size:12px;padding:3px 10px}
  .wk-desc{font-size:12.5px}
}

/* ============================================================
   录制 MP3 音频（rc-*）
   ============================================================ */

.rc-center{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:20px;
  padding:30px 20px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:12px;
  margin:0 0 24px;
}

.rc-visual{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  height:140px;
}

.rc-circle{
  width:110px;
  height:110px;
  border-radius:50%;
  background:var(--accent, #c0392b);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:42px;
  box-shadow:0 8px 24px rgba(192,57,43,.3);
  transition:all .3s ease;
  position:relative;
  z-index:2;
}
.rc-circle.rc-recording{
  animation:rc-pulse 1.5s infinite;
}

@keyframes rc-pulse{
  0%, 100% {
    box-shadow:0 8px 24px rgba(192,57,43,.3), 0 0 0 0 rgba(192,57,43,.5);
  }
  50% {
    box-shadow:0 8px 24px rgba(192,57,43,.5), 0 0 0 20px rgba(192,57,43,0);
  }
}

.rc-waves{
  position:absolute;
  display:flex;
  gap:6px;
  align-items:center;
  height:60px;
  opacity:0;
  transition:opacity .3s ease;
}
.rc-circle.rc-recording ~ .rc-waves{
  opacity:1;
}
.rc-waves span{
  display:block;
  width:4px;
  height:20px;
  background:var(--accent, #c0392b);
  border-radius:2px;
  animation:rc-wave 1s infinite ease-in-out;
}
.rc-waves span:nth-child(1){animation-delay:0s;margin-right:100px}
.rc-waves span:nth-child(2){animation-delay:.1s;margin-right:80px}
.rc-waves span:nth-child(3){animation-delay:.2s}
.rc-waves span:nth-child(4){animation-delay:.3s;margin-left:80px}
.rc-waves span:nth-child(5){animation-delay:.4s;margin-left:100px}
@keyframes rc-wave{
  0%, 100% {height:14px}
  50% {height:32px}
}

.rc-time{
  font-size:36px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  letter-spacing:2px;
}
.rc-status{
  font-size:13.5px;
  color:var(--muted, #888);
}
.rc-btns{
  margin-top:8px;
}
.rc-btn-start i{color:#e74c3c}

.rc-result{
  padding:20px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  margin:0 0 20px;
}
.rc-result h3{
  margin:0 0 12px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.rc-result h3 i{color:var(--accent, #c0392b)}
.rc-result audio{
  width:100%;
  margin:0 0 14px;
}
.rc-info{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  margin:0 0 16px;
  font-size:13px;
  color:var(--muted, #888);
}
.rc-info b{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

[data-theme="dark"] .rc-center{
  background:rgba(255,255,255,.04);
}

@media (max-width:640px){
  .rc-circle{width:90px;height:90px;font-size:34px}
  .rc-time{font-size:28px}
  .rc-waves span:nth-child(1),
  .rc-waves span:nth-child(5){display:none}
}

/* ============================================================
   LED 滚动文字（led-*）
   ============================================================ */

.led-screen-wrap{
  position:relative;
  margin:0 0 20px;
}

.led-screen{
  width:100%;
  height:180px;
  background:#000;
  border-radius:12px;
  overflow:hidden;
  display:flex;
  align-items:center;
  position:relative;
  box-shadow:inset 0 0 40px rgba(0,0,0,.8);
}

.led-text{
  white-space:nowrap;
  font-weight:700;
  padding-left:100%;
  will-change:transform;
  animation:led-scroll 12s linear infinite;
  text-shadow:0 0 10px currentColor;
  letter-spacing:2px;
}

@keyframes led-scroll{
  0% {transform:translateX(0)}
  100% {transform:translateX(-100%)}
}

@keyframes led-blink{
  0%, 50% {opacity:1}
  51%, 100% {opacity:0}
}

.led-fs{
  position:absolute;
  top:12px;
  right:12px;
  width:36px;
  height:36px;
  border:none;
  border-radius:8px;
  background:rgba(255,255,255,.1);
  color:#fff;
  cursor:pointer;
  font-size:14px;
  transition:background .15s ease;
  z-index:2;
}
.led-fs:hover{background:rgba(255,255,255,.25)}

/* 全屏模式 */
.led-screen:fullscreen{
  height:100vh;
  width:100vw;
  border-radius:0;
}
.led-screen:fullscreen .led-text{
  font-size:15vh !important;
}

/* 选项 */
.led-opts{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 16px;
}
.led-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.led-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.led-field .uc-select{width:100%;min-width:0}
.uc-color{
  width:100%;
  height:42px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  cursor:pointer;
  padding:3px;
  box-sizing:border-box;
}

@media (max-width:640px){
  .led-screen{height:120px}
  .led-opts{grid-template-columns:1fr 1fr}
}

/* ============================================================
   创建网页快捷方式（sc-*）
   ============================================================ */

.sc-bookmark-box{
  padding:20px;
  margin:20px 0;
  background:linear-gradient(135deg, rgba(59,130,246,.06), rgba(59,130,246,.02));
  border:1px solid rgba(59,130,246,.2);
  border-radius:12px;
}
.sc-bookmark-box h3{
  margin:0 0 8px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.sc-bookmark-box h3 i{color:#3b82f6}
.sc-bookmark-box p{
  margin:0 0 14px;
  font-size:13.5px;
  color:var(--muted, #888);
}

.sc-bookmark{
  display:inline-block;
  padding:10px 22px;
  background:#3b82f6;
  color:#fff;
  border-radius:8px;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  cursor:grab;
  user-select:none;
  transition:background .15s ease, transform .1s ease;
}
.sc-bookmark:hover{background:#2563eb;color:#fff}
.sc-bookmark:active{cursor:grabbing;transform:scale(.98)}

.sc-guide{
  padding:20px;
  margin:20px 0;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:12px;
}
.sc-guide h3{
  margin:0 0 16px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.sc-guide h3 i{color:var(--accent, #c0392b)}

.sc-steps{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
}
.sc-step{
  display:flex;
  gap:14px;
  align-items:flex-start;
}
.sc-step-num{
  flex:0 0 28px;
  width:28px;
  height:28px;
  border-radius:50%;
  background:var(--accent, #c0392b);
  color:#fff;
  font-size:13px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sc-step-body{flex:1}
.sc-step-body b{
  display:block;
  font-size:14px;
  color:var(--fg);
  margin:0 0 4px;
}
.sc-step-body p{
  margin:0;
  font-size:13px;
  color:var(--muted, #888);
  line-height:1.7;
}
.sc-step-body code{
  padding:1px 6px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:4px;
  font-size:12.5px;
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.sc-step-body kbd{
  display:inline-block;
  padding:1px 6px;
  border:1px solid var(--line);
  border-bottom-width:2px;
  border-radius:4px;
  background:var(--bg-soft, #f7f7f7);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:12px;
  color:var(--fg);
}

[data-theme="dark"] .sc-bookmark-box{
  background:linear-gradient(135deg, rgba(59,130,246,.15), rgba(59,130,246,.05));
  border-color:rgba(59,130,246,.35);
}
[data-theme="dark"] .sc-step-body code,
[data-theme="dark"] .sc-step-body kbd{
  background:rgba(255,255,255,.05);
}

@media (max-width:640px){
  .sc-bookmark-box,
  .sc-guide{padding:14px}
}

/* ============================================================
   诗文起名（ng-*）
   ============================================================ */

.ng-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.ng-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ng-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.ng-list{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:12px;
  margin:20px 0 0;
}

.ng-card{
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.ng-card:hover{
  border-color:var(--accent, #c0392b);
  box-shadow:0 4px 12px rgba(0,0,0,.05);
}

.ng-card-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin:0 0 10px;
}
.ng-name{
  font-size:24px;
  font-weight:700;
  color:var(--accent, #c0392b);
  letter-spacing:3px;
  cursor:pointer;
  user-select:none;
  font-family:'KaiTi', 'STKaiti', serif;
}
.ng-copy{
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--card);
  color:var(--muted, #888);
  width:30px;
  height:30px;
  cursor:pointer;
  font-size:12px;
  transition:border-color .15s ease, color .15s ease;
}
.ng-copy:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}

.ng-source{
  font-size:12.5px;
  color:var(--muted, #888);
  margin:0 0 8px;
  display:flex;
  align-items:center;
  gap:4px;
}
.ng-source i{font-size:10px;opacity:.6}
.ng-source a{
  color:var(--accent, #c0392b);
  text-decoration:none;
}
.ng-source a:hover{text-decoration:underline}

.ng-line{
  font-size:13px;
  color:var(--fg);
  line-height:1.7;
  padding:8px 12px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:6px;
  font-family:'KaiTi', 'STKaiti', serif;
}

.ng-empty,
.ng-loading{
  grid-column:1 / -1;
  padding:40px 20px;
  text-align:center;
  color:var(--muted, #888);
  font-size:14px;
  border:1px dashed var(--line);
  border-radius:10px;
}
.ng-empty i{font-size:36px;display:block;margin:0 0 10px;color:var(--muted, #ccc)}
.ng-empty p{margin:0}
.ng-loading i{margin-right:6px;color:var(--accent, #c0392b)}

[data-theme="dark"] .ng-line{
  background:rgba(255,255,255,.04);
}

@media (max-width:640px){
  .ng-list{grid-template-columns:1fr}
  .ng-name{font-size:20px}
}

/* ============================================================
   提前还贷计算器（pp-*）
   ============================================================ */

.pp-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.pp-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.pp-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.pp-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.pp-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.pp-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.pp-card h3 i{color:var(--accent, #c0392b)}

.pp-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.pp-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:12px 14px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
}
.pp-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.pp-value{
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.pp-compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.pp-col{
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
}
.pp-col-new{
  background:rgba(76,175,80,.08);
  border-color:rgba(76,175,80,.3);
}
.pp-col-title{
  font-size:13px;
  font-weight:600;
  color:var(--fg);
  margin:0 0 10px;
  padding-bottom:8px;
  border-bottom:1px dashed var(--line);
}
.pp-col-new .pp-col-title{color:#4caf50}
.pp-row{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:6px 0;
  font-size:13px;
}
.pp-row span{color:var(--muted, #888)}
.pp-row b{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  text-align:right;
}

.pp-save{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.pp-save-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:linear-gradient(135deg, rgba(76,175,80,.12), rgba(76,175,80,.04));
  border:1px solid rgba(76,175,80,.3);
  border-radius:10px;
}
.pp-save-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.pp-save-value{
  font-size:20px;
  font-weight:700;
  color:#4caf50;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

[data-theme="dark"] .pp-item,
[data-theme="dark"] .pp-col{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .pp-col-new{
  background:rgba(76,175,80,.12);
}

@media (max-width:640px){
  .pp-compare{grid-template-columns:1fr}
  .pp-card{padding:14px}
  .pp-save-value{font-size:16px}
}

/* ============================================================
   五险一金计算器（wj-*）
   ============================================================ */

.wj-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 16px;
}
.wj-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.wj-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.wj-details{
  margin:0 0 16px;
  padding:12px 16px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:8px;
}
.wj-details summary{
  cursor:pointer;
  font-size:13.5px;
  font-weight:600;
  color:var(--fg);
  user-select:none;
}
.wj-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:12px;
  margin-top:14px;
}

.wj-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.wj-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.wj-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.wj-sum-take{
  background:linear-gradient(135deg, rgba(76,175,80,.12), rgba(76,175,80,.04));
  border-color:rgba(76,175,80,.3);
}
.wj-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.wj-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.wj-sum-take .wj-sum-value{color:#4caf50}

.wj-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.wj-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.wj-card h3 i{color:var(--accent, #c0392b)}

.wj-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.wj-table th,
.wj-table td{
  padding:10px 12px;
  text-align:left;
  border-bottom:1px solid var(--line);
}
.wj-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
}
.wj-table td{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.wj-table td:first-child,
.wj-table th:first-child{
  font-family:inherit;
}
.wj-table tr:last-child td{border-bottom:none}
.wj-total td{
  background:rgba(192,57,43,.06);
  font-weight:700;
}
.wj-total td b{color:var(--accent, #c0392b)}

.wj-tax-rows{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.wj-tax-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  border-radius:6px;
  background:var(--bg-soft, #f7f7f7);
  font-size:13.5px;
}
.wj-tax-row span{color:var(--muted, #888)}
.wj-tax-row b{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.wj-tax-taxable{
  background:rgba(255,193,7,.12);
}
.wj-tax-taxable b{color:#d39e00}

[data-theme="dark"] .wj-sum-item,
[data-theme="dark"] .wj-details,
[data-theme="dark"] .wj-tax-row{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .wj-table th{
  background:rgba(255,255,255,.05);
}
[data-theme="dark"] .wj-sum-take{
  background:rgba(76,175,80,.15);
}
[data-theme="dark"] .wj-tax-taxable{
  background:rgba(255,193,7,.15);
}

@media (max-width:640px){
  .wj-card{padding:12px 14px}
  .wj-table{font-size:12px}
  .wj-table th,
  .wj-table td{padding:8px 6px}
  .wj-sum-value{font-size:16px}
}

/* ============================================================
   复利计算器（ci-*）
   ============================================================ */

.ci-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.ci-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ci-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.ci-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.ci-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.ci-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.ci-sum-main{
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(59,130,246,.04));
  border-color:rgba(59,130,246,.3);
}
.ci-sum-interest{
  background:linear-gradient(135deg, rgba(76,175,80,.12), rgba(76,175,80,.04));
  border-color:rgba(76,175,80,.3);
}
.ci-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.ci-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.ci-sum-main .ci-sum-value{color:#3b82f6}
.ci-sum-interest .ci-sum-value{color:#4caf50}

.ci-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.ci-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.ci-card h3 i{color:var(--accent, #c0392b)}

.ci-compare{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:12px;
}
.ci-compare-col{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
}
.ci-compare-new{
  background:rgba(76,175,80,.08);
}
.ci-compare-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.ci-compare-col b{
  font-size:16px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  color:var(--fg);
}
.ci-compare-new b{color:#4caf50}

.ci-table-wrap{
  overflow:auto;
  max-height:480px;
}
.ci-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.ci-table th,
.ci-table td{
  padding:10px 12px;
  text-align:left;
  border-bottom:1px solid var(--line);
}
.ci-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  position:sticky;
  top:0;
  z-index:1;
}
.ci-table td{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.ci-table tr:hover td{background:rgba(0,0,0,.02)}

[data-theme="dark"] .ci-sum-item,
[data-theme="dark"] .ci-compare-col{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .ci-table th{
  background:rgba(255,255,255,.05);
}
[data-theme="dark"] .ci-sum-main{
  background:rgba(59,130,246,.15);
}
[data-theme="dark"] .ci-sum-interest{
  background:rgba(76,175,80,.15);
}
[data-theme="dark"] .ci-compare-new{
  background:rgba(76,175,80,.15);
}
[data-theme="dark"] .ci-table tr:hover td{
  background:rgba(255,255,255,.03);
}

@media (max-width:640px){
  .ci-card{padding:12px 14px}
  .ci-sum-value{font-size:16px}
  .ci-table{font-size:12px}
  .ci-table th,
  .ci-table td{padding:8px 8px}
}

/* ============================================================
   利息计算器（in-*）
   ============================================================ */

.in-tabs{
  display:flex;
  gap:8px;
  margin:0 0 20px;
  flex-wrap:wrap;
}
.in-tab{
  padding:8px 18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--card);
  color:var(--fg);
  font-size:13.5px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.in-tab:hover{border-color:var(--accent, #c0392b);color:var(--accent, #c0392b)}
.in-tab-on{background:var(--accent, #c0392b);border-color:var(--accent, #c0392b);color:#fff}
.in-tab-on:hover{color:#fff}

.in-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.in-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.in-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.in-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.in-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.in-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.in-sum-main{
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(59,130,246,.04));
  border-color:rgba(59,130,246,.3);
}
.in-sum-interest{
  background:linear-gradient(135deg, rgba(76,175,80,.12), rgba(76,175,80,.04));
  border-color:rgba(76,175,80,.3);
}
.in-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.in-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.in-sum-main .in-sum-value{color:#3b82f6}
.in-sum-interest .in-sum-value{color:#4caf50}

.in-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.in-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.in-card h3 i{color:var(--accent, #c0392b)}

.in-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.in-formula b{
  color:var(--accent, #c0392b);
  font-weight:700;
}

[data-theme="dark"] .in-sum-item,
[data-theme="dark"] .in-formula{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .in-sum-main{
  background:rgba(59,130,246,.15);
}
[data-theme="dark"] .in-sum-interest{
  background:rgba(76,175,80,.15);
}

@media (max-width:640px){
  .in-tab{padding:6px 14px;font-size:12.5px}
  .in-card{padding:12px 14px}
  .in-sum-value{font-size:16px}
  .in-formula{font-size:12px}
}

/* ============================================================
   滞纳金计算器（lf-*）
   ============================================================ */

.lf-preset{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 20px;
}
.lf-preset-btn{
  padding:6px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  color:var(--fg);
  font-size:12.5px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.lf-preset-btn:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}

.lf-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.lf-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.lf-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.lf-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.lf-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.lf-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.lf-sum-main{
  background:linear-gradient(135deg, rgba(231,76,60,.12), rgba(231,76,60,.04));
  border-color:rgba(231,76,60,.3);
}
.lf-sum-total{
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(59,130,246,.04));
  border-color:rgba(59,130,246,.3);
}
.lf-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.lf-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.lf-sum-main .lf-sum-value{color:#e74c3c}
.lf-sum-total .lf-sum-value{color:#3b82f6}
.lf-cap-tag{
  display:inline-block;
  padding:1px 8px;
  font-size:11px;
  background:rgba(231,76,60,.15);
  color:#e74c3c;
  border-radius:10px;
  margin-left:4px;
  font-weight:500;
  vertical-align:middle;
}

.lf-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.lf-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.lf-card h3 i{color:var(--accent, #c0392b)}

.lf-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.lf-formula b{
  color:var(--accent, #c0392b);
  font-weight:700;
}

.lf-table-wrap{
  overflow:auto;
  max-height:400px;
}
.lf-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.lf-table th,
.lf-table td{
  padding:10px 12px;
  text-align:left;
  border-bottom:1px solid var(--line);
}
.lf-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  position:sticky;
  top:0;
  z-index:1;
}
.lf-table td{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.lf-table td:first-child{font-family:inherit}
.lf-table tr:hover td{background:rgba(0,0,0,.02)}
.lf-tr-current td{
  background:rgba(192,57,43,.08);
  font-weight:600;
  color:var(--accent, #c0392b);
}

[data-theme="dark"] .lf-sum-item,
[data-theme="dark"] .lf-formula{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .lf-table th{
  background:rgba(255,255,255,.05);
}
[data-theme="dark"] .lf-sum-main{
  background:rgba(231,76,60,.15);
}
[data-theme="dark"] .lf-sum-total{
  background:rgba(59,130,246,.15);
}
[data-theme="dark"] .lf-table tr:hover td{
  background:rgba(255,255,255,.03);
}
[data-theme="dark"] .lf-tr-current td{
  background:rgba(192,57,43,.2);
}

@media (max-width:640px){
  .lf-card{padding:12px 14px}
  .lf-sum-value{font-size:16px}
  .lf-table{font-size:12px}
  .lf-table th,
  .lf-table td{padding:8px 8px}
}

/* ============================================================
   诉讼费计算器（cf-*）
   ============================================================ */

.cf-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 20px;
}
.cf-tab{
  padding:8px 18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--card);
  color:var(--fg);
  font-size:13.5px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.cf-tab:hover{border-color:var(--accent, #c0392b);color:var(--accent, #c0392b)}
.cf-tab-on{background:var(--accent, #c0392b);border-color:var(--accent, #c0392b);color:#fff}
.cf-tab-on:hover{color:#fff}

.cf-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.cf-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.cf-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.cf-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.cf-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:12px;
}
.cf-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:18px 20px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.cf-sum-main{
  background:linear-gradient(135deg, rgba(192,57,43,.12), rgba(192,57,43,.04));
  border-color:rgba(192,57,43,.3);
}
.cf-sum-main .cf-sum-value{
  color:var(--accent, #c0392b);
  font-size:26px;
}
.cf-sum-discount{
  background:linear-gradient(135deg, rgba(76,175,80,.1), rgba(76,175,80,.03));
  border-color:rgba(76,175,80,.3);
}
.cf-sum-discount .cf-sum-value{color:#4caf50}
.cf-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.cf-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.cf-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.cf-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.cf-card h3 i{color:var(--accent, #c0392b)}

.cf-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.cf-table th,
.cf-table td{
  padding:10px 12px;
  text-align:left;
  border-bottom:1px solid var(--line);
}
.cf-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
}
.cf-table td{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.cf-table td:first-child{font-family:inherit}
.cf-table tr:last-child td{border-bottom:none}
.cf-tr-total td{
  background:rgba(192,57,43,.08);
}
.cf-tr-total td b{color:var(--accent, #c0392b);font-weight:700}

.cf-extra{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.cf-extra li{
  padding:10px 14px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:6px;
  font-size:13.5px;
  color:var(--fg);
  line-height:1.7;
}
.cf-extra li b{color:var(--accent, #c0392b)}

[data-theme="dark"] .cf-sum-item,
[data-theme="dark"] .cf-table th,
[data-theme="dark"] .cf-extra li{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .cf-sum-main{
  background:rgba(192,57,43,.15);
}
[data-theme="dark"] .cf-tr-total td{
  background:rgba(192,57,43,.15);
}

@media (max-width:640px){
  .cf-tab{padding:6px 12px;font-size:12.5px}
  .cf-card{padding:12px 14px}
  .cf-sum-main .cf-sum-value{font-size:22px}
  .cf-table{font-size:12px}
  .cf-table th,
  .cf-table td{padding:8px 8px}
}

/* ============================================================
   个人所得税计算器（tax-）
   ============================================================ */

.tax-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 20px;
}
.tax-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.tax-field > span{
  font-size:13px;
  color:var(--muted);
  font-weight:600;
}

.tax-extra{
  padding:16px 20px;
  margin:0 0 18px;
  background:var(--hover);
  border:1px solid var(--line);
  border-radius:10px;
}
.tax-extra-title{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
  margin:0 0 12px;
  display:flex;
  align-items:center;
  gap:8px;
}
.tax-extra-title i{color:var(--accent)}
.tax-extra-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
}
.tax-check{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13.5px;
  color:var(--fg);
  cursor:pointer;
}
.tax-check input{
  width:16px;
  height:16px;
  cursor:pointer;
}
.tax-check span{
  font-size:12px;
  color:var(--muted);
}

.tax-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.tax-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.tax-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--hover);
  border:1px solid var(--line);
  border-radius:10px;
}
.tax-sum-main{
  background:linear-gradient(135deg, rgba(231,76,60,.12), rgba(231,76,60,.04));
  border-color:rgba(231,76,60,.3);
}
.tax-sum-label{
  font-size:12.5px;
  color:var(--muted);
}
.tax-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.tax-sum-main .tax-sum-value{color:#e74c3c}

.tax-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  padding:16px 20px;
}
.tax-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.tax-card h3 i{color:var(--accent)}

.tax-rows{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.tax-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  border-radius:6px;
  background:var(--hover);
  font-size:13.5px;
}
.tax-row span{color:var(--muted)}
.tax-row b{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.tax-row-highlight{background:rgba(255,193,7,.12)}
.tax-row-highlight b{color:#d39e00}
.tax-row-main{
  background:rgba(231,76,60,.08);
}
.tax-row-main b{color:#e74c3c;font-weight:700}
.tax-row-green{
  background:rgba(76,175,80,.08);
}
.tax-row-green b{color:#4caf50;font-weight:700}

.tax-table-wrap{
  overflow:auto;
  max-height:400px;
}
.tax-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.tax-table th,
.tax-table td{
  padding:10px 12px;
  text-align:left;
  border-bottom:1px solid var(--line);
}
.tax-table th{
  background:var(--hover);
  font-weight:600;
  color:var(--fg);
  position:sticky;
  top:0;
  z-index:1;
}
.tax-table td{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.tax-table td:first-child{font-family:inherit}
.tax-table tr:hover td{background:rgba(0,0,0,.02)}

[data-theme="dark"] .tax-sum-item,
[data-theme="dark"] .tax-extra,
[data-theme="dark"] .tax-row{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .tax-table th{
  background:rgba(255,255,255,.05);
}
[data-theme="dark"] .tax-sum-main{
  background:rgba(231,76,60,.15);
}
[data-theme="dark"] .tax-row-highlight{
  background:rgba(255,193,7,.15);
}
[data-theme="dark"] .tax-row-main{
  background:rgba(231,76,60,.15);
}
[data-theme="dark"] .tax-row-green{
  background:rgba(76,175,80,.15);
}
[data-theme="dark"] .tax-table tr:hover td{
  background:rgba(255,255,255,.03);
}

@media (max-width:640px){
  .tax-card{padding:12px 14px}
  .tax-extra{padding:12px 14px}
  .tax-sum-value{font-size:16px}
  .tax-table{font-size:12px}
  .tax-table th,
  .tax-table td{padding:8px 8px}
}

/* ============================================================
   年终奖个税计算器（bt-*）
   ============================================================ */

.bt-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.bt-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.bt-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.bt-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.bt-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.bt-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.bt-sum-tax{
  background:linear-gradient(135deg, rgba(231,76,60,.12), rgba(231,76,60,.04));
  border-color:rgba(231,76,60,.3);
}
.bt-sum-tax .bt-sum-value{color:#e74c3c}
.bt-sum-opt{
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(59,130,246,.04));
  border-color:rgba(59,130,246,.3);
}
.bt-sum-opt .bt-sum-value{color:#3b82f6;font-size:20px}
.bt-sum-save{
  background:linear-gradient(135deg, rgba(76,175,80,.12), rgba(76,175,80,.04));
  border-color:rgba(76,175,80,.3);
}
.bt-sum-save .bt-sum-value{color:#4caf50}
.bt-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.bt-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.bt-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.bt-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.bt-card h3 i{color:var(--accent, #c0392b)}
.bt-card-warn{
  border-color:rgba(255,193,7,.4);
  background:rgba(255,193,7,.04);
}
.bt-card-warn h3 i{color:#f59e0b}

.bt-compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.bt-col{
  position:relative;
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg-soft, #f7f7f7);
}
.bt-col-best{
  border-color:#4caf50;
  background:rgba(76,175,80,.06);
}
.bt-best-tag{
  position:absolute;
  top:-10px;
  right:12px;
  padding:2px 10px;
  background:#4caf50;
  color:#fff;
  font-size:11px;
  font-weight:600;
  border-radius:10px;
}
.bt-col-title{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
  margin:0 0 12px;
  padding-bottom:8px;
  border-bottom:1px dashed var(--line);
}
.bt-col-best .bt-col-title{color:#4caf50}
.bt-col-rows{display:flex;flex-direction:column;gap:6px}
.bt-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:8px 12px;
  border-radius:6px;
  background:var(--card);
  font-size:13px;
}
.bt-row span{color:var(--muted, #888)}
.bt-row b{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.bt-row-total{background:rgba(231,76,60,.08)}
.bt-row-total b{color:#e74c3c;font-weight:700}
.bt-row-green{background:rgba(76,175,80,.08)}
.bt-row-green b{color:#4caf50;font-weight:700}

.bt-rows{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.bt-table-wrap{
  overflow:auto;
  max-height:400px;
}
.bt-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.bt-table th,
.bt-table td{
  padding:10px 12px;
  text-align:left;
  border-bottom:1px solid var(--line);
}
.bt-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
}
.bt-table td{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.bt-table td:first-child{font-family:inherit}
.bt-tr-current td{
  background:rgba(231,76,60,.1);
  font-weight:600;
}
.bt-warn-tip{
  margin:12px 0 0;
  font-size:13px;
  color:var(--fg);
  padding:10px 14px;
  background:rgba(255,193,7,.12);
  border-radius:6px;
  line-height:1.7;
}
.bt-warn-tip i{color:#f59e0b;margin-right:6px}

[data-theme="dark"] .bt-sum-item,
[data-theme="dark"] .bt-col,
[data-theme="dark"] .bt-row,
[data-theme="dark"] .bt-table th{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .bt-sum-tax{background:rgba(231,76,60,.15)}
[data-theme="dark"] .bt-sum-opt{background:rgba(59,130,246,.15)}
[data-theme="dark"] .bt-sum-save{background:rgba(76,175,80,.15)}
[data-theme="dark"] .bt-col-best{background:rgba(76,175,80,.12)}
[data-theme="dark"] .bt-card-warn{background:rgba(255,193,7,.08)}
[data-theme="dark"] .bt-row-total{background:rgba(231,76,60,.15)}
[data-theme="dark"] .bt-row-green{background:rgba(76,175,80,.15)}
[data-theme="dark"] .bt-tr-current td{background:rgba(231,76,60,.2)}

@media (max-width:640px){
  .bt-compare{grid-template-columns:1fr}
  .bt-card{padding:12px 14px}
  .bt-sum-value{font-size:16px}
  .bt-sum-opt .bt-sum-value{font-size:18px}
  .bt-table{font-size:12px}
}

/* ============================================================
   百分比计算器（pc-*）
   ============================================================ */

.pc-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(420px,1fr));
  gap:16px;
  margin:0 0 24px;
}

.pc-card{
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--card);
  padding:20px 22px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.pc-card:hover{
  border-color:var(--accent, #c0392b);
  box-shadow:0 4px 16px rgba(0,0,0,.05);
}

.pc-card-head{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 16px;
}
.pc-card-icon{
  width:40px;
  height:40px;
  border-radius:10px;
  background:rgba(192,57,43,.1);
  color:var(--accent, #c0392b);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
}
.pc-icon-up{
  background:rgba(76,175,80,.1);
  color:#4caf50;
}
.pc-icon-down{
  background:rgba(231,76,60,.1);
  color:#e74c3c;
}
.pc-card-head h3{
  margin:0;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
}

.pc-inputs{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin:0 0 14px;
}
.pc-inputs .uc-input{
  flex:1;
  min-width:80px;
  max-width:160px;
}
.pc-op{
  font-size:13.5px;
  color:var(--muted, #888);
  white-space:nowrap;
}

.pc-result-box{
  padding:14px 18px;
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:22px;
  font-weight:700;
  color:var(--accent, #c0392b);
  text-align:center;
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  word-break:break-all;
}
.pc-result-num{color:var(--accent, #c0392b)}
.pc-result-up{color:#4caf50}
.pc-result-down{color:#e74c3c}
.pc-result-label{
  font-size:13px;
  font-weight:500;
  color:var(--muted, #888);
  font-family:inherit;
}

.pc-formula{
  margin:10px 0 0;
  font-size:12px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  text-align:center;
}

[data-theme="dark"] .pc-result-box{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .pc-card-icon{
  background:rgba(192,57,43,.2);
}
[data-theme="dark"] .pc-icon-up{
  background:rgba(76,175,80,.2);
}
[data-theme="dark"] .pc-icon-down{
  background:rgba(231,76,60,.2);
}

@media (max-width:640px){
  .pc-list{grid-template-columns:1fr}
  .pc-card{padding:16px 18px}
  .pc-result-box{font-size:18px;min-height:50px}
  .pc-inputs .uc-input{max-width:none}
}



/* ============================================================
   整存零取计算器（zc-*）
   ============================================================ */

.zc-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.zc-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.zc-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.zc-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.zc-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.zc-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.zc-sum-main{
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(59,130,246,.04));
  border-color:rgba(59,130,246,.3);
}
.zc-sum-main .zc-sum-value{color:#3b82f6}
.zc-sum-interest{
  background:linear-gradient(135deg, rgba(76,175,80,.12), rgba(76,175,80,.04));
  border-color:rgba(76,175,80,.3);
}
.zc-sum-interest .zc-sum-value{color:#4caf50}
.zc-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.zc-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.zc-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.zc-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.zc-card h3 i{color:var(--accent, #c0392b)}

.zc-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.zc-formula b{
  color:var(--accent, #c0392b);
  font-weight:700;
}

.zc-table-wrap{
  overflow:auto;
  max-height:480px;
}
.zc-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.zc-table th,
.zc-table td{
  padding:9px 12px;
  text-align:right;
  border-bottom:1px solid var(--line);
}
.zc-table th:first-child,
.zc-table td:first-child{text-align:left}
.zc-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  position:sticky;
  top:0;
  z-index:1;
}
.zc-table td{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.zc-table tr:hover td{background:rgba(0,0,0,.02)}

.zc-compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:0 0 12px;
}
.zc-col{
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg-soft, #f7f7f7);
}
.zc-col-full{
  background:rgba(76,175,80,.06);
  border-color:rgba(76,175,80,.3);
}
.zc-col-title{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
  margin:0 0 12px;
  padding-bottom:8px;
  border-bottom:1px dashed var(--line);
}
.zc-col-full .zc-col-title{color:#4caf50}
.zc-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:8px 12px;
  border-radius:6px;
  background:var(--card);
  margin-bottom:6px;
  font-size:13px;
}
.zc-row span{color:var(--muted, #888)}
.zc-row b{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.zc-compare-tip{
  margin:0;
  padding:10px 14px;
  background:rgba(255,193,7,.1);
  border-radius:6px;
  font-size:13px;
  color:var(--fg);
  line-height:1.7;
}
.zc-compare-tip i{color:#f59e0b;margin-right:6px}
.zc-compare-tip b{color:var(--accent, #c0392b)}

[data-theme="dark"] .zc-sum-item,
[data-theme="dark"] .zc-col,
[data-theme="dark"] .zc-formula,
[data-theme="dark"] .zc-table th{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .zc-sum-main{background:rgba(59,130,246,.15)}
[data-theme="dark"] .zc-sum-interest{background:rgba(76,175,80,.15)}
[data-theme="dark"] .zc-col-full{background:rgba(76,175,80,.12)}
[data-theme="dark"] .zc-row{background:var(--card)}
[data-theme="dark"] .zc-table tr:hover td{background:rgba(255,255,255,.03)}

@media (max-width:640px){
  .zc-compare{grid-template-columns:1fr}
  .zc-card{padding:12px 14px}
  .zc-sum-value{font-size:16px}
  .zc-table{font-size:12px}
  .zc-table th,
  .zc-table td{padding:8px 6px}
}

/* ============================================================
   零存整取计算器（lc-*）
   ============================================================ */

.lc-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.lc-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.lc-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.lc-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.lc-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.lc-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.lc-sum-main{
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(59,130,246,.04));
  border-color:rgba(59,130,246,.3);
}
.lc-sum-main .lc-sum-value{color:#3b82f6}
.lc-sum-interest{
  background:linear-gradient(135deg, rgba(76,175,80,.12), rgba(76,175,80,.04));
  border-color:rgba(76,175,80,.3);
}
.lc-sum-interest .lc-sum-value{color:#4caf50}
.lc-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.lc-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.lc-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.lc-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.lc-card h3 i{color:var(--accent, #c0392b)}

.lc-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.lc-formula b{
  color:var(--accent, #c0392b);
  font-weight:700;
}

.lc-table-wrap{
  overflow:auto;
  max-height:480px;
}
.lc-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.lc-table th,
.lc-table td{
  padding:9px 12px;
  text-align:right;
  border-bottom:1px solid var(--line);
}
.lc-table th:first-child,
.lc-table td:first-child{text-align:left}
.lc-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  position:sticky;
  top:0;
  z-index:1;
}
.lc-table td{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.lc-table tr:hover td{background:rgba(0,0,0,.02)}

.lc-compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:0 0 12px;
}
.lc-col{
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg-soft, #f7f7f7);
}
.lc-col-full{
  background:rgba(76,175,80,.06);
  border-color:rgba(76,175,80,.3);
}
.lc-col-title{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
  margin:0 0 12px;
  padding-bottom:8px;
  border-bottom:1px dashed var(--line);
}
.lc-col-full .lc-col-title{color:#4caf50}
.lc-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:8px 12px;
  border-radius:6px;
  background:var(--card);
  margin-bottom:6px;
  font-size:13px;
}
.lc-row span{color:var(--muted, #888)}
.lc-row b{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.lc-compare-tip{
  margin:0;
  padding:10px 14px;
  background:rgba(255,193,7,.1);
  border-radius:6px;
  font-size:13px;
  color:var(--fg);
  line-height:1.7;
}
.lc-compare-tip i{color:#f59e0b;margin-right:6px}
.lc-compare-tip b{color:var(--accent, #c0392b)}

[data-theme="dark"] .lc-sum-item,
[data-theme="dark"] .lc-col,
[data-theme="dark"] .lc-formula,
[data-theme="dark"] .lc-table th{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .lc-sum-main{background:rgba(59,130,246,.15)}
[data-theme="dark"] .lc-sum-interest{background:rgba(76,175,80,.15)}
[data-theme="dark"] .lc-col-full{background:rgba(76,175,80,.12)}
[data-theme="dark"] .lc-row{background:var(--card)}
[data-theme="dark"] .lc-table tr:hover td{background:rgba(255,255,255,.03)}

@media (max-width:640px){
  .lc-compare{grid-template-columns:1fr}
  .lc-card{padding:12px 14px}
  .lc-sum-value{font-size:16px}
  .lc-table{font-size:12px}
  .lc-table th,
  .lc-table td{padding:8px 6px}
}

/* ============================================================
   整存整取计算器（zc-*）
   ============================================================ */

.zc-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.zc-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.zc-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.zc-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.zc-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.zc-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.zc-sum-main{
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(59,130,246,.04));
  border-color:rgba(59,130,246,.3);
}
.zc-sum-main .zc-sum-value{color:#3b82f6}
.zc-sum-interest{
  background:linear-gradient(135deg, rgba(76,175,80,.12), rgba(76,175,80,.04));
  border-color:rgba(76,175,80,.3);
}
.zc-sum-interest .zc-sum-value{color:#4caf50}
.zc-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.zc-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.zc-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.zc-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.zc-card h3 i{color:var(--accent, #c0392b)}

.zc-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.zc-formula b{
  color:var(--accent, #c0392b);
  font-weight:700;
}

.zc-table-wrap{
  overflow:auto;
}
.zc-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.zc-table th,
.zc-table td{
  padding:10px 12px;
  text-align:right;
  border-bottom:1px solid var(--line);
}
.zc-table th:first-child,
.zc-table td:first-child{text-align:left}
.zc-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
}
.zc-table td{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.zc-table tr:hover td{background:rgba(0,0,0,.02)}
.zc-tr-current td{
  background:rgba(192,57,43,.1);
  color:var(--accent, #c0392b);
  font-weight:600;
}
.zc-tr-best td{
  background:rgba(76,175,80,.1);
  color:#4caf50;
  font-weight:600;
}

.zc-compare-tip{
  margin:14px 0 0;
  padding:10px 14px;
  background:rgba(255,193,7,.1);
  border-radius:6px;
  font-size:13px;
  color:var(--fg);
  line-height:1.7;
}
.zc-compare-tip i{color:#f59e0b;margin-right:6px}
.zc-compare-tip b{color:var(--accent, #c0392b)}

[data-theme="dark"] .zc-sum-item,
[data-theme="dark"] .zc-formula,
[data-theme="dark"] .zc-table th{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .zc-sum-main{background:rgba(59,130,246,.15)}
[data-theme="dark"] .zc-sum-interest{background:rgba(76,175,80,.15)}
[data-theme="dark"] .zc-table tr:hover td{background:rgba(255,255,255,.03)}
[data-theme="dark"] .zc-tr-current td{background:rgba(192,57,43,.2)}
[data-theme="dark"] .zc-tr-best td{background:rgba(76,175,80,.2)}

@media (max-width:640px){
  .zc-card{padding:12px 14px}
  .zc-sum-value{font-size:16px}
  .zc-table{font-size:12px}
  .zc-table th,
  .zc-table td{padding:8px 6px}
}

/* ============================================================
   公积金贷款额度计算器（gj-*）
   ============================================================ */

.gj-city{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 20px;
}
.gj-city-btn{
  padding:6px 16px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  color:var(--fg);
  font-size:13px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.gj-city-btn:hover{border-color:var(--accent, #c0392b);color:var(--accent, #c0392b)}
.gj-city-on{background:var(--accent, #c0392b);border-color:var(--accent, #c0392b);color:#fff}
.gj-city-on:hover{color:#fff}

.gj-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.gj-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.gj-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.gj-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.gj-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:12px;
}
.gj-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:18px 20px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.gj-sum-main{
  background:linear-gradient(135deg, rgba(76,175,80,.12), rgba(76,175,80,.04));
  border-color:rgba(76,175,80,.3);
}
.gj-sum-main .gj-sum-value{color:#4caf50;font-size:26px}
.gj-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.gj-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.gj-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.gj-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.gj-card h3 i{color:var(--accent, #c0392b)}

.gj-rules{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.gj-rule{
  padding:12px 16px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
  transition:border-color .15s ease;
}
.gj-rule-min{
  border-color:#4caf50;
  background:rgba(76,175,80,.06);
}
.gj-rule-head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  margin:0 0 6px;
}
.gj-rule-name{
  font-size:13.5px;
  font-weight:600;
  color:var(--fg);
}
.gj-rule-tag{
  display:inline-block;
  padding:1px 8px;
  background:#4caf50;
  color:#fff;
  font-size:11px;
  border-radius:10px;
  margin-left:6px;
  font-weight:500;
}
.gj-rule-value{
  font-size:16px;
  font-weight:700;
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.gj-rule-min .gj-rule-value{color:#4caf50}
.gj-rule-formula{
  font-size:12.5px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.gj-pay-rows{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.gj-pay-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:6px;
  font-size:13.5px;
}
.gj-pay-row span{color:var(--muted, #888)}
.gj-pay-row b{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.gj-tip{
  margin:12px 0 0;
  font-size:12.5px;
  color:var(--muted, #888);
  line-height:1.7;
}
.gj-tip i{color:#f59e0b;margin-right:6px}

[data-theme="dark"] .gj-sum-item,
[data-theme="dark"] .gj-rule,
[data-theme="dark"] .gj-pay-row{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .gj-sum-main{background:rgba(76,175,80,.15)}
[data-theme="dark"] .gj-rule-min{background:rgba(76,175,80,.12)}

@media (max-width:640px){
  .gj-card{padding:12px 14px}
  .gj-sum-main .gj-sum-value{font-size:22px}
  .gj-rule-head{flex-direction:column;gap:4px;align-items:flex-start}
}

/* ============================================================
   二手房贷款计算器（es-*）
   ============================================================ */

.es-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.es-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.es-field > span{
  font-size:13px;
  color:var(--muted);
  font-weight:600;
}

.es-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.es-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.es-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--hover);
  border:1px solid var(--line);
  border-radius:10px;
}
.es-sum-main{
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(59,130,246,.04));
  border-color:rgba(59,130,246,.3);
}
.es-sum-main .es-sum-value{color:#3b82f6}
.es-sum-down{
  background:linear-gradient(135deg, rgba(255,193,7,.15), rgba(255,193,7,.04));
  border-color:rgba(255,193,7,.3);
}
.es-sum-down .es-sum-value{color:#d39e00}
.es-sum-interest{
  background:linear-gradient(135deg, rgba(231,76,60,.1), rgba(231,76,60,.03));
  border-color:rgba(231,76,60,.3);
}
.es-sum-interest .es-sum-value{color:#e74c3c}
.es-sum-label{
  font-size:12.5px;
  color:var(--muted);
}
.es-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.es-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  padding:16px 20px;
}
.es-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.es-card h3 i{color:var(--accent)}

.es-compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:0 0 12px;
}
.es-compare-col{
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--hover);
}
.es-compare-actual{
  background:rgba(255,193,7,.08);
  border-color:rgba(255,193,7,.35);
}
.es-compare-title{
  font-size:13.5px;
  font-weight:600;
  color:var(--fg);
  margin:0 0 12px;
  padding-bottom:8px;
  border-bottom:1px dashed var(--line);
}
.es-compare-actual .es-compare-title{color:#d39e00}
.es-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:8px 12px;
  border-radius:6px;
  background:var(--panel);
  margin-bottom:6px;
  font-size:13px;
}
.es-compare-col .es-row{
  background:rgba(255,255,255,.5);
}
.es-compare-col .es-row:last-child{margin-bottom:0}
.es-row span{color:var(--muted)}
.es-row b{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.es-rows{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.es-row-main{background:rgba(59,130,246,.08)}
.es-row-main b{color:#3b82f6;font-weight:700}
.es-row-red{background:rgba(231,76,60,.08)}
.es-row-red b{color:#e74c3c;font-weight:700}
.es-row-bold{
  background:rgba(192,57,43,.08);
  border:1px solid rgba(192,57,43,.2);
}
.es-row-bold b{color:var(--accent);font-weight:700;font-size:15px}

.es-warn{
  margin:12px 0 0;
  padding:10px 14px;
  background:rgba(231,76,60,.08);
  border-radius:6px;
  font-size:13px;
  color:var(--fg);
  line-height:1.7;
}
.es-warn i{color:#e74c3c;margin-right:6px}
.es-warn b{color:var(--accent)}

.es-cost-bars{
  margin:0 0 14px;
}
.es-bar{
  display:flex;
  height:36px;
  border-radius:8px;
  overflow:hidden;
  margin:0 0 12px;
}
.es-bar-seg{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:12px;
  font-weight:600;
  transition:width .3s ease;
  min-width:0;
  overflow:hidden;
}
.es-bar-down{background:#ffc107}
.es-bar-principal{background:#3b82f6}
.es-bar-interest{background:#e74c3c}

.es-cost-legend{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  font-size:13px;
  color:var(--fg);
}
.es-legend-item{
  display:flex;
  align-items:center;
  gap:6px;
}
.es-dot{
  display:inline-block;
  width:12px;
  height:12px;
  border-radius:3px;
}
.es-dot-down{background:#ffc107}
.es-dot-principal{background:#3b82f6}
.es-dot-interest{background:#e74c3c}

.es-total{
  margin:14px 0 0;
  padding-top:12px;
  border-top:1px dashed var(--line);
  font-size:14px;
  color:var(--fg);
}
.es-total b{
  font-size:18px;
  color:var(--accent);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

[data-theme="dark"] .es-sum-item,
[data-theme="dark"] .es-compare-col,
[data-theme="dark"] .es-row{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .es-sum-main{background:rgba(59,130,246,.15)}
[data-theme="dark"] .es-sum-down{background:rgba(255,193,7,.18)}
[data-theme="dark"] .es-sum-interest{background:rgba(231,76,60,.15)}
[data-theme="dark"] .es-compare-actual{background:rgba(255,193,7,.12)}
[data-theme="dark"] .es-compare-col .es-row{background:rgba(0,0,0,.15)}
[data-theme="dark"] .es-row-main{background:rgba(59,130,246,.15)}
[data-theme="dark"] .es-row-red{background:rgba(231,76,60,.15)}
[data-theme="dark"] .es-row-bold{background:rgba(192,57,43,.15)}

@media (max-width:640px){
  .es-compare{grid-template-columns:1fr}
  .es-card{padding:12px 14px}
  .es-sum-value{font-size:16px}
  .es-bar{height:28px}
  .es-bar-seg{font-size:11px}
  .es-total b{font-size:15px}
}

/* ============================================================
   角度计算器（ag-*）
   ============================================================ */

.ag-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(420px,1fr));
  gap:16px;
  margin:0 0 24px;
}

.ag-card{
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--card);
  padding:20px 22px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.ag-card:hover{
  border-color:var(--accent, #c0392b);
  box-shadow:0 4px 16px rgba(0,0,0,.05);
}

.ag-card-head{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 16px;
}
.ag-card-icon{
  width:40px;
  height:40px;
  border-radius:10px;
  background:rgba(192,57,43,.1);
  color:var(--accent, #c0392b);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
}
.ag-icon-trig{background:rgba(59,130,246,.1);color:#3b82f6}
.ag-icon-arc{background:rgba(76,175,80,.1);color:#4caf50}
.ag-icon-dms{background:rgba(255,193,7,.15);color:#d39e00}
.ag-card-head h3{
  margin:0;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
}

.ag-inputs{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:10px;
  margin:0 0 14px;
}
.ag-input-item{
  flex:1;
  min-width:120px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ag-input-item > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.ag-arrow{
  color:var(--muted, #888);
  font-size:16px;
  padding:0 4px;
  align-self:center;
  margin-top:20px;
}

.ag-formula{
  font-size:12px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  text-align:center;
  padding:10px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:6px;
}

.ag-results-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
  gap:10px;
}
.ag-res-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:12px 14px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
}
.ag-res-label{
  font-size:12px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.ag-res-val{
  font-size:15px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.ag-dms-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin:0 0 12px;
}
.ag-dms-row:has(.ag-dms-wide){
  grid-template-columns:1fr;
}
.ag-dms-item{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.ag-dms-item > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.ag-result-box{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:14px 16px;
  background:linear-gradient(135deg, rgba(192,57,43,.08), rgba(192,57,43,.02));
  border:1px solid rgba(192,57,43,.2);
  border-radius:8px;
  margin:0 0 12px;
}
.ag-big-val{
  font-size:22px;
  font-weight:700;
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.ag-table-wrap{
  overflow:auto;
}
.ag-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.ag-table th,
.ag-table td{
  padding:9px 12px;
  text-align:right;
  border-bottom:1px solid var(--line);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.ag-table th:first-child,
.ag-table td:first-child{
  text-align:left;
  font-family:inherit;
}
.ag-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  font-family:inherit;
}
.ag-table td{color:var(--fg)}
.ag-table tr:hover td{background:rgba(0,0,0,.02)}

[data-theme="dark"] .ag-formula,
[data-theme="dark"] .ag-res-item,
[data-theme="dark"] .ag-table th{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .ag-card-icon{background:rgba(192,57,43,.2)}
[data-theme="dark"] .ag-icon-trig{background:rgba(59,130,246,.2)}
[data-theme="dark"] .ag-icon-arc{background:rgba(76,175,80,.2)}
[data-theme="dark"] .ag-icon-dms{background:rgba(255,193,7,.2)}
[data-theme="dark"] .ag-result-box{
  background:rgba(192,57,43,.15);
  border-color:rgba(192,57,43,.35);
}
[data-theme="dark"] .ag-table tr:hover td{background:rgba(255,255,255,.03)}

@media (max-width:640px){
  .ag-list{grid-template-columns:1fr}
  .ag-card{padding:16px 18px}
  .ag-inputs{flex-direction:column;align-items:stretch}
  .ag-arrow{transform:rotate(90deg);align-self:center;margin:0}
  .ag-input-item{min-width:0}
  .ag-results-grid{grid-template-columns:repeat(2,1fr)}
  .ag-big-val{font-size:18px}
  .ag-table{font-size:12px}
  .ag-table th,
  .ag-table td{padding:7px 6px}
}

/* ============================================================
   立方根计算器（cb-*）
   ============================================================ */

.cb-input-wrap{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 16px;
}
.cb-input-symbol{
  font-size:36px;
  font-weight:400;
  color:var(--accent, #c0392b);
  font-family:serif;
  line-height:1;
  flex:0 0 auto;
}
.cb-input{
  flex:1;
  min-width:0;
  padding:14px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg);
  color:var(--fg);
  font-size:22px;
  font-weight:600;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  outline:none;
  transition:border-color .15s ease;
}
.cb-input:focus{
  border-color:var(--accent, #c0392b);
}

.cb-quick{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 20px;
}
.cb-quick-btn{
  padding:6px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  color:var(--fg);
  font-size:13px;
  cursor:pointer;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  transition:border-color .15s ease, color .15s ease;
}
.cb-quick-btn:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}

.cb-result{
  margin:0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.cb-summary{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:12px;
}
.cb-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.cb-sum-main{
  background:linear-gradient(135deg, rgba(192,57,43,.12), rgba(192,57,43,.04));
  border-color:rgba(192,57,43,.3);
}
.cb-sum-main .cb-sum-value{
  color:var(--accent, #c0392b);
  font-size:28px;
}
.cb-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.cb-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.cb-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.cb-card h3{
  margin:0 0 12px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.cb-card h3 i{color:var(--accent, #c0392b)}
.cb-card-ok{
  border-color:rgba(76,175,80,.4);
  background:rgba(76,175,80,.05);
}
.cb-card-ok h3 i{color:#4caf50}
.cb-card-ok p{margin:0;font-size:13.5px;color:var(--fg);line-height:1.7}
.cb-card-ok p b{color:#4caf50}
.cb-card-info{
  border-color:rgba(59,130,246,.35);
  background:rgba(59,130,246,.05);
}
.cb-card-info h3 i{color:#3b82f6}
.cb-card-info p{margin:0;font-size:13.5px;color:var(--fg);line-height:1.7}
.cb-card-info p b{color:#3b82f6}

.cb-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:14.5px;
  line-height:2;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.cb-expr{
  padding:4px 0;
}
.cb-expr:not(:last-child){
  border-bottom:1px dashed var(--line);
}

.cb-table-wrap{
  overflow:auto;
}
.cb-table{
  width:100%;
  border-collapse:collapse;
  font-size:13.5px;
}
.cb-table td{
  padding:9px 12px;
  border-bottom:1px solid var(--line);
}
.cb-table tr:last-child td{border-bottom:none}
.cb-table td:first-child{
  color:var(--muted, #888);
  width:180px;
}
.cb-table td:last-child{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-weight:600;
  text-align:right;
  word-break:break-all;
}

[data-theme="dark"] .cb-sum-item,
[data-theme="dark"] .cb-formula{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .cb-sum-main{background:rgba(192,57,43,.15)}
[data-theme="dark"] .cb-card-ok{background:rgba(76,175,80,.1)}
[data-theme="dark"] .cb-card-info{background:rgba(59,130,246,.1)}

@media (max-width:640px){
  .cb-summary{grid-template-columns:1fr 1fr}
  .cb-sum-main{grid-column:1 / -1}
  .cb-sum-main .cb-sum-value{font-size:22px}
  .cb-card{padding:12px 14px}
  .cb-input{font-size:18px;padding:12px 14px}
  .cb-input-symbol{font-size:28px}
  .cb-formula{font-size:13px}
  .cb-table td:first-child{width:120px}
}

/* ============================================================
   方差计算器（vr-*）
   ============================================================ */

.vr-type{
  display:flex;
  gap:8px;
  margin:0 0 18px;
  flex-wrap:wrap;
}
.vr-type-btn{
  padding:8px 18px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--card);
  color:var(--fg);
  font-size:13.5px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.vr-type-btn:hover{border-color:var(--accent, #c0392b);color:var(--accent, #c0392b)}
.vr-type-on{background:var(--accent, #c0392b);border-color:var(--accent, #c0392b);color:#fff}
.vr-type-on:hover{color:#fff}

.vr-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.vr-empty{
  padding:30px;
  text-align:center;
  color:var(--muted, #888);
  font-size:13.5px;
  border:1px dashed var(--line);
  border-radius:10px;
}

.vr-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.vr-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.vr-sum-main{
  background:linear-gradient(135deg, rgba(192,57,43,.12), rgba(192,57,43,.04));
  border-color:rgba(192,57,43,.3);
}
.vr-sum-main .vr-sum-value{color:var(--accent, #c0392b);font-size:22px}
.vr-sum-main2{
  background:linear-gradient(135deg, rgba(231,76,60,.1), rgba(231,76,60,.03));
  border-color:rgba(231,76,60,.3);
}
.vr-sum-main2 .vr-sum-value{color:#e74c3c;font-size:22px}
.vr-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.vr-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.vr-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.vr-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.vr-card h3 i{color:var(--accent, #c0392b)}

.vr-table-wrap{
  overflow:auto;
}
.vr-table{
  width:100%;
  border-collapse:collapse;
  font-size:13.5px;
}
.vr-table td{
  padding:9px 12px;
  border-bottom:1px solid var(--line);
}
.vr-table tr:last-child td{border-bottom:none}
.vr-table td:first-child{
  color:var(--muted, #888);
  width:180px;
}
.vr-table td:last-child{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-weight:600;
  text-align:right;
  word-break:break-all;
}

.vr-compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.vr-col{
  position:relative;
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg-soft, #f7f7f7);
}
.vr-col-current{
  border-color:var(--accent, #c0392b);
  background:rgba(192,57,43,.06);
}
.vr-tag{
  position:absolute;
  top:-10px;
  right:12px;
  padding:2px 10px;
  background:var(--accent, #c0392b);
  color:#fff;
  font-size:11px;
  font-weight:600;
  border-radius:10px;
}
.vr-col-title{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
  margin:0 0 12px;
  padding-bottom:8px;
  border-bottom:1px dashed var(--line);
}
.vr-col-current .vr-col-title{color:var(--accent, #c0392b)}
.vr-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:8px 12px;
  border-radius:6px;
  background:var(--card);
  margin-bottom:6px;
  font-size:13px;
}
.vr-row:last-child{margin-bottom:0}
.vr-row span{color:var(--muted, #888)}
.vr-row b{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.vr-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.vr-formula b{
  color:var(--accent, #c0392b);
  font-weight:700;
}

[data-theme="dark"] .vr-sum-item,
[data-theme="dark"] .vr-col,
[data-theme="dark"] .vr-row,
[data-theme="dark"] .vr-formula{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .vr-sum-main{background:rgba(192,57,43,.15)}
[data-theme="dark"] .vr-sum-main2{background:rgba(231,76,60,.15)}
[data-theme="dark"] .vr-col-current{background:rgba(192,57,43,.12)}

@media (max-width:640px){
  .vr-compare{grid-template-columns:1fr}
  .vr-card{padding:12px 14px}
  .vr-sum-main .vr-sum-value,
  .vr-sum-main2 .vr-sum-value{font-size:18px}
  .vr-table td:first-child{width:130px;font-size:12.5px}
  .vr-table td:last-child{font-size:12.5px}
  .vr-formula{font-size:12px}
}

/* ============================================================
   电容时间常数计算器（rc-*）
   ============================================================ */

.rc-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.rc-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.rc-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.rc-input-unit{
  display:flex;
  gap:8px;
}
.rc-input-unit .uc-input{
  flex:1;
  min-width:0;
}
.rc-unit{
  flex:0 0 90px;
  padding:11px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--bg);
  color:var(--fg);
  font-size:13px;
  font-family:inherit;
  outline:none;
  cursor:pointer;
}
.rc-unit-static{
  display:flex;
  align-items:center;
  padding:0 14px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:8px;
  color:var(--muted, #888);
  font-size:14px;
  font-weight:600;
}

.rc-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.rc-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:12px;
}
.rc-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.rc-sum-main{
  background:linear-gradient(135deg, rgba(192,57,43,.12), rgba(192,57,43,.04));
  border-color:rgba(192,57,43,.3);
}
.rc-sum-main .rc-sum-value{
  color:var(--accent, #c0392b);
  font-size:24px;
}
.rc-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.rc-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.rc-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.rc-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.rc-card h3 i{color:var(--accent, #c0392b)}

.rc-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.rc-formula b{
  color:var(--accent, #c0392b);
  font-weight:700;
}

.rc-table-wrap{
  overflow:auto;
}
.rc-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.rc-table th,
.rc-table td{
  padding:9px 12px;
  text-align:right;
  border-bottom:1px solid var(--line);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.rc-table th:first-child,
.rc-table td:first-child{
  text-align:left;
}
.rc-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  font-family:inherit;
  font-size:12.5px;
}
.rc-table td{color:var(--fg)}
.rc-table tr:hover td{background:rgba(0,0,0,.02)}
.rc-table-compact th,
.rc-table-compact td{
  padding:6px 10px;
  font-size:12.5px;
}

.rc-apps{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.rc-apps li{
  padding:10px 14px;
  background:var(--bg-soft, #f7f7f7);
  border-left:3px solid var(--accent, #c0392b);
  border-radius:6px;
  font-size:13.5px;
  color:var(--fg);
  line-height:1.7;
}
.rc-apps li b{color:var(--accent, #c0392b)}

[data-theme="dark"] .rc-sum-item,
[data-theme="dark"] .rc-formula,
[data-theme="dark"] .rc-table th,
[data-theme="dark"] .rc-apps li,
[data-theme="dark"] .rc-unit-static{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .rc-sum-main{background:rgba(192,57,43,.15)}
[data-theme="dark"] .rc-table tr:hover td{background:rgba(255,255,255,.03)}

@media (max-width:640px){
  .rc-card{padding:12px 14px}
  .rc-sum-main .rc-sum-value{font-size:18px}
  .rc-table{font-size:12px}
  .rc-table th,
  .rc-table td{padding:7px 8px}
  .rc-table-compact th,
  .rc-table-compact td{padding:5px 6px;font-size:11.5px}
  .rc-formula{font-size:12px}
}

/* ============================================================
   绝对值计算器（av-*）
   ============================================================ */

.av-tabs{
  display:flex;
  gap:8px;
  margin:0 0 20px;
}
.av-tab{
  padding:8px 20px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--card);
  color:var(--fg);
  font-size:13.5px;
  cursor:pointer;
  font-family:inherit;
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.av-tab:hover{border-color:var(--accent, #c0392b);color:var(--accent, #c0392b)}
.av-tab-on{background:var(--accent, #c0392b);border-color:var(--accent, #c0392b);color:#fff}
.av-tab-on:hover{color:#fff}

.av-input-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 16px;
}
.av-input-symbol{
  font-size:44px;
  font-weight:300;
  color:var(--accent, #c0392b);
  font-family:serif;
  line-height:1;
  flex:0 0 auto;
}
.av-input{
  flex:1;
  min-width:0;
  padding:14px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg);
  color:var(--fg);
  font-size:22px;
  font-weight:600;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  outline:none;
  transition:border-color .15s ease;
}
.av-input:focus{
  border-color:var(--accent, #c0392b);
}

.av-quick{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 18px;
}
.av-quick-btn{
  padding:6px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  color:var(--fg);
  font-size:13px;
  cursor:pointer;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  transition:border-color .15s ease, color .15s ease;
}
.av-quick-btn:hover{
  border-color:var(--accent, #c0392b);
  color:var(--accent, #c0392b);
}

.av-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.av-empty{
  padding:30px;
  text-align:center;
  color:var(--muted, #888);
  font-size:13.5px;
  border:1px dashed var(--line);
  border-radius:10px;
}

.av-summary{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:12px;
}
.av-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.av-sum-main{
  background:linear-gradient(135deg, rgba(192,57,43,.12), rgba(192,57,43,.04));
  border-color:rgba(192,57,43,.3);
}
.av-sum-main .av-sum-value{
  color:var(--accent, #c0392b);
  font-size:28px;
}
.av-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.av-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.av-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.av-card h3{
  margin:0 0 12px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.av-card h3 i{color:var(--accent, #c0392b)}
.av-card-info{
  border-color:rgba(59,130,246,.35);
  background:rgba(59,130,246,.05);
}
.av-card-info h3 i{color:#3b82f6}
.av-card-info p{
  margin:0;
  font-size:13.5px;
  color:var(--fg);
  line-height:1.7;
}
.av-card-info p b{color:#3b82f6}

.av-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:14.5px;
  line-height:2;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}

.av-table-wrap{
  overflow:auto;
}
.av-table{
  width:100%;
  border-collapse:collapse;
  font-size:13.5px;
}
.av-table td{
  padding:9px 12px;
  border-bottom:1px solid var(--line);
}
.av-table tr:last-child td{border-bottom:none}
.av-table td:first-child{
  color:var(--muted, #888);
  width:180px;
}
.av-table td:last-child{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-weight:600;
  text-align:right;
  word-break:break-all;
}

.av-table-batch th,
.av-table-batch td{
  padding:9px 12px;
  text-align:right;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.av-table-batch th:first-child,
.av-table-batch td:first-child,
.av-table-batch th:nth-child(2),
.av-table-batch td:nth-child(2){
  text-align:left;
}
.av-table-batch th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  font-family:inherit;
  font-size:12.5px;
}
.av-table-batch tr:hover td{background:rgba(0,0,0,.02)}

[data-theme="dark"] .av-sum-item,
[data-theme="dark"] .av-formula,
[data-theme="dark"] .av-table-batch th{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .av-sum-main{background:rgba(192,57,43,.15)}
[data-theme="dark"] .av-card-info{background:rgba(59,130,246,.1)}
[data-theme="dark"] .av-table-batch tr:hover td{background:rgba(255,255,255,.03)}

@media (max-width:640px){
  .av-summary{grid-template-columns:1fr 1fr}
  .av-sum-main{grid-column:1 / -1}
  .av-sum-main .av-sum-value{font-size:22px}
  .av-card{padding:12px 14px}
  .av-input{font-size:18px;padding:12px 14px}
  .av-input-symbol{font-size:34px}
  .av-formula{font-size:12.5px}
  .av-table td:first-child{width:130px;font-size:12.5px}
  .av-table-batch th,
  .av-table-batch td{padding:6px 8px;font-size:12px}
}

/* ============================================================
   泊松分布计算器（po-*）
   ============================================================ */

.po-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.po-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.po-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.po-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.po-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.po-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.po-sum-main{
  background:linear-gradient(135deg, rgba(192,57,43,.12), rgba(192,57,43,.04));
  border-color:rgba(192,57,43,.3);
}
.po-sum-main .po-sum-value{
  color:var(--accent, #c0392b);
  font-size:22px;
}
.po-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.po-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.po-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.po-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.po-card h3 i{color:var(--accent, #c0392b)}

.po-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.po-formula b{
  color:var(--accent, #c0392b);
  font-weight:700;
}

.po-table-wrap{
  overflow:auto;
  max-height:500px;
}
.po-table{
  width:100%;
  border-collapse:collapse;
  font-size:13.5px;
}
.po-table td{
  padding:9px 12px;
  border-bottom:1px solid var(--line);
}
.po-table tr:last-child td{border-bottom:none}
.po-table td:first-child{
  color:var(--muted, #888);
  width:180px;
}
.po-table td:last-child{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-weight:600;
  text-align:right;
  word-break:break-all;
}
.po-tr-main td{
  background:rgba(192,57,43,.08);
}
.po-tr-main td:last-child{color:var(--accent, #c0392b)}

.po-table-list th,
.po-table-list td{
  padding:8px 12px;
  text-align:right;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.po-table-list th:first-child,
.po-table-list td:first-child{
  text-align:left;
}
.po-table-list th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  font-family:inherit;
  font-size:12.5px;
  position:sticky;
  top:0;
  z-index:1;
}
.po-table-list td{
  color:var(--fg);
  font-size:12.5px;
}
.po-table-list tr:hover td{background:rgba(0,0,0,.02)}
.po-tr-current td{
  background:rgba(192,57,43,.1);
  color:var(--accent, #c0392b);
  font-weight:600;
}

.po-bar-wrap{
  width:120px;
  height:12px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:6px;
  overflow:hidden;
  display:inline-block;
}
.po-bar{
  height:100%;
  background:linear-gradient(90deg, #3b82f6, #60a5fa);
  border-radius:6px;
  transition:width .3s ease;
}
.po-tr-current .po-bar{
  background:linear-gradient(90deg, #c0392b, #e74c3c);
}

[data-theme="dark"] .po-sum-item,
[data-theme="dark"] .po-formula,
[data-theme="dark"] .po-table-list th,
[data-theme="dark"] .po-bar-wrap{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .po-sum-main{background:rgba(192,57,43,.15)}
[data-theme="dark"] .po-tr-main td{background:rgba(192,57,43,.15)}
[data-theme="dark"] .po-table-list tr:hover td{background:rgba(255,255,255,.03)}
[data-theme="dark"] .po-tr-current td{background:rgba(192,57,43,.2)}

@media (max-width:640px){
  .po-card{padding:12px 14px}
  .po-sum-main .po-sum-value{font-size:18px}
  .po-table td:first-child{width:130px;font-size:12.5px}
  .po-table-list th,
  .po-table-list td{padding:6px 8px;font-size:11.5px}
  .po-bar-wrap{width:60px}
  .po-formula{font-size:12px}
}

/* ============================================================
   自然对数计算器（ln-*）
   ============================================================ */

.ln-input-wrap{
  display:flex;
  align-items:center;
  gap:4px;
  margin:0 0 16px;
}
.ln-input-label{
  font-size:36px;
  font-weight:400;
  color:var(--accent, #c0392b);
  font-family:serif;
  line-height:1;
}
.ln-input{
  flex:1;
  min-width:0;
  padding:14px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg);
  color:var(--fg);
  font-size:22px;
  font-weight:600;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  outline:none;
  transition:border-color .15s ease;
}
.ln-input:focus{border-color:var(--accent, #c0392b)}

.ln-quick{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 16px;
}
.ln-quick-btn{
  padding:6px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  color:var(--fg);
  font-size:13px;
  cursor:pointer;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  transition:border-color .15s ease, color .15s ease;
}
.ln-quick-btn:hover{border-color:var(--accent, #c0392b);color:var(--accent, #c0392b)}

.ln-arbitrary{
  display:flex;
  gap:10px;
  align-items:flex-end;
  margin:0 0 18px;
  flex-wrap:wrap;
}
.ln-arb-field{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}
.ln-arb-field .uc-input{
  width:100px;
  flex:0 0 auto;
}
.ln-arb-x{
  font-size:16px;
  color:var(--accent, #c0392b);
  font-family:serif;
}

.ln-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.ln-error{
  padding:20px;
  background:rgba(231,76,60,.08);
  border:1px solid rgba(231,76,60,.3);
  border-radius:10px;
  color:#e74c3c;
  font-size:14px;
  line-height:1.7;
}
.ln-error i{margin-right:6px}

.ln-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:12px;
}
.ln-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.ln-sum-main{
  background:linear-gradient(135deg, rgba(192,57,43,.12), rgba(192,57,43,.04));
  border-color:rgba(192,57,43,.3);
}
.ln-sum-main .ln-sum-value{color:var(--accent, #c0392b);font-size:24px}
.ln-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.ln-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.ln-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.ln-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.ln-card h3 i{color:var(--accent, #c0392b)}

.ln-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.ln-formula b{color:var(--accent, #c0392b);font-weight:700}

.ln-table-wrap{
  overflow:auto;
}
.ln-table{
  width:100%;
  border-collapse:collapse;
  font-size:13.5px;
}
.ln-table td{
  padding:9px 12px;
  border-bottom:1px solid var(--line);
}
.ln-table tr:last-child td{border-bottom:none}
.ln-table td:first-child{
  color:var(--muted, #888);
  width:200px;
}
.ln-table td:last-child{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-weight:600;
  text-align:right;
  word-break:break-all;
}
.ln-tr-main td{
  background:rgba(192,57,43,.08);
}
.ln-tr-main td:last-child{color:var(--accent, #c0392b)}

.ln-table-list th,
.ln-table-list td{
  padding:8px 12px;
  text-align:right;
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.ln-table-list th:first-child,
.ln-table-list td:first-child{
  text-align:left;
}
.ln-table-list th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  font-family:inherit;
  font-size:12.5px;
}
.ln-table-list td{
  color:var(--fg);
  font-size:12.5px;
}
.ln-table-list tr:hover td{background:rgba(0,0,0,.02)}
.ln-tr-current td{
  background:rgba(192,57,43,.1);
  color:var(--accent, #c0392b);
  font-weight:600;
}

[data-theme="dark"] .ln-sum-item,
[data-theme="dark"] .ln-formula,
[data-theme="dark"] .ln-table-list th{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .ln-sum-main{background:rgba(192,57,43,.15)}
[data-theme="dark"] .ln-tr-main td{background:rgba(192,57,43,.15)}
[data-theme="dark"] .ln-table-list tr:hover td{background:rgba(255,255,255,.03)}
[data-theme="dark"] .ln-tr-current td{background:rgba(192,57,43,.2)}
[data-theme="dark"] .ln-error{background:rgba(231,76,60,.15)}

@media (max-width:640px){
  .ln-card{padding:12px 14px}
  .ln-sum-main .ln-sum-value{font-size:18px}
  .ln-input{font-size:18px;padding:12px 14px}
  .ln-input-label{font-size:28px}
  .ln-table td:first-child{width:140px;font-size:12.5px}
  .ln-table-list th,
  .ln-table-list td{padding:6px 8px;font-size:11.5px}
  .ln-formula{font-size:12px}
}

/* ============================================================
   交集计算器（is-*）
   ============================================================ */

.is-inputs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:0 0 18px;
}
.is-input-col{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.is-input-label{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.is-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:6px;
  color:#fff;
  font-size:14px;
  font-weight:700;
  font-family:serif;
}
.is-badge-a{background:#3b82f6}
.is-badge-b{background:#8b5cf6}

.is-seps{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  font-size:13.5px;
  color:var(--fg);
}

.is-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.is-empty{
  padding:30px;
  text-align:center;
  color:var(--muted, #888);
  font-size:13.5px;
  border:1px dashed var(--line);
  border-radius:10px;
}

.is-main-card{
  padding:20px 24px;
  background:linear-gradient(135deg, rgba(192,57,43,.12), rgba(192,57,43,.03));
  border:1px solid rgba(192,57,43,.3);
  border-radius:12px;
}
.is-main-card h3{
  margin:0 0 14px;
  font-size:16px;
  font-weight:600;
  color:var(--accent, #c0392b);
  display:flex;
  align-items:center;
  gap:8px;
}
.is-set-result{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:20px;
  font-weight:700;
  color:var(--accent, #c0392b);
  line-height:1.7;
  word-break:break-all;
  padding:12px 16px;
  background:rgba(255,255,255,.6);
  border-radius:8px;
}
.is-set-empty{
  color:var(--muted, #888);
  font-style:italic;
  font-weight:500;
}
.is-count{
  margin:12px 0 0;
  font-size:13.5px;
  color:var(--muted, #888);
}
.is-count b{color:var(--accent, #c0392b);font-size:16px}

.is-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:12px;
}
.is-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:14px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
  text-align:center;
}
.is-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.is-sum-value{
  font-size:22px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.is-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.is-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.is-card h3 i{color:var(--accent, #c0392b)}

.is-ops{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.is-op{
  padding:12px 16px;
  border:1px solid var(--line);
  border-left-width:4px;
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
}
.is-op-inter{border-left-color:#c0392b}
.is-op-union{border-left-color:#4caf50}
.is-op-ab{border-left-color:#3b82f6}
.is-op-ba{border-left-color:#8b5cf6}
.is-op-sym{border-left-color:#f59e0b}

.is-op-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin:0 0 4px;
}
.is-op-title{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
}
.is-op-count{
  font-size:12.5px;
  color:var(--muted, #888);
  background:var(--card);
  padding:2px 10px;
  border-radius:10px;
}
.is-op-desc{
  font-size:12px;
  color:var(--muted, #888);
  margin:0 0 8px;
}
.is-op-body{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:14px;
  color:var(--fg);
  word-break:break-all;
  line-height:1.8;
}
.is-el{
  display:inline-block;
  padding:1px 8px;
  background:var(--card);
  border-radius:4px;
  margin:0 2px;
}

.is-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.is-formula b{color:var(--accent, #c0392b);font-weight:700}

[data-theme="dark"] .is-sum-item,
[data-theme="dark"] .is-op,
[data-theme="dark"] .is-formula{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .is-set-result{
  background:rgba(0,0,0,.2);
}
[data-theme="dark"] .is-op-count,
[data-theme="dark"] .is-el{
  background:rgba(255,255,255,.06);
}
[data-theme="dark"] .is-main-card{
  background:linear-gradient(135deg, rgba(192,57,43,.18), rgba(192,57,43,.06));
  border-color:rgba(192,57,43,.4);
}

@media (max-width:640px){
  .is-inputs{grid-template-columns:1fr}
  .is-card,
  .is-main-card{padding:12px 14px}
  .is-set-result{font-size:16px;padding:10px 12px}
  .is-sum-value{font-size:18px}
  .is-op-body{font-size:13px}
  .is-formula{font-size:12px}
}

/* ============================================================
   伯努利不等式计算器（bn-*）
   ============================================================ */

.bn-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.bn-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.bn-field > span{
  font-size:13px;
  color:var(--muted, #888);
  font-weight:600;
}

.bn-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.bn-error{
  padding:20px;
  background:rgba(231,76,60,.08);
  border:1px solid rgba(231,76,60,.3);
  border-radius:10px;
  color:#e74c3c;
  font-size:14px;
  line-height:1.7;
}
.bn-error i{margin-right:6px}

.bn-main{
  padding:24px;
  border-radius:12px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
}
.bn-ok{
  background:linear-gradient(135deg, rgba(76,175,80,.14), rgba(76,175,80,.04));
  border:1px solid rgba(76,175,80,.35);
}
.bn-fail{
  background:linear-gradient(135deg, rgba(231,76,60,.12), rgba(231,76,60,.03));
  border:1px solid rgba(231,76,60,.35);
}
.bn-main-icon{
  font-size:42px;
}
.bn-ok .bn-main-icon{color:#4caf50}
.bn-fail .bn-main-icon{color:#e74c3c}
.bn-main-text{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
}
.bn-main-sub{
  font-size:14px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.bn-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.bn-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.bn-card h3 i{color:var(--accent, #c0392b)}
.bn-card-info{
  border-color:rgba(59,130,246,.35);
  background:rgba(59,130,246,.04);
}
.bn-card-info h3 i{color:#3b82f6}

.bn-compare{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:14px;
  align-items:center;
}
.bn-col{
  padding:18px;
  border-radius:10px;
  text-align:center;
}
.bn-col-left{
  background:rgba(59,130,246,.06);
  border:1px solid rgba(59,130,246,.25);
}
.bn-col-right{
  background:rgba(139,92,246,.06);
  border:1px solid rgba(139,92,246,.25);
}
.bn-col-title{
  font-size:13px;
  color:var(--muted, #888);
  margin:0 0 8px;
}
.bn-col-formula{
  font-size:13.5px;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  margin:0 0 10px;
}
.bn-col-value{
  font-size:24px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}
.bn-col-left .bn-col-value{color:#3b82f6}
.bn-col-right .bn-col-value{color:#8b5cf6}
.bn-col-op{
  font-size:20px;
  font-weight:700;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.bn-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.bn-formula b{color:var(--accent, #c0392b);font-weight:700}

.bn-conds{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.bn-conds li{
  padding:8px 12px;
  background:var(--bg-soft, #f7f7f7);
  border-left:3px solid #3b82f6;
  border-radius:6px;
  font-size:13.5px;
  color:var(--fg);
  line-height:1.6;
}

.bn-table-wrap{
  overflow:auto;
}
.bn-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.bn-table th,
.bn-table td{
  padding:9px 12px;
  text-align:right;
  border-bottom:1px solid var(--line);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.bn-table th:first-child,
.bn-table td:first-child{
  text-align:left;
}
.bn-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  font-family:inherit;
  font-size:12.5px;
}
.bn-table td{color:var(--fg)}
.bn-table tr:hover td{background:rgba(0,0,0,.02)}
.bn-tr-current td{
  background:rgba(192,57,43,.1);
  color:var(--accent, #c0392b);
  font-weight:600;
}

[data-theme="dark"] .bn-formula,
[data-theme="dark"] .bn-conds li,
[data-theme="dark"] .bn-table th{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .bn-card-info{background:rgba(59,130,246,.1)}
[data-theme="dark"] .bn-col-left{background:rgba(59,130,246,.12)}
[data-theme="dark"] .bn-col-right{background:rgba(139,92,246,.12)}
[data-theme="dark"] .bn-table tr:hover td{background:rgba(255,255,255,.03)}
[data-theme="dark"] .bn-tr-current td{background:rgba(192,57,43,.2)}
[data-theme="dark"] .bn-ok{background:rgba(76,175,80,.15)}
[data-theme="dark"] .bn-fail{background:rgba(231,76,60,.15)}

@media (max-width:640px){
  .bn-card{padding:12px 14px}
  .bn-compare{
    grid-template-columns:1fr;
    gap:10px;
  }
  .bn-col-op{
    text-align:center;
    font-size:16px;
  }
  .bn-col-value{font-size:18px}
  .bn-table th,
  .bn-table td{padding:6px 8px;font-size:12px}
  .bn-formula{font-size:12px}
}

/* ============================================================
   双阶乘计算器（df-*）
   ============================================================ */

.df-input-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 16px;
}
.df-input{
  flex:1;
  min-width:0;
  padding:14px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--bg);
  color:var(--fg);
  font-size:24px;
  font-weight:600;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  outline:none;
  transition:border-color .15s ease;
}
.df-input:focus{border-color:var(--accent, #c0392b)}
.df-input-label{
  font-size:38px;
  font-weight:700;
  color:var(--accent, #c0392b);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  line-height:1;
}

.df-quick{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 18px;
}
.df-quick-btn{
  padding:6px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  color:var(--fg);
  font-size:13px;
  cursor:pointer;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  transition:border-color .15s ease, color .15s ease;
}
.df-quick-btn:hover{border-color:var(--accent, #c0392b);color:var(--accent, #c0392b)}

.df-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.df-summary{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:12px;
}
.df-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
}
.df-sum-main{
  background:linear-gradient(135deg, rgba(192,57,43,.12), rgba(192,57,43,.04));
  border-color:rgba(192,57,43,.3);
}
.df-sum-main .df-sum-value{color:var(--accent, #c0392b);font-size:22px}
.df-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
}
.df-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.df-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.df-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.df-card h3 i{color:var(--accent, #c0392b)}

.df-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:14px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.df-formula b{color:var(--accent, #c0392b);font-weight:700}

.df-steps{
  display:flex;
  flex-direction:column;
  gap:6px;
  max-height:400px;
  overflow:auto;
}
.df-step{
  display:flex;
  align-items:baseline;
  gap:10px;
  padding:6px 12px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:6px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13px;
}
.df-step-idx{
  color:var(--muted, #888);
  flex:0 0 30px;
  font-size:11.5px;
}
.df-step-text{color:var(--fg)}

.df-table-wrap{
  overflow:auto;
  max-height:500px;
}
.df-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.df-table th,
.df-table td{
  padding:8px 12px;
  text-align:right;
  border-bottom:1px solid var(--line);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.df-table th:first-child,
.df-table td:first-child{
  text-align:left;
}
.df-table th{
  background:var(--bg-soft, #f7f7f7);
  font-weight:600;
  color:var(--fg);
  font-family:inherit;
  font-size:12.5px;
  position:sticky;
  top:0;
  z-index:1;
}
.df-table td{color:var(--fg)}
.df-table tr:hover td{background:rgba(0,0,0,.02)}
.df-tr-current td{
  background:rgba(192,57,43,.1);
  color:var(--accent, #c0392b);
  font-weight:600;
}

.df-compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:0 0 12px;
}
.df-compare-col{
  padding:14px 16px;
  border-radius:10px;
  background:rgba(59,130,246,.06);
  border:1px solid rgba(59,130,246,.25);
}
.df-compare-full{
  background:rgba(139,92,246,.06);
  border-color:rgba(139,92,246,.25);
}
.df-compare-title{
  font-size:13px;
  font-weight:600;
  color:var(--fg);
  margin:0 0 8px;
}
.df-compare-full .df-compare-title{color:#8b5cf6}
.df-compare-col:first-child .df-compare-title{color:#3b82f6}
.df-compare-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:12px;
  color:var(--muted, #888);
  word-break:break-all;
  margin:0 0 8px;
  line-height:1.6;
}
.df-compare-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.df-ratio{
  margin:0;
  padding:10px 14px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:6px;
  font-size:13.5px;
  color:var(--fg);
  text-align:center;
}
.df-ratio b{color:var(--accent, #c0392b);font-family:ui-monospace,Menlo,Consolas,monospace}

[data-theme="dark"] .df-sum-item,
[data-theme="dark"] .df-formula,
[data-theme="dark"] .df-step,
[data-theme="dark"] .df-table th,
[data-theme="dark"] .df-ratio{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .df-sum-main{background:rgba(192,57,43,.15)}
[data-theme="dark"] .df-table tr:hover td{background:rgba(255,255,255,.03)}
[data-theme="dark"] .df-tr-curr(192,57,43,.2)}
[data-theme="dark"] .df-compare-col{background:rgba(59,130,246,.12)}
[data-theme="dark"] .df-compare-full{background:rgba(139,92,246,.12)}

@media (max-width:640px){
  .df-summary{grid-template-columns:1fr 1fr}
  .df-sum-main{grid-column:1 / -1}
  .df-sum-main .df-sum-value{font-size:18px}
  .df-card{padding:12px 14px}
  .df-input{font-size:20px;padding:12px 14px}
  .df-input-label{font-size:30px}
  .df-table th,
  .df-table td{padding:6px 8px;font-size:11.5px}
  .df-compare{grid-template-columns:1fr}
  .df-formula{font-size:12.5px}
}

/* ============================================================
   差集计算器（ds-*）
   ============================================================ */

.ds-inputs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:0 0 18px;
}
.ds-input-col{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.ds-input-label{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.ds-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:6px;
  color:#fff;
  font-size:14px;
  font-weight:700;
  font-family:serif;
}
.ds-badge-a{background:#3b82f6}
.ds-badge-b{background:#8b5cf6}

.ds-seps{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  font-size:13.5px;
  color:var(--fg);
}

.ds-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.ds-empty{
  padding:30px;
  text-align:center;
  color:var(--muted, #888);
  font-size:13.5px;
  border:1px dashed var(--line);
  border-radius:10px;
}

.ds-main-card{
  padding:20px 24px;
  border-radius:12px;
  margin:0;
}
.ds-main-ab{
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(59,130,246,.03));
  border:1px solid rgba(59,130,246,.3);
}
.ds-main-ba{
  background:linear-gradient(135deg, rgba(139,92,246,.12), rgba(139,92,246,.03));
  border:1px solid rgba(139,92,246,.3);
}
.ds-main-card h3{
  margin:0 0 14px;
  font-size:16px;
  font-weight:600;
  display:flex;
  align-items:center;
  gap:8px;
}
.ds-main-ab h3{color:#3b82f6}
.ds-main-ba h3{color:#8b5cf6}
.ds-set-result{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:20px;
  font-weight:700;
  line-height:1.7;
  word-break:break-all;
  padding:12px 16px;
  background:rgba(255,255,255,.6);
  border-radius:8px;
}
.ds-main-ab .ds-set-result{color:#3b82f6}
.ds-main-ba .ds-set-result{color:#8b5cf6}
.ds-set-empty{
  color:var(--muted, #888);
  font-style:italic;
  font-weight:500;
}
.ds-count{
  margin:12px 0 0;
  font-size:13.5px;
  color:var(--muted, #888);
}
.ds-count b{font-size:16px}
.ds-main-ab .ds-count b{color:#3b82f6}
.ds-main-ba .ds-count b{color:#8b5cf6}

.ds-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:12px;
}
.ds-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border:1px solid var(--line);
  border-radius:10px;
  text-align:center;
}
.ds-sum-label{
  font-size:12.5px;
  color:var(--muted, #888);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.ds-sum-value{
  font-size:22px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.ds-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--card);
  padding:16px 20px;
}
.ds-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.ds-card h3 i{color:var(--accent, #c0392b)}

.ds-ops{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.ds-op{
  padding:12px 16px;
  border:1px solid var(--line);
  border-left-width:4px;
  border-radius:8px;
  background:var(--bg-soft, #f7f7f7);
}
.ds-op-inter{border-left-color:#c0392b}
.ds-op-union{border-left-color:#4caf50}
.ds-op-sym{border-left-color:#f59e0b}

.ds-op-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin:0 0 8px;
}
.ds-op-title{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
}
.ds-op-count{
  font-size:12.5px;
  color:var(--muted, #888);
  background:var(--card);
  padding:2px 10px;
  border-radius:10px;
}
.ds-op-body{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:14px;
  color:var(--fg);
  word-break:break-all;
  line-height:1.8;
}
.ds-el{
  display:inline-block;
  padding:1px 8px;
  background:var(--card);
  border-radius:4px;
  margin:0 2px;
}

.ds-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:2;
  color:var(--fg);
  padding:14px 16px;
  background:var(--bg-soft, #f7f7f7);
  border-radius:8px;
  word-break:break-all;
}
.ds-formula b{color:var(--accent, #c0392b);font-weight:700}

[data-theme="dark"] .ds-sum-item,
[data-theme="dark"] .ds-op,
[data-theme="dark"] .ds-formula{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .ds-set-result{
  background:rgba(0,0,0,.2);
}
[data-theme="dark"] .ds-op-count,
[data-theme="dark"] .ds-el{
  background:rgba(255,255,255,.06);
}
[data-theme="dark"] .ds-main-ab{
  background:linear-gradient(135deg, rgba(59,130,246,.18), rgba(59,130,246,.06));
  border-color:rgba(59,130,246,.4);
}
[data-theme="dark"] .ds-main-ba{
  background:linear-gradient(135deg, rgba(139,92,246,.18), rgba(139,92,246,.06));
  border-color:rgba(139,92,246,.4);
}

@media (max-width:640px){
  .ds-inputs{grid-template-columns:1fr}
  .ds-card,
  .ds-main-card{padding:12px 14px}
  .ds-set-result{font-size:16px;padding:10px 12px}
  .ds-sum-value{font-size:18px}
  .ds-op-body{font-size:13px}
  .ds-formula{font-size:12px;line-height:1.9}
}

/* ============================================================
   求模计算器（md-*）
   ============================================================ */

.md-form{
  display:flex;
  align-items:flex-end;
  gap:14px;
  margin:0 0 16px;
  flex-wrap:wrap;
}
.md-field{
  flex:1;
  min-width:160px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.md-field > span{
  font-size:13px;
  color:var(--muted);
  font-weight:600;
}
.md-op{
  font-size:22px;
  font-weight:700;
  color:var(--accent);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.md-quick{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 18px;
}
.md-quick-btn{
  padding:6px 14px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--panel);
  color:var(--fg);
  font-size:13px;
  cursor:pointer;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  transition:border-color .15s ease, color .15s ease;
}
.md-quick-btn:hover{border-color:var(--accent);color:var(--accent)}

.md-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.md-error{
  padding:20px;
  background:rgba(231,76,60,.08);
  border:1px solid rgba(231,76,60,.3);
  border-radius:10px;
  color:#e74c3c;
  font-size:14px;
  line-height:1.7;
}
.md-error i{margin-right:6px}

.md-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:12px;
}
.md-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--hover);
  border:1px solid var(--line);
  border-radius:10px;
}
.md-sum-main{
  background:linear-gradient(135deg, rgba(192,57,43,.12), rgba(192,57,43,.04));
  border-color:rgba(192,57,43,.3);
}
.md-sum-main .md-sum-value{color:var(--accent);font-size:24px}
.md-sum-label{
  font-size:12.5px;
  color:var(--muted);
}
.md-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
  word-break:break-all;
}

.md-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  padding:16px 20px;
}
.md-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.md-card h3 i{color:var(--accent)}
.md-card-warn{
  border-color:rgba(255,193,7,.4);
  background:rgba(255,193,7,.04);
}
.md-card-warn h3 i{color:#f59e0b}
.md-card-warn p{
  margin:0 0 8px;
  font-size:13.5px;
  color:var(--fg);
  line-height:1.7;
}

.md-formula{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13.5px;
  line-height:1.9;
  color:var(--fg);
  padding:14px 16px;
  background:var(--hover);
  border-radius:8px;
  word-break:break-all;
}
.md-formula b{color:var(--accent);font-weight:700}

.md-table-wrap{
  overflow:auto;
}
.md-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.md-table th,
.md-table td{
  padding:10px 12px;
  text-align:left;
  border-bottom:1px solid var(--line);
}
.md-table th{
  background:var(--hover);
  font-weight:600;
  color:var(--fg);
  font-size:12.5px;
}
.md-table td{
  color:var(--fg);
}
.md-table code{
  padding:2px 8px;
  background:var(--hover);
  border-radius:4px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  color:var(--accent);
  font-size:12.5px;
}
.md-table td:nth-child(3){
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-weight:600;
  color:var(--accent);
}
.md-tr-js td,
.md-tr-c td{background:rgba(59,130,246,.05)}
.md-tr-py td{background:rgba(76,175,80,.05)}
.md-tr-php td{background:rgba(139,92,246,.05)}

.md-diff{
  list-style:none;
  margin:8px 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.md-diff li{
  padding:10px 14px;
  background:var(--hover);
  border-radius:6px;
  font-size:13.5px;
  color:var(--fg);
  line-height:1.7;
}
.md-diff li b{color:var(--accent)}

[data-theme="dark"] .md-sum-item,
[data-theme="dark"] .md-formula,
[data-theme="dark"] .md-table th,
[data-theme="dark"] .md-table code,
[data-theme="dark"] .md-diff li{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .md-sum-main{background:rgba(192,57,43,.15)}
[data-theme="dark"] .md-card-warn{background:rgba(255,193,7,.08)}
[data-theme="dark"] .md-tr-js td,
[data-theme="dark"] .md-tr-c td{background:rgba(59,130,246,.1)}
[data-theme="dark"] .md-tr-py td{background:rgba(76,175,80,.1)}
[data-theme="dark"] .md-tr-php td{background:rgba(139,92,246,.1)}

@media (max-width:640px){
  .md-card{padding:12px 14px}
  .md-sum-main .md-sum-value{font-size:20px}
  .md-table th,
  .md-table td{padding:8px 8px;font-size:12px}
  .md-formula{font-size:12px}
  .md-op{padding-bottom:10px;font-size:18px}
}
/* ===== 宝宝疫苗接种时间表 ym- ===== */
.ym-wrap{max-width:1000px;margin:0 auto}
.ym-filter{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.ym-tab{padding:8px 18px;border:1px solid var(--line);background:var(--panel);border-radius:20px;cursor:pointer;font-size:14px;color:var(--muted);transition:.2s}
.ym-tab:hover{border-color:#409eff;color:#409eff}
.ym-tab.on{background:#409eff;border-color:#409eff;color:#fff}
.ym-table-wrap{overflow-x:auto;border-radius:10px;box-shadow:0 1px 6px rgba(0,0,0,.06)}
.ym-table{width:100%;border-collapse:collapse;background:var(--panel);font-size:14px;min-width:640px}
.ym-table th{background:var(--hover);color:var(--fg);font-weight:600;padding:12px 14px;text-align:left;border-bottom:2px solid var(--line);white-space:nowrap}
.ym-table td{padding:11px 14px;border-bottom:1px solid var(--line);color:var(--muted)}
.ym-table tr:last-child td{border-bottom:none}
.ym-table tr:hover td{background:var(--hover)}
.ym-age{font-weight:600;color:#409eff;white-space:nowrap}
.ym-name{color:var(--fg);font-weight:500}
.ym-note{color:var(--muted);font-size:13px}
.ym-tag{display:inline-block;padding:2px 9px;border-radius:10px;font-size:12px;white-space:nowrap}
.ym-tag-free{background:rgba(64,158,255,.1);color:#409eff}
.ym-tag-paid{background:rgba(245,108,108,.1);color:#f56c6c}
.ym-tip{margin-top:16px;padding:12px 16px;background:var(--hover);border-radius:8px;color:var(--muted);font-size:13px;line-height:1.7}
.ym-tip i{color:#409eff;margin-right:4px}
/* ===== 生男生女预测表 sn- ===== */
.sn-hero{max-width:1000px;margin:0 auto 28px;border-radius:16px;overflow:hidden;}
.sn-hero-inner{display:grid;grid-template-columns:1fr 340px;gap:28px;padding:32px 34px;align-items:center}
.sn-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;
  background:var(--panel);color:#409eff;font-size:13px;font-weight:600;box-shadow:0 2px 8px rgba(64,158,255,.15);margin-bottom:14px}
.sn-hero-text h2{font-size:26px;line-height:1.4;color:var(--fg);margin:0 0 12px;font-weight:700}
.sn-hero-text p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}

.sn-form{background:var(--panel);border-radius:14px;padding:22px 20px;box-shadow:0 6px 24px rgba(64,158,255,.12)}
.sn-field{margin-bottom:16px}
.sn-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px;font-weight:500}
.sn-select-wrap{position:relative}
.sn-select-wrap select{width:100%;height:44px;padding:0 36px 0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);appearance:none;-webkit-appearance:none;cursor:pointer;transition:.2s}
.sn-select-wrap select:focus{outline:none;border-color:#409eff;background:var(--panel);box-shadow:0 0 0 3px rgba(64,158,255,.12)}
.sn-select-wrap i{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;pointer-events:none}
.sn-btn{width:100%;height:48px;border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#409eff,#66b1ff);box-shadow:0 6px 18px rgba(64,158,255,.35);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px}
.sn-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(64,158,255,.45)}
.sn-btn:active{transform:translateY(0)}

.sn-result{display:flex;align-items:center;gap:24px;padding:24px 34px;
  background:linear-gradient(135deg,var(--panel) 0%,rgba(64,158,255,.04) 100%);border-top:1px solid var(--line)}
.sn-result-ring{width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:44px;flex-shrink:0;transition:.3s}
.sn-ring-boy{background:radial-gradient(circle at 30% 30%,rgba(64,158,255,.2),rgba(64,158,255,.4));box-shadow:0 6px 20px rgba(64,158,255,.28)}
.sn-ring-girl{background:radial-gradient(circle at 30% 30%,rgba(245,108,154,.2),rgba(245,108,154,.4));box-shadow:0 6px 20px rgba(245,108,150,.28)}
.sn-result-label{font-size:13px;color:var(--muted);margin-bottom:4px}
.sn-result-value{font-size:30px;font-weight:800;line-height:1.2}
.sn-val-boy{color:#409eff}
.sn-val-girl{color:#f56c9a}
.sn-result-sub{font-size:13px;color:var(--muted);margin-top:6px}

.sn-chart{max-width:1000px;margin:0 auto}
.sn-chart h2{font-size:19px;color:var(--fg);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.sn-chart h2 i{color:#409eff}
.sn-chart-tip{color:var(--muted);font-size:13px;margin:0 0 16px}
.sn-chart-scroll{overflow-x:auto;border-radius:14px;box-shadow:0 4px 18px rgba(31,45,61,.07);border:1px solid var(--line)}
.sn-table{width:100%;border-collapse:collapse;background:var(--panel);font-size:13px;min-width:720px}
.sn-table th,.sn-table td{text-align:center;padding:9px 4px;border:1px solid var(--line)}
.sn-table thead th{background:linear-gradient(180deg,rgba(64,158,255,.1),rgba(64,158,255,.15));color:#409eff;font-weight:600;white-space:nowrap}
.sn-th-corner{background:var(--hover) !important;color:var(--muted) !important;font-weight:500 !important;font-size:12px}
.sn-th-age{background:var(--hover);color:var(--fg);font-weight:600;white-space:nowrap;position:sticky;left:0;z-index:2}
.sn-boy{color:#409eff;background:rgba(64,158,255,.04)}
.sn-girl{color:#f56c9a;background:rgba(245,108,154,.04)}
.sn-table tbody tr:hover td{background:var(--hover)}
.sn-hit{background:#409eff !important;color:#fff !important;font-weight:700;box-shadow:inset 0 0 0 2px var(--panel);border-radius:4px}
.sn-note{margin-top:16px;padding:12px 16px;background:var(--hover);border-radius:10px;color:var(--muted);font-size:13px;line-height:1.7}
.sn-note i{color:#409eff;margin-right:5px}

@media (max-width:768px){
  .sn-hero-inner{grid-template-columns:1fr;padding:24px 20px;gap:20px}
  .sn-hero-text h2{font-size:21px}
  .sn-result{padding:20px;gap:16px}
  .sn-result-ring{width:70px;height:70px;font-size:34px}
  .sn-result-value{font-size:25px}
}
/* ===== 血型遗传规律表 xx- ===== */
.xx-hero{max-width:1000px;margin:0 auto 28px;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,rgba(245,108,154,.06) 0%,rgba(245,108,154,.03) 55%,rgba(64,158,255,.05) 100%);
  box-shadow:0 4px 20px rgba(245,108,154,.10);border:1px solid var(--line)}
.xx-hero-inner{display:grid;grid-template-columns:1fr 340px;gap:28px;padding:32px 34px;align-items:center}
.xx-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;
  background:var(--panel);color:#f56c9a;font-size:13px;font-weight:600;box-shadow:0 2px 8px rgba(245,108,154,.15);margin-bottom:14px}
.xx-hero-text h2{font-size:26px;line-height:1.4;color:var(--fg);margin:0 0 12px;font-weight:700}
.xx-hero-text p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}

.xx-form{background:var(--panel);border-radius:14px;padding:22px 20px;box-shadow:0 6px 24px rgba(245,108,154,.12)}
.xx-field{margin-bottom:16px}
.xx-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px;font-weight:500}
.xx-select-wrap{position:relative}
.xx-select-wrap select{width:100%;height:44px;padding:0 36px 0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);appearance:none;-webkit-appearance:none;cursor:pointer;transition:.2s}
.xx-select-wrap select:focus{outline:none;border-color:#f56c9a;background:var(--panel);box-shadow:0 0 0 3px rgba(245,108,154,.12)}
.xx-select-wrap i{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;pointer-events:none}
.xx-btn{width:100%;height:48px;border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#f56c9a,#ff8fb4);box-shadow:0 6px 18px rgba(245,108,154,.35);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px}
.xx-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(245,108,154,.45)}
.xx-btn:active{transform:translateY(0)}

.xx-result{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:24px 34px;
  background:linear-gradient(135deg,var(--panel) 0%,rgba(245,108,154,.04) 100%);border-top:1px solid var(--line)}
.xx-result-label{font-size:14px;color:var(--muted);font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.xx-result-label i{color:#67c23a}
.xx-label-no i{color:#f56c6c}
.xx-result-tags{display:flex;flex-wrap:wrap;gap:10px}
.xx-tag{display:inline-block;padding:8px 16px;border-radius:10px;font-size:15px;font-weight:600}
.xx-tag-ok{background:rgba(103,194,58,.1);color:#3fa45b;border:1px solid rgba(103,194,58,.3)}
.xx-tag-no{background:rgba(245,108,108,.1);color:#e04b4b;border:1px solid rgba(245,108,108,.3);text-decoration:line-through;opacity:.85}
.xx-tag-none{background:var(--hover);color:var(--muted);border:1px solid var(--line);font-weight:500}

.xx-chart{max-width:1000px;margin:0 auto}
.xx-chart h2{font-size:19px;color:var(--fg);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.xx-chart h2 i{color:#f56c9a}
.xx-chart-tip{color:var(--muted);font-size:13px;margin:0 0 16px}
.xx-chart-scroll{overflow-x:auto;border-radius:14px;box-shadow:0 4px 18px rgba(31,45,61,.07);border:1px solid var(--line)}
.xx-table{width:100%;border-collapse:collapse;background:var(--panel);font-size:14px;min-width:560px}
.xx-table th,.xx-table td{text-align:center;padding:12px 8px;border:1px solid var(--line)}
.xx-table thead th{background:linear-gradient(180deg,rgba(245,108,154,.1),rgba(245,108,154,.15));color:#f56c9a;font-weight:600;white-space:nowrap}
.xx-th-row{background:var(--hover);color:var(--fg);font-weight:600;white-space:nowrap}
.xx-table tbody tr:hover td{background:var(--hover)}
.xx-note{margin-top:16px;padding:12px 16px;background:var(--hover);border-radius:10px;color:var(--muted);font-size:13px;line-height:1.7}
.xx-note i{color:#f56c9a;margin-right:5px}

@media (max-width:768px){
  .xx-hero-inner{grid-template-columns:1fr;padding:24px 20px;gap:20px}
  .xx-hero-text h2{font-size:21px}
  .xx-result{grid-template-columns:1fr;padding:20px;gap:18px}
}
/* ===== 标准体重计算器 tz- ===== */
.tz-hero{max-width:1000px;margin:0 auto 28px;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,rgba(63,164,91,.06) 0%,rgba(63,164,91,.03) 55%,rgba(64,158,255,.05) 100%);
  box-shadow:0 4px 20px rgba(63,164,91,.10);border:1px solid var(--line)}
.tz-hero-inner{display:grid;grid-template-columns:1fr 340px;gap:28px;padding:32px 34px;align-items:center}
.tz-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;
  background:var(--panel);color:#3fa45b;font-size:13px;font-weight:600;box-shadow:0 2px 8px rgba(63,164,91,.15);margin-bottom:14px}
.tz-hero-text h2{font-size:26px;line-height:1.4;color:var(--fg);margin:0 0 12px;font-weight:700}
.tz-hero-text p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}

.tz-form{background:var(--panel);border-radius:14px;padding:22px 20px;box-shadow:0 6px 24px rgba(63,164,91,.12)}
.tz-field{margin-bottom:16px}
.tz-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px;font-weight:500}
.tz-field input[type=number]{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.tz-field input[type=number]:focus{outline:none;border-color:#3fa45b;background:var(--panel);box-shadow:0 0 0 3px rgba(63,164,91,.12)}
.tz-radio-group{display:flex;gap:12px}
.tz-radio{flex:1;cursor:pointer}
.tz-radio input{display:none}
.tz-radio span{display:flex;align-items:center;justify-content:center;height:44px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--muted);background:var(--bg);transition:.2s}
.tz-radio input:checked + span{background:linear-gradient(135deg,#3fa45b,#5fc47c);color:#fff;border-color:#3fa45b;box-shadow:0 4px 12px rgba(63,164,91,.3)}
.tz-btn{width:100%;height:48px;border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#3fa45b,#5fc47c);box-shadow:0 6px 18px rgba(63,164,91,.35);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px}
.tz-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(63,164,91,.45)}
.tz-btn:active{transform:translateY(0)}

.tz-result{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:26px 34px;align-items:center;
  background:linear-gradient(135deg,var(--panel) 0%,rgba(63,164,91,.04) 100%);border-top:1px solid var(--line)}
.tz-main-label{font-size:13px;color:var(--muted);margin-bottom:6px}
.tz-main-value{font-size:40px;font-weight:800;color:#3fa45b;line-height:1.1}
.tz-main-value em{font-size:18px;font-weight:600;font-style:normal;margin-left:4px;color:var(--muted)}
.tz-main-sub{font-size:13px;color:var(--muted);margin-top:8px}
.tz-range-label{font-size:13px;color:var(--muted);margin-bottom:6px}
.tz-range-value{font-size:22px;font-weight:700;color:var(--fg)}
.tz-range-value em{font-size:14px;font-weight:600;font-style:normal;margin-left:4px;color:var(--muted)}
.tz-range-bar{position:relative;height:8px;border-radius:6px;background:rgba(63,164,91,.15);margin-top:14px;overflow:hidden}
.tz-range-fill{position:absolute;top:0;height:100%;border-radius:6px;background:linear-gradient(90deg,#5fc47c,#3fa45b);transition:.4s}

.tz-formulas{max-width:1000px;margin:0 auto}
.tz-formulas h2{font-size:19px;color:var(--fg);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.tz-formulas h2 i{color:#3fa45b}
.tz-formulas-tip{color:var(--muted);font-size:13px;margin:0 0 16px}
.tz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.tz-card{background:var(--panel);border-radius:14px;padding:20px;box-shadow:0 2px 12px rgba(31,45,61,.06);
  border:1px solid var(--line);transition:.2s}
.tz-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(63,164,91,.15);border-color:rgba(63,164,91,.3)}
.tz-card-name{font-size:14px;color:var(--muted);font-weight:600;margin-bottom:10px}
.tz-card-val{font-size:24px;font-weight:800;color:#3fa45b;margin-bottom:8px}
.tz-card-desc{font-size:12px;color:var(--muted);line-height:1.6}

@media (max-width:768px){
  .tz-hero-inner{grid-template-columns:1fr;padding:24px 20px;gap:20px}
  .tz-hero-text h2{font-size:21px}
  .tz-result{grid-template-columns:1fr;padding:20px;gap:18px}
  .tz-main-value{font-size:34px}
}

/* ===== 喝水计算器 hs- ===== */
.hs-hero{max-width:1000px;margin:0 auto 28px;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,rgba(64,158,255,.06) 0%,rgba(64,158,255,.03) 55%,rgba(16,185,129,.05) 100%);
  box-shadow:0 4px 20px rgba(64,158,255,.10);border:1px solid var(--line)}
.hs-hero-inner{display:grid;grid-template-columns:1fr 340px;gap:28px;padding:32px 34px;align-items:center}
.hs-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;
  background:var(--panel);color:#2f9fe0;font-size:13px;font-weight:600;box-shadow:0 2px 8px rgba(47,159,224,.15);margin-bottom:14px}
.hs-hero-text h2{font-size:26px;line-height:1.4;color:var(--fg);margin:0 0 12px;font-weight:700}
.hs-hero-text p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}

.hs-form{background:var(--panel);border-radius:14px;padding:22px 20px;box-shadow:0 6px 24px rgba(47,159,224,.12)}
.hs-field{margin-bottom:16px}
.hs-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px;font-weight:500}
.hs-field input[type=number]{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.hs-field input[type=number]:focus{outline:none;border-color:#2f9fe0;background:var(--panel);box-shadow:0 0 0 3px rgba(47,159,224,.12)}
.hs-select-wrap{position:relative}
.hs-select-wrap select{width:100%;height:44px;padding:0 36px 0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);appearance:none;-webkit-appearance:none;cursor:pointer;transition:.2s}
.hs-select-wrap select:focus{outline:none;border-color:#2f9fe0;background:var(--panel);box-shadow:0 0 0 3px rgba(47,159,224,.12)}
.hs-select-wrap i{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;pointer-events:none}
.hs-btn{width:100%;height:48px;border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#2f9fe0,#5bb8ec);box-shadow:0 6px 18px rgba(47,159,224,.35);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px}
.hs-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(47,159,224,.45)}
.hs-btn:active{transform:translateY(0)}

.hs-result{display:grid;grid-template-columns:200px 1fr;gap:32px;padding:28px 34px;align-items:center;
  background:linear-gradient(135deg,var(--panel) 0%,rgba(47,159,224,.04) 100%);border-top:1px solid var(--line)}
.hs-cup{position:relative;width:160px;height:200px;margin:0 auto;border:3px solid rgba(47,159,224,.4);border-top:none;
  border-radius:8px 8px 20px 20px;overflow:hidden;background:var(--bg)}
.hs-cup-fill{position:absolute;left:0;bottom:0;width:100%;height:0;transition:height .6s ease;
  background:linear-gradient(180deg,#7cc9f0,#2f9fe0)}
.hs-cup-fill::before{content:'';position:absolute;top:-6px;left:0;width:100%;height:12px;border-radius:50%;
  background:rgba(255,255,255,.4)}
.hs-cup-text{position:absolute;top:50%;left:0;width:100%;transform:translateY(-50%);text-align:center;z-index:2}
.hs-cup-num{display:block;font-size:30px;font-weight:800;color:#fff;text-shadow:0 2px 8px rgba(47,159,224,.6);line-height:1.1}
.hs-cup-unit{display:block;font-size:12px;color:#fff;text-shadow:0 1px 4px rgba(47,159,224,.6);margin-top:2px}
.hs-info{display:flex;flex-direction:column;gap:12px}
.hs-info-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-radius:10px;
  background:var(--hover);border:1px solid var(--line)}
.hs-info-label{font-size:13px;color:var(--muted)}
.hs-info-value{font-size:15px;font-weight:700;color:#2f9fe0}

.hs-plan{max-width:1000px;margin:0 auto}
.hs-plan h2{font-size:19px;color:var(--fg);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.hs-plan h2 i{color:#2f9fe0}
.hs-plan-tip{color:var(--muted);font-size:13px;margin:0 0 20px}
.hs-timeline{position:relative;padding-left:8px}
.hs-timeline::before{content:'';position:absolute;left:76px;top:8px;bottom:8px;width:2px;background:rgba(47,159,224,.15)}
.hs-tl-item{display:grid;grid-template-columns:70px 18px 1fr;gap:12px;align-items:start;margin-bottom:16px;position:relative}
.hs-tl-time{font-size:13px;font-weight:600;color:#2f9fe0;text-align:right;padding-top:12px}
.hs-tl-dot{width:12px;height:12px;border-radius:50%;background:var(--panel);border:3px solid #2f9fe0;margin:14px auto 0;z-index:2;box-shadow:0 0 0 4px rgba(47,159,224,.1)}
.hs-tl-body{background:var(--panel);border-radius:12px;padding:12px 16px;border:1px solid var(--line);box-shadow:0 2px 8px rgba(31,45,61,.04)}
.hs-tl-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.hs-tl-name{font-size:14px;font-weight:600;color:var(--fg)}
.hs-tl-ml{font-size:14px;font-weight:700;color:#2f9fe0}
.hs-tl-tip{font-size:12px;color:var(--muted)}

@media (max-width:768px){
  .hs-hero-inner{grid-template-columns:1fr;padding:24px 20px;gap:20px}
  .hs-hero-text h2{font-size:21px}
  .hs-result{grid-template-columns:1fr;padding:20px;gap:20px}
  .hs-timeline::before{left:60px}
  .hs-tl-item{grid-template-columns:54px 18px 1fr;gap:8px}
}

/* ===== 人体肌肉位置图解 jr- ===== */
.jr-wrap{max-width:1000px;margin:0 auto}
.jr-switch{display:flex;justify-content:center;gap:12px;margin-bottom:24px}
.jr-tab{padding:9px 32px;border:1px solid var(--line);background:var(--panel);border-radius:24px;cursor:pointer;
  font-size:15px;color:var(--muted);transition:.2s;font-weight:500}
.jr-tab:hover{border-color:#7c6cf0;color:#7c6cf0}
.jr-tab.on{background:linear-gradient(135deg,#7c6cf0,#9a8df5);border-color:#7c6cf0;color:#fff;
  box-shadow:0 4px 14px rgba(124,108,240,.3)}
.jr-main{display:grid;grid-template-columns:380px 1fr;gap:28px;align-items:start}
.jr-figure{background:linear-gradient(180deg,rgba(124,108,240,.06) 0%,rgba(124,108,240,.02) 100%);border-radius:16px;padding:20px;
  border:1px solid var(--line);box-shadow:0 4px 18px rgba(124,108,240,.08)}
.jr-figure-inner{display:flex;justify-content:center}
.jr-svg{width:100%;max-width:300px;height:auto}
.jr-body{fill:#e8e6f5;stroke:#d5d0ee;stroke-width:1}
.jr-m{fill:#c9c2f0;stroke:#fff;stroke-width:1.5;cursor:pointer;transition:.2s}
.jr-m:hover,.jr-m.jr-hover{fill:#a89af2}
.jr-m.jr-on{fill:#7c6cf0;stroke:#fff;stroke-width:2;filter:drop-shadow(0 2px 8px rgba(124,108,240,.5))}
.jr-figure-tip{text-align:center;color:var(--muted);font-size:13px;margin:16px 0 0}
.jr-figure-tip i{color:#7c6cf0;margin-right:4px}

.jr-panel{display:flex;flex-direction:column;gap:20px}
.jr-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.jr-card-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#7c6cf0,#9a8df5);color:#fff;font-size:24px;margin-bottom:16px;
  box-shadow:0 6px 18px rgba(124,108,240,.3)}
.jr-card-name{font-size:24px;font-weight:800;color:var(--fg);margin-bottom:20px}
.jr-card-row{display:grid;grid-template-columns:52px 1fr;gap:12px;margin-bottom:14px;align-items:start}
.jr-card-row:last-child{margin-bottom:0}
.jr-card-label{font-size:13px;color:var(--muted);font-weight:600;padding-top:3px}
.jr-card-text{font-size:14px;color:var(--fg);line-height:1.75}
.jr-list{display:flex;flex-wrap:wrap;gap:10px}
.jr-list-item{padding:8px 16px;border-radius:10px;border:1px solid var(--line);background:var(--panel);cursor:pointer;
  font-size:13px;color:var(--muted);transition:.2s}
.jr-list-item:hover{border-color:#a89af2;color:#7c6cf0;background:rgba(124,108,240,.06)}
.jr-list-item.on{background:linear-gradient(135deg,#7c6cf0,#9a8df5);border-color:#7c6cf0;color:#fff;
  box-shadow:0 3px 10px rgba(124,108,240,.3)}

@media (max-width:768px){
  .jr-main{grid-template-columns:1fr;gap:20px}
  .jr-svg{max-width:240px}
  .jr-card-name{font-size:20px}
}

/* ===== 身体表面积计算器 bsa- ===== */
.bsa-hero{max-width:1000px;margin:0 auto 28px;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,rgba(99,102,241,.06) 0%,rgba(99,102,241,.03) 55%,rgba(16,185,129,.05) 100%);
  box-shadow:0 4px 20px rgba(99,102,241,.10);border:1px solid var(--line)}
.bsa-hero-inner{display:grid;grid-template-columns:1fr 340px;gap:28px;padding:32px 34px;align-items:center}
.bsa-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;
  background:var(--panel);color:#6366f1;font-size:13px;font-weight:600;box-shadow:0 2px 8px rgba(99,102,241,.15);margin-bottom:14px}
.bsa-hero-text h2{font-size:26px;line-height:1.4;color:var(--fg);margin:0 0 12px;font-weight:700}
.bsa-hero-text p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}

.bsa-form{background:var(--panel);border-radius:14px;padding:22px 20px;box-shadow:0 6px 24px rgba(99,102,241,.12)}
.bsa-field{margin-bottom:16px}
.bsa-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px;font-weight:500}
.bsa-field input[type=number]{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.bsa-field input[type=number]:focus{outline:none;border-color:#6366f1;background:var(--panel);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.bsa-btn{width:100%;height:48px;border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 6px 18px rgba(99,102,241,.35);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px}
.bsa-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(99,102,241,.45)}
.bsa-btn:active{transform:translateY(0)}

.bsa-result{display:grid;grid-template-columns:1fr 260px;gap:32px;padding:28px 34px;align-items:center;
  background:linear-gradient(135deg,var(--panel) 0%,rgba(99,102,241,.04) 100%);border-top:1px solid var(--line)}
.bsa-main-label{font-size:13px;color:var(--muted);margin-bottom:6px}
.bsa-main-value{font-size:42px;font-weight:800;color:#6366f1;line-height:1.1}
.bsa-main-value em{font-size:18px;font-weight:600;font-style:normal;margin-left:6px;color:var(--muted)}
.bsa-main-sub{font-size:13px;color:var(--muted);margin-top:8px}
.bsa-visual{text-align:center}
.bsa-visual-box{width:110px;height:110px;margin:0 auto 12px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 8px 24px rgba(99,102,241,.35);transition:.4s ease}
.bsa-visual-text{color:#fff;font-size:14px;font-weight:700}
.bsa-visual-tip{font-size:12px;color:var(--muted);line-height:1.5}

.bsa-formulas{max-width:1000px;margin:0 auto}
.bsa-formulas h2{font-size:19px;color:var(--fg);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.bsa-formulas h2 i{color:#6366f1}
.bsa-formulas-tip{color:var(--muted);font-size:13px;margin:0 0 16px}
.bsa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.bsa-card{background:var(--panel);border-radius:14px;padding:20px;box-shadow:0 2px 12px rgba(31,45,61,.06);
  border:1px solid var(--line);transition:.2s}
.bsa-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(99,102,241,.15);border-color:rgba(99,102,241,.3)}
.bsa-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.bsa-card-name{font-size:14px;color:var(--muted);font-weight:600}
.bsa-card-badge{font-size:11px;padding:2px 8px;border-radius:8px;background:rgba(99,102,241,.1);color:#6366f1;font-weight:500}
.bsa-card-val{font-size:24px;font-weight:800;color:#6366f1;margin-bottom:8px}
.bsa-card-desc{font-size:12px;color:var(--muted);line-height:1.7}
.bsa-card-desc sup{font-size:10px}
.bsa-note{margin-top:16px;padding:12px 16px;background:var(--hover);border-radius:10px;color:var(--muted);font-size:13px;line-height:1.7}
.bsa-note i{color:#6366f1;margin-right:5px}

@media (max-width:768px){
  .bsa-hero-inner{grid-template-columns:1fr;padding:24px 20px;gap:20px}
  .bsa-hero-text h2{font-size:21px}
  .bsa-result{grid-template-columns:1fr;padding:20px;gap:20px;text-align:center}
  .bsa-main-value{font-size:36px}
}
/* ===== 预产期计算器 yc- ===== */
.yc-hero{max-width:1000px;margin:0 auto 28px;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,rgba(236,72,153,.06) 0%,rgba(236,72,153,.03) 55%,rgba(99,102,241,.05) 100%);
  box-shadow:0 4px 20px rgba(236,72,153,.10);border:1px solid var(--line)}
.yc-hero-inner{display:grid;grid-template-columns:1fr 340px;gap:28px;padding:32px 34px;align-items:center}
.yc-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;
  background:var(--panel);color:#ec4899;font-size:13px;font-weight:600;box-shadow:0 2px 8px rgba(236,72,153,.15);margin-bottom:14px}
.yc-hero-text h2{font-size:26px;line-height:1.4;color:var(--fg);margin:0 0 12px;font-weight:700}
.yc-hero-text p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}

.yc-form{background:var(--panel);border-radius:14px;padding:22px 20px;box-shadow:0 6px 24px rgba(236,72,153,.12)}
.yc-field{margin-bottom:16px}
.yc-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px;font-weight:500}
.yc-field input[type=date]{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.yc-field input[type=date]:focus{outline:none;border-color:#ec4899;background:var(--panel);box-shadow:0 0 0 3px rgba(236,72,153,.12)}
.yc-select-wrap{position:relative}
.yc-select-wrap select{width:100%;height:44px;padding:0 36px 0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);appearance:none;-webkit-appearance:none;cursor:pointer;transition:.2s}
.yc-select-wrap select:focus{outline:none;border-color:#ec4899;background:var(--panel);box-shadow:0 0 0 3px rgba(236,72,153,.12)}
.yc-select-wrap i{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;pointer-events:none}
.yc-btn{width:100%;height:48px;border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#ec4899,#f472b6);box-shadow:0 6px 18px rgba(236,72,153,.35);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px}
.yc-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(236,72,153,.45)}
.yc-btn:active{transform:translateY(0)}

.yc-result{padding:28px 34px;background:linear-gradient(135deg,var(--panel) 0%,rgba(236,72,153,.03) 100%);border-top:1px solid var(--line)}
.yc-main{text-align:center;margin-bottom:26px}
.yc-main-label{font-size:13px;color:var(--muted);margin-bottom:8px}
.yc-main-value{font-size:34px;font-weight:800;color:#ec4899;line-height:1.2;letter-spacing:1px}
.yc-main-sub{font-size:14px;color:var(--muted);margin-top:8px}
.yc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}
.yc-stat{background:var(--panel);border-radius:14px;padding:18px;text-align:center;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(236,72,153,.06)}
.yc-stat-num{font-size:20px;font-weight:800;color:#ec4899;margin-bottom:6px}
.yc-stat-label{font-size:12px;color:var(--muted)}
.yc-progress-bar{height:10px;border-radius:6px;background:rgba(236,72,153,.15);overflow:hidden;position:relative}
.yc-progress-fill{display:block;height:100%;width:0;border-radius:6px;
  background:linear-gradient(90deg,#f472b6,#ec4899);transition:width .6s ease}
.yc-progress-marks{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;color:var(--muted)}

.yc-stages{max-width:1000px;margin:0 auto}
.yc-stages h2{font-size:19px;color:var(--fg);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.yc-stages h2 i{color:#ec4899}
.yc-stages-tip{color:var(--muted);font-size:13px;margin:0 0 16px}
.yc-stage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.yc-stage{background:var(--panel);border-radius:14px;padding:22px;border:1px solid var(--line);
  box-shadow:0 2px 12px rgba(31,45,61,.05);transition:.2s}
.yc-stage:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(236,72,153,.12)}
.yc-stage-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:22px;color:#fff;margin-bottom:14px}
.yc-stage-1 .yc-stage-icon{background:linear-gradient(135deg,#a78bfa,#c4b5fd)}
.yc-stage-2 .yc-stage-icon{background:linear-gradient(135deg,#f472b6,#f9a8d4)}
.yc-stage-3 .yc-stage-icon{background:linear-gradient(135deg,#ec4899,#f472b6)}
.yc-stage-name{font-size:16px;font-weight:700;color:var(--fg);margin-bottom:4px}
.yc-stage-range{font-size:13px;color:#ec4899;font-weight:600;margin-bottom:10px}
.yc-stage-desc{font-size:13px;color:var(--muted);line-height:1.7}
.yc-note{margin-top:16px;padding:12px 16px;background:var(--hover);border-radius:10px;color:var(--muted);font-size:13px;line-height:1.7}
.yc-note i{color:#ec4899;margin-right:5px}

@media (max-width:768px){
  .yc-hero-inner{grid-template-columns:1fr;padding:24px 20px;gap:20px}
  .yc-hero-text h2{font-size:21px}
  .yc-result{padding:22px 20px}
  .yc-main-value{font-size:27px}
  .yc-stats{grid-template-columns:1fr;gap:12px}
}
/* ===== 安全期计算器 aq- ===== */
.aq-hero{max-width:1000px;margin:0 auto 28px;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,rgba(139,92,246,.06) 0%,rgba(139,92,246,.03) 55%,rgba(14,165,233,.05) 100%);
  box-shadow:0 4px 20px rgba(139,92,246,.10);border:1px solid var(--line)}
.aq-hero-inner{display:grid;grid-template-columns:1fr 340px;gap:28px;padding:32px 34px;align-items:center}
.aq-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;
  background:var(--panel);color:#8b5cf6;font-size:13px;font-weight:600;box-shadow:0 2px 8px rgba(139,92,246,.15);margin-bottom:14px}
.aq-hero-text h2{font-size:26px;line-height:1.4;color:var(--fg);margin:0 0 12px;font-weight:700}
.aq-hero-text p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}

.aq-form{background:var(--panel);border-radius:14px;padding:22px 20px;box-shadow:0 6px 24px rgba(139,92,246,.12)}
.aq-field{margin-bottom:16px}
.aq-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px;font-weight:500}
.aq-field input[type=date]{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.aq-field input[type=date]:focus{outline:none;border-color:#8b5cf6;background:var(--panel);box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.aq-select-wrap{position:relative}
.aq-select-wrap select{width:100%;height:44px;padding:0 36px 0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);appearance:none;-webkit-appearance:none;cursor:pointer;transition:.2s}
.aq-select-wrap select:focus{outline:none;border-color:#8b5cf6;background:var(--panel);box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.aq-select-wrap i{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;pointer-events:none}
.aq-btn{width:100%;height:48px;border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#8b5cf6,#a78bfa);box-shadow:0 6px 18px rgba(139,92,246,.35);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px}
.aq-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(139,92,246,.45)}
.aq-btn:active{transform:translateY(0)}

.aq-result{padding:26px 34px;background:linear-gradient(135deg,var(--panel) 0%,rgba(139,92,246,.03) 100%);border-top:1px solid var(--line)}
.aq-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}
.aq-card{border-radius:14px;padding:18px 20px;border:1px solid var(--line);background:var(--panel);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.aq-card-label{font-size:12px;color:var(--muted);margin-bottom:8px}
.aq-card-val{font-size:15px;font-weight:700;line-height:1.5}
.aq-card-ovu .aq-card-val{color:#8b5cf6}
.aq-card-danger .aq-card-val{color:#ef4444}
.aq-card-safe .aq-card-val{color:#22c55e}
.aq-card-ovu{border-color:rgba(139,92,246,.3);background:linear-gradient(135deg,rgba(139,92,246,.08),var(--panel))}
.aq-card-danger{border-color:rgba(239,68,68,.3);background:linear-gradient(135deg,rgba(239,68,68,.06),var(--panel))}
.aq-card-safe{border-color:rgba(34,197,94,.3);background:linear-gradient(135deg,rgba(34,197,94,.06),var(--panel))}

.aq-legend{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:18px;font-size:13px;color:var(--fg)}
.aq-legend-item{display:flex;align-items:center;gap:6px}
.aq-dot{width:12px;height:12px;border-radius:4px;display:inline-block}
.aq-dot-period{background:#f472b6}
.aq-dot-safe{background:#86efac}
.aq-dot-danger{background:#fca5a5}
.aq-dot-ovu{background:#8b5cf6}

.aq-calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.aq-month{background:var(--panel);border-radius:14px;padding:16px;border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.04)}
.aq-month-title{font-size:14px;font-weight:700;color:var(--fg);text-align:center;margin-bottom:12px}
.aq-table{width:100%;border-collapse:collapse;font-size:12px}
.aq-table th{color:var(--muted);font-weight:500;padding:5px 0;font-size:11px}
.aq-table td{text-align:center;padding:6px 0;color:var(--fg);border-radius:6px;transition:.15s}
.aq-table td.aq-empty{color:transparent}
.aq-d-period{background:rgba(236,72,153,.15);color:#db2777;font-weight:700}
.aq-d-safe{background:rgba(34,197,94,.15);color:#16a34a}
.aq-d-danger{background:rgba(239,68,68,.15);color:#dc2626;font-weight:600}
.aq-d-ovu{background:#8b5cf6;color:#fff;font-weight:700;box-shadow:0 2px 8px rgba(139,92,246,.4)}
.aq-today{outline:2px solid #8b5cf6;outline-offset:-2px}

.aq-note-wrap{max-width:1000px;margin:0 auto}
.aq-note-wrap h2{font-size:19px;color:var(--fg);margin:0 0 14px;display:flex;align-items:center;gap:8px}
.aq-note-wrap h2 i{color:#8b5cf6}
.aq-note-list{list-style:none;padding:0;margin:0;background:var(--panel);border-radius:14px;padding:22px 26px;
  border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.05)}
.aq-note-list li{position:relative;padding-left:20px;margin-bottom:12px;color:var(--fg);font-size:14px;line-height:1.8}
.aq-note-list li:last-child{margin-bottom:0}
.aq-note-list li::before{content:'';position:absolute;left:0;top:10px;width:7px;height:7px;border-radius:50%;background:#8b5cf6}
.aq-note-list b{color:#8b5cf6}

@media (max-width:768px){
  .aq-hero-inner{grid-template-columns:1fr;padding:24px 20px;gap:20px}
  .aq-hero-text h2{font-size:21px}
  .aq-result{padding:20px}
  .aq-cards{grid-template-columns:1fr;gap:12px}
  .aq-calendar{grid-template-columns:1fr}
}

/* ===== 安全期计算器 日历布局修正 ===== */
.aq-table{table-layout:fixed;border-collapse:separate;border-spacing:4px 4px}
.aq-table th,.aq-table td{width:14.28%;box-sizing:border-box}
.aq-table td{height:34px;line-height:34px;padding:0}
.aq-table td.aq-empty{background:transparent}
.aq-month{overflow:hidden}

/* ===== 养生时间对照表 ys- ===== */
.ys-hero{max-width:1000px;margin:0 auto 28px;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,rgba(34,197,94,.06) 0%,rgba(34,197,94,.03) 55%,rgba(245,158,11,.05) 100%);
  box-shadow:0 4px 20px rgba(34,197,94,.10);border:1px solid var(--line)}
.ys-hero-inner{display:grid;grid-template-columns:1fr 300px;gap:28px;padding:32px 34px;align-items:center}
.ys-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;
  background:var(--panel);color:#16a34a;font-size:13px;font-weight:600;box-shadow:0 2px 8px rgba(34,197,94,.15);margin-bottom:14px}
.ys-hero-text h2{font-size:26px;line-height:1.4;color:var(--fg);margin:0 0 12px;font-weight:700}
.ys-hero-text p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}

.ys-now{background:var(--panel);border-radius:14px;padding:22px;text-align:center;
  box-shadow:0 6px 24px rgba(34,197,94,.14);border:1px solid var(--line)}
.ys-now-label{font-size:12px;color:var(--muted);margin-bottom:8px}
.ys-now-shichen{font-size:34px;font-weight:800;color:#16a34a;line-height:1.1;letter-spacing:2px}
.ys-now-hour{font-size:14px;color:var(--muted);margin-top:6px}
.ys-now-tip{display:inline-block;margin-top:12px;padding:6px 14px;border-radius:20px;
  background:rgba(34,197,94,.1);color:#16a34a;font-size:13px;font-weight:600}

.ys-list{max-width:1000px;margin:0 auto}
.ys-list h2{font-size:19px;color:var(--fg);margin:0 0 20px;display:flex;align-items:center;gap:8px}
.ys-list h2 i{color:#16a34a}
.ys-timeline{position:relative}
.ys-item{display:grid;grid-template-columns:120px 30px 1fr;gap:14px;align-items:start;margin-bottom:14px;position:relative}
.ys-item-time{text-align:right;padding-top:18px}
.ys-item-shichen{display:block;font-size:16px;font-weight:700;color:#16a34a;letter-spacing:1px}
.ys-item-hour{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.ys-item-line{position:relative;display:flex;justify-content:center;padding-top:24px}
.ys-item-line::before{content:'';position:absolute;top:0;bottom:-14px;width:2px;background:rgba(34,197,94,.2)}
.ys-item:last-child .ys-item-line::before{display:none}
.ys-item-dot{width:14px;height:14px;border-radius:50%;background:var(--panel);border:3px solid #16a34a;z-index:2;position:relative;transition:.2s}
.ys-item-body{background:var(--panel);border-radius:14px;padding:18px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.04);transition:.2s}
.ys-item-body:hover{border-color:rgba(34,197,94,.4);box-shadow:0 4px 16px rgba(34,197,94,.12)}
.ys-item-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.ys-item-title{font-size:17px;font-weight:700;color:var(--fg)}
.ys-item-tag{font-size:12px;padding:3px 10px;border-radius:10px;background:rgba(34,197,94,.1);color:#16a34a;font-weight:600;white-space:nowrap}
.ys-item-tip{font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:10px}
.ys-item-action{font-size:13px;color:#16a34a;font-weight:600;display:flex;align-items:center;gap:6px}
.ys-item-action i{color:#f59e0b}

.ys-item.on .ys-item-body{border-color:#16a34a;box-shadow:0 6px 22px rgba(34,197,94,.22);background:linear-gradient(135deg,rgba(34,197,94,.08),var(--panel))}
.ys-item.on .ys-item-dot{background:#16a34a;box-shadow:0 0 0 6px rgba(34,197,94,.18)}
.ys-item.on .ys-item-title{color:#16a34a}

.ys-note-wrap{max-width:1000px;margin:28px auto 0}
.ys-note-wrap h2{font-size:19px;color:var(--fg);margin:0 0 14px;display:flex;align-items:center;gap:8px}
.ys-note-wrap h2 i{color:#16a34a}
.ys-note-list{list-style:none;padding:22px 26px;margin:0;background:var(--panel);border-radius:14px;
  border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.05)}
.ys-note-list li{position:relative;padding-left:20px;margin-bottom:12px;color:var(--fg);font-size:14px;line-height:1.8}
.ys-note-list li:last-child{margin-bottom:0}
.ys-note-list li::before{content:'';position:absolute;left:0;top:10px;width:7px;height:7px;border-radius:50%;background:#16a34a}

@media (max-width:768px){
  .ys-hero-inner{grid-template-columns:1fr;padding:24px 20px;gap:20px}
  .ys-hero-text h2{font-size:21px}
  .ys-now-shichen{font-size:28px}
  .ys-item{grid-template-columns:82px 24px 1fr;gap:8px}
  .ys-item-shichen{font-size:14px}
  .ys-item-hour{font-size:11px}
  .ys-item-body{padding:14px 16px}
  .ys-item-title{font-size:15px}
  .ys-note-list{padding:18px 20px}
}

/* ===== 最强眼力 yl- ===== */
.yl-game{max-width:640px;margin:0 auto}
.yl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.yl-stat{background:var(--panel);border-radius:12px;padding:14px 10px;text-align:center;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.yl-stat-label{font-size:12px;color:var(--muted);margin-bottom:6px}
.yl-stat-val{font-size:20px;font-weight:800;color:#6366f1}
.yl-board-wrap{position:relative;border-radius:18px;overflow:hidden;
  box-shadow:0 8px 30px rgba(99,102,241,.15);border:1px solid var(--line);background:var(--panel)}
.yl-board{display:grid;gap:6px;padding:6px;aspect-ratio:1/1;width:100%;background:var(--hover)}
.yl-cell{border:none;border-radius:8px;cursor:pointer;padding:0;transition:transform .12s,box-shadow .12s;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}
.yl-cell:hover{transform:scale(.96);box-shadow:inset 0 0 0 2px rgba(255,255,255,.5)}
.yl-cell.yl-wrong{animation:ylShake .4s;box-shadow:inset 0 0 0 3px #ef4444 !important}
@keyframes ylShake{
  0%,100%{transform:translateX(0)}
  25%{transform:translateX(-5px)}
  75%{transform:translateX(5px)}
}
.yl-overlay{position:absolute;inset:0;background:rgba(31,41,55,.72);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:20px;z-index:5}
.yl-overlay[hidden]{display:none}
.yl-overlay-card{background:var(--panel);border-radius:18px;padding:32px 28px;text-align:center;max-width:340px;width:100%;
  box-shadow:0 20px 50px rgba(0,0,0,.25)}
.yl-overlay-icon{font-size:48px;margin-bottom:12px}
.yl-overlay-title{font-size:22px;font-weight:800;color:var(--fg);margin-bottom:10px}
.yl-overlay-desc{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:22px}
.yl-overlay-desc b{color:#6366f1}
.yl-overlay-btn{width:100%;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 6px 18px rgba(99,102,241,.35);transition:.2s}
.yl-overlay-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(99,102,241,.45)}
.yl-tips{margin-top:18px;text-align:center}
.yl-tips p{font-size:13px;color:var(--muted)}
.yl-tips i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .yl-stats{gap:8px}
  .yl-stat{padding:10px 6px}
  .yl-stat-val{font-size:17px}
  .yl-board{gap:4px;padding:4px}
  .yl-cell{border-radius:6px}
  .yl-overlay-card{padding:26px 20px}
}

/* ===== 最强眼力 尺寸修正 ===== */
.yl-game{max-width:640px;margin:0 auto}
.yl-board-wrap{max-width:560px;margin:0 auto}
.yl-board{
  max-width:560px;
  max-height:calc(100vh - 300px);
  aspect-ratio:1/1;
  margin:0 auto;
}
@media (max-width:768px){
  .yl-board{max-height:calc(100vh - 260px)}
}

/* ===== 读心术 dx- ===== */
.dx-wrap{max-width:640px;margin:0 auto}
.dx-steps{display:grid;gap:12px;margin-bottom:28px}
.dx-step{display:flex;align-items:center;gap:14px;background:var(--panel);border-radius:12px;padding:14px 18px;
  border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.04)}
.dx-step-num{width:28px;height:28px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#8b5cf6,#a78bfa);color:#fff;font-size:14px;font-weight:700}
.dx-step-text{font-size:14px;color:var(--muted);line-height:1.6}
.dx-step-text b{color:#8b5cf6}

.dx-ball-area{display:flex;flex-direction:column;align-items:center;gap:18px;margin:36px 0}
.dx-ball{position:relative;width:180px;height:180px;border:none;background:transparent;cursor:pointer;padding:0;
  transition:transform .2s}
.dx-ball:hover{transform:scale(1.05)}
.dx-ball:active{transform:scale(.97)}
.dx-ball-inner{position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#c4b5fd 0%,#8b5cf6 45%,#5b21b6 100%);
  box-shadow:0 12px 40px rgba(139,92,246,.45),inset 0 -12px 30px rgba(0,0,0,.25),inset 0 12px 24px rgba(255,255,255,.3)}
.dx-ball-shine{position:absolute;top:16%;left:22%;width:34%;height:26%;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.85),rgba(255,255,255,0) 70%);filter:blur(2px)}
.dx-ball-base{position:absolute;bottom:-14px;left:50%;transform:translateX(-50%);width:120px;height:26px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(91,33,182,.45),rgba(91,33,182,0) 70%);filter:blur(4px)}
.dx-ball.dx-thinking .dx-ball-inner{animation:dxPulse 1s ease-in-out infinite}
@keyframes dxPulse{
  0%,100%{box-shadow:0 12px 40px rgba(139,92,246,.45),inset 0 -12px 30px rgba(0,0,0,.25),inset 0 12px 24px rgba(255,255,255,.3)}
  50%{box-shadow:0 12px 60px rgba(139,92,246,.85),inset 0 -12px 30px rgba(0,0,0,.25),inset 0 12px 24px rgba(255,255,255,.5)}
}
.dx-ball-hint{font-size:14px;color:var(--muted)}

.dx-result{text-align:center;background:var(--panel);border-radius:18px;padding:32px 24px;margin-top:8px;
  border:1px solid var(--line);box-shadow:0 8px 28px rgba(139,92,246,.12);animation:dxFadeIn .5s}
@keyframes dxFadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.dx-result-label{font-size:14px;color:var(--muted);margin-bottom:12px}
.dx-result-num{font-size:72px;font-weight:900;line-height:1;
  background:linear-gradient(135deg,#8b5cf6,#ec4899);-webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:14px}
.dx-result-tip{font-size:14px;color:var(--muted);margin-bottom:22px}
.dx-again{height:44px;padding:0 28px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#8b5cf6,#a78bfa);box-shadow:0 6px 18px rgba(139,92,246,.35);transition:.2s;
  display:inline-flex;align-items:center;gap:8px}
.dx-again:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(139,92,246,.45)}

.dx-note-wrap{max-width:640px;margin:32px auto 0}
.dx-note-wrap h2{font-size:18px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.dx-note-wrap h2 i{color:#f59e0b}
.dx-note{background:var(--panel);border-radius:14px;padding:20px 24px;color:var(--muted);font-size:14px;line-height:1.9;
  border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.05);margin:0}
.dx-note b{color:#8b5cf6}

@media (max-width:768px){
  .dx-ball{width:150px;height:150px}
  .dx-result-num{font-size:58px}
  .dx-result{padding:26px 20px}
}
/* ===== 速度打字机强制修复 ===== */

.dz-stats{display:grid !important;grid-template-columns:repeat(4,1fr) !important;gap:12px !important;margin-bottom:22px !important}
.dz-stat{background:var(--panel) !important;border-radius:12px !important;padding:14px 10px !important;text-align:center !important;border:1px solid var(--line) !important;box-shadow:0 2px 10px rgba(31,45,61,.05) !important}
.dz-stat-label{font-size:12px !important;color:var(--muted) !important;margin-bottom:6px !important}
.dz-stat-val{font-size:20px !important;font-weight:800 !important;color:#0ea5e9 !important}
.dz-board-wrap{background:var(--panel) !important;border-radius:16px !important;padding:28px 26px !important;border:1px solid var(--line) !important;box-shadow:0 4px 18px rgba(31,45,61,.06) !important;margin-bottom:18px !important}
.dz-target{font-size:26px !important;font-weight:700 !important;color:var(--fg) !important;text-align:center !important;line-height:1.6 !important;letter-spacing:2px !important;min-height:70px !important;display:flex !important;align-items:center !important;justify-content:center !important;margin-bottom:20px !important;word-break:break-all !important}
.dz-input{width:100% !important;height:52px !important;padding:0 18px !important;border:2px solid var(--line) !important;border-radius:12px !important;font-size:18px !important;color:var(--fg) !important;background:var(--bg) !important;box-sizing:border-box !important;letter-spacing:1px !important;text-align:center !important}
.dz-input:focus{outline:none !important;border-color:#0ea5e9 !important;background:var(--panel) !important;box-shadow:0 0 0 4px rgba(14,165,233,.12) !important}
.dz-input:disabled{background:var(--hover) !important;color:var(--muted) !important;cursor:not-allowed !important}
.dz-progress{height:8px !important;border-radius:5px !important;background:var(--line) !important;overflow:hidden !important;margin-top:16px !important}
.dz-progress-fill{display:block !important;height:100% !important;width:0 !important;border-radius:5px !important;background:linear-gradient(90deg,#0ea5e9,#38bdf8) !important}
.dz-actions{display:flex !important;gap:12px !important;justify-content:center !important;margin-bottom:16px !important;flex-wrap:wrap !important}
.dz-btn{height:48px !important;padding:0 32px !important;border:none !important;border-radius:12px !important;cursor:pointer !important;font-size:16px !important;font-weight:700 !important;color:#fff !important;background:linear-gradient(135deg,#0ea5e9,#38bdf8) !important;box-shadow:0 6px 18px rgba(14,165,233,.32) !important;display:inline-flex !important;align-items:center !important;gap:8px !important;width:auto !important}
.dz-btn-ghost{background:var(--panel) !important;color:var(--muted) !important;border:1px solid var(--line) !important;box-shadow:none !important}
.dz-tips{text-align:center !important}
.dz-tips p{font-size:13px !important;color:var(--muted) !important}
.dz-result{background:var(--panel) !important;border-radius:16px !important;padding:28px 26px !important;border:1px solid var(--line) !important;box-shadow:0 4px 18px rgba(31,45,61,.06) !important}
.dz-result h2{font-size:19px !important;color:var(--fg) !important;margin:0 0 20px !important;display:flex !important;align-items:center !important;gap:8px !important}
.dz-result-grid{display:grid !important;grid-template-columns:repeat(4,1fr) !important;gap:14px !important;margin-bottom:18px !important}
.dz-result-item{text-align:center !important;padding:18px 10px !important;background:var(--hover) !important;border-radius:12px !important}
.dz-result-num{font-size:28px !important;font-weight:800 !important;color:#0ea5e9 !important;margin-bottom:6px !important}
.dz-result-label{font-size:12px !important;color:var(--muted) !important}
.dz-result-tip{text-align:center !important;font-size:14px !important;color:#0ea5e9 !important;font-weight:600 !important;margin:0 !important}

@media (max-width:768px){
  .dz-stats{grid-template-columns:repeat(4,1fr) !important;gap:8px !important}
  .dz-stat{padding:10px 6px !important}
  .dz-stat-val{font-size:16px !important}
  .dz-target{font-size:20px !important;min-height:56px !important;letter-spacing:1px !important}
  .dz-input{font-size:16px !important;height:48px !important}
  .dz-board-wrap{padding:20px 16px !important}
  .dz-actions{flex-direction:column !important}
  .dz-btn{width:100% !important;justify-content:center !important}
  .dz-result-grid{grid-template-columns:repeat(2,1fr) !important}
  .dz-result-num{font-size:24px !important}
}

/* ===== 抑郁症测试题 SDS sds- ===== */
.sds-intro{max-width:680px;margin:0 auto}
.sds-intro-card{background:var(--panel);border-radius:18px;padding:38px 34px;text-align:center;
  border:1px solid var(--line);box-shadow:0 6px 26px rgba(31,45,61,.07)}
.sds-intro-icon{width:64px;height:64px;margin:0 auto 18px;border-radius:18px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#0ea5e9,#38bdf8);color:#fff;font-size:28px;box-shadow:0 8px 22px rgba(14,165,233,.32)}
.sds-intro-card h2{font-size:22px;color:var(--fg);margin:0 0 14px;font-weight:700}
.sds-intro-card p{font-size:14px;color:var(--muted);line-height:1.9;margin:0 0 20px}
.sds-scale{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:26px}
.sds-scale span{font-size:12px;color:var(--muted);padding:8px 4px;background:var(--hover);border-radius:8px}
.sds-btn{height:50px;padding:0 36px;border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#0ea5e9,#38bdf8);box-shadow:0 6px 18px rgba(14,165,233,.32);transition:.2s;
  display:inline-flex;align-items:center;gap:8px}
.sds-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(14,165,233,.45)}
.sds-warn{margin:22px 0 0;font-size:12.5px;color:#f59e0b;line-height:1.7}
.sds-warn i{margin-right:4px}

.sds-test{max-width:680px;margin:0 auto}
.sds-progress{margin-bottom:26px}
.sds-progress-bar{height:8px;border-radius:5px;background:var(--line);overflow:hidden}
.sds-progress-fill{display:block;height:100%;width:0;border-radius:5px;
  background:linear-gradient(90deg,#0ea5e9,#38bdf8);transition:width .3s}
.sds-progress-text{text-align:right;font-size:13px;color:var(--muted);margin-top:8px}
.sds-progress-text b{color:#0ea5e9}
.sds-q{font-size:20px;font-weight:600;color:var(--fg);line-height:1.6;margin-bottom:24px;padding:24px 26px;
  background:var(--panel);border-radius:14px;border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.05);min-height:96px;
  display:flex;align-items:center}
.sds-options{display:grid;gap:12px;margin-bottom:24px}
.sds-opt{display:flex;align-items:center;gap:12px;padding:16px 20px;border:2px solid var(--line);border-radius:12px;
  background:var(--panel);cursor:pointer;font-size:15px;color:var(--fg);text-align:left;transition:.18s;font-family:inherit}
.sds-opt:hover{border-color:rgba(14,165,233,.4);background:rgba(14,165,233,.06)}
.sds-opt.on{border-color:#0ea5e9;background:linear-gradient(135deg,rgba(14,165,233,.08),var(--panel));color:#0284c7;font-weight:600;
  box-shadow:0 4px 14px rgba(14,165,233,.14)}
.sds-opt-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);flex-shrink:0;transition:.18s;position:relative}
.sds-opt.on .sds-opt-dot{border-color:#0ea5e9;background:#0ea5e9}
.sds-opt.on .sds-opt-dot::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--panel)}
.sds-nav{display:flex;justify-content:space-between;gap:12px}
.sds-nav-btn{height:46px;padding:0 24px;border-radius:12px;cursor:pointer;font-size:15px;font-weight:600;
  border:1px solid var(--line);background:var(--panel);color:var(--muted);transition:.2s;display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.sds-nav-btn:hover:not(:disabled){border-color:var(--line);color:#0ea5e9}
.sds-nav-btn:disabled{opacity:.45;cursor:not-allowed}
.sds-nav-next{background:linear-gradient(135deg,#0ea5e9,#38bdf8);color:#fff;border:none;
  box-shadow:0 6px 16px rgba(14,165,233,.3)}
.sds-nav-next:hover{color:#fff;transform:translateY(-1px);box-shadow:0 8px 22px rgba(14,165,233,.42)}

.sds-result{max-width:680px;margin:0 auto}
.sds-result-card{background:var(--panel);border-radius:18px;padding:38px 34px;text-align:center;
  border:1px solid var(--line);box-shadow:0 6px 26px rgba(31,45,61,.07)}
.sds-result-ring{width:160px;height:160px;margin:0 auto 22px;border-radius:50%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;transition:.3s}
.sds-ring-ok{background:radial-gradient(circle at 35% 30%,rgba(16,185,129,.25),rgba(16,185,129,.5));box-shadow:0 10px 30px rgba(16,185,129,.3)}
.sds-ring-mild{background:radial-gradient(circle at 35% 30%,rgba(245,158,11,.25),rgba(245,158,11,.5));box-shadow:0 10px 30px rgba(245,158,11,.3)}
.sds-ring-mid{background:radial-gradient(circle at 35% 30%,rgba(249,115,22,.25),rgba(249,115,22,.5));box-shadow:0 10px 30px rgba(249,115,22,.3)}
.sds-ring-high{background:radial-gradient(circle at 35% 30%,rgba(239,68,68,.25),rgba(239,68,68,.5));box-shadow:0 10px 30px rgba(239,68,68,.3)}
.sds-result-score{font-size:46px;font-weight:900;color:var(--fg);line-height:1}
.sds-result-unit{font-size:13px;color:var(--fg);margin-top:4px}
.sds-result-level{font-size:24px;font-weight:800;margin-bottom:14px}
.sds-lv-ok{color:#10b981}
.sds-lv-mild{color:#f59e0b}
.sds-lv-mid{color:#f97316}
.sds-lv-high{color:#ef4444}
.sds-result-desc{font-size:14px;color:var(--muted);line-height:1.9;margin:0 auto 20px;max-width:480px}
.sds-result-detail{display:inline-flex;gap:24px;padding:12px 24px;background:var(--hover);border-radius:12px;
  font-size:13px;color:var(--muted);margin-bottom:22px}
.sds-result-detail b{color:#0ea5e9}
.sds-result-actions{margin-bottom:8px}
.sds-levels{background:var(--panel);border-radius:16px;padding:24px 28px;margin-top:24px;
  border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.05)}
.sds-levels h3{font-size:16px;color:var(--fg);margin:0 0 14px;display:flex;align-items:center;gap:8px}
.sds-levels h3 i{color:#0ea5e9}
.sds-levels ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.sds-levels li{font-size:13.5px;color:var(--muted);padding:12px 16px;background:var(--hover);border-radius:10px;line-height:1.5}
.sds-levels li b{color:#0ea5e9;display:block;margin-bottom:2px}

@media (max-width:768px){
  .sds-intro-card,.sds-result-card{padding:28px 20px}
  .sds-intro-card h2{font-size:19px}
  .sds-scale{grid-template-columns:repeat(2,1fr)}
  .sds-q{font-size:17px;padding:18px 18px;min-height:80px}
  .sds-opt{padding:14px 16px;font-size:14px}
  .sds-nav-btn{padding:0 16px;font-size:14px}
  .sds-result-score{font-size:38px}
  .sds-result-level{font-size:20px}
  .sds-result-detail{flex-direction:column;gap:8px;align-items:center}
}
/* ===== 焦虑症测试题 SAS sas- ===== */
.sas-intro{max-width:680px;margin:0 auto}
.sas-intro-card{background:var(--panel);border-radius:18px;padding:38px 34px;text-align:center;
  border:1px solid var(--line);box-shadow:0 6px 26px rgba(31,45,61,.07)}
.sas-intro-icon{width:64px;height:64px;margin:0 auto 18px;border-radius:18px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#f97316,#fb923c);color:#fff;font-size:28px;box-shadow:0 8px 22px rgba(249,115,22,.32)}
.sas-intro-card h2{font-size:22px;color:var(--fg);margin:0 0 14px;font-weight:700}
.sas-intro-card p{font-size:14px;color:var(--muted);line-height:1.9;margin:0 0 20px}
.sas-scale{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:26px}
.sas-scale span{font-size:12px;color:var(--muted);padding:8px 4px;background:var(--hover);border-radius:8px}
.sas-btn{height:50px;padding:0 36px;border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#f97316,#fb923c);box-shadow:0 6px 18px rgba(249,115,22,.32);transition:.2s;
  display:inline-flex;align-items:center;gap:8px}
.sas-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(249,115,22,.45)}
.sas-warn{margin:22px 0 0;font-size:12.5px;color:#f59e0b;line-height:1.7}
.sas-warn i{margin-right:4px}

.sas-test{max-width:680px;margin:0 auto}
.sas-progress{margin-bottom:26px}
.sas-progress-bar{height:8px;border-radius:5px;background:var(--line);overflow:hidden}
.sas-progress-fill{display:block;height:100%;width:0;border-radius:5px;
  background:linear-gradient(90deg,#f97316,#fb923c);transition:width .3s}
.sas-progress-text{text-align:right;font-size:13px;color:var(--muted);margin-top:8px}
.sas-progress-text b{color:#f97316}
.sas-q{font-size:20px;font-weight:600;color:var(--fg);line-height:1.6;margin-bottom:24px;padding:24px 26px;
  background:var(--panel);border-radius:14px;border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.05);min-height:96px;
  display:flex;align-items:center}
.sas-options{display:grid;gap:12px;margin-bottom:24px}
.sas-opt{display:flex;align-items:center;gap:12px;padding:16px 20px;border:2px solid var(--line);border-radius:12px;
  background:var(--panel);cursor:pointer;font-size:15px;color:var(--fg);text-align:left;transition:.18s;font-family:inherit}
.sas-opt:hover{border-color:rgba(249,115,22,.4);background:rgba(249,115,22,.06)}
.sas-opt.on{border-color:#f97316;background:linear-gradient(135deg,rgba(249,115,22,.08),var(--panel));color:#ea580c;font-weight:600;
  box-shadow:0 4px 14px rgba(249,115,22,.14)}
.sas-opt-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);flex-shrink:0;transition:.18s;position:relative}
.sas-opt.on .sas-opt-dot{border-color:#f97316;background:#f97316}
.sas-opt.on .sas-opt-dot::after{content:'';position:absolute;inset:3px;border-radius:50%;background:var(--panel)}
.sas-nav{display:flex;justify-content:space-between;gap:12px}
.sas-nav-btn{height:46px;padding:0 24px;border-radius:12px;cursor:pointer;font-size:15px;font-weight:600;
  border:1px solid var(--line);background:var(--panel);color:var(--muted);transition:.2s;display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.sas-nav-btn:hover:not(:disabled){border-color:var(--line);color:#f97316}
.sas-nav-btn:disabled{opacity:.45;cursor:not-allowed}
.sas-nav-next{background:linear-gradient(135deg,#f97316,#fb923c);color:#fff;border:none;
  box-shadow:0 6px 16px rgba(249,115,22,.3)}
.sas-nav-next:hover{color:#fff;transform:translateY(-1px);box-shadow:0 8px 22px rgba(249,115,22,.42)}

.sas-result{max-width:680px;margin:0 auto}
.sas-result-card{background:var(--panel);border-radius:18px;padding:38px 34px;text-align:center;
  border:1px solid var(--line);box-shadow:0 6px 26px rgba(31,45,61,.07)}
.sas-result-ring{width:160px;height:160px;margin:0 auto 22px;border-radius:50%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;transition:.3s}
.sas-ring-ok{background:radial-gradient(circle at 35% 30%,rgba(16,185,129,.25),rgba(16,185,129,.5));box-shadow:0 10px 30px rgba(16,185,129,.3)}
.sas-ring-mild{background:radial-gradient(circle at 35% 30%,rgba(245,158,11,.25),rgba(245,158,11,.5));box-shadow:0 10px 30px rgba(245,158,11,.3)}
.sas-ring-mid{background:radial-gradient(circle at 35% 30%,rgba(249,115,22,.25),rgba(249,115,22,.5));box-shadow:0 10px 30px rgba(249,115,22,.3)}
.sas-ring-high{background:radial-gradient(circle at 35% 30%,rgba(239,68,68,.25),rgba(239,68,68,.5));box-shadow:0 10px 30px rgba(239,68,68,.3)}
.sas-result-score{font-size:46px;font-weight:900;color:var(--fg);line-height:1}
.sas-result-unit{font-size:13px;color:var(--fg);margin-top:4px}
.sas-result-level{font-size:24px;font-weight:800;margin-bottom:14px}
.sas-lv-ok{color:#10b981}
.sas-lv-mild{color:#f59e0b}
.sas-lv-mid{color:#f97316}
.sas-lv-high{color:#ef4444}
.sas-result-desc{font-size:14px;color:var(--muted);line-height:1.9;margin:0 auto 20px;max-width:480px}
.sas-result-detail{display:inline-flex;gap:24px;padding:12px 24px;background:var(--hover);border-radius:12px;
  font-size:13px;color:var(--muted);margin-bottom:22px}
.sas-result-detail b{color:#f97316}
.sas-result-actions{margin-bottom:8px}
.sas-levels{background:var(--panel);border-radius:16px;padding:24px 28px;margin-top:24px;
  border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.05)}
.sas-levels h3{font-size:16px;color:var(--fg);margin:0 0 14px;display:flex;align-items:center;gap:8px}
.sas-levels h3 i{color:#f97316}
.sas-levels ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.sas-levels li{font-size:13.5px;color:var(--muted);padding:12px 16px;background:var(--hover);border-radius:10px;line-height:1.5}
.sas-levels li b{color:#f97316;display:block;margin-bottom:2px}

@media (max-width:768px){
  .sas-intro-card,.sas-result-card{padding:28px 20px}
  .sas-intro-card h2{font-size:19px}
  .sas-scale{grid-template-columns:repeat(2,1fr)}
  .sas-q{font-size:17px;padding:18px 18px;min-height:80px}
  .sas-opt{padding:14px 16px;font-size:14px}
  .sas-nav-btn{padding:0 16px;font-size:14px}
  .sas-result-score{font-size:38px}
  .sas-result-level{font-size:20px}
  .sas-result-detail{flex-direction:column;gap:8px;align-items:center}
}

/* ===== 双相情感障碍筛查 MDQ mdq- ===== */
.mdq-intro{max-width:680px;margin:0 auto}
.mdq-intro-card{background:var(--panel);border-radius:18px;padding:38px 34px;text-align:center;
  border:1px solid var(--line);box-shadow:0 6px 26px rgba(31,45,61,.07)}
.mdq-intro-icon{width:64px;height:64px;margin:0 auto 18px;border-radius:18px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#8b5cf6,#a78bfa);color:#fff;font-size:28px;box-shadow:0 8px 22px rgba(139,92,246,.32)}
.mdq-intro-card h2{font-size:22px;color:var(--fg);margin:0 0 14px;font-weight:700}
.mdq-intro-card p{font-size:14px;color:var(--muted);line-height:1.9;margin:0 0 20px}
.mdq-rule{display:grid;gap:10px;margin-bottom:26px;text-align:left}
.mdq-rule-item{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--muted);padding:12px 16px;
  background:var(--hover);border-radius:10px}
.mdq-rule-item i{color:#22c55e;font-size:14px}
.mdq-btn{height:50px;padding:0 36px;border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#8b5cf6,#a78bfa);box-shadow:0 6px 18px rgba(139,92,246,.32);transition:.2s;
  display:inline-flex;align-items:center;gap:8px}
.mdq-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(139,92,246,.45)}
.mdq-warn{margin:22px 0 0;font-size:12.5px;color:#f59e0b;line-height:1.7}
.mdq-warn i{margin-right:4px}

.mdq-test{max-width:680px;margin:0 auto}
.mdq-progress{margin-bottom:26px}
.mdq-progress-bar{height:8px;border-radius:5px;background:var(--line);overflow:hidden}
.mdq-progress-fill{display:block;height:100%;width:0;border-radius:5px;
  background:linear-gradient(90deg,#8b5cf6,#a78bfa);transition:width .3s}
.mdq-progress-text{text-align:right;font-size:13px;color:var(--muted);margin-top:8px}
.mdq-progress-text b{color:#8b5cf6}
.mdq-q{font-size:19px;font-weight:600;color:var(--fg);line-height:1.7;margin-bottom:24px;padding:24px 26px;
  background:var(--panel);border-radius:14px;border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.05);min-height:110px;
  display:flex;align-items:center}
.mdq-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px}
.mdq-opt{display:flex;align-items:center;justify-content:center;gap:10px;padding:22px 16px;border:2px solid var(--line);
  border-radius:14px;background:var(--panel);cursor:pointer;font-size:16px;color:var(--fg);transition:.18s;font-family:inherit;font-weight:500}
.mdq-opt:hover{border-color:rgba(139,92,246,.3);background:rgba(139,92,246,.06)}
#mdqYes:hover{border-color:#a78bfa;background:rgba(139,92,246,.08)}
#mdqNo:hover{border-color:var(--line);background:var(--hover)}
.mdq-opt-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;
  font-size:14px;font-weight:700;color:#fff}
#mdqYes .mdq-opt-mark{background:#8b5cf6}
#mdqNo .mdq-opt-mark{background:#94a3b8}
.mdq-nav{display:flex;justify-content:flex-start}
.mdq-nav-btn{height:46px;padding:0 24px;border-radius:12px;cursor:pointer;font-size:15px;font-weight:600;
  border:1px solid var(--line);background:var(--panel);color:var(--muted);transition:.2s;display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.mdq-nav-btn:hover:not(:disabled){border-color:var(--line);color:#8b5cf6}
.mdq-nav-btn:disabled{opacity:.45;cursor:not-allowed}

.mdq-extra{max-width:680px;margin:0 auto}
.mdq-extra-card{background:var(--panel);border-radius:18px;padding:34px 30px;border:1px solid var(--line);
  box-shadow:0 6px 26px rgba(31,45,61,.07);text-align:center}
.mdq-extra-card h2{font-size:20px;color:var(--fg);margin:0 0 14px;display:flex;align-items:center;justify-content:center;gap:8px}
.mdq-extra-card h2 i{color:#8b5cf6}
.mdq-extra-sub{font-size:14px;color:var(--muted);line-height:1.9;margin:0 0 24px}
.mdq-extra-sub b{color:#8b5cf6}
.mdq-extra-opts{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mdq-extra-btn{padding:22px 16px;border:2px solid var(--line);border-radius:14px;background:var(--panel);cursor:pointer;
  font-size:15px;color:var(--fg);transition:.18s;font-family:inherit;font-weight:500}
.mdq-extra-btn:hover{border-color:#8b5cf6;background:rgba(139,92,246,.08);color:#7c3aed}

.mdq-result{max-width:680px;margin:0 auto}
.mdq-result-card{background:var(--panel);border-radius:18px;padding:38px 34px;text-align:center;
  border:1px solid var(--line);box-shadow:0 6px 26px rgba(31,45,61,.07)}
.mdq-result-icon{font-size:56px;margin-bottom:16px;line-height:1}
.mdq-result-level{font-size:26px;font-weight:800;margin-bottom:16px}
.mdq-lv-pos{color:#ef4444}
.mdq-lv-neg{color:#10b981}
.mdq-result-desc{font-size:14px;color:var(--muted);line-height:1.9;margin:0 auto 20px;max-width:500px}
.mdq-result-detail{display:inline-block;padding:12px 24px;background:var(--hover);border-radius:12px;
  font-size:13.5px;color:var(--muted);margin-bottom:22px}
.mdq-result-detail b{color:#8b5cf6}
.mdq-result-actions{margin-bottom:8px}

.mdq-rules{background:var(--panel);border-radius:16px;padding:24px 28px;margin-top:24px;
  border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.05)}
.mdq-rules h3{font-size:16px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.mdq-rules h3 i{color:#8b5cf6}
.mdq-rules > p{font-size:14px;color:var(--muted);line-height:1.8;margin:0 0 12px}
.mdq-rules ol{margin:0;padding-left:22px}
.mdq-rules li{font-size:14px;color:var(--muted);line-height:2;margin-bottom:4px}
.mdq-rules li b{color:#8b5cf6}
.mdq-rules-note{font-size:13px;color:var(--muted);margin:14px 0 0;padding-top:14px;border-top:1px dashed var(--line)}

@media (max-width:768px){
  .mdq-intro-card,.mdq-result-card{padding:28px 20px}
  .mdq-intro-card h2{font-size:19px}
  .mdq-q{font-size:16px;padding:18px 18px;min-height:90px}
  .mdq-options,.mdq-extra-opts{grid-template-columns:1fr}
  .mdq-opt,.mdq-extra-btn{padding:16px 14px;font-size:15px}
  .mdq-result-level{font-size:22px}
  .mdq-rules{padding:20px}
}


/* ===== 狂躁症测试题 kz- ===== */
.kz-intro{max-width:680px;margin:0 auto}
.kz-intro-card{background:var(--panel);border-radius:18px;padding:38px 34px;text-align:center;
  border:1px solid var(--line);box-shadow:0 6px 26px rgba(31,45,61,.07)}
.kz-intro-icon{width:64px;height:64px;margin:0 auto 18px;border-radius:18px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff;font-size:28px;box-shadow:0 8px 22px rgba(245,158,11,.32)}
.kz-intro-card h2{font-size:22px;color:var(--fg);margin:0 0 14px;font-weight:700}
.kz-intro-card p{font-size:14px;color:var(--muted);line-height:1.9;margin:0 0 20px}
.kz-intro-card p b{color:#f59e0b}
.kz-scale{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:26px}
.kz-scale span{font-size:12px;color:var(--muted);padding:8px 4px;background:var(--hover);border-radius:8px}
.kz-btn{height:50px;padding:0 36px;border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#f59e0b,#fbbf24);box-shadow:0 6px 18px rgba(245,158,11,.32);transition:.2s;
  display:inline-flex;align-items:center;gap:8px}
.kz-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(245,158,11,.45)}
.kz-warn{margin:22px 0 0;font-size:12.5px;color:#f59e0b;line-height:1.7}
.kz-warn i{margin-right:4px}

.kz-test{max-width:680px;margin:0 auto}
.kz-progress{margin-bottom:26px}
.kz-progress-bar{height:8px;border-radius:5px;background:var(--line);overflow:hidden}
.kz-progress-fill{display:block;height:100%;width:0;border-radius:5px;
  background:linear-gradient(90deg,#f59e0b,#fbbf24);transition:width .3s}
.kz-progress-text{text-align:right;font-size:13px;color:var(--muted);margin-top:8px}
.kz-progress-text b{color:#f59e0b}
.kz-q{font-size:20px;font-weight:600;color:var(--fg);line-height:1.6;margin-bottom:24px;padding:24px 26px;
  background:var(--panel);border-radius:14px;border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.05);min-height:96px;
  display:flex;align-items:center}
.kz-options{display:grid;gap:10px;margin-bottom:24px}
.kz-opt{display:flex;align-items:center;gap:14px;padding:15px 20px;border:2px solid var(--line);border-radius:12px;
  background:var(--panel);cursor:pointer;font-size:15px;color:var(--fg);text-align:left;transition:.18s;font-family:inherit}
.kz-opt:hover{border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.06)}
.kz-opt.on{border-color:#f59e0b;background:linear-gradient(135deg,rgba(245,158,11,.08),var(--panel));color:#b45309;font-weight:600;
  box-shadow:0 4px 14px rgba(245,158,11,.14)}
.kz-opt-score{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;
  background:var(--hover);color:var(--muted);font-size:14px;font-weight:700;flex-shrink:0;transition:.18s}
.kz-opt.on .kz-opt-score{background:#f59e0b;color:#fff}
.kz-opt-text{flex:1}
.kz-nav{display:flex;justify-content:space-between;gap:12px}
.kz-nav-btn{height:46px;padding:0 24px;border-radius:12px;cursor:pointer;font-size:15px;font-weight:600;
  border:1px solid var(--line);background:var(--panel);color:var(--muted);transition:.2s;display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.kz-nav-btn:hover:not(:disabled){border-color:var(--line);color:#f59e0b}
.kz-nav-btn:disabled{opacity:.45;cursor:not-allowed}
.kz-nav-next{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff;border:none;
  box-shadow:0 6px 16px rgba(245,158,11,.3)}
.kz-nav-next:hover{color:#fff;transform:translateY(-1px);box-shadow:0 8px 22px rgba(245,158,11,.42)}

.kz-result{max-width:680px;margin:0 auto}
.kz-result-card{background:var(--panel);border-radius:18px;padding:38px 34px;text-align:center;
  border:1px solid var(--line);box-shadow:0 6px 26px rgba(31,45,61,.07)}
.kz-result-ring{width:160px;height:160px;margin:0 auto 22px;border-radius:50%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;transition:.3s}
.kz-ring-ok{background:radial-gradient(circle at 35% 30%,rgba(16,185,129,.25),rgba(16,185,129,.5));box-shadow:0 10px 30px rgba(16,185,129,.3)}
.kz-ring-mild{background:radial-gradient(circle at 35% 30%,rgba(245,158,11,.25),rgba(245,158,11,.5));box-shadow:0 10px 30px rgba(245,158,11,.3)}
.kz-ring-mid{background:radial-gradient(circle at 35% 30%,rgba(249,115,22,.25),rgba(249,115,22,.5));box-shadow:0 10px 30px rgba(249,115,22,.3)}
.kz-ring-high{background:radial-gradient(circle at 35% 30%,rgba(239,68,68,.25),rgba(239,68,68,.5));box-shadow:0 10px 30px rgba(239,68,68,.3)}
.kz-result-score{font-size:46px;font-weight:900;color:var(--fg);line-height:1}
.kz-result-unit{font-size:13px;color:var(--fg);margin-top:4px}
.kz-result-level{font-size:24px;font-weight:800;margin-bottom:14px}
.kz-lv-ok{color:#10b981}
.kz-lv-mild{color:#f59e0b}
.kz-lv-mid{color:#f97316}
.kz-lv-high{color:#ef4444}
.kz-result-desc{font-size:14px;color:var(--muted);line-height:1.9;margin:0 auto 20px;max-width:480px}
.kz-result-detail{display:inline-block;padding:12px 24px;background:var(--hover);border-radius:12px;
  font-size:13.5px;color:var(--muted);margin-bottom:22px}
.kz-result-detail b{color:#f59e0b}
.kz-result-actions{margin-bottom:8px}
.kz-levels{background:var(--panel);border-radius:16px;padding:24px 28px;margin-top:24px;
  border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.05)}
.kz-levels h3{font-size:16px;color:var(--fg);margin:0 0 14px;display:flex;align-items:center;gap:8px}
.kz-levels h3 i{color:#f59e0b}
.kz-levels ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.kz-levels li{font-size:13.5px;color:var(--muted);padding:12px 16px;background:var(--hover);border-radius:10px;line-height:1.5}
.kz-levels li b{color:#f59e0b;display:block;margin-bottom:2px}
.kz-levels-note{font-size:13px;color:var(--muted);margin:14px 0 0;padding-top:14px;border-top:1px dashed var(--line)}

@media (max-width:768px){
  .kz-intro-card,.kz-result-card{padding:28px 20px}
  .kz-intro-card h2{font-size:19px}
  .kz-scale{grid-template-columns:repeat(3,1fr)}
  .kz-q{font-size:17px;padding:18px 18px;min-height:80px}
  .kz-opt{padding:13px 14px;font-size:14px;gap:10px}
  .kz-nav-btn{padding:0 16px;font-size:14px}
  .kz-result-score{font-size:38px}
  .kz-result-level{font-size:20px}
}

/* ===== 摸鱼提醒通知 my- ===== */
.my-wrap{max-width:1000px;margin:0 auto}
.my-clock{text-align:center;margin-bottom:26px}
.my-clock-time{font-size:52px;font-weight:800;color:var(--fg);letter-spacing:3px;font-variant-numeric:tabular-nums;
  background:linear-gradient(135deg,#0ea5e9,#8b5cf6);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}
.my-clock-date{font-size:14px;color:var(--muted);margin-top:8px}

.my-main{display:grid;grid-template-columns:1fr 300px;gap:24px;align-items:start}
.my-card{background:var(--panel);border-radius:16px;padding:28px 26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.my-card h2{font-size:18px;color:var(--fg);margin:0 0 20px;display:flex;align-items:center;gap:8px}
.my-card h2 i{color:#0ea5e9}
.my-field{margin-bottom:22px}
.my-field > label{display:block;font-size:13.5px;color:var(--muted);font-weight:600;margin-bottom:10px}
.my-chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.my-chip{padding:9px 18px;border:1px solid var(--line);background:var(--panel);border-radius:10px;cursor:pointer;
  font-size:14px;color:var(--muted);transition:.2s;font-family:inherit}
.my-chip:hover{border-color:rgba(14,165,233,.4);color:#0ea5e9}
.my-chip.on{background:linear-gradient(135deg,#0ea5e9,#38bdf8);border-color:#0ea5e9;color:#fff;
  box-shadow:0 4px 12px rgba(14,165,233,.28)}
.my-custom{display:flex;align-items:center;gap:8px}
.my-custom input{width:100px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;
  font-size:14px;color:var(--fg);background:var(--bg);box-sizing:border-box}
.my-custom input:focus{outline:none;border-color:#0ea5e9;box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.my-custom span{font-size:13px;color:var(--muted)}
.my-mini-btn{height:40px;padding:0 18px;border:none;border-radius:10px;cursor:pointer;font-size:13px;font-weight:600;
  color:#0ea5e9;background:rgba(14,165,233,.08);transition:.2s;font-family:inherit}
.my-mini-btn:hover{background:rgba(14,165,233,.15)}
.my-tasks{display:grid;gap:10px}
.my-task{display:flex;align-items:center;cursor:pointer}
.my-task input{display:none}
.my-task span{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border:2px solid var(--line);
  border-radius:10px;font-size:14px;color:var(--fg);transition:.18s}
.my-task span i{color:var(--muted);width:16px;text-align:center}
.my-task input:checked + span{border-color:#0ea5e9;background:linear-gradient(135deg,rgba(14,165,233,.08),var(--panel));color:#0284c7;font-weight:500}
.my-task input:checked + span i{color:#0ea5e9}
.my-actions{display:flex;gap:12px}
.my-btn{flex:1;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#0ea5e9,#38bdf8);box-shadow:0 6px 18px rgba(14,165,233,.32);transition:.2s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.my-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 22px rgba(14,165,233,.45)}
.my-btn:disabled{opacity:.5;cursor:not-allowed}
.my-btn-ghost{background:var(--panel);color:var(--muted);border:1px solid var(--line);box-shadow:none}
.my-btn-ghost:hover:not(:disabled){border-color:var(--line);color:#ef4444;box-shadow:none;transform:none}

.my-side{display:flex;flex-direction:column;gap:20px}
.my-status-card{background:var(--panel);border-radius:16px;padding:26px 22px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);text-align:center;position:relative}
.my-status-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.my-countdown{font-size:44px;font-weight:800;color:#0ea5e9;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:2px}
.my-status-sub{font-size:13px;color:var(--muted);margin-top:10px}
.my-ring{position:absolute;inset:0;pointer-events:none}
.my-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.my-ring circle{fill:none;stroke-width:3}
.my-ring-bg{stroke:var(--line)}
.my-ring-fg{stroke:#0ea5e9;stroke-linecap:round;transition:stroke-dashoffset .5s linear;
  filter:drop-shadow(0 0 4px rgba(14,165,233,.45))}
.my-log-card{background:var(--panel);border-radius:16px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);flex:1}
.my-log-title{font-size:14px;font-weight:600;color:var(--fg);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.my-log-title i{color:#0ea5e9}
.my-log{list-style:none;padding:0;margin:0;max-height:280px;overflow-y:auto}
.my-log li{font-size:13px;color:var(--muted);padding:10px 12px;background:var(--hover);border-radius:8px;margin-bottom:8px;line-height:1.5}
.my-log li.my-log-empty{color:var(--muted);text-align:center;background:transparent}
.my-log-time{display:inline-block;color:#0ea5e9;font-weight:600;margin-right:6px;font-size:12px}

.my-tip{max-width:1000px;margin:20px auto 0;font-size:13px;color:var(--muted);line-height:1.7}
.my-tip i{color:#0ea5e9;margin-right:4px}

@media (max-width:768px){
  .my-clock-time{font-size:40px}
  .my-main{grid-template-columns:1fr;gap:18px}
  .my-card{padding:22px 18px}
  .my-chip{padding:8px 14px;font-size:13px}
  .my-actions{flex-direction:column}
  .my-btn{width:100%}
}

/* ===== 年龄计算器 nl- ===== */
.nl-hero{max-width:1000px;margin:0 auto;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,rgba(244,63,94,.06) 0%,var(--panel) 55%,rgba(14,165,233,.06) 100%);
  box-shadow:0 4px 20px rgba(244,63,94,.10);border:1px solid var(--line)}
.nl-hero-inner{display:grid;grid-template-columns:1fr 340px;gap:28px;padding:32px 34px;align-items:center}
.nl-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;
  background:var(--panel);color:#f43f5e;font-size:13px;font-weight:600;box-shadow:0 2px 8px rgba(244,63,94,.15);margin-bottom:14px}
.nl-hero-text h2{font-size:26px;line-height:1.4;color:var(--fg);margin:0 0 12px;font-weight:700}
.nl-hero-text p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}

.nl-form{background:var(--panel);border-radius:14px;padding:22px 20px;box-shadow:0 6px 24px rgba(244,63,94,.12)}
.nl-field{margin-bottom:16px}
.nl-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px;font-weight:500}
.nl-field input[type=date]{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.nl-field input[type=date]:focus{outline:none;border-color:#f43f5e;background:var(--panel);box-shadow:0 0 0 3px rgba(244,63,94,.12)}
.nl-btn{width:100%;height:48px;border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#f43f5e,#fb7185);box-shadow:0 6px 18px rgba(244,63,94,.35);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px}
.nl-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(244,63,94,.45)}
.nl-btn:active{transform:translateY(0)}

.nl-result{padding:30px 34px;background:linear-gradient(135deg,var(--panel) 0%,rgba(244,63,94,.03) 100%);border-top:1px solid var(--line)}
.nl-age-main{text-align:center;margin-bottom:28px}
.nl-age-num{font-size:64px;font-weight:900;line-height:1;
  background:linear-gradient(135deg,#f43f5e,#fb7185);-webkit-background-clip:text;background-clip:text;color:transparent}
.nl-age-unit{font-size:15px;color:var(--muted);margin-top:8px}
.nl-age-sub{font-size:13px;color:var(--muted);margin-top:10px}
.nl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}
.nl-item{background:var(--panel);border-radius:12px;padding:14px 12px;text-align:center;border:1px solid var(--line);
  box-shadow:0 2px 8px rgba(244,63,94,.05)}
.nl-item-label{font-size:12px;color:var(--muted);margin-bottom:6px}
.nl-item-val{font-size:15px;font-weight:700;color:#f43f5e}
.nl-bd-bar{background:var(--panel);border-radius:12px;padding:18px 20px;border:1px solid var(--line)}
.nl-bd-label{font-size:14px;color:var(--muted);margin-bottom:12px}
.nl-bd-label b{color:#f43f5e}
.nl-bd-progress{height:8px;border-radius:5px;background:rgba(244,63,94,.12);overflow:hidden}
.nl-bd-fill{display:block;height:100%;width:0;border-radius:5px;
  background:linear-gradient(90deg,#fb7185,#f43f5e);transition:width .5s}

@media (max-width:768px){
  .nl-hero-inner{grid-template-columns:1fr;padding:24px 20px;gap:20px}
  .nl-hero-text h2{font-size:21px}
  .nl-result{padding:24px 20px}
  .nl-age-num{font-size:52px}
  .nl-grid{grid-template-columns:repeat(2,1fr)}
}


/* ===== 条形码生成器 tx- ===== */
.tx-wrap{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:360px 1fr;gap:24px;align-items:start}
.tx-card{background:var(--panel);border-radius:16px;padding:28px 26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.tx-card h2{font-size:18px;color:var(--fg);margin:0 0 20px;display:flex;align-items:center;gap:8px}
.tx-card h2 i{color:#14b8a6}
.tx-field{margin-bottom:20px}
.tx-field > label{display:block;font-size:13.5px;color:var(--muted);font-weight:600;margin-bottom:10px}
.tx-field > label b{color:#14b8a6}
.tx-chips{display:flex;gap:10px}
.tx-chip{flex:1;padding:10px 0;border:2px solid var(--line);background:var(--panel);border-radius:10px;cursor:pointer;
  font-size:14px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.tx-chip:hover{border-color:rgba(20,184,166,.4);color:#14b8a6}
.tx-chip.on{background:linear-gradient(135deg,#14b8a6,#2dd4bf);border-color:#14b8a6;color:#fff;
  box-shadow:0 4px 12px rgba(20,184,166,.28)}
.tx-input{width:100%;height:46px;padding:0 14px;border:2px solid var(--line);border-radius:10px;font-size:15px;
  color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.tx-input:focus{outline:none;border-color:#14b8a6;background:var(--panel);box-shadow:0 0 0 3px rgba(20,184,166,.12)}
.tx-hint{font-size:12.5px;color:var(--muted);margin:8px 0 0;line-height:1.6}
.tx-range{width:100%;height:6px;-webkit-appearance:none;appearance:none;border-radius:3px;background:var(--line);outline:none}
.tx-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;
  background:linear-gradient(135deg,#14b8a6,#2dd4bf);cursor:pointer;box-shadow:0 2px 8px rgba(20,184,166,.4)}
.tx-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;border:none;
  background:linear-gradient(135deg,#14b8a6,#2dd4bf);cursor:pointer;box-shadow:0 2px 8px rgba(20,184,166,.4)}
.tx-actions{display:flex;gap:12px}
.tx-btn{flex:1;height:46px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#14b8a6,#2dd4bf);box-shadow:0 6px 18px rgba(20,184,166,.3);transition:.2s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.tx-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(20,184,166,.42)}
.tx-btn-ghost{background:var(--panel);color:#14b8a6;border:1px solid rgba(20,184,166,.4);box-shadow:none}
.tx-btn-ghost:hover{border-color:#14b8a6;box-shadow:0 4px 12px rgba(20,184,166,.15);transform:none}

.tx-preview{background:var(--panel);border-radius:16px;padding:24px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.tx-preview-title{font-size:14px;font-weight:600;color:var(--fg);margin-bottom:16px;display:flex;align-items:center;gap:8px}
.tx-preview-title::before{content:'';width:4px;height:16px;border-radius:2px;background:#14b8a6}
.tx-preview-box{display:flex;align-items:center;justify-content:center;min-height:180px;padding:20px;
  background:var(--hover);border-radius:12px;border:1px dashed var(--line);overflow-x:auto}
.tx-preview-box canvas{max-width:100%;height:auto;background:var(--panel);border-radius:4px}
.tx-error{margin-top:14px;padding:12px 16px;background:rgba(239,68,68,.1);border-radius:10px;color:#ef4444;font-size:13px}
.tx-error[hidden]{display:none}

@media (max-width:768px){
  .tx-wrap{grid-template-columns:1fr;gap:18px}
  .tx-card{padding:22px 18px}
  .tx-actions{flex-direction:column}
}



/* ===== 世界时间差 sj- ===== */
.sj-wrap{max-width:1000px;margin:0 auto}
.sj-local{border-radius:16px;padding:28px 34px;margin-bottom:20px;text-align:center;
  background:linear-gradient(135deg,#1e293b 0%,#334155 100%);box-shadow:0 6px 24px rgba(15,23,42,.25)}
.sj-local-label{font-size:13px;color:#94a3b8;margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:6px}
.sj-local-time{font-size:52px;font-weight:800;color:#fff;letter-spacing:3px;line-height:1.1;font-variant-numeric:tabular-nums}
.sj-local-date{font-size:14px;color:#cbd5e1;margin-top:8px}

.sj-search{position:relative;margin-bottom:22px}
.sj-search i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:15px}
.sj-search input{width:100%;height:48px;padding:0 16px 0 44px;border:2px solid #e2e8f0;border-radius:12px;
  font-size:15px;color:#303133;background:#fff;transition:.2s;box-sizing:border-box}
.sj-search input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}

.sj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.sj-card{border-radius:14px;padding:18px 20px;border:1px solid #eef2f7;background:#fff;
  box-shadow:0 2px 10px rgba(31,45,61,.05);transition:.2s;position:relative;overflow:hidden}
.sj-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(99,102,241,.12);border-color:#dbe0fb}
.sj-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:#6366f1;opacity:.7}
.sj-card.day::before{background:#f59e0b}
.sj-card.night::before{background:#6366f1}
.sj-card-local{border-color:#a5b4fc;background:linear-gradient(135deg,#f5f3ff,#fff)}
.sj-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}
.sj-card-city{display:flex;flex-direction:column;gap:2px}
.sj-card-name{font-size:16px;font-weight:700;color:#1f2d3d}
.sj-card-country{font-size:12px;color:#94a3b8}
.sj-card-dn{font-size:18px;line-height:1}
.sj-card-time{font-size:26px;font-weight:800;color:#6366f1;letter-spacing:1px;line-height:1.1;
  font-variant-numeric:tabular-nums;margin-bottom:6px}
.sj-card-date{font-size:12.5px;color:#909399;margin-bottom:10px}
.sj-card-diff{font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:8px;display:inline-block}
.sj-diff-same{background:#f1f5f9;color:#64748b}
.sj-diff-ahead{background:#ecfdf5;color:#10b981}
.sj-diff-behind{background:#fef2f2;color:#ef4444}
.sj-empty{text-align:center;padding:40px 20px;color:#94a3b8;font-size:14px}
.sj-tip{max-width:1000px;margin:20px auto 0;font-size:13px;color:#909399;line-height:1.7}
.sj-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .sj-local{padding:22px 20px}
  .sj-local-time{font-size:38px}
  .sj-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
  .sj-card{padding:14px 14px}
  .sj-card-time{font-size:21px}
}

/* ===== 世界时间差 洲筛选 ===== */
.sj-regions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.sj-region{padding:7px 16px;border:1px solid #e2e8f0;background:#fff;border-radius:20px;cursor:pointer;
  font-size:13.5px;color:#64748b;transition:.2s;font-family:inherit}
.sj-region:hover{border-color:#a5b4fc;color:#6366f1}
.sj-region.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);border-color:#6366f1;color:#fff;
  box-shadow:0 3px 10px rgba(99,102,241,.28)}
/* ===== 生辰八字计算器 bz- ===== */
.bz-hero{max-width:1000px;margin:0 auto;border-radius:16px;overflow:hidden;
  background:linear-gradient(135deg,rgba(180,83,9,.06) 0%,rgba(180,83,9,.02) 55%,rgba(124,58,237,.05) 100%);
  box-shadow:0 4px 20px rgba(180,120,60,.10);border:1px solid var(--line)}
.bz-hero-inner{display:grid;grid-template-columns:1fr 340px;gap:28px;padding:32px 34px;align-items:center}
.bz-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;
  background:var(--panel);color:#b45309;font-size:13px;font-weight:600;box-shadow:0 2px 8px rgba(180,83,9,.15);margin-bottom:14px}
.bz-hero-text h2{font-size:26px;line-height:1.4;color:var(--fg);margin:0 0 12px;font-weight:700}
.bz-hero-text p{color:var(--muted);font-size:14px;line-height:1.8;margin:0}

.bz-form{background:var(--panel);border-radius:14px;padding:22px 20px;box-shadow:0 6px 24px rgba(180,83,9,.12)}
.bz-field{margin-bottom:16px}
.bz-field label{display:block;font-size:13px;color:var(--muted);margin-bottom:7px;font-weight:500}
.bz-field input[type=date]{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.bz-field input[type=date]:focus{outline:none;border-color:#b45309;background:var(--panel);box-shadow:0 0 0 3px rgba(180,83,9,.1)}
.bz-select-wrap{position:relative}
.bz-select-wrap select{width:100%;height:44px;padding:0 36px 0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);appearance:none;-webkit-appearance:none;cursor:pointer;transition:.2s}
.bz-select-wrap select:focus{outline:none;border-color:#b45309;background:var(--panel);box-shadow:0 0 0 3px rgba(180,83,9,.1)}
.bz-select-wrap i{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;pointer-events:none}
.bz-btn{width:100%;height:48px;border:none;border-radius:10px;cursor:pointer;font-size:16px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#b45309,#d97706);box-shadow:0 6px 18px rgba(180,83,9,.32);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px}
.bz-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(180,83,9,.42)}

.bz-result{padding:30px 34px;background:linear-gradient(135deg,var(--panel) 0%,rgba(180,83,9,.03) 100%);border-top:1px solid var(--line)}
.bz-bazi{text-align:center;font-size:34px;font-weight:800;color:#b45309;letter-spacing:6px;margin-bottom:26px;
  font-family:serif}
.bz-bazi-label{font-size:13px;color:var(--muted);letter-spacing:0;margin-right:12px;font-weight:500;font-family:inherit}
.bz-pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.bz-pillar{background:var(--panel);border-radius:14px;padding:18px 12px;text-align:center;border:1px solid var(--line);
  box-shadow:0 2px 12px rgba(180,83,9,.06)}
.bz-pillar-label{font-size:12px;color:var(--muted);margin-bottom:12px}
.bz-pillar-char{font-size:30px;font-weight:700;color:var(--fg);line-height:1.2;font-family:serif}
.bz-pillar-char.bz-gan{color:#b45309}
.bz-pillar-char.bz-zhi{color:#7c3aed}
.bz-pillar-wx{font-size:12px;color:var(--muted);margin-top:10px;letter-spacing:1px}
.bz-meta{display:grid;grid-template-columns:1fr 2fr;gap:16px;margin-bottom:22px}
.bz-meta-item{background:var(--panel);border-radius:12px;padding:16px 20px;border:1px solid var(--line)}
.bz-meta-label{font-size:12px;color:var(--muted);margin-bottom:8px}
.bz-meta-val{font-size:16px;font-weight:700;color:#b45309}
.bz-wuxing-bars{background:var(--panel);border-radius:14px;padding:20px 24px;border:1px solid var(--line)}
.bz-bar-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.bz-bar-row:last-child{margin-bottom:0}
.bz-bar-label{width:24px;font-size:14px;font-weight:600;color:var(--fg);font-family:serif}
.bz-bar-track{flex:1;height:12px;background:var(--hover);border-radius:6px;overflow:hidden}
.bz-bar-fill{display:block;height:100%;border-radius:6px;transition:width .5s}
.bz-bar-金{background:linear-gradient(90deg,#fbbf24,#f59e0b)}
.bz-bar-木{background:linear-gradient(90deg,#34d399,#10b981)}
.bz-bar-水{background:linear-gradient(90deg,#38bdf8,#0ea5e9)}
.bz-bar-火{background:linear-gradient(90deg,#f87171,#ef4444)}
.bz-bar-土{background:linear-gradient(90deg,#c4a484,#a17259)}
.bz-bar-num{width:20px;text-align:right;font-size:13px;color:var(--muted);font-weight:600}

.bz-note-wrap{max-width:1000px;margin:28px auto 0}
.bz-note-wrap h2{font-size:19px;color:var(--fg);margin:0 0 14px;display:flex;align-items:center;gap:8px}
.bz-note-wrap h2 i{color:#b45309}
.bz-note-list{list-style:none;padding:22px 26px;margin:0;background:var(--panel);border-radius:14px;
  border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.04)}
.bz-note-list li{position:relative;padding-left:20px;margin-bottom:12px;color:var(--muted);font-size:14px;line-height:1.8}
.bz-note-list li:last-child{margin-bottom:0}
.bz-note-list li::before{content:'';position:absolute;left:0;top:10px;width:7px;height:7px;border-radius:50%;background:#b45309}
.bz-note-list b{color:#b45309}

@media (max-width:768px){
  .bz-hero-inner{grid-template-columns:1fr;padding:24px 20px;gap:20px}
  .bz-hero-text h2{font-size:21px}
  .bz-result{padding:22px 18px}
  .bz-bazi{font-size:24px;letter-spacing:3px}
  .bz-pillars{gap:8px}
  .bz-pillar{padding:14px 6px}
  .bz-pillar-char{font-size:24px}
  .bz-meta{grid-template-columns:1fr}
}
/* ===== 在线闹钟 nz- ===== */
.nz-wrap{max-width:1000px;margin:0 auto}
.nz-clock{text-align:center;margin-bottom:26px}
.nz-clock-time{font-size:56px;font-weight:800;letter-spacing:4px;line-height:1.1;font-variant-numeric:tabular-nums;
  background:linear-gradient(135deg,#f43f5e,#f97316);-webkit-background-clip:text;background-clip:text;color:transparent}
.nz-clock-date{font-size:14px;color:var(--muted);margin-top:8px}

.nz-main{display:grid;grid-template-columns:360px 1fr;gap:24px;align-items:start}
.nz-card{background:var(--panel);border-radius:16px;padding:28px 26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.nz-card h2{font-size:18px;color:var(--fg);margin:0 0 20px;display:flex;align-items:center;gap:8px}
.nz-card h2 i{color:#f43f5e}
.nz-field{margin-bottom:20px}
.nz-field > label{display:block;font-size:13.5px;color:var(--muted);font-weight:600;margin-bottom:10px}
.nz-time-row{display:flex;align-items:center;gap:12px}
.nz-time-col{flex:1;position:relative}
.nz-time-col input{width:100%;height:56px;padding:0 30px 0 16px;border:2px solid var(--line);border-radius:12px;
  font-size:24px;font-weight:700;color:#f43f5e;text-align:center;background:var(--bg);box-sizing:border-box;
  font-variant-numeric:tabular-nums}
.nz-time-col input:focus{outline:none;border-color:#f43f5e;background:var(--panel);box-shadow:0 0 0 3px rgba(244,63,94,.12)}
.nz-time-col span{position:absolute;right:12px;bottom:8px;font-size:12px;color:var(--muted)}
.nz-time-sep{font-size:24px;font-weight:700;color:var(--muted)}
.nz-chips{display:flex;gap:10px;flex-wrap:wrap}
.nz-chip{flex:1;min-width:80px;padding:10px 0;border:2px solid var(--line);background:var(--panel);border-radius:10px;cursor:pointer;
  font-size:14px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.nz-chip:hover{border-color:rgba(244,63,94,.4);color:#f43f5e}
.nz-chip.on{background:linear-gradient(135deg,#f43f5e,#fb7185);border-color:#f43f5e;color:#fff;
  box-shadow:0 4px 12px rgba(244,63,94,.28)}
.nz-input{width:100%;height:46px;padding:0 14px;border:2px solid var(--line);border-radius:10px;font-size:15px;
  color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.nz-input:focus{outline:none;border-color:#f43f5e;background:var(--panel);box-shadow:0 0 0 3px rgba(244,63,94,.12)}
.nz-btn{width:100%;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#f43f5e,#fb7185);box-shadow:0 6px 18px rgba(244,63,94,.32);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.nz-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(244,63,94,.42)}

.nz-list-wrap{background:var(--panel);border-radius:16px;padding:24px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);min-height:300px}
.nz-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;
  font-size:15px;font-weight:600;color:var(--fg)}
.nz-list-head i{color:#f43f5e;margin-right:6px}
.nz-clear{height:30px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);cursor:pointer;
  font-size:13px;color:var(--muted);transition:.2s;font-family:inherit}
.nz-clear:hover{border-color:rgba(239,68,68,.4);color:#ef4444}
.nz-list{display:flex;flex-direction:column;gap:12px}
.nz-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px}
.nz-empty i{display:block;font-size:40px;margin-bottom:14px;opacity:.5}
.nz-item{display:flex;align-items:center;gap:16px;padding:16px 18px;background:rgba(244,63,94,.04);border:1px solid rgba(244,63,94,.15);
  border-radius:12px;transition:.2s}
.nz-item:hover{border-color:rgba(244,63,94,.4);box-shadow:0 2px 10px rgba(244,63,94,.1)}
.nz-item-off{opacity:.5;background:var(--hover);border-color:var(--line)}
.nz-item-time{font-size:26px;font-weight:800;color:#f43f5e;font-variant-numeric:tabular-nums;letter-spacing:1px;min-width:96px}
.nz-item-off .nz-item-time{color:var(--muted)}
.nz-item-info{flex:1}
.nz-item-label{font-size:15px;font-weight:600;color:var(--fg);margin-bottom:4px}
.nz-item-sub{font-size:12.5px;color:var(--muted)}
.nz-item-actions{display:flex;gap:8px}
.nz-toggle,.nz-del{width:36px;height:36px;border:none;border-radius:9px;cursor:pointer;background:var(--panel);
  border:1px solid var(--line);font-size:15px;color:var(--muted);transition:.2s;display:flex;align-items:center;justify-content:center}
.nz-toggle.on{color:#22c55e;border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.1)}
.nz-toggle:hover{border-color:rgba(34,197,94,.5);color:#22c55e}
.nz-del:hover{border-color:rgba(239,68,68,.4);color:#ef4444;background:rgba(239,68,68,.08)}

.nz-tip{max-width:1000px;margin:20px auto 0;font-size:13px;color:var(--muted);line-height:1.7}
.nz-tip i{color:#f43f5e;margin-right:4px}

@media (max-width:768px){
  .nz-clock-time{font-size:42px}
  .nz-main{grid-template-columns:1fr;gap:18px}
  .nz-card{padding:22px 18px}
  .nz-item{padding:12px 14px;gap:12px}
  .nz-item-time{font-size:22px;min-width:80px}
  .nz-chip{flex:none;width:calc(50% - 5px)}
}
/* ===== 秒表计时器 mb- ===== */
.mb-wrap{max-width:680px;margin:0 auto}
.mb-tabs{display:flex;gap:10px;margin-bottom:24px;background:var(--panel);padding:8px;border-radius:14px;
  border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.05)}
.mb-tab{flex:1;height:46px;border:none;border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;
  color:var(--muted);background:transparent;transition:.2s;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:8px}
.mb-tab:hover{background:var(--hover);color:#0ea5e9}
.mb-tab.on{background:linear-gradient(135deg,#0ea5e9,#38bdf8);color:#fff;
  box-shadow:0 4px 14px rgba(14,165,233,.3)}

.mb-panel{background:var(--panel);border-radius:18px;padding:36px 30px;border:1px solid var(--line);
  box-shadow:0 6px 26px rgba(31,45,61,.07)}
.mb-display{text-align:center;margin-bottom:32px;font-variant-numeric:tabular-nums;
  display:flex;align-items:baseline;justify-content:center;gap:4px}
.mb-main{font-size:64px;font-weight:800;color:var(--fg);letter-spacing:3px;line-height:1}
.mb-ms{font-size:32px;font-weight:700;color:#0ea5e9;letter-spacing:1px}

.mb-actions{display:flex;gap:14px;justify-content:center;margin-bottom:26px}
.mb-btn{height:54px;min-width:120px;padding:0 28px;border:none;border-radius:14px;cursor:pointer;
  font-size:16px;font-weight:700;transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;justify-content:center;gap:8px}
.mb-btn-primary{background:linear-gradient(135deg,#0ea5e9,#38bdf8);color:#fff;
  box-shadow:0 6px 18px rgba(14,165,233,.32)}
.mb-btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(14,165,233,.45)}
.mb-btn-pause{background:linear-gradient(135deg,#f59e0b,#fbbf24);box-shadow:0 6px 18px rgba(245,158,11,.32);color:#fff}
.mb-btn-pause:hover{box-shadow:0 8px 22px rgba(245,158,11,.45)}
.mb-btn-ghost{background:var(--panel);color:var(--muted);border:1px solid var(--line)}
.mb-btn-ghost:hover:not(:disabled){border-color:rgba(14,165,233,.4);color:#0ea5e9}
.mb-btn:disabled{opacity:.45;cursor:not-allowed}

.mb-laps{max-height:280px;overflow-y:auto;border-top:1px solid var(--line);padding-top:18px}
.mb-laps-empty{text-align:center;color:var(--muted);font-size:13.5px;padding:24px 0}
.mb-lap{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:10px;
  background:var(--hover);margin-bottom:8px;font-size:14px}
.mb-lap-no{color:#0ea5e9;font-weight:700;min-width:36px}
.mb-lap-lap{color:var(--fg);font-weight:700;flex:1;font-variant-numeric:tabular-nums}
.mb-lap-total{color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}

.mb-set{display:flex;gap:12px;justify-content:center;margin-bottom:18px}
.mb-set-col{position:relative;width:100px}
.mb-set-col input{width:100%;height:52px;padding:0 24px 0 12px;border:2px solid var(--line);border-radius:12px;
  font-size:20px;font-weight:700;color:#0ea5e9;text-align:center;background:var(--bg);box-sizing:border-box;
  font-variant-numeric:tabular-nums}
.mb-set-col input:focus{outline:none;border-color:#0ea5e9;background:var(--panel);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.mb-set-col span{position:absolute;right:10px;bottom:8px;font-size:12px;color:var(--muted)}
.mb-presets{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:26px}
.mb-preset{padding:7px 14px;border:1px solid var(--line);background:var(--panel);border-radius:20px;cursor:pointer;
  font-size:13px;color:var(--muted);transition:.2s;font-family:inherit}
.mb-preset:hover{border-color:rgba(14,165,233,.4);color:#0ea5e9;background:rgba(14,165,233,.06)}
.mb-timer-progress{height:8px;border-radius:5px;background:var(--line);overflow:hidden}
.mb-timer-fill{display:block;height:100%;width:0;border-radius:5px;
  background:linear-gradient(90deg,#38bdf8,#0ea5e9);transition:width .1s linear}

@media (max-width:768px){
  .mb-main{font-size:48px}
  .mb-ms{font-size:24px}
  .mb-panel{padding:26px 18px}
  .mb-actions{flex-direction:column}
  .mb-btn{width:100%}
  .mb-set-col{width:80px}
  .mb-set-col input{height:46px;font-size:17px}
}

/* ===== 在线屏幕测试工具- ===== */
.pm-wrap{max-width:1000px;margin:0 auto}
.pm-info{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px}
.pm-info-item{background:var(--panel);border-radius:14px;padding:18px 20px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.pm-info-label{font-size:12.5px;color:var(--muted);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.pm-info-label i{color:#6366f1;font-size:13px}
.pm-info-val{font-size:16px;font-weight:700;color:var(--fg);line-height:1.4;word-break:break-all}
.pm-section{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:22px}
.pm-section h2{font-size:18px;color:var(--fg);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.pm-section h2 i{color:#6366f1}
.pm-section-tip{font-size:13px;color:var(--muted);margin:0 0 18px;line-height:1.7}
.pm-colors{display:grid;grid-template-columns:repeat(9,1fr);gap:10px}
.pm-color{aspect-ratio:1/1;border:2px solid var(--line);border-radius:12px;cursor:pointer;
  background:var(--c);position:relative;transition:.2s;overflow:hidden}
.pm-color:hover{transform:scale(1.06);box-shadow:0 6px 18px rgba(0,0,0,.15);z-index:2}
.pm-color span{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:11px;font-weight:600;
  color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.pm-color[data-c="#ffffff"] span,.pm-color[data-c="#ffff00"] span,.pm-color[data-c="#00ffff"] span{color:#333;text-shadow:0 1px 2px rgba(255,255,255,.8)}
.pm-patterns{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.pm-pattern{border:2px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;background:var(--panel);
  transition:.2s;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:10px}
.pm-pattern:hover{border-color:#a5b4fc;transform:translateY(-2px);box-shadow:0 6px 18px rgba(99,102,241,.14)}
.pm-pattern-preview{width:100%;aspect-ratio:16/10;border-radius:8px;display:block;overflow:hidden}
.pm-pv-grid{background:
  linear-gradient(#6366f1 1px, transparent 1px) 0 0/20px 20px,
  linear-gradient(90deg, #6366f1 1px, transparent 1px) 0 0/20px 20px,
  var(--hover)}
.pm-pv-gray{background:linear-gradient(90deg,#000,#fff)}
.pm-pv-focus{background:radial-gradient(circle,var(--fg) 30%,#fff 30%,#fff 40%,var(--fg) 40%);background-size:14px 14px}
.pm-pv-uniform{background:#fff;border:1px solid var(--line)}
.pm-pattern-name{font-size:13px;color:var(--muted);font-weight:500}
.pm-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.pm-tip i{color:#6366f1;margin-right:4px}

/* 全屏层 */
.pm-fullscreen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;cursor:pointer}
.pm-fullscreen[hidden]{display:none}
.pm-fs-inner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.pm-fs-hint{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;
  padding:8px 18px;background:rgba(0,0,0,.35);border-radius:20px;pointer-events:none;z-index:2;
  opacity:.7;transition:opacity .3s}
.pm-fullscreen:hover .pm-fs-hint{opacity:1}

/* 全屏测试图 */
.pm-p-grid{position:absolute;inset:0;
  background:
    linear-gradient(#6366f1 2px, transparent 2px) 0 0/60px 60px,
    linear-gradient(90deg, #6366f1 2px, transparent 2px) 0 0/60px 60px,
    #0a0a0a}
.pm-p-gray{position:absolute;inset:0;
  background:linear-gradient(90deg,#000 0%,#000 5%,#333 5%,#333 10%,#555 10%,#555 15%,#777 15%,#777 20%,
  #999 20%,#999 25%,#aaa 25%,#aaa 30%,#bbb 30%,#bbb 35%,#ccc 35%,#ccc 40%,#ddd 40%,#ddd 45%,#eee 45%,#eee 50%,
  #fff 50%,#fff 100%)}
.pm-p-focus{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000}
.pm-p-focus-inner{color:#fff;font-size:clamp(14px,2.5vw,28px);font-weight:700;letter-spacing:2px;text-align:center;
  padding:0 20px;line-height:1.8;font-family:monospace}
.pm-p-uniform{position:absolute;inset:0;background:#fff}

@media (max-width:768px){
  .pm-info{grid-template-columns:repeat(2,1fr);gap:10px}
  .pm-info-item{padding:14px 16px}
  .pm-info-val{font-size:14px}
  .pm-section{padding:20px 18px}
  .pm-colors{grid-template-columns:repeat(5,1fr);gap:8px}
  .pm-patterns{grid-template-columns:repeat(2,1fr);gap:10px}
}

/* ===== 八字排盘 bp- ===== */
.bp-wrap{max-width:1000px;margin:0 auto}
.bp-form-card{background:var(--panel);border-radius:16px;padding:26px 28px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(180,120,60,.08);margin-bottom:24px;
  background:linear-gradient(135deg,rgba(180,83,9,.04),var(--panel))}
.bp-form-card h2{font-size:18px;color:var(--fg);margin:0 0 20px;display:flex;align-items:center;gap:8px}
.bp-form-card h2 i{color:#b45309}
.bp-form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:end}
.bp-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:8px}
.bp-field input[type=date]{width:100%;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;
  font-size:14px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.bp-field input[type=date]:focus{outline:none;border-color:#b45309;background:var(--panel);box-shadow:0 0 0 3px rgba(180,83,9,.1)}
.bp-select-wrap{position:relative}
.bp-select-wrap select{width:100%;height:44px;padding:0 32px 0 12px;border:1px solid var(--line);border-radius:10px;
  font-size:14px;color:var(--fg);background:var(--bg);appearance:none;-webkit-appearance:none;cursor:pointer;transition:.2s}
.bp-select-wrap select:focus{outline:none;border-color:#b45309;background:var(--panel);box-shadow:0 0 0 3px rgba(180,83,9,.1)}
.bp-select-wrap i{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px;pointer-events:none}
.bp-chips{display:flex;gap:10px}
.bp-chip{flex:1;height:44px;border:1px solid var(--line);border-radius:10px;background:var(--bg);cursor:pointer;
  font-size:14px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.bp-chip:hover{border-color:#d97706;color:#b45309}
.bp-chip.on{background:linear-gradient(135deg,#b45309,#d97706);border-color:#b45309;color:#fff;
  box-shadow:0 3px 10px rgba(180,83,9,.25)}
.bp-btn{width:100%;height:44px;border:none;border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#b45309,#d97706);box-shadow:0 5px 16px rgba(180,83,9,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.bp-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(180,83,9,.4)}

.bp-result{display:flex;flex-direction:column;gap:22px}
.bp-basic{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.bp-basic-item{background:var(--panel);border-radius:12px;padding:16px 18px;border:1px solid var(--line);
  box-shadow:0 2px 8px rgba(180,83,9,.05);display:flex;flex-direction:column;gap:6px}
.bp-basic-label{font-size:12px;color:var(--muted)}
.bp-basic-val{font-size:15px;font-weight:700;color:#b45309}

.bp-section{background:var(--panel);border-radius:16px;padding:24px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(180,120,60,.06)}
.bp-section h2{font-size:17px;color:var(--fg);margin:0 0 16px;display:flex;align-items:center;gap:8px}
.bp-section h2 i{color:#b45309}
.bp-section-tip{font-size:13.5px;color:var(--muted);margin:0 0 16px;line-height:1.7}
.bp-section-tip b{color:#b45309}

.bp-chart-wrap{overflow-x:auto}
.bp-chart{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.bp-chart th,.bp-chart td{border:1px solid var(--line);text-align:center;padding:10px 6px;vertical-align:top}
.bp-chart thead th{background:linear-gradient(180deg,rgba(180,83,9,.08),rgba(180,83,9,.12));color:#b45309;font-weight:700;
  font-size:14px;padding:12px 6px}
.bp-corner{background:var(--hover) !important;color:var(--muted) !important;font-size:12px !important}
.bp-row-label{background:var(--hover);color:var(--muted);font-weight:600;font-size:12.5px;white-space:nowrap}
.bp-gan-cell,.bp-zhi-cell{font-size:26px;font-weight:700;font-family:serif;color:var(--fg);line-height:1.3;position:relative}
.bp-gan-cell{color:#b45309}
.bp-zhi-cell{color:#7c3aed}
.bp-day-gan{background:rgba(180,83,9,.06)}
.bp-day-zhi{background:rgba(139,92,246,.06)}
.bp-cell-wx{display:block;font-size:11px;color:var(--muted);font-weight:400;font-family:inherit;margin-top:2px}
.bp-ss-cell{color:var(--muted);font-size:13px}
.bp-cang-cell{font-size:13px;line-height:1.8}
.bp-cang-item{display:inline-block;margin:0 3px;color:var(--fg);font-weight:600}
.bp-cang-item em{display:block;font-style:normal;font-size:11px;color:var(--muted);font-weight:400}
.bp-nayin-cell{color:var(--muted);font-size:12.5px}

.bp-wuxing{display:flex;flex-direction:column;gap:12px}
.bp-wx-row{display:flex;align-items:center;gap:14px}
.bp-wx-label{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;color:#fff;flex-shrink:0}
.bp-wx-金{background:linear-gradient(135deg,#fbbf24,#f59e0b)}
.bp-wx-木{background:linear-gradient(135deg,#34d399,#10b981)}
.bp-wx-水{background:linear-gradient(135deg,#38bdf8,#0ea5e9)}
.bp-wx-火{background:linear-gradient(135deg,#f87171,#ef4444)}
.bp-wx-土{background:linear-gradient(135deg,#c4a484,#a17259)}
.bp-wx-track{flex:1;height:14px;background:var(--hover);border-radius:7px;overflow:hidden}
.bp-wx-fill{display:block;height:100%;border-radius:7px;transition:width .6s}
.bp-wx-fill-金{background:linear-gradient(90deg,#fbbf24,#f59e0b)}
.bp-wx-fill-木{background:linear-gradient(90deg,#34d399,#10b981)}
.bp-wx-fill-水{background:linear-gradient(90deg,#38bdf8,#0ea5e9)}
.bp-wx-fill-火{background:linear-gradient(90deg,#f87171,#ef4444)}
.bp-wx-fill-土{background:linear-gradient(90deg,#c4a484,#a17259)}
.bp-wx-num{width:36px;text-align:right;font-size:13px;color:var(--muted);font-weight:600}

.bp-dayun{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px}
.bp-dayun-item{background:linear-gradient(135deg,rgba(180,83,9,.04),var(--panel));border:1px solid var(--line);border-radius:12px;
  padding:14px 10px;text-align:center;transition:.2s}
.bp-dayun-item:hover{border-color:#d97706;transform:translateY(-2px);box-shadow:0 4px 14px rgba(180,83,9,.12)}
.bp-dayun-age{font-size:11.5px;color:var(--muted);margin-bottom:8px}
.bp-dayun-gz{font-size:24px;font-weight:700;font-family:serif;color:#b45309;line-height:1.2;margin-bottom:6px}
.bp-dayun-ss{font-size:12.5px;color:#7c3aed;font-weight:600;margin-bottom:4px}
.bp-dayun-nayin{font-size:11px;color:var(--muted)}

.bp-note-wrap{max-width:1000px;margin:28px auto 0}
.bp-note-wrap h2{font-size:19px;color:var(--fg);margin:0 0 14px;display:flex;align-items:center;gap:8px}
.bp-note-wrap h2 i{color:#b45309}
.bp-note-list{list-style:none;padding:22px 26px;margin:0;background:var(--panel);border-radius:14px;
  border:1px solid var(--line);box-shadow:0 2px 12px rgba(31,45,61,.04)}
.bp-note-list li{position:relative;padding-left:20px;margin-bottom:12px;color:var(--muted);font-size:14px;line-height:1.8}
.bp-note-list li:last-child{margin-bottom:0}
.bp-note-list li::before{content:'';position:absolute;left:0;top:10px;width:7px;height:7px;border-radius:50%;background:#b45309}
.bp-note-list b{color:#b45309}

@media (max-width:768px){
  .bp-form-grid{grid-template-columns:1fr 1fr;gap:14px}
  .bp-field-btn{grid-column:1/-1}
  .bp-basic{grid-template-columns:1fr 1fr}
  .bp-section{padding:18px 14px}
  .bp-gan-cell,.bp-zhi-cell{font-size:22px}
  .bp-chart{font-size:13px;min-width:480px}
  .bp-dayun{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}
  .bp-dayun-gz{font-size:20px}
}

/* ===== 尺码对照表 cm- ===== */
.cm-wrap{max-width:1000px;margin:0 auto}
.cm-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.cm-tab{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border:1px solid var(--line);background:var(--panel);
  border-radius:12px;cursor:pointer;font-size:14px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.cm-tab i{font-size:14px;color:var(--muted);transition:.2s}
.cm-tab:hover{border-color:rgba(14,165,233,.4);color:#0ea5e9}
.cm-tab:hover i{color:#0ea5e9}
.cm-tab.on{background:linear-gradient(135deg,#0ea5e9,#38bdf8);border-color:#0ea5e9;color:#fff;
  box-shadow:0 4px 14px rgba(14,165,233,.3)}
.cm-tab.on i{color:#fff}

.cm-panel{background:var(--panel);border-radius:16px;padding:24px 26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.cm-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.cm-panel-head h2{font-size:17px;color:var(--fg);margin:0;display:flex;align-items:center;gap:8px}
.cm-panel-head h2 i{color:#0ea5e9}
.cm-panel-count{font-size:12.5px;color:var(--muted)}
.cm-table-wrap{overflow-x:auto}
.cm-table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.cm-table th,.cm-table td{border:1px solid var(--line);padding:11px 10px;text-align:center;white-space:nowrap}
.cm-table thead th{background:linear-gradient(180deg,rgba(14,165,233,.08),rgba(14,165,233,.12));color:#0ea5e9;font-weight:600;font-size:13.5px}
.cm-table tbody tr:nth-child(even){background:var(--hover)}
.cm-table tbody tr:hover{background:rgba(14,165,233,.06)}
.cm-table td{color:var(--fg)}
.cm-key{font-weight:700;color:#0ea5e9}
.cm-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:18px 0 0}
.cm-tip i{color:#0ea5e9;margin-right:4px}

@media (max-width:768px){
  .cm-tabs{gap:8px}
  .cm-tab{padding:9px 14px;font-size:13px}
  .cm-panel{padding:18px 14px}
  .cm-table{font-size:13px;min-width:480px}
  .cm-table th,.cm-table td{padding:9px 6px}
}
/* ===== 生活常识 sc- ===== */
.sc-wrap{max-width:900px;margin:0 auto}
.sc-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.sc-tab{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border:1px solid var(--line);background:var(--panel);
  border-radius:12px;cursor:pointer;font-size:13.5px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.sc-tab i{font-size:13px;color:var(--muted);transition:.2s}
.sc-tab:hover{border-color:rgba(22,163,74,.4);color:#16a34a}
.sc-tab:hover i{color:#16a34a}
.sc-tab.on{background:linear-gradient(135deg,#16a34a,#22c55e);border-color:#16a34a;color:#fff;
  box-shadow:0 4px 14px rgba(22,163,74,.3)}
.sc-tab.on i{color:#fff}

.sc-list{display:flex;flex-direction:column;gap:22px}
.sc-group{background:var(--panel);border-radius:16px;padding:0;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);overflow:hidden}
.sc-group-head{display:flex;align-items:center;gap:10px;padding:16px 22px;font-size:16px;font-weight:700;color:#fff}
.sc-group-head i{font-size:16px}
.sc-group-head span{flex:1}
.sc-group-head em{font-size:12.5px;font-style:normal;font-weight:500;opacity:.85}
.sc-head-green{background:linear-gradient(135deg,#16a34a,#22c55e)}
.sc-head-blue{background:linear-gradient(135deg,#0ea5e9,#38bdf8)}
.sc-head-purple{background:linear-gradient(135deg,#8b5cf6,#a78bfa)}
.sc-head-orange{background:linear-gradient(135deg,#f97316,#fb923c)}
.sc-head-red{background:linear-gradient(135deg,#ef4444,#f87171)}
.sc-head-pink{background:linear-gradient(135deg,#ec4899,#f472b6)}
.sc-head-cyan{background:linear-gradient(135deg,#06b6d4,#22d3ee)}

.sc-items{padding:8px 0}
.sc-item{border-bottom:1px solid var(--line)}
.sc-item:last-child{border-bottom:none}
.sc-item-head{display:flex;align-items:center;gap:10px;width:100%;padding:14px 22px;background:transparent;
  border:none;cursor:pointer;font-family:inherit;text-align:left;transition:.2s}
.sc-item-head:hover{background:var(--hover)}
.sc-item-title{flex:1;font-size:14.5px;font-weight:600;color:var(--fg)}
.sc-item-arrow{font-size:12px;color:var(--muted);transition:transform .25s}
.sc-item-open .sc-item-arrow{transform:rotate(180deg);color:#16a34a}
.sc-item-body{max-height:0;overflow:hidden;transition:max-height .3s ease, padding .3s ease;padding:0 22px}
.sc-item-open .sc-item-body{max-height:300px;padding:0 22px 16px}
.sc-item-body p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.85;
  padding-left:14px;border-left:3px solid rgba(22,163,74,.3)}
.sc-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:18px 0 0}
.sc-tip i{color:#16a34a;margin-right:4px}

@media (max-width:768px){
  .sc-tab{padding:8px 13px;font-size:12.5px}
  .sc-group-head{padding:14px 16px;font-size:15px}
  .sc-item-head{padding:12px 16px}
  .sc-item-title{font-size:13.5px}
  .sc-item-body{padding:0 16px}
  .sc-item-open .sc-item-body{padding:0 16px 14px}
}

/* ===== 口红颜色大全 kh- ===== */
.kh-wrap{max-width:1000px;margin:0 auto}
.kh-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.kh-tab{padding:9px 20px;border:1px solid var(--line);background:var(--panel);border-radius:20px;cursor:pointer;
  font-size:13.5px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.kh-tab:hover{border-color:rgba(236,72,153,.4);color:#ec4899}
.kh-tab.on{background:linear-gradient(135deg,#ec4899,#f472b6);border-color:#ec4899;color:#fff;
  box-shadow:0 4px 14px rgba(236,72,153,.3)}

.kh-groups{display:flex;flex-direction:column;gap:26px}
.kh-group{background:var(--panel);border-radius:16px;padding:24px 26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.kh-group-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;
  padding-bottom:14px;border-bottom:1px solid var(--line)}
.kh-group-name{font-size:17px;font-weight:700;color:var(--fg);position:relative;padding-left:14px}
.kh-group-name::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:4px;height:18px;border-radius:2px;background:linear-gradient(180deg,#ec4899,#f472b6)}
.kh-group-count{font-size:12.5px;color:var(--muted)}
.kh-colors{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}
.kh-color{text-align:center;transition:.2s}
.kh-color:hover{transform:translateY(-3px)}
.kh-swatch{width:100%;aspect-ratio:1/1;border-radius:14px;margin-bottom:10px;
  box-shadow:0 4px 14px rgba(31,45,61,.15),inset 0 0 0 1px rgba(255,255,255,.2);transition:.2s}
.kh-color:hover .kh-swatch{box-shadow:0 8px 22px rgba(31,45,61,.22),inset 0 0 0 1px rgba(255,255,255,.3)}
.kh-color-name{font-size:14px;font-weight:700;color:var(--fg);margin-bottom:3px}
.kh-color-hex{font-size:11px;color:var(--muted);font-family:monospace;letter-spacing:.5px;margin-bottom:6px}
.kh-color-desc{font-size:12px;color:var(--muted);line-height:1.5}

.kh-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:20px 0 0}
.kh-tip i{color:#ec4899;margin-right:4px}

@media (max-width:768px){
  .kh-tab{padding:8px 15px;font-size:12.5px}
  .kh-group{padding:18px 16px}
  .kh-colors{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px}
  .kh-color-name{font-size:13px}
  .kh-color-desc{font-size:11px}
}
/* ===== 汽车标志大全 qc- (带图版) ===== */
.qc-wrap{max-width:1100px;margin:0 auto}
.qc-search{position:relative;margin-bottom:20px}
.qc-search i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:15px}
.qc-search input{width:100%;height:48px;padding:0 16px 0 44px;border:2px solid var(--line);border-radius:12px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.qc-search input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}

.qc-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.qc-tab{padding:9px 18px;border:1px solid var(--line);background:var(--panel);border-radius:20px;cursor:pointer;
  font-size:13.5px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500;
  display:inline-flex;align-items:center;gap:6px}
.qc-tab em{font-style:normal;font-size:11px;color:var(--muted);background:var(--hover);padding:1px 7px;border-radius:8px}
.qc-tab:hover{border-color:rgba(37,99,235,.4);color:#2563eb}
.qc-tab.on{background:linear-gradient(135deg,#2563eb,#3b82f6);border-color:#2563eb;color:#fff;
  box-shadow:0 4px 14px rgba(37,99,235,.3)}
.qc-tab.on em{background:rgba(255,255,255,.25);color:#fff}

.qc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}
.qc-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 12px;text-align:center;
  cursor:pointer;transition:.2s;box-shadow:0 2px 8px rgba(31,45,61,.04)}
.qc-card:hover{border-color:rgba(37,99,235,.4);transform:translateY(-3px);box-shadow:0 8px 22px rgba(37,99,235,.15)}
.qc-logo{height:64px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.qc-logo img{max-width:100%;max-height:64px;object-fit:contain;transition:.2s}
.qc-card:hover .qc-logo img{transform:scale(1.08)}
.qc-name{font-size:14px;font-weight:700;color:var(--fg);margin-bottom:4px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.qc-country{font-size:11.5px;color:var(--muted)}
.qc-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px}
.qc-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:22px 0 0}
.qc-tip i{color:#2563eb;margin-right:4px}

@media (max-width:768px){
  .qc-tab{padding:8px 14px;font-size:12.5px}
  .qc-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}
  .qc-card{padding:12px 8px}
  .qc-logo{height:48px}
  .qc-logo img{max-height:48px}
  .qc-name{font-size:12.5px}
}
/* ===== 文本行加前后缀 hp- ===== */
.hp-wrap{max-width:1100px;margin:0 auto}
.hp-opts{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:18px;background:var(--panel);border-radius:14px;
  padding:18px 20px;border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.05);align-items:flex-end}
.hp-opt{flex:1;min-width:180px}
.hp-opt label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.hp-opt input[type=text]{width:100%;height:42px;padding:0 13px;border:1px solid var(--line);border-radius:10px;
  font-size:14px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box;font-family:monospace}
.hp-opt input[type=text]:focus{outline:none;border-color:#6366f1;background:var(--panel);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.hp-opt-check{flex:0 0 auto;min-width:0;display:flex;gap:18px;align-items:center;padding-bottom:4px}
.hp-check{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--muted);cursor:pointer;user-select:none}
.hp-check input{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}

.hp-editors{display:grid;grid-template-columns:1fr 40px 1fr;gap:0;align-items:stretch;margin-bottom:18px}
.hp-editor{background:var(--panel);border-radius:14px;border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.05);
  display:flex;flex-direction:column;overflow:hidden}
.hp-editor-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;
  background:var(--hover);border-bottom:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--fg)}
.hp-editor-head i{color:#6366f1;margin-right:6px}
.hp-count{font-size:12px;color:var(--muted);font-weight:500}
.hp-editor textarea{flex:1;width:100%;min-height:360px;padding:14px 16px;border:none;resize:vertical;
  font-size:13.5px;line-height:1.7;color:var(--fg);background:var(--bg);font-family:monospace;box-sizing:border-box}
.hp-editor textarea:focus{outline:none;background:var(--panel)}
.hp-editor textarea[readonly]{background:var(--hover);color:var(--fg)}
.hp-arrow{display:flex;align-items:center;justify-content:center;color:#c7d2fe;font-size:18px}

.hp-actions{display:flex;gap:12px;flex-wrap:wrap}
.hp-btn{height:44px;padding:0 22px;border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 5px 16px rgba(99,102,241,.3);transition:.2s;
  display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.hp-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(99,102,241,.42)}
.hp-btn-ghost{background:var(--panel);color:var(--muted);border:1px solid var(--line);box-shadow:none}
.hp-btn-ghost:hover{border-color:#c7d2fe;color:#6366f1;transform:none;box-shadow:none}

.hp-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:18px 0 0}
.hp-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .hp-opts{padding:14px 14px;gap:12px}
  .hp-opt{min-width:100%}
  .hp-editors{grid-template-columns:1fr;gap:14px}
  .hp-arrow{transform:rotate(90deg);height:30px}
  .hp-editor textarea{min-height:200px}
  .hp-actions{flex-direction:column}
  .hp-btn{width:100%;justify-content:center}
}
/* ===== 文本去重 qz- ===== */
.qz-wrap{max-width:1100px;margin:0 auto}
.qz-opts{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:18px;background:var(--panel);border-radius:14px;
  padding:18px 20px;border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.05);align-items:center}
.qz-check{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--muted);cursor:pointer;user-select:none}
.qz-check input{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}

.qz-editors{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.qz-editor{background:var(--panel);border-radius:14px;border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.05);
  display:flex;flex-direction:column;overflow:hidden}
.qz-editor-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;
  background:var(--hover);border-bottom:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--fg)}
.qz-editor-head i{color:#6366f1;margin-right:6px}
.qz-count{font-size:12px;color:var(--muted);font-weight:500}
.qz-editor textarea{flex:1;width:100%;min-height:340px;padding:14px 16px;border:none;resize:vertical;
  font-size:13.5px;line-height:1.7;color:var(--fg);background:var(--bg);font-family:monospace;box-sizing:border-box}
.qz-editor textarea:focus{outline:none;background:var(--panel)}
.qz-editor textarea[readonly]{background:var(--hover);color:var(--fg)}

.qz-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.qz-stat{background:var(--panel);border-radius:12px;padding:16px;text-align:center;border:1px solid var(--line);
  box-shadow:0 2px 8px rgba(31,45,61,.05)}
.qz-stat-num{display:block;font-size:24px;font-weight:800;color:#6366f1;line-height:1.2;margin-bottom:4px}
.qz-stat-label{font-size:12.5px;color:var(--muted)}

.qz-actions{display:flex;gap:12px;flex-wrap:wrap}
.qz-btn{height:44px;padding:0 22px;border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 5px 16px rgba(99,102,241,.3);transition:.2s;
  display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.qz-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(99,102,241,.42)}
.qz-btn-ghost{background:var(--panel);color:var(--muted);border:1px solid var(--line);box-shadow:none}
.qz-btn-ghost:hover{border-color:#c7d2fe;color:#6366f1;transform:none;box-shadow:none}

.qz-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:18px 0 0}
.qz-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .qz-opts{padding:14px;gap:12px}
  .qz-editors{grid-template-columns:1fr;gap:14px}
  .qz-editor textarea{min-height:200px}
  .qz-actions{flex-direction:column}
  .qz-btn{width:100%;justify-content:center}
}

/* ===== JavaScript 正则表达式测试工具- ===== */
.re-wrap{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.re-pattern-card{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.re-pattern-card > label{display:block;font-size:13px;color:var(--muted);font-weight:600;margin-bottom:10px}
.re-pattern-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.re-slash{font-size:20px;color:#c7d2fe;font-weight:700;font-family:monospace}
.re-pattern-row input{flex:1;min-width:200px;height:46px;padding:0 14px;border:2px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);font-family:monospace;transition:.2s;box-sizing:border-box}
.re-pattern-row input:focus{outline:none;border-color:#6366f1;background:var(--panel);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.re-flags{display:flex;gap:6px}
.re-flag{width:38px;height:38px;border:2px solid var(--line);background:var(--panel);border-radius:9px;cursor:pointer;
  font-size:15px;font-weight:700;color:var(--muted);font-family:monospace;transition:.2s}
.re-flag:hover{border-color:#c7d2fe;color:#6366f1}
.re-flag.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);border-color:#6366f1;color:#fff;
  box-shadow:0 3px 10px rgba(99,102,241,.3)}
.re-flag-tip{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.7}

.re-editors{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.re-editor,.re-result{background:var(--panel);border-radius:14px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05);overflow:hidden;display:flex;flex-direction:column}
.re-editor-head,.re-result-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;
  background:var(--hover);border-bottom:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--fg)}
.re-editor-head i,.re-result-head i{color:#6366f1;margin-right:6px}
.re-count{font-size:12px;color:var(--muted);font-weight:500}
.re-editor textarea{width:100%;min-height:160px;padding:14px 16px;border:none;resize:vertical;
  font-size:14px;line-height:1.7;color:var(--fg);background:var(--bg);font-family:monospace;box-sizing:border-box}
.re-editor textarea:focus{outline:none;background:var(--panel)}
.re-highlight{min-height:100px;max-height:280px;overflow-y:auto;padding:14px 16px;border-top:1px solid var(--line);
  font-size:14px;line-height:1.9;color:var(--fg);font-family:monospace;word-break:break-all;background:var(--hover);white-space:pre-wrap}
.re-mark{background:rgba(250,204,21,.3);color:#854d0e;padding:1px 2px;border-radius:3px;font-weight:600}
.re-empty{color:var(--muted);font-size:13px;font-family:inherit;padding:8px 0}
.re-error{color:#ef4444;font-size:13px;font-family:inherit;padding:8px 0}
.re-error i{margin-right:4px}

.re-matches{max-height:340px;overflow-y:auto;padding:12px}
.re-match-item{padding:12px 14px;border:1px solid var(--line);border-radius:10px;margin-bottom:10px;background:var(--hover)}
.re-match-head{display:flex;justify-content:space-between;font-size:12px;margin-bottom:8px}
.re-match-no{color:#6366f1;font-weight:700}
.re-match-idx{color:var(--muted)}
.re-match-val{font-size:14px;color:var(--fg);font-family:monospace;word-break:break-all;
  background:var(--panel);padding:8px 10px;border-radius:6px;border:1px solid var(--line)}
.re-match-groups{margin-top:8px;display:flex;flex-direction:column;gap:4px}
.re-group{font-size:12.5px;color:var(--fg);font-family:monospace;display:flex;gap:8px;align-items:flex-start}
.re-group em{color:#7c3aed;font-style:normal;font-weight:700;flex-shrink:0}

.re-replace-card{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.re-replace-card > label{display:block;font-size:13px;color:var(--muted);font-weight:600;margin-bottom:10px}
.re-replace-card input{width:100%;height:44px;padding:0 14px;border:2px solid var(--line);border-radius:10px;
  font-size:14px;color:var(--fg);background:var(--bg);font-family:monospace;transition:.2s;box-sizing:border-box}
.re-replace-card input:focus{outline:none;border-color:#6366f1;background:var(--panel);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.re-replace-out{margin-top:12px;padding:12px 14px;background:var(--hover);border-radius:10px;border:1px solid var(--line);
  font-size:14px;line-height:1.8;color:var(--fg);font-family:monospace;word-break:break-all;white-space:pre-wrap}

.re-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.re-tip i{color:#6366f1;margin-right:4px}
.re-tip b{color:#6366f1;font-family:monospace}

@media (max-width:768px){
  .re-editors{grid-template-columns:1fr}
  .re-pattern-row input{min-width:120px}
  .re-flag{width:34px;height:34px;font-size:13px}
}

/* ===== Python正则测试 pr- ===== */
.pr-wrap{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.pr-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:linear-gradient(135deg,#3776ab,#ffd43b);
  color:#fff;border-radius:10px;font-size:13px;font-weight:600;box-shadow:0 4px 14px rgba(55,118,171,.3)}
.pr-badge code{background:rgba(255,255,255,.2);padding:1px 6px;border-radius:4px;font-family:monospace}
.pr-badge i{font-size:16px}

.pr-pattern-card{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.pr-pattern-card > label{display:block;font-size:13px;color:var(--muted);font-weight:600;margin-bottom:10px}
.pr-pattern-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pr-slash{font-size:16px;color:#a5b4fc;font-weight:700;font-family:monospace}
.pr-pattern-row input{flex:1;min-width:220px;height:46px;padding:0 14px;border:2px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);font-family:monospace;transition:.2s;box-sizing:border-box}
.pr-pattern-row input:focus{outline:none;border-color:#3776ab;background:var(--panel);box-shadow:0 0 0 3px rgba(55,118,171,.12)}
.pr-flags{display:flex;gap:6px;flex-wrap:wrap}
.pr-flag{padding:8px 12px;border:2px solid var(--line);background:var(--panel);border-radius:9px;cursor:pointer;
  font-size:12px;font-weight:600;color:var(--muted);font-family:monospace;transition:.2s}
.pr-flag:hover{border-color:rgba(55,118,171,.3);color:#3776ab}
.pr-flag.on{background:linear-gradient(135deg,#3776ab,#4a8cc7);border-color:#3776ab;color:#fff;
  box-shadow:0 3px 10px rgba(55,118,171,.3)}
.pr-flag-tip{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.7}
.pr-flag-tip code{background:var(--hover);padding:1px 5px;border-radius:4px;font-family:monospace;color:#3776ab}

.pr-editors{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.pr-editor,.pr-result{background:var(--panel);border-radius:14px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05);overflow:hidden;display:flex;flex-direction:column}
.pr-editor-head,.pr-result-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;
  background:var(--hover);border-bottom:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--fg)}
.pr-editor-head i,.pr-result-head i{color:#3776ab;margin-right:6px}
.pr-count{font-size:12px;color:var(--muted);font-weight:500}
.pr-editor textarea{width:100%;min-height:160px;padding:14px 16px;border:none;resize:vertical;
  font-size:14px;line-height:1.7;color:var(--fg);background:var(--bg);font-family:monospace;box-sizing:border-box}
.pr-editor textarea:focus{outline:none;background:var(--panel)}
.pr-highlight{min-height:100px;max-height:280px;overflow-y:auto;padding:14px 16px;border-top:1px solid var(--line);
  font-size:14px;line-height:1.9;color:var(--fg);font-family:monospace;word-break:break-all;background:var(--hover);white-space:pre-wrap}
.pr-mark{background:rgba(250,204,21,.3);color:#854d0e;padding:1px 2px;border-radius:3px;font-weight:600}
.pr-empty{color:var(--muted);font-size:13px;font-family:inherit;padding:8px 0}
.pr-error{color:#ef4444;font-size:13px;font-family:inherit;padding:8px 0;line-height:1.7}
.pr-error i{margin-right:4px}

.pr-matches{max-height:340px;overflow-y:auto;padding:12px}
.pr-match-item{padding:12px 14px;border:1px solid var(--line);border-radius:10px;margin-bottom:10px;background:var(--hover)}
.pr-match-head{display:flex;justify-content:space-between;font-size:12px;margin-bottom:8px}
.pr-match-no{color:#3776ab;font-weight:700}
.pr-match-idx{color:var(--muted)}
.pr-match-val{font-size:14px;color:var(--fg);font-family:monospace;word-break:break-all;
  background:var(--panel);padding:8px 10px;border-radius:6px;border:1px solid var(--line)}
.pr-match-groups{margin-top:8px;display:flex;flex-direction:column;gap:4px}
.pr-group{font-size:12.5px;color:var(--fg);font-family:monospace;display:flex;gap:8px;align-items:flex-start}
.pr-group em{color:#7c3aed;font-style:normal;font-weight:700;flex-shrink:0}
.pr-group-named em{color:#3776ab}

.pr-replace-card{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.pr-replace-card > label{display:block;font-size:13px;color:var(--muted);font-weight:600;margin-bottom:10px}
.pr-replace-card input{width:100%;height:44px;padding:0 14px;border:2px solid var(--line);border-radius:10px;
  font-size:14px;color:var(--fg);background:var(--bg);font-family:monospace;transition:.2s;box-sizing:border-box}
.pr-replace-card input:focus{outline:none;border-color:#3776ab;background:var(--panel);box-shadow:0 0 0 3px rgba(55,118,171,.12)}
.pr-replace-out{margin-top:12px;padding:12px 14px;background:var(--hover);border-radius:10px;border:1px solid var(--line);
  font-size:14px;line-height:1.8;color:var(--fg);font-family:monospace;word-break:break-all;white-space:pre-wrap}

.pr-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.pr-tip i{color:#3776ab;margin-right:4px}
.pr-tip b{color:#3776ab}

@media (max-width:768px){
  .pr-editors{grid-template-columns:1fr}
  .pr-pattern-row input{min-width:120px}
  .pr-flag{padding:6px 9px;font-size:11px}
}

/* ===== Python正则 语法说明 pr-note ===== */
.pr-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.pr-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.pr-note h3 i{color:#3776ab}
.pr-note p{font-size:13.5px;color:var(--muted);line-height:1.8;margin:0 0 10px}
.pr-note ul{margin:0;padding-left:20px}
.pr-note li{font-size:13px;color:var(--muted);line-height:1.9}
.pr-note li code{background:var(--hover);padding:1px 6px;border-radius:4px;font-family:monospace;
  color:#3776ab;font-size:12px}

/* ===== 文本替换 tr- ===== */
.tr-wrap{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.tr-mode-card{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.tr-mode-tabs{display:flex;gap:10px;margin-bottom:20px}
.tr-mode{flex:1;height:44px;border:2px solid var(--line);background:var(--panel);border-radius:10px;cursor:pointer;
  font-size:14px;font-weight:600;color:var(--muted);transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;justify-content:center;gap:8px}
.tr-mode:hover{border-color:#a5b4fc;color:#6366f1}
.tr-mode.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);border-color:#6366f1;color:#fff;
  box-shadow:0 4px 14px rgba(99,102,241,.3)}
.tr-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.tr-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.tr-field input{width:100%;height:44px;padding:0 14px;border:2px solid var(--line);border-radius:10px;
  font-size:14px;color:var(--fg);background:var(--bg);font-family:monospace;transition:.2s;box-sizing:border-box}
.tr-field input:focus{outline:none;border-color:#6366f1;background:var(--panel);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.tr-opts{display:flex;gap:20px;flex-wrap:wrap;padding-top:4px}
.tr-check{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--muted);cursor:pointer;user-select:none}
.tr-check input{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}

.tr-editors{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tr-editor{background:var(--panel);border-radius:14px;border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.05);
  display:flex;flex-direction:column;overflow:hidden}
.tr-editor-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;
  background:var(--hover);border-bottom:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--fg)}
.tr-editor-head i{color:#6366f1;margin-right:6px}
.tr-count{font-size:12px;color:var(--muted);font-weight:500}
.tr-editor textarea{flex:1;width:100%;min-height:340px;padding:14px 16px;border:none;resize:vertical;
  font-size:13.5px;line-height:1.7;color:var(--fg);background:var(--bg);font-family:monospace;box-sizing:border-box}
.tr-editor textarea:focus{outline:none;background:var(--panel)}
.tr-editor textarea[readonly]{background:var(--hover);color:var(--fg)}

.tr-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.tr-stat{background:var(--panel);border-radius:12px;padding:16px;text-align:center;border:1px solid var(--line);
  box-shadow:0 2px 8px rgba(31,45,61,.05)}
.tr-stat-num{display:block;font-size:24px;font-weight:800;color:#6366f1;line-height:1.2;margin-bottom:4px}
.tr-stat-label{font-size:12.5px;color:var(--muted)}
.tr-stat-none,.tr-stat-err{grid-column:1/-1;padding:14px 18px;font-size:13.5px;color:var(--muted);text-align:center}
.tr-stat-err{color:#ef4444;background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3)}
.tr-stat-err i{margin-right:4px}

.tr-actions{display:flex;gap:12px;flex-wrap:wrap}
.tr-btn{height:44px;padding:0 22px;border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 5px 16px rgba(99,102,241,.3);transition:.2s;
  display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.tr-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(99,102,241,.42)}
.tr-btn-ghost{background:var(--panel);color:var(--muted);border:1px solid var(--line);box-shadow:none}
.tr-btn-ghost:hover{border-color:#c7d2fe;color:#6366f1;transform:none;box-shadow:none}

.tr-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.tr-tip i{color:#6366f1;margin-right:4px}
.tr-tip b{color:#6366f1;font-family:monospace}

@media (max-width:768px){
  .tr-mode-card{padding:16px 14px}
  .tr-fields{grid-template-columns:1fr}
  .tr-editors{grid-template-columns:1fr}
  .tr-editor textarea{min-height:200px}
  .tr-actions{flex-direction:column}
  .tr-btn{width:100%;justify-content:center}
}
/* CSS按钮生成器 */
.bg-wrap{display:grid;grid-template-columns:400px 1fr;gap:16px;margin-bottom:18px}
.bg-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;max-height:calc(100vh - 200px);overflow-y:auto}
.bg-section{margin-bottom:18px}
.bg-section:last-child{margin-bottom:0}
.bg-section-head{font-size:13px;font-weight:600;color:var(--fg);padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--line)}
.bg-section-head i{color:#3b82f6;margin-right:6px}
.bg-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.bg-row:last-child{margin-bottom:0}
.bg-row > label:first-child{width:90px;flex-shrink:0;font-size:13px;color:var(--muted);font-weight:500}
.bg-range{flex:1;min-width:100px;accent-color:#3b82f6;cursor:pointer}
.bg-val{display:inline-block;min-width:52px;text-align:right;font-size:12px;color:#3b82f6;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.bg-color{width:46px;height:36px;border:1px solid var(--line);border-radius:8px;cursor:pointer;padding:2px;background:var(--panel)}
.bg-input{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;flex:1;min-width:0}
.bg-input:focus{border-color:#3b82f6}
.bg-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer;user-select:none}
.bg-check input{accent-color:#3b82f6;cursor:pointer}
.bg-select{flex:1;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.bg-select:focus{border-color:#3b82f6}
/* 右侧 */
.bg-main{display:flex;flex-direction:column;gap:14px}
.bg-preview-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:40px 20px;min-height:280px;display:flex;align-items:center;justify-content:center;background-image:linear-gradient(45deg,var(--hover) 25%,transparent 25%),linear-gradient(-45deg,var(--hover) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--hover) 75%),linear-gradient(-45deg,transparent 75%,var(--hover) 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0px}
.bg-code-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.bg-code-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--muted);font-weight:500}
.bg-code-head i{color:#3b82f6;margin-right:6px}
.bg-copy-btn{padding:6px 14px;font-size:12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.bg-copy-btn:hover{border-color:#3b82f6;color:#3b82f6}
.bg-code{margin:0;padding:16px;background:#0f172a;color:#e2e8f0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;max-height:400px;overflow:auto}
/* 生成的按钮 */
#bgPreviewBtn{transition:all .2s;font-family:inherit}
@media (max-width:900px){
  .bg-wrap{grid-template-columns:1fr}
  .bg-panel{max-height:none}
}
@media (max-width:640px){
  .bg-row > label:first-child{width:100%}
  .bg-copy-btn{flex:1;justify-content:center}
}
/* ===== 文本筛选 sx- ===== */
.sx-wrap{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.sx-filter-card{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.sx-row{margin-bottom:16px}
.sx-row:last-child{margin-bottom:0}
.sx-row-opts{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.sx-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.sx-field-grow{width:100%}
.sx-input-group{display:flex;gap:0;border:2px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg);
  transition:.2s}
.sx-input-group:focus-within{border-color:#6366f1;background:var(--panel);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.sx-input-group input{flex:1;height:44px;padding:0 14px;border:none;background:transparent;
  font-size:14px;color:var(--fg);font-family:monospace;outline:none;box-sizing:border-box}
.sx-mode-btn{flex:0 0 78px;height:44px;border:none;background:var(--hover);color:var(--muted);cursor:pointer;
  font-size:13.5px;font-weight:700;transition:.2s;font-family:inherit;
  border-left:1px solid var(--line)}
.sx-mode-btn:hover{background:var(--line)}
.sx-mode-btn.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);color:#fff}

.sx-mode-tabs{display:flex;gap:8px}
.sx-mtab{height:38px;padding:0 16px;border:2px solid var(--line);background:var(--panel);border-radius:9px;cursor:pointer;
  font-size:13px;font-weight:600;color:var(--muted);transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;gap:6px}
.sx-mtab:hover{border-color:#a5b4fc;color:#6366f1}
.sx-mtab.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);border-color:#6366f1;color:#fff;
  box-shadow:0 3px 10px rgba(99,102,241,.28)}
.sx-check{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--muted);cursor:pointer;user-select:none}
.sx-check input{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}

.sx-editors{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sx-editor{background:var(--panel);border-radius:14px;border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.05);
  display:flex;flex-direction:column;overflow:hidden}
.sx-editor-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;
  background:var(--hover);border-bottom:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--fg)}
.sx-editor-head i{color:#6366f1;margin-right:6px}
.sx-count{font-size:12px;color:var(--muted);font-weight:500}
.sx-editor textarea{flex:1;width:100%;min-height:340px;padding:14px 16px;border:none;resize:vertical;
  font-size:13.5px;line-height:1.7;color:var(--fg);background:var(--bg);font-family:monospace;box-sizing:border-box}
.sx-editor textarea:focus{outline:none;background:var(--panel)}
.sx-editor textarea[readonly]{background:var(--hover);color:var(--fg)}

.sx-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sx-stat{background:var(--panel);border-radius:12px;padding:16px;text-align:center;border:1px solid var(--line);
  box-shadow:0 2px 8px rgba(31,45,61,.05)}
.sx-stat-num{display:block;font-size:24px;font-weight:800;color:#6366f1;line-height:1.2;margin-bottom:4px}
.sx-stat-label{font-size:12.5px;color:var(--muted)}
.sx-stat-none,.sx-stat-err{grid-column:1/-1;padding:14px 18px;font-size:13.5px;color:var(--muted);text-align:center}
.sx-stat-err{color:#ef4444;background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3)}
.sx-stat-err i{margin-right:4px}

.sx-actions{display:flex;gap:12px;flex-wrap:wrap}
.sx-btn{height:44px;padding:0 22px;border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 5px 16px rgba(99,102,241,.3);transition:.2s;
  display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.sx-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(99,102,241,.42)}
.sx-btn-ghost{background:var(--panel);color:var(--muted);border:1px solid var(--line);box-shadow:none}
.sx-btn-ghost:hover{border-color:#c7d2fe;color:#6366f1;transform:none;box-shadow:none}

.sx-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.sx-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .sx-filter-card{padding:16px 14px}
  .sx-editors{grid-template-columns:1fr}
  .sx-editor textarea{min-height:200px}
  .sx-actions{flex-direction:column}
  .sx-btn{width:100%;justify-content:center}
  .sx-row-opts{gap:12px}
  .sx-mode-tabs{width:100%}
  .sx-mtab{flex:1}
}
/* ===== 文本比较 bj- ===== */
.bj-wrap{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.bj-opts{display:flex;gap:18px;flex-wrap:wrap;background:var(--panel);border-radius:14px;padding:16px 20px;
  border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.05)}
.bj-check{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--muted);cursor:pointer;user-select:none}
.bj-check input{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}

.bj-inputs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bj-input{background:var(--panel);border-radius:14px;border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.05);
  display:flex;flex-direction:column;overflow:hidden}
.bj-input-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;
  background:var(--hover);border-bottom:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--fg)}
.bj-input-head i{color:#6366f1;margin-right:6px}
.bj-count{font-size:12px;color:var(--muted);font-weight:500}
.bj-input textarea{flex:1;width:100%;min-height:160px;padding:14px 16px;border:none;resize:vertical;
  font-size:13.5px;line-height:1.7;color:var(--fg);background:var(--bg);font-family:monospace;box-sizing:border-box}
.bj-input textarea:focus{outline:none;background:var(--panel)}

.bj-actions{display:flex;gap:12px;flex-wrap:wrap}
.bj-btn{height:44px;padding:0 22px;border:none;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 5px 16px rgba(99,102,241,.3);transition:.2s;
  display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.bj-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(99,102,241,.42)}
.bj-btn-ghost{background:var(--panel);color:var(--muted);border:1px solid var(--line);box-shadow:none}
.bj-btn-ghost:hover{border-color:#c7d2fe;color:#6366f1;transform:none;box-shadow:none}

.bj-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.bj-stat{background:var(--panel);border-radius:12px;padding:16px;text-align:center;border:1px solid var(--line);
  box-shadow:0 2px 8px rgba(31,45,61,.05)}
.bj-stat-num{display:block;font-size:24px;font-weight:800;line-height:1.2;margin-bottom:4px}
.bj-stat-label{font-size:12.5px;color:var(--muted)}
.bj-stat-same .bj-stat-num{color:var(--muted)}
.bj-stat-add .bj-stat-num{color:#16a34a}
.bj-stat-del .bj-stat-num{color:#ef4444}
.bj-stat-none{grid-column:1/-1;padding:14px 18px;font-size:13.5px;color:var(--muted);text-align:center;
  background:var(--panel);border-radius:12px;border:1px solid var(--line)}

.bj-view{}
.bj-table-wrap{background:var(--panel);border-radius:14px;border:1px solid var(--line);overflow:auto;
  box-shadow:0 2px 10px rgba(31,45,61,.05);max-height:600px}
.bj-table{width:100%;border-collapse:collapse;font-size:13px;font-family:monospace}
.bj-table th{background:var(--hover);border-bottom:1px solid var(--line);padding:10px 8px;font-size:12px;
  color:var(--muted);font-weight:600;text-align:left;position:sticky;top:0;z-index:2}
.bj-th-no{width:50px;text-align:center !important}
.bj-th-sign{width:34px;text-align:center !important}
.bj-th-cell{}
.bj-table td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.bj-no{width:50px;text-align:center;color:var(--muted);font-size:11.5px;user-select:none;
  border-right:1px solid var(--line)}
.bj-no-old{background:var(--hover)}
.bj-no-new{background:var(--hover)}
.bj-sign{width:34px;text-align:center;font-weight:700}
.bj-sign-del{color:#ef4444;background:rgba(239,68,68,.1)}
.bj-sign-add{color:#16a34a;background:rgba(16,185,129,.1)}
.bj-cell{white-space:pre-wrap;word-break:break-all;color:var(--fg);line-height:1.7}
.bj-cell-del{background:rgba(239,68,68,.1);color:#b91c1c}
.bj-cell-add{background:rgba(16,185,129,.1);color:#15803d}
.bj-cell-empty{background:var(--hover)}
.bj-row-same .bj-cell{color:var(--muted)}
.bj-row-same .bj-cell-del,.bj-row-same .bj-cell-add{background:transparent}
.bj-row-mod .bj-cell{border-left:2px solid #f59e0b}
.bj-row-mod .bj-cell-del{background:rgba(245,158,11,.12);color:#c2410c}
.bj-row-mod .bj-cell-add{background:rgba(16,185,129,.1);color:#15803d}

.bj-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.bj-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .bj-opts{padding:12px 14px;gap:12px}
  .bj-inputs{grid-template-columns:1fr}
  .bj-input textarea{min-height:120px}
  .bj-actions{flex-direction:column}
  .bj-btn{width:100%;justify-content:center}
  .bj-table{font-size:12px}
  .bj-no{width:36px}
}
/* ===== 人民币大写转换 rm- ===== */
.rm-wrap{max-width:680px;margin:0 auto}
.rm-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.rm-card > label{display:block;font-size:13.5px;color:var(--muted);font-weight:600;margin-bottom:10px}
.rm-input{width:100%;height:56px;padding:0 18px;border:2px solid var(--line);border-radius:12px;
  font-size:22px;font-weight:700;color:#b45309;text-align:center;background:var(--bg);transition:.2s;
  box-sizing:border-box;font-family:monospace;letter-spacing:1px}
.rm-input:focus{outline:none;border-color:#b45309;background:var(--panel);box-shadow:0 0 0 3px rgba(180,83,9,.12)}
.rm-quick{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.rm-q{flex:1;min-width:80px;height:38px;border:1px solid rgba(180,83,9,.3);background:var(--bg);border-radius:9px;
  cursor:pointer;font-size:13.5px;color:#b45309;font-weight:600;transition:.2s;font-family:inherit}
.rm-q:hover{background:rgba(180,83,9,.08);border-color:#d97706}

.rm-result{background:linear-gradient(135deg,rgba(180,83,9,.06),rgba(180,83,9,.1));border:1px solid rgba(180,83,9,.3);border-radius:16px;
  padding:24px 26px;margin-bottom:16px;box-shadow:0 4px 18px rgba(180,83,9,.08)}
.rm-result-label{font-size:13px;color:var(--muted);margin-bottom:12px}
.rm-result-text{font-size:24px;font-weight:800;color:#b45309;line-height:1.6;font-family:serif;
  letter-spacing:2px;word-break:break-all}
.rm-copy{margin-top:16px;height:38px;padding:0 18px;border:1px solid rgba(180,83,9,.3);background:var(--panel);border-radius:9px;
  cursor:pointer;font-size:13.5px;color:#b45309;font-weight:600;transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;gap:6px}
.rm-copy:hover{background:rgba(180,83,9,.08);border-color:#d97706}

.rm-hint{font-size:13.5px;color:#ef4444;margin-bottom:16px;line-height:1.7}
.rm-hint i{margin-right:5px}
.rm-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.rm-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.rm-note h3 i{color:#b45309}
.rm-note ul{margin:0;padding-left:20px}
.rm-note li{font-size:13px;color:var(--muted);line-height:2}
.rm-note li b{color:#b45309;font-family:monospace}

@media (max-width:768px){
  .rm-input{font-size:18px;height:50px}
  .rm-result-text{font-size:18px;letter-spacing:1px}
  .rm-result{padding:20px 18px}
}
/* ===== 字数统计 zs- ===== */
.zs-wrap{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.zs-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.zs-stat{background:linear-gradient(135deg,rgba(99,102,241,.08),var(--panel));border-radius:16px;padding:22px 16px;text-align:center;
  border:1px solid rgba(99,102,241,.2);box-shadow:0 4px 18px rgba(99,102,241,.08)}
.zs-stat-num{display:block;font-size:38px;font-weight:900;line-height:1.1;color:#6366f1;margin-bottom:6px;
  font-variant-numeric:tabular-nums}
.zs-stat-label{font-size:13px;color:var(--muted)}

.zs-editor-card{background:var(--panel);border-radius:16px;border:1px solid var(--line);overflow:hidden;
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.zs-editor-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;
  background:var(--hover);border-bottom:1px solid var(--line);font-size:14px;font-weight:600;color:var(--fg)}
.zs-editor-head i{color:#6366f1;margin-right:6px}
.zs-clear{height:32px;padding:0 14px;border:1px solid var(--line);background:var(--panel);border-radius:8px;cursor:pointer;
  font-size:13px;color:var(--muted);transition:.2s;font-family:inherit;display:inline-flex;align-items:center;gap:6px}
.zs-clear:hover{border-color:#c7d2fe;color:#6366f1}
.zs-editor-card textarea{width:100%;min-height:300px;padding:18px 20px;border:none;resize:vertical;
  font-size:15px;line-height:1.9;color:var(--fg);background:var(--bg);box-sizing:border-box;font-family:inherit}
.zs-editor-card textarea:focus{outline:none;background:var(--panel)}

.zs-detail{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.zs-detail-item{background:var(--panel);border-radius:12px;padding:16px;border:1px solid var(--line);display:flex;
  flex-direction:column;gap:4px;box-shadow:0 2px 8px rgba(31,45,61,.04);transition:.2s}
.zs-detail-item:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(99,102,241,.1)}
.zs-detail-item i{font-size:15px;margin-bottom:6px}
.zs-di-val{font-size:22px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.zs-di-label{font-size:12px;color:var(--muted)}
.zs-di-cjk i,.zs-di-cjk .zs-di-val{color:#ef4444}
.zs-di-letter i,.zs-di-letter .zs-di-val{color:#6366f1}
.zs-di-digit i,.zs-di-digit .zs-di-val{color:#0ea5e9}
.zs-di-punct i,.zs-di-punct .zs-di-val{color:#f59e0b}
.zs-di-space i,.zs-di-space .zs-di-val{color:var(--muted)}
.zs-di-line i,.zs-di-line .zs-di-val{color:#16a34a}
.zs-di-para i,.zs-di-para .zs-di-val{color:#8b5cf6}
.zs-di-total i,.zs-di-total .zs-di-val{color:#ec4899}

.zs-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.zs-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .zs-stat-num{font-size:28px}
  .zs-editor-card textarea{min-height:200px;font-size:14px}
  .zs-detail{grid-template-columns:repeat(2,1fr);gap:10px}
  .zs-di-val{font-size:19px}
}
/* ===== 美元大小写 usd- ===== */
.usd-wrap{max-width:680px;margin:0 auto}
.usd-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.usd-card > label{display:block;font-size:13.5px;color:var(--muted);font-weight:600;margin-bottom:10px}
.usd-input{width:100%;height:56px;padding:0 18px;border:2px solid var(--line);border-radius:12px;
  font-size:22px;font-weight:700;color:#16a34a;text-align:center;background:var(--bg);transition:.2s;
  box-sizing:border-box;font-family:monospace;letter-spacing:1px}
.usd-input:focus{outline:none;border-color:#16a34a;background:var(--panel);box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.usd-quick{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.usd-q{flex:1;min-width:80px;height:38px;border:1px solid rgba(22,163,74,.3);background:var(--bg);border-radius:9px;
  cursor:pointer;font-size:13.5px;color:#16a34a;font-weight:600;transition:.2s;font-family:inherit}
.usd-q:hover{background:rgba(22,163,74,.08);border-color:#22c55e}
.usd-opts{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px}
.usd-check{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--muted);cursor:pointer;user-select:none}
.usd-check input{width:16px;height:16px;accent-color:#16a34a;cursor:pointer}

.usd-result{background:linear-gradient(135deg,rgba(22,163,74,.06),rgba(22,163,74,.1));border:1px solid rgba(22,163,74,.3);border-radius:16px;
  padding:24px 26px;margin-bottom:16px;box-shadow:0 4px 18px rgba(22,163,74,.08)}
.usd-result-label{font-size:13px;color:var(--muted);margin-bottom:12px}
.usd-result-text{font-size:18px;font-weight:700;color:#15803d;line-height:1.7;font-family:'Courier New',monospace;
  letter-spacing:1px;word-break:break-word}
.usd-copy{margin-top:16px;height:38px;padding:0 18px;border:1px solid rgba(22,163,74,.3);background:var(--panel);border-radius:9px;
  cursor:pointer;font-size:13.5px;color:#16a34a;font-weight:600;transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;gap:6px}
.usd-copy:hover{background:rgba(22,163,74,.08);border-color:#22c55e}

.usd-hint{font-size:13.5px;color:#ef4444;margin-bottom:16px;line-height:1.7}
.usd-hint i{margin-right:5px}
.usd-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.usd-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.usd-note h3 i{color:#16a34a}
.usd-note ul{margin:0;padding-left:20px}
.usd-note li{font-size:13px;color:var(--muted);line-height:2}
.usd-note li b{color:#16a34a;font-family:'Courier New',monospace}

@media (max-width:768px){
  .usd-input{font-size:18px;height:50px}
  .usd-result-text{font-size:15px}
  .usd-result{padding:20px 18px}
}

/* ============================================================
   按揭贷款计算器（mg-*）
   ============================================================ */

.mg-form{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
  margin:0 0 18px;
}
.mg-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.mg-field > span{
  font-size:13px;
  color:var(--muted);
  font-weight:600;
}

.mg-result{
  margin:20px 0 0;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.mg-summary{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:12px;
}
.mg-sum-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:16px 18px;
  background:var(--hover);
  border:1px solid var(--line);
  border-radius:10px;
}
.mg-sum-main{
  background:linear-gradient(135deg, rgba(59,130,246,.12), rgba(59,130,246,.04));
  border-color:rgba(59,130,246,.3);
}
.mg-sum-main .mg-sum-value{color:#3b82f6}
.mg-sum-interest{
  background:linear-gradient(135deg, rgba(231,76,60,.1), rgba(231,76,60,.03));
  border-color:rgba(231,76,60,.3);
}
.mg-sum-interest .mg-sum-value{color:#e74c3c}
.mg-sum-label{
  font-size:12.5px;
  color:var(--muted);
}
.mg-sum-value{
  font-size:18px;
  font-weight:700;
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

.mg-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  padding:16px 20px;
}
.mg-card h3{
  margin:0 0 14px;
  font-size:15px;
  font-weight:600;
  color:var(--fg);
  display:flex;
  align-items:center;
  gap:8px;
}
.mg-card h3 i{color:var(--accent)}

.mg-table-wrap{
  overflow:auto;
  max-height:480px;
}
.mg-table{
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.mg-table th,
.mg-table td{
  padding:9px 12px;
  text-align:right;
  border-bottom:1px solid var(--line);
}
.mg-table th:first-child,
.mg-table td:first-child{text-align:left}
.mg-table th{
  background:var(--hover);
  font-weight:600;
  color:var(--fg);
  position:sticky;
  top:0;
  z-index:1;
}
.mg-table td{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}
.mg-table tr:hover td{background:rgba(0,0,0,.02)}

.mg-compare{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.mg-col{
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--hover);
}
.mg-col-ep{
  background:rgba(76,175,80,.06);
  border-color:rgba(76,175,80,.3);
}
.mg-col-title{
  font-size:14px;
  font-weight:600;
  color:var(--fg);
  margin:0 0 12px;
  padding-bottom:8px;
  border-bottom:1px dashed var(--line);
}
.mg-col-ep .mg-col-title{color:#4caf50}
.mg-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:8px 12px;
  border-radius:6px;
  background:var(--panel);
  margin-bottom:6px;
  font-size:13px;
}
.mg-row span{color:var(--muted)}
.mg-row b{
  color:var(--fg);
  font-family:ui-monospace,Menlo,Consolas,monospace;
}

[data-theme="dark"] .mg-sum-item,
[data-theme="dark"] .mg-col,
[data-theme="dark"] .mg-table th{
  background:rgba(255,255,255,.04);
}
[data-theme="dark"] .mg-row{background:var(--panel)}
[data-theme="dark"] .mg-sum-main{background:rgba(59,130,246,.15)}
[data-theme="dark"] .mg-sum-interest{background:rgba(231,76,60,.15)}
[data-theme="dark"] .mg-col-ep{background:rgba(76,175,80,.12)}
[data-theme="dark"] .mg-table tr:hover td{background:rgba(255,255,255,.03)}

@media (max-width:640px){
  .mg-compare{grid-template-columns:1fr}
  .mg-card{padding:12px 14px}
  .mg-sum-value{font-size:16px}
  .mg-table{font-size:12px}
  .mg-table th,
  .mg-table td{padding:8px 6px}
}
/* ===== 油耗计算器 yh- ===== */
.yh-wrap{max-width:680px;margin:0 auto}
.yh-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.yh-card h2{font-size:17px;color:var(--fg);margin:0 0 18px;display:flex;align-items:center;gap:8px}
.yh-card h2 i{color:#0ea5e9}
.yh-field{margin-bottom:16px}
.yh-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.yh-field input{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.yh-field input:focus{outline:none;border-color:#0ea5e9;background:var(--panel);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.yh-btn{width:100%;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#0ea5e9,#38bdf8);box-shadow:0 6px 18px rgba(14,165,233,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;margin-top:8px}
.yh-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(14,165,233,.42)}
.yh-result{background:linear-gradient(135deg,rgba(14,165,233,.08),rgba(14,165,233,.12));border:1px solid rgba(14,165,233,.3);border-radius:16px;
  padding:26px;margin-bottom:20px;box-shadow:0 4px 18px rgba(14,165,233,.08)}
.yh-main{text-align:center;margin-bottom:22px}
.yh-main-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.yh-main-value{font-size:42px;font-weight:900;color:#0284c7;line-height:1.1}
.yh-main-value em{font-size:16px;font-weight:600;font-style:normal;margin-left:6px;color:var(--muted)}
.yh-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.yh-item{background:var(--panel);border-radius:12px;padding:14px 16px;border:1px solid rgba(14,165,233,.3)}
.yh-item-label{font-size:12px;color:var(--muted);margin-bottom:6px}
.yh-item-val{font-size:17px;font-weight:700;color:#0284c7}
.yh-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.yh-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.yh-note h3 i{color:#0ea5e9}
.yh-note ul{margin:0;padding-left:20px}
.yh-note li{font-size:13px;color:var(--muted);line-height:2}
.yh-note li b{color:#0ea5e9}
/* ===== 在线计算器 calc- ===== */
.calc-wrap{max-width:400px;margin:0 auto}
.calc{background:var(--panel);border-radius:22px;padding:22px;border:1px solid var(--line);
  box-shadow:0 8px 32px rgba(31,45,61,.12)}
.calc-display{background:linear-gradient(135deg,var(--hover),var(--bg));border-radius:14px;padding:20px 22px;
  text-align:right;margin-bottom:18px;overflow:hidden}
.calc-history{font-size:14px;color:var(--muted);height:22px;line-height:22px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px}
.calc-current{font-size:38px;font-weight:800;color:var(--fg);line-height:1.1;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:1px}
.calc-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.calc-key{aspect-ratio:1/1;border:none;border-radius:14px;background:var(--hover);cursor:pointer;
  font-size:22px;font-weight:600;color:var(--fg);transition:.15s;font-family:inherit;
  display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(31,45,61,.05)}
.calc-key:hover{background:var(--line);transform:translateY(-1px)}
.calc-key:active{transform:translateY(1px);box-shadow:0 1px 2px rgba(31,45,61,.1)}
.calc-fn{background:rgba(245,158,11,.15);color:#b45309}
.calc-fn:hover{background:rgba(245,158,11,.25)}
.calc-op{background:rgba(59,130,246,.15);color:#1d4ed8;font-size:24px}
.calc-op:hover{background:rgba(59,130,246,.25)}
.calc-eq{background:linear-gradient(135deg,#6366f1,#8b8ef8);color:#fff;font-size:26px;
  box-shadow:0 4px 14px rgba(99,102,241,.35)}
.calc-eq:hover{background:linear-gradient(135deg,#4f46e5,#7c74f0);box-shadow:0 6px 18px rgba(99,102,241,.45)}
.calc-back{background:var(--hover);color:var(--muted);font-size:20px}
.calc-back:hover{background:rgba(239,68,68,.15);color:#ef4444}
.calc-zero{grid-column:span 2;aspect-ratio:auto;height:100%}

@media (max-width:768px){
  .calc{padding:18px;border-radius:18px}
  .calc-current{font-size:32px}
  .calc-keys{gap:10px}
  .calc-key{border-radius:12px;font-size:20px}
}

/* ===== 在线计算器 尺寸修正（PC 限高） ===== */
.calc-wrap{max-width:360px;margin:0 auto}
.calc{max-width:360px;margin:0 auto;padding:18px}
.calc-display{padding:16px 18px;margin-bottom:14px}
.calc-current{font-size:32px}
.calc-keys{gap:10px}
.calc-key{
  aspect-ratio:auto;
  height:58px;
  font-size:20px;
  border-radius:12px;
}
.calc-op{font-size:22px}
.calc-eq{font-size:24px}
.calc-zero{grid-column:span 2;height:58px}

@media (max-width:768px){
  .calc-wrap{max-width:100%}
  .calc{max-width:100%;padding:16px}
  .calc-key{height:56px;font-size:19px}
  .calc-current{font-size:30px}
}
/* ===== 贷款计算器- ===== */
.dk-wrap{max-width:900px;margin:0 auto}
.dk-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.dk-card h2{font-size:17px;color:var(--fg);margin:0 0 18px;display:flex;align-items:center;gap:8px}
.dk-card h2 i{color:#6366f1}
.dk-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}
.dk-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.dk-field input,.dk-input-group input{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.dk-field input:focus,.dk-input-group input:focus{outline:none;border-color:#6366f1;background:var(--panel);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.dk-input-group{display:flex;align-items:center;gap:8px}
.dk-input-group span{font-size:14px;color:var(--muted);white-space:nowrap}
.dk-opts{display:flex;gap:20px;margin-bottom:18px}
.dk-check{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--muted);cursor:pointer;user-select:none}
.dk-check input{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}
.dk-btn{width:100%;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 6px 18px rgba(99,102,241,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.dk-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(99,102,241,.42)}
.dk-result{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.dk-main-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}
.dk-main-item{background:linear-gradient(135deg,rgba(99,102,241,.08),var(--panel));border-radius:14px;padding:20px;text-align:center;
  border:1px solid rgba(99,102,241,.2)}
.dk-main-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.dk-main-value{font-size:24px;font-weight:800;color:#6366f1;line-height:1.2;word-break:break-all}
.dk-tip{background:rgba(14,165,233,.08);border:1px solid rgba(14,165,233,.3);border-radius:10px;padding:12px 16px;font-size:13px;
  color:var(--fg);line-height:1.7;margin-bottom:20px}
.dk-tip i{color:#0ea5e9;margin-right:5px}
.dk-detail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;
  font-weight:600;color:var(--fg)}
.dk-toggle{height:32px;padding:0 14px;border:1px solid var(--line);background:var(--panel);border-radius:8px;cursor:pointer;
  font-size:13px;color:#6366f1;transition:.2s;font-family:inherit}
.dk-toggle:hover{background:rgba(99,102,241,.08)}
.dk-table-wrap{overflow:auto;max-height:420px;border-radius:12px;border:1px solid var(--line)}
.dk-table{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}
.dk-table th{background:var(--hover);color:#6366f1;font-weight:600;padding:10px 8px;text-align:right;
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}
.dk-table th:first-child{text-align:center}
.dk-table td{padding:9px 8px;text-align:right;color:var(--fg);border-bottom:1px solid var(--line);
  font-variant-numeric:tabular-nums}
.dk-table td:first-child{text-align:center;color:var(--muted)}
.dk-table tbody tr:hover{background:var(--hover)}
/* ===== 房贷计算器 fd- ===== */
.fd-wrap{max-width:900px;margin:0 auto}
.fd-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.fd-tabs{display:flex;gap:10px;margin-bottom:22px}
.fd-tab{flex:1;height:44px;border:2px solid var(--line);background:var(--panel);border-radius:11px;cursor:pointer;
  font-size:14px;font-weight:600;color:var(--muted);transition:.2s;font-family:inherit}
.fd-tab:hover{border-color:#a5b4fc;color:#6366f1}
.fd-tab.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);border-color:#6366f1;color:#fff;
  box-shadow:0 4px 14px rgba(99,102,241,.3)}
.fd-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}
.fd-field-wide{grid-column:span 1}
.fd-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.fd-field input,.fd-input-group input{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.fd-field input:focus,.fd-input-group input:focus{outline:none;border-color:#6366f1;background:var(--panel);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.fd-input-group{display:flex;align-items:center;gap:8px}
.fd-input-group span{font-size:14px;color:var(--muted)}
.fd-opts{display:flex;gap:20px;margin-bottom:18px}
.fd-check{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--muted);cursor:pointer;user-select:none}
.fd-check input{width:16px;height:16px;accent-color:#6366f1;cursor:pointer}
.fd-btn{width:100%;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 6px 18px rgba(99,102,241,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.fd-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(99,102,241,.42)}
.fd-result{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.fd-main-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}
.fd-main-item{background:linear-gradient(135deg,rgba(99,102,241,.08),var(--panel));border-radius:14px;padding:20px;text-align:center;
  border:1px solid rgba(99,102,241,.2)}
.fd-main-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.fd-main-value{font-size:24px;font-weight:800;color:#6366f1;line-height:1.2;word-break:break-all}
.fd-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}
.fd-bd-item{background:var(--hover);border-radius:12px;padding:14px 16px;border:1px solid var(--line);display:flex;
  flex-direction:column;gap:4px}
.fd-bd-name{font-size:13px;color:#6366f1;font-weight:600}
.fd-bd-val{font-size:17px;font-weight:800;color:var(--fg)}
.fd-bd-sub{font-size:12px;color:var(--muted)}
.fd-detail-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;
  font-weight:600;color:var(--fg)}
.fd-toggle{height:32px;padding:0 14px;border:1px solid var(--line);background:var(--panel);border-radius:8px;cursor:pointer;
  font-size:13px;color:#6366f1;transition:.2s;font-family:inherit}
.fd-toggle:hover{background:rgba(99,102,241,.08)}
.fd-table-wrap{overflow:auto;max-height:420px;border-radius:12px;border:1px solid var(--line)}
.fd-table{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}
.fd-table th{background:var(--hover);color:#6366f1;font-weight:600;padding:10px 8px;text-align:right;
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2}
.fd-table th:first-child{text-align:center}
.fd-table td{padding:9px 8px;text-align:right;color:var(--fg);border-bottom:1px solid var(--line);
  font-variant-numeric:tabular-nums}
.fd-table td:first-child{text-align:center;color:var(--muted)}
.fd-table tbody tr:hover{background:var(--hover)}

@media (max-width:768px){
  .yh-card,.dk-card,.fd-card{padding:20px 18px}
  .yh-main-value{font-size:34px}
  .yh-grid{grid-template-columns:1fr}
  .dk-fields,.fd-fields{grid-template-columns:1fr}
  .dk-main-grid,.fd-main-grid{grid-template-columns:1fr}
  .dk-main-value,.fd-main-value{font-size:20px}
  .fd-tabs{flex-direction:column}
}

/* ===== 混凝土计算器 hnt- ===== */
.hnt-wrap{max-width:760px;margin:0 auto}
.hnt-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.hnt-field{margin-bottom:16px}
.hnt-field > label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.hnt-field input,.hnt-field select{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.hnt-field input:focus,.hnt-field select:focus{outline:none;border-color:#64748b;background:var(--panel);box-shadow:0 0 0 3px rgba(100,116,139,.12)}
.hnt-field select{cursor:pointer;appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2394a3b8' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center}
.hnt-btn{width:100%;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#64748b,#94a3b8);box-shadow:0 6px 18px rgba(100,116,139,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;margin-top:8px}
.hnt-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(100,116,139,.42)}
.hnt-result{background:linear-gradient(135deg,rgba(100,116,139,.08),rgba(100,116,139,.12));border:1px solid rgba(100,116,139,.3);border-radius:16px;
  padding:26px;margin-bottom:20px;box-shadow:0 4px 18px rgba(100,116,139,.08)}
.hnt-main{text-align:center;margin-bottom:22px}
.hnt-main-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.hnt-main-value{font-size:44px;font-weight:900;color:#475569;line-height:1.1}
.hnt-main-value em{font-size:16px;font-weight:600;font-style:normal;margin-left:6px;color:var(--muted)}
.hnt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.hnt-item{background:var(--panel);border-radius:12px;padding:14px 16px;border:1px solid var(--line)}
.hnt-item-label{font-size:12px;color:var(--muted);margin-bottom:6px}
.hnt-item-val{font-size:16px;font-weight:700;color:#475569}
.hnt-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.hnt-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.hnt-note h3 i{color:#64748b}
.hnt-note ul{margin:0;padding-left:20px}
.hnt-note li{font-size:13px;color:var(--muted);line-height:2}

/* ===== 鱼缸计算器 yg- ===== */
.yg-wrap{max-width:800px;margin:0 auto}
.yg-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.yg-card h2{font-size:16px;color:var(--fg);margin:0 0 16px;display:flex;align-items:center;gap:8px}
.yg-card h2:not(:first-child){margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.yg-card h2 i{color:#0ea5e9}
.yg-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.yg-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.yg-field input{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.yg-field input:focus{outline:none;border-color:#0ea5e9;background:var(--panel);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.yg-btn{width:100%;height:48px;margin-top:20px;border:none;border-radius:12px;cursor:pointer;
  font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,#0ea5e9,#38bdf8);
  box-shadow:0 6px 18px rgba(14,165,233,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.yg-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(14,165,233,.42)}
.yg-result{background:linear-gradient(135deg,rgba(14,165,233,.08),rgba(14,165,233,.12));border:1px solid rgba(14,165,233,.3);border-radius:16px;
  padding:26px;margin-bottom:20px;box-shadow:0 4px 18px rgba(14,165,233,.08)}
.yg-main{text-align:center;margin-bottom:22px}
.yg-main-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.yg-main-value{font-size:44px;font-weight:900;color:#0284c7;line-height:1.1}
.yg-main-value em{font-size:16px;font-weight:600;font-style:normal;margin-left:6px;color:var(--muted)}
.yg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.yg-item{background:var(--panel);border-radius:12px;padding:14px 16px;border:1px solid rgba(14,165,233,.3)}
.yg-item-label{font-size:12px;color:var(--muted);margin-bottom:6px}
.yg-item-val{font-size:16px;font-weight:700;color:#0284c7;word-break:break-word}
.yg-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.yg-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.yg-note h3 i{color:#0ea5e9}
.yg-note ul{margin:0;padding-left:20px}
.yg-note li{font-size:13px;color:var(--muted);line-height:2}
.yg-note li b{color:#0ea5e9}

@media (max-width:768px){
  .zx-card,.cx-card,.yg-card{padding:20px 18px}
  .cx-checks{grid-template-columns:1fr}
  .zx-main-value,.cx-main-value,.yg-main-value{font-size:36px}
  .yg-fields{grid-template-columns:1fr}
  .yg-grid{grid-template-columns:repeat(2,1fr)}
}
/* ===== 车险计算器 cx- ===== */
.cx-wrap{max-width:800px;margin:0 auto}
.cx-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.cx-field{margin-bottom:20px}
.cx-field > label{display:block;font-size:13.5px;color:var(--muted);font-weight:600;margin-bottom:10px}
.cx-field input[type=number]{width:100%;height:46px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.cx-field input[type=number]:focus{outline:none;border-color:#6366f1;background:var(--panel);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.cx-chips{display:flex;gap:10px;flex-wrap:wrap}
.cx-chip{flex:1;min-width:120px;padding:11px 14px;border:2px solid var(--line);background:var(--panel);border-radius:10px;
  cursor:pointer;font-size:13.5px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.cx-chip:hover{border-color:#a5b4fc;color:#6366f1}
.cx-chip.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);border-color:#6366f1;color:#fff;
  box-shadow:0 4px 12px rgba(99,102,241,.28)}
.cx-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.cx-check{display:flex;align-items:center;gap:8px;padding:11px 14px;border:2px solid var(--line);border-radius:10px;
  background:var(--panel);cursor:pointer;font-size:13.5px;color:var(--fg);transition:.2s;user-select:none}
.cx-check:has(input:checked){border-color:#6366f1;background:rgba(99,102,241,.08);color:#4f46e5;font-weight:500}
.cx-check input{display:none}
.cx-check span{width:100%}
.cx-btn{width:100%;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 6px 18px rgba(99,102,241,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;margin-top:8px}
.cx-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(99,102,241,.42)}
.cx-result{background:linear-gradient(135deg,rgba(99,102,241,.08),var(--panel));border:1px solid rgba(99,102,241,.2);border-radius:16px;
  padding:26px;margin-bottom:20px;box-shadow:0 4px 18px rgba(99,102,241,.08)}
.cx-main{text-align:center;margin-bottom:22px}
.cx-main-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.cx-main-value{font-size:44px;font-weight:900;color:#6366f1;line-height:1.1;word-break:break-all}
.cx-main-sub{font-size:13px;color:var(--muted);margin-top:10px}
.cx-list{background:var(--panel);border-radius:12px;padding:16px 20px}
.cx-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.cx-row:last-child{border-bottom:none}
.cx-row-name{color:var(--fg)}
.cx-row-amount{color:#6366f1;font-weight:700}
.cx-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.cx-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.cx-note h3 i{color:#6366f1}
.cx-note ul{margin:0;padding-left:20px}
.cx-note li{font-size:13px;color:var(--muted);line-height:2}
.cx-note li b{color:#6366f1}
/* ===== 装修计算器通用（地板/墙砖/涂料）===== */
.db-wrap,.qz-wrap,.tl-wrap{max-width:800px;margin:0 auto}
.db-card,.qz-card,.tl-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.db-card h2,.qz-card h2,.tl-card h2{font-size:16px;color:var(--fg);margin:0 0 16px;display:flex;align-items:center;gap:8px}
.db-card h2:not(:first-child),.qz-card h2:not(:first-child),.tl-card h2:not(:first-child){margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.db-card h2 i,.qz-card h2 i,.tl-card h2 i{color:#f59e0b}
.db-fields,.qz-fields,.tl-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.db-field label,.qz-field label,.tl-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.db-field input,.qz-field input,.tl-field input,.tl-field select,.tl-input-group input{width:100%;height:44px;padding:0 14px;
  border:1px solid var(--line);border-radius:10px;font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.db-field input:focus,.qz-field input:focus,.tl-field input:focus,.tl-field select:focus,.tl-input-group input:focus{outline:none;
  border-color:#f59e0b;background:var(--panel);box-shadow:0 0 0 3px rgba(245,158,11,.12)}
.tl-field select{cursor:pointer;appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2394a3b8' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center}
.tl-input-group{display:flex;align-items:center;gap:8px}
.tl-input-group span{font-size:14px;color:var(--muted);white-space:nowrap}

.db-btn,.qz-btn,.tl-btn{width:100%;height:48px;margin-top:20px;border:none;border-radius:12px;cursor:pointer;
  font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,#f59e0b,#fbbf24);
  box-shadow:0 6px 18px rgba(245,158,11,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.db-btn:hover,.qz-btn:hover,.tl-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(245,158,11,.42)}

.db-result,.qz-result,.tl-result{background:linear-gradient(135deg,rgba(245,158,11,.08),rgba(245,158,11,.12));border:1px solid rgba(245,158,11,.3);
  border-radius:16px;padding:26px;margin-bottom:20px;box-shadow:0 4px 18px rgba(245,158,11,.08)}
.db-main,.qz-main,.tl-main{text-align:center;margin-bottom:22px}
.db-main-label,.qz-main-label,.tl-main-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.db-main-value,.qz-main-value,.tl-main-value{font-size:42px;font-weight:900;color:#d97706;line-height:1.1}
.db-main-value em,.qz-main-value em,.tl-main-value em{font-size:16px;font-weight:600;font-style:normal;margin-left:6px;color:var(--muted)}
.db-grid,.qz-grid,.tl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.db-item,.qz-item,.tl-item{background:var(--panel);border-radius:12px;padding:14px 16px;border:1px solid rgba(245,158,11,.3)}
.db-item-label,.qz-item-label,.tl-item-label{font-size:12px;color:var(--muted);margin-bottom:6px}
.db-item-val,.qz-item-val,.tl-item-val{font-size:17px;font-weight:700;color:#d97706}

.db-note,.qz-note,.tl-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.db-note h3,.qz-note h3,.tl-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.db-note h3 i,.qz-note h3 i,.tl-note h3 i{color:#f59e0b}
.db-note ul,.qz-note ul,.tl-note ul{margin:0;padding-left:20px}
.db-note li,.qz-note li,.tl-note li{font-size:13px;color:var(--muted);line-height:2}
.db-note li b,.qz-note li b,.tl-note li b{color:#f59e0b}

@media (max-width:768px){
  .db-card,.qz-card,.tl-card{padding:20px 18px}
  .db-fields,.qz-fields,.tl-fields{grid-template-columns:1fr}
  .db-main-value,.qz-main-value,.tl-main-value{font-size:34px}
  .db-grid,.qz-grid,.tl-grid{grid-template-columns:1fr}
}

/* ===== 窗帘/地砖/壁纸计算器（复用装修通用样式） ===== */
.cl-wrap,.dz-wrap,.bz-wrap{max-width:800px;margin:0 auto}
.cl-card,.dz-card,.bz-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.cl-card h2,.dz-card h2,.bz-card h2{font-size:16px;color:var(--fg);margin:0 0 16px;display:flex;align-items:center;gap:8px}
.cl-card h2:not(:first-child),.dz-card h2:not(:first-child),.bz-card h2:not(:first-child){margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.cl-card h2 i,.dz-card h2 i,.bz-card h2 i{color:#f59e0b}
.cl-fields,.dz-fields,.bz-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.cl-field label,.dz-field label,.bz-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.cl-field input,.dz-field input,.bz-field input,.cl-field select,.bz-field select{width:100%;height:44px;padding:0 14px;
  border:1px solid var(--line);border-radius:10px;font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.cl-field input:focus,.dz-field input:focus,.bz-field input:focus,.cl-field select:focus,.bz-field select:focus{outline:none;
  border-color:#f59e0b;background:var(--panel);box-shadow:0 0 0 3px rgba(245,158,11,.12)}
.cl-field select,.bz-field select{cursor:pointer;appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2394a3b8' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center}

.cl-btn,.dz-btn,.bz-btn{width:100%;height:48px;margin-top:20px;border:none;border-radius:12px;cursor:pointer;
  font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,#f59e0b,#fbbf24);
  box-shadow:0 6px 18px rgba(245,158,11,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.cl-btn:hover,.dz-btn:hover,.bz-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(245,158,11,.42)}

.cl-result,.dz-result,.bz-result{background:linear-gradient(135deg,rgba(245,158,11,.08),rgba(245,158,11,.12));border:1px solid rgba(245,158,11,.3);
  border-radius:16px;padding:26px;margin-bottom:20px;box-shadow:0 4px 18px rgba(245,158,11,.08)}
.cl-main,.dz-main,.bz-main{text-align:center;margin-bottom:22px}
.cl-main-label,.dz-main-label,.bz-main-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.cl-main-value,.dz-main-value,.bz-main-value{font-size:42px;font-weight:900;color:#d97706;line-height:1.1}
.cl-main-value em,.dz-main-value em,.bz-main-value em{font-size:16px;font-weight:600;font-style:normal;margin-left:6px;color:var(--muted)}
.cl-grid,.dz-grid,.bz-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.cl-item,.dz-item,.bz-item{background:var(--panel);border-radius:12px;padding:14px 16px;border:1px solid rgba(245,158,11,.3)}
.cl-item-label,.dz-item-label,.bz-item-label{font-size:12px;color:var(--muted);margin-bottom:6px}
.cl-item-val,.dz-item-val,.bz-item-val{font-size:17px;font-weight:700;color:#d97706}

.cl-note,.dz-note,.bz-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.cl-note h3,.dz-note h3,.bz-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.cl-note h3 i,.dz-note h3 i,.bz-note h3 i{color:#f59e0b}
.cl-note ul,.dz-note ul,.bz-note ul{margin:0;padding-left:20px}
.cl-note li,.dz-note li,.bz-note li{font-size:13px;color:var(--muted);line-height:2}
.cl-note li b,.dz-note li b,.bz-note li b{color:#f59e0b}

@media (max-width:768px){
  .cl-card,.dz-card,.bz-card{padding:20px 18px}
  .cl-fields,.dz-fields,.bz-fields{grid-template-columns:1fr}
  .cl-main-value,.dz-main-value,.bz-main-value{font-size:34px}
  .cl-grid,.dz-grid,.bz-grid{grid-template-columns:1fr}
}

/* ===== 装修总预算 zx- ===== */
.zx-wrap{max-width:800px;margin:0 auto}
.zx-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.zx-field{margin-bottom:20px}
.zx-field > label{display:block;font-size:13.5px;color:var(--muted);font-weight:600;margin-bottom:10px}
.zx-field input{width:100%;height:46px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.zx-field input:focus{outline:none;border-color:#f59e0b;background:var(--panel);box-shadow:0 0 0 3px rgba(245,158,11,.12)}
.zx-chips{display:flex;gap:10px;flex-wrap:wrap}
.zx-chip{flex:1;min-width:120px;padding:11px 14px;border:2px solid var(--line);background:var(--panel);border-radius:10px;
  cursor:pointer;font-size:13.5px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.zx-chip:hover{border-color:rgba(245,158,11,.4);color:#b45309}
.zx-chip.on{background:linear-gradient(135deg,#f59e0b,#fbbf24);border-color:#f59e0b;color:#fff;
  box-shadow:0 4px 12px rgba(245,158,11,.28)}
.zx-btn{width:100%;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#f59e0b,#fbbf24);box-shadow:0 6px 18px rgba(245,158,11,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;margin-top:8px}
.zx-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(245,158,11,.42)}
.zx-result{background:linear-gradient(135deg,rgba(245,158,11,.08),rgba(245,158,11,.12));border:1px solid rgba(245,158,11,.3);border-radius:16px;
  padding:26px;margin-bottom:20px;box-shadow:0 4px 18px rgba(245,158,11,.08)}
.zx-main{text-align:center;margin-bottom:22px}
.zx-main-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.zx-main-value{font-size:44px;font-weight:900;color:#d97706;line-height:1.1;word-break:break-all}
.zx-main-sub{font-size:13px;color:var(--muted);margin-top:10px}
.zx-breakdown{background:var(--panel);border-radius:12px;padding:18px 20px}
.zx-breakdown-head{font-size:14px;font-weight:700;color:var(--fg);margin-bottom:14px}
.zx-row{margin-bottom:14px}
.zx-row:last-child{margin-bottom:0}
.zx-row-head{display:flex;justify-content:space-between;margin-bottom:6px;font-size:13.5px}
.zx-row-name{color:var(--fg);font-weight:500}
.zx-row-cost{color:#d97706;font-weight:700}
.zx-row-bar{height:7px;border-radius:4px;background:rgba(245,158,11,.15);overflow:hidden;margin-bottom:5px}
.zx-row-fill{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#fbbf24,#f59e0b)}
.zx-row-sub{font-size:11.5px;color:var(--muted)}
.zx-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.zx-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.zx-note h3 i{color:#f59e0b}
.zx-note ul{margin:0;padding-left:20px}
.zx-note li{font-size:13px;color:var(--muted);line-height:2}
.zx-note li b{color:#f59e0b}




/* ===== 亲戚计算器 qq- ===== */
.qq-wrap{max-width:760px;margin:0 auto}
.qq-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.qq-chain{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:18px;background:var(--hover);
  border-radius:12px;margin-bottom:20px;min-height:60px;border:1px dashed var(--line)}
.qq-start,.qq-node{padding:6px 14px;border-radius:20px;font-size:14px;font-weight:600}
.qq-start{background:linear-gradient(135deg,#6366f1,#8b8ef8);color:#fff}
.qq-node{background:rgba(99,102,241,.1);color:#6366f1}
.qq-sep{color:var(--muted);font-size:12px}
.qq-step-btns{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px;margin-bottom:18px}
.qq-btn{padding:12px 8px;border:2px solid var(--line);background:var(--panel);border-radius:10px;cursor:pointer;
  font-size:14px;font-weight:600;color:var(--fg);transition:.2s;font-family:inherit}
.qq-btn:hover{border-color:#a5b4fc;color:#6366f1;background:rgba(99,102,241,.06);transform:translateY(-1px)}
.qq-btn:active{transform:translateY(0)}
.qq-actions{display:flex;gap:12px}
.qq-act{flex:1;height:44px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;
  border:1px solid var(--line);background:var(--panel);color:var(--muted);transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;justify-content:center;gap:8px}
.qq-act:hover{border-color:#c7d2fe;color:#6366f1}
.qq-act-clear:hover{border-color:rgba(239,68,68,.4);color:#ef4444}
.qq-result{background:linear-gradient(135deg,rgba(99,102,241,.08),var(--panel));border:1px solid rgba(99,102,241,.2);border-radius:16px;
  padding:26px;text-align:center;margin-bottom:20px;box-shadow:0 4px 18px rgba(99,102,241,.08)}
.qq-result-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.qq-result-name{font-size:40px;font-weight:900;color:#6366f1;line-height:1.2;margin-bottom:14px;letter-spacing:2px}
.qq-result-chain{font-size:13px;color:var(--muted);line-height:1.7}
.qq-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.qq-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.qq-note h3 i{color:#6366f1}
.qq-note ul{margin:0;padding-left:20px}
.qq-note li{font-size:13px;color:var(--muted);line-height:2}
.qq-note li b{color:#6366f1}



/* ===== 三角函数计算器 ===== */
.sj-wrap{max-width:760px;margin:0 auto}
.sj-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.sj-input-row{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.sj-input-row input{flex:1;min-width:180px;height:52px;padding:0 18px;border:2px solid var(--line);border-radius:12px;
  font-size:20px;font-weight:600;color:#0d9488;text-align:center;background:var(--bg);transition:.2s;
  box-sizing:border-box;font-family:monospace}
.sj-input-row input:focus{outline:none;border-color:#0d9488;background:var(--panel);box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.sj-unit-chips{display:flex;gap:8px}
.sj-unit{height:52px;padding:0 18px;border:2px solid var(--line);background:var(--panel);border-radius:12px;cursor:pointer;
  font-size:14px;font-weight:600;color:var(--muted);transition:.2s;font-family:inherit}
.sj-unit:hover{border-color:rgba(13,148,136,.4);color:#0d9488}
.sj-unit.on{background:linear-gradient(135deg,#0d9488,#2dd4bf);border-color:#0d9488;color:#fff;
  box-shadow:0 4px 12px rgba(13,148,136,.28)}
.sj-quick{display:flex;gap:8px;flex-wrap:wrap}
.sj-q{padding:8px 16px;border:1px solid var(--line);background:var(--panel);border-radius:20px;cursor:pointer;
  font-size:13px;color:var(--muted);transition:.2s;font-family:inherit}
.sj-q:hover{border-color:rgba(13,148,136,.4);color:#0d9488;background:rgba(13,148,136,.06)}

.sj-result{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.sj-convert{text-align:center;padding:14px;background:rgba(13,148,136,.08);border-radius:10px;margin-bottom:18px;
  font-size:14px;color:var(--fg)}
.sj-convert b{color:#0d9488;font-family:monospace}
.sj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.sj-item{background:linear-gradient(135deg,rgba(13,148,136,.08),var(--panel));border:1px solid rgba(13,148,136,.3);border-radius:12px;
  padding:14px;text-align:center}
.sj-item-name{font-size:14px;font-weight:700;color:#0d9488;font-family:monospace;margin-bottom:6px}
.sj-item-val{font-size:18px;font-weight:800;color:var(--fg);font-family:monospace;word-break:break-all;margin-bottom:4px}
.sj-item-desc{font-size:11.5px;color:var(--muted)}
.sj-empty{text-align:center;padding:30px;color:var(--muted);font-size:14px;grid-column:1/-1}
.sj-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.sj-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.sj-note h3 i{color:#0d9488}
.sj-note ul{margin:0;padding-left:20px}
.sj-note li{font-size:13px;color:var(--muted);line-height:2}

/* ===== 正六角柱体计算器- ===== */
.lj-wrap{max-width:760px;margin:0 auto}
.lj-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.lj-card h2{font-size:16px;color:var(--fg);margin:0 0 16px;display:flex;align-items:center;gap:8px}
.lj-card h2 i{color:#8b5cf6}
.lj-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.lj-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.lj-field input{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.lj-field input:focus{outline:none;border-color:#8b5cf6;background:var(--panel);box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.lj-btn{width:100%;height:48px;margin-top:20px;border:none;border-radius:12px;cursor:pointer;
  font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,#8b5cf6,#a78bfa);
  box-shadow:0 6px 18px rgba(139,92,246,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.lj-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(139,92,246,.42)}
.lj-result{background:linear-gradient(135deg,rgba(139,92,246,.08),rgba(139,92,246,.12));border:1px solid rgba(139,92,246,.3);border-radius:16px;
  padding:26px;margin-bottom:20px;box-shadow:0 4px 18px rgba(139,92,246,.08)}
.lj-main{text-align:center;margin-bottom:22px}
.lj-main-label{font-size:13px;color:var(--muted);margin-bottom:10px}
.lj-main-value{font-size:42px;font-weight:900;color:#7c3aed;line-height:1.1}
.lj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.lj-item{background:var(--panel);border-radius:12px;padding:14px 16px;border:1px solid rgba(139,92,246,.3)}
.lj-item-label{font-size:12px;color:var(--muted);margin-bottom:6px}
.lj-item-val{font-size:16px;font-weight:700;color:#7c3aed;word-break:break-word}
.lj-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.lj-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.lj-note h3 i{color:#8b5cf6}
.lj-note ul{margin:0;padding-left:20px}
.lj-note li{font-size:13px;color:var(--muted);line-height:2}

@media (max-width:768px){
  .qq-card,.hnt-card,.sj-card,.lj-card{padding:20px 18px}
  .qq-result-name{font-size:32px}
  .hnt-main-value,.lj-main-value{font-size:34px}
  .hnt-grid,.lj-grid,.sj-grid{grid-template-columns:repeat(2,1fr)}
  .lj-fields,.hnt-field{padding:0}
  .sj-input-row input{font-size:18px;height:48px}
}


/* ===== 单位换算 dw- ===== */
.dw-wrap{max-width:900px;margin:0 auto}
.dw-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.dw-tab{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border:1px solid #e2e8f0;background:#fff;
  border-radius:12px;cursor:pointer;font-size:13.5px;color:#64748b;transition:.2s;font-family:inherit;font-weight:500}
.dw-tab i{font-size:13px;color:#94a3b8;transition:.2s}
.dw-tab:hover{border-color:#7dd3fc;color:#0ea5e9}
.dw-tab:hover i{color:#0ea5e9}
.dw-tab.on{background:linear-gradient(135deg,#0ea5e9,#38bdf8);border-color:#0ea5e9;color:#fff;
  box-shadow:0 4px 14px rgba(14,165,233,.3)}
.dw-tab.on i{color:#fff}

.dw-card{background:#fff;border-radius:16px;padding:26px;border:1px solid #eef2f7;
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.dw-input-row{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.dw-input-row input{flex:1;min-width:180px;height:56px;padding:0 18px;border:2px solid #eef2f7;border-radius:12px;
  font-size:22px;font-weight:700;color:#0284c7;background:#f8fbfe;transition:.2s;box-sizing:border-box;font-family:monospace}
.dw-input-row input:focus{outline:none;border-color:#0ea5e9;background:#fff;box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.dw-input-row select{min-width:180px;height:56px;padding:0 40px 0 16px;border:2px solid #eef2f7;border-radius:12px;
  font-size:15px;font-weight:600;color:#303133;background:#f8fbfe;cursor:pointer;transition:.2s;
  appearance:none;-webkit-appearance:none;box-sizing:border-box;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2394a3b8' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center}
.dw-input-row select:focus{outline:none;border-color:#0ea5e9;background-color:#fff;box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.dw-swap-row{text-align:center;margin-bottom:20px}
.dw-swap{height:36px;padding:0 18px;border:1px dashed #cbd5e1;background:#f8fafc;border-radius:20px;cursor:pointer;
  font-size:13px;color:#64748b;transition:.2s;font-family:inherit;display:inline-flex;align-items:center;gap:6px}
.dw-swap:hover{border-color:#0ea5e9;color:#0ea5e9;background:#f0f9ff}

.dw-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.dw-item{background:#fafcff;border:1px solid #eef2f7;border-radius:12px;padding:14px 16px;transition:.2s}
.dw-item:hover{box-shadow:0 4px 14px rgba(14,165,233,.1);border-color:#bae6fd}
.dw-item-active{background:linear-gradient(135deg,#e0f2fe,#f0f9ff);border-color:#0ea5e9;box-shadow:0 4px 14px rgba(14,165,233,.18)}
.dw-item-name{font-size:12.5px;color:#64748b;margin-bottom:6px}
.dw-item-name span{color:#94a3b8;font-family:monospace;font-size:11.5px}
.dw-item-val{font-size:18px;font-weight:800;color:#0284c7;word-break:break-all;font-variant-numeric:tabular-nums}
.dw-empty{grid-column:1/-1;text-align:center;padding:30px;color:#94a3b8;font-size:14px}
.dw-tip{font-size:13px;color:#909399;line-height:1.7;margin:18px 0 0}
.dw-tip i{color:#0ea5e9;margin-right:4px}

@media (max-width:768px){
  .dw-card{padding:20px 16px}
  .dw-input-row input{font-size:18px;height:50px;min-width:120px}
  .dw-input-row select{min-width:120px;height:50px}
  .dw-list{grid-template-columns:repeat(2,1fr);gap:10px}
  .dw-item{padding:12px}
  .dw-item-val{font-size:16px}
}


/* ===== 随机密码生成器 pw- ===== */
.pw-wrap{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.pw-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.pw-field{margin-bottom:20px}
.pw-field > label{display:block;font-size:13.5px;color:var(--muted);font-weight:600;margin-bottom:10px}
.pw-field > label b{color:#6366f1}
.pw-range{width:100%;height:6px;-webkit-appearance:none;appearance:none;border-radius:3px;background:var(--line);outline:none}
.pw-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);cursor:pointer;box-shadow:0 2px 8px rgba(99,102,241,.4)}
.pw-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;border:none;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);cursor:pointer;box-shadow:0 2px 8px rgba(99,102,241,.4)}
.pw-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
/* 去掉外边框，只保留复选框边框 */
.pw-check{display:flex;align-items:center;gap:8px;padding:10px 4px;background:transparent;border:none;
  cursor:pointer;font-size:13.5px;color:var(--fg);transition:.2s;user-select:none}
.pw-check:hover{color:#6366f1}
.pw-check:has(input:checked){color:#4f46e5;font-weight:500}
.pw-check input{display:none}
/* 用 ::before 模拟复选框 */
.pw-check::before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;flex-shrink:0;border-radius:5px;
  border:2px solid var(--line);background:var(--bg);color:transparent;
  font-size:11px;transition:.2s}
.pw-check:has(input:checked)::before{background:#6366f1;border-color:#6366f1;color:#fff}
.pw-select{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);cursor:pointer;box-sizing:border-box}
.pw-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.pw-btn{width:100%;height:50px;border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);box-shadow:0 6px 18px rgba(99,102,241,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.pw-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(99,102,241,.42)}

.pw-result{background:var(--panel);border-radius:16px;padding:22px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.pw-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;
  font-size:14px;font-weight:600;color:var(--fg)}
.pw-result-head i{color:#6366f1;margin-right:6px}
.pw-copy-all{height:32px;padding:0 14px;border:1px solid var(--line);background:var(--panel);border-radius:8px;cursor:pointer;
  font-size:13px;color:#6366f1;transition:.2s;font-family:inherit;display:inline-flex;align-items:center;gap:6px}
.pw-copy-all:hover{background:rgba(99,102,241,.08)}
.pw-list{display:flex;flex-direction:column;gap:10px}
.pw-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--hover);border-radius:10px;
  border:1px solid var(--line)}
.pw-pwd{flex:1;font-family:monospace;font-size:15px;color:var(--fg);word-break:break-all;letter-spacing:.5px}
.pw-tag{padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}
.pw-tag-weak{background:rgba(239,68,68,.1);color:#ef4444}
.pw-tag-mid{background:rgba(245,158,11,.15);color:#b45309}
.pw-tag-strong{background:rgba(16,185,129,.1);color:#10b981}
.pw-tag-vstrong{background:rgba(99,102,241,.1);color:#6366f1}
.pw-copy{width:34px;height:34px;border:1px solid var(--line);background:var(--panel);border-radius:8px;cursor:pointer;
  color:var(--muted);transition:.2s;display:flex;align-items:center;justify-content:center;font-size:13px}
.pw-copy:hover{border-color:#c7d2fe;color:#6366f1}

@media (max-width:768px){
  .pw-card,.pw-result{padding:20px 16px}
  .pw-checks{grid-template-columns:1fr}
  .pw-pwd{font-size:13px}
}


/* ===== RGB颜色对照表 rgb- ===== */
.rgb-wrap{max-width:1000px;margin:0 auto}
.rgb-converter{background:var(--panel);border-radius:16px;padding:24px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:20px}
.rgb-converter h2{font-size:16px;color:var(--fg);margin:0 0 18px;display:flex;align-items:center;gap:8px}
.rgb-converter h2 i{color:#6366f1}
.rgb-conv-row{display:grid;grid-template-columns:1fr 1fr 80px;gap:18px;align-items:end}
.rgb-conv-input label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.rgb-rgb-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rgb-rgb-inputs input,.rgb-conv-input input[type=text]{width:100%;height:44px;padding:0 12px;border:2px solid var(--line);
  border-radius:10px;font-size:14px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box;
  font-family:monospace;text-align:center}
.rgb-rgb-inputs input:focus,.rgb-conv-input input[type=text]:focus{outline:none;border-color:#6366f1;background:var(--panel);
  box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.rgb-preview{width:80px;height:80px;border-radius:12px;border:1px solid var(--line);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.2),0 4px 14px rgba(31,45,61,.1);transition:.2s}

.rgb-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.rgb-tab{padding:9px 18px;border:1px solid var(--line);background:var(--panel);border-radius:20px;cursor:pointer;
  font-size:13.5px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.rgb-tab:hover{border-color:#a5b4fc;color:#6366f1}
.rgb-tab.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);border-color:#6366f1;color:#fff;
  box-shadow:0 4px 14px rgba(99,102,241,.3)}

.rgb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.rgb-color{background:var(--panel);border-radius:12px;padding:10px;border:1px solid var(--line);cursor:pointer;
  transition:.2s;text-align:center}
.rgb-color:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(31,45,61,.12);border-color:#c7d2fe}
.rgb-color-swatch{width:100%;aspect-ratio:2/1;border-radius:8px;margin-bottom:10px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.rgb-color-name{font-size:14px;font-weight:600;color:var(--fg);margin-bottom:4px}
.rgb-color-hex{font-size:12px;color:#6366f1;font-family:monospace;font-weight:600;margin-bottom:2px}
.rgb-color-rgb{font-size:11px;color:var(--muted);font-family:monospace}
.rgb-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:18px 0 0}
.rgb-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .rgb-converter{padding:18px 16px}
  .rgb-conv-row{grid-template-columns:1fr;gap:14px}
  .rgb-preview{width:100%;height:60px}
  .rgb-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .rgb-tab{padding:7px 14px;font-size:12.5px}
}
/* ===== UTF-8编码转换 uf- ===== */
.uf-wrap{max-width:760px;margin:0 auto}
.uf-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);display:flex;flex-direction:column;gap:18px}
.uf-mode-tabs{display:flex;gap:8px;flex-wrap:wrap}
.uf-mode{padding:9px 18px;border:2px solid var(--line);background:var(--panel);border-radius:10px;cursor:pointer;
  font-size:13.5px;color:var(--muted);transition:.2s;font-family:monospace;font-weight:500}
.uf-mode:hover{border-color:#a5b4fc;color:#6366f1}
.uf-mode.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);border-color:#6366f1;color:#fff;
  box-shadow:0 4px 12px rgba(99,102,241,.28)}
.uf-editor{background:var(--hover);border-radius:12px;padding:14px;border:1px solid var(--line)}
.uf-editor-head{display:flex;justify-content:space-between;align-items:center;font-size:13.5px;font-weight:600;
  color:var(--fg);margin-bottom:10px}
.uf-editor-head i{color:#6366f1;margin-right:6px}
.uf-clear{height:28px;padding:0 12px;border:1px solid var(--line);background:var(--panel);border-radius:7px;cursor:pointer;
  font-size:12.5px;color:var(--muted);transition:.2s;font-family:inherit}
.uf-clear:hover{border-color:rgba(239,68,68,.4);color:#ef4444}
.uf-editor textarea{width:100%;min-height:120px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;
  font-size:14px;line-height:1.7;color:var(--fg);background:var(--bg);box-sizing:border-box;font-family:monospace;resize:vertical}
.uf-editor textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.uf-editor textarea[readonly]{background:var(--hover);color:var(--fg)}
.uf-actions{display:flex;gap:12px;flex-wrap:wrap}
.uf-btn{flex:1;min-width:120px;height:46px;border:none;border-radius:12px;cursor:pointer;
  font-size:14px;font-weight:700;color:#fff;background:linear-gradient(135deg,#6366f1,#8b8ef8);
  box-shadow:0 5px 16px rgba(99,102,241,.3);transition:.2s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.uf-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(99,102,241,.42)}
.uf-btn-ghost{background:var(--panel);color:var(--muted);border:1px solid var(--line);box-shadow:none}
.uf-btn-ghost:hover{border-color:#c7d2fe;color:#6366f1;transform:none;box-shadow:none}
.uf-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:18px 0 0}
.uf-tip i{color:#6366f1;margin-right:4px}

/* ===== 26个英文字母 en- ===== */
.en-wrap{max-width:900px;margin:0 auto}
.en-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}
.en-quick-item{background:linear-gradient(135deg,rgba(99,102,241,.08),var(--panel));border:1px solid rgba(99,102,241,.2);border-radius:14px;
  padding:18px;text-align:center}
.en-quick-item b{display:block;font-size:32px;font-weight:900;color:#6366f1;line-height:1.1;margin-bottom:4px}
.en-quick-item span{font-size:13px;color:var(--muted)}
.en-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-bottom:22px}
.en-card{background:var(--panel);border-radius:14px;padding:16px 12px;border:1px solid var(--line);text-align:center;
  position:relative;box-shadow:0 2px 10px rgba(31,45,61,.04);transition:.2s}
.en-card:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(99,102,241,.14);border-color:rgba(99,102,241,.3)}
.en-card-vowel{border-color:rgba(139,92,246,.3);background:linear-gradient(135deg,rgba(139,92,246,.08),var(--panel))}
.en-idx{position:absolute;top:8px;left:10px;font-size:11px;color:var(--muted);font-weight:700;font-family:monospace}
.en-letters{display:flex;align-items:baseline;justify-content:center;gap:6px;margin-bottom:10px}
.en-upper{font-size:36px;font-weight:800;color:var(--fg);font-family:Georgia,serif;line-height:1}
.en-lower{font-size:26px;font-weight:700;color:#6366f1;font-family:Georgia,serif;line-height:1}
.en-phonetic{font-size:13px;color:var(--muted);font-family:monospace;margin-bottom:4px}
.en-cn{font-size:12.5px;color:var(--muted)}
.en-badge{position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:10px;font-size:10.5px;
  background:#8b5cf6;color:#fff;font-weight:600}
.en-note{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.en-note h3{font-size:15px;color:var(--fg);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.en-note h3 i{color:#6366f1}
.en-note ul{margin:0;padding-left:20px}
.en-note li{font-size:13px;color:var(--muted);line-height:2}
.en-note li b{color:#6366f1}

@media (max-width:768px){
  .uf-card{padding:20px 16px}
  .uf-actions{flex-direction:column}
  .uf-btn{width:100%}
  .en-grid{grid-template-columns:repeat(3,1fr);gap:10px}
  .en-card{padding:12px 6px}
  .en-upper{font-size:26px}
  .en-lower{font-size:18px}
  .en-phonetic{font-size:11px}
  .en-cn{font-size:11px}
  .en-quick-item b{font-size:24px}
}


/* ===== 元素周期表 pt- ===== */
.pt-wrap{max-width:1200px;margin:0 auto}
.pt-legend{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.pt-leg{padding:5px 12px;border-radius:14px;font-size:12px;color:#fff;font-weight:600}
.pt-leg-nonmetal{background:#22c55e}
.pt-leg-noble{background:#a855f7}
.pt-leg-alkali{background:#ef4444}
.pt-leg-alkaline{background:#f97316}
.pt-leg-metalloid{background:#eab308;color:#333}
.pt-leg-halogen{background:#06b6d4}
.pt-leg-post{background:#3b82f6}
.pt-leg-transition{background:#6366f1}
.pt-leg-lanth{background:#ec4899}
.pt-leg-actin{background:#8b5cf6}
.pt-search{position:relative;margin-bottom:20px}
.pt-search i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:15px}
.pt-search input{width:100%;height:48px;padding:0 16px 0 44px;border:2px solid #e2e8f0;border-radius:12px;
  font-size:15px;color:#303133;background:#fff;transition:.2s;box-sizing:border-box}
.pt-search input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.pt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px}
.pt-el{aspect-ratio:1/1;border-radius:10px;padding:8px 6px;color:#fff;cursor:pointer;transition:.2s;
  display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;
  box-shadow:0 2px 8px rgba(31,45,61,.1)}
.pt-el:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 6px 18px rgba(31,45,61,.2);z-index:2}
.pt-el-no{position:absolute;top:3px;left:5px;font-size:10px;opacity:.8;font-family:monospace}
.pt-el-sym{font-size:22px;font-weight:800;font-family:Georgia,serif;line-height:1;margin-bottom:3px}
.pt-el-cn{font-size:12px;font-weight:600;line-height:1;margin-bottom:2px}
.pt-el-mass{font-size:9.5px;opacity:.75;font-family:monospace;line-height:1}
.pt-el-nonmetal{background:linear-gradient(135deg,#22c55e,#4ade80)}
.pt-el-noble{background:linear-gradient(135deg,#a855f7,#c084fc)}
.pt-el-alkali{background:linear-gradient(135deg,#ef4444,#f87171)}
.pt-el-alkaline{background:linear-gradient(135deg,#f97316,#fb923c)}
.pt-el-metalloid{background:linear-gradient(135deg,#eab308,#facc15);color:#422006}
.pt-el-halogen{background:linear-gradient(135deg,#06b6d4,#22d3ee)}
.pt-el-post{background:linear-gradient(135deg,#3b82f6,#60a5fa)}
.pt-el-transition{background:linear-gradient(135deg,#6366f1,#818cf8)}
.pt-el-lanth{background:linear-gradient(135deg,#ec4899,#f472b6)}
.pt-el-actin{background:linear-gradient(135deg,#8b5cf6,#a78bfa)}
.pt-empty{grid-column:1/-1;text-align:center;padding:40px;color:#94a3b8;font-size:14px}
.pt-detail{margin-top:20px}
.pt-detail-card{background:#fff;border-radius:14px;padding:20px 24px;border:1px solid #eef2f7;
  box-shadow:0 4px 18px rgba(31,45,61,.08);max-width:400px}
.pt-detail-head{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}
.pt-detail-no{font-size:12px;color:#94a3b8;font-family:monospace}
.pt-detail-sym{font-size:32px;font-weight:800;font-family:Georgia,serif;color:#1f2d3d;line-height:1}
.pt-detail-name{font-size:18px;font-weight:700;color:#1f2d3d;margin-bottom:14px}
.pt-detail-name em{font-style:normal;font-size:13px;color:#94a3b8;font-weight:400}
.pt-detail-row{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid #f4f7fa;font-size:13.5px}
.pt-detail-row span{color:#909399}
.pt-detail-row b{color:#6366f1}
.pt-tip{font-size:13px;color:#909399;line-height:1.7;margin:20px 0 0}
.pt-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .pt-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:6px}
  .pt-el-sym{font-size:18px}
  .pt-el-cn{font-size:10px}
  .pt-el-mass{font-size:8px}
  .pt-detail-card{max-width:100%}
}

/* ===== 元素周期表 搜索框样式修正（覆盖全局） ===== */
.pt-wrap .pt-search{position:relative;margin-bottom:20px;display:block}
.pt-wrap .pt-search i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:15px;z-index:2}
.pt-wrap .pt-search input[type=text]{width:100%;height:48px !important;padding:0 16px 0 44px !important;
  border:2px solid #e2e8f0 !important;border-radius:12px !important;font-size:15px !important;
  color:#303133 !important;background:#fff !important;transition:.2s;box-sizing:border-box;
  margin:0 !important;line-height:normal !important;box-shadow:none}
.pt-wrap .pt-search input[type=text]:focus{outline:none;border-color:#6366f1 !important;
  box-shadow:0 0 0 3px rgba(99,102,241,.12) !important}

/* ===== 元素周期表 搜索框 强制修正 ===== */
.pt-wrap .pt-search{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  margin-bottom:20px !important;
  padding:0 !important;
  position:relative !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  height:auto !important;
  max-height:none !important;
}
.pt-wrap .pt-search i{
  position:absolute !important;
  left:16px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  color:#94a3b8 !important;
  font-size:15px !important;
  pointer-events:none !important;
  z-index:2 !important;
}
.pt-wrap .pt-search input,
.pt-wrap .pt-search input[type=text]{
  display:block !important;
  width:100% !important;
  height:46px !important;
  min-height:46px !important;
  max-height:46px !important;
  padding:0 16px 0 44px !important;
  border:2px solid #e2e8f0 !important;
  border-radius:12px !important;
  font-size:15px !important;
  color:#303133 !important;
  background:#fff !important;
  box-sizing:border-box !important;
  margin:0 !important;
  line-height:normal !important;
  box-shadow:none !important;
  outline:none !important;
}
.pt-wrap .pt-search input:focus{
  border-color:#6366f1 !important;
  box-shadow:0 0 0 3px rgba(99,102,241,.12) !important;
}

/* ===== 全国少数民族分布表 mz- ===== */
.mz-wrap{max-width:1000px;margin:0 auto}
.mz-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}
.mz-quick-item{background:linear-gradient(135deg,rgba(99,102,241,.08),var(--panel));border:1px solid rgba(99,102,241,.2);border-radius:14px;
  padding:18px;text-align:center}
.mz-quick-item b{display:block;font-size:32px;font-weight:900;color:#6366f1;line-height:1.1;margin-bottom:4px}
.mz-quick-item span{font-size:13px;color:var(--muted)}
.mz-search{display:flex;align-items:center;gap:10px;position:relative;margin-bottom:18px}
.mz-search i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:15px;pointer-events:none;z-index:2}
.mz-search input{display:block;width:100%;height:46px;padding:0 16px 0 44px;border:2px solid var(--line);
  border-radius:12px;font-size:15px;color:var(--fg);background:var(--bg);box-sizing:border-box;transition:.2s;margin:0;outline:none}
.mz-search input:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.mz-table-wrap{background:var(--panel);border-radius:16px;border:1px solid var(--line);overflow:auto;max-height:640px;
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.mz-table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
.mz-table th{background:var(--hover);color:#6366f1;font-weight:600;padding:14px 12px;text-align:left;
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2;font-size:13.5px}
.mz-th-no{width:50px;text-align:center !important}
.mz-th-py{width:140px}
.mz-th-pop{width:100px;text-align:right !important}
.mz-table td{padding:12px;border-bottom:1px solid var(--line);color:var(--fg);vertical-align:top}
.mz-table tbody tr:hover{background:var(--hover)}
.mz-no{text-align:center;color:var(--muted);font-size:12.5px;font-family:monospace}
.mz-name{font-weight:700;color:var(--fg);white-space:nowrap}
.mz-py{color:var(--muted);font-size:12.5px;font-family:monospace;white-space:nowrap}
.mz-dist{color:var(--fg);line-height:1.7}
.mz-pop{text-align:right;color:#6366f1;font-weight:600;font-family:monospace}
.mz-empty{text-align:center;padding:40px;color:var(--muted);font-size:14px}
.mz-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:18px 0 0}
.mz-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .mz-quick-item b{font-size:24px}
  .mz-table{font-size:13px;min-width:520px}
  .mz-table th,.mz-table td{padding:9px 8px}
}
/* ===== 择吉黄历 hl- ===== */
.hl-wrap{max-width:760px;margin:0 auto}
.hl-picker{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:20px}
.hl-nav,.hl-today{height:40px;padding:0 16px;border:1px solid var(--line);background:var(--panel);border-radius:10px;
  cursor:pointer;font-size:13.5px;color:var(--muted);transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;gap:6px}
.hl-nav:hover,.hl-today:hover{border-color:rgba(220,38,38,.4);color:#dc2626}
.hl-today{background:linear-gradient(135deg,#dc2626,#f87171);border-color:#dc2626;color:#fff}
.hl-today:hover{color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(220,38,38,.3)}
.hl-date{flex:1;min-width:160px;height:40px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:14px;color:var(--fg);background:var(--bg);box-sizing:border-box}
.hl-date:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.1)}

.hl-hero{background:linear-gradient(135deg,rgba(239,68,68,.08),rgba(239,68,68,.04));border:1px solid rgba(239,68,68,.3);border-radius:16px;
  padding:26px 28px;margin-bottom:18px;display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;
  box-shadow:0 4px 18px rgba(220,38,38,.08)}
.hl-hero-left{text-align:center;padding-right:24px;border-right:1px solid rgba(239,68,68,.3)}
.hl-solar-day{font-size:72px;font-weight:900;color:#dc2626;line-height:1;font-family:Georgia,serif}
.hl-solar-info{font-size:13px;color:var(--muted);margin-top:8px;white-space:nowrap}
.hl-hero-right{display:flex;flex-direction:column;gap:10px}
.hl-lunar{font-size:22px;font-weight:700;color:var(--fg);font-family:serif}
.hl-ganzhi{font-size:15px;color:var(--muted);font-family:serif;letter-spacing:.5px}
.hl-meta{display:inline-block;padding:4px 12px;background:rgba(239,68,68,.1);color:#dc2626;border-radius:20px;
  font-size:12.5px;font-weight:600;align-self:flex-start}

.hl-sections{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.hl-section{background:var(--panel);border-radius:14px;padding:20px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.hl-section-head{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;margin-bottom:14px}
.hl-section-yi .hl-section-head{color:#16a34a}
.hl-section-ji .hl-section-head{color:#dc2626}
.hl-section-body{display:flex;flex-wrap:wrap;gap:8px}
.hl-tag{padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500}
.hl-tag-yi{background:rgba(16,185,129,.08);color:#16a34a;border:1px solid rgba(16,185,129,.3)}
.hl-tag-ji{background:rgba(239,68,68,.08);color:#dc2626;border:1px solid rgba(239,68,68,.3)}

.hl-extra{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.hl-extra-item{background:var(--panel);border-radius:12px;padding:14px;border:1px solid var(--line);text-align:center;
  box-shadow:0 2px 8px rgba(31,45,61,.04)}
.hl-extra-label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
.hl-extra-val{display:block;font-size:15px;font-weight:700;color:#dc2626}
.hl-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.hl-tip i{color:#dc2626;margin-right:4px}

@media (max-width:768px){
  .hl-hero{grid-template-columns:1fr;padding:20px;gap:16px}
  .hl-hero-left{padding-right:0;padding-bottom:16px;border-right:none;border-bottom:1px solid rgba(239,68,68,.3)}
  .hl-solar-day{font-size:56px}
  .hl-sections{grid-template-columns:1fr}
  .hl-extra{grid-template-columns:repeat(2,1fr)}
  .hl-picker{gap:8px}
  .hl-nav,.hl-today{padding:0 12px;font-size:12.5px}
}

/* ===== 佛历查询 fl- （新版） ===== */
.fl-wrap{max-width:1000px;margin:0 auto}
.fl-intro{display:flex;gap:14px;align-items:flex-start;background:linear-gradient(135deg,rgba(245,158,11,.1),rgba(245,158,11,.15));
  border-left:4px solid #f59e0b;border-radius:10px;padding:16px 20px;margin-bottom:20px;
  font-size:14px;color:#78350f;line-height:1.8}
.fl-intro i{font-size:22px;color:#f59e0b;flex-shrink:0;margin-top:2px}
.fl-intro b{color:#b45309}

.fl-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:22px}
.fl-tab{padding:12px 22px;border:none;background:transparent;cursor:pointer;font-size:14px;font-weight:600;
  color:var(--muted);transition:.2s;font-family:inherit;border-bottom:2px solid transparent;margin-bottom:-1px;
  display:inline-flex;align-items:center;gap:8px}
.fl-tab:hover{color:#d97706;background:rgba(245,158,11,.08)}
.fl-tab.on{color:#d97706;border-bottom-color:#f59e0b}
.fl-panel{display:none}
.fl-panel.on{display:block}

.fl-head{text-align:center;margin-bottom:22px}
.fl-head-main{font-size:30px;font-weight:800;color:#b45309;letter-spacing:2px}
.fl-head-sub{font-size:14px;color:var(--muted);margin-top:6px}
.fl-nav{display:flex;gap:10px;justify-content:center;margin-bottom:22px}
.fl-nav-btn{width:44px;height:44px;border:1px solid var(--line);background:var(--panel);border-radius:12px;cursor:pointer;
  color:#b45309;font-size:15px;transition:.2s;display:flex;align-items:center;justify-content:center}
.fl-nav-btn:hover{border-color:#f59e0b;background:rgba(245,158,11,.08)}
.fl-today{height:44px;padding:0 24px;border:none;border-radius:12px;cursor:pointer;
  background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff;font-size:14px;font-weight:700;font-family:inherit;
  box-shadow:0 4px 14px rgba(245,158,11,.3);transition:.2s}
.fl-today:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(245,158,11,.42)}

.fl-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:10px}
.fl-weekdays span{text-align:center;font-size:13px;color:var(--muted);padding:6px 0;font-weight:600}
.fl-weekdays .fl-wd-weekend{color:#f59e0b}

.fl-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.fl-cell{background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:10px 6px;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  transition:.2s;position:relative;box-sizing:border-box}
.fl-cell:hover{box-shadow:0 4px 14px rgba(245,158,11,.15);border-color:rgba(245,158,11,.4);transform:translateY(-1px)}
.fl-cell-empty{background:transparent;border:none;min-height:76px;pointer-events:none}
.fl-cell-today{background:linear-gradient(135deg,#f59e0b,#fbbf24);border-color:#f59e0b;
  box-shadow:0 4px 14px rgba(245,158,11,.3)}
.fl-cell-today .fl-cell-solar,.fl-cell-today .fl-cell-lunar{color:#fff}
.fl-cell-today .fl-cell-fest{background:#fff;color:#d97706}
.fl-cell-weekend .fl-cell-solar{color:#f59e0b}
.fl-cell-today.fl-cell-weekend .fl-cell-solar{color:#fff}

.fl-cell-solar{font-size:18px;font-weight:700;color:var(--fg);line-height:1.1;margin-bottom:2px}
.fl-cell-lunar{font-size:11px;color:var(--muted);line-height:1.2}
.fl-cell-jieqi{font-size:11px;color:#16a34a;font-weight:600;line-height:1.2}
.fl-cell-fest{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);
  font-size:10px;background:rgba(245,158,11,.15);color:#b45309;padding:1px 6px;border-radius:8px;
  white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.fl-cell-hasfest{padding-bottom:22px}

.fl-legend{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;margin-top:18px;font-size:13px;color:var(--muted)}
.fl-legend span{display:inline-flex;align-items:center;gap:6px}
.fl-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.fl-dot-today{background:#f59e0b}
.fl-dot-fest{background:#fbbf24}
.fl-dot-jieqi{background:#16a34a}

.fl-fest-list{margin-top:26px;background:rgba(245,158,11,.08);border-radius:14px;padding:22px;border:1px solid var(--line)}
.fl-fest-list h3{font-size:16px;color:#b45309;margin:0 0 16px;padding-bottom:12px;
  border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.fl-fest-list h3 i{color:#f59e0b}
.fl-fest-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--panel);border-radius:10px;
  margin-bottom:8px;border:1px solid var(--line);font-size:14px;flex-wrap:wrap}
.fl-fest-item:hover{box-shadow:0 4px 12px rgba(245,158,11,.15)}
.fl-fest-badge{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff;padding:3px 10px;
  border-radius:20px;font-size:12.5px;font-weight:600;flex-shrink:0}
.fl-fest-lunar{color:var(--muted);font-size:12.5px;flex-shrink:0}
.fl-fest-name{color:var(--fg);font-weight:600}
.fl-fest-month{margin-bottom:22px}
.fl-fest-month h4{font-size:15px;color:#b45309;margin:0 0 12px;padding-bottom:8px;
  border-bottom:1px dashed var(--line)}
.fl-empty{text-align:center;color:var(--muted);font-size:14px;padding:20px}

.fl-conv-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.fl-conv-box{background:rgba(245,158,11,.08);border-radius:14px;padding:24px;border:1px solid var(--line);
  border-left:4px solid #f59e0b}
.fl-conv-box h3{font-size:15px;color:#b45309;margin:0 0 18px;display:flex;align-items:center;gap:8px}
.fl-conv-box h3 i{color:#f59e0b}
.fl-form{display:flex;flex-direction:column;gap:12px}
.fl-form label{font-size:13.5px;color:var(--muted);font-weight:500}
.fl-form input{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.fl-form input:focus{outline:none;border-color:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.12)}
.fl-date-group{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fl-btn{height:46px;border:none;border-radius:12px;cursor:pointer;
  background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff;font-size:14px;font-weight:700;font-family:inherit;
  box-shadow:0 5px 16px rgba(245,158,11,.3);transition:.2s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px}
.fl-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(245,158,11,.42)}
.fl-result{margin-top:12px;padding:14px 16px;background:var(--panel);border-radius:10px;border:1px solid var(--line);
  font-size:13.5px;color:var(--fg);line-height:1.9}
.fl-result-main{color:#b45309;font-weight:700;font-size:15px;margin-top:6px}
.fl-result-fest{color:#dc2626;font-weight:600;margin-top:6px}

.fl-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:22px 0 0;text-align:center}
.fl-tip i{color:#f59e0b;margin-right:4px}
.fl-tip b{color:#f59e0b}

@media (max-width:900px){
  .fl-conv-grid{grid-template-columns:1fr}
}
@media (max-width:768px){
  .fl-head-main{font-size:22px}
  .fl-grid,.fl-weekdays{gap:4px}
  .fl-cell{min-height:58px;padding:6px 2px;border-radius:8px}
  .fl-cell-empty{min-height:58px}
  .fl-cell-solar{font-size:15px}
  .fl-cell-lunar,.fl-cell-jieqi{font-size:9px}
  .fl-cell-fest{font-size:8px;padding:0 4px;bottom:2px}
  .fl-cell-hasfest{padding-bottom:16px}
  .fl-nav-btn{width:38px;height:38px}
  .fl-today{height:38px;padding:0 18px;font-size:13px}
  .fl-legend{gap:12px;font-size:12px}
  .fl-tab{padding:10px 14px;font-size:13px}
  .fl-intro{padding:12px 14px;font-size:13px}
  .fl-conv-box{padding:18px 16px}
}

/* ===== 道历月历 ===== */
.dl-wrap{max-width:1000px;margin:0 auto}
.dl-intro{display:flex;gap:14px;align-items:flex-start;background:linear-gradient(135deg,rgba(124,58,237,.08),rgba(124,58,237,.04));
  border-left:4px solid #7c3aed;border-radius:10px;padding:16px 20px;margin-bottom:20px;
  font-size:14px;color:#4c1d95;line-height:1.8}
.dl-intro i{font-size:22px;color:#7c3aed;flex-shrink:0;margin-top:2px}
.dl-intro b{color:#6d28d9}

.dl-tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:22px}
.dl-tab{padding:12px 22px;border:none;background:transparent;cursor:pointer;font-size:14px;font-weight:600;
  color:var(--muted);transition:.2s;font-family:inherit;border-bottom:2px solid transparent;margin-bottom:-1px;
  display:inline-flex;align-items:center;gap:8px}
.dl-tab:hover{color:#7c3aed;background:rgba(124,58,237,.06)}
.dl-tab.on{color:#6d28d9;border-bottom-color:#7c3aed}
.dl-panel{display:none}
.dl-panel.on{display:block}

.dl-head{text-align:center;margin-bottom:22px}
.dl-head-main{font-size:30px;font-weight:800;color:#6d28d9;letter-spacing:2px}
.dl-head-sub{font-size:14px;color:var(--muted);margin-top:6px}
.dl-nav{display:flex;gap:10px;justify-content:center;margin-bottom:22px}
.dl-nav-btn{width:44px;height:44px;border:1px solid var(--line);background:var(--panel);border-radius:12px;cursor:pointer;
  color:#7c3aed;font-size:15px;transition:.2s;display:flex;align-items:center;justify-content:center}
.dl-nav-btn:hover{border-color:#7c3aed;background:rgba(124,58,237,.06)}
.dl-today{height:44px;padding:0 24px;border:none;border-radius:12px;cursor:pointer;
  background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;font-size:14px;font-weight:700;font-family:inherit;
  box-shadow:0 4px 14px rgba(124,58,237,.3);transition:.2s}
.dl-today:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(124,58,237,.42)}

.dl-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:10px}
.dl-weekdays span{text-align:center;font-size:13px;color:var(--muted);padding:6px 0;font-weight:600}
.dl-weekdays .dl-wd-weekend{color:#7c3aed}

.dl-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.dl-cell{background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:10px 6px;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  transition:.2s;position:relative;box-sizing:border-box}
.dl-cell:hover{box-shadow:0 4px 14px rgba(124,58,237,.15);border-color:rgba(124,58,237,.3);transform:translateY(-1px)}
.dl-cell-empty{background:transparent;border:none;min-height:76px;pointer-events:none}
.dl-cell-today{background:linear-gradient(135deg,#7c3aed,#a78bfa);border-color:#7c3aed;
  box-shadow:0 4px 14px rgba(124,58,237,.3)}
.dl-cell-today .dl-cell-solar,.dl-cell-today .dl-cell-lunar{color:#fff}
.dl-cell-today .dl-cell-fest{background:#fff;color:#6d28d9}
.dl-cell-weekend .dl-cell-solar{color:#7c3aed}
.dl-cell-today.dl-cell-weekend .dl-cell-solar{color:#fff}

.dl-cell-solar{font-size:18px;font-weight:700;color:var(--fg);line-height:1.1;margin-bottom:2px}
.dl-cell-lunar{font-size:11px;color:var(--muted);line-height:1.2}
.dl-cell-jieqi{font-size:11px;color:#16a34a;font-weight:600;line-height:1.2}
.dl-cell-fest{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);
  font-size:10px;background:rgba(124,58,237,.12);color:#6d28d9;padding:1px 6px;border-radius:8px;
  white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.dl-cell-hasfest{padding-bottom:22px}

.dl-legend{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;margin-top:18px;font-size:13px;color:var(--muted)}
.dl-legend span{display:inline-flex;align-items:center;gap:6px}
.dl-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.dl-dot-today{background:#7c3aed}
.dl-dot-fest{background:#a78bfa}
.dl-dot-jieqi{background:#16a34a}

.dl-fest-list{margin-top:26px;background:rgba(124,58,237,.06);border-radius:14px;padding:22px;border:1px solid var(--line)}
.dl-fest-list h3{font-size:16px;color:#6d28d9;margin:0 0 16px;padding-bottom:12px;
  border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.dl-fest-list h3 i{color:#7c3aed}
.dl-fest-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--panel);border-radius:10px;
  margin-bottom:8px;border:1px solid var(--line);font-size:14px;flex-wrap:wrap}
.dl-fest-item:hover{box-shadow:0 4px 12px rgba(124,58,237,.15)}
.dl-fest-badge{background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;padding:3px 10px;
  border-radius:20px;font-size:12.5px;font-weight:600;flex-shrink:0}
.dl-fest-lunar{color:var(--muted);font-size:12.5px;flex-shrink:0}
.dl-fest-name{color:var(--fg);font-weight:600}
.dl-fest-month{margin-bottom:22px}
.dl-fest-month h4{font-size:15px;color:#6d28d9;margin:0 0 12px;padding-bottom:8px;
  border-bottom:1px dashed var(--line)}
.dl-empty{text-align:center;color:var(--muted);font-size:14px;padding:20px}

.dl-conv-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.dl-conv-box{background:rgba(124,58,237,.06);border-radius:14px;padding:24px;border:1px solid var(--line);
  border-left:4px solid #7c3aed}
.dl-conv-box h3{font-size:15px;color:#6d28d9;margin:0 0 18px;display:flex;align-items:center;gap:8px}
.dl-conv-box h3 i{color:#7c3aed}
.dl-form{display:flex;flex-direction:column;gap:12px}
.dl-form label{font-size:13.5px;color:var(--muted);font-weight:500}
.dl-form input{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:10px;
  font-size:15px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.dl-form input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.12)}
.dl-date-group{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dl-btn{height:46px;border:none;border-radius:12px;cursor:pointer;
  background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;font-size:14px;font-weight:700;font-family:inherit;
  box-shadow:0 5px 16px rgba(124,58,237,.3);transition:.2s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px}
.dl-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(124,58,237,.42)}
.dl-result{margin-top:12px;padding:14px 16px;background:var(--panel);border-radius:10px;border:1px solid var(--line);
  font-size:13.5px;color:var(--fg);line-height:1.9}
.dl-result-main{color:#6d28d9;font-weight:700;font-size:15px;margin-top:6px}
.dl-result-fest{color:#dc2626;font-weight:600;margin-top:6px}

.dl-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:22px 0 0;text-align:center}
.dl-tip i{color:#7c3aed;margin-right:4px}
.dl-tip b{color:#7c3aed}

@media (max-width:900px){
  .dl-conv-grid{grid-template-columns:1fr}
}
@media (max-width:768px){
  .dl-head-main{font-size:22px}
  .dl-grid,.dl-weekdays{gap:4px}
  .dl-cell{min-height:58px;padding:6px 2px;border-radius:8px}
  .dl-cell-empty{min-height:58px}
  .dl-cell-solar{font-size:15px}
  .dl-cell-lunar,.dl-cell-jieqi{font-size:9px}
  .dl-cell-fest{font-size:8px;padding:0 4px;bottom:2px}
  .dl-cell-hasfest{padding-bottom:16px}
  .dl-nav-btn{width:38px;height:38px}
  .dl-today{height:38px;padding:0 18px;font-size:13px}
  .dl-legend{gap:12px;font-size:12px}
  .dl-tab{padding:10px 14px;font-size:13px}
  .dl-intro{padding:12px 14px;font-size:13px}
  .dl-conv-box{padding:18px 16px}
}
/* ===== 痣相图解 zx- ===== */
.zx-wrap{max-width:1000px;margin:0 auto}
.zx-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.zx-tab{padding:10px 18px;border:2px solid var(--line);background:var(--panel);border-radius:12px;cursor:pointer;
  font-size:13.5px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500;
  display:inline-flex;align-items:center;gap:7px}
.zx-tab i{color:var(--muted);font-size:14px;transition:.2s}
.zx-tab:hover{border-color:rgba(220,38,38,.3);color:#dc2626}
.zx-tab:hover i{color:#dc2626}
.zx-tab.on{background:linear-gradient(135deg,#dc2626,#f87171);border-color:#dc2626;color:#fff;
  box-shadow:0 4px 14px rgba(220,38,38,.28)}
.zx-tab.on i{color:#fff}

.zx-search{display:flex;align-items:center;position:relative;margin-bottom:22px}
.zx-search i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:15px;pointer-events:none;z-index:2}
.zx-search input{display:block;width:100%;height:46px;padding:0 16px 0 44px;border:2px solid var(--line);
  border-radius:12px;font-size:15px;color:var(--fg);background:var(--bg);box-sizing:border-box;transition:.2s;margin:0;outline:none}
.zx-search input:focus{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12)}

.zx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.zx-card{background:var(--panel);border-radius:14px;padding:18px 20px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.04);transition:.2s}
.zx-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(220,38,38,.1);border-color:rgba(220,38,38,.3)}
.zx-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.zx-card-pos{font-size:13px;color:#dc2626;font-weight:600;background:rgba(239,68,68,.1);padding:3px 10px;border-radius:16px}
.zx-badge{padding:3px 10px;border-radius:16px;font-size:12px;font-weight:700;flex-shrink:0}
.zx-badge-ji{background:rgba(16,185,129,.1);color:#16a34a}
.zx-badge-zhong{background:rgba(245,158,11,.15);color:#b45309}
.zx-badge-xiong{background:rgba(239,68,68,.1);color:#dc2626}
.zx-card-name{font-size:17px;font-weight:700;color:var(--fg);margin-bottom:8px}
.zx-card-desc{font-size:13.5px;color:var(--muted);line-height:1.8}
.zx-empty{grid-column:1/-1;text-align:center;padding:40px;color:var(--muted);font-size:14px}

.zx-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:22px 0 0;text-align:center}
.zx-tip i{color:#dc2626;margin-right:4px}

@media (max-width:768px){
  .zx-tab{padding:8px 14px;font-size:12.5px}
  .zx-grid{grid-template-columns:1fr;gap:10px}
  .zx-card{padding:14px 16px}
  .zx-card-name{font-size:15px}
}


/* ===== 中文打字练习工具（用 :has 限定作用域，避免和速度打字机撞车） ===== */
.dz-wrap{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.dz-wrap:has(.dz-selector) .dz-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.dz-wrap:has(.dz-selector) .dz-stat{background:var(--panel);border-radius:12px;padding:16px;text-align:center;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.dz-wrap:has(.dz-selector) .dz-stat-num{display:block;font-size:24px;font-weight:800;color:#0ea5e9;line-height:1.2;margin-bottom:4px;
  font-variant-numeric:tabular-nums}
.dz-wrap:has(.dz-selector) .dz-stat-label{font-size:12.5px;color:var(--muted)}

.dz-selector{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--panel);border-radius:14px;
  padding:14px 18px;border:1px solid var(--line);box-shadow:0 2px 10px rgba(31,45,61,.05)}
.dz-selector > label{font-size:13.5px;color:var(--muted);font-weight:600}
.dz-lvls{display:flex;gap:8px;flex-wrap:wrap}
.dz-lvl{padding:8px 16px;border:2px solid var(--line);background:var(--panel);border-radius:20px;cursor:pointer;
  font-size:13px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.dz-lvl:hover{border-color:rgba(14,165,233,.4);color:#0ea5e9}
.dz-lvl.on{background:linear-gradient(135deg,#0ea5e9,#38bdf8);border-color:#0ea5e9;color:#fff;
  box-shadow:0 3px 10px rgba(14,165,233,.28)}
.dz-restart{margin-left:auto;height:38px;padding:0 18px;border:1px solid var(--line);background:var(--panel);border-radius:10px;
  cursor:pointer;font-size:13.5px;color:var(--muted);transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;gap:6px}
.dz-restart:hover{border-color:rgba(14,165,233,.4);color:#0ea5e9}

.dz-wrap:has(.dz-selector) .dz-board{background:var(--panel);border-radius:16px;padding:28px 26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.dz-wrap:has(.dz-selector) .dz-target{font-size:24px;font-weight:700;color:var(--fg);line-height:1.8;letter-spacing:2px;
  min-height:80px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  margin-bottom:20px;padding:0 10px;text-align:center;font-family:inherit}
.dz-wrap:has(.dz-selector) .dz-target span{padding:0 1px;transition:.15s}
.dz-wrap:has(.dz-selector) .dz-target .dz-ok{color:#16a34a}
.dz-wrap:has(.dz-selector) .dz-target .dz-err{color:#ef4444;text-decoration:underline wavy #ef4444}
.dz-wrap:has(.dz-selector) .dz-input{width:100%;height:52px;padding:0 18px;border:2px solid var(--line);border-radius:12px;font-size:18px;
  color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box;letter-spacing:1px;text-align:center}
.dz-wrap:has(.dz-selector) .dz-input:focus{outline:none;border-color:#0ea5e9;background:var(--panel);box-shadow:0 0 0 4px rgba(14,165,233,.12)}
.dz-wrap:has(.dz-selector) .dz-progress{height:8px;border-radius:5px;background:var(--line);overflow:hidden;margin-top:16px}
.dz-wrap:has(.dz-selector) .dz-progress-fill{display:block;height:100%;width:0;border-radius:5px;
  background:linear-gradient(90deg,#0ea5e9,#38bdf8);transition:width .15s}

.dz-wrap:has(.dz-selector) .dz-done{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.dz-wrap:has(.dz-selector) .dz-done-head{font-size:14px;font-weight:600;color:var(--fg);margin-bottom:14px;
  display:flex;align-items:center;gap:8px}
.dz-wrap:has(.dz-selector) .dz-done-head::before{content:'';width:4px;height:14px;border-radius:2px;background:#0ea5e9}
.dz-wrap:has(.dz-selector) .dz-done-body{display:flex;flex-direction:column;gap:8px}
.dz-wrap:has(.dz-selector) .dz-record{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;
  background:rgba(14,165,233,.08);border-radius:10px;font-size:13.5px;border:1px solid rgba(14,165,233,.3)}
.dz-wrap:has(.dz-selector) .dz-record-text{color:#0369a1;flex:1;line-height:1.6;word-break:break-all}
.dz-wrap:has(.dz-selector) .dz-record-len{color:#0ea5e9;font-weight:600;flex-shrink:0;margin-left:12px}
.dz-wrap:has(.dz-selector) .dz-empty{text-align:center;color:var(--muted);font-size:13px;margin:10px 0}

.dz-wrap:has(.dz-selector) .dz-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0;text-align:center}
.dz-wrap:has(.dz-selector) .dz-tip i{color:#0ea5e9;margin-right:4px}

@media (max-width:768px){
  .dz-wrap:has(.dz-selector) .dz-stats{gap:8px}
  .dz-wrap:has(.dz-selector) .dz-stat{padding:12px 6px}
  .dz-wrap:has(.dz-selector) .dz-stat-num{font-size:18px}
  .dz-wrap:has(.dz-selector) .dz-target{font-size:18px;letter-spacing:1px;min-height:60px}
  .dz-wrap:has(.dz-selector) .dz-input{font-size:16px;height:46px}
  .dz-wrap:has(.dz-selector) .dz-board{padding:20px 16px}
  .dz-restart{margin-left:0;width:100%;justify-content:center}
  .dz-selector{padding:12px 14px}
}

/* ===== GIF动图制作 gf- ===== */
.gf-wrap{max-width:800px;margin:0 auto}
.gf-card{background:var(--panel);border-radius:16px;padding:28px 26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:22px}
.gf-card h2{font-size:18px;color:var(--fg);margin:0 0 18px;display:flex;align-items:center;gap:8px}
.gf-card h2 i{color:#0ea5e9}
.gf-drop{border:2px dashed var(--line);border-radius:14px;padding:36px 20px;text-align:center;cursor:pointer;
  transition:.2s;background:var(--bg);margin-bottom:20px}
.gf-drop:hover,.gf-drop.gf-drop-over{border-color:#0ea5e9;background:rgba(14,165,233,.06)}
.gf-drop i{font-size:38px;color:#7dd3fc;margin-bottom:14px;display:block}
.gf-drop p{font-size:15px;color:var(--fg);margin:0 0 6px;font-weight:500}
.gf-drop span{font-size:12.5px;color:var(--muted)}

.gf-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px;margin-bottom:20px}
.gf-thumb{position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 2px 8px rgba(31,45,61,.06)}
.gf-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.gf-thumb-no{position:absolute;top:4px;left:4px;font-size:11px;color:#fff;background:rgba(0,0,0,.5);
  padding:1px 6px;border-radius:8px;font-weight:600}
.gf-thumb-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border:none;border-radius:50%;
  background:rgba(0,0,0,.55);color:#fff;font-size:16px;line-height:1;cursor:pointer;padding:0;
  display:flex;align-items:center;justify-content:center;transition:.2s}
.gf-thumb-del:hover{background:#ef4444}

.gf-settings{display:grid;gap:18px;margin-bottom:22px}
.gf-setting label{display:block;font-size:13.5px;color:var(--muted);font-weight:600;margin-bottom:10px}
.gf-setting label b{color:#0ea5e9}
.gf-range{width:100%;height:6px;-webkit-appearance:none;appearance:none;border-radius:3px;background:var(--line);outline:none}
.gf-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;
  background:linear-gradient(135deg,#0ea5e9,#38bdf8);cursor:pointer;box-shadow:0 2px 8px rgba(14,165,233,.4)}
.gf-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;border:none;
  background:linear-gradient(135deg,#0ea5e9,#38bdf8);cursor:pointer;box-shadow:0 2px 8px rgba(14,165,233,.4)}
.gf-chips{display:flex;gap:10px}
.gf-chip{flex:1;padding:10px 0;border:2px solid var(--line);background:var(--panel);border-radius:10px;cursor:pointer;
  font-size:14px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.gf-chip:hover{border-color:rgba(14,165,233,.4);color:#0ea5e9}
.gf-chip.on{background:linear-gradient(135deg,#0ea5e9,#38bdf8);border-color:#0ea5e9;color:#fff;
  box-shadow:0 4px 12px rgba(14,165,233,.28)}

.gf-actions{display:flex;gap:12px}
.gf-btn{flex:1;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#0ea5e9,#38bdf8);box-shadow:0 6px 18px rgba(14,165,233,.3);transition:.2s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.gf-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 22px rgba(14,165,233,.42)}
.gf-btn:disabled{opacity:.5;cursor:not-allowed}
.gf-btn-ghost{background:var(--panel);color:var(--muted);border:1px solid var(--line);box-shadow:none;flex:0 0 120px}
.gf-btn-ghost:hover:not(:disabled){border-color:var(--line);color:#ef4444;transform:none;box-shadow:none}

.gf-progress{margin-top:20px;padding:16px 18px;background:var(--hover);border-radius:12px}
.gf-progress-bar{height:8px;border-radius:5px;background:var(--line);overflow:hidden;margin-bottom:10px}
.gf-progress-fill{display:block;height:100%;width:0;border-radius:5px;
  background:linear-gradient(90deg,#38bdf8,#0ea5e9);transition:width .2s}
.gf-progress-text{font-size:13px;color:var(--muted);text-align:center}

.gf-result{background:var(--panel);border-radius:16px;padding:24px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:22px}
.gf-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;
  font-size:14px;font-weight:600;color:var(--fg)}
.gf-result-head i{color:#22c55e;margin-right:6px}
.gf-result-size{font-size:12.5px;color:var(--muted);font-weight:500}
.gf-result-box{background:var(--hover);border-radius:12px;padding:20px;text-align:center;margin-bottom:18px;
  border:1px dashed var(--line);min-height:150px;display:flex;align-items:center;justify-content:center}
.gf-result-box img{max-width:100%;max-height:360px;border-radius:6px}

.gf-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.gf-tip i{color:#0ea5e9;margin-right:4px}

@media (max-width:768px){
  .gf-card{padding:22px 18px}
  .gf-drop{padding:28px 16px}
  .gf-actions{flex-direction:column}
  .gf-btn-ghost{flex:1}
  .gf-thumbs{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:8px}
}

/* ===== 九宫格切图工具- ===== */
.jg-wrap{max-width:900px;margin:0 auto}
.jg-card{background:var(--panel);border-radius:16px;padding:28px 26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:22px}
.jg-card h2{font-size:18px;color:var(--fg);margin:0 0 18px;display:flex;align-items:center;gap:8px}
.jg-card h2 i{color:#ec4899}
.jg-drop{border:2px dashed var(--line);border-radius:14px;padding:40px 20px;text-align:center;cursor:pointer;
  transition:.2s;background:var(--bg);margin-bottom:20px}
.jg-drop:hover,.jg-drop.jg-drop-over{border-color:#ec4899;background:rgba(236,72,153,.06)}
.jg-drop i{font-size:38px;color:#f9a8d4;margin-bottom:14px;display:block}
.jg-drop p{font-size:15px;color:var(--fg);margin:0 0 6px;font-weight:500}
.jg-drop span{font-size:12.5px;color:var(--muted)}
.jg-field{margin-bottom:20px}
.jg-field > label{display:block;font-size:13.5px;color:var(--muted);font-weight:600;margin-bottom:10px}
.jg-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.jg-chip{padding:12px 14px;border:2px solid var(--line);background:var(--panel);border-radius:10px;cursor:pointer;
  font-size:14px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.jg-chip:hover{border-color:rgba(236,72,153,.4);color:#ec4899}
.jg-chip.on{background:linear-gradient(135deg,#ec4899,#f472b6);border-color:#ec4899;color:#fff;
  box-shadow:0 4px 12px rgba(236,72,153,.28)}
.jg-actions{display:flex;gap:12px}
.jg-btn{flex:1;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#ec4899,#f472b6);box-shadow:0 6px 18px rgba(236,72,153,.3);transition:.2s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}
.jg-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 22px rgba(236,72,153,.42)}
.jg-btn:disabled{opacity:.5;cursor:not-allowed;padding: 10px;}
.jg-btn-ghost{background:var(--panel);color:#ec4899;border:1px solid rgba(236,72,153,.4);box-shadow:none}
.jg-btn-ghost:hover:not(:disabled){border-color:#ec4899;box-shadow:0 4px 12px rgba(236,72,153,.15);transform:none}
.jg-note{font-size:13px;color:var(--muted);margin:14px 0 0;text-align:center}

.jg-preview{background:var(--panel);border-radius:16px;padding:24px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);margin-bottom:22px}
.jg-preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;
  font-size:14px;font-weight:600;color:var(--fg)}
.jg-preview-head i{color:#ec4899;margin-right:6px}
.jg-preview-count{font-size:12.5px;color:var(--muted);font-weight:500}
.jg-grid-result{display:grid;gap:8px}
.jg-piece{position:relative;border-radius:8px;overflow:hidden;cursor:pointer;transition:.2s;
  box-shadow:0 2px 8px rgba(31,45,61,.08);aspect-ratio:1/1}
.jg-piece:hover{transform:scale(1.03);box-shadow:0 6px 18px rgba(236,72,153,.25);z-index:2}
.jg-piece img{width:100%;height:100%;display:block;object-fit:cover}
.jg-piece-no{position:absolute;top:4px;left:4px;font-size:11px;color:#fff;background:rgba(0,0,0,.45);
  padding:2px 7px;border-radius:8px;font-weight:600}

.jg-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.jg-tip i{color:#ec4899;margin-right:4px}

@media (max-width:768px){
  .jg-card{padding:22px 18px}
  .jg-drop{padding:30px 16px}
  .jg-actions{flex-direction:column}
  .jg-btn{width:100%}
  .jg-chips{grid-template-columns:repeat(2,1fr)}
}
/* ===== 领带打法 ld- ===== */
.ld-wrap{max-width:900px;margin:0 auto}
.ld-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.ld-tab{padding:9px 20px;border:1px solid var(--line);background:var(--panel);border-radius:20px;cursor:pointer;
  font-size:13.5px;color:var(--muted);transition:.2s;font-family:inherit;font-weight:500}
.ld-tab:hover{border-color:#a5b4fc;color:#6366f1}
.ld-tab.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);border-color:#6366f1;color:#fff;
  box-shadow:0 4px 14px rgba(99,102,241,.3)}

.ld-panel{background:var(--panel);border-radius:16px;padding:28px 30px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.ld-detail{display:grid;grid-template-columns:160px 1fr;gap:26px;align-items:center;
  padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.ld-knot{text-align:center}
.ld-knot svg{width:130px;height:216px;display:block;margin:0 auto;
  filter:drop-shadow(0 6px 16px rgba(99,102,241,.2))}
.ld-knot-label{font-size:12.5px;color:var(--muted);margin-top:10px}
.ld-meta h2{font-size:24px;color:var(--fg);margin:0 0 10px;font-weight:800;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ld-en{font-size:13px;color:var(--muted);font-weight:400;letter-spacing:.3px}
.ld-desc{font-size:14px;color:var(--muted);line-height:1.85;margin:0 0 16px}
.ld-tags{display:flex;flex-wrap:wrap;gap:10px}
.ld-tag{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:rgba(99,102,241,.08);color:#6366f1;
  border-radius:20px;font-size:12.5px;font-weight:500}
.ld-tag i{font-size:12px}

.ld-steps h3{font-size:16px;color:var(--fg);margin:0 0 16px;display:flex;align-items:center;gap:8px}
.ld-steps h3 i{color:#6366f1}
.ld-step{display:flex;gap:14px;padding:14px 16px;background:var(--hover);border-radius:12px;margin-bottom:10px;
  border:1px solid var(--line);transition:.2s}
.ld-step:hover{border-color:rgba(99,102,241,.4);background:rgba(99,102,241,.06)}
.ld-step-no{width:26px;height:26px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);color:#fff;font-size:13px;font-weight:700}
.ld-step-text{font-size:14px;color:var(--fg);line-height:1.7;padding-top:2px}

.ld-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:18px 0 0}
.ld-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .ld-tab{padding:8px 14px;font-size:12.5px}
  .ld-panel{padding:20px 16px}
  .ld-detail{grid-template-columns:1fr;gap:18px;text-align:center}
  .ld-knot svg{width:100px;height:166px}
  .ld-meta h2{font-size:20px;justify-content:center}
  .ld-tags{justify-content:center}
  .ld-step{padding:12px 13px}
}

/* =====微信名片生成工具- ===== */
.wm-wrap{max-width:1000px;margin:0 auto}
.wm-main{display:grid;grid-template-columns:360px 1fr;gap:24px;align-items:start}
.wm-form-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.wm-form-card h2{font-size:17px;color:var(--fg);margin:0 0 20px;display:flex;align-items:center;gap:8px}
.wm-form-card h2 i{color:#2563eb}
.wm-field{margin-bottom:16px}
.wm-field label{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:7px}
.wm-field input{width:100%;height:42px;padding:0 13px;border:1px solid var(--line);border-radius:10px;
  font-size:14px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.wm-field input:focus{outline:none;border-color:#2563eb;background:var(--panel);box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.wm-tpls{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}
.wm-tpl{aspect-ratio:1/1;border-radius:10px;border:2px solid transparent;cursor:pointer;padding:0;
  background:linear-gradient(135deg,var(--c1),var(--c2));transition:.2s}
.wm-tpl:hover{transform:scale(1.08)}
.wm-tpl.on{border-color:var(--fg);box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--fg);transform:scale(1.05)}
.wm-btn{width:100%;height:48px;border:none;border-radius:12px;cursor:pointer;font-size:15px;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#2563eb,#3b82f6);box-shadow:0 6px 18px rgba(37,99,235,.3);transition:.2s;
  display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;margin-top:6px}
.wm-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(37,99,235,.42)}

.wm-preview-card{background:var(--panel);border-radius:16px;padding:24px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.wm-preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;
  font-size:14px;font-weight:600;color:var(--fg)}
.wm-preview-head i{color:#2563eb;margin-right:6px}
.wm-dl{height:36px;padding:0 16px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;
  font-size:13px;color:#2563eb;font-weight:600;transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;gap:6px}
.wm-dl:hover:not(:disabled){border-color:#2563eb;background:rgba(37,99,235,.06)}
.wm-dl:disabled{opacity:.5;cursor:not-allowed}
.wm-canvas-box{background:var(--hover);border-radius:12px;padding:16px;display:flex;align-items:center;justify-content:center;
  border:1px dashed var(--line);overflow:hidden}
.wm-canvas-box canvas{width:100%;max-width:800px;height:auto;border-radius:8px;
  box-shadow:0 8px 24px rgba(31,45,61,.14)}
.wm-tip{font-size:12.5px;color:var(--muted);line-height:1.7;margin:16px 0 0}
.wm-tip i{color:#2563eb;margin-right:4px}

@media (max-width:768px){
  .wm-main{grid-template-columns:1fr;gap:18px}
  .wm-form-card{padding:20px 18px}
  .wm-tpls{grid-template-columns:repeat(8,1fr);gap:6px}
  .wm-preview-card{padding:18px 16px}
  .wm-canvas-box{padding:10px}
}

/* ===== 灶马头预测 zm- ===== */
.zm-wrap{max-width:1000px;margin:0 auto}
.zm-intro{display:flex;gap:14px;align-items:flex-start;background:linear-gradient(135deg,rgba(245,158,11,.12),rgba(245,158,11,.04));
  border-left:4px solid #d97706;border-radius:10px;padding:16px 20px;margin-bottom:20px;
  font-size:14px;color:#78350f;line-height:1.8}
.zm-intro i{font-size:22px;color:#d97706;flex-shrink:0;margin-top:2px}
.zm-intro b{color:#92400e}

.zm-picker{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}
.zm-picker label{font-size:13.5px;color:var(--muted);font-weight:600}
.zm-picker select{height:44px;padding:0 40px 0 14px;border:2px solid var(--line);border-radius:10px;
  font-size:14px;color:var(--fg);background:var(--bg);cursor:pointer;transition:.2s;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2394a3b8' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center}
.zm-picker select:focus{outline:none;border-color:#d97706;background-color:var(--panel);box-shadow:0 0 0 3px rgba(217,119,6,.12)}
.zm-today{height:44px;padding:0 22px;border:none;border-radius:10px;cursor:pointer;
  background:linear-gradient(135deg,#d97706,#f59e0b);color:#fff;font-size:14px;font-weight:700;font-family:inherit;
  box-shadow:0 5px 16px rgba(217,119,6,.3);transition:.2s}
.zm-today:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(217,119,6,.42)}

.zm-head{text-align:center;margin-bottom:22px}
.zm-head-year{font-size:26px;font-weight:800;color:#92400e;letter-spacing:2px}
.zm-head-sub{font-size:14px;color:var(--muted);margin-top:6px}

.zm-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:24px}
.zm-card{background:var(--panel);border-radius:14px;padding:20px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);transition:.2s;position:relative;overflow:hidden}
.zm-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(217,119,6,.14)}
.zm-card::before{content:'';position:absolute;top:0;left:0;width:5px;height:100%}
.zm-card-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:20px;color:#fff;margin-bottom:14px;box-shadow:0 4px 12px rgba(31,45,61,.15)}
.zm-card-title{font-size:20px;font-weight:800;color:var(--fg);margin-bottom:6px}
.zm-card-sub{font-size:12.5px;color:var(--muted);margin-bottom:10px}
.zm-card-desc{font-size:13.5px;color:var(--fg);line-height:1.7}

.zm-card-long::before{background:#dc2626}
.zm-card-long .zm-card-icon{background:linear-gradient(135deg,#dc2626,#f87171)}
.zm-card-bing::before{background:#f59e0b}
.zm-card-bing .zm-card-icon{background:linear-gradient(135deg,#f59e0b,#fbbf24)}
.zm-card-niu::before{background:#16a34a}
.zm-card-niu .zm-card-icon{background:linear-gradient(135deg,#16a34a,#22c55e)}
.zm-card-ma::before{background:#7c3aed}
.zm-card-ma .zm-card-icon{background:linear-gradient(135deg,#7c3aed,#a78bfa)}
.zm-card-xin::before{background:#0ea5e9}
.zm-card-xin .zm-card-icon{background:linear-gradient(135deg,#0ea5e9,#38bdf8)}
.zm-card-ren::before{background:#6366f1}
.zm-card-ren .zm-card-icon{background:linear-gradient(135deg,#6366f1,#8b8ef8)}

.zm-table-wrap{background:var(--panel);border-radius:14px;padding:20px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);overflow:auto}
.zm-table-head{font-size:15px;font-weight:700;color:var(--fg);margin-bottom:14px;
  display:flex;align-items:center;gap:8px}
.zm-table-head i{color:#d97706}
.zm-table{width:100%;border-collapse:collapse;font-size:14px;min-width:400px}
.zm-table th{background:var(--hover);color:#d97706;font-weight:600;padding:12px 10px;text-align:left;
  border-bottom:1px solid var(--line);font-size:13.5px}
.zm-table td{padding:11px 10px;border-bottom:1px solid var(--line);color:var(--fg)}
.zm-table td b{color:var(--fg)}
.zm-tr-hit{background:rgba(245,158,11,.08)}
.zm-tr-hit td{color:#b45309;font-weight:600}
.zm-empty{grid-column:1/-1;text-align:center;padding:40px;color:var(--muted);font-size:14px}

.zm-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:22px 0 0;text-align:center}
.zm-tip i{color:#d97706;margin-right:4px}

@media (max-width:768px){
  .zm-head-year{font-size:20px}
  .zm-cards{grid-template-columns:1fr;gap:10px}
  .zm-card{padding:16px}
  .zm-card-title{font-size:17px}
  .zm-picker select{flex:1}
  .zm-table{font-size:13px}
}

/* ===== 在线组词 zc- ===== */
.zc-wrap{max-width:900px;margin:0 auto}
.zc-input-card{display:flex;gap:12px;margin-bottom:16px}
.zc-input{flex:1;height:56px;padding:0 20px;border:2px solid var(--line);border-radius:12px;
  font-size:22px;font-weight:700;color:#0d9488;text-align:center;background:var(--bg);transition:.2s;
  box-sizing:border-box;letter-spacing:2px}
.zc-input:focus{outline:none;border-color:#0d9488;background:var(--panel);box-shadow:0 0 0 3px rgba(13,148,136,.12)}
.zc-btn{height:56px;padding:0 28px;border:none;border-radius:12px;cursor:pointer;
  background:linear-gradient(135deg,#0d9488,#2dd4bf);color:#fff;font-size:15px;font-weight:700;font-family:inherit;
  box-shadow:0 5px 16px rgba(13,148,136,.3);transition:.2s;
  display:inline-flex;align-items:center;gap:8px}
.zc-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(13,148,136,.42)}

.zc-quick{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:20px;font-size:13px;color:var(--muted)}
.zc-hot{padding:5px 12px;border:1px solid var(--line);background:var(--panel);border-radius:16px;cursor:pointer;
  font-size:13px;color:var(--muted);transition:.2s;font-family:inherit}
.zc-hot:hover{border-color:#5eead4;color:#0d9488;background:rgba(13,148,136,.08)}

.zc-status{font-size:14px;color:var(--muted);margin-bottom:16px;text-align:center}
.zc-status b{color:#0d9488;font-size:16px}
.zc-err{color:#ef4444}
.zc-status i{color:#0d9488}

.zc-result{display:flex;flex-direction:column;gap:18px}
.zc-group{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.zc-group-head{font-size:14.5px;font-weight:700;color:var(--fg);margin-bottom:14px;
  display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.zc-group-head i{color:#0d9488}
.zc-words{display:flex;flex-wrap:wrap;gap:8px}
.zc-word{padding:8px 16px;background:rgba(13,148,136,.08);color:#0d9488;border:1px solid rgba(13,148,136,.3);border-radius:20px;
  font-size:14px;font-weight:500;transition:.2s;cursor:default}
.zc-word:hover{background:#0d9488;color:#fff;border-color:#0d9488;transform:translateY(-2px)}

.zc-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:22px 0 0;text-align:center}
.zc-tip i{color:#0d9488;margin-right:4px}

@media (max-width:768px){
  .zc-input{font-size:18px;height:50px}
  .zc-btn{height:50px;padding:0 18px;font-size:14px}
  .zc-group{padding:16px 14px}
  .zc-word{padding:6px 12px;font-size:13px}
}

/* ===== 繁体字转换 ft- ===== */
.ft-wrap{max-width:760px;margin:0 auto}
.ft-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06);display:flex;flex-direction:column;gap:16px}
.ft-mode-tabs{display:flex;gap:10px;flex-wrap:wrap}
.ft-mode{flex:1;min-width:140px;height:46px;border:2px solid var(--line);background:var(--panel);border-radius:12px;cursor:pointer;
  font-size:14px;font-weight:600;color:var(--muted);transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;justify-content:center;gap:8px}
.ft-mode:hover{border-color:rgba(14,165,233,.4);color:#0ea5e9}
.ft-mode.on{background:linear-gradient(135deg,#0ea5e9,#38bdf8);border-color:#0ea5e9;color:#fff;
  box-shadow:0 4px 14px rgba(14,165,233,.3)}
.ft-editor-head,.ft-result-head{display:flex;justify-content:space-between;align-items:center;
  font-size:13.5px;font-weight:600;color:var(--fg)}
.ft-editor-head i,.ft-result-head i{color:#0ea5e9;margin-right:6px}
.ft-editor-actions{display:flex;gap:8px}
.ft-clear,.ft-copy{height:30px;padding:0 12px;border:1px solid var(--line);background:var(--panel);border-radius:8px;cursor:pointer;
  font-size:12.5px;color:var(--muted);transition:.2s;font-family:inherit;display:inline-flex;align-items:center;gap:5px}
.ft-clear:hover{border-color:rgba(239,68,68,.4);color:#ef4444}
.ft-copy:hover{border-color:rgba(14,165,233,.4);color:#0ea5e9}
.ft-card textarea{width:100%;min-height:140px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;
  font-size:15px;line-height:1.8;color:var(--fg);background:var(--bg);box-sizing:border-box;font-family:inherit;resize:vertical}
.ft-card textarea:focus{outline:none;border-color:#0ea5e9;background:var(--panel);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.ft-output{min-height:80px;padding:16px;background:rgba(14,165,233,.08);border:1px solid rgba(14,165,233,.3);border-radius:12px;
  font-size:16px;line-height:2;color:#0369a1;word-break:break-all;white-space:pre-wrap}
.ft-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:18px 0 0}
.ft-tip i{color:#0ea5e9;margin-right:4px}

@media (max-width:768px){
  .ft-card{padding:20px 16px}
  .ft-mode{min-width:100%}
  .ft-output{font-size:15px}
}
/* ===== 汉字转拼音 py- ===== */
.py-wrap{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.py-card{background:var(--panel);border-radius:16px;padding:26px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.py-opts{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.py-opt{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--muted);cursor:pointer;user-select:none}
.py-opt input{width:16px;height:16px;accent-color:#0ea5e9;cursor:pointer}
.py-editor-head,.py-result-head{display:flex;justify-content:space-between;align-items:center;
  font-size:13.5px;font-weight:600;color:var(--fg);margin-bottom:10px}
.py-editor-head i,.py-result-head i{color:#0ea5e9;margin-right:6px}
.py-clear,.py-copy{height:30px;padding:0 12px;border:1px solid var(--line);background:var(--panel);border-radius:8px;cursor:pointer;
  font-size:12.5px;color:var(--muted);transition:.2s;font-family:inherit;display:inline-flex;align-items:center;gap:5px}
.py-clear:hover{border-color:rgba(239,68,68,.4);color:#ef4444}
.py-copy:hover{border-color:rgba(14,165,233,.4);color:#0ea5e9}
.py-card textarea{width:100%;min-height:120px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;
  font-size:15px;line-height:1.8;color:var(--fg);background:var(--bg);box-sizing:border-box;font-family:inherit;resize:vertical;margin-bottom:20px}
.py-card textarea:focus{outline:none;border-color:#0ea5e9;background:var(--panel);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.py-output{min-height:80px;padding:16px;background:rgba(14,165,233,.08);border:1px solid rgba(14,165,233,.3);border-radius:12px;
  font-size:16px;line-height:2;color:#0369a1;word-break:break-all;white-space:pre-wrap;font-family:monospace}
.py-detail{background:var(--panel);border-radius:14px;padding:20px 22px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05)}
.py-detail-head{font-size:14px;font-weight:600;color:var(--fg);margin-bottom:14px}
.py-chars{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:10px}
.py-char{background:var(--hover);border-radius:10px;padding:10px;text-align:center;border:1px solid var(--line)}
.py-char-zi{font-size:24px;font-weight:700;color:var(--fg);font-family:serif;margin-bottom:4px}
.py-char-py{font-size:11px;color:#0ea5e9;line-height:1.3;word-break:break-word}
.py-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0}
.py-tip i{color:#0ea5e9;margin-right:4px}

@media (max-width:768px){
  .py-card{padding:20px 18px}
  .py-output{font-size:15px}
  .py-chars{grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:8px}
}
/* ===== 在线翻译转换器 fy- ===== */
.fy-wrap{max-width:900px;margin:0 auto}
.fy-tabs{display:flex;gap:10px;margin-bottom:18px}
.fy-tab{flex:1;height:46px;border:2px solid var(--line);background:var(--panel);border-radius:12px;cursor:pointer;
  font-size:14px;font-weight:600;color:var(--muted);transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;justify-content:center;gap:8px}
.fy-tab:hover{border-color:#a5b4fc;color:#6366f1}
.fy-tab.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);border-color:#6366f1;color:#fff;
  box-shadow:0 4px 14px rgba(99,102,241,.3)}

.fy-input-card{display:flex;gap:12px;margin-bottom:20px}
.fy-input{flex:1;height:56px;padding:0 20px;border:2px solid var(--line);border-radius:12px;
  font-size:18px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.fy-input:focus{outline:none;border-color:#6366f1;background:var(--panel);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.fy-btn{height:56px;padding:0 28px;border:none;border-radius:12px;cursor:pointer;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);color:#fff;font-size:15px;font-weight:700;font-family:inherit;
  box-shadow:0 5px 16px rgba(99,102,241,.3);transition:.2s;
  display:inline-flex;align-items:center;gap:8px}
.fy-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(99,102,241,.42)}

.fy-result{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}
.fy-count{font-size:14px;color:var(--muted);margin-bottom:6px}
.fy-count b{color:#6366f1;font-size:16px}
.fy-item{background:var(--panel);border-radius:12px;padding:14px 18px;border:1px solid var(--line);
  box-shadow:0 2px 8px rgba(31,45,61,.04);transition:.2s;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.fy-item:hover{border-color:#c7d2fe;box-shadow:0 4px 14px rgba(99,102,241,.1)}
.fy-cat-tag{background:rgba(99,102,241,.1);color:#6366f1;padding:3px 10px;border-radius:14px;font-size:12px;font-weight:600;flex-shrink:0}
.fy-pair{display:flex;align-items:center;gap:12px;flex:1;flex-wrap:wrap}
.fy-cn{font-size:16px;font-weight:700;color:var(--fg)}
.fy-pair i{color:var(--muted);font-size:12px}
.fy-en{font-size:15px;color:#6366f1;font-family:monospace}
.fy-empty{text-align:center;padding:40px;color:var(--muted);font-size:14px;background:var(--panel);border-radius:12px;
  border:1px solid var(--line);line-height:1.8}

.fy-cat{margin-bottom:24px}
.fy-cat-title{font-size:14px;font-weight:700;color:var(--fg);margin-bottom:14px;
  padding-bottom:10px;border-bottom:1px solid var(--line)}
.fy-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.fy-cat-card{background:var(--panel);border-radius:12px;padding:16px;text-align:center;border:1px solid var(--line);
  cursor:pointer;transition:.2s;box-shadow:0 2px 8px rgba(31,45,61,.04)}
.fy-cat-card:hover{border-color:#a5b4fc;transform:translateY(-2px);box-shadow:0 6px 18px rgba(99,102,241,.14)}
.fy-cat-name{font-size:15px;font-weight:700;color:var(--fg);margin-bottom:4px}
.fy-cat-num{font-size:12px;color:var(--muted)}

.fy-note{display:flex;gap:12px;align-items:flex-start;background:rgba(245,158,11,.1);border-left:4px solid #f59e0b;
  border-radius:10px;padding:16px 20px;font-size:13.5px;color:#78350f;line-height:1.8;margin-top:8px}
.fy-note i{color:#f59e0b;flex-shrink:0;margin-top:3px}
.fy-note b{color:#b45309}

@media (max-width:768px){
  .fy-input{font-size:16px;height:50px}
  .fy-btn{height:50px;padding:0 18px;font-size:14px}
  .fy-cat-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .fy-item{padding:12px 14px}
  .fy-cn{font-size:15px}
  .fy-en{font-size:14px}
}
/* ===== AI 在线翻译 fy- （新版） ===== */
.fy-wrap{max-width:1100px;margin:0 auto}
.fy-card{background:var(--panel);border-radius:16px;padding:24px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}

.fy-lang-row{display:flex;gap:12px;align-items:center;margin-bottom:18px}
.fy-lang{flex:1;height:46px;padding:0 40px 0 16px;border:2px solid var(--line);border-radius:12px;
  font-size:15px;font-weight:600;color:var(--fg);background:var(--bg);cursor:pointer;transition:.2s;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2394a3b8' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center}
.fy-lang:focus{outline:none;border-color:#6366f1;background-color:var(--panel);box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.fy-swap{width:46px;height:46px;flex-shrink:0;border:2px solid var(--line);background:var(--panel);border-radius:12px;
  cursor:pointer;color:#6366f1;font-size:16px;transition:.2s;
  display:flex;align-items:center;justify-content:center}
.fy-swap:hover{border-color:#a5b4fc;background:rgba(99,102,241,.06);transform:rotate(180deg)}

.fy-editors{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.fy-editor{background:var(--hover);border-radius:14px;border:1px solid var(--line);overflow:hidden;
  display:flex;flex-direction:column;min-height:280px}
.fy-editor-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;
  background:var(--hover);border-bottom:1px solid var(--line);font-size:13.5px;font-weight:600;color:var(--fg)}
.fy-count{font-size:12px;color:var(--muted);font-weight:500}
.fy-copy{height:28px;padding:0 12px;border:1px solid var(--line);background:var(--panel);border-radius:7px;cursor:pointer;
  font-size:12.5px;color:var(--muted);transition:.2s;font-family:inherit;
  display:inline-flex;align-items:center;gap:5px}
.fy-copy:hover{border-color:#a5b4fc;color:#6366f1}
.fy-editor textarea{flex:1;width:100%;min-height:240px;padding:16px;border:none;resize:none;
  font-size:15px;line-height:1.8;color:var(--fg);background:var(--bg);box-sizing:border-box;font-family:inherit;outline:none}
.fy-output{flex:1;padding:16px;background:var(--bg);font-size:15px;line-height:1.8;color:var(--fg);
  white-space:pre-wrap;word-break:break-word;overflow-y:auto;min-height:240px}
.fy-placeholder{color:var(--muted)}
.fy-err{color:#ef4444}

.fy-actions{display:flex;gap:12px;margin-bottom:16px}
.fy-btn{flex:1;height:50px;border:none;border-radius:12px;cursor:pointer;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);color:#fff;font-size:16px;font-weight:700;font-family:inherit;
  box-shadow:0 6px 18px rgba(99,102,241,.3);transition:.2s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px}
.fy-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 22px rgba(99,102,241,.42)}
.fy-btn:disabled{opacity:.6;cursor:not-allowed}
.fy-btn-ghost{flex:0 0 140px;background:var(--panel);color:var(--muted);border:1px solid var(--line);box-shadow:none}
.fy-btn-ghost:hover:not(:disabled){border-color:#a5b4fc;color:#6366f1;transform:none;box-shadow:none}

.fy-status{text-align:center;font-size:13.5px;color:var(--muted);min-height:20px}
.fy-status i{color:#16a34a;margin-right:4px}
.fy-status .fy-err{color:#ef4444}
.fy-status .fa-spinner{color:#6366f1}

.fy-quick{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px;font-size:13.5px;color:var(--muted)}
.fy-q{padding:7px 16px;border:1px solid var(--line);background:var(--panel);border-radius:20px;cursor:pointer;
  font-size:13px;color:var(--muted);transition:.2s;font-family:inherit}
.fy-q:hover{border-color:#a5b4fc;color:#6366f1;background:rgba(99,102,241,.06)}

.fy-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:18px 0 0;text-align:center}
.fy-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .fy-editors{grid-template-columns:1fr}
  .fy-editor{min-height:180px}
  .fy-editor textarea{min-height:150px}
  .fy-output{min-height:150px}
  .fy-lang-row{flex-wrap:wrap}
  .fy-swap{width:100%;transform:none}
  .fy-swap:hover{transform:none}
  .fy-btn-ghost{flex:1}
  .fy-card{padding:18px 16px}
}

/* ===== OCR文字识别 oc- ===== */
.oc-wrap{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.oc-card{background:var(--panel);border-radius:16px;padding:24px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.oc-drop{border:2px dashed var(--line);border-radius:14px;padding:40px 20px;text-align:center;cursor:pointer;
  transition:.2s;background:var(--bg);margin-bottom:16px}
.oc-drop:hover,.oc-drop.oc-drop-over{border-color:#6366f1;background:rgba(99,102,241,.08)}
.oc-drop i{font-size:40px;color:#a5b4fc;margin-bottom:14px;display:block}
.oc-drop p{font-size:15px;color:var(--fg);margin:0 0 6px;font-weight:500}
.oc-drop span{font-size:12.5px;color:var(--muted)}

.oc-preview{text-align:center;margin-bottom:16px}
.oc-preview img{max-width:100%;max-height:400px;border-radius:10px;border:1px solid var(--line);
  box-shadow:0 4px 14px rgba(31,45,61,.1)}

.oc-actions{display:flex;gap:12px;margin-bottom:16px}
.oc-btn{flex:1;height:50px;border:none;border-radius:12px;cursor:pointer;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);color:#fff;font-size:16px;font-weight:700;font-family:inherit;
  box-shadow:0 6px 18px rgba(99,102,241,.3);transition:.2s;
  display:inline-flex;align-items:center;justify-content:center;gap:8px}
.oc-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 22px rgba(99,102,241,.42)}
.oc-btn:disabled{opacity:.5;cursor:not-allowed}
.oc-btn-ghost{flex:0 0 140px;background:var(--panel);color:var(--muted);border:1px solid var(--line);box-shadow:none}
.oc-btn-ghost:hover{border-color:#a5b4fc;color:#6366f1;transform:none;box-shadow:none}

.oc-status{text-align:center;font-size:13.5px;color:var(--muted);min-height:20px}
.oc-status i{color:#16a34a;margin-right:4px}
.oc-status .fa-spinner{color:#6366f1}
.oc-err{color:#ef4444}

.oc-result{background:var(--panel);border-radius:16px;padding:24px;border:1px solid var(--line);
  box-shadow:0 4px 18px rgba(31,45,61,.06)}
.oc-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;
  font-size:14px;font-weight:600;color:var(--fg)}
.oc-result-head i{color:#6366f1;margin-right:6px}
.oc-copy{height:32px;padding:0 14px;border:1px solid var(--line);background:var(--panel);border-radius:8px;cursor:pointer;
  font-size:13px;color:#6366f1;transition:.2s;font-family:inherit;display:inline-flex;align-items:center;gap:6px}
.oc-copy:hover{background:rgba(99,102,241,.08)}
.oc-result-body{padding:16px;background:var(--hover);border-radius:10px;border:1px solid var(--line);
  font-size:15px;line-height:1.9;color:var(--fg);white-space:pre-wrap;word-break:break-word;min-height:100px}

.oc-tip{font-size:13px;color:var(--muted);line-height:1.7;margin:0;text-align:center}
.oc-tip i{color:#6366f1;margin-right:4px}

@media (max-width:768px){
  .oc-card{padding:18px 16px}
  .oc-drop{padding:30px 16px}
  .oc-drop i{font-size:32px}
  .oc-actions{flex-direction:column}
  .oc-btn-ghost{flex:1}
}

/* 谜语详情 hero 里的 meta（分类 + 浏览） */
.rd-hero-meta{
  display:flex;justify-content:center;align-items:center;gap:16px;
  flex-wrap:wrap;margin-top:8px;
}
.rd-hero-cat{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 14px;background:var(--accent-soft);color:var(--accent);
  border-radius:14px;font-size:13px;
}
.rd-hero-cat i{font-size:12px}
.rd-hero-views{
  display:inline-flex;align-items:center;gap:5px;
  font-size:13px;color:var(--muted);
}
.rd-hero-views i{font-size:12px}

/* 英语单词详情 hero 里的浏览量 */
.wd-hero-meta{
  display:flex;justify-content:center;align-items:center;gap:16px;
  margin-top:14px;
}
.wd-hero-views{
  display:inline-flex;align-items:center;gap:5px;
  font-size:13px;color:var(--muted);
}
.wd-hero-views i{font-size:12px}

/* ===== 造句大全 zj- ===== */
.zj-wrap{max-width:1000px;margin:0 auto}
.zj-search-card{background:linear-gradient(135deg,rgba(99,102,241,.08),var(--panel));border:1px solid rgba(99,102,241,.2);border-radius:16px;
  padding:24px;margin-bottom:24px;box-shadow:0 4px 18px rgba(99,102,241,.08)}
.zj-search-row{display:flex;gap:12px;margin-bottom:16px}
.zj-input{flex:1;height:54px;padding:0 20px;border:2px solid rgba(99,102,241,.2);border-radius:12px;
  font-size:17px;color:var(--fg);background:var(--bg);transition:.2s;box-sizing:border-box}
.zj-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.zj-btn{height:54px;padding:0 32px;border:none;border-radius:12px;cursor:pointer;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);color:#fff;font-size:16px;font-weight:700;font-family:inherit;
  box-shadow:0 6px 18px rgba(99,102,241,.3);transition:.2s;
  display:inline-flex;align-items:center;gap:8px}
.zj-btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(99,102,241,.42)}

.zj-hot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13.5px;color:var(--muted)}
.zj-hot a{padding:5px 14px;background:var(--panel);border:1px solid rgba(99,102,241,.2);border-radius:16px;
  color:#6366f1;font-size:13px;text-decoration:none;transition:.2s}
.zj-hot a:hover{background:#6366f1;color:#fff;border-color:#6366f1}

.zj-list-head{font-size:14px;font-weight:700;color:var(--fg);margin-bottom:16px;padding-bottom:10px;
  border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.zj-list-head i{color:#6366f1}

.zj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.zj-item{display:block;padding:16px 18px;background:var(--panel);border:1px solid var(--line);border-radius:12px;
  text-decoration:none;transition:.2s;box-shadow:0 2px 8px rgba(31,45,61,.04)}
.zj-item:hover{transform:translateY(-2px);border-color:#a5b4fc;box-shadow:0 6px 18px rgba(99,102,241,.14)}
.zj-item-word{font-size:17px;font-weight:700;color:var(--accent);margin-bottom:4px}
.zj-item-py{font-size:12.5px;color:var(--muted);font-family:monospace;margin-bottom:6px}
.zj-item-desc{font-size:13px;color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden}

@media (max-width:768px){
  .zj-search-card{padding:18px 16px}
  .zj-search-row{flex-direction:column}
  .zj-btn{width:100%;justify-content:center}
  .zj-input{font-size:15px;height:48px}
  .zj-btn{height:48px}
  .zj-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .zj-item{padding:12px 14px}
  .zj-item-word{font-size:15px}
}

/* ===== 造句详情 zjd- ===== */
.zjd-wrap{max-width:900px;margin:0 auto}
.zjd-word-card{background:linear-gradient(135deg,rgba(99,102,241,.08),var(--panel));border:1px solid rgba(99,102,241,.2);border-radius:16px;
  padding:28px 32px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;
  gap:20px;box-shadow:0 4px 18px rgba(99,102,241,.08);flex-wrap:wrap}
.zjd-word-main h1{font-size:44px;font-weight:900;color:var(--fg);margin:0 0 10px;letter-spacing:4px;font-family:serif}
.zjd-word-py{font-size:16px;color:#6366f1;font-family:monospace;margin-bottom:6px;letter-spacing:1px}
.zjd-word-zy{font-size:13.5px;color:var(--muted)}
.zjd-back{height:40px;padding:0 18px;border:1px solid rgba(99,102,241,.2);background:var(--panel);border-radius:10px;
  text-decoration:none;color:#6366f1;font-size:13.5px;display:inline-flex;align-items:center;gap:6px;
  transition:.2s;flex-shrink:0}
.zjd-back:hover{background:#6366f1;color:#fff;border-color:#6366f1}

.zjd-section{background:var(--panel);border-radius:14px;padding:24px 28px;border:1px solid var(--line);
  box-shadow:0 2px 10px rgba(31,45,61,.05);margin-bottom:18px}
.zjd-section h2{font-size:17px;color:var(--fg);margin:0 0 16px;padding-bottom:12px;
  border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;font-weight:700}
.zjd-section h2 i{color:#6366f1}
.zjd-section-body{font-size:15px;line-height:1.9;color:var(--fg)}
.zjd-js{color:var(--fg)}

.zjd-sent-count{font-size:13.5px;color:var(--muted);margin-bottom:14px}
.zjd-sent-count b{color:#6366f1;font-size:16px}
.zjd-sent-list{list-style:none;padding:0;margin:0;counter-reset:sent}
.zjd-sent-list li{display:flex;gap:12px;padding:14px 16px;background:var(--hover);border-radius:10px;
  margin-bottom:10px;border-left:3px solid #a5b4fc;transition:.2s;font-size:14.5px;line-height:1.85;color:var(--fg)}
.zjd-sent-list li:hover{background:rgba(99,102,241,.06);border-left-color:#6366f1}
.zjd-sent-no{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:rgba(99,102,241,.12);color:#6366f1;
  font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
.zjd-sent-text{flex:1;word-break:break-word}

.zjd-rel-wrap{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.zjd-section-half{margin-bottom:0}
.zjd-rel-tags{display:flex;flex-wrap:wrap;gap:8px}
.zjd-tag{padding:6px 14px;border-radius:16px;font-size:13.5px;font-weight:500}
.zjd-tag-jy{background:rgba(16,185,129,.1);color:#16a34a;border:1px solid rgba(16,185,129,.3)}
.zjd-tag-fy{background:rgba(239,68,68,.1);color:#dc2626;border:1px solid rgba(239,68,68,.3)}

.zjd-nav{display:flex;justify-content:space-between;gap:12px;margin-bottom:18px}
.zjd-nav-prev,.zjd-nav-next{height:44px;padding:0 20px;border:1px solid var(--line);background:var(--panel);border-radius:10px;
  text-decoration:none;color:var(--muted);font-size:14px;display:inline-flex;align-items:center;gap:8px;
  transition:.2s;max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zjd-nav-prev:hover,.zjd-nav-next:hover{border-color:#a5b4fc;color:#6366f1;background:rgba(99,102,241,.06)}

.zjd-rand{display:flex;flex-wrap:wrap;gap:10px}
.zjd-rand a{padding:8px 16px;background:var(--hover);border:1px solid var(--line);border-radius:10px;
  text-decoration:none;color:var(--fg);font-size:14px;transition:.2s}
.zjd-rand a:hover{background:#6366f1;color:#fff;border-color:#6366f1;transform:translateY(-2px)}

.zjd-empty{text-align:center;padding:40px 20px;color:var(--muted)}
.zjd-empty i{font-size:32px;color:var(--line);margin-bottom:12px;display:block}
.zjd-empty p{margin:0;font-size:14.5px}

@media (max-width:768px){
  .zjd-word-card{padding:20px;flex-direction:column;align-items:flex-start}
  .zjd-word-main h1{font-size:34px;letter-spacing:2px}
  .zjd-section{padding:18px 16px}
  .zjd-rel-wrap{grid-template-columns:1fr;gap:12px}
  .zjd-sent-list li{padding:12px 12px;font-size:13.5px}
  .zjd-nav{flex-direction:column}
  .zjd-nav-prev,.zjd-nav-next{max-width:100%}
}

/* ===== 汉语字典笔顺区块背景 ===== */
.bishun-desc{
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);padding:16px 20px;
  margin:0 0 12px;
}
.bishun-code{
  background:var(--panel);border:1px solid var(--line);
  border-radius:var(--radius);padding:10px 20px;
  margin:0 0 12px;
}

/* ===== 诗人页 pt- 修正（覆盖端口/元素周期表冲突） ===== */
.pt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.pt-card{
  display:flex;align-items:center;gap:14px;padding:14px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  transition:.15s;
}
.pt-card:hover{border-color:var(--accent);background:var(--hover);transform:translateY(-2px)}
.pt-avatar{
  width:56px;height:56px;flex:none;border-radius:50%;overflow:hidden;
  background:var(--accent-soft);display:flex;align-items:center;justify-content:center;
  border:2px solid var(--panel);box-shadow:0 0 0 1px var(--line);
}
.pt-avatar img{width:100%;height:100%;object-fit:cover}
.pt-avatar i{color:var(--accent);font-size:22px}
.pt-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pt-name{font-size:16px;font-weight:600;color:var(--fg)}
.pt-designation{font-size:12px;color:var(--accent)}
.pt-dy-tag{font-size:12px;color:var(--muted)}
@media (max-width:640px){
  .pt-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
}

/* ===== 诗人页 pt-search 修正 ===== */
.pt-search{
  display:flex;align-items:center;gap:10px;
  padding:6px 6px 6px 16px;margin:0 0 20px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  transition:.15s;
}
.pt-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.pt-search > i{color:var(--muted);font-size:14px;flex:none}
.pt-search input{flex:1;min-width:0;height:40px;border:0;outline:none;background:transparent;
  font-size:14px;color:var(--fg)}
.pt-search button{height:40px;padding:0 22px;border:0;border-radius:calc(var(--radius) - 4px);cursor:pointer;
  background:var(--accent);color:#fff;font-size:14px;font-weight:500;flex:none}
.pt-search button:hover{filter:brightness(1.1)}

/* ===== 世界时间差 sj- 修正（覆盖时间戳冲突） ===== */
.sj-wrap{max-width:1000px;margin:0 auto}
.sj-local{border-radius:16px;padding:32px 34px;margin-bottom:20px;text-align:center;
  background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff}
.sj-local-label{font-size:13px;color:#94a3b8;margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:6px}
.sj-local-time{font-size:52px;font-weight:800;color:#fff;letter-spacing:3px;line-height:1.1;font-variant-numeric:tabular-nums}
.sj-local-date{font-size:14px;color:#cbd5e1;margin-top:8px}

.sj-search{position:relative;margin-bottom:18px}
.sj-search i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:15px}
.sj-search input{width:100%;height:48px;padding:0 16px 0 44px;border:2px solid var(--line);border-radius:12px;
  font-size:15px;color:var(--fg);background:var(--bg);box-sizing:border-box;transition:.2s}
.sj-search input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}

.sj-regions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.sj-region{padding:7px 16px;border:1px solid var(--line);background:var(--panel);border-radius:20px;cursor:pointer;
  font-size:13px;color:var(--muted);transition:.15s}
.sj-region:hover{border-color:#a5b4fc;color:#6366f1}
.sj-region.on{background:linear-gradient(135deg,#6366f1,#8b8ef8);border-color:#6366f1;color:#fff;font-weight:600}

.sj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.sj-card{position:relative;border-radius:14px;padding:18px 20px;border:1px solid var(--line);background:var(--panel);
  overflow:hidden;transition:.2s}
.sj-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(99,102,241,.12);border-color:#dbe0fb}
.sj-card::before{content:'';position:absolute;top:0;left:0;width:4px;height:100%;background:#6366f1;opacity:.7}
.sj-card.day::before{background:#f59e0b}
.sj-card.night::before{background:#6366f1}
.sj-card-local{border-color:#a5b4fc;background:linear-gradient(135deg,rgba(99,102,241,.08),var(--panel))}
.sj-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}
.sj-card-city{display:flex;flex-direction:column;gap:2px}
.sj-card-name{font-size:16px;font-weight:700;color:var(--fg)}
.sj-card-country{font-size:12px;color:var(--muted)}
.sj-card-dn{font-size:18px;line-height:1}
.sj-card-time{font-size:26px;font-weight:800;color:#6366f1;letter-spacing:1px;line-height:1.1;
  font-variant-numeric:tabular-nums}
.sj-card-date{font-size:12.5px;color:var(--muted);margin-bottom:10px}
.sj-card-diff{font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:8px;display:inline-block}
.sj-diff-same{background:var(--hover);color:var(--muted)}
.sj-diff-ahead{background:rgba(16,185,129,.1);color:#10b981}
.sj-diff-behind{background:rgba(239,68,68,.1);color:#ef4444}

.sj-empty{text-align:center;padding:40px 20px;color:var(--muted);font-size:14px}
.sj-tip{max-width:1000px;margin:20px auto 0;font-size:13px;color:var(--muted);line-height:1.7}
.sj-tip i{color:#6366f1;margin-right:4px}

@media (max-width:640px){
  .sj-local{padding:22px 20px}
  .sj-local-time{font-size:38px}
  .sj-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
  .sj-card{padding:14px}
  .sj-card-time{font-size:21px}
}

/* ===== 故事大全 列表简介 多行撑满 ===== */
.st-list .st-ex{
  display:block !important;
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:unset !important;
  width:100% !important;
  max-width:100% !important;
  line-height:1.7 !important;
}

/* ===== 故事大全 列表简介 恢复单行省略号 ===== */
.st-list .st-ex{
  display:block !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:unset !important;
  width:100% !important;
  max-width:100% !important;
  line-height:1.7 !important;
}

/* ===== 首页 hero 搜索框 ===== */
.home-search{
  display:flex;align-items:center;gap:10px;
  max-width:640px;margin:20px auto 0;
  padding:6px 6px 6px 18px;
  background:var(--panel);border:2px solid var(--line);border-radius:999px;
  transition:.2s;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
}
.home-search:focus-within{border-color:var(--accent);box-shadow:0 4px 20px var(--accent-soft)}
.home-search > i{color:var(--muted);font-size:16px;flex:none}
.home-search input{
  flex:1;min-width:0;height:44px;border:0;outline:none;background:transparent;
  font-size:15px;color:var(--fg);
}
.home-search button{
  height:44px;padding:0 24px;border:0;border-radius:999px;cursor:pointer;
  background:var(--accent);color:#fff;font-size:15px;font-weight:500;flex:none;
  transition:.15s;
}
.home-search button:hover{filter:brightness(1.1)}
@media (max-width:640px){
  .home-search{padding:4px 4px 4px 14px}
  .home-search input{height:40px;font-size:14px}
  .home-search button{height:40px;padding:0 18px;font-size:14px}
}

/* ===== 搜索结果关键词高亮 ===== */
mark{
  background:linear-gradient(180deg,transparent 60%,#ffe066 60%);
  color:inherit;padding:0 1px;border-radius:2px;font-weight:600;
}
[data-theme="dark"] mark{
  background:linear-gradient(180deg,transparent 60%,rgba(255,224,102,.35) 60%);
  color:#ffe066;
}

/* ===== 首页 hero 优化 ===== */
.hero{
  padding:32px 20px 28px;
  text-align:center;
  background:linear-gradient(180deg,var(--accent-soft) 0%,transparent 100%);
  border-radius:16px;
  margin-bottom:24px;
}
.hero h1{
  font-size:38px;font-weight:800;margin:0 0 10px;
  letter-spacing:2px;
  background:linear-gradient(135deg,#6366f1,#8b8ef8);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero-sub{
  color:var(--muted);font-size:14px;margin:0 0 4px;
  letter-spacing:.5px;
}
.home-search{
  max-width:600px;
  margin:22px auto 0;
  padding:5px 5px 5px 18px;
}
.home-search input{height:42px;font-size:15px}
.home-search button{height:42px;padding:0 22px;font-size:14px}

/* 分类块更紧凑 */
.cat-block{margin-bottom:28px}
.cat-head{margin-bottom:14px}
.cat-head h2{font-size:17px}

@media (max-width:640px){
  .hero{padding:20px 12px 18px;border-radius:12px;margin-bottom:16px}
  .hero h1{font-size:26px;letter-spacing:1px}
  .hero-sub{font-size:12.5px}
  .home-search{max-width:100%;margin-top:16px}
}

/* ===== 英文缩写详情补充 ===== */
.ab-summary{
  background:var(--accent-soft);padding:16px 20px;border-radius:8px;
  font-size:14px;line-height:1.9;color:var(--fg);
}
.ab-info{list-style:none;padding:0;margin:0}
.ab-info li{
  padding:12px 0;border-bottom:1px dashed var(--line);
  font-size:15px;line-height:1.7;
}
.ab-info li:last-child{border-bottom:0}
.ab-info b{
  display:inline-block;min-width:90px;color:var(--accent);font-weight:600;margin-right:8px;
}
.ab-note{font-size:12.5px;color:var(--muted);margin:12px 0 0}
.ab-table-wrap{overflow-x:auto;border-radius:8px;border:1px solid var(--line)}
.ab-table{width:100%;border-collapse:collapse;font-size:13.5px}
.ab-table th,.ab-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line)}
.ab-table th{background:var(--hover);font-weight:600;color:var(--muted);font-size:12.5px}
.ab-table tr:last-child td{border-bottom:0}
.ab-table a{color:var(--accent);font-weight:600}
.ab-table a:hover{text-decoration:underline}

/* ===== 实用网站详情 ===== */
.sd-hero{
  display:flex;align-items:center;gap:24px;padding:28px 32px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  margin-bottom:20px;
}
.sd-logo{
  width:96px;height:96px;flex:none;border-radius:16px;object-fit:cover;
  border:1px solid var(--line);background:var(--hover);
}
.sd-logo-fb{
  display:flex;align-items:center;justify-content:center;
  font-size:42px;color:var(--accent);
}
.sd-info{flex:1;min-width:0}
.sd-info h1{font-size:24px;font-weight:700;margin:0 0 8px;color:var(--fg)}
.sd-title{font-size:14px;color:var(--muted);margin:0 0 8px;line-height:1.6}
.sd-cat{font-size:13px;color:var(--muted);margin:0 0 12px}
.sd-cat i{color:var(--accent);margin-right:4px}
.sd-visit{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 20px;background:var(--accent);color:#fff;
  border-radius:8px;font-size:14px;font-weight:500;transition:.15s;
}
.sd-visit:hover{filter:brightness(1.1);transform:translateY(-1px)}

.sd-desc{font-size:15px;line-height:1.9;color:var(--fg)}

.sd-meta{list-style:none;padding:0;margin:0}
.sd-meta li{
  padding:10px 0;border-bottom:1px dashed var(--line);
  font-size:14px;line-height:1.7;word-break:break-all;
}
.sd-meta li:last-child{border-bottom:0}
.sd-meta b{color:var(--muted);font-weight:500;margin-right:6px;display:inline-block;min-width:76px}
.sd-meta a{color:var(--accent);text-decoration:none}
.sd-meta a:hover{text-decoration:underline}

.sd-nav{
  display:flex;justify-content:space-between;gap:12px;margin:20px 0 28px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.sd-nav a,.sd-nav .disabled{
  display:flex;align-items:center;gap:6px;font-size:13.5px;
  color:var(--muted);max-width:48%;overflow:hidden;
}
.sd-nav a{color:var(--accent)}
.sd-nav a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:640px){
  .sd-hero{flex-direction:column;text-align:center;padding:20px 16px;gap:14px}
  .sd-logo{width:72px;height:72px}
  .sd-info h1{font-size:20px}
  .sd-nav{flex-direction:column;gap:8px;padding:12px 16px}
  .sd-nav a,.sd-nav .disabled{max-width:100%}
}

/* 网站详情 图标缩小 + 抗模糊 */
.sd-logo{
  width:64px !important;height:64px !important;border-radius:12px !important;
}
.sd-info h1{font-size:22px !important;margin-bottom:6px !important}
.sd-visit{padding:8px 16px !important;font-size:13px !important}

/* 网站详情 hero 重排 */
.sd-hero{
  display:flex !important;align-items:center !important;gap:20px !important;
  padding:20px 24px !important;
}
.sd-info{
  flex:1 !important;
  display:flex !important;flex-direction:column !important;gap:4px !important;
}
.sd-info h1{font-size:20px !important;margin:0 !important}
.sd-title{font-size:13px !important;color:var(--muted) !important;margin:0 !important;line-height:1.5;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.sd-cat{font-size:12.5px !important;margin:2px 0 0 !important}
.sd-visit{
  flex:none !important;align-self:center !important;
  padding:10px 18px !important;font-size:13.5px !important;
}
@media (max-width:640px){
  .sd-hero{flex-wrap:wrap !important}
  .sd-info{flex-basis:100% !important;order:2 !important}
  .sd-visit{align-self:flex-start !important;margin-top:8px}
}

/* 网站详情 hero 按钮靠右 */
.sd-hero{align-items:center !important}
.sd-info{flex:1 1 auto !important;min-width:0 !important}
.sd-visit{
  flex:none !important;
  align-self:center !important;
  margin-left:auto !important;
  padding:10px 22px !important;
}
@media (max-width:640px){
  .sd-visit{align-self:flex-start !important;margin-left:0 !important}
}

/* 网站详情 hero 紧凑化 */
.sd-hero{
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
  padding:16px 20px !important;
  min-height:auto !important;
}
.sd-logo{
  width:56px !important;height:56px !important;
  border-radius:10px !important;flex:none !important;
}
.sd-logo-fb{font-size:24px !important}
.sd-info{
  flex:1 1 auto !important;min-width:0 !important;
  display:flex !important;flex-direction:column !important;gap:2px !important;
}
.sd-info h1{font-size:18px !important;margin:0 !important;line-height:1.3 !important}
.sd-title{font-size:12.5px !important;color:var(--muted) !important;margin:0 !important;
  line-height:1.4 !important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sd-cat{font-size:12px !important;color:var(--muted) !important;margin:0 !important}
.sd-visit{
  flex:none !important;margin-left:auto !important;align-self:center !important;
  padding:7px 14px !important;font-size:12.5px !important;
  border-radius:6px !important;gap:4px !important;
}
.sd-visit i{font-size:11px !important}
@media (max-width:640px){
  .sd-visit{margin-left:0 !important;align-self:flex-start !important}
}

/* 网站详情 hero 重写 */
.sd-hero{
  display:grid !important;
  grid-template-columns:56px 1fr auto !important;
  grid-template-areas:"logo info btn" !important;
  gap:16px !important;
  align-items:center !important;
  padding:16px 20px !important;
}
.sd-logo{
  grid-area:logo !important;
  width:56px !important;height:56px !important;
  border-radius:10px !important;
}
.sd-info{grid-area:info !important;display:flex !important;flex-direction:column !important;gap:3px !important;min-width:0 !important}
.sd-info h1{font-size:18px !important;margin:0 !important}
.sd-title{font-size:12.5px !important;color:var(--muted) !important;margin:0 !important;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sd-cat{font-size:12px !important;color:var(--muted) !important;margin:0 !important}
.sd-visit{
  grid-area:btn !important;
  padding:8px 16px !important;font-size:13px !important;
  border-radius:6px !important;align-self:center !important;
}
@media (max-width:640px){
  .sd-hero{
    grid-template-columns:56px 1fr !important;
    grid-template-areas:"logo info" "btn btn" !important;
  }
  .sd-visit{justify-self:start !important;margin-top:4px}
}

/* 网站详情 hero：图标顶部对齐 */
.sd-hero{
  align-items:flex-start !important;
}
.sd-logo{
  align-self:flex-start !important;
  margin-top:0 !important;
}
.sd-info{
  display:flex !important;flex-direction:column !important;
  gap:3px !important;
  align-self:flex-start !important;
}
.sd-info h1{
  font-size:18px !important;margin:0 !important;line-height:1.3 !important;
}
.sd-visit{
  align-self:flex-start !important;margin-top:0 !important;
}

/* ===== 中转页 ===== */
.go-wrap{max-width:560px;margin:40px auto}
.go-card{
  background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:36px 32px;text-align:center;
  box-shadow:0 4px 24px rgba(0,0,0,.05);
}
.go-icon{
  width:64px;height:64px;margin:0 auto 16px;border-radius:50%;
  background:var(--accent-soft);display:flex;align-items:center;justify-content:center;
  font-size:28px;color:var(--accent);
}
.go-title{font-size:20px;font-weight:600;margin:0 0 8px;color:var(--fg)}
.go-sub{font-size:13.5px;color:var(--muted);margin:0 0 20px}
.go-site{
  display:flex;align-items:center;gap:14px;
  padding:14px 18px;background:var(--hover);border-radius:12px;margin-bottom:20px;
  text-align:left;
}
.go-logo{width:44px;height:44px;border-radius:10px;object-fit:cover;flex:none}
.go-info{flex:1;min-width:0}
.go-name{font-size:15px;font-weight:600;color:var(--fg);margin-bottom:2px}
.go-url{font-size:12.5px;color:var(--muted);word-break:break-all}
.go-warn{
  font-size:12.5px;color:#d97706;background:#fef3c7;
  padding:10px 14px;border-radius:8px;margin:0 0 20px;text-align:left;line-height:1.6;
}
.go-warn i{margin-right:4px}
[data-theme="dark"] .go-warn{background:rgba(217,119,6,.12);color:#fbbf24}
.go-actions{display:flex;gap:10px;margin-bottom:16px}
.go-btn{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  padding:11px 20px;border-radius:8px;font-size:14px;font-weight:500;transition:.15s;
}
.go-btn-primary{background:var(--accent);color:#fff}
.go-btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}
.go-btn-default{background:var(--hover);color:var(--fg);border:1px solid var(--line)}
.go-btn-default:hover{background:var(--accent-soft);color:var(--accent)}
.go-countdown{font-size:13px;color:var(--muted);margin:0}
.go-countdown span{color:var(--accent);font-weight:700;font-size:15px}
.go-cancel{color:var(--muted);margin-left:8px;text-decoration:underline}
.go-cancel:hover{color:var(--accent)}
@media (max-width:640px){
  .go-wrap{margin:20px auto;padding:0 12px}
  .go-card{padding:24px 20px}
}

/* ===== 国家地区查询 列表优化 ===== */
.na-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr)) !important;gap:14px !important}
.na-card{
  padding:14px 16px !important;
  align-items:flex-start !important;
  gap:14px !important;
}
.na-flag{
  width:52px !important;height:38px !important;
  border-radius:6px !important;
  flex:none !important;
  border:1px solid var(--line) !important;
  overflow:hidden !important;
}
.na-flag img{width:100% !important;height:100% !important;object-fit:cover !important;display:block !important}
.na-body{gap:4px !important}
.na-name{font-size:15.5px !important;font-weight:600 !important;line-height:1.3 !important;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.na-sub{
  font-size:12px !important;color:var(--muted) !important;line-height:1.4 !important;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  display:block;max-width:100%;
}
.na-meta{gap:10px !important;font-size:12px !important;margin-top:2px !important;
  display:flex;align-items:center;flex-wrap:nowrap;overflow:hidden}
.na-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.na-code{font-size:11.5px !important}

@media (max-width:640px){
  .na-grid{grid-template-columns:1fr !important;gap:10px !important}
}

/* ===== 右下角悬浮按钮 ===== */
.float-bar{
  position:fixed;right:4px;bottom:80px;z-index:100;
  display:flex;flex-direction:column;gap:8px;
}
.fb-btn{
  width:40px;height:40px;border-radius:50%;
  background:var(--panel);border:1px solid var(--line);
  color:var(--muted);cursor:pointer;font-size:16px;
  display:flex;align-items:center;justify-content:center;
  transition:.15s;
  box-shadow:0 2px 12px rgba(0,0,0,.08);
}
.fb-btn:hover{
  border-color:var(--accent);color:var(--accent);
  transform:translateY(-2px);
  box-shadow:0 4px 16px var(--accent-soft);
}
.fb-btn.on{
  background:var(--accent);border-color:var(--accent);color:#fff;
}
.fb-btn.on:hover{filter:brightness(1.1)}
@media (max-width:640px){
  .float-bar{right:12px;bottom:72px;gap:6px}
  .fb-btn{width:38px;height:38px;font-size:14px}
}

/* 返回顶部按钮默认隐藏 */
.fb-btn.fb-top{
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:.2s;
}
.fb-btn.fb-top.show{
  opacity:1;visibility:visible;transform:translateY(0);
}

/* 收藏弹层 */
.fav-list{padding:8px 0}
.fav-item{
  display:block;padding:10px 18px;color:var(--accent);
  font-size:13.5px;border-bottom:1px solid var(--line);
  word-break:break-all;transition:.15s;
}
.fav-item:hover{background:var(--accent-soft)}
.fav-actions{padding:16px;text-align:center}
.fav-clear{
  padding:8px 20px;border:1px solid #ef4444;background:#fff;color:#ef4444;
  border-radius:6px;cursor:pointer;font-size:13px;
}
.fav-clear:hover{background:#ef4444;color:#fff}

/* 收藏弹层优化 */
.fav-item{
  display:flex;align-items:center;gap:8px;
  border-bottom:1px solid var(--line);
  transition:.15s;
}
.fav-item:hover{background:var(--accent-soft)}
.fav-link{
  flex:1;min-width:0;display:block;
  padding:12px 18px;text-decoration:none;color:inherit;
}
.fav-title{
  display:block;font-size:14px;color:var(--fg);
  font-weight:500;margin-bottom:3px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.fav-url{
  display:block;font-size:12px;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.fav-link i{color:var(--accent);font-size:13px;margin-right:6px}
.fav-del{
  flex:none;padding:8px 12px;background:transparent;border:0;
  color:var(--muted);cursor:pointer;font-size:14px;
}
.fav-del:hover{color:#ef4444}
.fav-actions{padding:16px;text-align:center}
.fav-clear{
  padding:8px 20px;border:1px solid #ef4444;background:#fff;color:#ef4444;
  border-radius:6px;cursor:pointer;font-size:13px;
}
.fav-clear:hover{background:#ef4444;color:#fff}

/* ===== 收藏页 ===== */
.fav-page-list{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.fav-page-item{display:flex;align-items:stretch;border-bottom:1px solid var(--line);transition:.15s}
.fav-page-item:last-child{border-bottom:0}
.fav-page-item:hover{background:var(--hover)}
.fav-page-link{flex:1;min-width:0;display:block;padding:14px 20px;text-decoration:none;color:inherit}
.fav-page-link i{color:var(--accent);font-size:14px;margin-right:8px}
.fav-page-title{display:block;font-size:14.5px;font-weight:500;color:var(--fg);margin-bottom:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fav-page-url{display:block;font-size:12px;color:var(--muted);margin-left:22px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fav-page-del{
  flex:none;padding:0 18px;background:transparent;border:0;
  color:var(--muted);cursor:pointer;font-size:15px;transition:.15s;
}
.fav-page-del:hover{color:#ef4444;background:var(--accent-soft)}
.fav-page-actions{padding:20px;text-align:center;background:var(--panel);border-top:1px solid var(--line)}
.fav-page-clear{
  padding:9px 22px;border:1px solid #ef4444;background:#fff;color:#ef4444;
  border-radius:6px;cursor:pointer;font-size:13px;transition:.15s;
}
.fav-page-clear:hover{background:#ef4444;color:#fff}
.empty-box i{font-size:44px;color:var(--muted);opacity:.4;margin-bottom:10px;display:block}

/* ===== 收藏页优化 ===== */
.fav-page-list{
  background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;
}
.fav-page-item{
  display:flex;align-items:center;
  border-bottom:1px solid var(--line);
  transition:.15s;
}
.fav-page-item:last-child{border-bottom:0}
.fav-page-item:hover{background:var(--hover)}
.fav-page-link{
  flex:1;min-width:0;display:flex;align-items:center;gap:14px;
  padding:14px 20px;text-decoration:none;color:inherit;
}
.fav-page-icon{
  flex:none;width:36px;height:36px;border-radius:8px;
  background:var(--accent-soft);color:var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-size:15px;
}
.fav-page-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.fav-page-title{
  font-size:14.5px;font-weight:500;color:var(--fg);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.fav-page-url{
  font-size:12px;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.fav-page-del{
  flex:none;width:48px;height:48px;
  background:transparent;border:0;color:var(--muted);
  cursor:pointer;font-size:14px;transition:.15s;
}
.fav-page-del:hover{color:#ef4444;background:#fef2f2}
.fav-page-actions{
  padding:20px;text-align:center;
}
.fav-page-clear{
  padding:9px 22px;border:1px solid #ef4444;background:transparent;color:#ef4444;
  border-radius:8px;cursor:pointer;font-size:13.5px;transition:.15s;
}
.fav-page-clear:hover{background:#ef4444;color:#fff}
[data-theme="dark"] .fav-page-del:hover{background:rgba(239,68,68,.12)}

/* 卡片角标 · 渐变层次（#F90 / #43B3FF / #35C4B8） */
.card .card-rank-badge{
  position:absolute !important;top:0 !important;left:0 !important;
  width:24px !important;height:24px !important;
  display:flex !important;align-items:center !important;justify-content:center !important;
  font-size:12px !important;color:#fff !important;
  border-top-left-radius:inherit !important;border-top-right-radius:0 !important;
  border-bottom-right-radius:12px !important;
  border-bottom-left-radius:0 !important;
  z-index:2 !important;
  box-shadow:inset 0 -2px 4px rgba(0,0,0,.12), inset 0 1px 2px rgba(255,255,255,.35) !important;
}
.card .card-rank-badge i{
  font-size:12px !important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.3));
}
/* 1 名：橙 #F90 → 深橙 */
.card .card-rank-badge-1{background:linear-gradient(145deg,#ffb84d 0%,#F90 50%,#cc7a00 100%) !important}
/* 2 名：蓝 #43B3FF → 深蓝 */
.card .card-rank-badge-2{background:linear-gradient(145deg,#7fd0ff 0%,#43B3FF 50%,#298fcc 100%) !important}
/* 3 名：青 #35C4B8 → 深青 */
.card .card-rank-badge-3{background:linear-gradient(145deg,#6de0d6 0%,#35C4B8 50%,#279a90 100%) !important}


/* ===== 点赞动效 ===== */
@keyframes fb-pop{
  0%   { transform: scale(1); }
  40%  { transform: scale(1.35); }
  70%  { transform: scale(0.92); }
  100% { transform: scale(1); }
}
.fb-btn.pop{ animation: fb-pop .4s ease }

@keyframes like-fly-up{
  0%   { opacity: 0; transform: translate(-50%, 0) scale(.8); }
  20%  { opacity: 1; transform: translate(-50%, -8px) scale(1.15); }
  100% { opacity: 0; transform: translate(-50%, -44px) scale(1); }
}
.like-fly{
  position: absolute; left: 50%; top: 0;
  font-size: 14px; font-weight: 800;
  color: #ef4444;
  pointer-events: none;
  animation: like-fly-up 1s ease-out forwards;
  text-shadow: 0 1px 4px rgba(239,68,68,.35);
  z-index: 999;
}
/* 收藏角标 */
.fb-btn{position:relative}
.fb-badge{
  position:absolute;top:-4px;right:-4px;
  min-width:16px;height:16px;padding:0 4px;
  background:#ef4444;color:#fff;
  border-radius:8px;
  font-size:10px;font-weight:700;
  line-height:16px;text-align:center;
  box-shadow:0 1px 4px rgba(239,68,68,.5);
  pointer-events:none;
  z-index:2;
}

/* ===== layer 弹层暗夜适配 ===== */
[data-theme="dark"] .layui-layer.layui-layer-msg{
  background:var(--panel) !important;
  border-color:var(--line) !important;
  color:var(--fg) !important;
}
[data-theme="dark"] .layui-layer.layui-layer-msg .layui-layer-content{
  color:var(--fg) !important;
}
[data-theme="dark"] .layui-layer.layui-layer-msg .layui-layer-content i{
  color:inherit !important;
}
/* layer 通用弹层（layer.alert / layer.confirm 等） */
[data-theme="dark"] .layui-layer{
  background:var(--panel) !important;
  border-color:var(--line) !important;
  color:var(--fg) !important;
}
[data-theme="dark"] .layui-layer-title{
  background:var(--hover) !important;
  border-bottom-color:var(--line) !important;
  color:var(--fg) !important;
}
[data-theme="dark"] .layui-layer-content{
  color:var(--fg) !important;
}
[data-theme="dark"] .layui-layer-btn a{
  background:var(--panel) !important;
  border-color:var(--line) !important;
  color:var(--fg) !important;
}
[data-theme="dark"] .layui-layer-btn .layui-layer-btn0{
  background:var(--accent) !important;
  border-color:var(--accent) !important;
  color:#fff !important;
}
[data-theme="dark"] .layui-layer-setwin .layui-layer-close{
  color:var(--muted) !important;
}
/* 收藏提示的自定义 skin */
[data-theme="dark"] .layui-layer.fb-toast{
  background:var(--panel) !important;
  color:var(--fg) !important;
}


/* ===== 分类页：标题 + 排序切换 同行 ===== */
.page-head-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:nowrap;
  margin-bottom:6px;
}
.page-head-top h1{
  margin:0 !important;
  font-size:22px;
  display:flex;
  align-items:center;
  gap:8px;
}
.page-head-top h1 i{
  color:var(--accent);
  font-size:20px;
}

/* 排序切换 */
.cat-sort{
  display:inline-flex;
  gap:2px;
  background:var(--hover);
  border-radius:10px;
  padding:3px;
  flex:none;
}
.cat-sort a{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:6px 14px;
  border-radius:8px;
  font-size:13px;
  color:var(--muted);
  text-decoration:none;
  transition:.15s;
  white-space:nowrap;
}
.cat-sort a i{font-size:11px}
.cat-sort a:hover{color:var(--accent)}
.cat-sort a.on{
  background:var(--panel);
  color:var(--accent);
  font-weight:600;
  box-shadow:0 1px 3px rgba(0,0,0,.08);
}

/* 面包屑后的「共 N 个」 */
.crumb-count{
  font-style:normal;
  color:var(--muted);
  font-size:12.5px;
  margin-left:8px;
  padding-left:8px;
  border-left:1px solid var(--line);
}

/* 移动端 */
@media (max-width:640px){
  .page-head-top{
    flex-wrap:wrap;
    gap:8px;
  }
  .page-head-top h1{font-size:18px}
  .page-head-top h1 i{font-size:16px}
  .cat-sort a{padding:4px 10px;font-size:12px}
  .cat-sort a i{font-size:10px}
}
/* ===== 汽车标志大全 ===== */
.clogo-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:12px;margin-bottom:28px;
}
.clogo-card{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:16px 12px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  text-decoration:none;color:inherit;transition:.15s;
}
.clogo-card:hover{
  border-color:var(--accent);background:var(--hover);
  transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.06);
}
.clogo-img{
  width:80px;height:80px;display:flex;align-items:center;justify-content:center;
}
.clogo-img img{max-width:80px;max-height:80px;object-fit:contain}
.clogo-img i{font-size:36px;color:var(--muted)}
.clogo-name{font-size:14px;font-weight:600;color:var(--fg);text-align:center;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.clogo-country{font-size:12px;color:var(--muted)}

/* 详情 */
.clogo-detail{max-width:none}
.clogo-hero{
  display:flex;align-items:center;gap:24px;
  padding:28px 32px;margin-bottom:20px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.clogo-hero-img{
  width:140px;height:140px;flex:none;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  background:var(--hover);
}
.clogo-hero-img img{max-width:120px;max-height:120px;object-fit:contain}
.clogo-hero-img i{font-size:60px;color:var(--muted)}
.clogo-hero-info h1{font-size:26px;font-weight:700;margin:0 0 10px;color:var(--fg)}
.clogo-hero-country{font-size:14px;color:var(--muted);margin:0}
.clogo-hero-country i{color:var(--accent);margin-right:4px}

.clogo-body{font-size:15px;line-height:1.9;color:var(--fg)}

.clogo-meta{list-style:none;padding:0;margin:0}
.clogo-meta li{padding:10px 0;border-bottom:1px dashed var(--line);font-size:14px}
.clogo-meta li:last-child{border-bottom:0}
.clogo-meta b{color:var(--muted);font-weight:500;margin-right:6px}

.clogo-nav{
  display:flex;justify-content:space-between;gap:12px;margin:20px 0 28px;
  padding:14px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
}
.clogo-nav a,.clogo-nav .disabled{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--muted)}
.clogo-nav a{color:var(--accent)}

.clogo-rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.clogo-rel-card{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:12px 8px;border:1px solid var(--line);border-radius:10px;
  background:var(--panel);text-decoration:none;color:inherit;transition:.15s;
}
.clogo-rel-card:hover{border-color:var(--accent);background:var(--hover)}
.clogo-rel-img{width:60px;height:60px;display:flex;align-items:center;justify-content:center}
.clogo-rel-img img{max-width:60px;max-height:60px;object-fit:contain}
.clogo-rel-img i{font-size:28px;color:var(--muted)}
.clogo-rel-name{font-size:13px;color:var(--fg);text-align:center;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}

@media (max-width:640px){
  .clogo-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
  .clogo-img{width:60px;height:60px}
  .clogo-img img{max-width:60px;max-height:60px}
  .clogo-hero{flex-direction:column;text-align:center;padding:20px}
  .clogo-hero-img{width:100px;height:100px}
  .clogo-nav{flex-direction:column}
}



/* ============================================================
   千寻网 · 新工具 CSS（一次性，加 app.css 末尾）
   ============================================================ */

/* ===== JSON 生成实体类（C#/Java/Go） & XML/JSON & JSON/YAML & JSON/GET ===== */
.jc-wrap{max-width:1200px;margin:0 auto}
.jc-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px}
.jc-toolbar{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;
  padding-bottom:16px;border-bottom:1px solid var(--line);
}
.jc-toolbar label{font-size:13px;color:var(--muted)}
.jc-toolbar input[type=text]{
  height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;
  font-size:13.5px;background:var(--panel);color:var(--fg);outline:none;min-width:140px;
}
.jc-toolbar input[type=text]:focus{border-color:var(--accent)}
.jc-btn{
  height:36px;padding:0 16px;border:1px solid var(--line);background:var(--panel);
  color:var(--fg);border-radius:8px;font-size:13.5px;cursor:pointer;transition:.15s;
  display:inline-flex;align-items:center;gap:6px;
}
.jc-btn:hover{border-color:var(--accent);color:var(--accent)}
.jc-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.jc-btn-primary:hover{filter:brightness(1.1);color:#fff}
.jc-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.jc-col{display:flex;flex-direction:column;min-width:0}
.jc-label{
  display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:500;
  color:var(--fg);margin-bottom:8px;
}
.jc-label i{color:var(--accent);font-size:13px}
.jc-copy{
  margin-left:auto;padding:4px 10px;border:1px solid var(--line);
  background:var(--panel);border-radius:6px;color:var(--muted);cursor:pointer;font-size:12px;
}
.jc-copy:hover{border-color:var(--accent);color:var(--accent)}
.jc-textarea{
  width:100%;min-height:460px;padding:14px;border:1px solid var(--line);border-radius:10px;
  background:var(--panel);color:var(--fg);font-family:ui-monospace,Consolas,Monaco,monospace;
  font-size:13px;line-height:1.7;resize:vertical;outline:none;box-sizing:border-box;
}
.jc-textarea:focus{border-color:var(--accent)}
@media (max-width:768px){
  .jc-grid{grid-template-columns:1fr}
  .jc-textarea{min-height:280px}
}

/* ===== XML/JSON 互转 tabs ===== */
.xj-wrap{max-width:1200px;margin:0 auto}
.xj-tabs{display:flex;gap:8px;margin-bottom:14px}
.xj-tab{
  padding:9px 18px;border:1px solid var(--line);background:var(--panel);
  color:var(--fg);border-radius:8px;cursor:pointer;font-size:13.5px;
  display:inline-flex;align-items:center;gap:6px;transition:.15s;
}
.xj-tab:hover{border-color:var(--accent);color:var(--accent)}
.xj-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.xj-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px}
.xj-toolbar{
  display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;
  padding-bottom:16px;border-bottom:1px solid var(--line);
}

/* ===== Excel/CSV 转 JSON ===== */
.ej-wrap{max-width:1200px;margin:0 auto}
.ej-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px}
.ej-drop{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:60px 20px;border:2px dashed var(--line);border-radius:12px;
  cursor:pointer;transition:.15s;text-align:center;
}
.ej-drop:hover,.ej-drop.dragover{border-color:var(--accent);background:var(--accent-soft)}
.ej-drop i{font-size:48px;color:var(--accent);margin-bottom:14px}
.ej-drop p{font-size:14px;color:var(--fg);margin:4px 0}
.ej-hint{font-size:12px;color:var(--muted)}
.ej-toolbar{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;
  padding-bottom:16px;border-bottom:1px solid var(--line);
}
.ej-toolbar label{font-size:13px;color:var(--muted)}
.ej-toolbar select{
  height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;
  font-size:13.5px;background:var(--panel);color:var(--fg);outline:none;
}
.ej-preview{max-height:460px;overflow:auto;border:1px solid var(--line);border-radius:8px}
.ej-table{border-collapse:collapse;width:100%;font-size:12.5px}
.ej-table td{padding:6px 10px;border:1px solid var(--line);white-space:nowrap}
.ej-table tr:first-child{background:var(--hover);font-weight:500}
.ej-more{font-size:12px;color:var(--muted);padding:8px 12px;margin:0}
@media (max-width:768px){
  .ej-drop{padding:36px 16px}
  .ej-drop i{font-size:36px}
}

/* ===== UserAgent 大全 / Content-Type / HTTP 请求头 / 端口 / 颜色等 ===== */
.ua-search{
  display:flex;align-items:center;gap:10px;
  padding:6px 16px;margin:0 0 20px;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
}
.ua-search:focus-within{border-color:var(--accent)}
.ua-search i{color:var(--muted);font-size:14px}
.ua-search input{
  flex:1;height:40px;border:0;background:transparent;outline:none;
  font-size:14px;color:var(--fg);
}
.ua-list{display:flex;flex-direction:column;gap:12px}
.ua-item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 18px}
.ua-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.ua-name{
  font-size:14px;font-weight:600;color:var(--fg);
  display:flex;align-items:center;gap:6px;
}
.ua-name i{color:var(--accent);font-size:13px}
.ua-copy{
  flex:none;padding:5px 12px;border:1px solid var(--line);background:var(--panel);
  color:var(--muted);border-radius:6px;cursor:pointer;font-size:12.5px;
  display:inline-flex;align-items:center;gap:4px;transition:.15s;
}
.ua-copy:hover{border-color:var(--accent);color:var(--accent)}
.ua-code{
  display:block;padding:10px 12px;background:var(--hover);border-radius:6px;
  font-family:ui-monospace,Consolas,Monaco,monospace;font-size:12.5px;line-height:1.7;
  color:var(--fg);word-break:break-all;white-space:pre-wrap;
}

/* ===== Content-Type 表 ===== */
.ct-group{margin-bottom:24px}
.ct-title{
  font-size:15px;font-weight:600;margin:0 0 12px;color:var(--fg);
  display:flex;align-items:center;gap:8px;
}
.ct-title i{color:var(--accent);font-size:14px}
.ct-table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ct-table{width:100%;border-collapse:collapse;font-size:13.5px}
.ct-table th,.ct-table td{padding:10px 16px;text-align:left;border-bottom:1px solid var(--line)}
.ct-table th{background:var(--hover);font-weight:600;color:var(--muted);font-size:12.5px}
.ct-table tr:last-child td{border-bottom:0}
.ct-table tr:hover td{background:var(--hover)}
.ct-table code{
  font-family:ui-monospace,Consolas,Monaco,monospace;font-size:12.5px;
  color:var(--accent);word-break:break-all;
}
.ct-copy{
  padding:4px 10px;border:1px solid var(--line);background:var(--panel);
  color:var(--muted);border-radius:6px;cursor:pointer;font-size:12px;transition:.15s;
}
.ct-copy:hover{border-color:var(--accent);color:var(--accent)}
@media (max-width:640px){
  .ct-table th,.ct-table td{padding:8px 10px;font-size:12.5px}
}

/* ===== HTTP 请求头 ===== */
.ht-list{display:flex;flex-direction:column;gap:10px}
.ht-item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 18px}
.ht-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.ht-name{
  font-family:ui-monospace,Consolas,Monaco,monospace;
  font-size:14px;font-weight:600;color:var(--accent);
}
.ht-desc{flex:1;min-width:0;font-size:13px;color:var(--muted)}
.ht-copy{
  flex:none;padding:5px 10px;border:1px solid var(--line);background:var(--panel);
  color:var(--muted);border-radius:6px;cursor:pointer;font-size:12px;transition:.15s;
}
.ht-copy:hover{border-color:var(--accent);color:var(--accent)}
.ht-example{
  display:block;padding:10px 12px;background:var(--hover);border-radius:6px;
  font-family:ui-monospace,Consolas,Monaco,monospace;font-size:12.5px;line-height:1.7;
  color:var(--fg);word-break:break-all;white-space:pre-wrap;
}

/* ===== HTTP 请求方法 ===== */
.hm-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}
.hm-item{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px}
.hm-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.hm-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 12px;border-radius:8px;color:#fff;font-weight:600;font-size:13.5px;
  font-family:ui-monospace,Consolas,Monaco,monospace;letter-spacing:.5px;
}
.hm-badge i{font-size:12px}
.hm-cat{font-size:12px;color:var(--muted);padding:3px 10px;background:var(--hover);border-radius:6px}
.hm-copy{
  margin-left:auto;padding:5px 10px;border:1px solid var(--line);background:var(--panel);
  color:var(--muted);border-radius:6px;cursor:pointer;font-size:12px;transition:.15s;
}
.hm-copy:hover{border-color:var(--accent);color:var(--accent)}
.hm-desc{font-size:13.5px;line-height:1.7;color:var(--fg);margin:0 0 12px}
.hm-example{
  padding:12px 14px;background:var(--hover);border-radius:8px;margin:0;
  font-family:ui-monospace,Consolas,Monaco,monospace;font-size:12px;line-height:1.7;
  color:var(--fg);overflow-x:auto;white-space:pre-wrap;word-break:break-all;
}
@media (max-width:640px){
  .hm-list{grid-template-columns:1fr}
}

/* ===== ASCII 表 ===== */
.as-table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.as-table{width:100%;border-collapse:collapse;font-size:13px}
.as-table th,.as-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line)}
.as-table th{background:var(--hover);font-weight:600;color:var(--muted);font-size:12.5px;position:sticky;top:0}
.as-table tr:hover td{background:var(--hover)}
.as-table code{
  font-family:ui-monospace,Consolas,Monaco,monospace;font-size:12.5px;
  color:var(--accent);white-space:nowrap;
}
.as-char{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:24px;height:24px;padding:0 6px;
  background:var(--accent-soft);border-radius:4px;
  font-family:ui-monospace,Consolas,Monaco,monospace;
  font-size:13px;color:var(--accent);font-weight:600;
}
.as-nil{color:var(--muted);opacity:.4}
.as-abbr{color:var(--muted)!important;font-size:11.5px!important}
@media (max-width:640px){
  .as-table th,.as-table td{padding:6px 8px;font-size:12px}
  .as-table th:nth-child(3),.as-table td:nth-child(3),
  .as-table th:nth-child(4),.as-table td:nth-child(4){display:none}
}

/* ===== 端口表 ===== */
.pt-table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.pt-table{width:100%;border-collapse:collapse;font-size:13.5px}
.pt-table th,.pt-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line)}
.pt-table th{background:var(--hover);font-weight:600;color:var(--muted);font-size:12.5px}
.pt-table tr:hover td{background:var(--hover)}
.pt-table tr:last-child td{border-bottom:0}
.pt-num{
  font-family:ui-monospace,Consolas,Monaco,monospace;
  font-size:14px;font-weight:700;color:var(--accent);
}
.pt-svc{font-size:13.5px;font-weight:500;color:var(--fg)}
.pt-type{
  display:inline-block;padding:2px 8px;border-radius:5px;font-size:11.5px;
  font-weight:500;background:var(--hover);color:var(--muted);
}
.pt-type.pt-tcp{background:#dbeafe;color:#1d4ed8}
.pt-type.pt-udp{background:#fef3c7;color:#b45309}
.pt-type.pt-tcp-udp{background:#e0e7ff;color:#4338ca}
[data-theme="dark"] .pt-type.pt-tcp{background:rgba(59,130,246,.15);color:#60a5fa}
[data-theme="dark"] .pt-type.pt-udp{background:rgba(245,158,11,.15);color:#fbbf24}
[data-theme="dark"] .pt-type.pt-tcp-udp{background:rgba(99,102,241,.15);color:#a5b4fc}
@media (max-width:640px){
  .pt-table th,.pt-table td{padding:8px 10px;font-size:12.5px}
}

/* ===== Android 权限 ===== */
.ap-list{display:flex;flex-direction:column;gap:10px}
.ap-item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 18px}
.ap-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.ap-name{
  flex:1;min-width:0;
  font-family:ui-monospace,Consolas,Monaco,monospace;
  font-size:13px;color:var(--accent);word-break:break-all;
}
.ap-level{flex:none;padding:3px 10px;border-radius:6px;font-size:11.5px;font-weight:600}
.ap-normal{background:#dbeafe;color:#1d4ed8}
.ap-danger{background:#fee2e2;color:#dc2626}
.ap-special{background:#fef3c7;color:#b45309}
[data-theme="dark"] .ap-normal{background:rgba(59,130,246,.15);color:#60a5fa}
[data-theme="dark"] .ap-danger{background:rgba(239,68,68,.15);color:#f87171}
[data-theme="dark"] .ap-special{background:rgba(245,158,11,.15);color:#fbbf24}
.ap-copy{
  flex:none;padding:5px 10px;border:1px solid var(--line);background:var(--panel);
  color:var(--muted);border-radius:6px;cursor:pointer;font-size:12px;transition:.15s;
}
.ap-copy:hover{border-color:var(--accent);color:var(--accent)}
.ap-desc{font-size:13px;line-height:1.7;color:var(--fg);margin:0}
.ap-desc b{color:var(--fg);font-weight:600}

/* ===== 驼峰下划线 ===== */
.cm-wrap{max-width:900px;margin:0 auto}
.cm-input-row{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.cm-input{
  flex:1;min-width:240px;height:44px;padding:0 16px;
  border:1px solid var(--line);border-radius:10px;
  font-size:15px;background:var(--panel);color:var(--fg);outline:none;
  font-family:ui-monospace,Consolas,Monaco,monospace;
}
.cm-input:focus{border-color:var(--accent)}
.cm-results{display:flex;flex-direction:column;gap:10px}
.cm-item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 16px}
.cm-label{font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:500}
.cm-row{display:flex;align-items:center;gap:10px}
.cm-val{
  flex:1;min-width:0;
  font-family:ui-monospace,Consolas,Monaco,monospace;
  font-size:14px;color:var(--accent);font-weight:600;word-break:break-all;
}
.cm-copy{
  flex:none;padding:5px 10px;border:1px solid var(--line);background:var(--panel);
  color:var(--muted);border-radius:6px;cursor:pointer;font-size:12px;transition:.15s;
}
.cm-copy:hover{border-color:var(--accent);color:var(--accent)}

/* ===== 文字翻转 ===== */
.tf-wrap{max-width:1000px;margin:0 auto}
.tf-input,.tf-output{margin-bottom:16px}
.tf-toolbar{
  display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;
  padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:10px;
}

/* ===== 颜色格式转换 ===== */
.cc-wrap{max-width:720px;margin:0 auto}
.cc-preview{
  height:140px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-family:ui-monospace,Consolas,Monaco,monospace;
  font-size:28px;font-weight:700;letter-spacing:2px;
  margin-bottom:20px;transition:.2s;box-shadow:0 4px 20px rgba(0,0,0,.08);
}
.cc-picker{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.cc-picker label{font-size:13.5px;color:var(--muted)}
.cc-picker input[type=color]{
  width:60px;height:40px;border:1px solid var(--line);border-radius:8px;cursor:pointer;
  background:var(--panel);padding:2px;
}
.cc-rows{display:flex;flex-direction:column;gap:12px}
.cc-row{
  display:flex;align-items:center;gap:12px;
  background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 16px;
}
.cc-row label{flex:none;width:60px;font-size:13px;font-weight:600;color:var(--muted)}
.cc-row input{
  flex:1;min-width:0;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:8px;
  background:var(--panel);color:var(--fg);font-size:13.5px;outline:none;
  font-family:ui-monospace,Consolas,Monaco,monospace;
}
.cc-row input:focus{border-color:var(--accent)}
.cc-copy{
  flex:none;padding:6px 12px;border:1px solid var(--line);background:var(--panel);
  color:var(--muted);border-radius:6px;cursor:pointer;font-size:12px;transition:.15s;
}
.cc-copy:hover{border-color:var(--accent);color:var(--accent)}



/* ===== HTML 在线编辑器 ===== */
.he-wrap{max-width:1100px;margin:0 auto}
.he-toolbar{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px;
  padding:8px 10px;background:var(--panel);
  border:1px solid var(--line);border-bottom:0;
  border-radius:12px 12px 0 0;
}
.he-btn{
  min-width:34px;height:34px;padding:0 10px;
  border:0;background:transparent;color:var(--fg);
  border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  transition:.15s;
}
.he-btn:hover{background:var(--accent-soft);color:var(--accent)}
.he-btn.active{background:var(--accent);color:#fff}
.he-btn-primary{
  background:var(--accent) !important;
  color:#fff !important;
}
.he-btn-primary:hover{
  background:var(--accent) !important;
  color:#fff !important;
  filter:brightness(1.15);
}
.he-div{width:1px;height:20px;background:var(--line);margin:0 4px}
.he-editor{
  min-height:480px;padding:24px 32px;
  background:var(--panel);border:1px solid var(--line);
  border-radius:0 0 12px 12px;
  font-size:15px;line-height:1.9;color:var(--fg);
  outline:none;overflow-y:auto;
}
.he-editor:focus{border-color:var(--accent)}
.he-editor h1{font-size:26px;font-weight:700;margin:16px 0 10px}
.he-editor h2{font-size:22px;font-weight:700;margin:14px 0 8px}
.he-editor h3{font-size:18px;font-weight:600;margin:12px 0 6px}
.he-editor p{margin:8px 0}
.he-editor ul,.he-editor ol{margin:8px 0;padding-left:26px}
.he-editor blockquote{
  margin:12px 0;padding:8px 16px;
  border-left:3px solid var(--accent);
  background:var(--hover);color:var(--muted);
  border-radius:0 8px 8px 0;
}
.he-editor a{color:var(--accent);text-decoration:underline}
.he-editor img{max-width:100%;border-radius:8px}
.he-source{padding:0;border:1px solid var(--line);border-radius:0 0 12px 12px;background:var(--panel)}
.he-source .jc-textarea{border:0;border-radius:0 0 12px 12px;min-height:480px;margin:0}
@media (max-width:640px){
  .he-editor{padding:16px 18px;min-height:340px}
  .he-source .jc-textarea{min-height:340px}
}

/* ===== 文字特效 ===== */
.tfx-wrap{max-width:900px;margin:0 auto}
.tfx-input-row{display:flex;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.tfx-hint{
  font-size:12.5px;color:var(--muted);margin:0 0 20px;
  display:flex;align-items:center;gap:6px;
}
.tfx-hint i{color:var(--accent)}
.tfx-list{display:flex;flex-direction:column;gap:10px}
.tfx-item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 16px}
.tfx-label{font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:500}
.tfx-row{display:flex;align-items:center;gap:10px}
.tfx-val{flex:1;min-width:0;font-size:16px;line-height:1.5;color:var(--fg);word-break:break-all}
.tfx-copy{
  flex:none;padding:5px 12px;border:1px solid var(--line);background:var(--panel);
  color:var(--muted);border-radius:6px;cursor:pointer;font-size:12px;transition:.15s;
}
.tfx-copy:hover{border-color:var(--accent);color:var(--accent)}



/* ===== 单位换算（面积/长度/重量/温度） ===== */
.uc-box{
  max-width:720px;margin:0 auto 24px;
  background:var(--panel);border:1px solid var(--line);border-radius:14px;
  padding:24px 28px;
}
.uc-row{display:flex;gap:14px;margin-bottom:14px}
.uc-label{flex:none;font-size:13.5px;color:var(--muted);font-weight:500}
.uc-input{
  min-width:0;height:46px;padding:0 16px;
  border:1px solid var(--line);border-radius:10px;
  font-size:16px;background:var(--bg);color:var(--fg);outline:none;
  font-family:ui-monospace,Consolas,Monaco,monospace;
}
.uc-input:focus{border-color:var(--accent)}
.uc-select{
  min-width:0;height:46px;padding:0 14px;
  border:1px solid var(--line);border-radius:10px;
  font-size:14.5px;background:var(--bg);color:var(--fg);outline:none;
  cursor:pointer;
}
.uc-select:focus{border-color:var(--accent)}
.uc-result{
  margin-top:16px;padding:18px 20px;
  background:var(--accent-soft);border-radius:10px;
  font-size:18px;line-height:1.5;color:var(--fg);
  text-align:center;word-break:break-all;
}
.uc-result b{color:var(--accent);font-family:ui-monospace,Consolas,Monaco,monospace;font-size:20px}
.uc-table-sec{max-width:720px;margin:0 auto}
.uc-table-wrap{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.uc-table{width:100%;border-collapse:collapse;font-size:13.5px}
.uc-table th,.uc-table td{padding:10px 16px;text-align:left;border-bottom:1px solid var(--line)}
.uc-table th{background:var(--hover);font-weight:600;color:var(--muted);font-size:12.5px}
.uc-table tr:last-child td{border-bottom:0}
.uc-table tr:hover td{background:var(--hover)}
.uc-table code{
  font-family:ui-monospace,Consolas,Monaco,monospace;
  font-size:12.5px;color:var(--accent);
}
@media (max-width:640px){
  .uc-box{padding:18px 16px}
  .uc-label{font-size:12.5px}
  .uc-input,.uc-select{height:42px;font-size:14.5px}
  .uc-result{font-size:15px;padding:14px}
  .uc-result b{font-size:16px}
}

/* ===== 字符串压缩 ===== */
.sz-stat{
  margin-top:12px;padding:10px 14px;font-size:13px;color:var(--muted);
  background:var(--hover);border-radius:8px;text-align:center;
}
.sz-stat i{color:var(--accent);margin-right:6px}
.sz-stat b{font-weight:600}

/* ===== md-form / md-field 修正（覆盖 .uc-input 影响） ===== */
.md-form{
  display:flex !important;
  align-items:flex-end !important;
  gap:14px !important;
  flex-wrap:wrap !important;
}
.md-field{
  flex:1 1 0 !important;
  min-width:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
}
.md-field > span{
  font-size:13px !important;
  color:var(--muted) !important;
  font-weight:600 !important;
}
.md-field .uc-input,
.md-field > input{
  flex:none !important;
  width:100% !important;
  height:42px !important;
  padding:0 14px !important;
  border-radius:8px !important;
  font-size:14px !important;
}
.md-op{
  flex:none !important;
  font-size:22px !important;
  font-weight:700 !important;
  color:var(--accent) !important;
  font-family:ui-monospace,Menlo,Consolas,monospace !important;
}

/* ===== 温度换算器 tconv- ===== */
.tconv-box{
  max-width:720px;margin:0 auto 24px;
  background:var(--panel);border:1px solid var(--line);border-radius:14px;
  padding:24px 28px;
}
.tconv-row{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:14px;
}
.tconv-label{
  flex:0 0 64px;
  width:64px;
  font-size:13.5px;
  color:var(--muted);
  font-weight:500;
  text-align:right;
  white-space:nowrap;
}
.tconv-input,
.tconv-select{
  flex:1 1 auto;
  min-width:0;
  height:46px;
  padding:0 16px;
  border:1px solid var(--line);
  border-radius:10px;
  font-size:15px;
  background:var(--bg);
  color:var(--fg);
  outline:none;
  box-sizing:border-box;
  font-family:inherit;
}
.tconv-input:focus,
.tconv-select:focus{
  border-color:var(--accent);
}
.tconv-result{
  margin-top:16px;padding:18px 20px;
  background:var(--accent-soft);border-radius:10px;
  font-size:18px;line-height:1.5;color:var(--fg);
  text-align:center;word-break:break-all;
}
.tconv-result b{
  color:var(--accent);
  font-family:ui-monospace,Consolas,Monaco,monospace;
  font-size:20px;
}
.tconv-table-sec{max-width:720px;margin:0 auto}
.tconv-table-wrap{
  background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;
}
.tconv-table{width:100%;border-collapse:collapse;font-size:13.5px}
.tconv-table th,.tconv-table td{
  padding:10px 16px;text-align:left;border-bottom:1px solid var(--line);
}
.tconv-table th{background:var(--hover);font-weight:600;color:var(--muted);font-size:12.5px}
.tconv-table tr:last-child td{border-bottom:0}
.tconv-table tr:hover td{background:var(--hover)}
.tconv-table code{
  font-family:ui-monospace,Consolas,Monaco,monospace;
  font-size:12.5px;color:var(--accent);
}
@media (max-width:640px){
  .tconv-box{padding:18px 16px}
  .tconv-label{flex:0 0 48px;width:48px;font-size:12.5px}
  .tconv-input,.tconv-select{height:42px;font-size:14.5px}
  .tconv-result{font-size:15px;padding:14px}
  .tconv-result b{font-size:16px}
}



/* ===== 汉语字典详情：移动端适配 ===== */
@media (max-width:640px){
  .hanzi-hero{
    flex-direction:column;
    align-items:center;
    text-align:center;
    padding:20px 16px;
    gap:16px;
    margin-bottom:20px;
  }
  .hanzi-big{
    width:120px;
    height:120px;
  }
  .hanzi-big-text{
    font-size:80px;
  }
  .hanzi-info{
    width:100%;
    flex:none;
  }
  .hanzi-info h1{
    font-size:36px;
    margin-bottom:6px;
  }
  .hanzi-pinyin{
    font-size:16px;
    margin-bottom:12px;
  }
  .hanzi-tags{
    justify-content:center;
    gap:6px;
  }
  .hanzi-tags .tag{
    font-size:12px;
    padding:4px 10px;
  }
}


/* ===== SEO 超级外链工具 seo- ===== */
.seo-box{
  max-width:1000px;
  margin:0 auto;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  padding:28px 32px;
}
.seo-row{
  display:flex;
  gap:20px;
  margin-bottom:18px;
}
.seo-label{
  flex:0 0 110px;
  width:110px;
  padding-top:11px;
  font-size:14px;
  font-weight:500;
  color:var(--fg);
  text-align:right;
  line-height:1.4;
  white-space:nowrap;
}
.seo-field{
  flex:1 1 auto;
  min-width:0;
}
.seo-input{
  width:100%;
  height:44px;
  padding:0 16px;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:10px;
  font-size:14.5px;
  background:var(--panel);
  color:var(--fg);
  outline:none;
  transition:.15s;
}
.seo-input:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);
}
.seo-ta{
  width:100%;
  padding:14px 16px;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:10px;
  font-family:ui-monospace,Consolas,Monaco,monospace;
  font-size:13px;
  line-height:1.7;
  background:var(--panel);
  color:var(--fg);
  outline:none;
  resize:vertical;
}
.seo-ta:focus{border-color:var(--accent)}
.seo-checks{
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  padding-top:11px;
}
.seo-check{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:13.5px;
  color:var(--fg);
  cursor:pointer;
  user-select:none;
  white-space:nowrap;
}
.seo-check input[type=checkbox]{
  width:16px;
  height:16px;
  accent-color:var(--accent);
  cursor:pointer;
  flex:none;
  margin:0;
}
.seo-btns{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.seo-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:40px;
  padding:0 20px;
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--fg);
  border-radius:8px;
  font-size:13.5px;
  font-weight:500;
  cursor:pointer;
  transition:.15s;
  white-space:nowrap;
}
.seo-btn:hover{
  border-color:var(--accent);
  color:var(--accent);
}
.seo-btn-primary{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}
.seo-btn-primary:hover{
  filter:brightness(1.1);
  color:#fff;
}
.seo-tips{
  margin-top:8px;
  padding-top:20px;
  border-top:1px dashed var(--line);
  font-size:13px;
  line-height:1.9;
  color:var(--muted);
}
.seo-tips p{margin:0 0 6px}
.seo-tips b{color:var(--fg);font-weight:600}

@media (max-width:640px){
  .seo-box{padding:18px 16px}
  .seo-row{flex-direction:column;gap:8px;margin-bottom:16px}
  .seo-label{flex:0 0 auto;width:100%;text-align:left;padding-top:0}
  .seo-checks{padding-top:0}
}

/* ===== 笑话列表：移动端强制不溢出 ===== */
@media (max-width:640px){
  .jk-list{
    grid-template-columns:1fr !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }
  .jk-list li,
  .jk-list li a{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    min-width:0 !important;
  }
  .jk-list li a{padding:16px 18px !important}
  .jk-head{flex-wrap:wrap !important}
  .jk-title{min-width:0 !important;overflow:hidden !important;text-overflow:ellipsis !important}
}

/* ===== 文章自动排版 ===== */
.pb-wrap{max-width:1200px;margin:0 auto}
.pb-options{
  display:flex;flex-wrap:wrap;gap:14px 20px;margin-bottom:16px;
  padding:16px 20px;background:var(--panel);border:1px solid var(--line);border-radius:10px;
}
.pb-options label{
  display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--fg);
  cursor:pointer;user-select:none;
}
.pb-options input[type=checkbox]{
  width:16px;height:16px;accent-color:var(--accent);cursor:pointer;
}

/* ===== 文章内容采集 ===== */
.cj-wrap{max-width:1100px;margin:0 auto}
.cj-input-row{
  display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap;
}
.cj-input{
  flex:1;min-width:280px;height:44px;padding:0 16px;
  border:1px solid var(--line);border-radius:10px;
  font-size:14px;background:var(--panel);color:var(--fg);outline:none;
}
.cj-input:focus{border-color:var(--accent)}
.cj-hint{
  font-size:12.5px;color:var(--muted);margin:0 0 20px;
  display:flex;align-items:center;gap:6px;
}
.cj-hint i{color:var(--accent)}
.cj-status{
  margin-top:12px;font-size:13.5px;color:var(--muted);min-height:20px;
}

/* ===== 子网掩码计算器 (subnet-) ===== */
.subnet-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px 16px;margin-bottom:18px}
.subnet-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.subnet-label{width:110px;flex-shrink:0;font-size:14px;color:var(--muted,#555)}
.subnet-inline{display:flex;gap:8px;flex:1;min-width:0}
.subnet-input{flex:1;min-width:0;padding:9px 12px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.subnet-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.subnet-select{padding:9px 10px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;min-width:88px}
.subnet-actions{display:flex;gap:10px;margin-top:6px}
.subnet-btn{padding:9px 18px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--fg,#222);cursor:pointer;transition:.15s}
.subnet-btn:hover{border-color:var(--accent);color:var(--accent)}
.subnet-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.subnet-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.subnet-error{color:#dc2626;font-size:13px;margin-top:8px;min-height:18px}
.subnet-result-sec{margin-top:0}
.subnet-result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.subnet-item{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--hover,var(--hover))}
.subnet-key{font-size:12px;color:var(--muted,var(--muted))}
.subnet-val{font-size:14px;color:var(--fg,#111);word-break:break-all}
.subnet-val code{font-family:ui-monospace,Menlo,Consolas,monospace;background:transparent;padding:0}
.subnet-table-wrap{overflow-x:auto}
.subnet-table{width:100%;border-collapse:collapse;font-size:13px}
.subnet-table th,.subnet-table td{padding:8px 10px;border-bottom:1px solid var(--line,var(--line));text-align:left;white-space:nowrap}
.subnet-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg))}
.subnet-table code{font-family:ui-monospace,Menlo,Consolas,monospace}
@media (max-width:640px){
  .subnet-label{width:100%}
  .subnet-inline{flex-direction:column}
  .subnet-select{width:100%}
}

/* ===== 科学计算器 (scicalc-) ===== */
.scicalc-wrap{max-width:560px;margin:0 auto 18px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:14px;padding:16px;box-shadow:0 2px 10px rgba(0,0,0,.04)}
.scicalc-display{background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:10px;padding:12px 14px;margin-bottom:12px;min-height:76px;display:flex;flex-direction:column;justify-content:space-between;gap:6px;overflow:hidden}
.scicalc-expr{font-size:14px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all;text-align:right;min-height:18px}
.scicalc-ans{font-size:26px;font-weight:600;color:var(--fg,#111);font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all;text-align:right;line-height:1.2}
.scicalc-mode{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.scicalc-tab{padding:6px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s}
.scicalc-tab:hover{border-color:var(--accent);color:var(--accent)}
.scicalc-tab.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.scicalc-pad{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.scicalc-btn{padding:14px 0;font-size:16px;border:1px solid var(--line,var(--line));border-radius:10px;background:var(--panel,var(--panel));color:var(--fg,#222);cursor:pointer;transition:.12s;font-family:ui-monospace,Menlo,Consolas,monospace;user-select:none}
.scicalc-btn:hover{background:var(--hover,var(--hover));border-color:var(--accent);color:var(--accent)}
.scicalc-btn:active{transform:scale(.97)}
.scicalc-btn.fn{background:var(--hover,var(--hover));font-size:14px;color:var(--muted,var(--fg))}
.scicalc-btn.danger{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3);color:#dc2626}
.scicalc-btn.danger:hover{background:rgba(239,68,68,.15);color:#ef4444;border-color:rgba(239,68,68,.4)}
.scicalc-btn.equal{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.scicalc-btn.equal:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.scicalc-history{max-height:100%;overflow-y:auto;padding:8px}
.scicalc-history-item{padding:10px 12px;border-bottom:1px solid var(--line,#eee);cursor:pointer;display:flex;justify-content:space-between;gap:10px;font-size:13px}
.scicalc-history-item:hover{background:var(--hover,var(--hover))}
.scicalc-history-item span{color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all}
.scicalc-history-item b{color:var(--accent);white-space:nowrap;font-family:ui-monospace,Menlo,Consolas,monospace}
.scicalc-tips{list-style:none;padding:0;margin:0}
.scicalc-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.scicalc-tips li:last-child{border-bottom:none}
.scicalc-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.scicalc-tips b{color:var(--fg,#111)}
@media (max-width:480px){
  .scicalc-pad{grid-template-columns:repeat(5,1fr);gap:6px}
  .scicalc-btn{padding:12px 0;font-size:14px}
  .scicalc-btn.fn{font-size:12px}
  .scicalc-ans{font-size:22px}
}
/* ===== 世界各地时间 (wt-) ===== */
.wt-local{background:linear-gradient(135deg,var(--accent),var(--accent));color:#fff;border-radius:14px;padding:20px 22px;margin-bottom:16px;box-shadow:0 4px 14px rgba(59,130,246,.25)}
.wt-local-label{font-size:13px;opacity:.85;margin-bottom:6px}
.wt-local-time{font-size:38px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.15;letter-spacing:1px}
.wt-local-date{font-size:14px;opacity:.9;margin-top:2px}
.wt-local-zone{font-size:12px;opacity:.75;margin-top:6px;font-family:ui-monospace,Menlo,Consolas,monospace}
.wt-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.wt-search{position:relative;flex:1;min-width:200px;display:flex;align-items:center}
.wt-search i{position:absolute;left:12px;color:var(--muted);font-size:13px;pointer-events:none}
.wt-search input{width:100%;padding:9px 12px 9px 34px;font-size:14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.wt-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.wt-btn{padding:8px 14px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;white-space:nowrap}
.wt-btn:hover{border-color:var(--accent);color:var(--accent)}
.wt-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}
.wt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:18px}
.wt-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;cursor:pointer;transition:.18s;position:relative;overflow:hidden}
.wt-card:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(59,130,246,.12);transform:translateY(-2px)}
.wt-card.day{background:linear-gradient(180deg,var(--panel) 0%,rgba(245,158,11,.1) 100%)}
.wt-card.night{background:linear-gradient(180deg,#1e293b 0%,#0f172a 100%);color:#cbd5e1;border-color:#334155}
.wt-card.night .wt-card-en,.wt-card.night .wt-card-date,.wt-card.night .wt-card-diff,.wt-card.night .wt-card-tz{color:#94a3b8}
.wt-card.night .wt-card-city{color:#e6e8eb}
.wt-card.pinned{border-color:#f59e0b;box-shadow:0 0 0 2px rgba(245,158,11,.25)}
.wt-card.pinned .wt-card-pin{color:#f59e0b}
.wt-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;gap:6px}
.wt-card-city{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.wt-card-city i{font-size:13px;color:#f59e0b}
.wt-card.night .wt-card-city i{color:#fbbf24}
.wt-card-en{font-size:11px;color:var(--muted);font-weight:400}
.wt-card-pin{color:var(--line);font-size:12px;transition:.15s}
.wt-card:hover .wt-card-pin{color:var(--accent)}
.wt-card-time{font-size:26px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--fg);line-height:1.15;letter-spacing:.5px}
.wt-card-time .sec{font-size:20px;color:var(--accent)}
.wt-card.night .wt-card-time{color:#e6e8eb}
.wt-card.night .wt-card-time .sec{color:#60a5fa}
.wt-card-date{font-size:12px;color:var(--muted);margin-top:2px}
.wt-card-diff{font-size:12px;color:var(--accent);margin-top:6px;font-weight:500}
.wt-card.night .wt-card-diff{color:#60a5fa}
.wt-card-tz{font-size:11px;color:var(--muted);margin-top:4px;font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all}
.wt-empty{grid-column:1/-1;text-align:center;padding:40px 0;color:var(--muted);font-size:14px}
.wt-tips{list-style:none;padding:0;margin:0}
.wt-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.wt-tips li:last-child{border-bottom:none}
.wt-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
@media (max-width:640px){
  .wt-local-time{font-size:30px}
  .wt-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}
  .wt-card{padding:10px}
  .wt-card-time{font-size:20px}
  .wt-card-time .sec{font-size:15px}
  .wt-card-city{font-size:13px}
  .wt-card-en{font-size:10px}
  .wt-card-date{font-size:11px}
  .wt-card-diff{font-size:11px}
}

/* 修复：夜晚卡片时间数字颜色 */
.wt-card.night .wt-card-time{color:#e6e8eb}
.wt-card.night .wt-card-time .sec{color:#60a5fa}
.wt-card.night .wt-card-city{color:#e6e8eb}
.wt-card.night .wt-card-pin{color:#94a3b8}
.wt-card.night:hover .wt-card-pin{color:var(--accent)}
.wt-card.day .wt-card-time{color:var(--fg)}
.wt-card.day .wt-card-time .sec{color:var(--accent)}

/* ===== 世界各国首都 (cap-) ===== */
.cap-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.cap-search{position:relative;flex:1;min-width:220px;display:flex;align-items:center}
.cap-search i{position:absolute;left:12px;color:var(--muted,var(--muted));font-size:13px;pointer-events:none}
.cap-search input{width:100%;padding:9px 12px 9px 34px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none}
.cap-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.cap-btn{padding:8px 14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap}
.cap-btn:hover{border-color:var(--accent);color:var(--accent)}
.cap-btn.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.cap-count{font-size:13px;color:var(--muted,var(--muted));margin-bottom:10px}
.cap-count b{color:var(--accent)}
.cap-table-wrap{overflow-x:auto;border:1px solid var(--line,var(--line));border-radius:12px;background:var(--panel,var(--panel));margin-bottom:18px}
.cap-table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
.cap-table th,.cap-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover));white-space:nowrap}
.cap-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));position:sticky;top:0;z-index:1}
.cap-table tr:last-child td{border-bottom:none}
.cap-table tr:hover td{background:var(--hover,var(--hover))}
.cap-capital{color:var(--accent);font-weight:600}
.cap-continent{display:inline-block;padding:2px 8px;font-size:12px;border-radius:6px;background:rgba(59,130,246,.1);color:var(--accent)}
.cap-continent.cap-亚洲{background:rgba(245,158,11,.15);color:#f59e0b}
.cap-continent.cap-欧洲{background:rgba(59,130,246,.15);color:var(--accent)}
.cap-continent.cap-非洲{background:rgba(239,68,68,.15);color:#ef4444}
.cap-continent.cap-北美洲{background:rgba(16,185,129,.15);color:#10b981}
.cap-continent.cap-南美洲{background:rgba(236,72,153,.15);color:#ec4899}
.cap-continent.cap-大洋洲{background:rgba(99,102,241,.12);color:#6366f1}
.cap-empty{text-align:center;color:var(--muted,var(--muted));padding:36px 0!important}
.cap-tips{list-style:none;padding:0;margin:0}
.cap-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.cap-tips li:last-child{border-bottom:none}
.cap-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.cap-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .cap-table{font-size:13px;min-width:560px}
  .cap-table th,.cap-table td{padding:8px 10px}
}

/* ===== 世界节日大全 (fes-) ===== */
.fes-today{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#f59e0b,#f59e0b);color:var(--panel);border-radius:14px;padding:16px 20px;margin-bottom:16px;box-shadow:0 4px 14px rgba(245,158,11,.25)}
.fes-today-ico{font-size:34px;opacity:.9}
.fes-today-body{flex:1;min-width:0}
.fes-today-label{font-size:13px;opacity:.9;margin-bottom:4px}
.fes-today-label b{font-weight:600}
.fes-today-name{font-size:20px;font-weight:700;line-height:1.3;word-break:break-all}
.fes-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.fes-search{position:relative;flex:1;min-width:220px;display:flex;align-items:center}
.fes-search i{position:absolute;left:12px;color:var(--muted,var(--muted));font-size:13px;pointer-events:none}
.fes-search input{width:100%;padding:9px 12px 9px 34px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none}
.fes-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.fes-btn{padding:8px 14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap}
.fes-btn:hover{border-color:var(--accent);color:var(--accent)}
.fes-btn.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.fes-month-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;padding:10px 12px;background:var(--hover,var(--hover));border-radius:10px;border:1px solid var(--line,var(--line))}
.fes-mbtn{padding:5px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap}
.fes-mbtn:hover{border-color:var(--accent);color:var(--accent)}
.fes-mbtn.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.fes-count{font-size:13px;color:var(--muted,var(--muted));margin-bottom:10px}
.fes-count b{color:var(--accent)}
.fes-list{margin-bottom:18px}
.fes-group{margin-bottom:18px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden}
.fes-group-head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:linear-gradient(90deg,rgba(59,130,246,.1),var(--panel));border-bottom:1px solid var(--line,var(--line))}
.fes-month{font-size:16px;font-weight:700;color:var(--accent)}
.fes-month-cnt{font-size:12px;color:var(--muted,var(--muted))}
.fes-group-body{padding:6px 0}
.fes-item{display:flex;align-items:center;gap:14px;padding:10px 16px;border-bottom:1px solid var(--line,var(--hover));transition:.12s}
.fes-item:last-child{border-bottom:none}
.fes-item:hover{background:var(--hover,var(--hover))}
.fes-date{flex-shrink:0;min-width:90px;font-size:13px;font-weight:600;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.fes-info{flex:1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.fes-name{font-size:14px;color:var(--fg,#111);font-weight:500}
.fes-tag{display:inline-block;padding:2px 8px;font-size:11px;border-radius:6px;background:rgba(59,130,246,.1);color:var(--accent);white-space:nowrap}
.fes-tag.fes-cat-中国节日{background:rgba(245,158,11,.15);color:#f59e0b}
.fes-tag.fes-cat-国际节日{background:rgba(59,130,246,.15);color:var(--accent)}
.fes-tag.fes-cat-西方节日{background:rgba(236,72,153,.15);color:#ec4899}
.fes-tag.fes-cat-宗教节日{background:rgba(139,92,246,.12);color:#6d28d9}
.fes-tag.fes-cat-纪念日{background:rgba(239,68,68,.15);color:#ef4444}
.fes-empty{text-align:center;padding:50px 0;color:var(--muted,var(--muted));font-size:14px}
.fes-tips{list-style:none;padding:0;margin:0}
.fes-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.fes-tips li:last-child{border-bottom:none}
.fes-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.fes-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .fes-today-ico{font-size:26px}
  .fes-today-name{font-size:16px}
  .fes-date{min-width:70px;font-size:12px}
  .fes-name{font-size:13px}
  .fes-item{gap:10px;padding:9px 12px}
}

/* ===== 在线时钟 (clk-) ===== */
.clk-wrap{background:linear-gradient(135deg,#0f172a,#1e293b);color:#e6e8eb;border-radius:16px;padding:36px 24px;text-align:center;margin-bottom:18px;box-shadow:0 6px 24px rgba(15,23,42,.35);position:relative;overflow:hidden}
.clk-wrap:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(59,130,246,.18),transparent 60%);pointer-events:none}
.clk-date{font-size:16px;color:#94a3b8;letter-spacing:2px;margin-bottom:8px}
.clk-time{font-size:64px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:2px;line-height:1.1;color:#e6e8eb;text-shadow:0 0 24px rgba(59,130,246,.45);position:relative}
.clk-ampm{font-size:16px;color:#60a5fa;font-weight:600;letter-spacing:3px;margin-top:4px;min-height:22px}
.clk-week{font-size:15px;color:#cbd5e1;margin-top:8px;letter-spacing:2px}
.clk-zone{font-size:12px;color:#94a3b8;margin-top:10px;font-family:ui-monospace,Menlo,Consolas,monospace}
.clk-analog-wrap{display:flex;justify-content:center;margin-bottom:18px}
.clk-analog{width:260px;height:260px;display:block}
.clk-face{fill:#ffffff;stroke:none}
.clk-ring{fill:none;stroke:#3b82f6;stroke-width:2.5}
.clk-mark{stroke:#cbd5e1;stroke-width:1;stroke-linecap:round}
.clk-mark-big{stroke:#3b82f6;stroke-width:2.2}
.clk-hand-hour{stroke:#1e293b;stroke-width:5;stroke-linecap:round}
.clk-hand-min{stroke:#1e293b;stroke-width:3.2;stroke-linecap:round}
.clk-hand-sec{stroke:#ef4444;stroke-width:1.6;stroke-linecap:round}
.clk-center{fill:#1e293b}
.clk-center-dot{fill:#ef4444}
.clk-controls{display:flex;justify-content:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.clk-btn{padding:9px 18px;font-size:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s}
.clk-btn:hover{border-color:var(--accent);color:var(--accent)}
.clk-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}
.clk-tips{list-style:none;padding:0;margin:0}
.clk-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.clk-tips li:last-child{border-bottom:none}
.clk-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.clk-tips b{color:var(--fg)}
/* 全屏模式 */
body.clk-fs .topbar,body.clk-fs .sidebar,body.clk-fs .overlay,body.clk-fs .page-head,body.clk-fs .clk-analog-wrap,body.clk-fs .clk-controls,body.clk-fs .clk-tips-sec,body.clk-fs .wt-tips-sec{display:none!important}
body.clk-fs .content{padding:0!important;margin:0!important;max-width:none!important}
body.clk-fs .clk-wrap{border-radius:0;min-height:100vh;display:flex;flex-direction:column;justify-content:center;margin:0}
body.clk-fs .clk-time{font-size:16vw}
body.clk-fs .clk-date{font-size:3vw}
body.clk-fs .clk-week{font-size:2.5vw}
body.clk-fs .clk-zone{font-size:1.6vw}
@media (max-width:640px){
  .clk-time{font-size:44px}
  .clk-date{font-size:14px}
  .clk-analog{width:200px;height:200px}
}

/* ===== 在线时钟 全屏修复 ===== */
body.clk-fs,
body.clk-fs html{width:100%!important;height:100%!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#0f172a!important}
body.clk-fs main.content,
body.clk-fs .content{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;max-width:none!important;margin:0!important;padding:0!important;background:#0f172a!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;overflow:hidden!important;z-index:9999}
body.clk-fs .clk-wrap{position:static!important;inset:auto!important;width:100%!important;height:auto!important;min-height:auto!important;border-radius:0!important;margin:0!important;padding:0 20px!important;box-shadow:none!important;background:transparent!important;display:block!important}
body.clk-fs .clk-wrap:before{display:none!important}
body.clk-fs .clk-time{font-size:16vw!important;line-height:1!important;text-shadow:0 0 60px rgba(59,130,246,.55)!important}
body.clk-fs .clk-date{font-size:3vw!important;letter-spacing:.15em!important}
body.clk-fs .clk-week{font-size:2.6vw!important;letter-spacing:.2em!important}
body.clk-fs .clk-zone{font-size:1.4vw!important}
body.clk-fs .clk-ampm{font-size:2vw!important}
@media (max-width:900px){
  body.clk-fs .clk-time{font-size:22vw!important}
  body.clk-fs .clk-date{font-size:5vw!important}
  body.clk-fs .clk-week{font-size:4.5vw!important}
  body.clk-fs .clk-zone{font-size:3vw!important}
}

/* ===== 区号时差查询 (qh-) ===== */
.qh-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.qh-tab{padding:10px 20px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500}
.qh-tab:hover{color:var(--accent)}
.qh-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.qh-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.qh-search{position:relative;flex:1;min-width:220px;display:flex;align-items:center}
.qh-search i{position:absolute;left:12px;color:var(--muted,var(--muted));font-size:13px;pointer-events:none}
.qh-search input{width:100%;padding:9px 12px 9px 34px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none}
.qh-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.qh-bj{font-size:13px;color:var(--muted,var(--muted));background:var(--hover,var(--hover));padding:8px 14px;border-radius:8px;border:1px solid var(--line,var(--line));white-space:nowrap}
.qh-bj b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.qh-count{font-size:13px;color:var(--muted,var(--muted));margin-bottom:10px}
.qh-count b{color:var(--accent)}
.qh-table-wrap{overflow-x:auto;border:1px solid var(--line,var(--line));border-radius:12px;background:var(--panel,var(--panel));margin-bottom:18px}
.qh-table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
.qh-table th,.qh-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover));white-space:nowrap}
.qh-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));position:sticky;top:0;z-index:1}
.qh-table tr:last-child td{border-bottom:none}
.qh-table tr:hover td{background:var(--hover,var(--hover))}
.qh-code{display:inline-block;padding:2px 10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;background:rgba(59,130,246,.1);color:var(--accent);border-radius:6px;font-size:13px}
.qh-diff{font-size:12px}
.qh-diff-same{color:#10b981}
.qh-diff-fast{color:#ef4444}
.qh-diff-slow{color:var(--muted)}
.qh-empty{text-align:center;color:var(--muted,var(--muted));padding:36px 0!important}
.qh-tips{list-style:none;padding:0;margin:0}
.qh-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.qh-tips li:last-child{border-bottom:none}
.qh-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.qh-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .qh-tab{padding:8px 14px;font-size:13px}
  .qh-table{font-size:13px;min-width:560px}
  .qh-table th,.qh-table td{padding:8px 10px}
  .qh-bj{width:100%;text-align:center}
}

/* ===== Gzip压缩检测 (gz-) ===== */
.gz-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.gz-input-row{display:flex;align-items:center;gap:10px;position:relative;flex-wrap:wrap}
.gz-input-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.gz-input{flex:1;min-width:200px;padding:11px 14px 11px 38px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.gz-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.gz-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;transition:.15s;font-weight:500;white-space:nowrap}
.gz-btn:hover{background:var(--accent);border-color:var(--accent)}
.gz-btn:disabled{opacity:.6;cursor:not-allowed}
.gz-hint{margin-top:10px;font-size:12px;color:var(--muted,var(--muted))}
.gz-hint a{color:var(--accent);text-decoration:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.gz-hint a:hover{text-decoration:underline}
.gz-loading{padding:36px 20px;text-align:center;color:var(--accent);font-size:15px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:18px}
.gz-loading i{margin-right:8px}
.gz-error{padding:16px 20px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:18px}
.gz-error i{margin-right:8px}
.gz-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:18px}
.gz-card-head{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line,var(--hover))}
.gz-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-size:14px;font-weight:600}
.gz-badge-ok{background:rgba(16,185,129,.15);color:#10b981}
.gz-badge-warn{background:rgba(245,158,11,.15);color:#f59e0b}
.gz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.gz-item{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--hover,var(--hover));overflow:hidden}
.gz-key{font-size:12px;color:var(--muted,var(--muted))}
.gz-val{font-size:13px;color:var(--fg,#111);word-break:break-all}
.gz-val code{font-family:ui-monospace,Menlo,Consolas,monospace;background:transparent;padding:0;font-size:12px}
.gz-val a{color:var(--accent);text-decoration:none}
.gz-val a:hover{text-decoration:underline}
.gz-val b{color:#10b981}
.gz-note{margin-top:14px;padding:12px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.gz-note i{margin-right:6px}
.gz-note-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.gz-note-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.gz-note strong{font-weight:700}
.gz-tips{list-style:none;padding:0;margin:0}
.gz-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.gz-tips li:last-child{border-bottom:none}
.gz-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.gz-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .gz-input-row{flex-direction:column;align-items:stretch}
  .gz-input-row > i{top:14px}
  .gz-btn{width:100%}
  .gz-grid{grid-template-columns:1fr}
}

/* ===== Whois域名查询 (wh-) ===== */
.wh-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.wh-input-row{display:flex;align-items:center;gap:10px;position:relative;flex-wrap:wrap}
.wh-input-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.wh-input{flex:1;min-width:200px;padding:11px 14px 11px 38px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.wh-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.wh-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;transition:.15s;font-weight:500;white-space:nowrap}
.wh-btn:hover{background:var(--accent);border-color:var(--accent)}
.wh-hint{margin-top:10px;font-size:12px;color:var(--muted,var(--muted))}
.wh-hint a{color:var(--accent);text-decoration:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.wh-hint a:hover{text-decoration:underline}
.wh-loading{padding:36px 20px;text-align:center;color:var(--accent);font-size:15px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:18px}
.wh-loading i{margin-right:8px}
.wh-error{padding:16px 20px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:18px}
.wh-error i{margin-right:8px}
.wh-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:18px}
.wh-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-size:14px;font-weight:600;margin-bottom:12px}
.wh-badge-ok{background:rgba(16,185,129,.15);color:#10b981}
.wh-badge-info{background:rgba(59,130,246,.15);color:var(--accent)}
.wh-days{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600;margin-left:8px;margin-bottom:12px}
.wh-days-ok{background:rgba(16,185,129,.15);color:#10b981}
.wh-days-warn{background:rgba(245,158,11,.15);color:#f59e0b}
.wh-days-danger{background:rgba(239,68,68,.15);color:#ef4444}
.wh-sub{margin:8px 0 0;font-size:14px;color:var(--muted,var(--muted));line-height:1.7}
.wh-sub b{color:var(--accent)}
.wh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-top:8px}
.wh-item{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--hover,var(--hover));overflow:hidden}
.wh-key{font-size:12px;color:var(--muted,var(--muted))}
.wh-val{font-size:13px;color:var(--fg,#111);word-break:break-all;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.6}
.wh-details{margin-top:14px;border-top:1px dashed var(--line,var(--line));padding-top:12px}
.wh-details summary{cursor:pointer;font-size:13px;color:var(--accent);user-select:none;outline:none;font-weight:500}
.wh-details summary:hover{text-decoration:underline}
.wh-details pre{margin:10px 0 0;padding:14px;background:#0f172a;color:var(--line);border-radius:8px;font-size:12px;line-height:1.6;max-height:420px;overflow:auto;font-family:ui-monospace,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-all}
.wh-tips{list-style:none;padding:0;margin:0}
.wh-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.wh-tips li:last-child{border-bottom:none}
.wh-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.wh-tips b{color:var(--fg,#111)}
.wh-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .wh-input-row{flex-direction:column;align-items:stretch}
  .wh-input-row > i{top:14px}
  .wh-btn{width:100%}
  .wh-grid{grid-template-columns:1fr}
}

/* ===== ICP备案查询 (icp-) ===== */
.icp-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.icp-input-row{display:flex;align-items:center;gap:10px;position:relative;flex-wrap:wrap}
.icp-input-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.icp-input{flex:1;min-width:200px;padding:11px 14px 11px 38px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.icp-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.icp-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;transition:.15s;font-weight:500;white-space:nowrap}
.icp-btn:hover{background:var(--accent);border-color:var(--accent)}
.icp-hint{margin-top:10px;font-size:12px;color:var(--muted,var(--muted))}
.icp-hint a{color:var(--accent);text-decoration:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.icp-hint a:hover{text-decoration:underline}
.icp-error{padding:16px 20px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:18px}
.icp-error i{margin-right:8px}
.icp-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:18px}
.icp-card-head{font-size:14px;color:var(--muted,var(--muted));margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line,var(--hover))}
.icp-card-head i{margin-right:6px;color:#10b981}
.icp-card-head b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.icp-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.icp-link{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line,var(--line));border-radius:10px;background:var(--hover,var(--hover));text-decoration:none;color:inherit;transition:.18s;position:relative;overflow:hidden}
.icp-link:hover{border-color:var(--accent);background:var(--panel,var(--panel));transform:translateY(-2px);box-shadow:0 4px 14px rgba(59,130,246,.12)}
.icp-link-ico{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:10px;font-size:20px;color:var(--panel)}
.icp-link-official .icp-link-ico{background:linear-gradient(135deg,#dc2626,#ef4444)}
.icp-link-aizhan .icp-link-ico{background:linear-gradient(135deg,var(--accent),var(--accent))}
.icp-link-chinaz .icp-link-ico{background:linear-gradient(135deg,#f59e0b,#f59e0b)}
.icp-link-beianx .icp-link-ico{background:linear-gradient(135deg,#10b981,#059669)}
.icp-link-seo .icp-link-ico{background:linear-gradient(135deg,#8b5cf6,#6d28d9)}
.icp-link-body{flex:1;min-width:0}
.icp-link-name{font-size:14px;font-weight:600;color:var(--fg,#111);margin-bottom:3px}
.icp-link-desc{font-size:12px;color:var(--muted,var(--muted));line-height:1.5;margin-bottom:3px}
.icp-link-tip{font-size:11px;color:var(--accent);font-weight:500}
.icp-link-arrow{color:var(--muted);font-size:13px;flex-shrink:0;transition:.15s}
.icp-link:hover .icp-link-arrow{color:var(--accent)}
.icp-note{margin-top:14px;padding:12px 14px;background:rgba(59,130,246,.1);color:#3b82f6;border:1px solid rgba(59,130,246,.3);border-radius:8px;font-size:13px;line-height:1.6}
.icp-note i{margin-right:6px;color:var(--accent)}
.icp-note b{font-weight:700;color:#3b82f6}
.icp-tips{list-style:none;padding:0;margin:0}
.icp-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.icp-tips li:last-child{border-bottom:none}
.icp-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.icp-tips b{color:var(--fg,#111)}
.icp-faq details{border:1px solid var(--line,var(--line));border-radius:8px;padding:10px 14px;margin-bottom:8px;background:var(--panel,var(--panel))}
.icp-faq details[open]{background:var(--hover,var(--hover))}
.icp-faq summary{cursor:pointer;font-size:14px;font-weight:500;color:var(--fg,#111);outline:none;user-select:none}
.icp-faq summary:hover{color:var(--accent)}
.icp-faq p{margin:8px 0 0;font-size:13px;color:var(--muted,var(--muted));line-height:1.7}
.icp-faq p b{color:var(--accent)}
@media (max-width:640px){
  .icp-input-row{flex-direction:column;align-items:stretch}
  .icp-input-row > i{top:14px}
  .icp-btn{width:100%}
  .icp-links{grid-template-columns:1fr}
}
/* ===== 死链检测 (sl-) ===== */
.sl-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.sl-textarea-wrap{position:relative}
.sl-textarea{width:100%;min-height:160px;padding:14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.7;resize:vertical;box-sizing:border-box}
.sl-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.sl-textarea-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:12px;color:var(--muted,var(--muted))}
.sl-clear{padding:5px 12px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s}
.sl-clear:hover{border-color:#dc2626;color:#dc2626}
.sl-actions{display:flex;align-items:center;gap:14px;margin-top:14px;flex-wrap:wrap}
.sl-btn{padding:11px 26px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;transition:.15s;font-weight:500}
.sl-btn:hover{background:var(--accent);border-color:var(--accent)}
.sl-hint{font-size:12px;color:var(--muted,var(--muted))}
.sl-loading{padding:36px 20px;text-align:center;color:var(--accent);font-size:15px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:18px}
.sl-loading i{margin-right:8px}
.sl-error{padding:16px 20px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:18px}
.sl-error i{margin-right:8px}
.sl-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}
.sl-stat{padding:14px 10px;text-align:center;border-radius:10px;border:1px solid var(--line,var(--line));background:var(--panel,var(--panel))}
.sl-stat-num{font-size:24px;font-weight:700;line-height:1.2;font-family:ui-monospace,Menlo,Consolas,monospace}
.sl-stat-lbl{font-size:12px;color:var(--muted,var(--muted));margin-top:4px}
.sl-stat-ok .sl-stat-num{color:#10b981}
.sl-stat-redirect .sl-stat-num{color:#f59e0b}
.sl-stat-dead .sl-stat-num{color:#dc2626}
.sl-stat-error .sl-stat-num{color:var(--muted)}
.sl-stat-total .sl-stat-num{color:var(--accent)}
.sl-table-wrap{overflow-x:auto;border:1px solid var(--line,var(--line));border-radius:12px;background:var(--panel,var(--panel));margin-bottom:18px}
.sl-table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.sl-table th,.sl-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover));vertical-align:top}
.sl-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));position:sticky;top:0;z-index:1;white-space:nowrap}
.sl-table tr:last-child td{border-bottom:none}
.sl-table tr:hover td{background:var(--hover,var(--hover))}
.sl-status{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap}
.sl-status-ok{background:rgba(16,185,129,.15);color:#10b981}
.sl-status-dead{background:rgba(239,68,68,.15);color:#ef4444}
.sl-status-redirect{background:rgba(245,158,11,.15);color:#f59e0b}
.sl-status-error{background:var(--hover);color:var(--muted)}
.sl-url-cell{max-width:520px;word-break:break-all;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.5}
.sl-url-cell a{color:var(--accent);text-decoration:none}
.sl-url-cell a:hover{text-decoration:underline}
.sl-final{font-size:11px;color:var(--muted,var(--muted));margin-top:3px}
.sl-table code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
.sl-tips{list-style:none;padding:0;margin:0}
.sl-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.sl-tips li:last-child{border-bottom:none}
.sl-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.sl-tips b{color:var(--fg,#111)}
.sl-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .sl-summary{grid-template-columns:repeat(3,1fr)}
  .sl-table{font-size:12px;min-width:520px}
  .sl-table th,.sl-table td{padding:8px 10px}
  .sl-url-cell{max-width:260px}
  .sl-btn{width:100%}
}

/* ===== 关键词密度检测 (kd-) ===== */
.kd-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.kd-input-row{display:flex;align-items:center;gap:10px;position:relative;flex-wrap:wrap}
.kd-input-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.kd-input{flex:1;min-width:200px;padding:11px 14px 11px 38px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.kd-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.kd-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;transition:.15s;font-weight:500;white-space:nowrap}
.kd-btn:hover{background:var(--accent);border-color:var(--accent)}
.kd-hint{margin-top:10px;font-size:12px;color:var(--muted,var(--muted))}
.kd-hint a{color:var(--accent);text-decoration:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.kd-hint a:hover{text-decoration:underline}
.kd-loading{padding:36px 20px;text-align:center;color:var(--accent);font-size:15px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:18px}
.kd-loading i{margin-right:8px}
.kd-error{padding:16px 20px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:18px}
.kd-error i{margin-right:8px}
.kd-url-bar{padding:10px 14px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:8px;font-size:13px;color:var(--muted,var(--muted));margin-bottom:12px;word-break:break-all}
.kd-url-bar a{color:var(--accent);text-decoration:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.kd-url-bar a:hover{text-decoration:underline}
.kd-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-bottom:18px}
.kd-meta-item{padding:12px 14px;border:1px solid var(--line,var(--line));border-radius:10px;background:var(--panel,var(--panel))}
.kd-meta-key{font-size:12px;color:var(--muted,var(--muted));margin-bottom:6px}
.kd-meta-val{font-size:13px;color:var(--fg,#111);word-break:break-word;line-height:1.6}
.kd-meta-val b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.kd-meta-extra{font-size:11px;margin-top:6px;font-weight:500}
.kd-ok{color:#10b981}
.kd-warn{color:#f59e0b}
.kd-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.kd-col{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:14px}
.kd-col h3{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--fg,#111);display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--line,var(--hover))}
.kd-col h3 i{color:var(--accent)}
.kd-table-wrap{max-height:520px;overflow-y:auto;border-radius:8px}
.kd-table{width:100%;border-collapse:collapse;font-size:13px}
.kd-table th,.kd-table td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.kd-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:12px;position:sticky;top:0;z-index:1}
.kd-table tr:last-child td{border-bottom:none}
.kd-table tr:hover td{background:var(--hover,var(--hover))}
.kd-table code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:var(--fg,#111);background:transparent;padding:0}
.kd-den{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;font-family:ui-monospace,Menlo,Consolas,monospace}
.kd-den-low{background:var(--hover);color:var(--muted)}
.kd-den-ok{background:rgba(16,185,129,.15);color:#10b981}
.kd-den-high{background:rgba(239,68,68,.15);color:#ef4444}
.kd-empty{padding:20px;text-align:center;color:var(--muted,var(--muted));font-size:13px}
.kd-note{margin-top:14px;padding:12px 14px;background:rgba(59,130,246,.1);color:#3b82f6;border:1px solid rgba(59,130,246,.3);border-radius:8px;font-size:13px;line-height:1.6}
.kd-note i{margin-right:6px;color:var(--accent)}
.kd-note b{font-weight:700;color:#3b82f6}
.kd-tips{list-style:none;padding:0;margin:0}
.kd-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.kd-tips li:last-child{border-bottom:none}
.kd-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.kd-tips b{color:var(--fg,#111)}
.kd-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:820px){
  .kd-cols{grid-template-columns:1fr}
}
@media (max-width:640px){
  .kd-input-row{flex-direction:column;align-items:stretch}
  .kd-input-row > i{top:14px}
  .kd-btn{width:100%}
  .kd-meta{grid-template-columns:1fr}
}
/* ===== 在线涂鸦画板 (draw-) ===== */
.draw-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:12px 14px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:14px}
.draw-group{display:flex;align-items:center;gap:8px;padding-right:12px;border-right:1px solid var(--line,var(--hover))}
.draw-group:last-child{border-right:none;padding-right:0}
.draw-label{font-size:12px;color:var(--muted,var(--muted));white-space:nowrap}
.draw-tool{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;font-size:15px}
.draw-tool:hover{border-color:var(--accent);color:var(--accent)}
.draw-tool.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.draw-color{width:42px;height:34px;border:1px solid var(--line,var(--line));border-radius:8px;cursor:pointer;padding:2px;background:var(--panel,var(--panel))}
.draw-swatches{display:flex;gap:4px;flex-wrap:wrap;max-width:260px}
.draw-swatch{display:inline-block;width:18px;height:18px;border-radius:4px;cursor:pointer;border:1px solid rgba(0,0,0,.08);transition:.12s}
.draw-swatch:hover{transform:scale(1.15);box-shadow:0 0 0 2px rgba(59,130,246,.35)}
.draw-range{width:120px;accent-color:var(--accent);cursor:pointer}
.draw-size-val{display:inline-block;min-width:22px;text-align:center;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);font-weight:600}
.draw-btn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;font-size:15px}
.draw-btn:hover{border-color:var(--accent);color:var(--accent)}
.draw-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.draw-btn-primary{width:auto;padding:0 16px;gap:6px;background:var(--accent);border-color:var(--accent);color:var(--panel);font-size:14px}
.draw-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.draw-canvas-wrap{padding:0;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;margin-bottom:18px}
.draw-canvas{display:block;width:100%;background:var(--panel);cursor:crosshair;touch-action:none}
.draw-tips{list-style:none;padding:0;margin:0}
.draw-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.draw-tips li:last-child{border-bottom:none}
.draw-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.draw-tips b{color:var(--fg,#111)}
@media (max-width:768px){
  .draw-toolbar{gap:8px;padding:10px}
  .draw-group{padding-right:8px;gap:6px}
  .draw-range{width:80px}
  .draw-swatches{max-width:160px}
  .draw-tool,.draw-btn{width:34px;height:34px;font-size:14px}
  .draw-btn-primary{padding:0 12px;font-size:13px}
}

/* ===== Linux命令大全 (lx-) ===== */
.lx-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.lx-search{position:relative;flex:1;min-width:220px;display:flex;align-items:center}
.lx-search i{position:absolute;left:12px;color:var(--muted);font-size:13px;pointer-events:none}
.lx-search input{width:100%;padding:9px 12px 9px 34px;font-size:14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.lx-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.lx-btn{padding:8px 14px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;white-space:nowrap}
.lx-btn:hover{border-color:var(--accent);color:var(--accent)}
.lx-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}
.lx-count{font-size:13px;color:var(--muted);margin-bottom:10px}
.lx-count b{color:var(--accent)}
.lx-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:12px;margin-bottom:18px}
.lx-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;transition:.15s}
.lx-card:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(59,130,246,.1)}
.lx-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.lx-cmd{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px;font-weight:700;color:var(--accent);background:var(--hover);padding:3px 10px;border-radius:6px}
.lx-cat{font-size:11px;color:var(--muted);background:var(--hover);padding:2px 8px;border-radius:6px;white-space:nowrap}
.lx-desc{font-size:13px;color:var(--fg);margin-bottom:8px;line-height:1.6}
.lx-opts{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:8px;padding:8px 10px;background:var(--hover);border-radius:6px}
.lx-opts-label{color:var(--accent);font-weight:600}
.lx-example{display:flex;align-items:center;gap:6px;background:#0f172a;border-radius:6px;padding:8px 10px;position:relative}
.lx-example code{flex:1;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:#cbd5e1;word-break:break-all;line-height:1.5}
.lx-copy{flex-shrink:0;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:transparent;color:#94a3b8;cursor:pointer;transition:.15s;font-size:12px}
.lx-copy:hover{color:var(--accent);border-color:var(--accent);background:rgba(59,130,246,.1)}
.lx-empty{grid-column:1/-1;text-align:center;padding:50px 0;color:var(--muted);font-size:14px}
.lx-tips{list-style:none;padding:0;margin:0}
.lx-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.lx-tips li:last-child{border-bottom:none}
.lx-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.lx-tips b{color:var(--fg)}
@media (max-width:640px){
  .lx-list{grid-template-columns:1fr}
  .lx-cmd{font-size:14px}
}

/* ===== JSON格式化校验 (js-) ===== */
.js-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 14px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:12px}
.js-indent-wrap{display:flex;align-items:center;gap:6px}
.js-label{font-size:12px;color:var(--muted,var(--muted));white-space:nowrap}
.js-select{padding:7px 10px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer}
.js-select:focus{border-color:var(--accent)}
.js-check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none;padding:0 6px}
.js-check input{cursor:pointer;accent-color:var(--accent)}
.js-btn{padding:7px 14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.js-btn:hover{border-color:var(--accent);color:var(--accent)}
.js-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.js-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.js-status{margin-bottom:10px;min-height:0}
.js-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6;word-break:break-all}
.js-st i{margin-right:6px}
.js-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.js-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.js-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.js-st-info{background:rgba(59,130,246,.15);color:var(--accent);border:1px solid rgba(59,130,246,.3)}
.js-panels{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.js-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:420px}
.js-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.js-panel-len{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.js-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.6;resize:none;background:var(--bg,var(--panel));color:var(--fg,#222);box-sizing:border-box}
.js-output{flex:1;margin:0;padding:14px;overflow:auto;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.6;background:var(--bg,var(--panel));color:var(--fg,#222);white-space:pre-wrap;word-break:break-all;min-height:0}
/* 语法高亮 */
.js-key{color:var(--accent);font-weight:600}
.js-str{color:#16a34a}
.js-num{color:#dc2626}
.js-bool{color:#8b5cf6;font-weight:600}
.js-null{color:#8b5cf6;font-style:italic}
.js-tips{list-style:none;padding:0;margin:0}
.js-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.js-tips li:last-child{border-bottom:none}
.js-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.js-tips b{color:var(--fg,#111)}
@media (max-width:820px){
  .js-panels{grid-template-columns:1fr}
  .js-panel{min-height:280px}
}
@media (max-width:640px){
  .js-btn{font-size:12px;padding:6px 10px}
  .js-toolbar{gap:6px;padding:10px}
}
/* ===== Base64编解码 (b64-) ===== */
.b64-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.b64-tab{padding:10px 20px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500}
.b64-tab:hover{color:var(--accent)}
.b64-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.b64-panel{margin-bottom:18px}
.b64-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 14px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px 12px 0 0;border-bottom:none}
.b64-btn{padding:7px 14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.b64-btn:hover{border-color:var(--accent);color:var(--accent)}
.b64-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.b64-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.b64-check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none;padding:0 6px}
.b64-check input{cursor:pointer;accent-color:var(--accent)}
.b64-mini{padding:4px 10px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:transparent;color:var(--muted,#555);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.b64-mini:hover{border-color:var(--accent);color:var(--accent)}
.b64-status{min-height:0}
.b64-st{padding:10px 14px;border-radius:0;font-size:13px;line-height:1.6}
.b64-st i{margin-right:6px}
.b64-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3);border-top:none}
.b64-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3);border-top:none}
.b64-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3);border-top:none}
.b64-panels{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line,var(--line));border-radius:0 0 12px 12px;overflow:hidden;background:var(--panel,var(--panel))}
.b64-panel-inner{display:flex;flex-direction:column;border-right:1px solid var(--line,var(--line));min-height:400px}
.b64-panel-inner:last-child{border-right:none}
.b64-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.b64-len{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.b64-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.6;resize:none;background:var(--bg,var(--panel));color:var(--fg,#222);box-sizing:border-box;word-break:break-all}
.b64-textarea[readonly]{background:var(--hover,var(--hover))}
/* 上传区 */
.b64-upload{padding:40px 20px;text-align:center;background:var(--panel,var(--panel));border:2px dashed var(--line,var(--line));border-radius:12px;cursor:pointer;transition:.18s;margin-bottom:14px}
.b64-upload:hover,.b64-upload.over{border-color:var(--accent);background:rgba(59,130,246,.1)}
.b64-upload-ico{font-size:44px;color:var(--accent);margin-bottom:10px}
.b64-upload-text{font-size:15px;color:var(--fg,#111);font-weight:500;margin-bottom:6px}
.b64-upload-hint{font-size:12px;color:var(--muted,var(--muted))}
/* 图片结果 */
.b64-image-result{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;margin-bottom:14px}
.b64-image-preview{display:flex;gap:16px;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap}
.b64-image-preview img{max-width:200px;max-height:200px;border-radius:8px;border:1px solid var(--line,var(--line));background:var(--hover,var(--hover));padding:4px}
.b64-image-info{flex:1;min-width:200px;font-size:13px;color:var(--muted,var(--muted));line-height:2}
.b64-image-info b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.b64-image-output .b64-textarea{min-height:160px;border:1px solid var(--line,var(--line));border-radius:0 0 8px 8px}
.b64-image-output .b64-panel-head{border:1px solid var(--line,var(--line));border-bottom:none;border-radius:8px 8px 0 0}
.b64-reverse{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px}
.b64-reverse .b64-panel-head{border:none;padding:0 0 10px;background:transparent}
.b64-reverse .b64-textarea{min-height:120px;border:1px solid var(--line,var(--line));border-radius:8px}
.b64-reverse-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.b64-reverse-preview{margin-top:14px;text-align:center}
.b64-tips{list-style:none;padding:0;margin:0}
.b64-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.b64-tips li:last-child{border-bottom:none}
.b64-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.b64-tips b{color:var(--fg,#111)}
.b64-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:820px){
  .b64-panels{grid-template-columns:1fr}
  .b64-panel-inner{border-right:none;border-bottom:1px solid var(--line,var(--line));min-height:260px}
  .b64-panel-inner:last-child{border-bottom:none}
}
@media (max-width:640px){
  .b64-tab{padding:8px 14px;font-size:13px}
  .b64-btn{font-size:12px;padding:6px 10px}
  .b64-toolbar{gap:6px;padding:10px}
}
/* ===== 时间戳转换 (ts-) ===== */
.ts-now{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.ts-now-item{position:relative;background:linear-gradient(135deg,#0f172a,#1e293b);color:var(--hover);border-radius:12px;padding:16px 18px;box-shadow:0 4px 14px rgba(15,23,42,.25)}
.ts-now-lbl{font-size:12px;color:#94a3b8;margin-bottom:6px}
.ts-now-val{font-size:22px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:1px;word-break:break-all}
.ts-now-time{font-size:16px;letter-spacing:0}
.ts-now-copy{position:absolute;top:12px;right:12px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:transparent;color:#94a3b8;cursor:pointer;font-size:12px;transition:.15s}
.ts-now-copy:hover{color:var(--accent);border-color:var(--accent);background:rgba(59,130,246,.1)}
.ts-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:18px}
.ts-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.ts-row:last-of-type{margin-bottom:0}
.ts-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted,var(--muted))}
.ts-inline{display:flex;gap:8px;flex:1;min-width:0;flex-wrap:wrap}
.ts-input{flex:1;min-width:180px;padding:10px 12px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.ts-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.ts-select{padding:10px 10px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer}
.ts-btn{padding:10px 18px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.ts-btn:hover{border-color:var(--accent);color:var(--accent)}
.ts-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.ts-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.ts-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.ts-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:18px}
.ts-card-head{font-size:15px;font-weight:600;color:#10b981;display:flex;align-items:center;gap:8px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line,var(--hover))}
.ts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-bottom:16px}
.ts-item{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--hover,var(--hover))}
.ts-key{font-size:12px;color:var(--muted,var(--muted))}
.ts-val{font-size:14px;color:var(--fg,#111);word-break:break-all;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ts-val code{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;color:var(--accent);font-size:15px}
.ts-unit{font-size:11px;color:var(--muted,var(--muted))}
.ts-mini-copy{padding:3px 8px;font-size:11px;border:1px solid var(--line,var(--line));border-radius:5px;background:transparent;color:var(--muted,#555);cursor:pointer}
.ts-mini-copy:hover{border-color:var(--accent);color:var(--accent)}
.ts-zones{margin-bottom:14px}
.ts-zones h4{margin:0 0 10px;font-size:14px;color:var(--fg,#111);display:flex;align-items:center;gap:6px}
.ts-zones h4 i{color:var(--accent)}
.ts-zone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.ts-zone-item{padding:8px 12px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel))}
.ts-zone-name{font-size:12px;color:var(--muted,var(--muted));margin-bottom:4px}
.ts-zone-time{font-size:14px;color:var(--fg,#111);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:500}
.ts-extra{display:grid;gap:8px;padding-top:14px;border-top:1px dashed var(--line,var(--line))}
.ts-extra-item{display:flex;gap:10px;font-size:13px;align-items:center;flex-wrap:wrap}
.ts-extra-key{color:var(--muted,var(--muted));flex-shrink:0;min-width:80px}
.ts-extra-item code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:2px 8px;border-radius:4px;color:var(--accent);font-size:12px}
.ts-extra-item span{color:var(--fg,#111)}
.ts-tips{list-style:none;padding:0;margin:0}
.ts-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.ts-tips li:last-child{border-bottom:none}
.ts-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ts-tips b{color:var(--fg,#111)}
.ts-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:768px){
  .ts-now{grid-template-columns:1fr}
  .ts-label{width:100%}
  .ts-inline{flex-direction:column}
  .ts-btn{width:100%;justify-content:center}
}
/* ===== 在线密码生成器 (pw-) ===== */
.pw-main{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px}
.pw-display{display:flex;align-items:center;gap:10px;background:var(--hover);border:1px solid var(--line);border-radius:10px;padding:6px 8px 6px 16px}
.pw-value{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:20px;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);font-weight:600;letter-spacing:.5px;padding:10px 0;word-break:break-all}
.pw-icon-btn{width:38px;height:38px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;font-size:15px}
.pw-icon-btn:hover{border-color:var(--accent);color:var(--accent)}
.pw-strength{margin-top:12px}
.pw-strength-bar{height:8px;background:var(--hover);border-radius:4px;overflow:hidden}
.pw-strength-fill{height:100%;width:0;border-radius:4px;transition:width .3s, background .3s;background:var(--muted)}
.pw-strength-fill.pw-very-weak{background:#dc2626}
.pw-strength-fill.pw-weak{background:#f59e0b}
.pw-strength-fill.pw-medium{background:#eab308}
.pw-strength-fill.pw-strong{background:#10b981}
.pw-strength-fill.pw-very-strong{background:linear-gradient(90deg,#10b981,#059669)}
.pw-strength-text{font-size:13px;color:var(--muted);margin-top:6px;text-align:right}
.pw-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px}
.pw-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.pw-row:last-child{margin-bottom:0}
.pw-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);padding-top:8px}
.pw-inline{display:flex;gap:10px;flex:1;min-width:0;flex-wrap:wrap;align-items:center}
.pw-range{flex:1;min-width:180px;accent-color:var(--accent);cursor:pointer;max-width:400px}
.pw-num{width:100px;padding:8px 12px;font-size:14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.pw-num:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.pw-hint{font-size:12px;color:var(--muted)}
.pw-checks{gap:16px}
.pw-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer;user-select:none;padding:6px 0}
.pw-check input{cursor:pointer;accent-color:var(--accent)}
.pw-check code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover);padding:1px 6px;border-radius:4px;font-size:11px;color:var(--accent)}
.pw-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.pw-btn{padding:10px 20px;font-size:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.pw-btn:hover{border-color:var(--accent);color:var(--accent)}
.pw-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.pw-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.pw-status{margin-top:12px;min-height:0}
.pw-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.pw-st i{margin-right:6px}
.pw-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.pw-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.pw-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.pw-batch-wrap{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:18px;display:flex;flex-direction:column;min-height:280px}
.pw-batch-head{padding:12px 16px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}
.pw-batch-head b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.pw-batch-result{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.8;resize:none;background:var(--bg);color:var(--fg);box-sizing:border-box}
.pw-tips{list-style:none;padding:0;margin:0}
.pw-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.pw-tips li:last-child{border-bottom:none}
.pw-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.pw-tips b{color:var(--fg)}
.pw-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover);padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .pw-label{width:100%;padding-top:0}
  .pw-value{font-size:16px}
  .pw-inline{width:100%}
  .pw-range{max-width:none}
  .pw-btn{flex:1;justify-content:center}
}

/* ===== URL编解码 (ue-) ===== */
.ue-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.ue-tab{padding:10px 20px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500}
.ue-tab:hover{color:var(--accent)}
.ue-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.ue-panel{margin-bottom:18px}
.ue-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 14px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px 12px 0 0;border-bottom:none}
.ue-radio{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.ue-radio input{cursor:pointer;accent-color:var(--accent)}
.ue-btn{padding:7px 14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;display:inline-flex;align-items:center;gap:5px}
.ue-btn:hover{border-color:var(--accent);color:var(--accent)}
.ue-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.ue-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.ue-status{min-height:0}
.ue-st{padding:10px 14px;font-size:13px;line-height:1.6}
.ue-st i{margin-right:6px}
.ue-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3);border-top:none}
.ue-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3);border-top:none}
.ue-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3);border-top:none}
.ue-panels{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line,var(--line));border-radius:0 0 12px 12px;overflow:hidden;background:var(--panel,var(--panel))}
.ue-panel-inner{display:flex;flex-direction:column;border-right:1px solid var(--line,var(--line));min-height:400px}
.ue-panel-inner:last-child{border-right:none}
.ue-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.ue-len{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.ue-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.6;resize:none;background:var(--bg,var(--panel));color:var(--fg,#222);box-sizing:border-box;word-break:break-all}
.ue-textarea[readonly]{background:var(--hover,var(--hover))}
/* 参数解析 */
.ue-parse-input{margin-bottom:14px}
.ue-parse-url{min-height:140px;border:1px solid var(--line,var(--line));border-radius:12px;padding:14px}
.ue-parse-head{padding:10px 14px;font-size:13px;color:var(--muted,var(--muted));background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-bottom:none;border-radius:12px 12px 0 0}
.ue-parse-head b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.ue-parse-table-wrap{overflow-x:auto;border:1px solid var(--line,var(--line));border-radius:0 0 12px 12px;background:var(--panel,var(--panel))}
.ue-parse-table{width:100%;border-collapse:collapse;font-size:13px}
.ue-parse-table th,.ue-parse-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover));vertical-align:top;word-break:break-all}
.ue-parse-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));white-space:nowrap}
.ue-parse-table tr:last-child td{border-bottom:none}
.ue-parse-table tr:hover td{background:var(--hover,var(--hover))}
.ue-k{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);font-weight:600}
.ue-v{color:var(--fg,#111);word-break:break-word}
.ue-raw{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--muted,var(--muted));background:var(--hover,var(--hover));padding:2px 6px;border-radius:4px;word-break:break-all;display:inline-block;max-width:100%}
.ue-tips{list-style:none;padding:0;margin:0}
.ue-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.ue-tips li:last-child{border-bottom:none}
.ue-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ue-tips b{color:var(--fg,#111)}
.ue-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:820px){
  .ue-panels{grid-template-columns:1fr}
  .ue-panel-inner{border-right:none;border-bottom:1px solid var(--line,var(--line));min-height:260px}
  .ue-panel-inner:last-child{border-bottom:none}
}
@media (max-width:640px){
  .ue-tab{padding:8px 14px;font-size:13px}
  .ue-btn{font-size:12px;padding:6px 10px}
  .ue-toolbar{gap:6px;padding:10px}
}

/* ===== 正则表达式测试 (rxp-) ===== */
.rxp-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:18px}

/* 输入行 */
.rxp-input-row{display:flex;align-items:stretch;gap:0;background:var(--hover);border:1px solid var(--line);border-radius:10px;margin-bottom:12px;overflow:hidden;transition:.15s}
.rxp-input-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.rxp-slash{display:flex;align-items:center;justify-content:center;flex:0 0 36px;color:var(--accent);font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:18px;background:var(--hover);border-right:1px solid var(--line)}
.rxp-slash:nth-of-type(2){border-right:none;border-left:1px solid var(--line)}
.rxp-pattern{flex:1 1 auto;min-width:0;border:none;outline:none;background:transparent;font-size:14px;font-family:ui-monospace,Menlo,Consolas,monospace;padding:12px 12px;color:var(--fg)}
.rxp-flags{flex:0 0 70px;width:70px;border:none;outline:none;background:transparent;font-size:14px;font-family:ui-monospace,Menlo,Consolas,monospace;padding:12px 10px;color:var(--accent);font-weight:700;text-align:left}

/* 修饰符按钮条 */
.rxp-flag-bar{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:14px}
.rxp-flag{padding:8px 10px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;font-family:ui-monospace,Menlo,Consolas,monospace;white-space:nowrap;text-align:center}
.rxp-flag:hover{border-color:var(--accent);color:var(--accent)}
.rxp-flag.on{background:var(--accent);border-color:var(--accent);color:#fff}

/* 模板条（上方） */
.rxp-tpl-bar{background:var(--hover);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.rxp-tpl-label{font-size:12px;color:var(--muted);margin-bottom:8px;font-weight:500}
.rxp-tpl-label i{color:#f59e0b;margin-right:4px}
.rxp-tpl-list{display:flex;flex-wrap:wrap;gap:6px}
.rxp-tpl{padding:5px 12px;font-size:12px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;white-space:nowrap}
.rxp-tpl:hover{border-color:var(--accent);color:var(--accent);background:rgba(59,130,246,.1)}

/* 状态提示 */
.rxp-status{margin-bottom:12px;min-height:0}
.rxp-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6;word-break:break-all}
.rxp-st i{margin-right:6px}
.rxp-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.rxp-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.rxp-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}

/* 通用区块 */
.rxp-sec{background:var(--bg);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:14px}
.rxp-sec:last-child{margin-bottom:0}
.rxp-sec-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);font-weight:500}
.rxp-sec-head i{color:var(--accent);margin-right:4px}
.rxp-count{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}

/* 测试文本 */
.rxp-text{width:100%;min-height:160px;border:none;outline:none;padding:14px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.7;resize:vertical;background:var(--bg);color:var(--fg);box-sizing:border-box;display:block}

/* 匹配高亮 */
.rxp-highlight{margin:0;padding:14px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.7;color:var(--fg);white-space:pre-wrap;word-break:break-all;max-height:400px;overflow:auto;min-height:80px;background:var(--bg)}
.rxp-mark{padding:1px 3px;border-radius:3px;font-weight:500}
.rxp-mark-0{background:rgba(250,204,21,.15);color:#f59e0b}
.rxp-mark-1{background:rgba(16,185,129,.3);color:#10b981}
.rxp-mark-2{background:rgba(59,130,246,.3);color:#3b82f6}
.rxp-mark-3{background:rgba(236,72,153,.3);color:#ec4899}

/* 捕获组 */
.rxp-groups{max-height:400px;overflow:auto;padding:10px 14px;background:var(--bg)}
.rxp-group-item{padding:10px 0;border-bottom:1px dashed var(--line)}
.rxp-group-item:last-child{border-bottom:none;padding-bottom:0}
.rxp-group-item:first-child{padding-top:0}
.rxp-group-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rxp-group-idx{color:var(--muted);font-size:12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.rxp-group-match{font-family:ui-monospace,Menlo,Consolas,monospace;background:rgba(250,204,21,.15);color:#f59e0b;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600}
.rxp-group-pos{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace;margin-left:auto}
.rxp-group-caps{margin-top:8px;padding-left:18px}
.rxp-group-caps table{font-size:12px;width:100%;border-collapse:collapse}
.rxp-cap-lbl{padding:4px 10px 4px 0;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;white-space:nowrap;width:80px;vertical-align:top}
.rxp-cap-val{padding:4px 0}
.rxp-cap-val code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover);padding:2px 8px;border-radius:4px;color:var(--fg);word-break:break-all;display:inline-block;max-width:100%}
.rxp-empty{padding:24px;text-align:center;color:var(--muted);font-size:13px}

/* 替换 */
.rxp-replace-input{width:100%;padding:12px 14px;border:none;border-bottom:1px solid var(--line);outline:none;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--bg);color:var(--fg);box-sizing:border-box}
.rxp-replace-input:focus{background:var(--hover)}
.rxp-replace-result{margin:0;padding:14px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.7;color:var(--fg);white-space:pre-wrap;word-break:break-all;min-height:60px;max-height:300px;overflow:auto;background:var(--bg)}

/* 说明 */
.rxp-tips{list-style:none;padding:0;margin:0}
.rxp-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.rxp-tips li:last-child{border-bottom:none}
.rxp-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.rxp-tips b{color:var(--fg)}
.rxp-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover);padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}

/* 响应式 */
@media (max-width:640px){
  .rxp-flag-bar{grid-template-columns:repeat(3,1fr)}
  .rxp-pattern{font-size:13px;padding:10px}
  .rxp-flags{width:60px;flex:0 0 60px;font-size:13px;padding:10px 6px}
  .rxp-text{min-height:120px;font-size:12px}
  .rxp-highlight{font-size:12px;padding:10px}
}


/* ===== CRON表达式生成器 (cn-) ===== */
.cn-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:14px;padding:18px;margin-bottom:18px}
.cn-expr-wrap{background:linear-gradient(135deg,#0f172a,#1e293b);border-radius:12px;padding:18px;margin-bottom:16px;color:var(--hover)}
.cn-expr-label{font-size:12px;color:#94a3b8;margin-bottom:8px}
.cn-expr-row{display:flex;align-items:center;gap:10px}
.cn-expr{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--hover);font-size:22px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;letter-spacing:2px;padding:8px 0;word-break:break-all}
.cn-icon-btn{flex-shrink:0;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:transparent;color:#94a3b8;cursor:pointer;transition:.15s;font-size:14px}
.cn-icon-btn:hover{color:var(--accent);border-color:var(--accent);background:rgba(59,130,246,.1)}
.cn-desc{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1);font-size:14px;color:#60a5fa;line-height:1.6}
/* Tabs */
.cn-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.cn-tab{padding:10px 20px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.cn-tab:hover{color:var(--accent)}
.cn-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
/* 可视化行 */
.cn-panel{margin-bottom:14px}
.cn-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;flex-wrap:wrap;padding:10px 0;border-bottom:1px dashed var(--line,var(--hover))}
.cn-row:last-child{border-bottom:none}
.cn-label{width:60px;flex-shrink:0;font-size:14px;color:var(--muted,var(--muted));font-weight:500;padding-top:8px}
.cn-input{display:flex;gap:8px;flex:1;min-width:0;flex-wrap:wrap;align-items:center}
.cn-mode{padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer;min-width:160px}
.cn-mode:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.cn-num,.cn-text{padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;min-width:180px}
.cn-num{width:100px;min-width:auto}
.cn-num:focus,.cn-text:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
/* 预设 */
.cn-preset-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.cn-preset{padding:12px 14px;text-align:left;border:1px solid var(--line,var(--line));border-radius:10px;background:var(--hover,var(--hover));cursor:pointer;transition:.15s;font-family:inherit}
.cn-preset:hover{border-color:var(--accent);background:rgba(59,130,246,.1);transform:translateY(-1px)}
.cn-preset-name{font-size:13px;color:var(--fg,#111);font-weight:500;margin-bottom:4px}
.cn-preset-expr{font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
/* 手动输入 */
.cn-manual-wrap{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}
.cn-manual{flex:1;min-width:240px;min-height:100px;padding:14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:10px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.7;resize:vertical}
.cn-manual:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.cn-manual-hint{margin-top:10px;font-size:12px;color:var(--muted,var(--muted))}
.cn-manual-hint code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;color:var(--accent)}
.cn-btn{padding:12px 22px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:10px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.cn-btn:hover{border-color:var(--accent);color:var(--accent)}
.cn-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.cn-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
/* 字段帮助 */
.cn-fields-help{margin-top:16px;padding:14px;background:var(--hover,var(--hover));border-radius:10px;border:1px solid var(--line,var(--line))}
.cn-help-title{font-size:13px;color:var(--muted,var(--muted));margin-bottom:10px;font-weight:500}
.cn-help-title i{color:var(--accent);margin-right:4px}
.cn-help-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.cn-help-item{font-size:12px;color:var(--muted,var(--muted));display:flex;align-items:center;gap:8px}
.cn-help-item b{color:var(--fg,#111);min-width:32px}
.cn-help-item code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--panel,var(--panel));padding:2px 8px;border-radius:4px;color:var(--accent);border:1px solid var(--line,var(--line))}
/* 下次执行时间 */
.cn-next-sec .cn-next-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.cn-next-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:8px;transition:.15s}
.cn-next-item.first{border-color:var(--accent);background:rgba(59,130,246,.1)}
.cn-next-idx{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--hover,var(--hover));color:var(--muted,var(--muted));display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;font-family:ui-monospace,Menlo,Consolas,monospace}
.cn-next-item.first .cn-next-idx{background:var(--accent);color:var(--panel)}
.cn-next-time{flex:1;font-size:13px;color:var(--fg,#111);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:500}
.cn-next-week{font-size:12px;color:var(--muted,var(--muted));flex-shrink:0}
.cn-next-empty{grid-column:1/-1;padding:30px 0;text-align:center;color:var(--muted,var(--muted));font-size:13px}
/* 说明 */
.cn-tips{list-style:none;padding:0;margin:0}
.cn-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.cn-tips li:last-child{border-bottom:none}
.cn-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.cn-tips b{color:var(--fg,#111)}
.cn-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .cn-expr{font-size:16px}
  .cn-label{width:100%;padding-top:0}
  .cn-mode,.cn-text{min-width:auto;width:100%}
  .cn-num{width:100%}
  .cn-tab{padding:8px 12px;font-size:13px}
  .cn-preset-list{grid-template-columns:1fr}
  .cn-next-list{grid-template-columns:1fr}
}
/* ===== Meta标签生成器 (mt-) ===== */
.mt-box{margin-bottom:18px}
.mt-section{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.mt-section-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line,var(--hover));font-size:14px;font-weight:600;color:var(--fg,#111);flex-wrap:wrap;gap:10px}
.mt-section-head i{color:var(--accent);margin-right:6px}
.mt-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.mt-row:last-child{margin-bottom:0}
.mt-label{width:110px;flex-shrink:0;font-size:14px;color:var(--muted,var(--muted));padding-top:8px}
.mt-req{color:#dc2626;font-weight:600}
.mt-input{flex:1;min-width:0;padding:10px 14px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:inherit;transition:.15s;box-sizing:border-box}
.mt-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.mt-textarea{min-height:80px;resize:vertical;font-family:inherit;line-height:1.6}
.mt-select{cursor:pointer}
.mt-input-wrap{flex:1;min-width:0;position:relative}
.mt-input-wrap .mt-input{width:100%}
.mt-counter{position:absolute;right:10px;top:calc(100% - 26px);font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;pointer-events:none;background:var(--bg,var(--panel));padding:1px 6px;border-radius:4px}
.mt-input-wrap:has(.mt-textarea) .mt-counter{top:auto;bottom:6px}
.mt-counter.ok{color:#10b981}
.mt-counter.over{color:#dc2626;font-weight:600}
.mt-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:14px}
.mt-check{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none;padding:8px 12px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:8px;transition:.15s}
.mt-check:hover{border-color:var(--accent);background:rgba(59,130,246,.1)}
.mt-check input{cursor:pointer;accent-color:var(--accent)}
.mt-output-section{margin-bottom:0}
.mt-output-actions{display:flex;gap:8px;flex-wrap:wrap}
.mt-btn{padding:7px 14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.mt-btn:hover{border-color:var(--accent);color:var(--accent)}
.mt-output{margin:0;padding:16px;background:#0f172a;color:var(--line);border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-all;max-height:480px;overflow:auto;min-height:200px}
.mt-tips{list-style:none;padding:0;margin:0}
.mt-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.mt-tips li:last-child{border-bottom:none}
.mt-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.mt-tips b{color:var(--fg,#111)}
.mt-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .mt-label{width:100%;padding-top:0}
  .mt-checks{grid-template-columns:1fr}
  .mt-output{font-size:12px;padding:12px}
}

/* ===== Sitemap生成器 (sm-) ===== */
.sm-box{margin-bottom:18px}
.sm-section{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.sm-section-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line,var(--hover));font-size:14px;font-weight:600;color:var(--fg,#111);flex-wrap:wrap;gap:10px}
.sm-section-head i{color:var(--accent);margin-right:6px}
.sm-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.sm-row:last-child{margin-bottom:0}
.sm-label{width:110px;flex-shrink:0;font-size:14px;color:var(--muted,var(--muted))}
.sm-input{flex:1;min-width:0;padding:10px 14px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:inherit;transition:.15s;box-sizing:border-box}
.sm-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.sm-select{cursor:pointer}
.sm-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none;white-space:nowrap}
.sm-check input{cursor:pointer;accent-color:var(--accent)}
.sm-counter{font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.sm-textarea{width:100%;min-height:200px;padding:14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:10px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.7;resize:vertical;box-sizing:border-box}
.sm-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.sm-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.sm-btn{padding:10px 18px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.sm-btn:hover{border-color:var(--accent);color:var(--accent)}
.sm-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.sm-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.sm-output-actions{display:flex;gap:8px;flex-wrap:wrap}
.sm-output{margin:0;padding:16px;background:#0f172a;color:var(--line);border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-all;max-height:520px;overflow:auto;min-height:240px}
.sm-tips{list-style:none;padding:0;margin:0}
.sm-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.sm-tips li:last-child{border-bottom:none}
.sm-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.sm-tips b{color:var(--fg,#111)}
.sm-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .sm-label{width:100%}
  .sm-output{font-size:12px;padding:12px}
  .sm-btn{flex:1;justify-content:center}
}

/* ===== 在线记事本 (nt-) ===== */
.nt-wrap{display:grid;grid-template-columns:260px 1fr;gap:14px;margin-bottom:18px;min-height:560px}
.nt-side{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;display:flex;flex-direction:column;max-height:640px}
.nt-side-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:14px;font-weight:600;color:var(--fg,#111)}
.nt-new{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--accent);cursor:pointer;transition:.15s;font-size:12px}
.nt-new:hover{background:var(--accent);color:var(--panel);border-color:var(--accent)}
.nt-list{flex:1;overflow-y:auto;padding:6px}
.nt-item{padding:10px 12px;border-radius:8px;cursor:pointer;transition:.15s;margin-bottom:4px;border:1px solid transparent}
.nt-item:hover{background:var(--hover,var(--hover))}
.nt-item.on{background:rgba(59,130,246,.1);border-color:rgba(59,130,246,.3)}
.nt-item.on .nt-item-title{color:var(--accent)}
.nt-item-title{font-size:13px;font-weight:600;color:var(--fg,#111);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nt-item-preview{font-size:12px;color:var(--muted,var(--muted));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;line-height:1.4}
.nt-item-time{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.nt-main{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;display:flex;flex-direction:column;overflow:hidden}
.nt-toolbar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));flex-wrap:wrap}
.nt-title{flex:1;min-width:180px;padding:8px 12px;font-size:15px;font-weight:600;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--fg,#111);outline:none;transition:.15s}
.nt-title:focus{border-color:var(--accent);background:var(--bg,var(--panel));box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.nt-title::placeholder{color:var(--muted,var(--muted));font-weight:400}
.nt-toolbar-actions{display:flex;gap:6px;flex-wrap:wrap}
.nt-btn{padding:7px 12px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.nt-btn:hover{border-color:var(--accent);color:var(--accent)}
.nt-btn.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.nt-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.nt-editor-wrap{flex:1;display:flex;overflow:hidden;min-height:440px}
.nt-editor{flex:1;width:100%;border:none;outline:none;padding:18px;font-size:14px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.8;resize:none;background:var(--bg,var(--panel));color:var(--fg,#222);box-sizing:border-box;display:block}
.nt-preview{flex:1;padding:18px;overflow-y:auto;font-size:14px;line-height:1.8;color:var(--fg,#222);background:var(--bg,var(--panel));word-wrap:break-word}
.nt-preview h1,.nt-preview h2,.nt-preview h3{margin:20px 0 10px;font-weight:600;line-height:1.3;color:var(--fg,#111);padding-bottom:6px;border-bottom:1px solid var(--line,#eee)}
.nt-preview h1{font-size:1.7em;border-bottom:2px solid var(--line,var(--line))}
.nt-preview h2{font-size:1.4em}
.nt-preview h3{font-size:1.2em}
.nt-preview p{margin:10px 0}
.nt-preview ul,.nt-preview ol{margin:10px 0;padding-left:28px}
.nt-preview li{margin:4px 0}
.nt-preview code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:2px 6px;border-radius:4px;font-size:.9em;color:#dc2626}
.nt-preview pre{background:#0f172a;color:var(--line);padding:14px;border-radius:8px;overflow-x:auto;margin:12px 0}
.nt-preview pre code{background:transparent;color:inherit;padding:0}
.nt-preview blockquote{border-left:4px solid var(--accent);background:rgba(59,130,246,.1);margin:12px 0;padding:8px 14px;color:var(--muted,var(--muted))}
.nt-preview a{color:var(--accent);text-decoration:none}
.nt-preview a:hover{text-decoration:underline}
.nt-preview table{border-collapse:collapse;margin:12px 0;width:100%}
.nt-preview th,.nt-preview td{border:1px solid var(--line,var(--line));padding:8px 12px;text-align:left}
.nt-preview th{background:var(--hover,var(--hover));font-weight:600}
.nt-preview img{max-width:100%;border-radius:6px}
.nt-preview hr{border:none;border-top:1px solid var(--line,var(--line));margin:16px 0}
.nt-status{display:flex;justify-content:space-between;padding:8px 14px;background:var(--hover,var(--hover));border-top:1px solid var(--line,var(--line));font-size:12px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;flex-wrap:wrap;gap:10px}
.nt-saved{color:#10b981}
.nt-tips{list-style:none;padding:0;margin:0}
.nt-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.nt-tips li:last-child{border-bottom:none}
.nt-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.nt-tips b{color:var(--fg,#111)}
.nt-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:768px){
  .nt-wrap{grid-template-columns:1fr;min-height:auto}
  .nt-side{max-height:220px}
  .nt-editor-wrap{min-height:320px}
  .nt-title{font-size:14px}
  .nt-btn{padding:6px 10px;font-size:11px}
}
/* ===== Markdown编辑器 (md-) ===== */
.md-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 14px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:14px}
.md-toolbar-group{display:flex;gap:4px;padding-right:10px;border-right:1px solid var(--line,var(--hover))}
.md-toolbar-group:last-child{border-right:none;padding-right:0}
.md-toolbar-right{margin-left:auto}
.md-btn{padding:7px 12px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-family:inherit}
.md-btn:hover{border-color:var(--accent);color:var(--accent)}
.md-btn i{font-size:11px}
.md-mini{padding:4px 10px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:transparent;color:var(--muted,#555);cursor:pointer;transition:.15s}
.md-mini:hover{border-color:var(--accent);color:var(--accent)}
.md-wrap{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;min-height:600px}
.md-wrap.md-single{grid-template-columns:1fr}
.md-wrap.md-single .md-pane:last-child{display:none}
.md-pane{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;display:flex;flex-direction:column;overflow:hidden}
.md-pane-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:12px;color:var(--muted,var(--muted));font-weight:500}
.md-pane-head i{color:var(--accent);margin-right:4px}
.md-stats{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.md-input{flex:1;width:100%;border:none;outline:none;padding:18px;font-size:14px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.8;resize:none;background:var(--bg,var(--panel));color:var(--fg,#222);box-sizing:border-box;min-height:560px}
.md-preview{flex:1;padding:18px 22px;overflow-y:auto;font-size:15px;line-height:1.8;color:var(--fg,#222);background:var(--bg,var(--panel));word-wrap:break-word;min-height:560px}
.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4{margin:22px 0 12px;font-weight:600;line-height:1.3;color:var(--fg,#111);padding-bottom:6px;border-bottom:1px solid var(--line,#eee)}
.md-preview h1{font-size:1.8em;border-bottom:2px solid var(--line,var(--line))}
.md-preview h2{font-size:1.45em}
.md-preview h3{font-size:1.2em}
.md-preview h4{font-size:1.05em;border-bottom:none}
.md-preview p{margin:12px 0}
.md-preview ul,.md-preview ol{margin:12px 0;padding-left:30px}
.md-preview li{margin:5px 0}
.md-preview code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:2px 6px;border-radius:4px;font-size:.9em;color:#dc2626}
.md-preview pre{background:#0f172a;color:var(--line);padding:16px;border-radius:8px;overflow-x:auto;margin:14px 0;line-height:1.6}
.md-preview pre code{background:transparent;color:inherit;padding:0;font-size:.88em;color:var(--line)}
.md-preview blockquote{border-left:4px solid var(--accent);background:rgba(59,130,246,.1);margin:14px 0;padding:10px 16px;color:var(--muted,var(--muted));border-radius:0 6px 6px 0}
.md-preview blockquote p{margin:4px 0}
.md-preview a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:.15s}
.md-preview a:hover{border-bottom-color:var(--accent)}
.md-preview table{border-collapse:collapse;margin:14px 0;width:100%;font-size:14px}
.md-preview th,.md-preview td{border:1px solid var(--line,var(--line));padding:8px 12px;text-align:left}
.md-preview th{background:var(--hover,var(--hover));font-weight:600}
.md-preview img{max-width:100%;border-radius:6px;margin:8px 0}
.md-preview hr{border:none;border-top:2px solid var(--line,var(--line));margin:20px 0}
.md-preview input[type="checkbox"]{margin-right:6px}
.md-tips{list-style:none;padding:0;margin:0}
.md-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.md-tips li:last-child{border-bottom:none}
.md-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.md-tips b{color:var(--fg,#111)}
.md-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:820px){
  .md-wrap{grid-template-columns:1fr}
  .md-wrap.md-single .md-pane:last-child{display:flex}
  .md-toolbar-right{margin-left:0}
  .md-btn{padding:6px 10px;font-size:11px}
}
@media print{
  .topbar,.sidebar,.overlay,.md-toolbar,.md-tips-sec,.page-head,.md-pane-head{display:none!important}
  .md-wrap{display:block!important}
  .md-pane:first-child{display:none!important}
  .md-preview{min-height:auto;padding:0}
}

/* ===== 短链接生成器 (sl-) ===== */
.sl-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.sl-input-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sl-input{flex:1;min-width:200px;padding:11px 14px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.sl-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.sl-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;transition:.15s;font-weight:500;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.sl-btn:hover{background:var(--accent);border-color:var(--accent)}
.sl-btn:disabled{opacity:.6;cursor:not-allowed}
.sl-hint{margin-top:10px;font-size:12px;color:var(--muted,var(--muted));line-height:1.6}
.sl-result{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;margin-bottom:16px}
.sl-result-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600;background:rgba(16,185,129,.15);color:#10b981;margin-bottom:12px}
.sl-result-item{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line,var(--hover));flex-wrap:wrap}
.sl-result-item:last-child{border-bottom:none}
.sl-result-label{width:70px;flex-shrink:0;font-size:13px;color:var(--muted,var(--muted))}
.sl-result-val{flex:1;min-width:0;font-size:14px;word-break:break-all;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sl-result-val a{color:var(--accent);text-decoration:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.sl-result-val a:hover{text-decoration:underline}
.sl-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.sl-error i{margin-right:6px}
.sl-mini-copy,.sl-mini-del{padding:3px 8px;font-size:11px;border:1px solid var(--line,var(--line));border-radius:5px;background:transparent;color:var(--muted,#555);cursor:pointer;transition:.15s}
.sl-mini-copy:hover{border-color:var(--accent);color:var(--accent)}
.sl-mini-del:hover{border-color:#dc2626;color:#dc2626}
.sl-list-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;margin-bottom:18px}
.sl-list-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.sl-list-head i{color:var(--accent);margin-right:4px}
.sl-refresh{padding:6px 12px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.sl-refresh:hover{border-color:var(--accent);color:var(--accent)}
.sl-list{padding:0}
.sl-loading,.sl-empty{padding:30px 20px;text-align:center;color:var(--muted,var(--muted));font-size:13px}
.sl-loading i{margin-right:6px;color:var(--accent)}
.sl-list-table{overflow-x:auto}
.sl-list-table table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.sl-list-table th,.sl-list-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover));vertical-align:middle}
.sl-list-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:12px;white-space:nowrap}
.sl-list-table tr:last-child td{border-bottom:none}
.sl-list-table tr:hover td{background:var(--hover,var(--hover))}
.sl-list-table a{color:var(--accent);text-decoration:none}
.sl-list-table a:hover{text-decoration:underline}
.sl-td-url{max-width:380px;word-break:break-all;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:var(--muted,var(--muted))}
.sl-td-time{white-space:nowrap;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}
.sl-tips{list-style:none;padding:0;margin:0}
.sl-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.sl-tips li:last-child{border-bottom:none}
.sl-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.sl-tips b{color:var(--fg,#111)}
.sl-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .sl-input-row{flex-direction:column;align-items:stretch}
  .sl-btn{width:100%}
  .sl-list-table{font-size:12px;min-width:520px}
  .sl-td-url{max-width:200px}
}
/* ===== 邮编查询 (yb-) ===== */
.yb-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.yb-search-row{display:flex;align-items:center;gap:10px;position:relative}
.yb-search-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.yb-input{flex:1;padding:11px 14px 11px 38px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box}
.yb-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.yb-hint{margin-top:10px;font-size:12px;color:var(--muted,var(--muted))}
.yb-hint a{color:var(--accent);text-decoration:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.yb-hint a:hover{text-decoration:underline}
.yb-count{font-size:13px;color:var(--muted,var(--muted));margin-bottom:10px}
.yb-count b{color:var(--accent)}
.yb-table-wrap{overflow-x:auto;border:1px solid var(--line,var(--line));border-radius:12px;background:var(--panel,var(--panel));margin-bottom:18px}
.yb-table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.yb-table th,.yb-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.yb-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));position:sticky;top:0;z-index:1;white-space:nowrap}
.yb-table tr:last-child td{border-bottom:none}
.yb-table tr:hover td{background:var(--hover,var(--hover))}
.yb-code{display:inline-block;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;font-size:14px;color:var(--accent);background:rgba(59,130,246,.1);padding:3px 10px;border-radius:6px;letter-spacing:1px}
.yb-copy{padding:3px 8px;font-size:11px;border:1px solid var(--line,var(--line));border-radius:5px;background:transparent;color:var(--muted,#555);cursor:pointer;transition:.15s;margin-left:6px}
.yb-copy:hover{border-color:var(--accent);color:var(--accent)}
.yb-empty{text-align:center;color:var(--muted,var(--muted));padding:36px 0!important}
.yb-tips{list-style:none;padding:0;margin:0}
.yb-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.yb-tips li:last-child{border-bottom:none}
.yb-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.yb-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .yb-table{font-size:13px;min-width:480px}
  .yb-table th,.yb-table td{padding:8px 10px}
}

/* ===== 体脂率计算器 (bf-) ===== */
.bf-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.bf-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.bf-row:last-of-type{margin-bottom:0}
.bf-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted,var(--muted))}
.bf-input{flex:1;min-width:180px;padding:10px 14px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.bf-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.bf-radio-group{display:flex;gap:16px;flex:1}
.bf-radio{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.bf-radio input{cursor:pointer;accent-color:var(--accent)}
.bf-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.bf-btn{padding:10px 20px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.bf-btn:hover{border-color:var(--accent);color:var(--accent)}
.bf-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.bf-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.bf-result{margin-bottom:18px}
.bf-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:20px}
.bf-main{text-align:center;padding:20px 0 24px;border-bottom:1px solid var(--line,var(--hover));margin-bottom:16px}
.bf-main-num{font-size:64px;font-weight:700;color:var(--accent);line-height:1;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:-2px}
.bf-main-unit{font-size:28px;margin-left:4px;color:#60a5fa}
.bf-main-label{font-size:14px;color:var(--muted,var(--muted));margin-top:8px}
.bf-main-level{display:inline-block;margin-top:14px;padding:6px 18px;border-radius:999px;font-size:14px;font-weight:600}
.bf-level-low{background:rgba(59,130,246,.15);color:#3b82f6}
.bf-level-athlete{background:rgba(16,185,129,.15);color:#10b981}
.bf-level-good{background:rgba(16,185,129,.15);color:#10b981}
.bf-level-ok{background:rgba(245,158,11,.15);color:#f59e0b}
.bf-level-obese{background:rgba(239,68,68,.15);color:#ef4444}
.bf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:16px}
.bf-item{padding:12px 14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--hover,var(--hover))}
.bf-key{font-size:12px;color:var(--muted,var(--muted));margin-bottom:6px}
.bf-val{font-size:15px;color:var(--fg,#111);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bf-na{color:var(--muted,var(--muted));font-size:13px;font-weight:400}
.bf-inline-tag{display:inline-block;padding:2px 8px;font-size:11px;border-radius:6px;font-family:inherit;font-weight:500}
.bf-advice{padding:14px 16px;background:rgba(59,130,246,.1);color:#3b82f6;border:1px solid rgba(59,130,246,.3);border-radius:8px;font-size:14px;line-height:1.7;margin-bottom:14px}
.bf-advice i{color:var(--accent);margin-right:6px}
.bf-detail{border-top:1px dashed var(--line,var(--line));padding-top:14px}
.bf-detail-title{font-size:13px;color:var(--muted,var(--muted));margin-bottom:10px;font-weight:600}
.bf-formula{padding:8px 12px;background:var(--hover,var(--hover));border-radius:6px;font-size:13px;color:var(--muted,var(--muted));line-height:1.7;margin-bottom:6px;font-family:ui-monospace,Menlo,Consolas,monospace;word-break:break-all}
.bf-formula b{color:var(--accent);font-family:inherit}
.bf-table-wrap{overflow-x:auto}
.bf-table{width:100%;border-collapse:collapse;font-size:14px;min-width:480px}
.bf-table th,.bf-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.bf-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg))}
.bf-table tr:last-child td{border-bottom:none}
.bf-table tr:hover td{background:var(--hover,var(--hover))}
.bf-tips{list-style:none;padding:0;margin:0}
.bf-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.bf-tips li:last-child{border-bottom:none}
.bf-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.bf-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .bf-label{width:100%}
  .bf-input{min-width:auto}
  .bf-btn{flex:1;justify-content:center}
  .bf-main-num{font-size:48px}
  .bf-main-unit{font-size:22px}
}
/* ===== 基础代谢率计算器 (bmr-) ===== */
.bmr-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.bmr-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.bmr-row:last-of-type{margin-bottom:0}
.bmr-label{width:120px;flex-shrink:0;font-size:14px;color:var(--muted,var(--muted))}
.bmr-input{flex:1;min-width:180px;padding:10px 14px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.bmr-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.bmr-select{cursor:pointer}
.bmr-radio-group{display:flex;gap:16px;flex:1}
.bmr-radio{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.bmr-radio input{cursor:pointer;accent-color:var(--accent)}
.bmr-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.bmr-btn{padding:10px 20px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.bmr-btn:hover{border-color:var(--accent);color:var(--accent)}
.bmr-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.bmr-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.bmr-result{margin-bottom:18px}
.bmr-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:20px}
.bmr-main{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.bmr-main-item{text-align:center;padding:20px 10px;background:var(--hover,var(--hover));border-radius:10px;border:1px solid var(--line,var(--line))}
.bmr-main-hl{background:linear-gradient(135deg,var(--accent),var(--accent));border-color:transparent;color:var(--panel);box-shadow:0 4px 14px rgba(59,130,246,.25)}
.bmr-main-hl .bmr-main-num{color:var(--panel)}
.bmr-main-hl .bmr-main-label{color:rgba(255,255,255,.85)}
.bmr-main-num{font-size:38px;font-weight:700;color:var(--accent);line-height:1;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:-1px}
.bmr-main-unit{font-size:14px;margin-left:6px;color:#60a5fa;font-weight:500}
.bmr-main-hl .bmr-main-unit{color:rgba(255,255,255,.75)}
.bmr-main-label{font-size:13px;color:var(--muted,var(--muted));margin-top:8px}
.bmr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:14px}
.bmr-item{padding:12px 14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--hover,var(--hover))}
.bmr-key{font-size:12px;color:var(--muted,var(--muted));margin-bottom:6px}
.bmr-val{font-size:15px;color:var(--fg,#111);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.bmr-na{color:var(--muted,var(--muted));font-size:13px;font-weight:400}
.bmr-note{padding:12px 14px;background:rgba(59,130,246,.1);color:#3b82f6;border:1px solid rgba(59,130,246,.3);border-radius:8px;font-size:13px;line-height:1.7}
.bmr-note i{color:var(--accent);margin-right:6px}
.bmr-note b{font-weight:700;color:#3b82f6}
.bmr-goal-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.bmr-goal-item{padding:14px 16px;border-radius:10px;border:1px solid var(--line,var(--line));text-align:center}
.bmr-goal-name{font-size:13px;font-weight:600;margin-bottom:8px}
.bmr-goal-num{font-size:24px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.1}
.bmr-goal-num span{font-size:12px;font-weight:500;opacity:.75}
.bmr-goal-tip{font-size:11px;margin-top:6px;opacity:.75}
.bmr-goal-red{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3);color:#ef4444}
.bmr-goal-orange{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.2);color:#f59e0b}
.bmr-goal-yellow{background:rgba(250,204,21,.08);border-color:rgba(245,158,11,.3);color:#f59e0b}
.bmr-goal-green{background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.3);color:#10b981}
.bmr-goal-blue{background:rgba(59,130,246,.1);border-color:rgba(59,130,246,.3);color:var(--accent)}
.bmr-goal-purple{background:rgba(139,92,246,.08);border-color:rgba(139,92,246,.3);color:#8b5cf6}
.bmr-tips{list-style:none;padding:0;margin:0}
.bmr-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.bmr-tips li:last-child{border-bottom:none}
.bmr-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.bmr-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .bmr-label{width:100%}
  .bmr-input{min-width:auto}
  .bmr-btn{flex:1;justify-content:center}
  .bmr-main{grid-template-columns:1fr}
  .bmr-main-num{font-size:32px}
}
/* ===== 番茄钟 (pomo-) ===== */
.pomo-wrap{display:grid;grid-template-columns:1fr 340px;gap:14px;margin-bottom:18px}
.pomo-main{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:14px;padding:24px;display:flex;flex-direction:column;align-items:center}
.pomo-mode-tabs{display:flex;gap:6px;background:var(--hover,var(--hover));border-radius:10px;padding:4px;margin-bottom:24px}
.pomo-mode{padding:8px 20px;font-size:14px;border:none;border-radius:8px;background:transparent;color:var(--muted,var(--muted));cursor:pointer;transition:.15s;font-weight:500}
.pomo-mode:hover{color:var(--accent)}
.pomo-mode.on{background:var(--accent);color:var(--panel);box-shadow:0 2px 6px rgba(59,130,246,.3)}
.pomo-circle-wrap{position:relative;width:240px;height:240px;margin-bottom:24px}
.pomo-circle{width:100%;height:100%;transform:rotate(-90deg)}
.pomo-track{fill:none;stroke:var(--hover,var(--line));stroke-width:10}
.pomo-progress{fill:none;stroke:var(--accent);stroke-width:10;stroke-linecap:round;transition:stroke-dasharray .3s linear, stroke .3s}
.pomo-progress.pomo-short{stroke:#10b981}
.pomo-progress.pomo-long{stroke:#8b5cf6}
.pomo-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.pomo-time{font-size:44px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--fg,#111);letter-spacing:2px;line-height:1}
.pomo-status{font-size:13px;color:var(--muted,var(--muted));margin-top:8px}
.pomo-controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:20px}
.pomo-btn{padding:10px 20px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.pomo-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.pomo-btn:disabled{opacity:.5;cursor:not-allowed}
.pomo-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.pomo-btn-primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--panel)}
.pomo-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:380px}
.pomo-stat{padding:14px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:10px;text-align:center}
.pomo-stat-num{font-size:24px;font-weight:700;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1}
.pomo-stat-label{font-size:12px;color:var(--muted,var(--muted));margin-top:6px}
.pomo-side{display:flex;flex-direction:column;gap:14px}
.pomo-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px}
.pomo-card-head{font-size:14px;font-weight:600;color:var(--fg,#111);padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--line,var(--hover))}
.pomo-card-head i{color:var(--accent);margin-right:6px}
.pomo-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;color:var(--muted,var(--muted));gap:10px;flex-wrap:wrap}
.pomo-row:last-child{margin-bottom:0}
.pomo-row label{flex:1;min-width:120px}
.pomo-row input[type="number"]{width:70px;padding:6px 10px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;text-align:center;font-family:ui-monospace,Menlo,Consolas,monospace}
.pomo-row input[type="number"]:focus{border-color:var(--accent)}
.pomo-row-check input[type="checkbox"]{margin-right:6px;accent-color:var(--accent);cursor:pointer}
.pomo-row-check label{display:inline-flex;align-items:center;cursor:pointer;user-select:none;flex:0}
.pomo-task-add{display:flex;gap:6px;margin-bottom:10px}
.pomo-task-add input{flex:1;min-width:0;padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none}
.pomo-task-add input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.pomo-task-add button{padding:0 12px;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:var(--panel);cursor:pointer;transition:.15s}
.pomo-task-add button:hover{background:var(--accent)}
.pomo-task-list{list-style:none;padding:0;margin:0;max-height:220px;overflow-y:auto}
.pomo-task{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;font-size:13px;color:var(--fg,#222);cursor:pointer;transition:.12s;margin-bottom:2px}
.pomo-task:hover{background:var(--hover,var(--hover))}
.pomo-task.done .pomo-task-text{text-decoration:line-through;color:var(--muted,var(--muted))}
.pomo-task.done .pomo-task-check{color:#10b981}
.pomo-task-check{color:var(--muted,var(--muted));font-size:14px}
.pomo-task-text{flex:1;min-width:0;word-break:break-word}
.pomo-task-del{color:var(--muted,var(--line));opacity:0;transition:.15s;padding:2px 4px}
.pomo-task:hover .pomo-task-del{opacity:1}
.pomo-task-del:hover{color:#dc2626}
.pomo-task-empty{text-align:center;padding:20px 0;color:var(--muted,var(--muted));font-size:13px}
.pomo-tips{list-style:none;padding:0;margin:0}
.pomo-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.pomo-tips li:last-child{border-bottom:none}
.pomo-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.pomo-tips b{color:var(--fg,#111)}
@media (max-width:900px){
  .pomo-wrap{grid-template-columns:1fr}
  .pomo-circle-wrap{width:200px;height:200px}
  .pomo-time{font-size:36px}
}
@media (max-width:640px){
  .pomo-main{padding:16px}
  .pomo-mode{padding:6px 12px;font-size:13px}
  .pomo-btn{padding:8px 14px;font-size:13px;flex:1;justify-content:center}
  .pomo-controls{gap:6px}
}
/* ===== 在线待办清单 (todo-) ===== */
.todo-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:14px;padding:18px;margin-bottom:18px}
.todo-add{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.todo-input{flex:1;min-width:200px;padding:11px 14px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box}
.todo-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.todo-select,.todo-date{padding:11px 12px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer}
.todo-select:focus,.todo-date:focus{border-color:var(--accent)}
.todo-add-btn{padding:11px 20px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.todo-add-btn:hover{background:var(--accent);border-color:var(--accent)}
.todo-filter{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line,var(--hover));flex-wrap:wrap}
.todo-filter-group{display:flex;gap:6px;flex-wrap:wrap}
.todo-filter-btn{padding:7px 14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.todo-filter-btn:hover{border-color:var(--accent);color:var(--accent)}
.todo-filter-btn.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.todo-cnt{display:inline-block;padding:1px 7px;font-size:11px;background:rgba(0,0,0,.08);border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace}
.todo-filter-btn.on .todo-cnt{background:rgba(255,255,255,.25)}
.todo-sort{padding:7px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.todo-sort:hover{border-color:#dc2626;color:#dc2626}
.todo-list{min-height:200px;margin-bottom:14px}
.todo-empty{text-align:center;padding:50px 0;color:var(--muted,var(--muted))}
.todo-empty i{font-size:44px;display:block;margin-bottom:12px;opacity:.5}
.todo-empty p{margin:0;font-size:14px}
.todo-item{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:10px;border:1px solid var(--line,var(--line));background:var(--bg,var(--panel));margin-bottom:8px;transition:.15s;position:relative}
.todo-item:hover{box-shadow:0 2px 8px rgba(0,0,0,.04);border-color:rgba(59,130,246,.4)}
.todo-item.high{border-left:3px solid #f59e0b}
.todo-item.urgent{border-left:3px solid #dc2626}
.todo-item.done{background:var(--hover,var(--hover));opacity:.7}
.todo-item.done .todo-text{text-decoration:line-through;color:var(--muted,var(--muted))}
.todo-check{flex-shrink:0;padding:2px;color:var(--muted,var(--muted));font-size:20px;cursor:pointer;transition:.15s;line-height:1}
.todo-check:hover{color:var(--accent)}
.todo-item.done .todo-check{color:#10b981}
.todo-body{flex:1;min-width:0}
.todo-text{font-size:14px;color:var(--fg,#111);line-height:1.6;word-break:break-word;cursor:pointer;padding:2px 0;user-select:none}
.todo-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.todo-pri{display:inline-block;padding:2px 8px;font-size:11px;border-radius:5px;font-weight:500}
.todo-pri-high{background:rgba(245,158,11,.15);color:#f59e0b}
.todo-pri-urgent{background:rgba(239,68,68,.15);color:#ef4444}
.todo-due{display:inline-block;padding:2px 8px;font-size:11px;border-radius:5px;background:var(--hover,var(--hover));color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.todo-due.today{background:rgba(59,130,246,.15);color:var(--accent)}
.todo-due.overdue{background:rgba(239,68,68,.15);color:#ef4444}
.todo-del{flex-shrink:0;padding:4px 8px;color:var(--muted,var(--line));cursor:pointer;transition:.15s;opacity:0;font-size:14px}
.todo-item:hover .todo-del{opacity:1}
.todo-del:hover{color:#dc2626}
.todo-edit-input{width:100%;padding:4px 8px;font-size:14px;border:1px solid var(--accent);border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#111);outline:none;font-family:inherit}
.todo-progress-wrap{padding-top:14px;border-top:1px solid var(--line,var(--hover))}
.todo-progress-info{display:flex;justify-content:space-between;font-size:13px;color:var(--muted,var(--muted));margin-bottom:8px}
.todo-progress-pct{color:var(--accent);font-weight:600;font-family:ui-monospace,Menlo,Consolas,monospace}
.todo-progress-bar{height:8px;background:var(--hover,var(--line));border-radius:4px;overflow:hidden}
.todo-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#10b981);width:0;border-radius:4px;transition:width .3s}
.todo-tips{list-style:none;padding:0;margin:0}
.todo-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.todo-tips li:last-child{border-bottom:none}
.todo-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.todo-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .todo-add{flex-direction:column}
  .todo-input,.todo-select,.todo-date,.todo-add-btn{width:100%}
  .todo-filter{flex-direction:column;align-items:stretch}
  .todo-filter-group{justify-content:center}
}
/* ===== 汉字部首查询 (bs-) ===== */
.bs-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.bs-search-row{display:flex;align-items:center;gap:10px;position:relative;margin-bottom:12px}
.bs-search-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.bs-input{flex:1;padding:11px 14px 11px 38px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box}
.bs-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.bs-strokes{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.bs-stroke-btn{padding:5px 12px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:16px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap}
.bs-stroke-btn:hover{border-color:var(--accent);color:var(--accent)}
.bs-stroke-btn.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.bs-count{font-size:13px;color:var(--muted,var(--muted))}
.bs-count b{color:var(--accent)}
.bs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:18px}
.bs-item{position:relative;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;display:flex;gap:14px;cursor:pointer;transition:.18s}
.bs-item:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(59,130,246,.12);transform:translateY(-2px)}
.bs-item.copied{background:rgba(16,185,129,.15);border-color:#10b981}
.bs-item.copied:after{content:'已复制';position:absolute;top:8px;right:8px;padding:2px 8px;font-size:11px;background:#10b981;color:var(--panel);border-radius:4px}
.bs-item-num{position:absolute;top:8px;right:10px;font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.bs-item-char{flex-shrink:0;width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.15));color:var(--accent);font-size:36px;font-weight:500;border-radius:12px;font-family:'Kaiti SC','STKaiti',serif}
.bs-item-info{flex:1;min-width:0;font-size:12px;line-height:1.6}
.bs-item-row{display:flex;gap:6px;margin-bottom:2px}
.bs-item-lbl{color:var(--muted,var(--muted));flex-shrink:0;width:34px}
.bs-item-row > span:last-child{color:var(--fg,#111);word-break:break-word}
.bs-item-ex{font-family:'Kaiti SC','STKaiti',serif;font-size:13px}
.bs-empty{grid-column:1/-1;text-align:center;padding:50px 0;color:var(--muted,var(--muted))}
.bs-empty i{font-size:40px;margin-bottom:12px;display:block;opacity:.5}
.bs-empty p{margin:0;font-size:14px}
.bs-tips{list-style:none;padding:0;margin:0}
.bs-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.bs-tips li:last-child{border-bottom:none}
.bs-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.bs-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .bs-grid{grid-template-columns:1fr}
  .bs-item{padding:12px}
  .bs-item-char{width:52px;height:52px;font-size:28px}
}
/* ===== 手机号归属地查询 (sj-) ===== */
.sj-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.sj-input-row{display:flex;align-items:center;gap:10px;position:relative;flex-wrap:wrap}
.sj-input-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.sj-input{flex:1;min-width:200px;padding:11px 14px 11px 38px;font-size:16px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:1px;box-sizing:border-box}
.sj-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.sj-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.sj-btn:hover{background:var(--accent);border-color:var(--accent)}
.sj-hint{margin-top:10px;font-size:12px;color:var(--muted,var(--muted))}
.sj-hint a{color:var(--accent);text-decoration:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.sj-hint a:hover{text-decoration:underline}
.sj-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.sj-error i{margin-right:6px}
.sj-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:20px;margin-bottom:18px}
.sj-card-head{font-size:15px;font-weight:600;color:#10b981;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line,var(--hover));display:flex;align-items:center;gap:8px}
.sj-result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.sj-result-item{padding:12px 14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--hover,var(--hover))}
.sj-key{font-size:12px;color:var(--muted,var(--muted));margin-bottom:6px}
.sj-val{font-size:15px;color:var(--fg,#111);font-weight:600}
.sj-val code{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);background:transparent;padding:0}
.sj-op{display:inline-block;padding:3px 10px;font-size:13px;border-radius:6px;font-weight:600}
.sj-op-cmcc{background:rgba(239,68,68,.15);color:#ef4444}
.sj-op-cucc{background:rgba(59,130,246,.15);color:var(--accent)}
.sj-op-ctcc{background:rgba(16,185,129,.15);color:#10b981}
.sj-op-virtual{background:rgba(139,92,246,.12);color:#8b5cf6}
.sj-note{margin-top:14px;padding:12px 14px;background:rgba(59,130,246,.1);color:#3b82f6;border:1px solid rgba(59,130,246,.3);border-radius:8px;font-size:13px;line-height:1.7}
.sj-note i{margin-right:6px;color:var(--accent)}
.sj-note b{font-weight:700;color:#3b82f6}
.sj-table-wrap{overflow-x:auto}
.sj-table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
.sj-table th,.sj-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover));vertical-align:top}
.sj-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));white-space:nowrap}
.sj-table tr:last-child td{border-bottom:none}
.sj-table td:last-child{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;color:var(--muted,var(--muted));line-height:1.7;word-break:break-all}
.sj-tips{list-style:none;padding:0;margin:0}
.sj-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.sj-tips li:last-child{border-bottom:none}
.sj-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.sj-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .sj-input-row{flex-direction:column;align-items:stretch}
  .sj-input-row > i{top:14px}
  .sj-btn{width:100%}
  .sj-result-grid{grid-template-columns:1fr}
  .sj-table{font-size:12px}
}
/* 手机号归属地 - 加载/补充样式 */
.sj-loading{padding:36px 20px;text-align:center;color:var(--accent);font-size:15px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:18px}
.sj-loading i{margin-right:8px}
.sj-na{color:var(--muted,var(--muted));font-weight:400;font-size:13px}


/* ===== 车牌号归属地查询 (cp-) ===== */
.cp-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px}
.cp-input-row{display:flex;align-items:center;gap:10px;position:relative;flex-wrap:wrap}
.cp-input-row > i{position:absolute;left:14px;color:var(--muted);font-size:15px;pointer-events:none}
.cp-input{flex:1;min-width:200px;padding:11px 14px 11px 38px;font-size:18px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:2px;font-weight:600;box-sizing:border-box;text-transform:uppercase}
.cp-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.cp-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.cp-btn:hover{background:var(--accent);border-color:var(--accent)}
.cp-hint{margin-top:10px;font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.cp-hint a{color:var(--accent);text-decoration:none;font-family:ui-monospace,Menlo,Consolas,monospace;display:inline}
.cp-hint a:hover{text-decoration:underline}
.cp-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.cp-error i{margin-right:6px}
.cp-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px}
.cp-card-head{font-size:15px;font-weight:600;color:#10b981;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.cp-plate-preview{text-align:center;margin-bottom:18px}
.cp-plate{display:inline-block;padding:12px 24px;font-size:28px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:4px;border-radius:8px;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.cp-plate-blue{background:linear-gradient(135deg,#3b82f6,var(--accent))}
.cp-plate-green{background:linear-gradient(135deg,#059669,#10b981)}
.cp-plate-red{background:linear-gradient(135deg,#ef4444,#dc2626)}
.cp-result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.cp-result-item{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--hover)}
.cp-key{font-size:12px;color:var(--muted);margin-bottom:6px}
.cp-val{font-size:15px;color:var(--fg);font-weight:600}
.cp-val code{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);background:transparent;padding:0}
.cp-val b{color:#dc2626;font-weight:700}
.cp-type{display:inline-block;padding:3px 10px;font-size:13px;border-radius:6px;font-weight:600}
.cp-type-blue{background:rgba(59,130,246,.15);color:var(--accent)}
.cp-type-green{background:rgba(16,185,129,.15);color:#10b981}
.cp-note{margin-top:14px;padding:12px 14px;background:rgba(59,130,246,.1);color:#3b82f6;border:1px solid rgba(59,130,246,.3);border-radius:8px;font-size:13px;line-height:1.7}
.cp-note i{margin-right:6px;color:var(--accent)}
.cp-note b{font-weight:700;color:#3b82f6}
.cp-province-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.cp-province-tab{width:38px;height:38px;font-size:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
.cp-province-tab:hover{border-color:var(--accent);color:var(--accent)}
.cp-province-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.cp-table-wrap{overflow-x:auto;max-height:520px;overflow-y:auto}
.cp-table{width:100%;border-collapse:collapse;font-size:14px}
.cp-table th,.cp-table td{padding:8px 14px;text-align:left;border-bottom:1px solid var(--line)}
.cp-table th{background:var(--hover);font-weight:600;color:var(--muted);font-size:13px;position:sticky;top:0;z-index:1}
.cp-table tr:last-child td{border-bottom:none}
.cp-table tr:hover td{background:var(--hover)}
.cp-table code{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);font-weight:600;font-size:14px}
.cp-tips{list-style:none;padding:0;margin:0}
.cp-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.cp-tips li:last-child{border-bottom:none}
.cp-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.cp-tips b{color:var(--fg)}
@media (max-width:640px){
  .cp-input-row{flex-direction:column;align-items:stretch}
  .cp-input-row > i{top:14px}
  .cp-btn{width:100%}
  .cp-result-grid{grid-template-columns:1fr}
  .cp-plate{font-size:22px;padding:10px 18px}
  .cp-province-tab{width:34px;height:34px;font-size:14px}
}

/* ===== 汉字结构查询 (jg-) ===== */
.jg-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.jg-search-row{display:flex;align-items:center;gap:10px;position:relative;margin-bottom:12px}
.jg-search-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.jg-input{flex:1;padding:11px 14px 11px 38px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box}
.jg-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.jg-count{font-size:13px;color:var(--muted,var(--muted))}
.jg-count b{color:var(--accent)}
.jg-list{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}
.jg-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden}
.jg-card-head{display:flex;align-items:center;gap:14px;padding:16px 20px;background:linear-gradient(90deg,rgba(59,130,246,.1),var(--panel));border-bottom:1px solid var(--line,var(--line))}
.jg-card-icon{flex-shrink:0;width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent));color:var(--panel);font-size:20px}
.jg-card-title{flex:1;min-width:0}
.jg-card-name{font-size:18px;font-weight:700;color:var(--fg,#111);margin-bottom:4px}
.jg-card-code{font-size:12px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.jg-card-count{flex-shrink:0;font-size:12px;color:var(--accent);background:rgba(59,130,246,.15);padding:4px 12px;border-radius:12px;font-weight:600}
.jg-card-body{padding:16px 20px}
.jg-card-row{display:flex;gap:12px;margin-bottom:10px;font-size:14px;color:var(--fg,#111);line-height:1.7}
.jg-card-row:last-child{margin-bottom:0}
.jg-card-lbl{flex-shrink:0;width:42px;color:var(--muted,var(--muted));font-weight:500}
.jg-card-row > span:last-child{flex:1;word-break:break-word}
.jg-card-row-ex{align-items:flex-start}
.jg-ex-list{flex:1;display:flex;flex-wrap:wrap;gap:4px}
.jg-ex-char{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 8px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:6px;font-size:16px;color:var(--fg,#111);text-decoration:none;font-family:'Kaiti SC','STKaiti',serif;transition:.15s;cursor:pointer}
.jg-ex-char:hover{background:var(--accent);color:var(--panel);border-color:var(--accent);transform:scale(1.08)}
.jg-empty{text-align:center;padding:50px 20px;color:var(--muted,var(--muted))}
.jg-empty i{font-size:44px;display:block;margin-bottom:12px;opacity:.5}
.jg-empty p{margin:0;font-size:14px}
.jg-tips{list-style:none;padding:0;margin:0}
.jg-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.jg-tips li:last-child{border-bottom:none}
.jg-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.jg-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .jg-card-head{padding:12px 14px;gap:10px}
  .jg-card-icon{width:40px;height:40px;font-size:18px}
  .jg-card-name{font-size:16px}
  .jg-card-body{padding:12px 14px}
  .jg-card-lbl{width:100%;display:block;margin-bottom:4px}
  .jg-card-row{flex-direction:column;gap:4px}
  .jg-ex-char{min-width:30px;height:30px;font-size:14px}
}

/* ===== 汉字多音字查询 (dy-) ===== */
.dy-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.dy-search-row{display:flex;align-items:center;gap:10px;position:relative;margin-bottom:12px}
.dy-search-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.dy-input{flex:1;padding:11px 14px 11px 38px;font-size:15px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box}
.dy-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.dy-hint{font-size:12px;color:var(--muted,var(--muted));margin-bottom:10px;line-height:1.9}
.dy-hint a{display:inline-block;margin:0 4px 4px 0;padding:3px 10px;background:var(--hover,var(--hover));color:var(--muted,#555);border-radius:6px;text-decoration:none;font-family:'Kaiti SC','STKaiti',serif;font-size:14px;transition:.15s}
.dy-hint a:hover{background:var(--accent);color:var(--panel)}
.dy-count{font-size:13px;color:var(--muted,var(--muted))}
.dy-count b{color:var(--accent)}
.dy-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px;margin-bottom:18px}
.dy-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;transition:.15s}
.dy-card:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(59,130,246,.1)}
.dy-card-head{display:flex;align-items:center;gap:16px;padding:14px 18px;background:linear-gradient(90deg,rgba(59,130,246,.1),var(--panel));border-bottom:1px solid var(--line,var(--line))}
.dy-card-char{flex-shrink:0}
.dy-card-char a{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:linear-gradient(135deg,var(--accent),var(--accent));color:var(--panel);border-radius:12px;font-size:38px;font-weight:500;text-decoration:none;font-family:'Kaiti SC','STKaiti',serif;transition:.15s;box-shadow:0 3px 10px rgba(59,130,246,.25)}
.dy-card-char a:hover{transform:scale(1.05);box-shadow:0 5px 16px rgba(59,130,246,.35)}
.dy-card-meta{flex:1;min-width:0}
.dy-card-reading-count{display:inline-block;padding:4px 12px;font-size:13px;background:rgba(59,130,246,.15);color:var(--accent);border-radius:12px;font-weight:600}
.dy-card-body{padding:0}
.dy-reading{padding:14px 18px;border-bottom:1px solid var(--line,var(--hover))}
.dy-reading:last-child{border-bottom:none}
.dy-reading-head{margin-bottom:8px}
.dy-pinyin{display:inline-block;padding:4px 14px;font-size:16px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;color:#dc2626;background:rgba(239,68,68,.15);border-radius:6px;letter-spacing:1px}
.dy-reading-words{font-size:14px;color:var(--fg,#111);margin-bottom:8px;line-height:2}
.dy-reading-examples{font-size:13px;color:var(--muted,var(--muted));line-height:1.9}
.dy-lbl{display:inline-block;margin-right:8px;padding:1px 8px;font-size:11px;background:var(--hover,var(--hover));color:var(--muted,var(--muted));border-radius:4px;font-weight:500;vertical-align:middle}
.dy-word{display:inline-block;margin:0 6px 4px 0;padding:3px 10px;background:var(--hover);color:var(--fg,#111);border:1px solid var(--line,var(--line));border-radius:6px;font-size:13px}
.dy-ex-sentence{padding:4px 0;color:var(--muted,var(--muted));line-height:1.7}
.dy-ex-sentence i{color:rgba(59,130,246,.4);font-size:11px;margin-right:4px}
.dy-empty{grid-column:1/-1;text-align:center;padding:50px 0;color:var(--muted,var(--muted))}
.dy-empty i{font-size:44px;display:block;margin-bottom:12px;opacity:.5}
.dy-empty p{margin:0;font-size:14px}
.dy-tips{list-style:none;padding:0;margin:0}
.dy-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.dy-tips li:last-child{border-bottom:none}
.dy-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.dy-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .dy-list{grid-template-columns:1fr}
  .dy-card-char a{width:52px;height:52px;font-size:30px}
  .dy-pinyin{font-size:14px}
}

/* ===== 成语接龙 (jl-) ===== */
.jl-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:14px;padding:18px;margin-bottom:18px}
.jl-header{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line,var(--hover));flex-wrap:wrap}
.jl-stat{display:flex;gap:10px;flex-wrap:wrap}
.jl-stat-item{min-width:72px;padding:8px 12px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:8px;text-align:center}
.jl-stat-num{font-size:20px;font-weight:700;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.1}
.jl-stat-lbl{font-size:11px;color:var(--muted,var(--muted));margin-top:3px}
.jl-header-actions{display:flex;gap:10px;flex-wrap:wrap}
.jl-btn{padding:9px 18px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.jl-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.jl-btn:disabled{opacity:.5;cursor:not-allowed}
.jl-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.jl-btn-primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--panel)}
.jl-chain-wrap{background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:12px;padding:14px;margin-bottom:14px;max-height:480px;overflow-y:auto}
.jl-chain{display:flex;flex-direction:column;gap:12px}
.jl-chain-empty{text-align:center;padding:60px 20px;color:var(--muted,var(--muted))}
.jl-chain-empty i{font-size:40px;display:block;margin-bottom:12px;opacity:.5}
.jl-chain-empty p{margin:0;font-size:14px}
.jl-bubble{max-width:80%;padding:10px 14px;border-radius:12px}
.jl-bubble-user{align-self:flex-end;background:linear-gradient(135deg,var(--accent),var(--accent));color:var(--panel);border-bottom-right-radius:4px}
.jl-bubble-system{align-self:flex-start;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-bottom-left-radius:4px;color:var(--fg,#111)}
.jl-bubble-info{align-self:center;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.3);color:#f59e0b;font-size:13px;padding:8px 16px;border-radius:20px;text-align:center}
.jl-bubble-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px}
.jl-bubble-user .jl-bubble-head{color:rgba(255,255,255,.85)}
.jl-bubble-system .jl-bubble-head{color:var(--muted,var(--muted))}
.jl-bubble-name{font-weight:600}
.jl-bubble-py{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;opacity:.85}
.jl-bubble-word{font-size:22px;font-weight:700;letter-spacing:2px;font-family:'Kaiti SC','STKaiti',serif}
.jl-bubble-user .jl-bubble-word{color:var(--panel)}
.jl-bubble-system .jl-bubble-word{color:var(--accent)}
.jl-bubble-explain{margin-top:6px;font-size:12px;line-height:1.6;opacity:.85;max-height:60px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.jl-bubble-user .jl-bubble-explain{color:rgba(255,255,255,.85)}
.jl-bubble-system .jl-bubble-explain{color:var(--muted,var(--muted))}
.jl-input-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:14px}
.jl-hint-last{font-size:14px;color:var(--muted,var(--muted));margin-bottom:10px;display:none}
.jl-hint-last b{display:inline-block;padding:2px 10px;background:rgba(59,130,246,.15);color:var(--accent);border-radius:6px;font-size:16px;font-weight:700;margin:0 4px}
.jl-input-row{display:flex;gap:10px;flex-wrap:wrap}
.jl-input{flex:1;min-width:180px;padding:11px 16px;font-size:20px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#111);outline:none;letter-spacing:4px;font-family:'Kaiti SC','STKaiti',serif;text-align:center;box-sizing:border-box}
.jl-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.jl-input:disabled{background:var(--hover,var(--hover))}
.jl-input-tip{margin-top:8px;font-size:12px;color:var(--muted,var(--muted))}
.jl-input-tip.err{color:#dc2626}
.jl-tips{list-style:none;padding:0;margin:0}
.jl-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.jl-tips li:last-child{border-bottom:none}
.jl-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.jl-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .jl-bubble{max-width:90%}
  .jl-bubble-word{font-size:18px}
  .jl-input{font-size:16px;letter-spacing:2px}
  .jl-btn{flex:1;justify-content:center}
  .jl-stat-item{min-width:60px;padding:6px 10px}
  .jl-stat-num{font-size:16px}
}

/* ===== 掷骰子抛硬币 (dt-) ===== */
.dt-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.dt-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.dt-tab:hover{color:var(--accent)}
.dt-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.dt-panel{margin-bottom:18px}
.dt-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:14px;padding:20px}
.dt-row{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.dt-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted,var(--muted));font-weight:500}
.dt-btns{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.dt-count,.dt-face{padding:7px 14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;font-weight:500}
.dt-count:hover,.dt-face:hover{border-color:var(--accent);color:var(--accent)}
.dt-count.on,.dt-face.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
/* 骰子区域 */
.dt-dice-area{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;min-height:120px;padding:24px 12px;background:linear-gradient(135deg,rgba(59,130,246,.1),var(--hover));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:16px}
.dt-die{width:72px;height:72px;background:var(--panel);border:2px solid var(--accent);border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(59,130,246,.18);transition:transform .2s}
.dt-die-rolled{animation:dtPop .35s ease-out}
.dt-die-idle{background:var(--hover);border-color:var(--line);box-shadow:none}
@keyframes dtPop {
  0% { transform: scale(0.7); }
  60% { transform: scale(1.15); }
  100% { transform: scale(1); }
}
.dt-die-num{font-size:32px;font-weight:700;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.dt-die-idle .dt-die-num{color:var(--muted)}
.dt-dots{display:grid;grid-template-columns:repeat(3, 1fr);grid-template-rows:repeat(3, 1fr);gap:5px;width:52px;height:52px;padding:4px}
.dt-dot-cell{width:100%;height:100%;border-radius:50%;background:transparent}
.dt-dot-cell.on{background:var(--accent);box-shadow:0 0 4px rgba(37,99,235,.4)}
/* 结果区 */
.dt-result-box{text-align:center;padding:16px 12px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:16px}
.dt-result-main{margin-bottom:10px}
.dt-result-num{font-size:56px;font-weight:700;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1;letter-spacing:-2px}
.dt-result-label{font-size:13px;color:var(--muted,var(--muted));margin-top:8px}
.dt-result-detail{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px}
.dt-detail-item{padding:3px 10px;font-size:12px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:6px;color:var(--muted,var(--muted))}
.dt-detail-item b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.dt-detail-avg{background:rgba(59,130,246,.15);border-color:rgba(59,130,246,.3);color:var(--accent)}
.dt-detail-avg b{color:var(--accent)}
/* 按钮 */
.dt-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.dt-btn{padding:12px 28px;font-size:15px;border:1px solid var(--line,var(--line));border-radius:10px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:600;transition:.15s;display:inline-flex;align-items:center;gap:8px}
.dt-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.dt-btn:disabled{opacity:.6;cursor:not-allowed}
.dt-btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent));border-color:transparent;color:var(--panel);box-shadow:0 4px 12px rgba(59,130,246,.3)}
.dt-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--accent),var(--accent));color:var(--panel);transform:translateY(-1px)}
/* 硬币 */
.dt-coin-area{display:flex;justify-content:center;padding:30px 0;perspective:1000px}
.dt-coin{position:relative;width:160px;height:160px;transform-style:preserve-3d;transition:transform 1s ease-out}
.dt-coin-face{position:absolute;inset:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:64px;font-weight:700;backface-visibility:hidden;font-family:'Kaiti SC','STKaiti',serif;box-shadow:0 6px 24px rgba(0,0,0,.15)}
.dt-coin-front{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#f59e0b;border:6px solid #f59e0b}
.dt-coin-back{background:linear-gradient(135deg,#94a3b8,var(--muted));color:#1e293b;border:6px solid var(--muted);transform:rotateY(180deg)}
.dt-coin-head{color:#f59e0b !important}
.dt-coin-tail{color:var(--muted) !important}
/* 统计 */
.dt-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.dt-stat{padding:14px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:10px;text-align:center}
.dt-stat-num{font-size:26px;font-weight:700;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1}
.dt-stat-lbl{font-size:12px;color:var(--muted,var(--muted));margin-top:6px}
.dt-tips{list-style:none;padding:0;margin:0}
.dt-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.dt-tips li:last-child{border-bottom:none}
.dt-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.dt-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .dt-tab{padding:8px 14px;font-size:13px}
  .dt-label{width:100%}
  .dt-die{width:60px;height:60px}
  .dt-die-num{font-size:26px}
  .dt-dots{width:44px;height:44px;gap:4px;padding:3px}
  .dt-result-num{font-size:42px}
  .dt-btn{flex:1;justify-content:center;padding:10px 20px;font-size:14px}
  .dt-coin{width:130px;height:130px}
  .dt-coin-face{font-size:52px}
}

/* ===== 随机点名器 (dm-) ===== */
.dm-wrap{display:grid;grid-template-columns:340px 1fr;gap:16px;margin-bottom:18px}
.dm-side{display:flex;flex-direction:column;gap:14px}
.dm-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px}
.dm-card-head{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;color:var(--fg,#111);padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--line,var(--hover))}
.dm-card-head i{color:var(--accent);margin-right:6px}
.dm-count{font-size:12px;color:var(--accent);background:rgba(59,130,246,.15);padding:2px 10px;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.dm-names{width:100%;min-height:180px;max-height:280px;padding:10px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:inherit;line-height:1.7;resize:vertical;box-sizing:border-box}
.dm-names:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.dm-side-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.dm-row-check{margin-bottom:8px;font-size:13px;color:var(--muted,var(--muted))}
.dm-row-check label{display:inline-flex;align-items:center;cursor:pointer;user-select:none}
.dm-row-check input{margin-right:6px;accent-color:var(--accent);cursor:pointer}
.dm-remain{margin-top:10px;padding:8px 12px;background:var(--hover,var(--hover));border-radius:8px;font-size:13px;color:var(--muted,var(--muted));text-align:center}
.dm-remain b{color:#dc2626;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:16px}
.dm-main{display:flex;flex-direction:column;gap:14px}
.dm-display{background:linear-gradient(135deg,#0f172a,#1e293b);border-radius:16px;padding:40px 20px;min-height:260px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--panel);box-shadow:0 6px 24px rgba(15,23,42,.3);position:relative;overflow:hidden}
.dm-display:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(59,130,246,.15),transparent 60%);pointer-events:none}
.dm-display-inner{position:relative;z-index:1;width:100%}
.dm-display-label{font-size:14px;color:#94a3b8;margin-bottom:16px;letter-spacing:2px}
.dm-display-name{font-size:56px;font-weight:700;line-height:1.2;word-break:break-word;font-family:'Kaiti SC','STKaiti',serif;text-shadow:0 0 30px rgba(59,130,246,.5);transition:.2s}
.dm-display-name.dm-name-multi{font-size:32px;line-height:1.5}
.dm-display-rolling .dm-display-name{color:#60a5fa;animation:dmShake .15s infinite}
@keyframes dmShake {
  0% { transform: translateX(0); }
  25% { transform: translateX(-2px); }
  75% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}
.dm-display-sub{font-size:14px;color:var(--line);margin-top:14px;min-height:22px}
.dm-actions{display:flex;gap:10px;flex-wrap:wrap}
.dm-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.dm-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.dm-btn:disabled{opacity:.5;cursor:not-allowed}
.dm-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.dm-btn-primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--panel)}
.dm-btn-danger:hover:not(:disabled){border-color:#dc2626;color:#dc2626}
.dm-btn-lg{padding:13px 28px;font-size:15px;font-weight:600;flex:1;justify-content:center}
.dm-btn-sm{padding:5px 12px;font-size:12px}
.dm-history-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:14px;max-height:340px;display:flex;flex-direction:column}
.dm-history-head{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;color:var(--fg,#111);padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line,var(--hover))}
.dm-history-head i{color:var(--accent);margin-right:6px}
.dm-history{overflow-y:auto;flex:1}
.dm-history-empty{text-align:center;padding:30px 0;color:var(--muted,var(--muted));font-size:13px}
.dm-history-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;font-size:13px;transition:.15s;border-bottom:1px dashed var(--line,var(--hover))}
.dm-history-item:last-child{border-bottom:none}
.dm-history-item:hover{background:var(--hover,var(--hover))}
.dm-history-idx{color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;flex-shrink:0;min-width:30px}
.dm-history-name{flex:1;color:#111;font-weight:500}
.dm-history-time{color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;flex-shrink:0}
.dm-tips{list-style:none;padding:0;margin:0}
.dm-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.dm-tips li:last-child{border-bottom:none}
.dm-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.dm-tips b{color:var(--fg,#111)}
@media (max-width:900px){
  .dm-wrap{grid-template-columns:1fr}
  .dm-display{padding:30px 16px;min-height:200px}
  .dm-display-name{font-size:40px}
  .dm-display-name.dm-name-multi{font-size:24px}
  .dm-btn-lg{padding:11px 18px;font-size:14px}
}

/* ===== 抽奖转盘 (cw-) ===== */
.cw-wrap{display:grid;grid-template-columns:480px 1fr;gap:18px;margin-bottom:18px;align-items:flex-start}
.cw-main{display:flex;flex-direction:column;gap:14px;align-items:center}
.cw-wheel-wrap{position:relative;width:440px;height:440px;max-width:100%;margin:20px auto 0;transform-origin:50% 50%}
.cw-canvas{width:100%;height:100%;display:block;border-radius:50%;box-shadow:0 10px 40px rgba(59,130,246,.25)}
/* 指针 SVG */
.cw-pointer{position:absolute;top:-38px;left:50%;transform:translateX(-50%);width:44px;height:56px;z-index:3;filter:drop-shadow(0 4px 8px rgba(220,38,38,.35));pointer-events:none}
.cw-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:22%;height:22%;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent));color:var(--panel);border:4px solid var(--panel);box-shadow:0 6px 20px rgba(59,130,246,.4);cursor:pointer;font-size:18px;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:.15s;z-index:2;font-family:inherit;line-height:1.1}
.cw-center:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.06);box-shadow:0 8px 28px rgba(59,130,246,.55)}
.cw-center:active:not(:disabled){transform:translate(-50%,-50%) scale(0.97)}
.cw-center:disabled{opacity:.7;cursor:not-allowed}
.cw-center-sub{font-size:11px;font-weight:400;opacity:.85;margin-top:2px}
.cw-result{width:100%;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:20px;text-align:center;min-height:100px;display:flex;align-items:center;justify-content:center}
.cw-result-empty{color:var(--muted,var(--muted));font-size:14px}
.cw-result-win{animation:cwPop .5s ease-out}
@keyframes cwPop {
  0% { transform: scale(0.5); opacity: 0; }
  60% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); }
}
.cw-result-label{font-size:14px;color:var(--muted,var(--muted));margin-bottom:8px}
.cw-result-prize{font-size:30px;font-weight:700;font-family:'Kaiti SC','STKaiti',serif}
/* 侧栏 */
.cw-side{display:flex;flex-direction:column;gap:14px}
.cw-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px}
.cw-card-head{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;color:var(--fg,#111);padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line,var(--hover))}
.cw-card-head i{color:var(--accent);margin-right:6px}
.cw-count{font-size:12px;color:var(--accent);background:rgba(59,130,246,.15);padding:2px 10px;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.cw-prizes{max-height:320px;overflow-y:auto;margin-bottom:10px}
.cw-prize-row{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;transition:.12s;margin-bottom:4px;background:var(--hover,var(--hover))}
.cw-prize-row:hover{background:rgba(59,130,246,.1)}
.cw-color{flex-shrink:0;width:28px;height:28px;border:1px solid var(--line,var(--line));border-radius:6px;cursor:pointer;padding:1px;background:var(--panel,var(--panel))}
.cw-prize-name{flex:1;min-width:0;padding:5px 8px;font-size:13px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--fg,#111);outline:none}
.cw-prize-name:focus{border-color:var(--accent);background:var(--panel,var(--panel))}
.cw-weight-wrap{display:flex;align-items:center;gap:3px;flex-shrink:0}
.cw-weight-label{font-size:10px;color:var(--muted,var(--muted))}
.cw-weight{width:38px;padding:4px 2px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:5px;background:var(--panel,var(--panel));color:var(--fg,#222);outline:none;text-align:center;font-family:ui-monospace,Menlo,Consolas,monospace}
.cw-weight:focus{border-color:var(--accent)}
.cw-del{flex-shrink:0;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-radius:5px;transition:.15s;font-size:12px}
.cw-del:hover{color:#dc2626;background:rgba(239,68,68,.15)}
.cw-add-row{display:flex;gap:6px;margin-bottom:8px}
.cw-input{flex:1;min-width:0;padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box}
.cw-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.cw-btn{padding:8px 14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.cw-btn:hover{border-color:var(--accent);color:var(--accent)}
.cw-btn-add{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.cw-btn-add:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.cw-btn-reset{justify-content:center}
.cw-btn-reset:hover{border-color:#dc2626;color:#dc2626}
.cw-row-check{margin-bottom:8px;font-size:13px;color:var(--muted,var(--muted))}
.cw-row-check label{display:inline-flex;align-items:center;cursor:pointer;user-select:none}
.cw-row-check input{margin-right:6px;accent-color:var(--accent);cursor:pointer}
.cw-history{max-height:200px;overflow-y:auto}
.cw-history-empty{text-align:center;padding:20px 0;color:var(--muted,var(--muted));font-size:13px}
.cw-history-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;font-size:13px;border-bottom:1px dashed var(--line,var(--hover));transition:.12s}
.cw-history-item:last-child{border-bottom:none}
.cw-history-item:hover{background:var(--hover,var(--hover))}
.cw-history-idx{color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;flex-shrink:0;min-width:26px}
.cw-history-name{flex:1;color:#111;font-weight:500}
.cw-history-time{color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;flex-shrink:0}
.cw-tips{list-style:none;padding:0;margin:0}
.cw-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.cw-tips li:last-child{border-bottom:none}
.cw-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.cw-tips b{color:var(--fg,#111)}
/* 响应式 */
@media (max-width:1100px){
  .cw-wrap{grid-template-columns:1fr}
  .cw-wheel-wrap{width:380px;height:380px;margin-left:auto;margin-right:auto}
}
@media (max-width:500px){
  .cw-wheel-wrap{width:100%;max-width:340px;height:auto;aspect-ratio:1/1}
  .cw-center{font-size:15px}
  .cw-center-sub{font-size:10px}
  .cw-pointer{width:36px;height:46px;top:-32px}
}
/* 抽奖转盘 - 指针修复：外层包裹，指针不随转盘旋转 */
.cw-wheel-outer{position:relative;width:440px;height:440px;max-width:100%;margin:20px auto 0}
.cw-wheel-outer .cw-wheel-wrap{margin:0;width:100%;height:100%;position:relative}
.cw-wheel-outer .cw-pointer{position:absolute;top:-38px;left:50%;transform:translateX(-50%);width:44px;height:56px;z-index:3;filter:drop-shadow(0 4px 8px rgba(220,38,38,.35));pointer-events:none}
@media (max-width:1100px){
  .cw-wheel-outer{width:380px;height:380px}
}
@media (max-width:500px){
  .cw-wheel-outer{width:100%;max-width:340px;height:auto;aspect-ratio:1/1}
  .cw-wheel-outer .cw-pointer{width:36px;height:46px;top:-32px}
}



/* ===== 汉字五笔编码查询 (wb-) ===== */
.wb-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.wb-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.wb-tab:hover{color:var(--accent)}
.wb-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.wb-panel{margin-bottom:18px}
.wb-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.wb-input-row{display:flex;align-items:center;gap:10px;position:relative;flex-wrap:wrap}
.wb-input-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.wb-input{flex:1;min-width:180px;padding:11px 14px 11px 38px;font-size:18px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:2px}
.wb-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.wb-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.wb-btn:hover{background:var(--accent);border-color:var(--accent)}
.wb-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.wb-hint{margin-top:10px;font-size:12px;color:var(--muted,var(--muted))}
.wb-hint a{display:inline-block;margin:0 4px 4px 0;padding:3px 12px;background:var(--hover,var(--hover));color:var(--muted,#555);border-radius:6px;text-decoration:none;font-family:'Kaiti SC','STKaiti',serif;font-size:16px;transition:.15s}
.wb-hint a:hover{background:var(--accent);color:var(--panel)}
.wb-loading{padding:36px 20px;text-align:center;color:var(--accent);font-size:15px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:18px}
.wb-loading i{margin-right:8px}
.wb-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.wb-error i{margin-right:6px}
/* 单字结果卡片 */
.wb-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:20px}
.wb-card-head{font-size:15px;font-weight:600;color:#10b981;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line,var(--hover));display:flex;align-items:center;gap:8px}
.wb-card-head code{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);background:transparent;padding:0}
.wb-card-main{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:center;margin-bottom:20px;padding-bottom:20px;border-bottom:1px dashed var(--line,var(--line))}
.wb-char-display{display:flex;align-items:center;justify-content:center}
.wb-char{display:flex;align-items:center;justify-content:center;width:160px;height:160px;background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.15));color:var(--accent);font-size:96px;font-weight:500;border-radius:16px;font-family:'Kaiti SC','STKaiti',serif;box-shadow:0 4px 16px rgba(59,130,246,.15)}
.wb-code-display{display:flex;flex-direction:column;gap:12px}
.wb-code-label{font-size:13px;color:var(--muted,var(--muted))}
.wb-code-wrap{display:flex;gap:8px;flex-wrap:wrap}
.wb-letter{display:flex;align-items:center;justify-content:center;min-width:52px;height:52px;padding:0 14px;background:linear-gradient(135deg,var(--accent),var(--accent));color:var(--panel);font-size:24px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;border-radius:10px;box-shadow:0 4px 12px rgba(59,130,246,.3)}
.wb-code-tools{margin-top:8px}
.wb-mini-copy{padding:5px 12px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:transparent;color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.wb-mini-copy:hover{border-color:var(--accent);color:var(--accent)}
/* 信息网格 */
.wb-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:14px}
.wb-info-item{padding:10px 14px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:8px}
.wb-info-key{font-size:12px;color:var(--muted,var(--muted));margin-bottom:4px}
.wb-info-val{font-size:15px;color:var(--fg,#111);font-weight:600}
.wb-tip{margin-top:14px;padding:12px 14px;background:rgba(59,130,246,.1);color:#3b82f6;border:1px solid rgba(59,130,246,.3);border-radius:8px;font-size:13px;line-height:1.7}
.wb-tip i{color:var(--accent);margin-right:6px}
/* 批量 */
.wb-batch-row{margin-bottom:12px}
.wb-batch-ta{width:100%;min-height:120px;padding:12px 14px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:inherit;line-height:1.7;resize:vertical;box-sizing:border-box}
.wb-batch-ta:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.wb-batch-actions{display:flex;gap:10px;flex-wrap:wrap}
.wb-batch-table-wrap{overflow-x:auto}
.wb-batch-table{width:100%;border-collapse:collapse;font-size:13px}
.wb-batch-table th,.wb-batch-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.wb-batch-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:12px;white-space:nowrap}
.wb-batch-table tr:last-child td{border-bottom:none}
.wb-batch-table tr:hover td{background:var(--hover,var(--hover))}
.wb-b-char{font-family:'Kaiti SC','STKaiti',serif;font-size:20px;color:var(--accent);font-weight:600}
.wb-b-code{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);background:rgba(59,130,246,.1);padding:2px 10px;border-radius:5px;font-weight:600;font-size:13px}
/* 反查结果 */
.wb-chars-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px}
.wb-char-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px 6px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:10px;text-decoration:none;transition:.15s;cursor:pointer}
.wb-char-item:hover{background:rgba(59,130,246,.1);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px rgba(59,130,246,.15)}
.wb-char-big{font-family:'Kaiti SC','STKaiti',serif;font-size:36px;color:var(--accent);line-height:1}
.wb-char-py{font-size:11px;color:var(--muted,var(--muted));margin-top:6px;font-family:ui-monospace,Menlo,Consolas,monospace}
/* 说明 */
.wb-info{list-style:none;padding:0;margin:0}
.wb-info li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.wb-info li:last-child{border-bottom:none}
.wb-info li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.wb-info b{color:var(--fg,#111)}
.wb-info code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .wb-tab{padding:8px 12px;font-size:13px}
  .wb-input-row{flex-direction:column;align-items:stretch}
  .wb-input-row > i{top:14px}
  .wb-btn{width:100%;justify-content:center}
  .wb-card-main{grid-template-columns:1fr;gap:16px}
  .wb-char{width:120px;height:120px;font-size:72px}
  .wb-letter{min-width:44px;height:44px;font-size:20px;padding:0 10px}
  .wb-batch-table{font-size:12px}
  .wb-batch-table th,.wb-batch-table td{padding:6px 8px}
}

/* ===== 康熙笔画查询 (kx-) ===== */
.kx-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.kx-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.kx-tab:hover{color:var(--accent)}
.kx-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.kx-panel{margin-bottom:18px}
.kx-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.kx-input-row{display:flex;align-items:center;gap:10px;position:relative;flex-wrap:wrap}
.kx-input-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.kx-input{flex:1;min-width:180px;padding:11px 14px 11px 38px;font-size:18px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:2px}
.kx-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.kx-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.kx-btn:hover{background:var(--accent);border-color:var(--accent)}
.kx-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.kx-hint{margin-top:10px;font-size:12px;color:var(--muted,var(--muted))}
.kx-hint a{display:inline-block;margin:0 4px 4px 0;padding:3px 12px;background:var(--hover,var(--hover));color:var(--muted,#555);border-radius:6px;text-decoration:none;font-family:'Kaiti SC','STKaiti',serif;font-size:16px;transition:.15s}
.kx-hint a:hover{background:var(--accent);color:var(--panel)}
.kx-loading{padding:36px 20px;text-align:center;color:var(--accent);font-size:15px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:18px}
.kx-loading i{margin-right:8px}
.kx-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.kx-error i{margin-right:6px}
/* 单字卡片 */
.kx-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:20px}
.kx-card-head{font-size:15px;font-weight:600;color:#10b981;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line,var(--hover));display:flex;align-items:center;gap:8px}
.kx-main{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:center;margin-bottom:20px;padding-bottom:20px;border-bottom:1px dashed var(--line,var(--line))}
.kx-char-box{text-align:center}
.kx-char{display:flex;align-items:center;justify-content:center;width:160px;height:160px;margin:0 auto;background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.15));color:var(--accent);font-size:96px;font-weight:500;border-radius:16px;font-family:'Kaiti SC','STKaiti',serif;box-shadow:0 4px 16px rgba(59,130,246,.15)}
.kx-pinyin{margin-top:10px;font-size:16px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:1px}
.kx-data{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.kx-data-item{padding:16px 12px;border-radius:12px;text-align:center;border:2px solid transparent}
.kx-data-kangxi{background:linear-gradient(135deg,rgba(239,68,68,.15),rgba(239,68,68,.3));border-color:rgba(239,68,68,.4);color:#ef4444}
.kx-data-simple{background:linear-gradient(135deg,rgba(59,130,246,.15),rgba(59,130,246,.3));border-color:rgba(59,130,246,.4);color:#3b82f6}
.kx-data-label{font-size:12px;margin-bottom:8px;opacity:.8;font-weight:500}
.kx-data-num{font-size:38px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1;letter-spacing:-1px}
.kx-data-sub{font-size:11px;margin-top:8px;opacity:.75}
/* 五行色 */
.kx-wx-jin{background:linear-gradient(135deg,rgba(245,158,11,.15),rgba(245,158,11,.3));border-color:#fcd34d;color:#f59e0b}
.kx-wx-mu{background:linear-gradient(135deg,rgba(16,185,129,.15),rgba(16,185,129,.3));border-color:rgba(16,185,129,.4);color:#10b981}
.kx-wx-shui{background:linear-gradient(135deg,rgba(59,130,246,.15),rgba(59,130,246,.3));border-color:rgba(59,130,246,.4);color:#3b82f6}
.kx-wx-huo{background:linear-gradient(135deg,rgba(239,68,68,.15),rgba(239,68,68,.3));border-color:rgba(239,68,68,.4);color:#ef4444}
.kx-wx-tu{background:linear-gradient(135deg,rgba(245,158,11,.15),rgba(245,158,11,.3));border-color:#f59e0b;color:#f59e0b}
.kx-wx-default{background:var(--hover,var(--hover));border-color:var(--line);color:var(--muted,var(--muted))}
/* 信息网格 */
.kx-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:14px}
.kx-info-item{padding:10px 14px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:8px}
.kx-info-key{font-size:12px;color:var(--muted,var(--muted));margin-bottom:4px}
.kx-info-val{font-size:14px;color:var(--fg,#111);font-weight:600}
.kx-info-val code{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent)}
.kx-tip{margin-top:14px;padding:12px 14px;background:rgba(59,130,246,.1);color:#3b82f6;border:1px solid rgba(59,130,246,.3);border-radius:8px;font-size:13px;line-height:1.7}
.kx-tip i{color:var(--accent);margin-right:6px}
.kx-tip b{font-weight:700;color:#3b82f6}
/* 批量 */
.kx-batch-row{margin-bottom:12px}
.kx-batch-ta{width:100%;min-height:100px;padding:12px 14px;font-size:16px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:'Kaiti SC','STKaiti',serif;line-height:1.7;resize:vertical;box-sizing:border-box;letter-spacing:2px}
.kx-batch-ta:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.kx-batch-actions{display:flex;gap:10px;flex-wrap:wrap}
/* 批量统计 */
.kx-batch-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.kx-bs-item{padding:14px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:10px;text-align:center}
.kx-bs-item.kx-bs-kangxi{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.4)}
.kx-bs-lbl{font-size:12px;color:var(--muted,var(--muted));margin-bottom:6px}
.kx-bs-item.kx-bs-kangxi .kx-bs-lbl{color:#ef4444}
.kx-bs-num{font-size:28px;font-weight:700;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1}
.kx-bs-item.kx-bs-kangxi .kx-bs-num{color:#dc2626}
/* 批量表格 */
.kx-batch-table-wrap{overflow-x:auto;margin-bottom:14px}
.kx-batch-table{width:100%;border-collapse:collapse;font-size:13px}
.kx-batch-table th,.kx-batch-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.kx-batch-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:12px;white-space:nowrap}
.kx-batch-table tr:last-child td{border-bottom:none}
.kx-batch-table tr:hover td{background:var(--hover,var(--hover))}
.kx-b-char{font-family:'Kaiti SC','STKaiti',serif;font-size:22px;color:var(--accent);font-weight:600}
.kx-b-kangxi{color:#dc2626;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px}
/* 五行标签 */
.kx-wx-tag{display:inline-block;padding:3px 12px;font-size:12px;border-radius:6px;font-weight:600;border:1px solid}
.kx-wx-summary{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px;background:var(--hover,var(--hover));border-radius:8px}
.kx-wx-summary-label{font-size:13px;color:var(--muted,var(--muted));flex-shrink:0}
.kx-wx-tags{display:flex;flex-wrap:wrap;gap:8px}
/* 说明 */
.kx-info{list-style:none;padding:0;margin:0}
.kx-info li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.kx-info li:last-child{border-bottom:none}
.kx-info li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.kx-info b{color:var(--fg,#111)}
@media (max-width:640px){
  .kx-tab{padding:8px 12px;font-size:13px}
  .kx-input-row{flex-direction:column;align-items:stretch}
  .kx-input-row > i{top:14px}
  .kx-btn{width:100%;justify-content:center}
  .kx-main{grid-template-columns:1fr;gap:16px}
  .kx-char{width:120px;height:120px;font-size:72px}
  .kx-data-num{font-size:30px}
  .kx-batch-summary{grid-template-columns:1fr}
  .kx-batch-table{font-size:12px}
  .kx-batch-table th,.kx-batch-table td{padding:6px 8px}
  .kx-b-char{font-size:18px}
}

/* ===== 文本排序工具 (px-) ===== */
.px-toolbar{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;margin-bottom:14px}
.px-toolbar-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.px-toolbar-row:last-of-type{margin-bottom:0}
.px-toolbar-actions{border-top:1px dashed var(--line,var(--line));padding-top:12px;margin-top:4px}
.px-label{width:80px;flex-shrink:0;font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.px-select{flex:1;min-width:180px;padding:9px 12px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer}
.px-select:focus{border-color:var(--accent)}
.px-checks{display:flex;gap:14px;flex-wrap:wrap;flex:1}
.px-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.px-check input{cursor:pointer;accent-color:var(--accent)}
.px-inline{display:flex;gap:8px;flex:1;flex-wrap:wrap}
.px-input-sm{flex:1;min-width:140px;padding:9px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.px-input-sm:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.px-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.px-btn:hover{border-color:var(--accent);color:var(--accent)}
.px-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.px-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.px-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.px-status{margin-bottom:12px;min-height:0}
.px-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.px-st i{margin-right:6px}
.px-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.px-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.px-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.px-st-info{background:rgba(59,130,246,.15);color:var(--accent);border:1px solid rgba(59,130,246,.3)}
.px-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.px-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:420px}
.px-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.px-panel-head i{color:var(--accent);margin-right:6px}
.px-len{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.px-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.7;resize:none;background:var(--bg,var(--panel));color:var(--fg,#222);box-sizing:border-box;white-space:pre;overflow-wrap:normal;overflow-x:auto}
.px-textarea[readonly]{background:var(--hover,var(--hover))}
.px-tips{list-style:none;padding:0;margin:0}
.px-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.px-tips li:last-child{border-bottom:none}
.px-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.px-tips b{color:var(--fg,#111)}
.px-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:820px){
  .px-panels{grid-template-columns:1fr}
  .px-panel{min-height:280px}
}
@media (max-width:640px){
  .px-label{width:100%}
  .px-toolbar-row{flex-direction:column;align-items:stretch}
  .px-btn{flex:1;justify-content:center}
  .px-checks{width:100%}
  .px-input-sm{min-width:auto;width:100%}
}
/* ===== 行号添加工具 (hn-) ===== */
.hn-toolbar{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;margin-bottom:14px}
.hn-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.hn-row:last-of-type{margin-bottom:0}
.hn-label{font-size:13px;color:var(--muted,var(--muted));white-space:nowrap;font-weight:500}
.hn-input{width:90px;padding:8px 12px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;text-align:center}
.hn-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.hn-input-lg{flex:1;min-width:120px;padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.hn-input-lg:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.hn-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none;padding-right:8px}
.hn-check input{cursor:pointer;accent-color:var(--accent)}
.hn-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line,var(--line));padding-top:12px;margin-top:8px}
.hn-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.hn-btn:hover{border-color:var(--accent);color:var(--accent)}
.hn-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.hn-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.hn-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.hn-status{margin-bottom:12px;min-height:0}
.hn-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.hn-st i{margin-right:6px}
.hn-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.hn-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.hn-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.hn-st-info{background:rgba(59,130,246,.15);color:var(--accent);border:1px solid rgba(59,130,246,.3)}
.hn-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.hn-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:420px}
.hn-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.hn-panel-head i{color:var(--accent);margin-right:6px}
.hn-len{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.hn-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.7;resize:none;background:var(--bg,var(--panel));color:var(--fg,#222);box-sizing:border-box;white-space:pre;overflow-wrap:normal;overflow-x:auto}
.hn-textarea[readonly]{background:var(--hover,var(--hover))}
.hn-tips{list-style:none;padding:0;margin:0}
.hn-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.hn-tips li:last-child{border-bottom:none}
.hn-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.hn-tips b{color:var(--fg,#111)}
.hn-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:820px){
  .hn-panels{grid-template-columns:1fr}
  .hn-panel{min-height:280px}
}
@media (max-width:640px){
  .hn-row{flex-direction:column;align-items:stretch}
  .hn-input{width:100%}
  .hn-btn{flex:1;justify-content:center}
}
/* ===== 阿拉伯数字转罗马数字 (rm-) ===== */
.rm-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.rm-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.rm-tab:hover{color:var(--accent)}
.rm-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.rm-panel{margin-bottom:18px}
.rm-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.rm-input-row{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.rm-input{flex:1;min-width:200px;padding:12px 16px;font-size:20px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:2px}
.rm-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.rm-input-roman{font-family:'Times New Roman',Georgia,serif;font-size:24px;letter-spacing:4px}
.rm-btn{padding:12px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.rm-btn:hover{background:var(--accent);border-color:var(--accent)}
.rm-opts{display:flex;gap:16px;margin-bottom:12px;flex-wrap:wrap}
.rm-radio,.rm-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.rm-radio input,.rm-check input{cursor:pointer;accent-color:var(--accent)}
.rm-hint{font-size:12px;color:var(--muted,var(--muted))}
.rm-hint a{display:inline-block;margin:0 4px 4px 0;padding:3px 12px;background:var(--hover,var(--hover));color:var(--muted,#555);border-radius:6px;text-decoration:none;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;transition:.15s}
.rm-hint a:hover{background:var(--accent);color:var(--panel)}
/* 结果卡片 */
.rm-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:20px}
.rm-card-head{font-size:15px;font-weight:600;color:#10b981;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line,var(--hover));display:flex;align-items:center;gap:8px}
.rm-main{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;margin-bottom:20px;padding:20px;background:linear-gradient(135deg,rgba(59,130,246,.1),var(--hover));border-radius:12px}
.rm-from,.rm-to{text-align:center}
.rm-from-label,.rm-to-label{font-size:12px;color:var(--muted,var(--muted));margin-bottom:10px}
.rm-from-num,.rm-to-num{font-size:44px;font-weight:700;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1;letter-spacing:-1px}
.rm-to-roman{font-size:36px;font-weight:700;color:#dc2626;font-family:'Times New Roman',Georgia,serif;line-height:1.1;letter-spacing:4px;word-break:break-all}
.rm-from-roman{font-size:36px;font-weight:700;color:#dc2626;font-family:'Times New Roman',Georgia,serif;line-height:1.1;letter-spacing:4px;word-break:break-all}
.rm-arrow{font-size:28px;color:rgba(59,130,246,.4)}
.rm-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:14px}
.rm-info-item{padding:10px 14px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:8px}
.rm-key{font-size:12px;color:var(--muted,var(--muted));margin-bottom:4px}
.rm-val{font-size:14px;color:var(--fg,#111);font-weight:600;word-break:break-all}
.rm-val code{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);background:transparent;padding:0}
.rm-copy{padding:9px 18px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.rm-copy:hover{border-color:var(--accent);color:var(--accent)}
.rm-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:14px}
.rm-error i{margin-right:6px}
/* 对照表 */
.rm-table-wrap{overflow-x:auto}
.rm-table{width:100%;border-collapse:collapse;font-size:14px}
.rm-table th,.rm-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.rm-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:13px}
.rm-table tr:last-child td{border-bottom:none}
.rm-table tr:hover td{background:var(--hover,var(--hover))}
.rm-table code{font-family:'Times New Roman',Georgia,serif;color:#dc2626;font-weight:700;font-size:16px;letter-spacing:2px;background:transparent;padding:0}
.rm-tips{list-style:none;padding:0;margin:0}
.rm-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.rm-tips li:last-child{border-bottom:none}
.rm-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.rm-tips b{color:var(--fg,#111)}
.rm-tips code{font-family:'Times New Roman',Georgia,serif;background:var(--hover,var(--hover));padding:2px 8px;border-radius:4px;font-size:13px;color:#dc2626;font-weight:700;letter-spacing:1px}
@media (max-width:640px){
  .rm-tab{padding:8px 12px;font-size:13px}
  .rm-input-row{flex-direction:column;align-items:stretch}
  .rm-btn{width:100%;justify-content:center}
  .rm-main{grid-template-columns:1fr;gap:12px;padding:16px}
  .rm-arrow{transform:rotate(90deg)}
  .rm-from-num,.rm-to-num{font-size:34px}
  .rm-to-roman,.rm-from-roman{font-size:26px;letter-spacing:2px}
}
/* ===== 凯撒密码在线工具 (ks-) ===== */
.ks-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.ks-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.ks-tab:hover{color:var(--accent)}
.ks-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.ks-panel{margin-bottom:18px}
.ks-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.ks-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.ks-row:last-of-type{margin-bottom:0}
.ks-row-checks{gap:18px}
.ks-label{font-size:14px;color:var(--muted,var(--muted));white-space:nowrap;font-weight:500}
.ks-range{flex:1;min-width:180px;max-width:400px;accent-color:var(--accent);cursor:pointer}
.ks-shift-val{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:36px;padding:0 12px;background:var(--accent);color:var(--panel);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;border-radius:8px;font-size:16px}
.ks-shift-hint{font-size:13px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.ks-shift-hint b{color:#dc2626;font-size:16px}
.ks-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.ks-check input{cursor:pointer;accent-color:var(--accent)}
.ks-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.ks-btn{padding:10px 20px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ks-btn:hover{border-color:var(--accent);color:var(--accent)}
.ks-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.ks-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.ks-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ks-status{margin-top:10px;min-height:0}
.ks-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ks-st i{margin-right:6px}
.ks-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ks-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ks-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
/* 双栏 */
.ks-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.ks-panel-inner{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:320px}
.ks-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.ks-len{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.ks-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:14px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.7;resize:none;background:var(--bg,var(--panel));color:var(--fg,#222);box-sizing:border-box}
.ks-textarea[readonly]{background:var(--hover,var(--hover))}
/* ROT13 说明 */
.ks-rot-info{padding:14px 16px;background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.3);border-radius:8px;font-size:14px;color:#3b82f6;line-height:1.7;margin-bottom:14px}
.ks-rot-info i{color:var(--accent);margin-right:6px}
.ks-rot-info b{font-weight:700}
.ks-rot-note{font-size:12px;color:#3b82f6;opacity:.8}
/* 暴力破解 */
.ks-brute-hint{padding:14px 16px;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.3);border-radius:8px;font-size:14px;color:#f59e0b;line-height:1.7;margin-bottom:14px}
.ks-brute-hint i{color:#f59e0b;margin-right:6px}
.ks-input{flex:1;min-width:200px;padding:11px 14px;font-size:15px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.ks-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.ks-brute-results{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;margin-bottom:18px}
.ks-brute-empty{padding:40px 20px;text-align:center;color:var(--muted,var(--muted));font-size:14px}
.ks-brute-head{padding:12px 16px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.ks-brute-head i{color:var(--accent);margin-right:6px}
.ks-brute-item{display:grid;grid-template-columns:90px 1fr 40px;gap:10px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line,var(--hover));transition:.15s}
.ks-brute-item:last-child{border-bottom:none}
.ks-brute-item:hover{background:var(--hover,var(--hover))}
.ks-brute-origin{background:rgba(59,130,246,.1)}
.ks-brute-origin .ks-brute-shift{color:var(--accent);font-weight:700}
.ks-brute-shift{font-size:12px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;white-space:nowrap}
.ks-brute-text{font-size:14px;word-break:break-word}
.ks-brute-text code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:3px 10px;border-radius:5px;color:var(--fg,#111);font-size:13px}
.ks-brute-copy{padding:4px 8px;font-size:11px;border:1px solid var(--line,var(--line));border-radius:5px;background:transparent;color:var(--muted,#555);cursor:pointer;transition:.15s}
.ks-brute-copy:hover{border-color:var(--accent);color:var(--accent)}
/* 说明 */
.ks-tips{list-style:none;padding:0;margin:0}
.ks-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.ks-tips li:last-child{border-bottom:none}
.ks-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ks-tips b{color:var(--fg,#111)}
@media (max-width:820px){
  .ks-panels{grid-template-columns:1fr}
  .ks-panel-inner{min-height:240px}
}
@media (max-width:640px){
  .ks-tab{padding:8px 14px;font-size:13px}
  .ks-row{flex-direction:column;align-items:stretch}
  .ks-range{max-width:none}
  .ks-btn{flex:1;justify-content:center}
  .ks-brute-item{grid-template-columns:70px 1fr 36px;padding:8px 12px}
}
/* ===== GBK和UTF-8互转 (gb-) ===== */
.gb-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.gb-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.gb-tab:hover{color:var(--accent)}
.gb-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.gb-panel{margin-bottom:18px}
.gb-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.gb-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.gb-row:last-of-type{margin-bottom:0}
.gb-row-opts{align-items:center;gap:18px}
.gb-label{width:120px;flex-shrink:0;font-size:14px;color:var(--muted,var(--muted));font-weight:500;padding-top:8px}
.gb-input{flex:1;min-width:200px;padding:11px 14px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box;line-height:1.7}
.gb-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.gb-input-ta{min-height:90px;resize:vertical}
.gb-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.gb-check input{cursor:pointer;accent-color:var(--accent)}
.gb-radios{display:flex;gap:16px;flex:1}
.gb-radio{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.gb-radio input{cursor:pointer;accent-color:var(--accent)}
.gb-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.gb-btn{padding:10px 20px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.gb-btn:hover{border-color:var(--accent);color:var(--accent)}
.gb-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.gb-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.gb-status{margin-top:12px;min-height:0}
.gb-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.gb-st i{margin-right:6px}
.gb-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.gb-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
/* 结果卡片 */
.gb-results{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.gb-result-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px 18px;border-left:4px solid var(--accent)}
.gb-result-card.gb-color-blue{border-left-color:var(--accent)}
.gb-result-card.gb-color-green{border-left-color:#10b981}
.gb-result-card.gb-color-orange{border-left-color:#f59e0b}
.gb-result-card.gb-color-purple{border-left-color:#8b5cf6}
.gb-result-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.gb-result-name{font-size:15px;font-weight:700;color:var(--fg,#111);flex-shrink:0}
.gb-result-count{font-size:12px;color:var(--accent);background:rgba(59,130,246,.15);padding:2px 10px;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;flex-shrink:0}
.gb-result-desc{font-size:12px;color:var(--muted,var(--muted));margin-bottom:8px}
.gb-copy-btn{margin-left:auto;padding:4px 12px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:transparent;color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.gb-copy-btn:hover{border-color:var(--accent);color:var(--accent)}
.gb-result-hex{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;color:var(--fg,#111);line-height:1.9;word-break:break-all;background:var(--hover,var(--hover));padding:12px 14px;border-radius:8px}
/* 解码结果 */
.gb-decode-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:18px}
.gb-decode-text{font-size:16px;color:var(--fg,#111);line-height:1.8;word-break:break-word;background:var(--hover,var(--hover));padding:14px;border-radius:8px;margin-bottom:14px}
.gb-alt-wrap{border-top:1px dashed var(--line,var(--line));padding-top:14px}
.gb-alt-head{font-size:13px;color:var(--muted,var(--muted));margin-bottom:10px;font-weight:600}
.gb-alt-item{padding:10px 12px;background:var(--hover);border-radius:8px;margin-bottom:8px}
.gb-alt-name{font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;margin-bottom:4px;font-weight:600}
.gb-alt-text{font-size:14px;color:var(--fg,#111);line-height:1.7;word-break:break-word}
/* 编码说明表 */
.gb-table-wrap{overflow-x:auto}
.gb-table{width:100%;border-collapse:collapse;font-size:14px;min-width:600px}
.gb-table th,.gb-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.gb-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:13px}
.gb-table tr:last-child td{border-bottom:none}
.gb-table tr:hover td{background:var(--hover,var(--hover))}
.gb-table code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:3px 10px;border-radius:5px;color:var(--accent);font-size:13px;font-weight:600}
.gb-tips{list-style:none;padding:0;margin:0}
.gb-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.gb-tips li:last-child{border-bottom:none}
.gb-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.gb-tips b{color:var(--fg,#111)}
.gb-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .gb-tab{padding:8px 14px;font-size:13px}
  .gb-label{width:100%;padding-top:0}
  .gb-input{min-width:auto;width:100%}
  .gb-row{flex-direction:column;align-items:stretch}
  .gb-btn{flex:1;justify-content:center}
  .gb-radios{flex-wrap:wrap}
}
/* ===== Unicode码点查询 (un-) ===== */
.un-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line));flex-wrap:wrap}
.un-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.un-tab:hover{color:var(--accent)}
.un-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.un-panel{margin-bottom:18px}
.un-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.un-input-row{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.un-input{flex:1;min-width:200px;padding:11px 16px;font-size:20px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.un-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.un-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.un-btn:hover{background:var(--accent);border-color:var(--accent)}
.un-hint{font-size:12px;color:var(--muted,var(--muted));line-height:1.8}
.un-hint a{display:inline-block;margin:0 4px 4px 0;padding:3px 12px;background:var(--hover,var(--hover));color:var(--muted,#555);border-radius:6px;text-decoration:none;font-size:16px;transition:.15s;font-family:ui-monospace,Menlo,Consolas,monospace}
.un-hint a:hover{background:var(--accent);color:var(--panel)}
.un-hint code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:2px 8px;border-radius:4px;color:var(--accent);font-size:13px}
/* 卡片 */
.un-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px;border-left:4px solid var(--accent)}
.un-card-head{display:flex;align-items:center;gap:14px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px dashed var(--line,var(--line));flex-wrap:wrap}
.un-card-char{display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.15));border-radius:14px;color:var(--accent);font-size:44px;font-family:ui-monospace,Menlo,Consolas,monospace;flex-shrink:0}
.un-card-char-big{font-size:56px;width:100px;height:100px}
.un-card-cp{font-size:22px;font-weight:700;color:#dc2626;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:1px}
.un-card-name{font-size:13px;color:var(--muted,var(--muted))}
.un-info-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px;margin-bottom:14px}
.un-info-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;background:var(--hover,var(--hover));border-radius:6px}
.un-info-key{font-size:12px;color:var(--muted,var(--muted));flex-shrink:0}
.un-info-val{font-size:13px;color:var(--fg,#111);word-break:break-all;text-align:right}
.un-info-val code{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);background:transparent;padding:0;font-weight:600}
.un-info-val .un-big{font-size:20px;color:var(--accent)}
.un-card-tools{display:flex;gap:8px;flex-wrap:wrap;padding-top:12px;border-top:1px dashed var(--line,var(--line))}
.un-mini{padding:6px 14px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:transparent;color:var(--muted,#555);cursor:pointer;transition:.15s}
.un-mini:hover{border-color:var(--accent);color:var(--accent)}
.un-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.un-error i{margin-right:6px}
/* 常用码点表 */
.un-table-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;padding:12px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px}
.un-table-tab{padding:7px 16px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap}
.un-table-tab:hover{border-color:var(--accent);color:var(--accent)}
.un-table-tab.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.un-table-wrap{margin-bottom:18px}
.un-char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.un-char-item{position:relative;padding:12px 10px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:10px;text-align:center;transition:.15s;cursor:pointer}
.un-char-item:hover{border-color:var(--accent);box-shadow:0 4px 12px rgba(59,130,246,.12);transform:translateY(-2px)}
.un-char-big{font-size:40px;line-height:1.1;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;margin-bottom:6px}
.un-char-name{font-size:12px;color:var(--muted,var(--muted));margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.un-char-cp{font-size:11px;color:#dc2626;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.un-char-copy{position:absolute;top:6px;right:6px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:transparent;color:var(--muted,var(--muted));font-size:11px;opacity:0;transition:.15s}
.un-char-item:hover .un-char-copy{opacity:1;background:rgba(59,130,246,.1);color:var(--accent)}
.un-info{list-style:none;padding:0;margin:0}
.un-info li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.un-info li:last-child{border-bottom:none}
.un-info li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.un-info b{color:var(--fg,#111)}
.un-info code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .un-tab{padding:8px 14px;font-size:13px}
  .un-input-row{flex-direction:column;align-items:stretch}
  .un-btn{width:100%;justify-content:center}
  .un-card-char{width:60px;height:60px;font-size:34px}
  .un-card-char-big{width:72px;height:72px;font-size:42px}
  .un-card-cp{font-size:18px}
  .un-char-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}
  .un-char-big{font-size:30px}
}
/* ===== CSS阴影生成器 (sh-) ===== */
.sh-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.sh-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.sh-tab:hover{color:var(--accent)}
.sh-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.sh-wrap{display:grid;grid-template-columns:380px 1fr;gap:16px;margin-bottom:18px}
.sh-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px}
.sh-row{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.sh-row:last-of-type{margin-bottom:0}
.sh-row > label:first-child{width:80px;flex-shrink:0;font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.sh-range{flex:1;min-width:100px;accent-color:var(--accent);cursor:pointer}
.sh-range-sm{max-width:100px}
.sh-val{display:inline-block;min-width:52px;text-align:right;font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.sh-color{width:46px;height:36px;border:1px solid var(--line,var(--line));border-radius:8px;cursor:pointer;padding:2px;background:var(--panel,var(--panel))}
.sh-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.sh-check input{accent-color:var(--accent);cursor:pointer}
.sh-presets{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line,var(--line))}
.sh-presets-title{font-size:12px;color:var(--muted,var(--muted));margin-bottom:8px;font-weight:500}
.sh-presets-list{display:flex;flex-wrap:wrap;gap:6px}
.sh-preset{padding:6px 12px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:16px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap}
.sh-preset:hover{border-color:var(--accent);color:var(--accent);background:rgba(59,130,246,.1)}
.sh-main{display:flex;flex-direction:column;gap:14px}
.sh-preview-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:40px 20px;min-height:300px;display:flex;align-items:center;justify-content:center;background-image:linear-gradient(45deg,var(--hover) 25%,transparent 25%),linear-gradient(-45deg,var(--hover) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--hover) 75%),linear-gradient(-45deg,transparent 75%,var(--hover) 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px}
.sh-preview-box{width:180px;height:180px;background:linear-gradient(135deg,var(--panel),var(--hover));border-radius:16px;display:flex;align-items:center;justify-content:center;transition:box-shadow .15s,text-shadow .15s}
.sh-preview-text{font-size:28px;font-weight:700;color:var(--accent);transition:text-shadow .15s}
.sh-code-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden}
.sh-code-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.sh-code-head i{color:var(--accent);margin-right:6px}
.sh-copy-btn{padding:6px 14px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.sh-copy-btn:hover{border-color:var(--accent);color:var(--accent)}
.sh-code{margin:0;padding:16px;background:#0f172a;color:var(--line);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;line-height:1.7;white-space:pre-wrap;word-break:break-all;min-height:80px}
.sh-tips{list-style:none;padding:0;margin:0}
.sh-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.sh-tips li:last-child{border-bottom:none}
.sh-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.sh-tips b{color:var(--fg,#111)}
.sh-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:900px){
  .sh-wrap{grid-template-columns:1fr}
}
@media (max-width:640px){
  .sh-tab{padding:8px 14px;font-size:13px}
  .sh-row > label:first-child{width:100%}
  .sh-preview-box{width:140px;height:140px}
  .sh-preview-text{font-size:22px}
}
/* ===== CSS渐变生成器 (gr-) ===== */
.gr-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.gr-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.gr-tab:hover{color:var(--accent)}
.gr-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.gr-wrap{display:grid;grid-template-columns:380px 1fr;gap:16px;margin-bottom:18px}
.gr-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px}
.gr-row{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.gr-row > label:first-child{width:80px;flex-shrink:0;font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.gr-range{flex:1;min-width:100px;accent-color:var(--accent);cursor:pointer}
.gr-val{display:inline-block;min-width:52px;text-align:right;font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.gr-select{flex:1;padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer}
.gr-select:focus{border-color:var(--accent)}
.gr-angle-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:14px}
.gr-angle-btn{padding:6px 8px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;font-family:ui-monospace,Menlo,Consolas,monospace}
.gr-angle-btn:hover{border-color:var(--accent);color:var(--accent)}
.gr-angle-btn.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
/* 色标 */
.gr-colors-section{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line,var(--line))}
.gr-colors-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.gr-add-color{padding:5px 12px;font-size:12px;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:var(--panel);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.gr-add-color:hover{background:var(--accent);border-color:var(--accent)}
.gr-colors-list{display:flex;flex-direction:column;gap:8px}
.gr-color-row{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--hover,var(--hover));border-radius:8px}
.gr-color-input{width:40px;height:32px;border:1px solid var(--line,var(--line));border-radius:6px;cursor:pointer;padding:2px;background:var(--panel,var(--panel));flex-shrink:0}
.gr-color-pos{flex:1;min-width:80px;accent-color:var(--accent);cursor:pointer}
.gr-color-val{font-size:12px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;min-width:44px;text-align:right;flex-shrink:0}
.gr-color-del{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-radius:5px;transition:.15s;font-size:12px;flex-shrink:0}
.gr-color-del:hover:not(:disabled){color:#dc2626;background:rgba(239,68,68,.15)}
.gr-color-del:disabled{opacity:.3;cursor:not-allowed}
/* 预设网格 */
.gr-presets-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.gr-preset-card{padding:0;border:2px solid var(--line,var(--line));border-radius:10px;background:var(--panel,var(--panel));cursor:pointer;transition:.15s;overflow:hidden;text-align:center}
.gr-preset-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 14px rgba(59,130,246,.2)}
.gr-preset-preview{width:100%;height:60px}
.gr-preset-name{padding:6px;font-size:12px;color:var(--muted,var(--muted))}
/* 右侧 */
.gr-main{display:flex;flex-direction:column;gap:14px}
.gr-preview-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:12px;position:relative}
.gr-preview{width:100%;height:340px;border-radius:10px;background-image:linear-gradient(135deg, var(--accent) 0%, #8b5cf6 100%);transition:background-image .2s}
.gr-preview-label{position:absolute;top:20px;left:20px;padding:4px 12px;background:rgba(255,255,255,.85);border-radius:20px;font-size:12px;color:var(--accent);font-weight:600;backdrop-filter:blur(8px)}
.gr-code-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden}
.gr-code-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.gr-code-head i{color:var(--accent);margin-right:6px}
.gr-copy-btn{padding:6px 14px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.gr-copy-btn:hover{border-color:var(--accent);color:var(--accent)}
.gr-code{margin:0;padding:16px;background:#0f172a;color:var(--line);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-all;min-height:80px}
.gr-tips{list-style:none;padding:0;margin:0}
.gr-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.gr-tips li:last-child{border-bottom:none}
.gr-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.gr-tips b{color:var(--fg,#111)}
.gr-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:900px){
  .gr-wrap{grid-template-columns:1fr}
  .gr-preview{height:240px}
}
@media (max-width:640px){
  .gr-tab{padding:8px 14px;font-size:13px}
  .gr-row > label:first-child{width:100%}
  .gr-angle-presets{grid-template-columns:repeat(3,1fr)}
  .gr-preview{height:200px}
}
/* ===== CSS圆角生成器 (br-) ===== */
.br-wrap{display:grid;grid-template-columns:380px 1fr;gap:16px;margin-bottom:18px}
.br-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px}
.br-mode-toggle{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:16px;background:var(--hover,var(--hover));padding:4px;border-radius:10px}
.br-mode{padding:8px 12px;font-size:13px;border:none;border-radius:8px;background:transparent;color:var(--muted,var(--muted));cursor:pointer;transition:.15s;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.br-mode:hover{color:var(--accent)}
.br-mode.on{background:var(--panel);color:var(--accent);box-shadow:0 2px 6px rgba(0,0,0,.08)}
.br-row{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.br-row > label:first-child{width:80px;flex-shrink:0;font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.br-range{flex:1;min-width:100px;accent-color:var(--accent);cursor:pointer}
.br-val{display:inline-block;min-width:56px;text-align:right;font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.br-units{display:flex;gap:16px;flex:1}
.br-radio{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.br-radio input{cursor:pointer;accent-color:var(--accent)}
.br-content{margin-top:6px}
.br-presets{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line,var(--line))}
.br-presets-title{font-size:12px;color:var(--muted,var(--muted));margin-bottom:8px;font-weight:500}
.br-presets-list{display:flex;flex-wrap:wrap;gap:6px}
.br-preset{padding:6px 12px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:16px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap}
.br-preset:hover{border-color:var(--accent);color:var(--accent);background:rgba(59,130,246,.1)}
/* 单角 */
.br-each-grid{display:flex;flex-direction:column;gap:12px}
.br-each-item{padding:10px 12px;background:var(--hover,var(--hover));border-radius:8px}
.br-each-item label{display:block;font-size:12px;color:var(--muted,var(--muted));margin-bottom:8px;font-weight:500}
.br-each-item .br-range{width:100%}
.br-each-item .br-val{margin-top:4px;display:block;text-align:right}
/* 右侧预览 */
.br-main{display:flex;flex-direction:column;gap:14px}
.br-preview-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px}
.br-preview-bg{background-image:linear-gradient(45deg,rgba(59,130,246,.08) 25%,transparent 25%),linear-gradient(-45deg,rgba(59,130,246,.08) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(59,130,246,.08) 75%),linear-gradient(-45deg,transparent 75%,rgba(59,130,246,.08) 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0px;border-radius:10px;padding:60px 20px;display:flex;align-items:center;justify-content:center;min-height:340px}
.br-preview-box{width:280px;height:280px;background:linear-gradient(135deg,var(--accent),#8b5cf6);display:flex;align-items:center;justify-content:center;transition:border-radius .15s;box-shadow:0 10px 30px rgba(59,130,246,.25)}
.br-preview-content{text-align:center;color:var(--panel)}
.br-preview-icon{font-size:56px;margin-bottom:12px;opacity:.95}
.br-preview-text{font-size:18px;font-weight:600;letter-spacing:1px;font-family:ui-monospace,Menlo,Consolas,monospace}
.br-code-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden}
.br-code-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.br-code-head i{color:var(--accent);margin-right:6px}
.br-copy-btn{padding:6px 14px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.br-copy-btn:hover{border-color:var(--accent);color:var(--accent)}
.br-code{margin:0;padding:16px;background:#0f172a;color:var(--line);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;line-height:1.7;white-space:pre-wrap;word-break:break-all;min-height:80px}
.br-tips{list-style:none;padding:0;margin:0}
.br-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.br-tips li:last-child{border-bottom:none}
.br-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.br-tips b{color:var(--fg,#111)}
.br-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:900px){
  .br-wrap{grid-template-columns:1fr}
  .br-preview-box{width:220px;height:220px}
}
@media (max-width:640px){
  .br-row > label:first-child{width:100%}
  .br-preview-box{width:180px;height:180px}
  .br-preview-icon{font-size:40px}
  .br-preview-text{font-size:14px}
}
/* ===== CSS动画生成器 (da-) ===== */
.da-wrap{display:grid;grid-template-columns:400px 1fr;gap:16px;margin-bottom:18px}
.da-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px}
.da-section{margin-bottom:20px}
.da-section:last-child{margin-bottom:0}
.da-section-head{font-size:14px;font-weight:600;color:var(--fg,#111);padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--line,var(--hover))}
.da-section-head i{color:var(--accent);margin-right:6px}
/* 动画列表 */
.da-anim-list{display:flex;flex-direction:column;gap:14px;max-height:320px;overflow-y:auto;padding-right:4px}
.da-anim-cat{}
.da-anim-cat-head{font-size:12px;color:var(--muted,var(--muted));margin-bottom:8px;font-weight:600;padding-left:2px}
.da-anim-cat-list{display:flex;flex-wrap:wrap;gap:6px}
.da-anim-btn{padding:6px 12px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:16px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap}
.da-anim-btn:hover{border-color:var(--accent);color:var(--accent)}
.da-anim-btn.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
/* 参数行 */
.da-row{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.da-row > label:first-child{width:80px;flex-shrink:0;font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.da-range{flex:1;min-width:100px;accent-color:var(--accent);cursor:pointer}
.da-val{display:inline-block;min-width:52px;text-align:right;font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.da-input{padding:7px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.da-input:focus{border-color:var(--accent)}
.da-input:disabled{opacity:.5;background:var(--hover,var(--hover))}
.da-select{flex:1;padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer;font-family:ui-monospace,Menlo,Consolas,monospace}
.da-select:focus{border-color:var(--accent)}
.da-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.da-check input{cursor:pointer;accent-color:var(--accent)}
.da-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line,var(--line))}
.da-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.da-btn:hover{border-color:var(--accent);color:var(--accent)}
.da-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.da-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
/* 右侧 */
.da-main{display:flex;flex-direction:column;gap:14px}
.da-preview-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px}
.da-preview-bg{background-image:linear-gradient(45deg,rgba(59,130,246,.08) 25%,transparent 25%),linear-gradient(-45deg,rgba(59,130,246,.08) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(59,130,246,.08) 75%),linear-gradient(-45deg,transparent 75%,rgba(59,130,246,.08) 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0px;border-radius:10px;padding:60px 20px;display:flex;align-items:center;justify-content:center;min-height:360px;overflow:hidden}
.da-preview-box{width:180px;height:180px;background:linear-gradient(135deg,var(--accent),#8b5cf6);border-radius:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px rgba(59,130,246,.3)}
.da-preview-content{text-align:center;color:var(--panel)}
.da-preview-icon{font-size:48px;margin-bottom:8px;opacity:.95}
.da-preview-text{font-size:16px;font-weight:600;letter-spacing:1px}
.da-code-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden}
.da-code-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.da-code-head i{color:var(--accent);margin-right:6px}
.da-copy-btn{padding:6px 14px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.da-copy-btn:hover{border-color:var(--accent);color:var(--accent)}
.da-code{margin:0;padding:16px;background:#0f172a;color:var(--line);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-all;min-height:200px;max-height:400px;overflow:auto}
.da-tips{list-style:none;padding:0;margin:0}
.da-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.da-tips li:last-child{border-bottom:none}
.da-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.da-tips b{color:var(--fg,#111)}
.da-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:900px){
  .da-wrap{grid-template-columns:1fr}
}
@media (max-width:640px){
  .da-row > label:first-child{width:100%}
  .da-preview-box{width:140px;height:140px}
  .da-preview-icon{font-size:36px}
  .da-preview-text{font-size:14px}
  .da-anim-list{max-height:none}
}
/* ===== CSS Flex布局生成器 (fx-) ===== */
.fx-wrap{display:grid;grid-template-columns:400px 1fr;gap:16px;margin-bottom:18px}
.fx-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px}
.fx-section{margin-bottom:20px}
.fx-section:last-child{margin-bottom:0}
.fx-section-head{font-size:13px;font-weight:600;color:var(--fg,#111);padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--line,var(--hover))}
.fx-section-head i{color:var(--accent);margin-right:6px}
.fx-options{display:flex;flex-wrap:wrap;gap:6px}
.fx-opt{padding:6px 12px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:16px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;font-family:ui-monospace,Menlo,Consolas,monospace}
.fx-opt:hover{border-color:var(--accent);color:var(--accent)}
.fx-opt.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.fx-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.fx-row:last-child{margin-bottom:0}
.fx-row > label:first-child{width:60px;flex-shrink:0;font-size:13px;color:var(--muted,var(--muted))}
.fx-range{flex:1;min-width:100px;accent-color:var(--accent);cursor:pointer}
.fx-val{display:inline-block;min-width:52px;text-align:right;font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.fx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line,var(--line))}
.fx-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.fx-btn:hover{border-color:var(--accent);color:var(--accent)}
.fx-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.fx-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
/* 右侧 */
.fx-main{display:flex;flex-direction:column;gap:14px}
.fx-preview-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;min-height:360px}
.fx-preview{width:100%;height:100%;min-height:320px;border:2px dashed rgba(59,130,246,.4);border-radius:10px;padding:16px;background:linear-gradient(135deg,rgba(59,130,246,.1),var(--hover));box-sizing:border-box}
.fx-item{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),var(--accent));color:var(--panel);font-weight:600;border-radius:8px;font-size:16px;font-family:ui-monospace,Menlo,Consolas,monospace;box-shadow:0 4px 12px rgba(59,130,246,.25);flex-shrink:0}
.fx-code-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden}
.fx-code-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.fx-code-head i{color:var(--accent);margin-right:6px}
.fx-code-note{font-size:12px;color:var(--muted,var(--muted))}
.fx-code-note b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.fx-code{margin:0;padding:16px;background:#0f172a;color:var(--line);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;min-height:180px}
/* 速查表 */
.fx-table-wrap{overflow-x:auto}
.fx-table{width:100%;border-collapse:collapse;font-size:14px;min-width:600px}
.fx-table th,.fx-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.fx-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:13px}
.fx-table tr:last-child td{border-bottom:none}
.fx-table tr:hover td{background:var(--hover,var(--hover))}
.fx-table code{font-family:ui-monospace,Menlo,Consolas,monospace;background:rgba(59,130,246,.1);color:var(--accent);padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;display:inline-block;margin:1px 0}
.fx-table b{color:#111}
.fx-tips{list-style:none;padding:0;margin:0}
.fx-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.fx-tips li:last-child{border-bottom:none}
.fx-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.fx-tips b{color:var(--fg,#111)}
.fx-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:900px){
  .fx-wrap{grid-template-columns:1fr}
}
@media (max-width:640px){
  .fx-row > label:first-child{width:50px}
  .fx-preview{min-height:240px;padding:10px}
  .fx-item{font-size:14px}
}
/* ===== CSS Grid布局生成器 (gd-) ===== */
.gd-wrap{display:grid;grid-template-columns:380px 1fr;gap:16px;margin-bottom:18px}
.gd-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px}
.gd-section{margin-bottom:20px}
.gd-section:last-child{margin-bottom:0}
.gd-section-head{font-size:13px;font-weight:600;color:var(--fg,#111);padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--line,var(--hover))}
.gd-section-head i{color:var(--accent);margin-right:6px}
.gd-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.gd-row:last-child{margin-bottom:0}
.gd-row > label:first-child{width:90px;flex-shrink:0;font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.gd-range{flex:1;min-width:100px;accent-color:var(--accent);cursor:pointer}
.gd-val{display:inline-block;min-width:48px;text-align:right;font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.gd-mix{display:flex;gap:6px;flex:1;min-width:0}
.gd-num{flex:1;min-width:60px;padding:7px 10px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.gd-num:focus{border-color:var(--accent)}
.gd-num:disabled{opacity:.5;background:var(--hover,var(--hover))}
.gd-select{flex:1;padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer;font-family:ui-monospace,Menlo,Consolas,monospace;min-width:0}
.gd-select:focus{border-color:var(--accent)}
.gd-select-sm{padding:7px 8px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer;font-family:ui-monospace,Menlo,Consolas,monospace;min-width:70px}
.gd-select-sm:focus{border-color:var(--accent)}
.gd-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line,var(--line))}
.gd-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.gd-btn:hover{border-color:var(--accent);color:var(--accent)}
.gd-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.gd-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
/* 右侧 */
.gd-main{display:flex;flex-direction:column;gap:14px}
.gd-preview-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;min-height:400px}
.gd-preview{width:100%;height:100%;min-height:360px;border:2px dashed rgba(59,130,246,.4);border-radius:10px;padding:16px;background:linear-gradient(135deg,rgba(59,130,246,.1),var(--hover));box-sizing:border-box}
.gd-item{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),var(--accent));color:var(--panel);font-weight:600;border-radius:8px;font-size:16px;font-family:ui-monospace,Menlo,Consolas,monospace;box-shadow:0 4px 12px rgba(59,130,246,.25);min-height:40px;min-width:40px}
.gd-code-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden}
.gd-code-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.gd-code-head i{color:var(--accent);margin-right:6px}
.gd-code-note{font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.gd-code{margin:0;padding:16px;background:#0f172a;color:var(--line);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;min-height:200px}
/* 速查表 */
.gd-table-wrap{overflow-x:auto}
.gd-table{width:100%;border-collapse:collapse;font-size:14px;min-width:600px}
.gd-table th,.gd-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.gd-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:13px}
.gd-table tr:last-child td{border-bottom:none}
.gd-table tr:hover td{background:var(--hover,var(--hover))}
.gd-table code{font-family:ui-monospace,Menlo,Consolas,monospace;background:rgba(59,130,246,.1);color:var(--accent);padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;display:inline-block;margin:1px 0}
.gd-table b{color:#111}
.gd-tips{list-style:none;padding:0;margin:0}
.gd-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.gd-tips li:last-child{border-bottom:none}
.gd-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.gd-tips b{color:var(--fg,#111)}
.gd-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:900px){
  .gd-wrap{grid-template-columns:1fr}
}
@media (max-width:640px){
  .gd-row > label:first-child{width:100%}
  .gd-preview{min-height:280px;padding:10px}
  .gd-item{font-size:14px}
}
/* ===== URL参数解析器 (up-) ===== */
.up-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.up-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.up-tab:hover{color:var(--accent)}
.up-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.up-panel{margin-bottom:18px}
.up-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.up-input-row{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.up-input{flex:1;min-width:200px;padding:11px 14px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.up-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.up-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.up-btn:hover{background:var(--accent);border-color:var(--accent)}
.up-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.up-hint{font-size:12px;color:var(--muted,var(--muted))}
.up-hint a{display:inline-block;margin:0 6px 4px 0;padding:3px 12px;background:var(--hover,var(--hover));color:var(--muted,#555);border-radius:6px;text-decoration:none;font-size:12px;transition:.15s}
.up-hint a:hover{background:var(--accent);color:var(--panel)}
/* 结果卡片 */
.up-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:20px}
.up-card-head{font-size:15px;font-weight:600;color:#10b981;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line,var(--hover));display:flex;align-items:center;gap:8px}
.up-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-bottom:18px}
.up-info-item{padding:10px 14px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:8px}
.up-info-empty{opacity:.5}
.up-info-key{font-size:12px;color:var(--muted,var(--muted));margin-bottom:6px}
.up-info-key i{color:var(--accent);margin-right:4px;width:14px}
.up-info-val{font-size:13px;color:var(--fg,#111);word-break:break-all;font-family:ui-monospace,Menlo,Consolas,monospace}
.up-info-val code{background:transparent;padding:0;color:var(--fg,#111);font-weight:600}
.up-params-wrap{background:var(--hover,var(--hover));border-radius:10px;padding:14px}
.up-params-head{font-size:13px;color:var(--muted,var(--muted));margin-bottom:10px;font-weight:600}
.up-params-head i{color:var(--accent);margin-right:6px}
.up-params-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--panel);border-radius:8px;overflow:hidden}
.up-params-table th,.up-params-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line,var(--hover));vertical-align:top}
.up-params-table th{background:var(--panel);font-weight:600;color:var(--muted,var(--fg));font-size:12px;white-space:nowrap}
.up-params-table tr:last-child td{border-bottom:none}
.up-params-table tr:hover td{background:var(--hover)}
.up-pk{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);font-weight:600;background:transparent;padding:0}
.up-pv{color:var(--fg,#111);word-break:break-word}
.up-praw{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--muted,var(--muted));background:var(--hover);padding:2px 8px;border-radius:4px;display:inline-block;max-width:100%;word-break:break-all}
.up-no-params{padding:20px;text-align:center;color:var(--muted,var(--muted));font-size:13px;background:var(--hover,var(--hover));border-radius:8px}
.up-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:14px}
.up-error i{margin-right:6px}
/* 构建器 */
.up-build-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.up-label{width:60px;flex-shrink:0;font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.up-select{padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer;min-width:100px}
.up-select:focus{border-color:var(--accent)}
.up-input-sm{flex:1;min-width:120px;padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.up-input-sm:focus{border-color:var(--accent)}
.up-input-xs{width:80px;padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.up-input-xs:focus{border-color:var(--accent)}
.up-params-section{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line,var(--line))}
.up-params-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.up-add-btn{padding:5px 12px;font-size:12px;border:1px solid var(--accent);border-radius:6px;background:var(--accent);color:var(--panel);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.up-add-btn:hover{background:var(--accent)}
.up-params-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.up-param-row{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--hover,var(--hover));border-radius:8px}
.up-pkey,.up-pval{flex:1;min-width:80px;padding:6px 10px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.up-pkey:focus,.up-pval:focus{border-color:var(--accent)}
.up-eq{color:var(--accent);font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;flex-shrink:0}
.up-pdel{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-radius:6px;transition:.15s;flex-shrink:0}
.up-pdel:hover{color:#dc2626;background:rgba(239,68,68,.15)}
.up-build-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line,var(--line))}
.up-build-result{display:flex;align-items:center;gap:10px;padding:14px;background:#0f172a;border-radius:10px;margin-bottom:14px;flex-wrap:wrap}
.up-build-result code{flex:1;font-family:ui-monospace,Menlo,Consolas,monospace;color:#60a5fa;font-size:14px;word-break:break-all;background:transparent;padding:0}
.up-copy-result{padding:6px 14px;font-size:12px;border:1px solid var(--line);border-radius:6px;background:transparent;color:#94a3b8;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px;flex-shrink:0}
.up-copy-result:hover{color:var(--accent);border-color:var(--accent)}
.up-build-info{display:flex;gap:16px;flex-wrap:wrap;padding:12px 14px;background:var(--hover,var(--hover));border-radius:8px}
.up-build-info-item{display:flex;align-items:center;gap:6px;font-size:13px}
.up-bk{color:var(--muted,var(--muted))}
.up-bv{color:var(--accent);font-weight:600;font-family:ui-monospace,Menlo,Consolas,monospace}
/* 说明表 */
.up-table-wrap{overflow-x:auto}
.up-table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.up-table th,.up-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.up-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:13px}
.up-table tr:last-child td{border-bottom:none}
.up-table tr:hover td{background:var(--hover,var(--hover))}
.up-table code{font-family:ui-monospace,Menlo,Consolas,monospace;background:rgba(59,130,246,.1);color:var(--accent);padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600}
.up-table b{color:#111}
@media (max-width:640px){
  .up-tab{padding:8px 14px;font-size:13px}
  .up-input-row{flex-direction:column;align-items:stretch}
  .up-btn{width:100%;justify-content:center}
  .up-label{width:100%}
  .up-param-row{flex-wrap:wrap}
}
/* ===== CRON表达式解析器 (cj-) ===== */
.cj-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.cj-input-row{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.cj-input{flex:1;min-width:200px;padding:11px 16px;font-size:18px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:2px;font-weight:600;box-sizing:border-box}
.cj-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.cj-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.cj-btn:hover{background:var(--accent);border-color:var(--accent)}
.cj-examples{font-size:12px;color:var(--muted,var(--muted));line-height:1.9}
.cj-ex-label{color:var(--muted,var(--muted));margin-right:4px}
.cj-ex{display:inline-block;margin:0 6px 4px 0;padding:3px 12px;background:var(--hover,var(--hover));color:var(--muted,#555);border-radius:6px;text-decoration:none;font-size:12px;transition:.15s;font-family:ui-monospace,Menlo,Consolas,monospace}
.cj-ex:hover{background:var(--accent);color:var(--panel)}
/* 结果卡片 */
.cj-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:20px;margin-bottom:18px}
.cj-expression-wrap{position:relative;background:linear-gradient(135deg,#0f172a,#1e293b);border-radius:12px;padding:20px;margin-bottom:18px}
.cj-expression-label{font-size:12px;color:#94a3b8;margin-bottom:10px;letter-spacing:1px}
.cj-expression{font-size:28px;font-weight:700;color:#60a5fa;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:4px;word-break:break-all}
.cj-copy-btn{position:absolute;top:16px;right:16px;padding:6px 14px;font-size:12px;border:1px solid rgba(255,255,255,.15);border-radius:6px;background:transparent;color:#94a3b8;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.cj-copy-btn:hover{color:var(--accent);border-color:var(--accent);background:rgba(59,130,246,.1)}
.cj-desc-wrap{padding:16px;background:rgba(16,185,129,.15);border:1px solid rgba(16,185,129,.3);border-radius:10px;margin-bottom:18px}
.cj-desc-label{font-size:12px;color:#10b981;margin-bottom:8px;font-weight:600}
.cj-desc-label i{margin-right:6px}
.cj-desc{font-size:18px;color:#10b981;font-weight:700;line-height:1.5}
/* 字段拆解 */
.cj-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:18px}
.cj-field{padding:12px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:10px;text-align:center}
.cj-field-head{font-size:12px;color:var(--muted,var(--muted));margin-bottom:8px;font-weight:500}
.cj-field-value{font-size:22px;font-weight:700;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;margin-bottom:6px;word-break:break-all}
.cj-field-range{font-size:11px;color:var(--muted,var(--muted));margin-bottom:6px}
.cj-field-desc{font-size:12px;color:#10b981;background:rgba(16,185,129,.15);padding:4px 8px;border-radius:4px;font-weight:600;line-height:1.4}
/* 未来执行时间 */
.cj-next-wrap{background:var(--hover,var(--hover));border-radius:10px;padding:14px}
.cj-next-head{font-size:13px;color:var(--muted,var(--muted));font-weight:600;margin-bottom:12px}
.cj-next-head i{color:var(--accent);margin-right:6px}
.cj-next-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.cj-next-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);border:1px solid var(--line,var(--line));border-radius:8px;font-size:13px;transition:.15s}
.cj-next-first{border-color:var(--accent);background:rgba(59,130,246,.1);box-shadow:0 2px 8px rgba(59,130,246,.15)}
.cj-next-idx{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--hover,var(--line));color:var(--muted,var(--muted));font-size:11px;font-weight:600;flex-shrink:0}
.cj-next-first .cj-next-idx{background:var(--accent);color:var(--panel)}
.cj-next-time{flex:1;font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--fg,#111);font-weight:500}
.cj-next-week{font-size:12px;color:var(--muted,var(--muted))}
.cj-no-predict{padding:14px;background:rgba(245,158,11,.15);border-radius:8px;color:#f59e0b;font-size:13px;text-align:center}
.cj-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.cj-error i{margin-right:6px}
/* 帮助表 */
.cj-table-wrap{overflow-x:auto;margin-bottom:16px}
.cj-table{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
.cj-table th,.cj-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.cj-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:13px}
.cj-table tr:last-child td{border-bottom:none}
.cj-table tr:hover td{background:var(--hover,var(--hover))}
.cj-table code{font-family:ui-monospace,Menlo,Consolas,monospace;background:rgba(59,130,246,.1);color:var(--accent);padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;display:inline-block;margin:1px 2px}
.cj-table b{color:#111}
.cj-symbols{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.cj-symbol{padding:10px 14px;background:var(--hover,var(--hover));border-radius:8px;font-size:13px;color:var(--muted,var(--muted));line-height:1.6}
.cj-symbol code{display:inline-block;background:var(--accent);color:var(--panel);padding:2px 8px;border-radius:4px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;margin-right:6px}
@media (max-width:640px){
  .cj-input-row{flex-direction:column;align-items:stretch}
  .cj-btn{width:100%;justify-content:center}
  .cj-expression{font-size:20px;letter-spacing:2px}
  .cj-copy-btn{position:static;margin-top:10px}
  .cj-fields{grid-template-columns:repeat(2,1fr)}
  .cj-next-list{grid-template-columns:1fr}
}
/* ===== JWT解析器 (jwt-) ===== */
.jwt-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;overflow:hidden}
.jwt-input-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--muted);font-weight:500}
.jwt-input-head i{color:var(--accent);margin-right:6px}
.jwt-input-actions{display:flex;gap:6px}
.jwt-mini{padding:5px 12px;font-size:12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.jwt-mini:hover{border-color:var(--accent);color:var(--accent)}
.jwt-textarea{width:100%;min-height:100px;border:none;outline:none;padding:14px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.7;background:var(--bg);color:var(--fg);box-sizing:border-box;resize:vertical;word-break:break-all}
.jwt-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:14px}
.jwt-error i{margin-right:6px}
.jwt-card{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}
/* 状态条 */
.jwt-status{display:flex;align-items:center;gap:10px;padding:14px 18px;border-radius:12px;font-size:14px;flex-wrap:wrap}
.jwt-status i{font-size:18px}
.jwt-status b{font-size:15px}
.jwt-status-sub{margin-left:auto;font-size:12px;opacity:.85;font-family:ui-monospace,Menlo,Consolas,monospace}
.jwt-status-valid{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.jwt-status-expired{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
/* 部分卡片 */
.jwt-part-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;border-left:5px solid #94a3b8}
.jwt-part-card-1{border-left-color:var(--accent)}
.jwt-part-card-2{border-left-color:#10b981}
.jwt-part-card-3{border-left-color:#f59e0b}
.jwt-part-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--hover);border-bottom:1px solid var(--line)}
.jwt-part-title{font-size:14px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.jwt-part-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:#fff;font-size:12px;font-weight:700}
.jwt-part-badge-1{background:var(--accent)}
.jwt-part-badge-2{background:#10b981}
.jwt-part-badge-3{background:#f59e0b}
.jwt-copy{padding:5px 12px;font-size:12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.jwt-copy:hover{border-color:var(--accent);color:var(--accent)}
/* JSON 显示 */
.jwt-json{margin:0;padding:16px;background:#0f172a;color:#cbd5e1;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;max-height:400px;overflow:auto}
.jwt-key{color:#60a5fa;font-weight:600}
.jwt-str{color:#6ee7b7}
.jwt-num{color:#fbbf24}
.jwt-bool{color:#c084fc;font-weight:600}
.jwt-null{color:#c084fc;font-style:italic}
/* 标准字段 */
.jwt-fields-info{margin-top:14px;padding:14px;background:var(--hover);border-radius:10px}
.jwt-fields-info-head{font-size:12px;color:var(--muted);font-weight:600;margin-bottom:10px}
.jwt-fields-info-head i{color:var(--accent);margin-right:6px}
.jwt-field-row{display:flex;align-items:center;gap:12px;padding:6px 0;font-size:13px;flex-wrap:wrap;border-bottom:1px dashed var(--line)}
.jwt-field-row:last-child{border-bottom:none}
.jwt-field-key{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent);background:rgba(59,130,246,.1);padding:2px 10px;border-radius:5px;font-weight:600;flex-shrink:0}
.jwt-field-label{color:var(--muted);flex-shrink:0;font-size:12px}
.jwt-field-val{color:var(--fg);word-break:break-word;font-family:ui-monospace,Menlo,Consolas,monospace}
.jwt-field-extra{color:var(--muted);font-size:12px;margin-left:6px}
/* 签名 */
.jwt-signature{padding:14px 16px;background:var(--hover);word-break:break-all}
.jwt-signature code{font-family:ui-monospace,Menlo,Consolas,monospace;color:#dc2626;font-size:13px;font-weight:600;background:transparent;padding:0}
.jwt-signature-note{padding:10px 16px;background:rgba(245,158,11,.15);color:#f59e0b;font-size:12px;line-height:1.6;border-top:1px solid rgba(245,158,11,.3)}
.jwt-signature-note i{margin-right:6px}
.jwt-signature-note b{font-weight:700}
/* 说明区 */
.jwt-intro{margin-bottom:18px;font-size:14px;color:var(--muted);line-height:1.8}
.jwt-intro p{margin:0 0 12px}
.jwt-intro code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover);padding:2px 8px;border-radius:4px;color:var(--accent);font-size:13px}
.jwt-structure{display:flex;align-items:center;justify-content:center;gap:8px;padding:18px;background:var(--hover);border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;flex-wrap:wrap}
.jwt-part{padding:8px 18px;border-radius:8px;color:#fff;font-size:13px}
.jwt-part-1{background:var(--accent)}
.jwt-part-2{background:#10b981}
.jwt-part-3{background:#f59e0b}
.jwt-dot{color:var(--muted);font-size:22px;font-weight:900}
.jwt-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.jwt-field-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;border-top:4px solid #94a3b8}
.jwt-field-card:nth-child(1){border-top-color:var(--accent)}
.jwt-field-card:nth-child(2){border-top-color:#10b981}
.jwt-field-card:nth-child(3){border-top-color:#f59e0b}
.jwt-field-head{font-size:14px;font-weight:700;color:var(--fg);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.jwt-field-head i{color:var(--accent)}
.jwt-field-head-2 i{color:#10b981}
.jwt-field-head-3 i{color:#f59e0b}
.jwt-field-desc{font-size:13px;color:var(--muted);margin-bottom:10px;line-height:1.6}
.jwt-field-list{list-style:none;padding:0;margin:0;font-size:13px;color:var(--muted);line-height:1.9}
.jwt-field-list li{padding-left:14px;position:relative}
.jwt-field-list li:before{content:'·';position:absolute;left:4px;color:var(--accent);font-weight:900}
.jwt-field-list code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover);color:var(--accent);padding:1px 6px;border-radius:4px;font-size:12px;font-weight:600}
.jwt-field-list b{color:#dc2626}
@media (max-width:640px){
  .jwt-field-row{flex-direction:column;align-items:flex-start;gap:4px}
  .jwt-status-sub{margin-left:0;width:100%}
}
/* ===== 时间戳批量转换 (pb-) ===== */
.pb-toolbar{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;margin-bottom:14px}
.pb-mode-tabs{display:flex;gap:6px;margin-bottom:14px;background:var(--hover,var(--hover));padding:4px;border-radius:10px;flex-wrap:wrap}
.pb-mode{padding:9px 18px;font-size:13px;border:none;border-radius:8px;background:transparent;color:var(--muted,var(--muted));cursor:pointer;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px;flex:1;justify-content:center;min-width:120px}
.pb-mode:hover{color:var(--accent)}
.pb-mode.on{background:var(--panel);color:var(--accent);box-shadow:0 2px 6px rgba(0,0,0,.08)}
.pb-row{display:flex;align-items:center;gap:14px;margin-bottom:12px;flex-wrap:wrap}
.pb-label{font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.pb-radios{display:flex;gap:14px;flex-wrap:wrap}
.pb-radio{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.pb-radio input{cursor:pointer;accent-color:var(--accent)}
.pb-select{padding:7px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer}
.pb-select:focus{border-color:var(--accent)}
.pb-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:12px;border-top:1px dashed var(--line,var(--line))}
.pb-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.pb-btn:hover{border-color:var(--accent);color:var(--accent)}
.pb-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.pb-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.pb-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.pb-status{margin-bottom:12px;min-height:0}
.pb-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.pb-st i{margin-right:6px}
.pb-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.pb-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.pb-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
/* 双栏 */
.pb-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.pb-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:320px}
.pb-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.pb-panel-head i{color:var(--accent);margin-right:6px}
.pb-len{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.pb-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.8;resize:none;background:var(--bg,var(--panel));color:var(--fg,#222);box-sizing:border-box;white-space:pre;overflow-x:auto}
.pb-textarea[readonly]{background:var(--hover,var(--hover))}
/* 详情表 */
.pb-detail-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;margin-bottom:18px}
.pb-detail-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.pb-detail-head i{color:var(--accent);margin-right:6px}
.pb-detail-count{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.pb-detail-body{max-height:520px;overflow:auto}
.pb-detail-table{width:100%;border-collapse:collapse;font-size:13px}
.pb-detail-table th,.pb-detail-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line,var(--hover));vertical-align:top;word-break:break-all}
.pb-detail-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:12px;position:sticky;top:0;z-index:1;white-space:nowrap}
.pb-detail-table tr:hover td{background:var(--hover,var(--hover))}
.pb-detail-table code{font-family:ui-monospace,Menlo,Consolas,monospace;background:transparent;padding:0;font-size:12px;color:var(--fg,#111)}
.pb-row-ts{background:rgba(59,130,246,.1)}
.pb-row-ts .pb-out-code{color:var(--accent);font-weight:600}
.pb-row-date{background:rgba(16,185,129,.1)}
.pb-row-date .pb-out-code{color:#10b981;font-weight:600}
.pb-row-fail{background:rgba(239,68,68,.1)}
.pb-row-fail .pb-out-code{color:#dc2626}
.pb-type-tag{display:inline-block;padding:2px 8px;font-size:11px;border-radius:4px;background:rgba(99,102,241,.12);color:#6366f1;font-weight:500;white-space:nowrap}
.pb-row-ts .pb-type-tag{background:rgba(59,130,246,.15);color:var(--accent)}
.pb-row-date .pb-type-tag{background:rgba(16,185,129,.15);color:#10b981}
.pb-row-fail .pb-type-tag{background:rgba(239,68,68,.15);color:#ef4444}
/* 说明 */
.pb-tips{list-style:none;padding:0;margin:0}
.pb-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.8;border-bottom:1px dashed var(--line,#eee)}
.pb-tips li:last-child{border-bottom:none}
.pb-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#10b981;font-size:12px}
.pb-tips b{color:var(--fg,#111)}
.pb-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:820px){
  .pb-panels{grid-template-columns:1fr}
  .pb-panel{min-height:240px}
}
@media (max-width:640px){
  .pb-mode{font-size:12px;padding:7px 12px;min-width:auto}
  .pb-btn{flex:1;justify-content:center}
}/* ===== ASCII艺术字生成器 (as-) ===== */
.as-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.as-input-row{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.as-input{flex:1;min-width:200px;padding:11px 16px;font-size:18px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:2px;font-weight:600;box-sizing:border-box;text-transform:uppercase}
.as-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.as-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.as-btn:hover{background:var(--accent);border-color:var(--accent)}
.as-fonts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.as-font-btn{padding:7px 16px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:20px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;font-weight:500;font-family:ui-monospace,Menlo,Consolas,monospace}
.as-font-btn:hover{border-color:var(--accent);color:var(--accent)}
.as-font-btn.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.as-opts{display:flex;gap:16px;flex-wrap:wrap}
.as-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.as-check input{cursor:pointer;accent-color:var(--accent)}
/* 结果区 */
.as-result-wrap{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;margin-bottom:18px}
.as-result-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.as-result-head i{color:var(--accent);margin-right:6px}
.as-copy-btn{padding:6px 14px;font-size:12px;border:1px solid var(--line,var(--line));border-radius:6px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.as-copy-btn:hover{border-color:var(--accent);color:var(--accent)}
.as-result{margin:0;padding:24px;background:#0f172a;color:rgba(16,185,129,.4);font-family:ui-monospace,Menlo,Consolas,'Courier New',monospace;font-size:14px;line-height:1.4;white-space:pre;overflow-x:auto;min-height:200px;letter-spacing:0;font-weight:700;text-shadow:0 0 6px rgba(134,239,172,.35)}
/* 说明 */
.as-tips{list-style:none;padding:0;margin:0}
.as-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.as-tips li:last-child{border-bottom:none}
.as-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.as-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .as-input-row{flex-direction:column;align-items:stretch}
  .as-btn{width:100%;justify-content:center}
  .as-result{padding:14px;font-size:11px}
}/* ===== 同音字查询 (ty-) ===== */
.ty-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.ty-input-row{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.ty-input{flex:1;min-width:200px;padding:11px 16px;font-size:18px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:2px;box-sizing:border-box;font-weight:600}
.ty-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.ty-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ty-btn:hover{background:var(--accent);border-color:var(--accent)}
.ty-hint{font-size:12px;color:var(--muted,var(--muted));line-height:1.9}
.ty-hint a{display:inline-block;margin:0 4px 4px 0;padding:3px 12px;background:var(--hover,var(--hover));color:var(--muted,#555);border-radius:6px;text-decoration:none;font-family:'Kaiti SC','STKaiti',serif;font-size:15px;transition:.15s}
.ty-hint a:hover{background:var(--accent);color:var(--panel)}
/* 卡片 */
.ty-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:20px;margin-bottom:18px}
.ty-card-head{display:flex;gap:20px;align-items:center;padding-bottom:18px;margin-bottom:18px;border-bottom:1px dashed var(--line,var(--line));flex-wrap:wrap}
.ty-card-input{flex-shrink:0}
.ty-card-char{display:flex;align-items:center;justify-content:center;width:90px;height:90px;background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.15));color:var(--accent);font-size:52px;border-radius:14px;font-family:'Kaiti SC','STKaiti',serif;font-weight:500;box-shadow:0 4px 16px rgba(59,130,246,.15)}
.ty-card-info{flex:1;min-width:180px}
.ty-card-info-line{display:flex;gap:10px;padding:5px 0;font-size:14px}
.ty-card-key{color:var(--muted,var(--muted));flex-shrink:0;min-width:50px}
.ty-card-val{color:var(--fg,#111);word-break:break-all}
.ty-card-val code{font-family:ui-monospace,Menlo,Consolas,monospace;background:rgba(59,130,246,.1);color:var(--accent);padding:2px 10px;border-radius:5px;font-weight:600}
.ty-card-val b{color:#dc2626;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:16px}
/* 分组 */
.ty-group{margin-bottom:16px}
.ty-group:last-child{margin-bottom:0}
.ty-group-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line,var(--hover))}
.ty-tone-badge{padding:3px 12px;font-size:13px;border-radius:6px;font-weight:700;color:var(--panel)}
.ty-tone-一声{background:linear-gradient(135deg,#ef4444,#dc2626)}
.ty-tone-二声{background:linear-gradient(135deg,#f59e0b,#f59e0b)}
.ty-tone-三声{background:linear-gradient(135deg,#10b981,#059669)}
.ty-tone-四声{background:linear-gradient(135deg,var(--accent),var(--accent))}
.ty-tone-轻声{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}
.ty-group-count{font-size:12px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
/* 字卡片网格 */
.ty-chars{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}
.ty-char-item{display:flex;flex-direction:column;align-items:center;padding:10px 6px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:10px;cursor:pointer;transition:.15s;user-select:none;position:relative}
.ty-char-item:hover{background:rgba(59,130,246,.1);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px rgba(59,130,246,.15)}
.ty-char-item.ty-copied{background:rgba(16,185,129,.15);border-color:#10b981}
.ty-char-item.ty-copied::after{content:'✓ 已复制';position:absolute;top:4px;right:4px;font-size:10px;color:#10b981;font-weight:700}
.ty-char{font-family:'Kaiti SC','STKaiti',serif;font-size:32px;line-height:1.1;color:var(--accent);font-weight:500;margin-bottom:4px}
.ty-char-py{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.3;text-align:center;word-break:break-all}
.ty-char-bh{font-size:10px;color:var(--muted,var(--muted));margin-top:2px}
/* 状态 */
.ty-loading{padding:40px 20px;text-align:center;color:var(--accent);font-size:15px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:18px}
.ty-loading i{margin-right:8px}
.ty-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.ty-error i{margin-right:6px}
/* 说明 */
.ty-tips{list-style:none;padding:0;margin:0}
.ty-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.ty-tips li:last-child{border-bottom:none}
.ty-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ty-tips b{color:var(--fg,#111)}
.ty-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .ty-input-row{flex-direction:column;align-items:stretch}
  .ty-btn{width:100%;justify-content:center}
  .ty-card-char{width:72px;height:72px;font-size:42px}
  .ty-chars{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}
  .ty-char{font-size:26px}
}/* ===== 拼音标调转换 (py-) ===== */
.py-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.py-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.py-tab:hover{color:var(--accent)}
.py-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.py-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.py-row{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.py-label{font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.py-ta{width:100%;min-height:100px;padding:12px 14px;font-size:15px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.8;resize:vertical;box-sizing:border-box}
.py-ta:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.py-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.py-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.py-btn:hover{border-color:var(--accent);color:var(--accent)}
.py-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.py-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.py-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.py-status{margin-top:10px;min-height:0}
.py-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.py-st i{margin-right:6px}
.py-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.py-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.py-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
/* 双栏 */
.py-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.py-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:260px}
.py-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.py-panel-head i{color:var(--accent);margin-right:6px}
.py-len{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.py-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:15px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.8;resize:none;background:var(--bg,var(--panel));color:var(--fg,#222);box-sizing:border-box;white-space:pre-wrap;word-break:break-all}
.py-textarea[readonly]{background:var(--hover,var(--hover))}
/* 规则说明 */
.py-rules{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.py-rule-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;border-top:4px solid var(--accent)}
.py-rule-card:nth-child(2){border-top-color:#10b981}
.py-rule-card:nth-child(3){border-top-color:#f59e0b}
.py-rule-head{font-size:14px;font-weight:700;color:var(--fg,#111);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.py-rule-head i{color:var(--accent)}
.py-rule-card:nth-child(2) .py-rule-head i{color:#10b981}
.py-rule-card:nth-child(3) .py-rule-head i{color:#f59e0b}
.py-rule-list{list-style:none;padding:0;margin:0;font-size:13px;line-height:1.9;color:var(--muted,var(--muted))}
.py-rule-list li{padding-left:18px;position:relative}
.py-rule-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:4px;color:#10b981;font-size:11px}
.py-rule-list b{color:#111}
.py-tone-table{width:100%;border-collapse:collapse;font-size:13px}
.py-tone-table th,.py-tone-table td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--line,var(--hover))}
.py-tone-table th{font-weight:600;color:var(--muted,var(--fg));font-size:12px;background:var(--hover)}
.py-tone-table tr:last-child td{border-bottom:none}
.py-tone-table code{font-family:ui-monospace,Menlo,Consolas,monospace;color:#dc2626;font-size:14px;font-weight:600;background:transparent;padding:0;letter-spacing:1px}
.py-examples{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.8}
.py-examples code{background:var(--hover);padding:2px 8px;border-radius:4px;color:var(--muted,var(--muted));font-size:12px}
.py-examples b{color:#dc2626;font-size:15px;font-weight:700}
@media (max-width:820px){
  .py-panels{grid-template-columns:1fr}
  .py-panel{min-height:200px}
}
@media (max-width:640px){
  .py-tab{padding:8px 14px;font-size:13px}
  .py-btn{flex:1;justify-content:center}
  .py-examples{grid-template-columns:1fr}
}/* ===== 中文数字互转 (zn-) ===== */
.zn-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line))}
.zn-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.zn-tab:hover{color:var(--accent)}
.zn-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.zn-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.zn-opts{display:flex;gap:20px;margin-bottom:14px;flex-wrap:wrap}
.zn-check{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--muted,var(--muted));cursor:pointer;user-select:none;padding:6px 14px;background:var(--hover,var(--hover));border-radius:8px;border:1px solid var(--line,var(--line));transition:.15s}
.zn-check:has(input:checked){background:rgba(59,130,246,.1);border-color:var(--accent);color:var(--accent)}
.zn-check input{cursor:pointer;accent-color:var(--accent)}
.zn-row{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.zn-label{font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.zn-ta{width:100%;min-height:100px;padding:12px 14px;font-size:15px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.8;resize:vertical;box-sizing:border-box}
.zn-ta:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.zn-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.zn-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.zn-btn:hover{border-color:var(--accent);color:var(--accent)}
.zn-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.zn-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.zn-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.zn-status{margin-top:10px;min-height:0}
.zn-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.zn-st i{margin-right:6px}
.zn-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.zn-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.zn-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
/* 双栏 */
.zn-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.zn-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:240px}
.zn-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.zn-panel-head i{color:var(--accent);margin-right:6px}
.zn-len{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.zn-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:15px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.9;resize:none;background:var(--bg,var(--panel));color:var(--fg,#222);box-sizing:border-box;white-space:pre-wrap;word-break:break-all}
.zn-textarea[readonly]{background:var(--hover,var(--hover))}
/* 帮助 */
.zn-help-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.zn-help-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;border-top:4px solid var(--accent)}
.zn-help-card:nth-child(2){border-top-color:#10b981}
.zn-help-card:nth-child(3){border-top-color:#f59e0b}
.zn-help-head{font-size:14px;font-weight:700;color:var(--fg,#111);margin-bottom:12px;display:flex;align-items:center;gap:8px}
.zn-help-head i{color:var(--accent)}
.zn-help-card:nth-child(2) .zn-help-head i{color:#10b981}
.zn-help-card:nth-child(3) .zn-help-head i{color:#f59e0b}
.zn-pairs{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;font-size:13px;line-height:1.8}
.zn-pairs b{color:#dc2626;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.zn-examples{display:flex;flex-direction:column;gap:6px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.8}
.zn-examples code{background:var(--hover);padding:2px 8px;border-radius:4px;color:var(--muted,var(--muted));font-size:12px}
.zn-examples b{color:#dc2626;font-family:'Kaiti SC','STKaiti',serif;font-size:15px;font-weight:700}
@media (max-width:820px){
  .zn-panels{grid-template-columns:1fr}
  .zn-panel{min-height:180px}
}
@media (max-width:640px){
  .zn-tab{padding:8px 14px;font-size:13px}
  .zn-btn{flex:1;justify-content:center}
  .zn-check{flex:1;justify-content:center}
}

/* ===== 藏头诗生成器 (ct-) ===== */
.ct-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.ct-input-row{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.ct-input{flex:1;min-width:200px;padding:11px 16px;font-size:16px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:2px;box-sizing:border-box;font-weight:600}
.ct-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.ct-btn{padding:11px 22px;font-size:14px;border:1px solid #dc2626;border-radius:8px;background:#dc2626;color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ct-btn:hover{background:#ef4444;border-color:#ef4444}
.ct-hint{font-size:12px;color:var(--muted,var(--muted));line-height:1.9}
.ct-hint a{display:inline-block;margin:0 6px 4px 0;padding:3px 12px;background:var(--hover,var(--hover));color:var(--muted,#555);border-radius:6px;text-decoration:none;font-size:13px;transition:.15s;font-family:'Kaiti SC','STKaiti',serif}
.ct-hint a:hover{background:#dc2626;color:var(--panel)}
/* 加载 */
.ct-loading{padding:40px 20px;text-align:center;color:#dc2626;font-size:15px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:18px}
.ct-loading i{margin-right:8px}
.ct-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.ct-error i{margin-right:6px}
/* 卡片 */
.ct-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:0;margin-bottom:18px;overflow:hidden;box-shadow:0 4px 20px rgba(220,38,38,.08)}
.ct-poem-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(245,158,11,.15));border-bottom:1px solid rgba(245,158,11,.3);flex-wrap:wrap;gap:10px}
.ct-poem-title{font-size:22px;font-weight:700;color:#ef4444;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:2px}
.ct-again-btn{padding:8px 16px;font-size:13px;border:1px solid #dc2626;border-radius:8px;background:var(--panel);color:#dc2626;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.ct-again-btn:hover{background:#dc2626;color:var(--panel)}
/* 诗句 */
.ct-poem-body{padding:24px 20px;background:linear-gradient(180deg,rgba(245,158,11,.05),var(--panel));background-image:linear-gradient(rgba(220,38,38,.03) 1px, transparent 1px);background-size:100% 36px}
.ct-line{display:flex;align-items:flex-start;gap:14px;padding:10px 0;flex-wrap:wrap;position:relative}
.ct-line-no{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:rgba(239,68,68,.15);color:#ef4444;font-size:12px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.ct-line-text{flex:1;min-width:200px;font-size:20px;line-height:1.9;color:var(--fg);font-family:'Kaiti SC','STKaiti',serif;letter-spacing:2px}
.ct-first-char{color:#dc2626;font-weight:700;font-size:24px;padding:0 2px;text-shadow:0 0 8px rgba(220,38,38,.2)}
.ct-line-tag{font-size:11px;color:var(--muted);background:var(--hover);padding:2px 8px;border-radius:4px;margin-left:6px;font-family:inherit;letter-spacing:0}
.ct-line-empty{opacity:.5}
.ct-line-empty .ct-line-text{font-style:italic;color:var(--muted)}
/* 藏头 */
.ct-acrostic-hint{display:flex;align-items:center;gap:14px;padding:16px 20px;background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(245,158,11,.15));border-top:1px solid rgba(245,158,11,.3);flex-wrap:wrap}
.ct-acrostic-label{font-size:14px;color:#f59e0b;font-weight:600}
.ct-acrostic-chars{display:flex;gap:8px;flex-wrap:wrap}
.ct-acrostic-char{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--panel);border:2px solid #dc2626;color:#ef4444;font-size:22px;font-weight:700;font-family:'Kaiti SC','STKaiti',serif;box-shadow:0 3px 10px rgba(220,38,38,.15)}
/* 说明 */
.ct-tips{list-style:none;padding:0;margin:0}
.ct-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.ct-tips li:last-child{border-bottom:none}
.ct-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#dc2626;font-size:12px}
.ct-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .ct-input-row{flex-direction:column;align-items:stretch}
  .ct-btn{width:100%;justify-content:center}
  .ct-line-text{font-size:17px}
  .ct-first-char{font-size:20px}
  .ct-poem-title{font-size:18px}
  .ct-acrostic-char{width:34px;height:34px;font-size:18px}
}
/* 藏头诗 - 诗句布局优化 */
.ct-line{display:flex;align-items:flex-start;gap:14px;padding:12px 0;border-bottom:1px dashed rgba(220,38,38,.1)}
.ct-line:last-child{border-bottom:none}
.ct-line-no{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin-top:4px;border-radius:50%;background:rgba(239,68,68,.15);color:#ef4444;font-size:12px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.ct-line-body{flex:1;min-width:0}
.ct-line-text{font-size:20px;line-height:1.8;color:var(--fg);font-family:'Kaiti SC','STKaiti',serif;letter-spacing:2px;word-break:break-word}
.ct-first-char{color:#dc2626;font-weight:700;font-size:24px;padding:0 2px;text-shadow:0 0 8px rgba(220,38,38,.2)}
.ct-line-source{font-size:12px;color:var(--muted,var(--muted));margin-top:4px;line-height:1.6;font-family:inherit;letter-spacing:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ct-line-tag{font-size:11px;color:var(--muted);background:var(--hover);padding:1px 8px;border-radius:4px;font-family:inherit;letter-spacing:0}
.ct-line-empty{opacity:.5}
.ct-line-empty .ct-line-text{font-style:italic;color:var(--muted)}
@media (max-width:640px){
  .ct-line-text{font-size:17px;letter-spacing:1px}
  .ct-first-char{font-size:20px}
  .ct-line{gap:10px;padding:10px 0}
  .ct-line-no{width:22px;height:22px;font-size:11px}
}
/* 藏头诗 - 终极覆盖（放最后，优先级最高） */
.ct-poem-body .ct-line{display:flex !important;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px dashed rgba(220,38,38,.12);flex-wrap:nowrap}
.ct-poem-body .ct-line:last-child{border-bottom:none}
.ct-poem-body .ct-line-no{flex:0 0 26px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;margin-top:6px;border-radius:50%;background:rgba(239,68,68,.15);color:#ef4444;font-size:12px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.ct-poem-body .ct-line-body{flex:1 1 auto;min-width:0;display:block}
.ct-poem-body .ct-line-text{display:block;font-size:20px;line-height:1.7;color:var(--fg);font-family:'Kaiti SC','STKaiti',serif;letter-spacing:2px;margin:0 0 6px 0}
.ct-poem-body .ct-first-char{color:#dc2626;font-weight:700;font-size:24px;padding:0 2px;text-shadow:0 0 8px rgba(220,38,38,.2)}
.ct-poem-body .ct-line-source{display:block !important;margin:0 !important;padding:0 !important;font-size:12px;color:var(--muted,var(--muted));line-height:1.5;font-family:inherit;letter-spacing:0;text-align:left;flex:none;width:auto;align-self:auto;background:transparent;border:none}
.ct-poem-body .ct-line-source b{color:#ef4444;font-weight:600;font-family:inherit;background:transparent}
.ct-poem-body .ct-line-tag{display:inline-block;margin-left:8px;padding:1px 8px;font-size:11px;background:var(--hover);color:var(--muted);border-radius:4px;font-family:inherit;letter-spacing:0}
@media (max-width:640px){
  .ct-poem-body .ct-line-text{font-size:17px;letter-spacing:1px}
  .ct-poem-body .ct-first-char{font-size:20px}
  .ct-poem-body .ct-line-no{width:22px;height:22px;flex:0 0 22px;font-size:11px;margin-top:4px}
  .ct-poem-body .ct-line-source{font-size:11px}
}
/* ===== 诗词名句检索 (mj-) ===== */
.mj-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.mj-input-row{display:flex;align-items:center;gap:10px;position:relative;margin-bottom:12px;flex-wrap:wrap}
.mj-input-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.mj-input{flex:1;min-width:200px;padding:11px 14px 11px 38px;font-size:16px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box;font-family:'Kaiti SC','STKaiti',serif}
.mj-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.mj-btn{padding:11px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.mj-btn:hover{background:var(--accent);border-color:var(--accent)}
.mj-hot{font-size:12px;color:var(--muted,var(--muted));line-height:2}
.mj-hot-label{color:var(--muted,var(--muted));margin-right:4px}
.mj-hot-item{display:inline-block;margin:0 6px 4px 0;padding:3px 12px;background:var(--hover,var(--hover));color:var(--muted,#555);border-radius:16px;text-decoration:none;font-size:13px;transition:.15s;font-family:'Kaiti SC','STKaiti',serif}
.mj-hot-item:hover{background:var(--accent);color:var(--panel)}
/* 状态 */
.mj-loading{padding:40px 20px;text-align:center;color:var(--accent);font-size:15px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:18px}
.mj-loading i{margin-right:8px}
.mj-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.mj-error i{margin-right:6px}
/* 结果 */
.mj-result-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:14px;font-size:13px;color:var(--muted,var(--muted));flex-wrap:wrap;gap:8px}
.mj-result-kw b{color:#ef4444;font-family:'Kaiti SC','STKaiti',serif;font-size:16px}
.mj-result-count b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.mj-list{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.mj-card{display:flex;gap:14px;padding:16px 20px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;cursor:pointer;transition:.2s;position:relative;overflow:hidden}
.mj-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);transform:scaleY(0);transition:.2s;transform-origin:top}
.mj-card:hover{border-color:var(--accent);box-shadow:0 4px 16px rgba(59,130,246,.12);transform:translateX(2px)}
.mj-card:hover:before{transform:scaleY(1)}
.mj-card-num{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:8px;background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.15));color:var(--accent);font-size:12px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.mj-card-body{flex:1;min-width:0}
.mj-card-poem{font-family:'Kaiti SC','STKaiti',serif;font-size:17px;line-height:2;color:var(--fg,#111);margin-bottom:8px;word-break:break-word}
.mj-ctx{color:var(--muted,var(--muted));font-size:15px;margin:0 4px;opacity:.8}
.mj-ctx:first-child:after{content:' · ';color:var(--line)}
.mj-ctx:last-child:before{content:' · ';color:var(--line)}
.mj-main{color:#111;font-weight:500}
.mj-mark{background:linear-gradient(180deg,transparent 60%,rgba(245,158,11,.3) 60%);color:#ef4444;font-weight:700;padding:0 1px}
.mj-card-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted,var(--muted));flex-wrap:wrap}
.mj-dynasty{color:#dc2626;font-weight:600}
.mj-author{color:var(--muted,var(--muted))}
.mj-name{color:var(--accent);font-family:'Kaiti SC','STKaiti',serif}
.mj-view{margin-left:auto;color:var(--accent);display:inline-flex;align-items:center;gap:4px;font-size:11px;opacity:0;transition:.2s}
.mj-card:hover .mj-view{opacity:1}
/* 弹层 */
.mj-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.mj-modal-mask{position:absolute;inset:0;background:rgba(15,23,42,.6);backdrop-filter:blur(4px)}
.mj-modal-body{position:relative;background:var(--panel,var(--panel));border-radius:16px;max-width:680px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:mjSlide .3s}
@keyframes mjSlide{from{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}
.mj-modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:var(--hover,var(--hover));color:var(--muted,var(--muted));border-radius:50%;cursor:pointer;font-size:16px;transition:.15s;z-index:1}
.mj-modal-close:hover{background:#dc2626;color:var(--panel)}
.mj-modal-loading{padding:80px 20px;text-align:center;color:var(--accent);font-size:15px}
.mj-modal-loading i{margin-right:8px}
.mj-poem-detail{padding:32px 28px}
.mj-poem-header{text-align:center;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line,var(--hover))}
.mj-poem-title{font-size:26px;font-weight:700;color:#111;font-family:'Kaiti SC','STKaiti',serif;margin-bottom:10px;letter-spacing:2px}
.mj-poem-author{font-size:14px;color:var(--muted,var(--muted));display:flex;justify-content:center;align-items:center;gap:6px}
.mj-poem-dynasty{color:#dc2626;font-weight:600}
.mj-poem-content{font-family:'Kaiti SC','STKaiti',serif;font-size:18px;line-height:2.2;color:var(--fg,#111);text-align:center;letter-spacing:1px;word-break:break-word}
.mj-poem-tags{margin-top:20px;padding-top:16px;border-top:1px dashed var(--line,var(--line));display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.mj-tag{display:inline-block;padding:3px 12px;font-size:12px;background:rgba(59,130,246,.1);color:var(--accent);border-radius:14px}
/* 说明 */
.mj-tips{list-style:none;padding:0;margin:0}
.mj-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.mj-tips li:last-child{border-bottom:none}
.mj-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.mj-tips b{color:var(--fg,#111)}
.mj-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .mj-input-row{flex-direction:column;align-items:stretch}
  .mj-input-row > i{top:14px}
  .mj-btn{width:100%;justify-content:center}
  .mj-card-poem{font-size:15px;line-height:1.9}
  .mj-ctx{font-size:13px}
  .mj-poem-detail{padding:24px 18px}
  .mj-poem-title{font-size:20px}
  .mj-poem-content{font-size:16px;line-height:2}
}

/* ===== 词牌名大全 (cp-) ===== */
.cp-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px}
.cp-search-row{display:flex;align-items:center;gap:10px;position:relative;margin-bottom:10px}
.cp-search-row > i{position:absolute;left:14px;color:var(--muted);font-size:14px;pointer-events:none}
.cp-input{flex:1;padding:11px 14px 11px 38px;font-size:15px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;box-sizing:border-box}
.cp-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.cp-count{font-size:13px;color:var(--muted)}
.cp-count b{color:var(--accent)}
/* 卡片列表 */
.cp-list{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.cp-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px;transition:.15s;border-left:4px solid var(--accent)}
.cp-card:hover{border-color:var(--accent);box-shadow:0 4px 16px rgba(59,130,246,.1);transform:translateY(-1px)}
.cp-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}
.cp-card-name{font-size:22px;font-weight:700;color:var(--fg);font-family:'Kaiti SC','STKaiti',serif;letter-spacing:2px}
.cp-card-count{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;font-size:12px;background:rgba(59,130,246,.1);color:var(--accent);border-radius:12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
.cp-card-alias{margin-bottom:10px;font-size:13px;line-height:2}
.cp-alias-label{color:var(--muted);margin-right:4px}
.cp-alias-item{display:inline-block;margin:0 6px 4px 0;padding:2px 10px;background:var(--hover);color:var(--muted);border-radius:12px;font-size:12px;font-family:'Kaiti SC','STKaiti',serif}
.cp-card-rep{margin-bottom:10px;font-size:14px;line-height:1.8}
.cp-rep-label{color:#dc2626;font-weight:600;margin-right:4px}
.cp-rep-label i{font-size:11px}
.cp-rep-text{color:var(--fg);font-family:'Kaiti SC','STKaiti',serif}
.cp-card-intro{font-size:13px;color:var(--muted);line-height:1.9;padding-top:10px;border-top:1px dashed var(--line)}
.cp-mark{background:linear-gradient(180deg,transparent 60%,rgba(245,158,11,.3) 60%);color:#ef4444;font-weight:700;padding:0 1px;font-style:normal}
.cp-empty{text-align:center;padding:50px 20px;color:var(--muted)}
.cp-empty i{font-size:40px;display:block;margin-bottom:12px;opacity:.5}
.cp-empty p{margin:0;font-size:14px}
/* 说明 */
.cp-tips{list-style:none;padding:0;margin:0}
.cp-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.cp-tips li:last-child{border-bottom:none}
.cp-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.cp-tips b{color:var(--fg)}
@media (max-width:640px){
  .cp-card{padding:14px}
  .cp-card-name{font-size:18px}
  .cp-card-count{font-size:11px;padding:3px 10px}
}

/* ===== 诗人生卒年表 (pn-) ===== */
.pn-toolbar{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.pn-search-row{display:flex;align-items:center;gap:10px;position:relative;margin-bottom:12px}
.pn-search-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.pn-input{flex:1;padding:11px 14px 11px 38px;font-size:15px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box}
.pn-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.pn-dynasty-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.pn-dtab{padding:6px 14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:16px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;font-family:'Kaiti SC','STKaiti',serif}
.pn-dtab:hover{border-color:var(--accent);color:var(--accent)}
.pn-dtab.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.pn-count{font-size:13px;color:var(--muted,var(--muted))}
.pn-count b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
/* 加载 */
.pn-loading{padding:40px 20px;text-align:center;color:var(--accent);font-size:15px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:18px}
.pn-loading i{margin-right:8px}
.pn-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.pn-error i{margin-right:6px}
/* 卡片列表 */
.pn-list{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.pn-card{display:flex;align-items:center;gap:16px;padding:14px 18px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;cursor:pointer;transition:.15s;position:relative;overflow:hidden}
.pn-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);transform:scaleY(0);transition:.2s;transform-origin:top}
.pn-card:hover{border-color:var(--accent);box-shadow:0 4px 14px rgba(59,130,246,.12);transform:translateX(2px)}
.pn-card:hover:before{transform:scaleY(1)}
/* 生卒年可视化 */
.pn-card-years{flex-shrink:0;display:flex;align-items:center;gap:4px;padding:6px 12px;background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.15));border-radius:10px;min-width:140px;justify-content:center}
.pn-years-num{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;font-weight:700;color:var(--accent)}
.pn-years-line{width:16px;height:2px;background:rgba(59,130,246,.4);border-radius:1px}
.pn-card-body{flex:1;min-width:0}
.pn-card-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}
.pn-card-name{font-size:18px;font-weight:700;color:#111;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:1px}
.pn-card-dynasty{display:inline-block;padding:2px 10px;font-size:12px;background:rgba(239,68,68,.1);color:#ef4444;border-radius:10px;font-family:'Kaiti SC','STKaiti',serif}
.pn-card-designation{display:inline-block;padding:2px 10px;font-size:12px;background:rgba(245,158,11,.15);color:#f59e0b;border-radius:10px}
.pn-card-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted,var(--muted))}
.pn-meta-item{display:inline-flex;align-items:center;gap:4px}
.pn-meta-label{color:var(--muted);font-size:11px;background:var(--hover);padding:1px 6px;border-radius:3px}
.pn-meta-life{color:#059669;font-weight:500}
.pn-card-view{flex-shrink:0;color:var(--line);font-size:14px;transition:.15s}
.pn-card:hover .pn-card-view{color:var(--accent);transform:translateX(4px)}
/* 分页 */
.pn-pager{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.pn-page-btn{padding:8px 14px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;font-family:ui-monospace,Menlo,Consolas,monospace}
.pn-page-btn:hover{border-color:var(--accent);color:var(--accent)}
.pn-page-btn.on{background:var(--accent);border-color:var(--accent);color:var(--panel);font-weight:700}
.pn-page-ellipsis{color:var(--muted);padding:0 4px}
/* 弹层 */
.pn-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.pn-modal-mask{position:absolute;inset:0;background:rgba(15,23,42,.6);backdrop-filter:blur(4px)}
.pn-modal-body{position:relative;background:var(--panel,var(--panel));border-radius:16px;max-width:720px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:pnSlide .3s}
@keyframes pnSlide{from{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}
.pn-modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:none;background:var(--hover,var(--hover));color:var(--muted,var(--muted));border-radius:50%;cursor:pointer;font-size:16px;transition:.15s;z-index:1}
.pn-modal-close:hover{background:#dc2626;color:var(--panel)}
.pn-modal-loading{padding:80px 20px;text-align:center;color:var(--accent);font-size:15px}
.pn-modal-loading i{margin-right:8px}
.pn-detail{padding:32px 28px}
.pn-detail-head{text-align:center;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line,var(--hover))}
.pn-detail-name{font-size:30px;font-weight:700;color:#111;font-family:'Kaiti SC','STKaiti',serif;margin-bottom:10px;letter-spacing:3px}
.pn-detail-meta{font-size:14px;color:var(--muted,var(--muted));display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.pn-detail-dynasty{color:#dc2626;font-weight:600;font-family:'Kaiti SC','STKaiti',serif}
.pn-detail-design{color:#f59e0b;background:rgba(245,158,11,.15);padding:2px 10px;border-radius:10px;font-size:12px}
.pn-detail-years{font-size:15px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;margin-bottom:8px}
.pn-detail-zh{font-size:13px;color:var(--muted,var(--muted));display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.pn-detail-zh span{display:inline-block;padding:2px 12px;background:rgba(59,130,246,.1);color:var(--accent);border-radius:10px;font-family:'Kaiti SC','STKaiti',serif}
.pn-detail-content{font-size:15px;line-height:2;color:var(--fg,#222);font-family:inherit;word-break:break-word;padding:0 4px}
.pn-detail-content br{display:block;content:'';margin:4px 0}
/* 说明 */
.pn-tips{list-style:none;padding:0;margin:0}
.pn-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.pn-tips li:last-child{border-bottom:none}
.pn-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.pn-tips b{color:var(--fg,#111)}
.pn-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .pn-card{padding:12px;gap:10px;flex-wrap:wrap}
  .pn-card-years{min-width:auto;padding:4px 10px;font-size:12px}
  .pn-years-num{font-size:12px}
  .pn-card-name{font-size:16px}
  .pn-card-meta{font-size:12px;gap:8px}
  .pn-detail{padding:24px 18px}
  .pn-detail-name{font-size:22px}
  .pn-detail-content{font-size:14px;line-height:1.9}
}/* ===== 天干地支计算器 (gz-) ===== */
.gz-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:16px}
.gz-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.gz-row:last-of-type{margin-bottom:0}
.gz-row-btns{gap:10px}
.gz-label{font-size:14px;color:var(--muted,var(--muted));font-weight:500;white-space:nowrap}
.gz-input{padding:10px 14px;font-size:15px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.gz-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.gz-btn{padding:10px 22px;font-size:14px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.gz-btn:hover{border-color:var(--accent);color:var(--accent)}
.gz-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.gz-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.gz-hint{font-size:12px;color:var(--muted,var(--muted));margin-top:8px}
/* 主卡片 */
.gz-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:16px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(0,0,0,.04)}
.gz-card-head{text-align:center;margin-bottom:24px;padding-bottom:20px;border-bottom:1px dashed var(--line,var(--line))}
.gz-card-title{font-size:22px;font-weight:700;color:#111;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:4px;margin-bottom:8px}
.gz-card-date{font-size:14px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
/* 四柱 */
.gz-pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}
.gz-pillar{background:linear-gradient(180deg,rgba(245,158,11,.06),var(--panel));border:1px solid rgba(245,158,11,.3);border-radius:12px;padding:16px 10px;text-align:center;position:relative;overflow:hidden}
.gz-pillar:before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#dc2626,#f59e0b)}
.gz-pillar-name{font-size:12px;color:#f59e0b;font-weight:600;margin-bottom:12px;letter-spacing:2px}
.gz-pillar-gz{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.gz-pillar-gan,.gz-pillar-zhi{font-size:32px;font-weight:700;line-height:1.1;font-family:'Kaiti SC','STKaiti',serif}
.gz-pillar-gan{color:#dc2626}
.gz-pillar-zhi{color:#f59e0b}
.gz-pillar-nayin{font-size:12px;color:var(--muted,var(--muted));padding-top:8px;border-top:1px dashed rgba(245,158,11,.3);font-family:'Kaiti SC','STKaiti',serif}
/* 八字展示 */
.gz-bazi-wrap{background:linear-gradient(135deg,#0f172a,#1e293b);border-radius:12px;padding:18px 20px;margin-bottom:18px;text-align:center}
.gz-bazi-label{font-size:12px;color:#94a3b8;margin-bottom:10px;letter-spacing:3px}
.gz-bazi-chars{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}
.gz-bazi-char{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:linear-gradient(135deg,#dc2626,#ef4444);color:var(--panel);font-size:24px;font-weight:700;border-radius:8px;font-family:'Kaiti SC','STKaiti',serif;box-shadow:0 3px 10px rgba(220,38,38,.3)}
.gz-bazi-char:nth-child(n+5):not(:nth-child(n+9)){background:linear-gradient(135deg,#f59e0b,#f59e0b)}
.gz-bazi-char:nth-child(n+9):not(:nth-child(n+13)){background:linear-gradient(135deg,var(--accent),var(--accent))}
.gz-bazi-char:nth-child(n+13){background:linear-gradient(135deg,#7c3aed,#6d28d9)}
.gz-bazi-space{width:14px}
/* 信息网格 */
.gz-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-bottom:18px}
.gz-info-item{padding:12px 16px;background:var(--hover,var(--hover));border:1px solid var(--line,var(--line));border-radius:10px}
.gz-info-key{font-size:12px;color:var(--muted,var(--muted));margin-bottom:6px}
.gz-info-val{font-size:16px;color:var(--fg,#111);font-weight:600;font-family:'Kaiti SC','STKaiti',serif}
.gz-info-big{font-size:20px;color:#dc2626}
.gz-note{padding:12px 14px;background:rgba(59,130,246,.1);color:#3b82f6;border:1px solid rgba(59,130,246,.3);border-radius:10px;font-size:13px;line-height:1.7}
.gz-note i{color:var(--accent);margin-right:6px}
.gz-note b{font-weight:700;color:#3b82f6}
/* 60 甲子表 */
.gz-table-wrap{overflow-x:auto}
.gz-table{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}
.gz-table th,.gz-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line,var(--hover));font-family:'Kaiti SC','STKaiti',serif}
.gz-table th{background:var(--hover,var(--hover));font-weight:600;color:var(--muted,var(--fg));font-size:12px;white-space:nowrap}
.gz-table tr:last-child td{border-bottom:none}
.gz-table tr:hover td{background:var(--hover,var(--hover))}
.gz-table td:first-child,.gz-table td:nth-child(4){color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;text-align:center;width:40px}
.gz-table td:nth-child(2),.gz-table td:nth-child(5){color:#dc2626;font-size:15px;letter-spacing:1px}
.gz-table td:nth-child(3),.gz-table td:nth-child(6){color:#3b82f6;font-size:12px}
/* 说明 */
.gz-tips{list-style:none;padding:0;margin:0}
.gz-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.gz-tips li:last-child{border-bottom:none}
.gz-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.gz-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .gz-pillars{grid-template-columns:repeat(2,1fr);gap:10px}
  .gz-pillar-gan,.gz-pillar-zhi{font-size:26px}
  .gz-bazi-char{width:34px;height:34px;font-size:20px}
  .gz-row{flex-direction:column;align-items:stretch}
  .gz-btn{width:100%;justify-content:center}
  .gz-input{width:100%}
}/* ===== 历代都城一览 (dc-) ===== */
.dc-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.dc-search-row{display:flex;align-items:center;gap:10px;position:relative;margin-bottom:12px}
.dc-search-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.dc-input{flex:1;padding:11px 14px 11px 38px;font-size:15px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box}
.dc-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.dc-tabs{display:flex;gap:6px;margin-bottom:12px;background:var(--hover,var(--hover));padding:4px;border-radius:10px;flex-wrap:wrap}
.dc-tab{padding:9px 18px;font-size:13px;border:none;border-radius:8px;background:transparent;color:var(--muted,var(--muted));cursor:pointer;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px;flex:1;justify-content:center;min-width:140px}
.dc-tab:hover{color:var(--accent)}
.dc-tab.on{background:var(--panel);color:var(--accent);box-shadow:0 2px 6px rgba(0,0,0,.08)}
.dc-count{font-size:13px;color:var(--muted,var(--muted))}
.dc-count b{color:var(--accent)}
/* 列表 */
.dc-list{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.dc-card{display:flex;gap:16px;padding:18px 20px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;transition:.15s;border-left:4px solid #f59e0b;position:relative}
.dc-card:hover{border-color:#f59e0b;box-shadow:0 4px 16px rgba(217,119,6,.12);transform:translateY(-1px)}
.dc-card-num{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border-radius:8px;background:linear-gradient(135deg,rgba(245,158,11,.15),rgba(245,158,11,.3));color:#f59e0b;font-size:13px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.dc-card-body{flex:1;min-width:0}
.dc-card-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.dc-card-dynasty{display:inline-block;padding:3px 12px;font-size:12px;background:linear-gradient(135deg,#dc2626,#ef4444);color:var(--panel);border-radius:12px;font-family:'Kaiti SC','STKaiti',serif;font-weight:600;letter-spacing:1px}
.dc-card-name{font-size:20px;font-weight:700;color:#111;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:1px}
.dc-card-city{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;font-size:12px;background:rgba(59,130,246,.1);color:var(--accent);border-radius:12px}
.dc-card-city i{font-size:11px}
.dc-card-meta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:10px;font-size:13px}
.dc-meta-item{display:inline-flex;align-items:center;gap:6px;color:var(--muted,var(--muted))}
.dc-meta-label{color:var(--muted);font-size:11px;background:var(--hover);padding:1px 6px;border-radius:3px}
.dc-card-relics{font-size:13px;color:#f59e0b;background:rgba(245,158,11,.15);padding:8px 12px;border-radius:8px;margin-bottom:10px;line-height:1.7}
.dc-card-relics i{color:#f59e0b;margin-right:4px;font-size:12px}
.dc-card-relics b{color:#f59e0b}
.dc-card-desc{font-size:13px;color:var(--muted,var(--muted));line-height:1.9;padding-top:10px;border-top:1px dashed var(--line,var(--hover))}
.dc-mark{background:linear-gradient(180deg,transparent 60%,rgba(245,158,11,.3) 60%);color:#ef4444;font-weight:700;padding:0 1px}
/* 分组 */
.dc-group{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;margin-bottom:14px}
.dc-group-head{font-size:16px;font-weight:700;color:#111;font-family:'Kaiti SC','STKaiti',serif;padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line,var(--hover));display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dc-group-head i{color:#f59e0b}
.dc-group-count{margin-left:auto;font-size:12px;color:#f59e0b;background:rgba(245,158,11,.15);padding:3px 12px;border-radius:12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:500}
.dc-group-body{display:flex;flex-direction:column;gap:10px}
.dc-empty{text-align:center;padding:50px 20px;color:var(--muted,var(--muted))}
.dc-empty i{font-size:40px;display:block;margin-bottom:12px;opacity:.5}
.dc-empty p{margin:0;font-size:14px}
/* 图例 */
.dc-legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:14px}
.dc-legend-item{padding:14px 18px;border-radius:12px;border:2px solid;text-align:center}
.dc-legend-item b{display:block;font-size:16px;font-family:'Kaiti SC','STKaiti',serif;margin-bottom:4px}
.dc-legend-item span{font-size:12px;opacity:.75}
.dc-legend-xian{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.4);color:#ef4444}
.dc-legend-luoyang{background:rgba(245,158,11,.15);border-color:rgba(245,158,11,.3);color:#f59e0b}
.dc-legend-nanjing{background:rgba(59,130,246,.15);border-color:rgba(59,130,246,.4);color:#3b82f6}
.dc-legend-beijing{background:rgba(16,185,129,.15);border-color:rgba(16,185,129,.4);color:#10b981}
.dc-legend-tips{list-style:none;padding:14px 16px;margin:0;background:var(--hover,var(--hover));border-radius:10px;font-size:13px;line-height:2;color:var(--muted,var(--muted))}
.dc-legend-tips li{padding-left:6px}
.dc-legend-tips b{color:#111}
/* 说明 */
.dc-tips{list-style:none;padding:0;margin:0}
.dc-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.dc-tips li:last-child{border-bottom:none}
.dc-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.dc-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .dc-card{padding:14px}
  .dc-card-name{font-size:16px}
  .dc-card-head{gap:8px}
  .dc-card-num{min-width:26px;height:26px;font-size:12px}
  .dc-card-desc{font-size:12px;line-height:1.8}
  .dc-tab{font-size:12px;padding:7px 12px;min-width:auto}
}/* ===== 中国历史大事年表 (hs-) ===== */
.hs-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:18px;margin-bottom:14px}
.hs-search-row{display:flex;align-items:center;gap:10px;position:relative;margin-bottom:12px}
.hs-search-row > i{position:absolute;left:14px;color:var(--muted,var(--muted));font-size:14px;pointer-events:none}
.hs-input{flex:1;padding:11px 14px 11px 38px;font-size:15px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;box-sizing:border-box}
.hs-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.hs-dynasty-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.hs-dtab{padding:6px 16px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:16px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;transition:.15s;white-space:nowrap;font-family:'Kaiti SC','STKaiti',serif;font-weight:500}
.hs-dtab:hover{border-color:var(--accent);color:var(--accent)}
.hs-dtab.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.hs-count{font-size:13px;color:var(--muted,var(--muted))}
.hs-count b{color:var(--accent)}
/* 分组 */
.hs-group{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:14px;overflow:hidden}
.hs-group-head{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:linear-gradient(90deg,rgba(245,158,11,.15),var(--panel));border-bottom:1px solid rgba(245,158,11,.3)}
.hs-group-title{font-size:18px;font-weight:700;color:#f59e0b;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:2px}
.hs-group-count{font-size:12px;color:#f59e0b;background:var(--panel);padding:3px 12px;border-radius:12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}
/* 时间轴 */
.hs-timelines{padding:8px 20px}
.hs-item{display:flex;gap:16px;padding:14px 0;position:relative;border-bottom:1px dashed var(--line,var(--hover))}
.hs-item:last-child{border-bottom:none}
.hs-item-year{flex-shrink:0;width:100px;display:flex;align-items:flex-start;gap:8px;padding-top:2px}
.hs-year-text{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;font-weight:700;color:#dc2626;white-space:nowrap}
.hs-year-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:#dc2626;margin-top:6px;position:relative;box-shadow:0 0 0 3px rgba(220,38,38,.15)}
.hs-item-body{flex:1;min-width:0}
.hs-item-name{font-size:16px;font-weight:700;color:#111;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:1px;margin-bottom:6px}
.hs-item-desc{font-size:13px;color:var(--muted,var(--muted));line-height:1.8;margin-bottom:8px}
.hs-item-impact{font-size:12px;color:#f59e0b;background:rgba(245,158,11,.15);padding:6px 12px;border-radius:6px;line-height:1.7;border-left:3px solid #f59e0b}
.hs-item-impact i{color:#f59e0b;margin-right:4px;font-size:11px}
.hs-item-impact b{color:#f59e0b}
.hs-mark{background:linear-gradient(180deg,transparent 60%,rgba(245,158,11,.3) 60%);color:#ef4444;font-weight:700;padding:0 1px}
.hs-empty{text-align:center;padding:50px 20px;color:var(--muted,var(--muted))}
.hs-empty i{font-size:40px;display:block;margin-bottom:12px;opacity:.5}
.hs-empty p{margin:0;font-size:14px}
/* 说明 */
.hs-tips{list-style:none;padding:0;margin:0}
.hs-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.hs-tips li:last-child{border-bottom:none}
.hs-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.hs-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .hs-dtab{font-size:12px;padding:5px 12px}
  .hs-item{flex-direction:column;gap:6px;padding:12px 0}
  .hs-item-year{width:auto}
  .hs-item-name{font-size:15px}
  .hs-item-desc{font-size:12px;line-height:1.7}
  .hs-item-impact{font-size:11px}
}

/* 世界历史大事年表 - 内嵌样式（强制最高优先级） */
.wh-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px}
.wh-search-row{display:flex;align-items:center;gap:10px;position:relative;margin-bottom:12px}
.wh-search-row > i{position:absolute;left:14px;color:var(--muted);font-size:14px;pointer-events:none}
.wh-input{flex:1;padding:11px 14px 11px 38px;font-size:15px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;box-sizing:border-box}
.wh-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.wh-era-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.wh-etab{padding:6px 16px;font-size:13px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;white-space:nowrap;font-weight:500}
.wh-etab:hover{border-color:var(--accent);color:var(--accent)}
.wh-etab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.wh-count{font-size:13px;color:var(--muted)}
.wh-count b{color:var(--accent)}
.wh-group{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-bottom:16px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.wh-group-head{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;background:linear-gradient(90deg,rgba(59,130,246,.15) 0%,rgba(59,130,246,.1) 60%,var(--panel) 100%);border-bottom:2px solid rgba(59,130,246,.4)}
.wh-group-title{font-size:18px;font-weight:700;color:#3b82f6;letter-spacing:2px;display:flex;align-items:center;gap:8px}
.wh-group-count{font-size:12px;color:var(--accent);background:var(--panel);padding:4px 14px;border-radius:12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;border:1px solid rgba(59,130,246,.3)}
.wh-list{padding:0}
.wh-item{display:table !important;width:100%;table-layout:fixed;border-bottom:1px solid var(--line);transition:.15s;box-sizing:border-box}
.wh-item:last-child{border-bottom:none}
.wh-item:hover{background:var(--hover)}
.wh-item-year{display:table-cell !important;width:120px;vertical-align:top;background:rgba(239,68,68,.1);color:#ef4444;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;font-weight:700;padding:18px 14px;border-right:2px solid rgba(239,68,68,.3);line-height:1.4;text-align:right;box-sizing:border-box}
.wh-item-body{display:table-cell !important;vertical-align:top;padding:16px 20px;box-sizing:border-box}
.wh-item-name{font-size:16px;font-weight:700;color:var(--fg);margin-bottom:8px;line-height:1.4}
.wh-item-desc{font-size:13px;color:var(--muted);line-height:1.8;margin-bottom:10px}
.wh-item-impact{display:inline-block;font-size:12px;color:#3b82f6;background:rgba(59,130,246,.1);padding:6px 14px;border-radius:6px;line-height:1.7;border-left:3px solid var(--accent);max-width:100%;box-sizing:border-box}
.wh-item-impact i{color:var(--accent);margin-right:4px;font-size:11px}
.wh-item-impact b{color:#3b82f6}
.wh-mark{background:linear-gradient(180deg,transparent 60%,rgba(245,158,11,.3) 60%);color:#f59e0b;font-weight:700;padding:0 2px;border-radius:2px}
.wh-empty{text-align:center;padding:60px 20px;color:var(--muted)}
.wh-empty i{font-size:44px;display:block;margin-bottom:12px;opacity:.5}
.wh-empty p{margin:0;font-size:14px}
.wh-tips{list-style:none;padding:0;margin:0}
.wh-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.wh-tips li:last-child{border-bottom:none}
.wh-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.wh-tips b{color:var(--fg)}
@media (max-width:640px){
  .wh-etab{font-size:12px;padding:5px 12px}
  .wh-item-year{width:90px;font-size:12px;padding:14px 10px}
  .wh-item-body{padding:12px 14px}
  .wh-item-name{font-size:15px}
  .wh-item-desc{font-size:12px}
  .wh-item-impact{font-size:11px;display:block}
  .wh-group-title{font-size:16px}
}

/* 公历农历互转 - 内嵌样式 */
.nl-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line)}
.nl-tab{padding:10px 22px;font-size:14px;border:none;background:transparent;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.nl-tab:hover{color:var(--accent)}
.nl-tab.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.nl-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px}
.nl-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.nl-row:last-of-type{margin-bottom:0}
.nl-label{font-size:14px;color:var(--muted);font-weight:500;white-space:nowrap}
.nl-input{padding:10px 14px;font-size:15px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:#222;outline:none;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.nl-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.nl-select{padding:10px 12px;font-size:15px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:#222;outline:none;cursor:pointer}
.nl-btn{padding:10px 22px;font-size:14px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:var(--panel);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.nl-btn:hover{background:var(--accent);border-color:var(--accent)}
.nl-btn-ghost{background:var(--panel);color:#555;border-color:var(--line)}
.nl-btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--panel)}
.nl-lunar-options{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
/* 大卡片 */
.nl-result{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-bottom:18px;box-shadow:0 4px 20px rgba(220,38,38,.06)}
.nl-result-head{background:linear-gradient(135deg,#dc2626,#ef4444);padding:24px 22px;color:var(--panel);text-align:center;position:relative}
.nl-result-head:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.15),transparent 60%);pointer-events:none}
.nl-solar-date{font-size:15px;color:rgba(255,255,255,.85);margin-bottom:10px;letter-spacing:1px}
.nl-lunar-date{font-size:38px;font-weight:700;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:6px;text-shadow:0 2px 12px rgba(0,0,0,.15);position:relative}
.nl-sub-info{margin-top:12px;font-size:14px;color:rgba(255,255,255,.9);display:flex;justify-content:center;gap:14px;flex-wrap:wrap;position:relative}
.nl-sub-info span{display:inline-flex;align-items:center;gap:6px}
.nl-sub-info i{opacity:.8}
/* 内容区 */
.nl-result-body{padding:20px 22px}
.nl-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:16px}
.nl-info-item{padding:12px 14px;background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.3);border-radius:10px;text-align:center}
.nl-info-key{font-size:12px;color:#f59e0b;margin-bottom:6px}
.nl-info-val{font-size:16px;color:#111;font-weight:700;font-family:'Kaiti SC','STKaiti',serif}
/* 宜忌 */
.nl-yiji{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.nl-yiji-col{padding:14px 16px;border-radius:10px;border:1px solid}
.nl-yi{background:rgba(16,185,129,.15);border-color:rgba(16,185,129,.4)}
.nl-ji{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.4)}
.nl-yiji-head{font-size:14px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.nl-yi .nl-yiji-head{color:#10b981}
.nl-ji .nl-yiji-head{color:#ef4444}
.nl-yiji-list{display:flex;flex-wrap:wrap;gap:6px}
.nl-yiji-item{display:inline-block;padding:3px 10px;font-size:12px;background:var(--panel);border-radius:12px;color:var(--fg)}
.nl-yi .nl-yiji-item{border:1px solid rgba(16,185,129,.4);color:#10b981}
.nl-ji .nl-yiji-item{border:1px solid rgba(239,68,68,.4);color:#ef4444}
/* 节气 */
.nl-jieqi{display:flex;align-items:center;gap:8px;padding:12px 16px;background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.3);border-radius:10px;font-size:14px;color:#3b82f6;margin-bottom:16px}
.nl-jieqi i{color:var(--accent)}
.nl-jieqi b{font-family:'Kaiti SC','STKaiti',serif;font-size:16px;color:#3b82f6}
/* 今日 */
.nl-today-row{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:linear-gradient(135deg,rgba(245,158,11,.15),rgba(245,158,11,.3));border-radius:12px;font-size:14px;color:#f59e0b;margin-bottom:16px;flex-wrap:wrap;gap:8px}
.nl-today-text{font-family:'Kaiti SC','STKaiti',serif}
.nl-today-text b{font-size:16px;color:#f59e0b}
/* 快速导航 */
.nl-quick{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.nl-quick-btn{padding:6px 14px;font-size:13px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:#555;cursor:pointer;transition:.15s}
.nl-quick-btn:hover{border-color:#dc2626;color:#dc2626}
.nl-quick-btn.on{background:#dc2626;border-color:#dc2626;color:var(--panel)}
.nl-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
@media (max-width:640px){
  .nl-tab{padding:8px 14px;font-size:13px}
  .nl-lunar-date{font-size:26px;letter-spacing:3px}
  .nl-row{flex-direction:column;align-items:stretch}
  .nl-input,.nl-select{width:100%}
  .nl-btn{width:100%;justify-content:center}
  .nl-yiji{grid-template-columns:1fr}
}/* ===== 中文标点符号大全 (bd-) ===== */
.bd-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px}
.bd-search-row{display:flex;align-items:center;gap:10px;position:relative;margin-bottom:12px}
.bd-search-row > i{position:absolute;left:14px;color:var(--muted);font-size:14px;pointer-events:none}
.bd-input{flex:1;padding:11px 14px 11px 38px;font-size:15px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:#222;outline:none;box-sizing:border-box}
.bd-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.bd-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.bd-tab{padding:6px 16px;font-size:13px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:#555;cursor:pointer;transition:.15s;white-space:nowrap;font-weight:500}
.bd-tab:hover{border-color:var(--accent);color:var(--accent)}
.bd-tab.on{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.bd-count{font-size:13px;color:var(--muted)}
.bd-count b{color:var(--accent)}

/* 卡片网格 */
.bd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:18px}
.bd-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;transition:.2s;position:relative}
.bd-card:hover{border-color:var(--accent);box-shadow:0 6px 20px rgba(59,130,246,.12);transform:translateY(-2px)}
.bd-card.bd-copied{border-color:#10b981;box-shadow:0 6px 20px rgba(16,185,129,.15)}
.bd-card-head{background:linear-gradient(135deg,rgba(14,165,233,.1),rgba(99,102,241,.12));padding:22px 16px;display:flex;align-items:center;justify-content:center;position:relative}
.bd-card-sym{font-family:'Kaiti SC','STKaiti','SimSun',serif;font-size:42px;color:var(--accent);font-weight:700;letter-spacing:2px;text-align:center;line-height:1.2;word-break:break-all}
.bd-card-copy{position:absolute;top:10px;right:10px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:rgba(255,255,255,.85);color:var(--muted);font-size:13px;transition:.15s;backdrop-filter:blur(4px)}
.bd-card:hover .bd-card-copy{color:var(--accent);background:var(--panel)}
.bd-copied .bd-card-copy{color:#10b981;background:var(--panel)}

.bd-card-body{padding:14px 16px}
.bd-card-name{font-size:16px;font-weight:700;color:#111;font-family:'Kaiti SC','STKaiti',serif;margin-bottom:4px;letter-spacing:1px}
.bd-card-en{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace;margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}
.bd-card-meta{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.bd-card-cat{display:inline-block;padding:2px 10px;font-size:11px;background:rgba(59,130,246,.1);color:var(--accent);border-radius:10px;font-weight:500}
.bd-card-uni{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:#f59e0b;background:rgba(245,158,11,.15);padding:2px 8px;border-radius:4px;font-weight:600}
.bd-card-usage{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:8px}
.bd-card-usage b{color:#111}
.bd-card-example{font-size:12px;color:#3b82f6;background:rgba(14,165,233,.1);padding:8px 12px;border-radius:6px;line-height:1.6;border-left:3px solid #06b6d4;font-family:'Kaiti SC','STKaiti',serif}
.bd-card-example b{color:#3b82f6}
.bd-mark{background:linear-gradient(180deg,transparent 60%,rgba(245,158,11,.3) 60%);color:#f59e0b;font-weight:700;padding:0 1px}
.bd-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--muted)}
.bd-empty i{font-size:44px;display:block;margin-bottom:12px;opacity:.5}
.bd-empty p{margin:0;font-size:14px}

/* 分类说明 */
.bd-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.bd-info-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;border-top:4px solid var(--accent)}
.bd-info-card:nth-child(2){border-top-color:#10b981}
.bd-info-card:nth-child(3){border-top-color:#f59e0b}
.bd-info-head{font-size:15px;font-weight:700;color:#111;margin-bottom:12px;display:flex;align-items:center;gap:8px;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:1px}
.bd-info-head i{color:var(--accent)}
.bd-info-card:nth-child(2) .bd-info-head i{color:#10b981}
.bd-info-card:nth-child(3) .bd-info-head i{color:#f59e0b}
.bd-info-body{font-size:13px;color:var(--muted);line-height:1.9}
.bd-info-body p{margin:0 0 8px}
.bd-info-body ul{list-style:none;padding:0;margin:0}
.bd-info-body li{padding-left:14px;position:relative}
.bd-info-body li:before{content:'·';position:absolute;left:4px;color:var(--accent);font-weight:900}
.bd-info-body b{color:#111;font-weight:600}

/* 响应式 */
@media (max-width:640px){
  .bd-tab{font-size:12px;padding:5px 12px}
  .bd-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
  .bd-card-sym{font-size:34px}
  .bd-card-head{padding:18px 12px}
  .bd-card-name{font-size:15px}
  .bd-info-grid{grid-template-columns:1fr}
}
/* 密度提升：缩小卡片 */
.bd-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))!important;gap:10px!important}
.bd-card-head{padding:14px 10px!important}
.bd-card-sym{font-size:32px!important}
.bd-card-body{padding:10px 12px!important}
.bd-card-name{font-size:14px!important;margin-bottom:2px!important}
.bd-card-en{font-size:10px!important;margin-bottom:6px!important}
.bd-card-meta{gap:6px!important;margin-bottom:6px!important}
.bd-card-cat{font-size:10px!important;padding:1px 8px!important}
.bd-card-uni{font-size:10px!important;padding:1px 6px!important}
.bd-card-usage{font-size:12px!important;line-height:1.6!important;margin-bottom:6px!important}
.bd-card-example{font-size:11px!important;padding:6px 10px!important}
@media (max-width:640px){
  .bd-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))!important;gap:8px!important}
  .bd-card-sym{font-size:26px!important}
  .bd-card-head{padding:10px 8px!important}
  .bd-card-body{padding:8px 10px!important}
  .bd-card-name{font-size:13px!important}
  .bd-card-usage{display:none!important}  /* 手机上隐藏用法节省空间 */
}




/* ===== 成语填空游戏 (cyf-) ===== */
.cyf-wrap{max-width:760px;margin:0 auto 18px}
.cyf-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}
.cyf-stat{background:linear-gradient(135deg,var(--panel),var(--hover));border:1px solid var(--line);border-radius:12px;padding:14px 8px;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.03)}
.cyf-stat-num{font-size:24px;font-weight:700;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.1}
.cyf-stat-label{font-size:12px;color:var(--muted);margin-top:4px}

.cyf-game{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 4px 24px rgba(0,0,0,.04)}
.cyf-game-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px}
.cyf-level-tabs{display:flex;gap:6px;background:var(--hover);padding:4px;border-radius:10px}
.cyf-level{padding:7px 16px;font-size:13px;border:none;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:5px}
.cyf-level:hover{color:var(--accent)}
.cyf-level.on{background:var(--panel);color:var(--accent);box-shadow:0 2px 6px rgba(0,0,0,.08)}
.cyf-skip{padding:7px 14px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.cyf-skip:hover{border-color:#f59e0b;color:#f59e0b}

.cyf-question{background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(16,185,129,.1));border-radius:16px;padding:40px 20px;margin-bottom:20px;text-align:center;min-height:140px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.cyf-question:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(59,130,246,.08),transparent 70%);pointer-events:none}
.cyf-q-text{font-size:48px;font-family:'Kaiti SC','STKaiti','SimSun',serif;font-weight:700;letter-spacing:8px;color:var(--fg);line-height:1.4;position:relative;word-break:break-all}
.cyf-char{display:inline-block;color:var(--fg)}
.cyf-char-ans{color:#dc2626;text-shadow:0 0 12px rgba(220,38,38,.3);animation:cyfPop .4s ease-out}
@keyframes cyfPop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
.cyf-blank{display:inline-block;color:var(--accent);border-bottom:3px solid var(--accent);padding:0 4px;min-width:36px;text-align:center}
.cyf-q-hint{margin-top:12px;font-size:13px;color:var(--muted);position:relative}
.cyf-q-full{margin-top:12px;font-size:14px;color:#f59e0b}
.cyf-q-full b{color:#dc2626;font-family:'Kaiti SC','STKaiti',serif;font-size:18px;letter-spacing:2px}
.cyf-loading{text-align:center;color:var(--accent);font-size:15px}
.cyf-loading i{margin-right:6px}
.cyf-error{text-align:center;color:#dc2626;font-size:14px}

.cyf-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.cyf-opt{padding:18px 10px;font-size:32px;font-family:'Kaiti SC','STKaiti','SimSun',serif;font-weight:700;border:2px solid var(--line);border-radius:12px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.2s;line-height:1}
.cyf-opt:hover:not(:disabled){border-color:var(--accent);color:var(--accent);transform:translateY(-2px);box-shadow:0 6px 20px rgba(59,130,246,.15)}
.cyf-opt:active:not(:disabled){transform:translateY(0)}
.cyf-opt:disabled{cursor:not-allowed;opacity:.5}
.cyf-opt-used{background:rgba(16,185,129,.1);border-color:#10b981;color:#10b981}

.cyf-feedback{margin-bottom:14px;min-height:0}
.cyf-fb{padding:12px 16px;border-radius:10px;font-size:14px;line-height:1.6}
.cyf-fb i{margin-right:6px}
.cyf-fb-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.cyf-fb-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.cyf-fb-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.cyf-fb b{font-family:'Kaiti SC','STKaiti',serif;font-size:16px;letter-spacing:2px;margin:0 4px}

.cyf-explain{background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.3);border-radius:12px;padding:14px 18px;margin-bottom:14px}
.cyf-explain-head{font-size:13px;color:#3b82f6;font-weight:600;margin-bottom:8px}
.cyf-explain-head i{color:var(--accent);margin-right:6px}
.cyf-explain-body{font-size:14px;color:#3b82f6;line-height:1.8}

.cyf-next-wrap{text-align:center}
.cyf-next-btn{padding:12px 32px;font-size:15px;border:1px solid var(--accent);border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent));color:#fff;cursor:pointer;font-weight:600;transition:.15s;display:inline-flex;align-items:center;gap:6px;box-shadow:0 4px 14px rgba(59,130,246,.3)}
.cyf-next-btn:hover{background:linear-gradient(135deg,var(--accent),var(--accent));transform:translateY(-1px);box-shadow:0 6px 20px rgba(59,130,246,.4)}

.cyf-tips{list-style:none;padding:0;margin:0}
.cyf-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.cyf-tips li:last-child{border-bottom:none}
.cyf-tips li:before{content:'\f11b';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:var(--accent);font-size:11px}
.cyf-tips b{color:var(--fg)}

@media (max-width:640px){
  .cyf-stats{grid-template-columns:repeat(3,1fr);gap:8px}
  .cyf-stat{padding:10px 6px}
  .cyf-stat-num{font-size:18px}
  .cyf-game{padding:16px}
  .cyf-question{padding:28px 12px;min-height:110px}
  .cyf-q-text{font-size:32px;letter-spacing:4px}
  .cyf-options{grid-template-columns:repeat(3,1fr);gap:8px}
  .cyf-opt{padding:14px 6px;font-size:24px}
  .cyf-level{padding:6px 10px;font-size:12px}
  .cyf-skip{padding:6px 10px;font-size:12px}
}

/* ===== 飞花令游戏 (fhl-) ===== */
.fhl-wrap{max-width:820px;margin:0 auto 18px}
.fhl-header{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px;background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-bottom:12px;flex-wrap:wrap}
.fhl-info{display:flex;gap:20px;flex-wrap:wrap}
.fhl-info-item{display:flex;flex-direction:column;align-items:center;min-width:60px}
.fhl-info-label{font-size:11px;color:var(--muted);margin-bottom:2px}
.fhl-info-num{font-size:18px;font-weight:700;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.fhl-keyword{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff;font-size:22px;font-weight:700;border-radius:10px;font-family:'Kaiti SC','STKaiti',serif;box-shadow:0 4px 12px rgba(220,38,38,.3)}
.fhl-header-actions{display:flex;gap:10px;flex-wrap:wrap}
.fhl-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.fhl-btn:hover{border-color:var(--accent);color:var(--accent)}
.fhl-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.fhl-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}

.fhl-timer-bar{height:6px;background:var(--hover);border-radius:3px;overflow:hidden;margin-bottom:14px}
.fhl-timer-fill{height:100%;width:0%;background:linear-gradient(90deg,#10b981,var(--accent),#f59e0b,#dc2626);border-radius:3px;transition:width .3s}

.fhl-chain{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px;min-height:320px;max-height:480px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}
.fhl-empty{text-align:center;padding:60px 20px;color:var(--muted)}
.fhl-empty i{font-size:44px;display:block;margin-bottom:12px;opacity:.5}
.fhl-empty p{margin:0;font-size:14px}
.fhl-loading{text-align:center;padding:60px 20px;color:var(--accent);font-size:15px}
.fhl-loading i{margin-right:6px}
.fhl-error{text-align:center;padding:40px 20px;color:#dc2626;font-size:14px}

.fhl-bubble{max-width:80%;padding:10px 14px;border-radius:12px}
.fhl-bubble-user{align-self:flex-end;background:linear-gradient(135deg,var(--accent),var(--accent));color:#fff;border-bottom-right-radius:4px}
.fhl-bubble-ai{align-self:flex-start;background:var(--panel);border:1px solid var(--line);border-bottom-left-radius:4px;color:var(--fg)}
.fhl-bubble-info{align-self:center;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.3);color:#f59e0b;font-size:13px;padding:8px 16px;border-radius:20px;text-align:center;max-width:90%}
.fhl-bubble-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;flex-wrap:wrap}
.fhl-bubble-user .fhl-bubble-head{color:rgba(255,255,255,.85)}
.fhl-bubble-ai .fhl-bubble-head{color:var(--muted)}
.fhl-bubble-name{font-weight:600}
.fhl-bubble-meta{font-size:11px;opacity:.85;font-family:inherit}
.fhl-bubble-text{font-size:18px;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:1px;line-height:1.6}
.fhl-bubble-user .fhl-bubble-text{color:#fff}
.fhl-bubble-ai .fhl-bubble-text{color:#3b82f6}

.fhl-input-wrap{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.fhl-input{flex:1;min-width:200px;padding:12px 16px;font-size:16px;font-family:'Kaiti SC','STKaiti',serif;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;box-sizing:border-box;letter-spacing:1px}
.fhl-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.fhl-input:disabled{background:var(--hover);color:var(--muted)}
.fhl-submit{padding:12px 22px;font-size:14px;border:1px solid var(--accent);border-radius:10px;background:var(--accent);color:#fff;cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.fhl-submit:hover:not(:disabled){background:var(--accent)}
.fhl-submit:disabled{opacity:.5;cursor:not-allowed}
.fhl-hint{font-size:13px;color:var(--muted);padding:6px 0;min-height:22px}
.fhl-hint-ok{color:#10b981}
.fhl-hint-err{color:#dc2626}

.fhl-tips{list-style:none;padding:0;margin:0}
.fhl-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.fhl-tips li:last-child{border-bottom:none}
.fhl-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.fhl-tips b{color:var(--fg)}

@media (max-width:640px){
  .fhl-info{gap:12px}
  .fhl-info-item{min-width:48px}
  .fhl-info-num{font-size:15px}
  .fhl-keyword{width:34px;height:34px;font-size:18px}
  .fhl-bubble{max-width:90%}
  .fhl-bubble-text{font-size:16px}
  .fhl-input-wrap{flex-direction:column;align-items:stretch}
  .fhl-submit{width:100%;justify-content:center}
}

/* ===== AI对联生成器 (aidl-) ===== */
.aidl-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aidl-row{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.aidl-row:last-of-type{margin-bottom:0}
.aidl-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.aidl-input{flex:1;min-width:200px;padding:12px 16px;font-size:16px;font-family:'Kaiti SC','STKaiti',serif;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;box-sizing:border-box;letter-spacing:1px}
.aidl-input:focus{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12)}

.aidl-styles{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.aidl-style{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.aidl-style:hover{border-color:#dc2626;color:#dc2626}
.aidl-style.on{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(220,38,38,.25)}
.aidl-style i{font-size:12px}

.aidl-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aidl-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aidl-btn:hover:not(:disabled){border-color:#dc2626;color:#dc2626}
.aidl-btn:disabled{opacity:.6;cursor:not-allowed}
.aidl-btn-primary{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(220,38,38,.3)}
.aidl-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#ef4444,#ef4444);color:#fff}

.aidl-examples{margin-top:14px;font-size:12px;color:var(--muted);line-height:2}
.aidl-ex-label{color:var(--muted);margin-right:4px}
.aidl-ex{display:inline-block;margin:0 6px 4px 0;padding:3px 12px;background:rgba(239,68,68,.1);color:#ef4444;border-radius:12px;text-decoration:none;font-size:12px;transition:.15s;font-family:'Kaiti SC','STKaiti',serif}
.aidl-ex:hover{background:#dc2626;color:#fff}

.aidl-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(220,38,38,.08)}
.aidl-card-head{font-size:15px;font-weight:700;color:#ef4444;padding-bottom:14px;margin-bottom:20px;border-bottom:1px solid rgba(239,68,68,.1);display:flex;align-items:center;gap:8px;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:2px}

.aidl-hengpi-wrap{text-align:center;margin-bottom:24px;padding:16px;background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(245,158,11,.15));border-radius:12px;border:1px solid rgba(245,158,11,.3)}
.aidl-hengpi{font-size:32px;font-weight:700;color:#ef4444;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:12px;padding-left:12px;line-height:1.4}
.aidl-hengpi-label{font-size:12px;color:#f59e0b;margin-top:6px;letter-spacing:4px}

.aidl-couplet{position:relative;padding:18px 56px 18px 24px;background:rgba(245,158,11,.04);border:2px solid rgba(245,158,11,.3);border-radius:12px;margin-bottom:14px;transition:.15s}
.aidl-couplet:hover{background:rgba(245,158,11,.06);box-shadow:0 4px 14px rgba(217,119,6,.1)}
.aidl-couplet-shang{background:linear-gradient(135deg,rgba(239,68,68,.1),var(--panel));border-color:rgba(239,68,68,.4)}
.aidl-couplet-xia{background:linear-gradient(135deg,rgba(14,165,233,.1),var(--panel));border-color:rgba(59,130,246,.4)}
.aidl-couplet-label{font-size:12px;color:var(--muted);margin-bottom:8px;font-weight:500;letter-spacing:2px}
.aidl-couplet-shang .aidl-couplet-label{color:#ef4444}
.aidl-couplet-xia .aidl-couplet-label{color:var(--accent)}
.aidl-couplet-text{font-size:22px;font-weight:700;color:var(--fg);font-family:'Kaiti SC','STKaiti',serif;letter-spacing:4px;line-height:1.6;word-break:break-all}
.aidl-couplet-explain{font-size:13px;color:var(--muted);margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);line-height:1.7}
.aidl-copy{position:absolute;top:16px;right:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;font-size:13px}
.aidl-copy:hover{border-color:#dc2626;color:#dc2626;background:rgba(239,68,68,.1)}

.aidl-duilians-title{font-size:14px;font-weight:600;color:var(--accent);margin:20px 0 12px;display:flex;align-items:center;gap:8px;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:1px}

.aidl-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aidl-loading-spinner{font-size:48px;color:#dc2626;margin-bottom:16px}
.aidl-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aidl-loading-tip{font-size:12px;color:var(--muted)}
.aidl-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aidl-error i{margin-right:6px}
.aidl-raw{padding:16px;background:#0f172a;color:var(--line);border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}

.aidl-tips{list-style:none;padding:0;margin:0}
.aidl-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aidl-tips li:last-child{border-bottom:none}
.aidl-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#dc2626;font-size:12px}
.aidl-tips b{color:var(--fg)}

@media (max-width:640px){
  .aidl-label{width:100%}
  .aidl-input{width:100%}
  .aidl-btn{flex:1;justify-content:center}
  .aidl-couplet-text{font-size:18px;letter-spacing:2px}
  .aidl-couplet{padding:14px 48px 14px 16px}
  .aidl-hengpi{font-size:24px;letter-spacing:8px}
}


/* ===== AI起名工具 (aiqm-) ===== */
.aiqm-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aiqm-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.aiqm-row:last-of-type{margin-bottom:0}
.aiqm-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.aiqm-input{flex:1;min-width:200px;padding:11px 16px;font-size:15px;font-family:'Kaiti SC','STKaiti',serif;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;box-sizing:border-box}
.aiqm-input:focus{border-color:#ec4899;box-shadow:0 0 0 3px rgba(236,72,153,.12)}

.aiqm-genders{display:flex;gap:16px;flex:1}
.aiqm-radio{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--muted);cursor:pointer;user-select:none;padding:8px 16px;background:var(--hover);border:1px solid var(--line);border-radius:10px;transition:.15s}
.aiqm-radio:has(input:checked){background:rgba(236,72,153,.1);border-color:#ec4899;color:#ec4899;font-weight:600}
.aiqm-radio input{accent-color:#ec4899;cursor:pointer}

.aiqm-styles{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.aiqm-style{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.aiqm-style:hover{border-color:#ec4899;color:#ec4899}
.aiqm-style.on{background:linear-gradient(135deg,#ec4899,#db2777);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(236,72,153,.25)}
.aiqm-style i{font-size:12px}

.aiqm-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aiqm-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aiqm-btn:hover:not(:disabled){border-color:#ec4899;color:#ec4899}
.aiqm-btn:disabled{opacity:.6;cursor:not-allowed}
.aiqm-btn-primary{background:linear-gradient(135deg,#ec4899,#db2777);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(236,72,153,.3)}
.aiqm-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#db2777,#ec4899);color:#fff}

/* 结果 */
.aiqm-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(236,72,153,.08)}
.aiqm-card-head{font-size:15px;font-weight:700;color:#ec4899;padding-bottom:14px;margin-bottom:20px;border-bottom:1px solid rgba(236,72,153,.1);display:flex;align-items:center;gap:8px;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:2px}
.aiqm-list{display:flex;flex-direction:column;gap:14px}

.aiqm-item{background:linear-gradient(135deg,rgba(236,72,153,.1),var(--panel));border:1px solid rgba(236,72,153,.3);border-radius:12px;overflow:hidden;transition:.15s}
.aiqm-item:hover{border-color:#ec4899;box-shadow:0 6px 20px rgba(236,72,153,.12);transform:translateY(-2px)}
.aiqm-item-head{display:flex;align-items:center;gap:12px;padding:14px 20px;background:linear-gradient(135deg,rgba(236,72,153,.15),rgba(236,72,153,.1));border-bottom:1px solid rgba(236,72,153,.3)}
.aiqm-item-idx{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#ec4899,#db2777);color:#fff;font-size:13px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;flex-shrink:0}
.aiqm-item-name{font-size:24px;font-weight:700;color:var(--fg);font-family:'Kaiti SC','STKaiti',serif;letter-spacing:4px}
.aiqm-item-pinyin{font-size:13px;color:#ec4899;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:1px;margin-left:auto}
.aiqm-copy{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(236,72,153,.3);border-radius:8px;background:var(--panel);color:#ec4899;cursor:pointer;transition:.15s;font-size:13px;flex-shrink:0}
.aiqm-copy:hover{border-color:#ec4899;color:#ec4899;background:rgba(236,72,153,.1)}

.aiqm-item-body{padding:14px 20px;display:flex;flex-direction:column;gap:8px}
.aiqm-row-item{display:flex;gap:12px;font-size:13px;line-height:1.7;align-items:flex-start}
.aiqm-key{flex-shrink:0;width:44px;color:#ec4899;font-weight:600;background:rgba(236,72,153,.1);padding:1px 8px;border-radius:4px;font-size:12px;text-align:center}
.aiqm-val{flex:1;color:var(--fg)}
.aiqm-val-chuchu{color:#7c3aed;font-style:italic;font-family:'Kaiti SC','STKaiti',serif}
.aiqm-wuxing{display:inline-block;padding:2px 10px;background:linear-gradient(135deg,rgba(245,158,11,.15),rgba(245,158,11,.3));color:#f59e0b;border-radius:10px;font-size:12px;font-weight:600}

/* 加载 */
.aiqm-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aiqm-loading-spinner{font-size:48px;color:#ec4899;margin-bottom:16px}
.aiqm-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aiqm-loading-tip{font-size:12px;color:var(--muted)}
.aiqm-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aiqm-error i{margin-right:6px}
.aiqm-raw{padding:16px;background:#0f172a;color:var(--line);border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}

/* 说明 */
.aiqm-tips{list-style:none;padding:0;margin:0}
.aiqm-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aiqm-tips li:last-child{border-bottom:none}
.aiqm-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#ec4899;font-size:12px}
.aiqm-tips b{color:var(--fg)}

@media (max-width:640px){
  .aiqm-label{width:100%}
  .aiqm-input{width:100%}
  .aiqm-genders{flex-direction:column}
  .aiqm-radio{width:100%;justify-content:center}
  .aiqm-btn{flex:1;justify-content:center}
  .aiqm-item-name{font-size:20px;letter-spacing:2px}
  .aiqm-item-pinyin{margin-left:0;width:100%;text-align:right;margin-top:4px}
  .aiqm-row-item{flex-direction:column;gap:4px}
  .aiqm-key{width:auto;align-self:flex-start}
}

/* ===== AI作文批改 (azp-) ===== */
.azp-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.azp-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.azp-row-textarea{flex-direction:column;align-items:stretch}
.azp-row:last-of-type{margin-bottom:0}
.azp-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}

.azp-stages{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.azp-stage{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.azp-stage:hover{border-color:#8b5cf6;color:#8b5cf6}
.azp-stage.on{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(139,92,246,.25)}
.azp-stage i{font-size:12px}

.azp-select{padding:10px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer;min-width:160px}
.azp-select:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}

.azp-textarea{width:100%;min-height:200px;padding:16px;font-size:15px;font-family:inherit;line-height:1.9;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--fg);outline:none;resize:vertical;box-sizing:border-box;margin-top:8px}
.azp-textarea:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.azp-counter{text-align:right;font-size:12px;color:var(--muted);margin-top:6px;font-family:ui-monospace,Menlo,Consolas,monospace}
.azp-len-warn{color:#dc2626;font-weight:600}

.azp-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.azp-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.azp-btn:hover:not(:disabled){border-color:#8b5cf6;color:#8b5cf6}
.azp-btn:disabled{opacity:.6;cursor:not-allowed}
.azp-btn-primary{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.3)}
.azp-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}

/* 结果卡片 */
.azp-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(139,92,246,.08)}

.azp-score-wrap{display:flex;align-items:center;gap:24px;padding:20px;margin-bottom:24px;background:linear-gradient(135deg,rgba(139,92,246,.08),rgba(139,92,246,.12));border-radius:14px;flex-wrap:wrap}
.azp-score-circle{width:120px;height:120px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;color:#fff;position:relative;box-shadow:0 8px 24px rgba(139,92,246,.3)}
.azp-score-excellent{background:linear-gradient(135deg,#10b981,#059669)}
.azp-score-good{background:linear-gradient(135deg,var(--accent),var(--accent))}
.azp-score-middle{background:linear-gradient(135deg,#f59e0b,#f59e0b)}
.azp-score-pass{background:linear-gradient(135deg,#f97316,#f59e0b)}
.azp-score-fail{background:linear-gradient(135deg,#dc2626,#ef4444)}
.azp-score-num{font-size:42px;font-weight:700;line-height:1;font-family:ui-monospace,Menlo,Consolas,monospace}
.azp-score-label{font-size:12px;opacity:.85;margin-top:4px;letter-spacing:2px}
.azp-score-level{flex:1;min-width:120px}
.azp-level-badge{display:inline-block;padding:8px 22px;border-radius:24px;font-size:18px;font-weight:700;color:#fff;letter-spacing:2px;margin-bottom:8px;box-shadow:0 4px 14px rgba(0,0,0,.1)}
.azp-score-meta{font-size:13px;color:var(--muted)}

.azp-section{margin-bottom:24px}
.azp-section:last-child{margin-bottom:0}
.azp-section-head{font-size:15px;font-weight:600;color:#7c3aed;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid rgba(139,92,246,.12);display:flex;align-items:center;gap:8px;font-family:'Kaiti SC','STKaiti',serif;letter-spacing:1px}
.azp-section-head i{color:#8b5cf6}

/* 维度 */
.azp-dims{display:flex;flex-direction:column;gap:14px}
.azp-dim{padding:14px 16px;background:rgba(139,92,246,.08);border:1px solid rgba(139,92,246,.3);border-radius:10px}
.azp-dim-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px}
.azp-dim-name{color:var(--fg);font-weight:600}
.azp-dim-score{color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.azp-dim-score b{color:#8b5cf6;font-size:16px}
.azp-dim-bar{height:8px;background:rgba(139,92,246,.12);border-radius:4px;overflow:hidden;margin-bottom:8px}
.azp-dim-fill{height:100%;background:linear-gradient(90deg,#8b5cf6,#8b5cf6);border-radius:4px;transition:width .3s}
.azp-dim-comment{font-size:13px;color:var(--muted);line-height:1.7}

/* 优缺点 */
.azp-hl-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px}
.azp-hl{padding:16px 18px;border-radius:12px;border:1px solid}
.azp-hl-good{background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.3)}
.azp-hl-bad{background:rgba(245,158,11,.15);border-color:rgba(245,158,11,.3)}
.azp-hl-head{font-size:14px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.azp-hl-good .azp-hl-head{color:#10b981}
.azp-hl-bad .azp-hl-head{color:#f59e0b}
.azp-hl ul{list-style:none;padding:0;margin:0;font-size:13px;line-height:1.8;color:var(--fg)}
.azp-hl li{padding-left:16px;position:relative;margin-bottom:6px}
.azp-hl-good li:before{content:'✓';position:absolute;left:0;color:#10b981;font-weight:900}
.azp-hl-bad li:before{content:'→';position:absolute;left:0;color:#f59e0b;font-weight:900}

/* 逐段点评 */
.azp-para-list{display:flex;flex-direction:column;gap:10px}
.azp-para{padding:12px 16px;background:var(--hover);border-radius:10px;border-left:3px solid #8b5cf6}
.azp-para-num{font-size:12px;color:#8b5cf6;font-weight:600;margin-bottom:6px;font-family:ui-monospace,Menlo,Consolas,monospace}
.azp-para-text{font-size:13px;color:var(--fg);line-height:1.8}

/* 修改建议 */
.azp-suggest-section{background:linear-gradient(135deg,rgba(139,92,246,.08),rgba(139,92,246,.12));border-radius:12px;padding:18px;border:1px solid rgba(139,92,246,.3)}
.azp-suggest{font-size:14px;color:var(--fg);line-height:2;font-family:'Kaiti SC','STKaiti',serif}

/* 加载 */
.azp-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.azp-loading-spinner{font-size:48px;color:#8b5cf6;margin-bottom:16px}
.azp-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.azp-loading-tip{font-size:12px;color:var(--muted)}
.azp-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.azp-error i{margin-right:6px}
.azp-raw{padding:16px;background:#0f172a;color:var(--line);border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}

/* 说明 */
.azp-tips{list-style:none;padding:0;margin:0}
.azp-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.azp-tips li:last-child{border-bottom:none}
.azp-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#8b5cf6;font-size:12px}
.azp-tips b{color:var(--fg)}

@media (max-width:640px){
  .azp-label{width:100%}
  .azp-select{width:100%}
  .azp-btn{flex:1;justify-content:center}
  .azp-score-wrap{gap:16px;padding:16px}
  .azp-score-circle{width:90px;height:90px}
  .azp-score-num{font-size:32px}
  .azp-hl-grid{grid-template-columns:1fr}
  .azp-card{padding:16px}
}

/* ===== AI情感分析 (aqg-) ===== */
.aqg-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aqg-row{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.aqg-label{font-size:14px;color:var(--muted);font-weight:500}
.aqg-textarea{width:100%;min-height:160px;padding:16px;font-size:15px;font-family:inherit;line-height:1.9;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--fg);outline:none;resize:vertical;box-sizing:border-box}
.aqg-textarea:focus{border-color:#ec4899;box-shadow:0 0 0 3px rgba(236,72,153,.12)}
.aqg-counter{text-align:right;font-size:12px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.aqg-len-warn{color:#dc2626;font-weight:600}
.aqg-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aqg-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aqg-btn:hover:not(:disabled){border-color:#ec4899;color:#ec4899}
.aqg-btn:disabled{opacity:.6;cursor:not-allowed}
.aqg-btn-primary{background:linear-gradient(135deg,#ec4899,#db2777);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(236,72,153,.3)}
.aqg-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#db2777,#ec4899);color:#fff}
.aqg-examples{margin-top:14px;font-size:12px;color:var(--muted);line-height:2}
.aqg-ex-label{color:var(--muted);margin-right:4px}
.aqg-ex{display:inline-block;margin:0 6px 4px 0;padding:3px 12px;background:rgba(236,72,153,.1);color:#ec4899;border-radius:12px;text-decoration:none;font-size:12px;transition:.15s}
.aqg-ex:hover{background:#ec4899;color:#fff}

.aqg-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(236,72,153,.08)}

.aqg-main{display:flex;align-items:center;gap:24px;padding:22px;border-radius:14px;margin-bottom:24px;flex-wrap:wrap}
.aqg-sent-positive{background:linear-gradient(135deg,rgba(16,185,129,.15),rgba(16,185,129,.3))}
.aqg-sent-negative{background:linear-gradient(135deg,rgba(239,68,68,.15),rgba(239,68,68,.3))}
.aqg-sent-neutral{background:linear-gradient(135deg,var(--hover),var(--line))}
.aqg-main-icon{font-size:72px;flex-shrink:0}
.aqg-sent-positive .aqg-main-icon{color:#10b981}
.aqg-sent-negative .aqg-main-icon{color:#ef4444}
.aqg-sent-neutral .aqg-main-icon{color:var(--muted)}
.aqg-main-info{flex:1;min-width:150px}
.aqg-main-label{font-size:12px;color:var(--muted);margin-bottom:4px}
.aqg-main-sent{font-size:32px;font-weight:700;color:var(--fg);font-family:'Kaiti SC','STKaiti',serif;letter-spacing:4px;line-height:1.2}
.aqg-main-summary{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.6}
.aqg-main-intensity{min-width:130px;text-align:center}
.aqg-intensity-label{font-size:12px;color:var(--muted);margin-bottom:6px}
.aqg-intensity-num{font-size:32px;font-weight:700;color:#ec4899;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1}
.aqg-intensity-num span{font-size:14px;color:var(--muted);font-weight:400}
.aqg-intensity-bar{height:6px;background:rgba(236,72,153,.15);border-radius:3px;overflow:hidden;margin-top:8px}
.aqg-intensity-fill{height:100%;background:linear-gradient(90deg,#ec4899,#db2777);border-radius:3px}

.aqg-section{margin-bottom:24px}
.aqg-section:last-child{margin-bottom:0}
.aqg-section-head{font-size:15px;font-weight:600;color:#ec4899;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid rgba(236,72,153,.1);display:flex;align-items:center;gap:8px;font-family:'Kaiti SC','STKaiti',serif}
.aqg-section-head i{color:#ec4899}

.aqg-emotions{display:flex;flex-direction:column;gap:10px}
.aqg-emotion{display:flex;align-items:center;gap:14px;padding:10px 14px;background:rgba(236,72,153,.1);border-radius:10px;border:1px solid rgba(236,72,153,.3)}
.aqg-emotion-icon{font-size:28px;flex-shrink:0}
.aqg-emotion-body{flex:1;min-width:0}
.aqg-emotion-name{font-size:14px;color:var(--fg);font-weight:600;margin-bottom:6px}
.aqg-emotion-bar{height:6px;background:rgba(236,72,153,.15);border-radius:3px;overflow:hidden}
.aqg-emotion-fill{height:100%;background:linear-gradient(90deg,#ec4899,#db2777);border-radius:3px}
.aqg-emotion-score{font-size:14px;color:#ec4899;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;min-width:30px;text-align:right;flex-shrink:0}

.aqg-words-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.aqg-words-col{padding:14px 16px;border-radius:12px;border:1px solid}
.aqg-words-pos{background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.3)}
.aqg-words-neg{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3)}
.aqg-words-head{font-size:13px;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.aqg-words-pos .aqg-words-head{color:#10b981}
.aqg-words-neg .aqg-words-head{color:#ef4444}
.aqg-words-list{display:flex;flex-wrap:wrap;gap:6px}
.aqg-word{display:inline-block;padding:4px 12px;font-size:13px;border-radius:14px;font-weight:500}
.aqg-words-pos .aqg-word{background:var(--panel);color:#10b981;border:1px solid rgba(16,185,129,.4)}
.aqg-words-neg .aqg-word{background:var(--panel);color:#ef4444;border:1px solid rgba(239,68,68,.4)}

.aqg-analysis-section{background:linear-gradient(135deg,rgba(236,72,153,.1),rgba(236,72,153,.15));border-radius:12px;padding:18px;border:1px solid rgba(236,72,153,.3)}
.aqg-analysis{font-size:14px;color:var(--fg);line-height:2;font-family:'Kaiti SC','STKaiti',serif}

.aqg-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aqg-loading-spinner{font-size:48px;color:#ec4899;margin-bottom:16px}
.aqg-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aqg-loading-tip{font-size:12px;color:var(--muted)}
.aqg-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aqg-error i{margin-right:6px}
.aqg-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}

.aqg-tips{list-style:none;padding:0;margin:0}
.aqg-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aqg-tips li:last-child{border-bottom:none}
.aqg-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#ec4899;font-size:12px}
.aqg-tips b{color:var(--fg)}

@media (max-width:640px){
  .aqg-btn{flex:1;justify-content:center}
  .aqg-main{gap:14px;padding:16px}
  .aqg-main-icon{font-size:52px}
  .aqg-main-sent{font-size:24px}
  .aqg-main-intensity{min-width:auto;width:100%}
  .aqg-words-grid{grid-template-columns:1fr}
  .aqg-card{padding:16px}
}

/* ===== AI 文章摘要 aiwy- ===== */
.aiwy-box{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:20px;margin-bottom:20px}
.aiwy-row{margin-bottom:16px}
.aiwy-label{display:block;font-weight:600;margin-bottom:8px;color:var(--fg,var(--fg));font-size:14px}
.aiwy-textarea{width:100%;min-height:220px;padding:12px 14px;border:1px solid var(--line,var(--line));border-radius:8px;font-size:14px;line-height:1.7;resize:vertical;background:var(--bg);color:var(--fg,var(--fg));box-sizing:border-box;font-family:inherit}
.aiwy-textarea:focus{outline:none;border-color:var(--accent,var(--accent));box-shadow:0 0 0 3px rgba(59,130,246,.1)}
.aiwy-counter{text-align:right;font-size:12px;color:var(--muted,var(--muted));margin-top:6px}
.aiwy-len-warn{color:#ef4444;font-weight:600}
.aiwy-modes{display:flex;flex-wrap:wrap;gap:8px}
.aiwy-mode{padding:8px 16px;border:1px solid var(--line,var(--line));background:var(--bg);color:var(--fg,var(--fg));border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}
.aiwy-mode:hover{border-color:var(--accent,var(--accent));color:var(--accent,var(--accent))}
.aiwy-mode.on{background:var(--accent,var(--accent));border-color:var(--accent,var(--accent));color:var(--panel)}
.aiwy-mode i{margin-right:6px}
.aiwy-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.aiwy-btn{padding:10px 22px;border:1px solid var(--line,var(--line));background:var(--bg);color:var(--fg,var(--fg));border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}
.aiwy-btn:hover{border-color:var(--accent,var(--accent));color:var(--accent,var(--accent))}
.aiwy-btn-primary{background:var(--accent,var(--accent));border-color:var(--accent,var(--accent));color:var(--panel)}
.aiwy-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.aiwy-btn:disabled{opacity:.6;cursor:not-allowed}
.aiwy-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;border-top:1px dashed var(--line,var(--line))}
.aiwy-ex-label{font-size:13px;color:var(--muted,var(--muted))}
.aiwy-ex{padding:4px 12px;background:var(--hover);color:var(--fg,var(--fg));border-radius:14px;font-size:13px;text-decoration:none;transition:all .2s}
.aiwy-ex:hover{background:var(--accent,var(--accent));color:var(--panel)}

.aiwy-loading{text-align:center;padding:50px 20px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;margin-bottom:20px}
.aiwy-loading-spinner{font-size:36px;color:var(--accent,var(--accent));margin-bottom:16px}
.aiwy-loading-text{font-size:16px;font-weight:600;color:var(--fg,var(--fg));margin-bottom:6px}
.aiwy-loading-tip{font-size:13px;color:var(--muted,var(--muted))}
.aiwy-error{padding:16px 20px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#dc2626;border-radius:10px;margin-bottom:20px;font-size:14px}
.aiwy-card{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:22px;margin-bottom:20px}
.aiwy-card-head{font-size:16px;font-weight:700;color:var(--fg,var(--fg));margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line,var(--line))}
.aiwy-card-head i{color:var(--accent,var(--accent));margin-right:6px}
.aiwy-raw{white-space:pre-wrap;word-break:break-all;font-size:13px;background:var(--hover);padding:14px;border-radius:8px;max-height:400px;overflow:auto}
.aiwy-title-box{margin-bottom:18px}
.aiwy-title-label{font-size:12px;color:var(--muted,var(--muted));margin-bottom:6px}
.aiwy-title{font-size:20px;font-weight:700;color:var(--fg,var(--fg));line-height:1.5}
.aiwy-summary-box{background:var(--hover);border-left:4px solid var(--accent,var(--accent));padding:18px 20px;border-radius:8px;margin-bottom:18px}
.aiwy-summary-head{font-size:13px;color:var(--accent,var(--accent));font-weight:600;margin-bottom:10px}
.aiwy-summary{font-size:15px;line-height:1.9;color:var(--fg,var(--fg))}
.aiwy-meta{display:flex;flex-wrap:wrap;gap:16px;padding:14px 0;border-top:1px solid var(--line,var(--line));border-bottom:1px solid var(--line,var(--line));margin-bottom:18px}
.aiwy-meta-item{font-size:13px;color:var(--muted,var(--muted))}
.aiwy-meta-item i{color:var(--accent,var(--accent));margin-right:4px}
.aiwy-meta-item b{color:var(--fg,var(--fg))}
.aiwy-section{margin-top:18px}
.aiwy-section-head{font-size:14px;font-weight:600;color:var(--fg,var(--fg));margin-bottom:12px}
.aiwy-section-head i{color:var(--accent,var(--accent));margin-right:6px}
.aiwy-words{display:flex;flex-wrap:wrap;gap:8px}
.aiwy-word{padding:6px 14px;background:var(--hover);color:var(--fg,var(--fg));border-radius:16px;font-size:13px;border:1px solid var(--line,var(--line))}
.aiwy-tips{list-style:none;padding:0;margin:0}
.aiwy-tips li{padding:8px 0;font-size:14px;color:var(--fg,var(--fg));line-height:1.7;border-bottom:1px dashed var(--line,var(--line))}
.aiwy-tips li:last-child{border-bottom:none}
.aiwy-tips b{color:var(--fg,var(--fg))}

/* ===== AI文案润色 (airun-) ===== */
.airun-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.airun-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.airun-row-textarea{flex-direction:column;align-items:stretch}
.airun-row:last-of-type{margin-bottom:0}
.airun-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.airun-styles{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.airun-style{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.airun-style:hover{border-color:#8b5cf6;color:#8b5cf6}
.airun-style.on{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(139,92,246,.25)}
.airun-style i{font-size:12px}
.airun-textarea{width:100%;min-height:200px;padding:16px;font-size:15px;font-family:inherit;line-height:1.9;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--fg);outline:none;resize:vertical;box-sizing:border-box;margin-top:8px}
.airun-textarea:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.airun-counter{text-align:right;font-size:12px;color:var(--muted);margin-top:6px;font-family:ui-monospace,Menlo,Consolas,monospace}
.airun-len-warn{color:#dc2626;font-weight:600}
.airun-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.airun-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.airun-btn:hover:not(:disabled){border-color:#8b5cf6;color:#8b5cf6}
.airun-btn:disabled{opacity:.6;cursor:not-allowed}
.airun-btn-primary{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.3)}
.airun-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}
.airun-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}
.airun-ex-label{font-size:13px;color:var(--muted)}
.airun-ex{padding:4px 12px;background:var(--hover);color:var(--fg);border-radius:14px;font-size:13px;text-decoration:none;transition:.15s}
.airun-ex:hover{background:#8b5cf6;color:#fff}
.airun-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(139,92,246,.08)}
.airun-card-head{font-size:16px;font-weight:700;color:var(--fg);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.airun-card-head i{color:#8b5cf6;margin-right:6px}
.airun-section{margin-bottom:22px}
.airun-section:last-child{margin-bottom:0}
.airun-section-head{font-size:15px;font-weight:600;color:#7c3aed;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid rgba(139,92,246,.12);display:flex;align-items:center;gap:8px;justify-content:space-between}
.airun-section-head i{color:#8b5cf6}
.airun-copy{padding:6px 14px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.airun-copy:hover{border-color:#8b5cf6;color:#8b5cf6}
.airun-polished{padding:18px 20px;background:linear-gradient(135deg,rgba(139,92,246,.08),rgba(139,92,246,.12));border-left:4px solid #8b5cf6;border-radius:10px;font-size:15px;line-height:2;color:var(--fg);white-space:pre-wrap;word-break:break-word}
.airun-tone{padding:12px 16px;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.3);border-radius:10px;font-size:13px;color:#10b981;margin-bottom:18px;display:flex;align-items:center;gap:8px}
.airun-tone i{color:#10b981}
.airun-changes{list-style:none;padding:0;margin:0}
.airun-changes li{padding:10px 0 10px 22px;position:relative;font-size:14px;color:var(--fg);line-height:1.8;border-bottom:1px dashed var(--line)}
.airun-changes li:last-child{border-bottom:none}
.airun-changes li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:12px;color:#8b5cf6;font-size:12px}
.airun-tip{padding:14px 18px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;font-size:13px;color:#f59e0b;display:flex;align-items:flex-start;gap:8px;line-height:1.7}
.airun-tip i{color:#f59e0b;margin-top:2px}
.airun-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.airun-loading-spinner{font-size:48px;color:#8b5cf6;margin-bottom:16px}
.airun-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.airun-loading-tip{font-size:12px;color:var(--muted)}
.airun-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.airun-error i{margin-right:6px}
.airun-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}
.airun-tips{list-style:none;padding:0;margin:0}
.airun-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.airun-tips li:last-child{border-bottom:none}
.airun-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#8b5cf6;font-size:12px}
.airun-tips b{color:var(--fg)}
@media (max-width:640px){
  .airun-label{width:100%}
  .airun-btn{flex:1;justify-content:center}
  .airun-card{padding:16px}
  .airun-polished{font-size:14px;padding:14px 16px}
}

/* ===== AI古诗词解释 (aijs-) ===== */
.aijs-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aijs-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.aijs-row-textarea{flex-direction:column;align-items:stretch}
.aijs-row:last-of-type{margin-bottom:0}
.aijs-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.aijs-modes{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.aijs-mode{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.aijs-mode:hover{border-color:#8b5cf6;color:#8b5cf6}
.aijs-mode.on{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(139,92,246,.25)}
.aijs-mode i{font-size:12px}
.aijs-textarea{width:100%;min-height:180px;padding:16px;font-size:16px;font-family:'Kaiti SC','STKaiti',Georgia,serif;line-height:2;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--fg);outline:none;resize:vertical;box-sizing:border-box;margin-top:8px}
.aijs-textarea:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.aijs-counter{text-align:right;font-size:12px;color:var(--muted);margin-top:6px;font-family:ui-monospace,Menlo,Consolas,monospace}
.aijs-len-warn{color:#dc2626;font-weight:600}
.aijs-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aijs-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aijs-btn:hover:not(:disabled){border-color:#8b5cf6;color:#8b5cf6}
.aijs-btn:disabled{opacity:.6;cursor:not-allowed}
.aijs-btn-primary{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.3)}
.aijs-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}
.aijs-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}
.aijs-ex-label{font-size:13px;color:var(--muted)}
.aijs-ex{padding:4px 12px;background:var(--hover);color:var(--fg);border-radius:14px;font-size:13px;text-decoration:none;transition:.15s}
.aijs-ex:hover{background:#8b5cf6;color:#fff}
.aijs-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(139,92,246,.08)}
.aijs-card-head{font-size:16px;font-weight:700;color:var(--fg);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.aijs-card-head i{color:#8b5cf6;margin-right:6px}
.aijs-head{text-align:center;padding:16px 0 20px;margin-bottom:20px;border-bottom:1px dashed var(--line)}
.aijs-title{font-size:22px;font-weight:700;color:var(--fg);font-family:'Kaiti SC','STKaiti',Georgia,serif;letter-spacing:2px;margin-bottom:8px}
.aijs-author{font-size:14px;color:var(--muted)}
.aijs-section{margin-bottom:22px}
.aijs-section:last-child{margin-bottom:0}
.aijs-section-head{font-size:15px;font-weight:600;color:#7c3aed;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid rgba(139,92,246,.12);display:flex;align-items:center;gap:8px}
.aijs-section-head i{color:#8b5cf6}
.aijs-trans{padding:16px 18px;background:linear-gradient(135deg,rgba(139,92,246,.08),rgba(139,92,246,.12));border-left:4px solid #8b5cf6;border-radius:10px;font-size:15px;line-height:2;color:var(--fg)}
.aijs-lines{display:flex;flex-direction:column;gap:12px}
.aijs-line{padding:12px 16px;background:var(--hover);border-radius:10px;border-left:3px solid #8b5cf6}
.aijs-line-text{font-size:15px;color:var(--fg);font-weight:600;font-family:'Kaiti SC','STKaiti',Georgia,serif;margin-bottom:6px;line-height:1.6}
.aijs-line-mean{font-size:13px;color:var(--muted);line-height:1.8}
.aijs-line-note{font-size:12px;color:#8b5cf6;margin-top:6px;display:flex;align-items:flex-start;gap:4px;line-height:1.7}
.aijs-line-note i{font-size:11px;margin-top:3px}
.aijs-meta{display:flex;flex-wrap:wrap;gap:16px;padding:14px 16px;background:rgba(139,92,246,.08);border-radius:10px;margin-bottom:20px;font-size:13px;color:var(--muted);align-items:center}
.aijs-meta-item{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.aijs-meta-item i{color:#8b5cf6;margin-right:2px}
.aijs-meta-item b{color:var(--fg)}
.aijs-kw{padding:3px 10px;background:var(--panel);border:1px solid rgba(139,92,246,.3);color:#7c3aed;border-radius:12px;font-size:12px}
.aijs-famous{padding:20px;margin-bottom:20px;background:linear-gradient(135deg,#7c3aed,#8b5cf6);border-radius:12px;color:#fff;text-align:center}
.aijs-famous-label{font-size:12px;opacity:.85;margin-bottom:10px;letter-spacing:1px}
.aijs-famous-text{font-size:18px;font-family:'Kaiti SC','STKaiti',Georgia,serif;line-height:1.8;letter-spacing:1px}
.aijs-para{font-size:14px;color:var(--fg);line-height:2;font-family:'Kaiti SC','STKaiti',Georgia,serif}
.aijs-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aijs-loading-spinner{font-size:48px;color:#8b5cf6;margin-bottom:16px}
.aijs-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aijs-loading-tip{font-size:12px;color:var(--muted)}
.aijs-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aijs-error i{margin-right:6px}
.aijs-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}
.aijs-tips{list-style:none;padding:0;margin:0}
.aijs-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aijs-tips li:last-child{border-bottom:none}
.aijs-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#8b5cf6;font-size:12px}
.aijs-tips b{color:var(--fg)}
@media (max-width:640px){
  .aijs-label{width:100%}
  .aijs-btn{flex:1;justify-content:center}
  .aijs-card{padding:16px}
  .aijs-famous-text{font-size:16px}
  .aijs-title{font-size:18px}
}

/* ===== AI代码解释 (aidm-) ===== */
.aidm-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aidm-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.aidm-row-textarea{flex-direction:column;align-items:stretch}
.aidm-row:last-of-type{margin-bottom:0}
.aidm-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.aidm-select{padding:10px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer;min-width:180px}
.aidm-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.aidm-textarea{width:100%;min-height:220px;padding:16px;font-size:14px;font-family:ui-monospace,Menlo,Consolas,'Courier New',monospace;line-height:1.8;border:1px solid var(--line);border-radius:12px;background:#0f172a;color:#cbd5e1;outline:none;resize:vertical;box-sizing:border-box;margin-top:8px;tab-size:4}
.aidm-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.2)}
.aidm-counter{text-align:right;font-size:12px;color:var(--muted);margin-top:6px;font-family:ui-monospace,Menlo,Consolas,monospace}
.aidm-len-warn{color:#dc2626;font-weight:600}
.aidm-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aidm-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aidm-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.aidm-btn:disabled{opacity:.6;cursor:not-allowed}
.aidm-btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent));border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(59,130,246,.3)}
.aidm-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--accent),var(--accent));color:#fff}
.aidm-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}
.aidm-ex-label{font-size:13px;color:var(--muted)}
.aidm-ex{padding:4px 12px;background:var(--hover);color:var(--fg);border-radius:14px;font-size:13px;text-decoration:none;transition:.15s}
.aidm-ex:hover{background:var(--accent);color:#fff}
.aidm-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(59,130,246,.08)}
.aidm-card-head{font-size:16px;font-weight:700;color:var(--fg);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.aidm-card-head i{color:var(--accent);margin-right:6px}
.aidm-summary-box{padding:18px;background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(59,130,246,.15));border-radius:12px;margin-bottom:22px}
.aidm-lang-badge{display:inline-block;padding:4px 12px;background:var(--accent);color:#fff;border-radius:14px;font-size:12px;margin-bottom:10px;font-weight:600}
.aidm-lang-badge i{margin-right:4px}
.aidm-summary{font-size:14px;line-height:1.9;color:var(--fg)}
.aidm-section{margin-bottom:22px}
.aidm-section:last-child{margin-bottom:0}
.aidm-section-head{font-size:15px;font-weight:600;color:var(--accent);margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid rgba(59,130,246,.15);display:flex;align-items:center;gap:8px}
.aidm-section-head i{color:var(--accent)}
.aidm-lines{display:flex;flex-direction:column;gap:12px}
.aidm-line{padding:12px 14px;background:var(--hover);border-radius:10px;border-left:3px solid var(--accent)}
.aidm-line-code{margin-bottom:8px}
.aidm-line-code code{padding:2px 8px;background:#0f172a;color:#93c5fd;border-radius:6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.6;word-break:break-all;display:inline-block;max-width:100%}
.aidm-line-comment{font-size:13px;color:var(--fg);line-height:1.8}
.aidm-points{list-style:none;padding:0;margin:0}
.aidm-points li{padding:8px 0 8px 22px;position:relative;font-size:14px;color:var(--fg);line-height:1.8;border-bottom:1px dashed var(--line)}
.aidm-points li:last-child{border-bottom:none}
.aidm-points li:before{content:'\f0eb';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:10px;color:var(--accent);font-size:12px}
.aidm-algo-wrap{padding:16px;background:var(--bg);border-radius:10px;border:1px solid var(--line)}
.aidm-algo{font-size:14px;color:var(--fg);line-height:1.9;margin-bottom:14px}
.aidm-complexity{display:flex;gap:12px;flex-wrap:wrap}
.aidm-cx-item{display:flex;flex-direction:column;gap:4px;padding:12px 18px;background:var(--panel);border:1px solid var(--line);border-radius:8px;flex:1;min-width:140px}
.aidm-cx-label{font-size:12px;color:var(--muted)}
.aidm-cx-val{font-size:15px;color:var(--accent);font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.aidm-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.aidm-block{padding:16px 18px;border-radius:12px;border:1px solid}
.aidm-block-good{background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.3)}
.aidm-block-warn{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.3)}
.aidm-block-head{font-size:14px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.aidm-block-good .aidm-block-head{color:#10b981}
.aidm-block-warn .aidm-block-head{color:#f59e0b}
.aidm-block ul{list-style:none;padding:0;margin:0;font-size:13px;line-height:1.8;color:var(--fg)}
.aidm-block li{padding-left:16px;position:relative;margin-bottom:6px}
.aidm-block-good li:before{content:'✓';position:absolute;left:0;color:#10b981;font-weight:900}
.aidm-block-warn li:before{content:'!';position:absolute;left:0;color:#f59e0b;font-weight:900}
.aidm-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aidm-loading-spinner{font-size:48px;color:var(--accent);margin-bottom:16px}
.aidm-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aidm-loading-tip{font-size:12px;color:var(--muted)}
.aidm-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aidm-error i{margin-right:6px}
.aidm-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}
.aidm-tips{list-style:none;padding:0;margin:0}
.aidm-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aidm-tips li:last-child{border-bottom:none}
.aidm-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:var(--accent);font-size:12px}
.aidm-tips b{color:var(--fg)}
@media (max-width:640px){
  .aidm-label{width:100%}
  .aidm-select{width:100%}
  .aidm-btn{flex:1;justify-content:center}
  .aidm-card{padding:16px}
  .aidm-grid{grid-template-columns:1fr}
}


/* ===== AI脑筋急转弯生成 (ainj-) ===== */
.ainj-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.ainj-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.ainj-row:last-of-type{margin-bottom:0}
.ainj-label{width:70px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.ainj-input{flex:1;min-width:200px;padding:11px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.ainj-input:focus{border-color:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.15)}
.ainj-styles{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.ainj-style{padding:7px 14px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.ainj-style:hover{border-color:#f59e0b;color:#f59e0b}
.ainj-style.on{background:linear-gradient(135deg,#f59e0b,#f59e0b);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(245,158,11,.25)}
.ainj-style i{font-size:12px}
.ainj-counts{display:flex;gap:8px;flex-wrap:wrap}
.ainj-count{padding:7px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s}
.ainj-count:hover{border-color:#f59e0b;color:#f59e0b}
.ainj-count.on{background:#f59e0b;border-color:#f59e0b;color:#fff}
.ainj-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.ainj-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ainj-btn:hover:not(:disabled){border-color:#f59e0b;color:#f59e0b}
.ainj-btn:disabled{opacity:.6;cursor:not-allowed}
.ainj-btn-primary{background:linear-gradient(135deg,#f59e0b,#f59e0b);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(245,158,11,.3)}
.ainj-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#f59e0b,#f59e0b);color:#fff}
.ainj-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}
.ainj-ex-label{font-size:13px;color:var(--muted)}
.ainj-ex{padding:4px 12px;background:rgba(245,158,11,.15);color:#f59e0b;border-radius:14px;font-size:13px;text-decoration:none;transition:.15s}
.ainj-ex:hover{background:#f59e0b;color:#fff}
.ainj-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(245,158,11,.08)}
.ainj-card-head{font-size:16px;font-weight:700;color:#f59e0b;margin-bottom:18px;padding-bottom:12px;border-bottom:2px solid rgba(245,158,11,.15);display:flex;align-items:center;gap:8px}
.ainj-card-head i{color:#f59e0b}
.ainj-list{display:flex;flex-direction:column;gap:14px}
.ainj-item{padding:16px 18px;background:linear-gradient(135deg,rgba(245,158,11,.1),rgba(245,158,11,.15));border-radius:12px;border-left:4px solid #f59e0b}
.ainj-q{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.ainj-num{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:#f59e0b;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.ainj-q-text{font-size:15px;color:var(--fg);line-height:1.7;font-weight:500;padding-top:2px}
.ainj-a-wrap{display:flex;flex-direction:column;gap:10px}
.ainj-toggle{align-self:flex-start;padding:6px 14px;font-size:12px;border:1px solid #f59e0b;border-radius:16px;background:var(--panel);color:#f59e0b;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.ainj-toggle:hover{background:#f59e0b;color:#fff}
.ainj-a{padding:12px 16px;background:var(--panel);border-radius:10px;border:1px dashed rgba(245,158,11,.3)}
.ainj-a-text{font-size:14px;color:var(--fg);line-height:1.8}
.ainj-a-text b{color:#f59e0b}
.ainj-a-tip{font-size:12px;color:#f59e0b;margin-top:8px;padding-top:8px;border-top:1px dashed rgba(245,158,11,.15);display:flex;align-items:flex-start;gap:5px;line-height:1.7}
.ainj-a-tip i{margin-top:3px}
.ainj-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.ainj-loading-spinner{font-size:48px;color:#f59e0b;margin-bottom:16px}
.ainj-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.ainj-loading-tip{font-size:12px;color:var(--muted)}
.ainj-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.ainj-error i{margin-right:6px}
.ainj-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}
.ainj-tips{list-style:none;padding:0;margin:0}
.ainj-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ainj-tips li:last-child{border-bottom:none}
.ainj-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#f59e0b;font-size:12px}
.ainj-tips b{color:var(--fg)}
@media (max-width:640px){
  .ainj-label{width:100%}
  .ainj-btn{flex:1;justify-content:center}
  .ainj-card{padding:16px}
  .ainj-item{padding:14px}
}/* ===== AI智能翻译 (aify-) ===== */
.aify-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aify-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.aify-row-textarea{flex-direction:column;align-items:stretch}
.aify-row:last-of-type{margin-bottom:0}
.aify-label{width:70px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.aify-langs{display:flex;align-items:center;gap:10px;flex:1;flex-wrap:wrap}
.aify-select{padding:10px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer;min-width:140px;flex:1}
.aify-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.aify-swap{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--accent);cursor:pointer;transition:.2s;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.aify-swap:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:rotate(180deg)}
.aify-styles{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.aify-style{padding:7px 14px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.aify-style:hover{border-color:var(--accent);color:var(--accent)}
.aify-style.on{background:linear-gradient(135deg,var(--accent),#3b82f6);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(14,165,233,.25)}
.aify-style i{font-size:12px}
.aify-textarea{width:100%;min-height:160px;padding:16px;font-size:15px;font-family:inherit;line-height:1.9;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--fg);outline:none;resize:vertical;box-sizing:border-box;margin-top:8px}
.aify-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.aify-counter{text-align:right;font-size:12px;color:var(--muted);margin-top:6px;font-family:ui-monospace,Menlo,Consolas,monospace}
.aify-len-warn{color:#dc2626;font-weight:600}
.aify-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aify-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aify-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.aify-btn:disabled{opacity:.6;cursor:not-allowed}
.aify-btn-primary{background:linear-gradient(135deg,var(--accent),#3b82f6);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(14,165,233,.3)}
.aify-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#3b82f6,#3b82f6);color:#fff}
.aify-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}
.aify-ex-label{font-size:13px;color:var(--muted)}
.aify-ex{padding:4px 12px;background:rgba(14,165,233,.12);color:#3b82f6;border-radius:14px;font-size:13px;text-decoration:none;transition:.15s}
.aify-ex:hover{background:var(--accent);color:#fff}
.aify-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(14,165,233,.08)}
.aify-card-head{font-size:16px;font-weight:700;color:var(--fg);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.aify-card-head i{color:var(--accent);margin-right:6px}
.aify-lang-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(135deg,rgba(14,165,233,.12),rgba(14,165,233,.3));border-radius:10px;margin-bottom:18px;flex-wrap:wrap}
.aify-lang-tag{padding:5px 14px;background:var(--panel);color:#3b82f6;border-radius:14px;font-size:13px;font-weight:600;border:1px solid rgba(14,165,233,.3)}
.aify-lang-tag-on{background:var(--accent);color:#fff;border-color:var(--accent)}
.aify-arrow{color:var(--accent);font-size:14px}
.aify-copy{margin-left:auto;padding:6px 14px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.aify-copy:hover{border-color:var(--accent);color:var(--accent)}
.aify-trans{padding:18px 20px;background:rgba(14,165,233,.1);border-left:4px solid var(--accent);border-radius:10px;font-size:16px;line-height:2;color:var(--fg);margin-bottom:18px;white-space:pre-wrap;word-break:break-word}
.aify-pinyin{padding:12px 16px;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.3);border-radius:10px;font-size:13px;color:#f59e0b;margin-bottom:18px;display:flex;align-items:flex-start;gap:8px;line-height:1.8}
.aify-pinyin i{margin-top:3px}
.aify-section{margin-bottom:20px}
.aify-section:last-child{margin-bottom:0}
.aify-section-head{font-size:15px;font-weight:600;color:#3b82f6;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid rgba(14,165,233,.12);display:flex;align-items:center;gap:8px}
.aify-section-head i{color:var(--accent)}
.aify-notes{display:flex;flex-direction:column;gap:8px}
.aify-note{display:flex;gap:12px;padding:10px 14px;background:var(--hover);border-radius:8px;font-size:13px;line-height:1.7;align-items:flex-start}
.aify-note-word{flex-shrink:0;padding:2px 10px;background:var(--accent);color:#fff;border-radius:10px;font-size:12px;font-weight:600}
.aify-note-explain{color:var(--fg)}
.aify-para{font-size:14px;color:var(--fg);line-height:1.9}
.aify-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aify-loading-spinner{font-size:48px;color:var(--accent);margin-bottom:16px}
.aify-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aify-loading-tip{font-size:12px;color:var(--muted)}
.aify-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aify-error i{margin-right:6px}
.aify-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}
.aify-tips{list-style:none;padding:0;margin:0}
.aify-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aify-tips li:last-child{border-bottom:none}
.aify-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:var(--accent);font-size:12px}
.aify-tips b{color:var(--fg)}
@media (max-width:640px){
  .aify-label{width:100%}
  .aify-select{min-width:100%}
  .aify-btn{flex:1;justify-content:center}
  .aify-card{padding:16px}
  .aify-copy{margin-left:0;width:100%;justify-content:center}
}/* ===== AI文本纠错 (aijc-) ===== */
.aijc-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aijc-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.aijc-row-textarea{flex-direction:column;align-items:stretch}
.aijc-row:last-of-type{margin-bottom:0}
.aijc-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.aijc-levels{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.aijc-level{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.aijc-level:hover{border-color:#14b8a6;color:#14b8a6}
.aijc-level.on{background:linear-gradient(135deg,#14b8a6,#14b8a6);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(20,184,166,.25)}
.aijc-level i{font-size:12px}
.aijc-textarea{width:100%;min-height:180px;padding:16px;font-size:15px;font-family:inherit;line-height:1.9;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--fg);outline:none;resize:vertical;box-sizing:border-box;margin-top:8px}
.aijc-textarea:focus{border-color:#14b8a6;box-shadow:0 0 0 3px rgba(20,184,166,.12)}
.aijc-counter{text-align:right;font-size:12px;color:var(--muted);margin-top:6px;font-family:ui-monospace,Menlo,Consolas,monospace}
.aijc-len-warn{color:#dc2626;font-weight:600}
.aijc-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aijc-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aijc-btn:hover:not(:disabled){border-color:#14b8a6;color:#14b8a6}
.aijc-btn:disabled{opacity:.6;cursor:not-allowed}
.aijc-btn-primary{background:linear-gradient(135deg,#14b8a6,#14b8a6);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(20,184,166,.3)}
.aijc-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#14b8a6,#14b8a6);color:#fff}
.aijc-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}
.aijc-ex-label{font-size:13px;color:var(--muted)}
.aijc-ex{padding:4px 12px;background:rgba(20,184,166,.12);color:#14b8a6;border-radius:14px;font-size:13px;text-decoration:none;transition:.15s}
.aijc-ex:hover{background:#14b8a6;color:#fff}
.aijc-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(20,184,166,.08)}
.aijc-card-head{font-size:16px;font-weight:700;color:var(--fg);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.aijc-card-head i{color:#14b8a6;margin-right:6px}
.aijc-score-bar{display:flex;align-items:center;gap:22px;padding:18px;background:linear-gradient(135deg,rgba(20,184,166,.08),rgba(20,184,166,.12));border-radius:12px;margin-bottom:22px;flex-wrap:wrap}
.aijc-score-circle{width:100px;height:100px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;flex-shrink:0;box-shadow:0 8px 20px rgba(20,184,166,.25)}
.aijc-score-a{background:linear-gradient(135deg,#10b981,#059669)}
.aijc-score-b{background:linear-gradient(135deg,#14b8a6,#14b8a6)}
.aijc-score-c{background:linear-gradient(135deg,#f59e0b,#f59e0b)}
.aijc-score-d{background:linear-gradient(135deg,#dc2626,#ef4444)}
.aijc-score-num{font-size:34px;font-weight:700;line-height:1;font-family:ui-monospace,Menlo,Consolas,monospace}
.aijc-score-lbl{font-size:11px;opacity:.85;margin-top:4px;letter-spacing:1px}
.aijc-score-info{flex:1;min-width:200px}
.aijc-score-total{font-size:16px;color:var(--fg);margin-bottom:6px}
.aijc-score-total b{color:#dc2626;font-size:20px;font-family:ui-monospace,Menlo,Consolas,monospace}
.aijc-score-sum{font-size:13px;color:var(--muted);line-height:1.7}
.aijc-section{margin-bottom:22px}
.aijc-section:last-child{margin-bottom:0}
.aijc-section-head{font-size:15px;font-weight:600;color:#14b8a6;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid rgba(20,184,166,.12);display:flex;align-items:center;gap:8px;justify-content:space-between}
.aijc-section-head i{color:#14b8a6}
.aijc-copy{padding:6px 14px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px;font-weight:400}
.aijc-copy:hover{border-color:#14b8a6;color:#14b8a6}
.aijc-issues{display:flex;flex-direction:column;gap:12px}
.aijc-issue{padding:14px 16px;background:var(--hover);border-radius:10px;border-left:3px solid #14b8a6}
.aijc-issue-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.aijc-issue-num{font-size:12px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.aijc-type{padding:2px 10px;border-radius:10px;font-size:12px;font-weight:600}
.aijc-type-typo{background:rgba(239,68,68,.15);color:#ef4444}
.aijc-type-grammar{background:rgba(245,158,11,.15);color:#f59e0b}
.aijc-type-punc{background:rgba(245,158,11,.15);color:#f59e0b}
.aijc-type-word{background:rgba(59,130,246,.15);color:var(--accent)}
.aijc-type-colloc{background:rgba(139,92,246,.12);color:#6d28d9}
.aijc-type-other{background:var(--line);color:var(--fg)}
.aijc-issue-row{display:flex;gap:10px;font-size:13px;line-height:1.8;margin-bottom:4px}
.aijc-issue-lbl{flex-shrink:0;width:36px;color:var(--muted);font-weight:500}
.aijc-issue-orig{color:#dc2626;text-decoration:line-through;text-decoration-color:rgba(220,38,38,.4)}
.aijc-issue-sug{color:#059669;font-weight:500}
.aijc-issue-reason{color:var(--muted)}
.aijc-none{padding:20px;text-align:center;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.3);border-radius:10px;color:#10b981;font-size:14px;margin-bottom:22px}
.aijc-none i{margin-right:6px;color:#10b981}
.aijc-corrected{padding:18px 20px;background:linear-gradient(135deg,rgba(20,184,166,.08),rgba(20,184,166,.12));border-left:4px solid #14b8a6;border-radius:10px;font-size:15px;line-height:1.9;color:var(--fg);white-space:pre-wrap;word-break:break-word}
.aijc-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aijc-loading-spinner{font-size:48px;color:#14b8a6;margin-bottom:16px}
.aijc-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aijc-loading-tip{font-size:12px;color:var(--muted)}
.aijc-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aijc-error i{margin-right:6px}
.aijc-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}
.aijc-tips{list-style:none;padding:0;margin:0}
.aijc-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aijc-tips li:last-child{border-bottom:none}
.aijc-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#14b8a6;font-size:12px}
.aijc-tips b{color:var(--fg)}
@media (max-width:640px){
  .aijc-label{width:100%}
  .aijc-btn{flex:1;justify-content:center}
  .aijc-card{padding:16px}
  .aijc-score-bar{gap:14px;padding:14px}
  .aijc-score-circle{width:80px;height:80px}
  .aijc-score-num{font-size:26px}
}/* ===== AI对联接龙 (aidl2-) ===== */
.aidl2-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aidl2-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.aidl2-row:last-of-type{margin-bottom:0}
.aidl2-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.aidl2-input{flex:1;min-width:200px;padding:11px 14px;font-size:15px;font-family:'Kaiti SC','STKaiti',Georgia,serif;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.aidl2-input:focus{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12)}
.aidl2-styles{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.aidl2-style{padding:7px 14px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.aidl2-style:hover{border-color:#dc2626;color:#dc2626}
.aidl2-style.on{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(220,38,38,.25)}
.aidl2-rounds{display:flex;gap:8px;flex-wrap:wrap}
.aidl2-round{padding:7px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s}
.aidl2-round:hover{border-color:#dc2626;color:#dc2626}
.aidl2-round.on{background:#dc2626;border-color:#dc2626;color:#fff}
.aidl2-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aidl2-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aidl2-btn:hover:not(:disabled){border-color:#dc2626;color:#dc2626}
.aidl2-btn:disabled{opacity:.6;cursor:not-allowed}
.aidl2-btn-primary{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(220,38,38,.3)}
.aidl2-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#ef4444,#ef4444);color:#fff}
.aidl2-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}
.aidl2-ex-label{font-size:13px;color:var(--muted)}
.aidl2-ex{padding:4px 12px;background:rgba(239,68,68,.15);color:#ef4444;border-radius:14px;font-size:13px;text-decoration:none;transition:.15s}
.aidl2-ex:hover{background:#dc2626;color:#fff}
.aidl2-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(220,38,38,.08)}
.aidl2-card-head{font-size:16px;font-weight:700;color:#ef4444;margin-bottom:18px;padding-bottom:12px;border-bottom:2px solid rgba(239,68,68,.15);display:flex;align-items:center;gap:8px}
.aidl2-card-head i{color:#dc2626}
.aidl2-chain{display:flex;flex-direction:column;gap:0}
.aidl2-node{padding:16px 18px;background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(239,68,68,.15));border-radius:12px;border-left:4px solid #dc2626;position:relative}
.aidl2-node-round{font-size:12px;color:#ef4444;font-weight:600;margin-bottom:10px;font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:1px}
.aidl2-couplet{display:flex;flex-direction:column;gap:6px}
.aidl2-upper,.aidl2-lower{display:flex;align-items:center;gap:10px;font-size:15px;font-family:'Kaiti SC','STKaiti',Georgia,serif;color:var(--fg);line-height:1.8}
.aidl2-tag{flex-shrink:0;width:24px;height:24px;border-radius:6px;color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-family:inherit}
.aidl2-tag-up{background:#dc2626}
.aidl2-tag-low{background:#16a34a}
.aidl2-note{margin-top:8px;padding-top:8px;border-top:1px dashed rgba(239,68,68,.4);font-size:12px;color:#ef4444;display:flex;align-items:flex-start;gap:5px;line-height:1.7}
.aidl2-note i{margin-top:3px}
.aidl2-arrow{text-align:center;padding:8px 0;color:#dc2626;font-size:16px;position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);z-index:2}
.aidl2-node + .aidl2-node{margin-top:28px}
.aidl2-summary{margin-top:22px;padding:16px 18px;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.2);border-radius:10px;font-size:14px;color:#f59e0b;font-family:'Kaiti SC','STKaiti',Georgia,serif;line-height:1.9;display:flex;align-items:flex-start;gap:8px}
.aidl2-summary i{margin-top:3px}
.aidl2-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aidl2-loading-spinner{font-size:48px;color:#dc2626;margin-bottom:16px}
.aidl2-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aidl2-loading-tip{font-size:12px;color:var(--muted)}
.aidl2-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aidl2-error i{margin-right:6px}
.aidl2-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}
.aidl2-tips{list-style:none;padding:0;margin:0}
.aidl2-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aidl2-tips li:last-child{border-bottom:none}
.aidl2-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#dc2626;font-size:12px}
.aidl2-tips b{color:var(--fg)}
@media (max-width:640px){
  .aidl2-label{width:100%}
  .aidl2-btn{flex:1;justify-content:center}
  .aidl2-card{padding:16px}
  .aidl2-node{padding:14px}
}

/* ===== AI藏头诗生成 (aicts-) ===== */
.aicts-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aicts-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.aicts-row:last-of-type{margin-bottom:0}
.aicts-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.aicts-input{flex:1;min-width:200px;padding:11px 14px;font-size:15px;font-family:'Kaiti SC','STKaiti',Georgia,serif;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.aicts-input:focus{border-color:#ec4899;box-shadow:0 0 0 3px rgba(236,72,153,.12)}
.aicts-styles{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.aicts-style{padding:7px 14px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.aicts-style:hover{border-color:#ec4899;color:#ec4899}
.aicts-style.on{background:linear-gradient(135deg,#ec4899,#db2777);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(236,72,153,.25)}
.aicts-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aicts-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aicts-btn:hover:not(:disabled){border-color:#ec4899;color:#ec4899}
.aicts-btn:disabled{opacity:.6;cursor:not-allowed}
.aicts-btn-primary{background:linear-gradient(135deg,#ec4899,#db2777);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(236,72,153,.3)}
.aicts-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#db2777,#ec4899);color:#fff}
.aicts-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}
.aicts-ex-label{font-size:13px;color:var(--muted)}
.aicts-ex{padding:4px 12px;background:rgba(236,72,153,.15);color:#ec4899;border-radius:14px;font-size:13px;text-decoration:none;transition:.15s}
.aicts-ex:hover{background:#ec4899;color:#fff}
.aicts-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(236,72,153,.08)}
.aicts-card-head{font-size:16px;font-weight:700;color:var(--fg);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.aicts-card-head i{color:#ec4899;margin-right:6px}
.aicts-poem-wrap{padding:30px 20px;background:linear-gradient(135deg,rgba(236,72,153,.1),rgba(236,72,153,.15));border-radius:14px;margin-bottom:22px;position:relative;text-align:center}
.aicts-poem-title{font-size:13px;color:#ec4899;margin-bottom:20px;letter-spacing:2px}
.aicts-poem-theme{opacity:.7;font-weight:400}
.aicts-poem{display:flex;flex-direction:column;gap:10px;align-items:center}
.aicts-line{display:flex;align-items:center;font-family:'Kaiti SC','STKaiti',Georgia,serif;font-size:20px;line-height:1.6;letter-spacing:4px}
.aicts-line-char{color:#ec4899;font-weight:700;font-size:24px;margin-right:2px;text-shadow:0 2px 8px rgba(236,72,153,.2)}
.aicts-line-text{color:var(--fg)}
.aicts-poem-plain{font-family:'Kaiti SC','STKaiti',Georgia,serif;font-size:17px;line-height:2.2;color:var(--fg);white-space:pre-wrap}
.aicts-copy{margin-top:20px;padding:8px 20px;font-size:13px;border:1px solid #ec4899;border-radius:20px;background:var(--panel);color:#ec4899;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.aicts-copy:hover{background:#ec4899;color:#fff}
.aicts-section{margin-bottom:22px}
.aicts-section:last-child{margin-bottom:0}
.aicts-section-head{font-size:15px;font-weight:600;color:#ec4899;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid rgba(236,72,153,.15);display:flex;align-items:center;gap:8px}
.aicts-section-head i{color:#ec4899}
.aicts-mean-list{display:flex;flex-direction:column;gap:12px}
.aicts-mean{padding:12px 16px;background:var(--hover);border-radius:10px;border-left:3px solid #ec4899}
.aicts-mean-text{font-size:15px;color:var(--fg);font-family:'Kaiti SC','STKaiti',Georgia,serif;margin-bottom:6px;line-height:1.7}
.aicts-mean-desc{font-size:13px;color:var(--muted);line-height:1.8}
.aicts-interp{padding:16px 18px;background:linear-gradient(135deg,rgba(236,72,153,.1),rgba(236,72,153,.15));border-left:4px solid #ec4899;border-radius:10px;font-size:14px;color:var(--fg);line-height:2;font-family:'Kaiti SC','STKaiti',Georgia,serif}
.aicts-tip{padding:14px 18px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;font-size:13px;color:#f59e0b;display:flex;align-items:flex-start;gap:8px;line-height:1.7}
.aicts-tip i{color:#f59e0b;margin-top:2px}
.aicts-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aicts-loading-spinner{font-size:48px;color:#ec4899;margin-bottom:16px}
.aicts-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aicts-loading-tip{font-size:12px;color:var(--muted)}
.aicts-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aicts-error i{margin-right:6px}
.aicts-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}
.aicts-tips{list-style:none;padding:0;margin:0}
.aicts-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aicts-tips li:last-child{border-bottom:none}
.aicts-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#ec4899;font-size:12px}
.aicts-tips b{color:var(--fg)}
@media (max-width:640px){
  .aicts-label{width:100%}
  .aicts-btn{flex:1;justify-content:center}
  .aicts-card{padding:16px}
  .aicts-poem-wrap{padding:20px 12px}
  .aicts-line{font-size:17px;letter-spacing:2px}
  .aicts-line-char{font-size:20px}
}

/* ===== AI朋友圈文案 (aipq-) ===== */
.aipq-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aipq-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.aipq-row:last-of-type{margin-bottom:0}
.aipq-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.aipq-input{flex:1;min-width:200px;padding:11px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.aipq-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.aipq-styles{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.aipq-style{padding:7px 14px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.aipq-style:hover{border-color:#8b5cf6;color:#8b5cf6}
.aipq-style.on{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(139,92,246,.25)}
.aipq-counts,.aipq-emoji{display:flex;gap:8px;flex-wrap:wrap}
.aipq-count,.aipq-emo{padding:7px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s}
.aipq-count:hover,.aipq-emo:hover{border-color:#8b5cf6;color:#8b5cf6}
.aipq-count.on,.aipq-emo.on{background:#8b5cf6;border-color:#8b5cf6;color:#fff}
.aipq-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aipq-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aipq-btn:hover:not(:disabled){border-color:#8b5cf6;color:#8b5cf6}
.aipq-btn:disabled{opacity:.6;cursor:not-allowed}
.aipq-btn-primary{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.3)}
.aipq-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}
.aipq-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}
.aipq-ex-label{font-size:13px;color:var(--muted)}
.aipq-ex{padding:4px 12px;background:rgba(139,92,246,.12);color:#6d28d9;border-radius:14px;font-size:13px;text-decoration:none;transition:.15s}
.aipq-ex:hover{background:#8b5cf6;color:#fff}
.aipq-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(139,92,246,.08)}
.aipq-card-head{font-size:16px;font-weight:700;color:#6d28d9;margin-bottom:18px;padding-bottom:12px;border-bottom:2px solid rgba(139,92,246,.12);display:flex;align-items:center;gap:8px}
.aipq-card-head i{color:#8b5cf6}
.aipq-list{display:flex;flex-direction:column;gap:14px}
.aipq-item{padding:16px 18px;background:linear-gradient(135deg,rgba(139,92,246,.08),rgba(139,92,246,.12));border-radius:12px;border-left:4px solid #8b5cf6}
.aipq-item-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.aipq-item-num{font-size:12px;font-weight:700;color:#8b5cf6;font-family:ui-monospace,Menlo,Consolas,monospace}
.aipq-item-scene{padding:2px 10px;background:var(--panel);color:#7c3aed;border-radius:10px;font-size:11px;border:1px solid rgba(139,92,246,.3)}
.aipq-copy{margin-left:auto;width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center}
.aipq-copy:hover{border-color:#8b5cf6;color:#8b5cf6}
.aipq-text{font-size:15px;color:var(--fg);line-height:1.9;margin-bottom:8px;white-space:pre-wrap;word-break:break-word}
.aipq-tag{font-size:13px;color:#8b5cf6;font-weight:500}
.aipq-tip{margin-top:20px;padding:14px 18px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;font-size:13px;color:#f59e0b;display:flex;align-items:flex-start;gap:8px;line-height:1.7}
.aipq-tip i{color:#f59e0b;margin-top:2px}
.aipq-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aipq-loading-spinner{font-size:48px;color:#8b5cf6;margin-bottom:16px}
.aipq-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aipq-loading-tip{font-size:12px;color:var(--muted)}
.aipq-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aipq-error i{margin-right:6px}
.aipq-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}
.aipq-tips{list-style:none;padding:0;margin:0}
.aipq-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aipq-tips li:last-child{border-bottom:none}
.aipq-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#8b5cf6;font-size:12px}
.aipq-tips b{color:var(--fg)}
@media (max-width:640px){
  .aipq-label{width:100%}
  .aipq-btn{flex:1;justify-content:center}
  .aipq-card{padding:16px}
  .aipq-item{padding:14px}
}
/* ===== AI小红书文案 (aixhs-) ===== */
.aixhs-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aixhs-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.aixhs-row:last-of-type{margin-bottom:0}
.aixhs-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.aixhs-input{flex:1;min-width:200px;padding:11px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.aixhs-input:focus{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.12)}
.aixhs-tracks,.aixhs-tones{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.aixhs-track,.aixhs-tone{padding:7px 14px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.aixhs-track:hover,.aixhs-tone:hover{border-color:#ef4444;color:#ef4444}
.aixhs-track.on,.aixhs-tone.on{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(239,68,68,.25)}
.aixhs-counts{display:flex;gap:8px;flex-wrap:wrap}
.aixhs-count{padding:7px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s}
.aixhs-count:hover{border-color:#ef4444;color:#ef4444}
.aixhs-count.on{background:#ef4444;border-color:#ef4444;color:#fff}
.aixhs-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aixhs-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aixhs-btn:hover:not(:disabled){border-color:#ef4444;color:#ef4444}
.aixhs-btn:disabled{opacity:.6;cursor:not-allowed}
.aixhs-btn-primary{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(239,68,68,.3)}
.aixhs-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff}
.aixhs-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}
.aixhs-ex-label{font-size:13px;color:var(--muted)}
.aixhs-ex{padding:4px 12px;background:rgba(239,68,68,.15);color:#ef4444;border-radius:14px;font-size:13px;text-decoration:none;transition:.15s}
.aixhs-ex:hover{background:#ef4444;color:#fff}
.aixhs-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(239,68,68,.08)}
.aixhs-card-head{font-size:16px;font-weight:700;color:#ef4444;margin-bottom:18px;padding-bottom:12px;border-bottom:2px solid rgba(239,68,68,.15);display:flex;align-items:center;gap:8px}
.aixhs-card-head i{color:#ef4444}
.aixhs-note{padding:18px 20px;background:var(--panel);border:1px solid rgba(239,68,68,.15);border-radius:12px;margin-bottom:18px}
.aixhs-note:last-child{margin-bottom:0}
.aixhs-note-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.aixhs-note-num{padding:2px 10px;background:#ef4444;color:#fff;border-radius:10px;font-size:12px;font-weight:600}
.aixhs-hook{font-size:11px;color:#ef4444;background:rgba(239,68,68,.15);padding:2px 8px;border-radius:8px;display:inline-flex;align-items:center;gap:4px}
.aixhs-copy{margin-left:auto;padding:5px 12px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.aixhs-copy:hover{border-color:#ef4444;color:#ef4444}
.aixhs-title{font-size:17px;font-weight:700;color:var(--fg);line-height:1.5;margin-bottom:12px}
.aixhs-content{font-size:14px;color:var(--fg);line-height:1.9;margin-bottom:14px;white-space:pre-wrap;word-break:break-word}
.aixhs-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.aixhs-tag{font-size:12px;color:var(--accent);background:rgba(59,130,246,.15);padding:3px 10px;border-radius:12px}
.aixhs-cover{font-size:12px;color:#f59e0b;background:rgba(245,158,11,.1);padding:8px 12px;border-radius:8px;border:1px dashed rgba(245,158,11,.3);display:flex;align-items:center;gap:6px}
.aixhs-cover i{color:#f59e0b}
.aixhs-tip{margin-top:4px;padding:14px 18px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;font-size:13px;color:#f59e0b;display:flex;align-items:flex-start;gap:8px;line-height:1.7}
.aixhs-tip i{color:#f59e0b;margin-top:2px}
.aixhs-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aixhs-loading-spinner{font-size:48px;color:#ef4444;margin-bottom:16px}
.aixhs-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aixhs-loading-tip{font-size:12px;color:var(--muted)}
.aixhs-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aixhs-error i{margin-right:6px}
.aixhs-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}
.aixhs-tips{list-style:none;padding:0;margin:0}
.aixhs-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aixhs-tips li:last-child{border-bottom:none}
.aixhs-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#ef4444;font-size:12px}
.aixhs-tips b{color:var(--fg)}
@media (max-width:640px){
  .aixhs-label{width:100%}
  .aixhs-btn{flex:1;justify-content:center}
  .aixhs-card{padding:16px}
  .aixhs-note{padding:14px}
  .aixhs-title{font-size:15px}
}

/* ===== AI短视频脚本 (aidsp-) ===== */
.aidsp-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.aidsp-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.aidsp-row:last-of-type{margin-bottom:0}
.aidsp-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.aidsp-input{flex:1;min-width:200px;padding:11px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.aidsp-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.aidsp-platforms,.aidsp-durations,.aidsp-styles{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.aidsp-pf,.aidsp-dur,.aidsp-style{padding:7px 14px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:5px}
.aidsp-pf:hover,.aidsp-dur:hover,.aidsp-style:hover{border-color:#6366f1;color:#6366f1}
.aidsp-pf.on,.aidsp-dur.on,.aidsp-style.on{background:linear-gradient(135deg,#6366f1,#4f46e5);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(99,102,241,.25)}
.aidsp-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.aidsp-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aidsp-btn:hover:not(:disabled){border-color:#6366f1;color:#6366f1}
.aidsp-btn:disabled{opacity:.6;cursor:not-allowed}
.aidsp-btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(99,102,241,.3)}
.aidsp-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff}
.aidsp-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px dashed var(--line)}
.aidsp-ex-label{font-size:13px;color:var(--muted)}
.aidsp-ex{padding:4px 12px;background:rgba(99,102,241,.12);color:#6366f1;border-radius:14px;font-size:13px;text-decoration:none;transition:.15s}
.aidsp-ex:hover{background:#6366f1;color:#fff}
.aidsp-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(99,102,241,.08)}
.aidsp-card-head{font-size:16px;font-weight:700;color:var(--fg);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.aidsp-card-head i{color:#6366f1;margin-right:6px}
.aidsp-title-box{padding:18px 20px;background:linear-gradient(135deg,rgba(99,102,241,.1),rgba(99,102,241,.12));border-radius:12px;margin-bottom:22px}
.aidsp-video-title{font-size:18px;font-weight:700;color:var(--fg);line-height:1.5;margin-bottom:10px;display:flex;align-items:flex-start;gap:8px}
.aidsp-video-title i{color:#6366f1;margin-top:4px}
.aidsp-hook{font-size:14px;color:#6366f1;line-height:1.7;padding:10px 14px;background:var(--panel);border-radius:8px;border-left:3px solid #6366f1;display:flex;align-items:flex-start;gap:10px}
.aidsp-hook-label{flex-shrink:0;padding:2px 8px;background:#6366f1;color:#fff;border-radius:6px;font-size:11px;font-weight:600;margin-top:3px}
.aidsp-section{margin-bottom:22px}
.aidsp-section:last-child{margin-bottom:0}
.aidsp-section-head{font-size:15px;font-weight:600;color:#6366f1;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid rgba(99,102,241,.12);display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap}
.aidsp-section-head i{color:#6366f1}
.aidsp-copy{padding:6px 14px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px;font-weight:400}
.aidsp-copy:hover{border-color:#6366f1;color:#6366f1}
.aidsp-shots{display:flex;flex-direction:column;gap:12px}
.aidsp-shot{padding:14px 16px;background:var(--hover);border-radius:10px;border-left:4px solid #6366f1}
.aidsp-shot-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px dashed var(--line)}
.aidsp-shot-no{padding:2px 10px;background:#6366f1;color:#fff;border-radius:10px;font-size:12px;font-weight:600}
.aidsp-shot-time{font-size:12px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace;display:inline-flex;align-items:center;gap:4px}
.aidsp-shot-body{display:flex;flex-direction:column;gap:8px}
.aidsp-shot-row{display:flex;gap:10px;font-size:13px;line-height:1.8;align-items:flex-start}
.aidsp-shot-lbl{flex-shrink:0;width:60px;color:var(--muted);display:inline-flex;align-items:center;gap:4px;font-size:12px}
.aidsp-shot-lbl i{font-size:11px}
.aidsp-shot-val{flex:1;color:var(--fg);word-break:break-word}
.aidsp-shot-voice{color:var(--fg);font-weight:500}
.aidsp-shot-screen{color:var(--muted);font-style:italic}
.aidsp-footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.aidsp-footer-box{padding:14px 16px;border-radius:10px;border:1px solid}
.aidsp-ending{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.4)}
.aidsp-bgm{background:rgba(245,158,11,.15);border-color:rgba(245,158,11,.3)}
.aidsp-footer-head{font-size:13px;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.aidsp-ending .aidsp-footer-head{color:#10b981}
.aidsp-bgm .aidsp-footer-head{color:#f59e0b}
.aidsp-footer-body{font-size:13px;line-height:1.8;color:var(--fg)}
.aidsp-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.aidsp-tag{font-size:12px;color:var(--accent);background:rgba(59,130,246,.15);padding:3px 10px;border-radius:12px}
.aidsp-tip{padding:14px 18px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;font-size:13px;color:#f59e0b;display:flex;align-items:flex-start;gap:8px;line-height:1.7}
.aidsp-tip i{color:#f59e0b;margin-top:2px}
.aidsp-loading{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:60px 20px;text-align:center;margin-bottom:18px}
.aidsp-loading-spinner{font-size:48px;color:#6366f1;margin-bottom:16px}
.aidsp-loading-text{font-size:15px;color:var(--fg);font-weight:500;margin-bottom:6px}
.aidsp-loading-tip{font-size:12px;color:var(--muted)}
.aidsp-error{padding:14px 18px;color:#dc2626;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:14px;margin-bottom:16px}
.aidsp-error i{margin-right:6px}
.aidsp-raw{padding:16px;background:#0f172a;color:#cbd5e1;border-radius:10px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-all;overflow-x:auto}
.aidsp-tips{list-style:none;padding:0;margin:0}
.aidsp-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aidsp-tips li:last-child{border-bottom:none}
.aidsp-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#6366f1;font-size:12px}
.aidsp-tips b{color:var(--fg)}
@media (max-width:640px){
  .aidsp-label{width:100%}
  .aidsp-btn{flex:1;justify-content:center}
  .aidsp-card{padding:16px}
  .aidsp-footer-grid{grid-template-columns:1fr}
  .aidsp-shot-lbl{width:52px}
}

/* ===== Bootstrap图标大全 (bsic-) ===== */
.bsic-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04);position:sticky;top:8px;z-index:10}
.bsic-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.bsic-search-wrap{position:relative;flex:1;min-width:220px}
.bsic-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.bsic-search{width:100%;padding:11px 40px 11px 38px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:#111;outline:none;transition:.15s;box-sizing:border-box}
.bsic-search:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.bsic-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:.15s}
.bsic-search-clear:hover{background:var(--hover);color:#ef4444}
.bsic-count{font-size:13px;color:var(--muted);white-space:nowrap}
.bsic-count span{color:#8b5cf6;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.bsic-tips{font-size:12px;color:var(--muted);line-height:1.7}
.bsic-tips code{background:var(--hover);padding:2px 6px;border-radius:4px;color:#7c3aed;font-family:ui-monospace,Menlo,Consolas,monospace}
.bsic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-bottom:20px}
.bsic-item{padding:14px 8px;background:var(--panel);border:1px solid var(--line);border-radius:10px;text-align:center;cursor:pointer;transition:.15s;user-select:none}
.bsic-item:hover{border-color:#8b5cf6;box-shadow:0 4px 12px rgba(139,92,246,.15);transform:translateY(-2px)}
.bsic-item.bsic-copied{background:rgba(16,185,129,.08);border-color:#10b981}
.bsic-icon{font-size:26px;color:var(--fg);line-height:1;margin-bottom:8px;transition:.15s}
.bsic-item:hover .bsic-icon{color:#8b5cf6}
.bsic-item.bsic-copied .bsic-icon{color:#10b981}
.bsic-name{font-size:11px;color:var(--muted);word-break:break-all;line-height:1.3;font-family:ui-monospace,Menlo,Consolas,monospace}
.bsic-item.bsic-copied .bsic-name{color:#059669;font-weight:600}
.bsic-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px}
.bsic-empty i{font-size:36px;display:block;margin-bottom:12px;color:var(--line)}
.bsic-error{padding:20px;text-align:center;color:#dc2626;background:rgba(239,68,68,.1);border-radius:10px;font-size:14px;grid-column:1/-1}
.bsic-tips-list{list-style:none;padding:0;margin:0}
.bsic-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed #eee}
.bsic-tips-list li:last-child{border-bottom:none}
.bsic-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#8b5cf6;font-size:12px}
.bsic-tips-list b{color:#111}
.bsic-tips-list code{background:var(--hover);padding:2px 6px;border-radius:4px;color:#7c3aed;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}
@media (max-width:640px){
  .bsic-grid{grid-template-columns:repeat(auto-fill,minmax(85px,1fr));gap:8px}
  .bsic-item{padding:10px 6px}
  .bsic-icon{font-size:22px}
  .bsic-name{font-size:10px}
}
/* ===== Tailwind CSS类名查询 (twc-) ===== */
.twc-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.twc-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.twc-search-wrap{position:relative;flex:1;min-width:220px}
.twc-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.twc-search{width:100%;padding:11px 40px 11px 38px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;box-sizing:border-box}
.twc-search:focus{border-color:#06b6d4;box-shadow:0 0 0 3px rgba(6,182,212,.12)}
.twc-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:.15s}
.twc-search-clear:hover{background:var(--hover);color:#ef4444}
.twc-count{font-size:13px;color:var(--muted);white-space:nowrap}
.twc-count span{color:#06b6d4;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.twc-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.twc-cat{padding:6px 14px;font-size:13px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.twc-cat:hover{border-color:#06b6d4;color:#06b6d4}
.twc-cat.on{background:linear-gradient(135deg,#06b6d4,#06b6d4);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(6,182,212,.25)}
.twc-tips{font-size:12px;color:var(--muted);line-height:1.7}
.twc-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.twc-item{display:grid;grid-template-columns:minmax(140px,auto) auto 1fr auto;gap:14px;align-items:center;padding:12px 16px;background:var(--panel);border:1px solid var(--line);border-radius:10px;cursor:pointer;transition:.15s}
.twc-item:hover{border-color:#06b6d4;box-shadow:0 4px 12px rgba(6,182,212,.12);transform:translateY(-1px)}
.twc-item.twc-copied{background:rgba(6,182,212,.1);border-color:#06b6d4}
.twc-name{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;color:#06b6d4;background:rgba(6,182,212,.1);padding:4px 10px;border-radius:6px;font-weight:600;white-space:nowrap;justify-self:start}
.twc-item.twc-copied .twc-name{background:#06b6d4;color:#fff}
.twc-cat-badge{font-size:11px;color:var(--muted);background:var(--hover);padding:3px 9px;border-radius:10px;white-space:nowrap}
.twc-desc{font-size:13px;color:var(--muted);line-height:1.6;overflow:hidden;text-overflow:ellipsis}
.twc-item.twc-copied .twc-desc{color:#06b6d4;font-weight:500}
.twc-copy-icon{color:var(--muted);font-size:14px;transition:.15s}
.twc-item:hover .twc-copy-icon{color:#06b6d4}
.twc-item.twc-copied .twc-copy-icon{color:#06b6d4}
.twc-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px}
.twc-empty i{font-size:36px;display:block;margin-bottom:12px;color:var(--muted)}
.twc-error{padding:20px;text-align:center;color:#dc2626;background:rgba(239,68,68,.1);border-radius:10px;font-size:14px}
.twc-tips-list{list-style:none;padding:0;margin:0}
.twc-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.twc-tips-list li:last-child{border-bottom:none}
.twc-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#06b6d4;font-size:12px}
.twc-tips-list b{color:var(--fg)}
.twc-tips-list code{background:rgba(6,182,212,.1);padding:2px 6px;border-radius:4px;color:#06b6d4;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}
.twc-tips-list a{color:#06b6d4;text-decoration:none}
.twc-tips-list a:hover{text-decoration:underline}
@media (max-width:640px){
  .twc-item{grid-template-columns:1fr;gap:6px;padding:12px}
  .twc-copy-icon{display:none}
  .twc-desc{font-size:12px}
}
/* ===== 中国车牌代码 (cpc-) ===== */
.cpc-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.cpc-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.cpc-search-wrap{position:relative;flex:1;min-width:220px}
.cpc-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.cpc-search{width:100%;padding:11px 40px 11px 38px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;box-sizing:border-box}
.cpc-search:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(2,132,199,.12)}
.cpc-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:.15s}
.cpc-search-clear:hover{background:var(--hover);color:#ef4444}
.cpc-count{font-size:13px;color:var(--muted);white-space:nowrap}
.cpc-count span{color:#3b82f6;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.cpc-provs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.cpc-prov{padding:6px 14px;font-size:13px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.cpc-prov:hover{border-color:#3b82f6;color:#3b82f6}
.cpc-prov.on{background:linear-gradient(135deg,#3b82f6,#3b82f6);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(2,132,199,.25)}
.cpc-tips{font-size:12px;color:var(--muted);line-height:1.7}
.cpc-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.cpc-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:12px 16px;background:var(--panel);border:1px solid var(--line);border-radius:10px;cursor:pointer;transition:.15s}
.cpc-item:hover{border-color:#3b82f6;box-shadow:0 4px 12px rgba(2,132,199,.12);transform:translateY(-1px)}
.cpc-item.cpc-copied{background:rgba(14,165,233,.12);border-color:#3b82f6}
.cpc-code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:16px;color:#fff;background:linear-gradient(135deg,#3b82f6,#3b82f6);padding:5px 14px;border-radius:8px;font-weight:700;letter-spacing:2px;white-space:nowrap}
.cpc-item.cpc-copied .cpc-code{background:#10b981}
.cpc-loc{font-size:13px;color:var(--fg);line-height:1.6;overflow:hidden;text-overflow:ellipsis}
.cpc-loc b{color:var(--fg)}
.cpc-item.cpc-copied .cpc-loc{color:#3b82f6;font-weight:500}
.cpc-type{font-size:11px;color:var(--muted);background:var(--hover);padding:3px 9px;border-radius:10px;white-space:nowrap}
.cpc-copy-icon{color:var(--muted);font-size:14px;transition:.15s}
.cpc-item:hover .cpc-copy-icon,.cpc-item.cpc-copied .cpc-copy-icon{color:#3b82f6}
.cpc-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px}
.cpc-empty i{font-size:36px;display:block;margin-bottom:12px;color:var(--muted)}
.cpc-error{padding:20px;text-align:center;color:#dc2626;background:rgba(239,68,68,.1);border-radius:10px;font-size:14px}
.cpc-tips-list{list-style:none;padding:0;margin:0}
.cpc-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.cpc-tips-list li:last-child{border-bottom:none}
.cpc-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#3b82f6;font-size:12px}
.cpc-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .cpc-item{grid-template-columns:auto 1fr auto;gap:10px;padding:10px 12px}
  .cpc-type{display:none}
  .cpc-copy-icon{display:none}
  .cpc-code{font-size:14px;padding:4px 10px;letter-spacing:1px}
  .cpc-loc{font-size:12px}
}
/* ===== 世界国家国旗 (wcf-) ===== */
.wcf-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.wcf-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.wcf-search-wrap{position:relative;flex:1;min-width:220px}
.wcf-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.wcf-search{width:100%;padding:11px 40px 11px 38px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;box-sizing:border-box}
.wcf-search:focus{border-color:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.12)}
.wcf-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:.15s}
.wcf-search-clear:hover{background:var(--hover);color:#ef4444}
.wcf-count{font-size:13px;color:var(--muted);white-space:nowrap}
.wcf-count span{color:#16a34a;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.wcf-regions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.wcf-region{padding:6px 14px;font-size:13px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.wcf-region:hover{border-color:#16a34a;color:#16a34a}
.wcf-region.on{background:linear-gradient(135deg,#16a34a,#10b981);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(22,163,74,.25)}
.wcf-tips{font-size:12px;color:var(--muted);line-height:1.7}
.wcf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:20px}
.wcf-item{padding:16px 14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;text-align:center;cursor:pointer;transition:.15s;position:relative}
.wcf-item:hover{border-color:#16a34a;box-shadow:0 4px 16px rgba(22,163,74,.12);transform:translateY(-2px)}
.wcf-item.wcf-copied{background:rgba(16,185,129,.1);border-color:#16a34a}
.wcf-flag{font-size:44px;line-height:1;margin-bottom:10px;font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}
.wcf-cn{font-size:15px;font-weight:700;color:var(--fg);margin-bottom:4px}
.wcf-en{font-size:11px;color:var(--muted);margin-bottom:8px;line-height:1.4;min-height:16px;word-break:break-word}
.wcf-item.wcf-copied .wcf-en{color:#16a34a;font-weight:600}
.wcf-cap{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:var(--hover);border-radius:10px}
.wcf-cap i{font-size:10px;color:#16a34a}
.wcf-region-badge{position:absolute;top:8px;right:8px;font-size:10px;color:#10b981;background:rgba(16,185,129,.15);padding:2px 8px;border-radius:8px}
.wcf-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px}
.wcf-empty i{font-size:36px;display:block;margin-bottom:12px;color:var(--muted)}
.wcf-tips-list{list-style:none;padding:0;margin:0}
.wcf-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.wcf-tips-list li:last-child{border-bottom:none}
.wcf-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#16a34a;font-size:12px}
.wcf-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .wcf-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
  .wcf-flag{font-size:36px}
  .wcf-cn{font-size:14px}
}

/* ===== 世界国家货币 (wcc-) ===== */
.wcc-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.wcc-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.wcc-search-wrap{position:relative;flex:1;min-width:220px}
.wcc-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.wcc-search{width:100%;padding:11px 40px 11px 38px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;box-sizing:border-box}
.wcc-search:focus{border-color:#f59e0b;box-shadow:0 0 0 3px rgba(217,119,6,.12)}
.wcc-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:.15s}
.wcc-search-clear:hover{background:var(--hover);color:#ef4444}
.wcc-count{font-size:13px;color:var(--muted);white-space:nowrap}
.wcc-count span{color:#f59e0b;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.wcc-regions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.wcc-region{padding:6px 14px;font-size:13px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.wcc-region:hover{border-color:#f59e0b;color:#f59e0b}
.wcc-region.on{background:linear-gradient(135deg,#f59e0b,#f59e0b);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(217,119,6,.25)}
.wcc-tips{font-size:12px;color:var(--muted);line-height:1.7}
.wcc-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.wcc-item{display:grid;grid-template-columns:60px 90px minmax(0,1fr) minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 16px;background:var(--panel);border:1px solid var(--line);border-radius:10px;cursor:pointer;transition:.15s}
.wcc-item:hover{border-color:#f59e0b;box-shadow:0 4px 12px rgba(217,119,6,.12);transform:translateY(-1px)}
.wcc-item.wcc-copied{background:rgba(245,158,11,.1);border-color:#f59e0b}
.wcc-symbol{font-size:22px;color:#f59e0b;text-align:center;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.wcc-code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;color:#fff;background:linear-gradient(135deg,#f59e0b,#f59e0b);padding:5px 10px;border-radius:8px;font-weight:700;letter-spacing:1px;text-align:center;white-space:nowrap}
.wcc-item.wcc-copied .wcc-code{background:#10b981}
.wcc-currency{font-size:14px;color:var(--fg);font-weight:500;overflow:hidden;text-overflow:ellipsis}
.wcc-country{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wcc-country i{color:var(--muted);margin-right:4px;font-size:11px}
.wcc-item.wcc-copied .wcc-country{color:#f59e0b;font-weight:500}
.wcc-region-badge{font-size:11px;color:#f59e0b;background:rgba(245,158,11,.15);padding:3px 9px;border-radius:10px;white-space:nowrap}
.wcc-copy-icon{color:var(--muted);font-size:14px;transition:.15s}
.wcc-item:hover .wcc-copy-icon,.wcc-item.wcc-copied .wcc-copy-icon{color:#f59e0b}
.wcc-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px}
.wcc-empty i{font-size:36px;display:block;margin-bottom:12px;color:var(--muted)}
.wcc-tips-list{list-style:none;padding:0;margin:0}
.wcc-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.wcc-tips-list li:last-child{border-bottom:none}
.wcc-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#f59e0b;font-size:12px}
.wcc-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .wcc-item{grid-template-columns:50px 80px 1fr auto;gap:8px;padding:10px 12px}
  .wcc-country,.wcc-region-badge{display:none}
  .wcc-symbol{font-size:18px}
  .wcc-code{font-size:12px;padding:4px 8px}
  .wcc-currency{font-size:13px}
}


/* ===== 食物热量查询 (fcal-) ===== */
.fcal-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.fcal-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.fcal-search-wrap{position:relative;flex:1;min-width:220px}
.fcal-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.fcal-search{width:100%;padding:11px 40px 11px 38px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;box-sizing:border-box}
.fcal-search:focus{border-color:#f59e0b;box-shadow:0 0 0 3px rgba(234,88,12,.12)}
.fcal-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:.15s}
.fcal-search-clear:hover{background:var(--hover);color:#ef4444}
.fcal-count{font-size:13px;color:var(--muted);white-space:nowrap}
.fcal-count span{color:#f59e0b;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.fcal-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.fcal-cat{padding:6px 14px;font-size:13px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.fcal-cat:hover{border-color:#f59e0b;color:#f59e0b}
.fcal-cat.on{background:linear-gradient(135deg,#f59e0b,#f59e0b);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(234,88,12,.25)}
.fcal-tips{font-size:12px;color:var(--muted);line-height:1.7}
.fcal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:20px}
.fcal-item{padding:16px 14px;border-radius:12px;text-align:center;cursor:pointer;transition:.15s;border:1px solid;position:relative}
.fcal-item:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.08)}
.fcal-low{background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.3)}
.fcal-mid{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.4)}
.fcal-higher{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.3)}
.fcal-high{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3)}
.fcal-item-name{font-size:14px;color:var(--fg);font-weight:600;margin-bottom:10px;line-height:1.4}
.fcal-item-kcal{display:flex;align-items:baseline;justify-content:center;gap:4px;margin-bottom:8px}
.fcal-item-kcal b{font-size:26px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1}
.fcal-low .fcal-item-kcal b{color:#16a34a}
.fcal-mid .fcal-item-kcal b{color:#059669}
.fcal-higher .fcal-item-kcal b{color:#f59e0b}
.fcal-high .fcal-item-kcal b{color:#dc2626}
.fcal-item-kcal span{font-size:11px;color:var(--muted)}
.fcal-item-label{font-size:11px;color:var(--muted);padding:2px 10px;background:var(--panel);border-radius:10px;display:inline-block}
.fcal-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px}
.fcal-empty i{font-size:36px;display:block;margin-bottom:12px;color:var(--muted)}
.fcal-tips-list{list-style:none;padding:0;margin:0}
.fcal-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.fcal-tips-list li:last-child{border-bottom:none}
.fcal-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#f59e0b;font-size:12px}
.fcal-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .fcal-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
  .fcal-item{padding:12px 10px}
  .fcal-item-name{font-size:13px}
  .fcal-item-kcal b{font-size:22px}
}
/* ===== 营养素查询 (nutr-) ===== */
.nutr-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.nutr-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.nutr-search-wrap{position:relative;flex:1;min-width:220px}
.nutr-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.nutr-search{width:100%;padding:11px 40px 11px 38px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;box-sizing:border-box}
.nutr-search:focus{border-color:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.12)}
.nutr-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:.15s}
.nutr-search-clear:hover{background:var(--hover);color:#ef4444}
.nutr-count{font-size:13px;color:var(--muted);white-space:nowrap}
.nutr-count span{color:#10b981;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.nutr-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.nutr-cat{padding:6px 14px;font-size:13px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.nutr-cat:hover{border-color:#10b981;color:#10b981}
.nutr-cat.on{background:linear-gradient(135deg,#10b981,#059669);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(16,185,129,.25)}
.nutr-tips{font-size:12px;color:var(--muted);line-height:1.7}
.nutr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:20px}
.nutr-item{padding:16px 18px;background:var(--panel);border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:.15s;border-left:4px solid var(--line)}
.nutr-item:hover{box-shadow:0 6px 18px rgba(0,0,0,.06);transform:translateY(-2px)}
.nutr-vit{border-left-color:#f59e0b;background:linear-gradient(135deg,rgba(245,158,11,.1),var(--panel))}
.nutr-min{border-left-color:var(--accent);background:linear-gradient(135deg,rgba(59,130,246,.1),var(--panel))}
.nutr-pro{border-left-color:#ef4444;background:linear-gradient(135deg,rgba(239,68,68,.1),var(--panel))}
.nutr-fat{border-left-color:#8b5cf6;background:linear-gradient(135deg,rgba(139,92,246,.08),var(--panel))}
.nutr-carb{border-left-color:#10b981;background:linear-gradient(135deg,rgba(16,185,129,.1),var(--panel))}
.nutr-other{border-left-color:var(--muted);background:linear-gradient(135deg,var(--hover),var(--panel))}
.nutr-item-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.nutr-item-name{font-size:16px;font-weight:700;color:var(--fg);flex:1;min-width:0}
.nutr-item-cat{font-size:11px;color:var(--muted);background:var(--hover);padding:3px 10px;border-radius:10px;white-space:nowrap}
.nutr-item-dose{font-size:13px;color:var(--fg);padding:10px 12px;background:var(--hover);border-radius:8px;display:flex;align-items:center;gap:6px;margin-bottom:10px;line-height:1.6}
.nutr-item-dose i{color:#10b981;flex-shrink:0}
.nutr-item-detail{display:none;border-top:1px dashed var(--line);padding-top:12px;margin-top:4px}
.nutr-detail-row{display:flex;gap:10px;font-size:13px;line-height:1.8;margin-bottom:8px;align-items:flex-start}
.nutr-detail-row:last-child{margin-bottom:0}
.nutr-detail-lbl{flex-shrink:0;width:60px;color:var(--muted);font-size:12px;display:inline-flex;align-items:center;gap:4px}
.nutr-detail-lbl i{font-size:11px}
.nutr-detail-row > span:last-child{color:var(--fg);flex:1}
.nutr-item-toggle{margin-top:10px;text-align:center;font-size:12px;color:#10b981;font-weight:500;padding-top:10px;border-top:1px dashed var(--line)}
.nutr-item.nutr-open{background:rgba(16,185,129,.1)}
.nutr-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px}
.nutr-empty i{font-size:36px;display:block;margin-bottom:12px;color:var(--muted)}
.nutr-tips-list{list-style:none;padding:0;margin:0}
.nutr-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.nutr-tips-list li:last-child{border-bottom:none}
.nutr-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#10b981;font-size:12px}
.nutr-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .nutr-grid{grid-template-columns:1fr;gap:10px}
  .nutr-item{padding:14px}
  .nutr-item-name{font-size:15px}
}
/* ===== 运动消耗计算 (excal-) ===== */
.excal-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.excal-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.excal-row:last-of-type{margin-bottom:0}
.excal-label{width:110px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.excal-input{flex:1;min-width:120px;padding:11px 14px;font-size:15px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;font-family:ui-monospace,Menlo,Consolas,monospace}
.excal-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.excal-select{flex:1;min-width:200px;padding:11px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.excal-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.excal-times-tip{font-size:13px;color:var(--muted);white-space:nowrap}
.excal-actions{display:flex;gap:10px;margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.excal-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.excal-btn:hover{border-color:var(--accent);color:var(--accent)}
.excal-btn-primary{background:linear-gradient(135deg,var(--accent),#3b82f6);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(14,165,233,.3)}
.excal-btn-primary:hover{background:linear-gradient(135deg,#3b82f6,#3b82f6);color:#fff}
.excal-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(14,165,233,.08)}
.excal-main{text-align:center;padding:28px 20px;background:linear-gradient(135deg,rgba(14,165,233,.12),rgba(14,165,233,.3));border-radius:14px;margin-bottom:20px}
.excal-main-label{font-size:13px;color:#3b82f6;margin-bottom:10px;letter-spacing:1px}
.excal-main-num{font-size:52px;font-weight:700;color:#3b82f6;line-height:1;font-family:ui-monospace,Menlo,Consolas,monospace;margin-bottom:10px}
.excal-main-num span{font-size:18px;color:#3b82f6;font-weight:500;margin-left:6px}
.excal-main-sub{font-size:13px;color:#3b82f6}
.excal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}
.excal-stat{padding:16px 12px;background:rgba(14,165,233,.1);border:1px solid rgba(14,165,233,.3);border-radius:10px;text-align:center}
.excal-stat-num{font-size:22px;font-weight:700;color:#3b82f6;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1;margin-bottom:6px}
.excal-stat-lbl{font-size:12px;color:#3b82f6}
.excal-equiv,.excal-compare{margin-top:20px;padding:18px;background:var(--hover);border-radius:12px}
.excal-equiv-head,.excal-compare-head{font-size:14px;font-weight:700;color:var(--fg);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.excal-equiv-head i,.excal-compare-head i{color:var(--accent)}
.excal-equiv-list,.excal-compare-list{display:flex;flex-direction:column;gap:8px}
.excal-equiv-item,.excal-compare-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--panel);border-radius:8px;font-size:13px;border:1px solid var(--line)}
.excal-equiv-name,.excal-compare-name{color:var(--fg)}
.excal-equiv-val{color:#3b82f6;font-weight:600;font-family:ui-monospace,Menlo,Consolas,monospace}
.excal-compare-time{color:#10b981;font-weight:600;font-family:ui-monospace,Menlo,Consolas,monospace}
.excal-tips{list-style:none;padding:0;margin:0}
.excal-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.excal-tips li:last-child{border-bottom:none}
.excal-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:var(--accent);font-size:12px}
.excal-tips b{color:var(--fg)}
@media (max-width:640px){
  .excal-label{width:100%}
  .excal-btn{flex:1;justify-content:center}
  .excal-card{padding:16px}
  .excal-main-num{font-size:42px}
  .excal-stats{grid-template-columns:1fr;gap:10px}
  .excal-equiv,.excal-compare{padding:14px}
}
/* ===== 心率区间计算 (hrz-) ===== */
.hrz-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.hrz-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.hrz-row:last-of-type{margin-bottom:0}
.hrz-label{width:150px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.hrz-input{flex:1;min-width:120px;padding:11px 14px;font-size:15px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;font-family:ui-monospace,Menlo,Consolas,monospace}
.hrz-input:focus{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.12)}
.hrz-tip{font-size:12px;color:var(--muted)}
.hrz-formulas{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.hrz-formula{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.hrz-formula:hover{border-color:#ef4444;color:#ef4444}
.hrz-formula.on{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(239,68,68,.25)}
.hrz-actions{display:flex;gap:10px;margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.hrz-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.hrz-btn:hover{border-color:#ef4444;color:#ef4444}
.hrz-btn-primary{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(239,68,68,.3)}
.hrz-btn-primary:hover{background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff}
.hrz-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(239,68,68,.08)}
.hrz-main{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;padding:20px;background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(239,68,68,.15));border-radius:14px;margin-bottom:22px}
.hrz-main-item{text-align:center}
.hrz-main-num{font-size:36px;font-weight:700;color:#dc2626;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1;margin-bottom:8px}
.hrz-main-num span{font-size:14px;color:#ef4444;font-weight:500;margin-left:4px}
.hrz-main-num-text{font-size:16px;padding-top:12px;font-family:inherit}
.hrz-main-lbl{font-size:13px;color:#ef4444}
.hrz-zones{display:flex;flex-direction:column;gap:14px;margin-bottom:22px}
.hrz-zone{padding:16px 18px;background:var(--hover);border-radius:12px;border-left:5px solid var(--line);transition:.15s}
.hrz-zone:hover{background:var(--hover);transform:translateX(4px)}
.hrz-zone-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;flex-wrap:wrap;gap:6px}
.hrz-zone-name{font-size:16px;font-weight:700}
.hrz-zone-pct{font-size:12px;color:var(--muted);background:var(--panel);padding:3px 10px;border-radius:10px;border:1px solid var(--line);font-family:ui-monospace,Menlo,Consolas,monospace}
.hrz-zone-range{font-size:24px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.2;margin-bottom:10px}
.hrz-zone-range span{font-size:12px;color:var(--muted);font-weight:400;margin-left:4px}
.hrz-zone-bar{height:6px;background:var(--line);border-radius:3px;overflow:hidden;margin-bottom:10px}
.hrz-zone-fill{height:100%;border-radius:3px;transition:width .3s}
.hrz-zone-desc{font-size:13px;color:var(--muted);line-height:1.7}
.hrz-fat-tip{padding:20px;background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(239,68,68,.15));border:1px solid rgba(239,68,68,.3);border-radius:12px;text-align:center}
.hrz-fat-head{font-size:14px;color:#ef4444;font-weight:700;margin-bottom:10px;display:flex;align-items:center;justify-content:center;gap:6px}
.hrz-fat-head i{color:#dc2626}
.hrz-fat-num{font-size:32px;font-weight:700;color:#dc2626;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1;margin-bottom:10px}
.hrz-fat-num span{font-size:14px;color:#ef4444;font-weight:400;margin-left:4px}
.hrz-fat-desc{font-size:13px;color:#ef4444;line-height:1.7}
.hrz-tips{list-style:none;padding:0;margin:0}
.hrz-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.hrz-tips li:last-child{border-bottom:none}
.hrz-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#ef4444;font-size:12px}
.hrz-tips b{color:var(--fg)}
@media (max-width:640px){
  .hrz-label{width:100%}
  .hrz-btn{flex:1;justify-content:center}
  .hrz-card{padding:16px}
  .hrz-main-num{font-size:28px}
  .hrz-zone-range{font-size:20px}
  .hrz-fat-num{font-size:26px}
}

/* ===== 血压评估 (bp-) ===== */
.bp-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.bp-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.bp-row:last-of-type{margin-bottom:0}
.bp-label{width:180px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.bp-input{flex:1;min-width:120px;padding:11px 14px;font-size:15px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;font-family:ui-monospace,Menlo,Consolas,monospace}
.bp-input:focus{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12)}
.bp-specials{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.bp-special{padding:7px 14px;font-size:13px;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.bp-special:hover{border-color:#dc2626;color:#dc2626}
.bp-special.on{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(220,38,38,.25)}
.bp-actions{display:flex;gap:10px;margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.bp-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.bp-btn:hover{border-color:#dc2626;color:#dc2626}
.bp-btn-primary{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(220,38,38,.3)}
.bp-btn-primary:hover{background:linear-gradient(135deg,#ef4444,#ef4444);color:#fff}
.bp-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(220,38,38,.08)}
.bp-main{padding:28px 20px;background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(239,68,68,.15));border:2px solid rgba(239,68,68,.3);border-radius:14px;text-align:center;margin-bottom:22px}
.bp-values{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.bp-value{display:flex;flex-direction:column;align-items:center}
.bp-value b{font-size:48px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1}
.bp-value span{font-size:12px;color:#ef4444;margin-top:6px}
.bp-sep{font-size:44px;color:rgba(239,68,68,.4);font-weight:300;line-height:1}
.bp-unit{font-size:14px;color:#ef4444;margin-left:6px;align-self:flex-end;padding-bottom:8px}
.bp-level{font-size:22px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;justify-content:center;gap:8px}
.bp-level i{font-size:20px}
.bp-advice{font-size:14px;color:var(--fg);line-height:1.9;max-width:640px;margin:0 auto}
.bp-spec-advice{margin-top:14px;padding:12px 16px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;font-size:13px;color:#f59e0b;line-height:1.7;display:flex;align-items:flex-start;gap:8px;text-align:left;max-width:640px;margin-left:auto;margin-right:auto}
.bp-spec-advice i{color:#f59e0b;margin-top:2px;flex-shrink:0}
.bp-section{margin-bottom:22px}
.bp-section:last-child{margin-bottom:0}
.bp-section-head{font-size:15px;font-weight:600;color:#ef4444;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid rgba(239,68,68,.15);display:flex;align-items:center;gap:8px}
.bp-section-head i{color:#dc2626}
.bp-table{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.bp-tr{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:8px;padding:10px 14px;font-size:13px;background:var(--panel);border-bottom:1px solid var(--line)}
.bp-tr:last-child{border-bottom:none}
.bp-tr-head{background:rgba(239,68,68,.1);font-weight:600;color:#ef4444}
.bp-tr > div{padding:4px 0}
.bp-info-list{display:flex;flex-direction:column;gap:10px}
.bp-info-row{display:flex;gap:12px;padding:12px 16px;background:var(--hover);border-radius:10px;font-size:13px;align-items:flex-start;line-height:1.7}
.bp-info-lbl{flex-shrink:0;width:120px;color:#ef4444;font-weight:600}
.bp-info-val{color:var(--muted);flex:1}
.bp-tips{list-style:none;padding:0;margin:0}
.bp-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.bp-tips li:last-child{border-bottom:none}
.bp-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#dc2626;font-size:12px}
.bp-tips b{color:var(--fg)}
@media (max-width:640px){
  .bp-label{width:100%}
  .bp-btn{flex:1;justify-content:center}
  .bp-card{padding:16px}
  .bp-value b{font-size:36px}
  .bp-sep{font-size:34px}
  .bp-level{font-size:18px}
  .bp-tr{font-size:12px;padding:8px 10px}
  .bp-info-lbl{width:100px;font-size:12px}
}
/* ===== 中医体质测试 (tcm-) ===== */
.tcm-start{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:50px 30px;text-align:center;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.tcm-start-icon{font-size:64px;color:#10b981;margin-bottom:20px}
.tcm-start-title{font-size:22px;font-weight:700;color:var(--fg);margin-bottom:16px}
.tcm-start-desc{font-size:14px;color:var(--muted);line-height:2;max-width:640px;margin:0 auto 24px}
.tcm-start-desc b{color:#10b981}
.tcm-start-btn{padding:14px 40px;font-size:16px;border:none;border-radius:30px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;cursor:pointer;font-weight:600;box-shadow:0 6px 20px rgba(16,185,129,.35);transition:.2s}
.tcm-start-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(16,185,129,.45)}
.tcm-quiz{margin-bottom:16px}
.tcm-progress-bar{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:16px;position:sticky;top:8px;z-index:10;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.tcm-progress-info{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:10px}
.tcm-progress-info b{color:#10b981;font-family:ui-monospace,Menlo,Consolas,monospace}
.tcm-progress-track{height:8px;background:var(--line);border-radius:4px;overflow:hidden}
.tcm-progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);border-radius:4px;transition:width .3s}
.tcm-questions{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}
.tcm-q{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px;transition:.15s}
.tcm-q:hover{border-color:rgba(16,185,129,.4)}
.tcm-q-text{font-size:15px;color:var(--fg);line-height:1.7;margin-bottom:14px;font-weight:500}
.tcm-q-num{color:#10b981;font-weight:700;margin-right:4px;font-family:ui-monospace,Menlo,Consolas,monospace}
.tcm-q-opts{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.tcm-opt{padding:10px 8px;font-size:13px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:flex;flex-direction:column;align-items:center;gap:2px}
.tcm-opt small{font-size:11px;color:var(--muted)}
.tcm-opt:hover{border-color:#10b981;color:#10b981}
.tcm-opt:hover small{color:#10b981}
.tcm-opt-on{background:linear-gradient(135deg,#10b981,#059669);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(16,185,129,.25)}
.tcm-opt-on small{color:rgba(255,255,255,.85)}
.tcm-actions{display:flex;gap:10px;flex-wrap:wrap;padding:16px 20px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.tcm-btn{padding:11px 22px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.tcm-btn:hover:not(:disabled){border-color:#10b981;color:#10b981}
.tcm-btn:disabled{opacity:.5;cursor:not-allowed}
.tcm-btn-primary{background:linear-gradient(135deg,#10b981,#059669);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(16,185,129,.3)}
.tcm-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#059669,#10b981);color:#fff}
.tcm-btn-submit{margin-left:auto;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.3)}
.tcm-btn-submit:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}
.tcm-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(16,185,129,.08)}
.tcm-main{padding:30px 24px;border:2px solid var(--line);border-radius:14px;text-align:center;margin-bottom:22px}
.tcm-main-label{font-size:13px;color:var(--muted);margin-bottom:10px;letter-spacing:2px}
.tcm-main-name{font-size:38px;font-weight:700;margin-bottom:12px;line-height:1.2}
.tcm-main-score{font-size:14px;color:var(--muted);margin-bottom:14px}
.tcm-main-score b{color:var(--fg);font-size:16px;font-family:ui-monospace,Menlo,Consolas,monospace}
.tcm-main-desc{font-size:14px;color:var(--fg);line-height:1.9;max-width:640px;margin:0 auto;text-align:left;padding:14px 18px;background:var(--hover);border-radius:10px}
.tcm-section{margin-bottom:22px}
.tcm-section:last-child{margin-bottom:0}
.tcm-section-head{font-size:15px;font-weight:600;color:#10b981;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid rgba(16,185,129,.15);display:flex;align-items:center;gap:8px}
.tcm-section-head i{color:#10b981}
.tcm-scores{display:flex;flex-direction:column;gap:10px}
.tcm-score-row{display:grid;grid-template-columns:80px 1fr 44px 60px;gap:12px;align-items:center;padding:10px 14px;background:var(--hover);border-radius:10px;transition:.15s}
.tcm-score-row:hover{background:var(--hover)}
.tcm-score-main{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.4)}
.tcm-score-name{font-size:13px;font-weight:600;white-space:nowrap}
.tcm-score-bar{height:8px;background:var(--line);border-radius:4px;overflow:hidden}
.tcm-score-fill{height:100%;border-radius:4px;transition:width .4s}
.tcm-score-num{font-size:14px;font-weight:700;text-align:right;font-family:ui-monospace,Menlo,Consolas,monospace}
.tcm-score-lvl{font-size:11px;color:var(--muted);background:var(--panel);padding:3px 8px;border-radius:8px;text-align:center;border:1px solid var(--line)}
.tcm-score-note{font-size:12px;color:var(--muted);margin-top:10px;line-height:1.7}
.tcm-advice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tcm-advice-item{padding:14px 16px;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.3);border-radius:10px}
.tcm-advice-lbl{font-size:13px;font-weight:700;color:#10b981;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.tcm-advice-lbl i{color:#10b981}
.tcm-advice-txt{font-size:13px;color:var(--fg);line-height:1.8}
.tcm-others{display:flex;flex-wrap:wrap;gap:10px}
.tcm-other{padding:8px 16px;background:var(--hover);border:1px solid var(--line);border-radius:20px;display:inline-flex;align-items:center;gap:8px;font-size:13px}
.tcm-other-name{font-weight:600}
.tcm-other-score{color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.tcm-disclaimer{margin-top:20px;padding:14px 18px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;font-size:12px;color:#f59e0b;line-height:1.8;display:flex;align-items:flex-start;gap:8px}
.tcm-disclaimer i{color:#f59e0b;margin-top:2px;flex-shrink:0}
.tcm-tips{list-style:none;padding:0;margin:0}
.tcm-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.tcm-tips li:last-child{border-bottom:none}
.tcm-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#10b981;font-size:12px}
.tcm-tips b{color:var(--fg)}
@media (max-width:640px){
  .tcm-q-opts{grid-template-columns:repeat(5,1fr);gap:5px}
  .tcm-opt{font-size:11px;padding:8px 4px}
  .tcm-opt small{font-size:10px}
  .tcm-score-row{grid-template-columns:60px 1fr 36px 50px;gap:8px;padding:8px 10px}
  .tcm-score-name{font-size:12px}
  .tcm-score-lvl{font-size:10px;padding:2px 5px}
  .tcm-advice-grid{grid-template-columns:1fr}
  .tcm-card{padding:16px}
  .tcm-main-name{font-size:28px}
  .tcm-btn{flex:1;justify-content:center}
  .tcm-btn-submit{margin-left:0;width:100%}
}
/* ===== 睡眠计算器 (slp-) ===== */
.slp-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.slp-tab{padding:10px 20px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.slp-tab:hover{border-color:#6366f1;color:#6366f1}
.slp-tab.on{background:linear-gradient(135deg,#6366f1,#4f46e5);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(99,102,241,.3)}
.slp-panel{display:block}
.slp-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.slp-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.slp-row:last-of-type{margin-bottom:0}
.slp-label{width:180px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.slp-input{flex:1;min-width:120px;padding:11px 14px;font-size:15px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;font-family:ui-monospace,Menlo,Consolas,monospace}
.slp-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.slp-tip{font-size:12px;color:var(--muted)}
.slp-actions{display:flex;gap:10px;margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.slp-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.slp-btn:hover{border-color:#6366f1;color:#6366f1}
.slp-btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(99,102,241,.3)}
.slp-btn-primary:hover{background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff}
.slp-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(99,102,241,.08)}
.slp-card-head{font-size:16px;font-weight:700;color:var(--fg);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.slp-card-head i{color:#6366f1}
.slp-card-sub{font-size:13px;color:var(--muted);margin-bottom:20px}
.slp-bedtimes{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:18px}
.slp-bedtime{padding:18px 16px;background:var(--hover);border-radius:12px;border-left:5px solid #6366f1}
.slp-bedtime-time{font-size:30px;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1;margin-bottom:10px}
.slp-bedtime-label{font-size:13px;color:var(--fg);font-weight:600;margin-bottom:6px;line-height:1.5}
.slp-bedtime-sub{font-size:11px;color:var(--muted);line-height:1.5}
.slp-note{margin-top:18px;padding:14px 18px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;font-size:13px;color:#f59e0b;line-height:1.8;display:flex;align-items:flex-start;gap:8px}
.slp-note i{margin-top:3px;flex-shrink:0}
.slp-dur-main{text-align:center;padding:26px 20px;background:linear-gradient(135deg,rgba(99,102,241,.1),rgba(99,102,241,.12));border-radius:14px;margin-bottom:20px}
.slp-dur-label{font-size:13px;color:#6366f1;margin-bottom:12px}
.slp-dur-num{font-size:36px;font-weight:700;color:#4f46e5;line-height:1.2;margin-bottom:8px;font-family:ui-monospace,Menlo,Consolas,monospace}
.slp-dur-sub{font-size:12px;color:var(--muted);margin-bottom:14px}
.slp-dur-quality{font-size:16px;font-weight:700;letter-spacing:2px}
.slp-dur-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.slp-dur-stat{padding:16px 12px;background:rgba(14,165,233,.1);border:1px solid rgba(14,165,233,.3);border-radius:10px;text-align:center}
.slp-dur-stat-num{font-size:28px;font-weight:700;color:#3b82f6;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1;margin-bottom:8px}
.slp-dur-stat-lbl{font-size:12px;color:#3b82f6;line-height:1.5}
.slp-section{margin-bottom:22px}
.slp-section:last-child{margin-bottom:0}
.slp-section-head{font-size:15px;font-weight:600;color:#6366f1;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid rgba(99,102,241,.12);display:flex;align-items:center;gap:8px}
.slp-section-head i{color:#6366f1}
.slp-stages{display:flex;flex-direction:column;gap:12px}
.slp-stage{padding:14px 16px;background:var(--hover);border-radius:10px}
.slp-stage-head{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;margin-bottom:8px;flex-wrap:wrap;gap:6px}
.slp-stage-time{font-size:13px;color:var(--fg);font-family:ui-monospace,Menlo,Consolas,monospace}
.slp-stage-bar{height:8px;background:var(--line);border-radius:4px;overflow:hidden;margin-bottom:8px}
.slp-stage-fill{height:100%;border-radius:4px;transition:width .4s}
.slp-stage-desc{font-size:12px;color:var(--muted);line-height:1.7}
.slp-age-main{text-align:center;padding:30px 20px;background:linear-gradient(135deg,rgba(99,102,241,.1),rgba(99,102,241,.12));border-radius:14px;margin-bottom:22px}
.slp-age-label{font-size:14px;color:#6366f1;margin-bottom:14px}
.slp-age-num{font-size:42px;font-weight:700;color:#4f46e5;line-height:1;margin-bottom:16px;font-family:ui-monospace,Menlo,Consolas,monospace}
.slp-age-tip{font-size:13px;color:#6366f1;line-height:1.8;padding:12px 18px;background:var(--hover);border-radius:10px;display:inline-flex;align-items:flex-start;gap:8px;text-align:left;max-width:560px}
.slp-age-tip i{margin-top:3px;flex-shrink:0}
.slp-table{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.slp-tr{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 14px;font-size:13px;background:var(--panel);border-bottom:1px solid var(--line)}
.slp-tr:last-child{border-bottom:none}
.slp-tr-head{background:rgba(99,102,241,.1);font-weight:600;color:#6366f1}
.slp-tips{list-style:none;padding:0;margin:0}
.slp-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.slp-tips li:last-child{border-bottom:none}
.slp-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#6366f1;font-size:12px}
.slp-tips b{color:var(--fg)}
@media (max-width:640px){
  .slp-label{width:100%}
  .slp-btn{flex:1;justify-content:center}
  .slp-card{padding:16px}
  .slp-bedtime-time{font-size:24px}
  .slp-dur-num{font-size:26px}
  .slp-age-num{font-size:30px}
  .slp-tab{flex:1;justify-content:center;font-size:13px;padding:9px 12px}
}


/* ===== 剪贴板历史 (clip-) ===== */
.clip-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.clip-row{margin-bottom:12px}
.clip-label{display:block;font-weight:600;margin-bottom:8px;color:var(--fg);font-size:14px}
.clip-textarea{width:100%;min-height:100px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-size:14px;line-height:1.7;resize:vertical;background:var(--bg);color:var(--fg);box-sizing:border-box;font-family:inherit;outline:none;transition:.15s}
.clip-textarea:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.clip-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.clip-btn{padding:10px 20px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;font-weight:500}
.clip-btn:hover{border-color:#8b5cf6;color:#8b5cf6}
.clip-btn-primary{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.3)}
.clip-btn-primary:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}
.clip-btn-danger{background:var(--panel);border-color:rgba(239,68,68,.4);color:#dc2626}
.clip-btn-danger:hover{background:rgba(239,68,68,.1);border-color:#dc2626}
.clip-tips{font-size:12px;color:#f59e0b;background:rgba(245,158,11,.1);padding:10px 14px;border-radius:8px;border:1px solid rgba(245,158,11,.3);display:flex;align-items:flex-start;gap:6px;line-height:1.7}
.clip-tips i{color:#f59e0b;margin-top:3px;flex-shrink:0}
.clip-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.clip-search-wrap{position:relative;flex:1;min-width:220px}
.clip-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.clip-search{width:100%;padding:11px 14px 11px 38px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;box-sizing:border-box}
.clip-search:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.clip-count{font-size:13px;color:var(--muted);white-space:nowrap}
.clip-count span{color:#8b5cf6;font-weight:700;font-family:ui-monospace,Menlo,Consolas,monospace}
.clip-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.clip-item{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;cursor:pointer;transition:.15s}
.clip-item:hover{border-color:#8b5cf6;box-shadow:0 4px 12px rgba(139,92,246,.1)}
.clip-item-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.clip-pin-badge{font-size:11px;color:#fff;background:#f59e0b;padding:2px 8px;border-radius:8px;display:inline-flex;align-items:center;gap:4px}
.clip-time{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:4px}
.clip-len{font-size:12px;color:var(--muted)}
.clip-actions-mini{margin-left:auto;display:inline-flex;gap:6px}
.clip-mini{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.clip-mini:hover{border-color:#8b5cf6;color:#8b5cf6}
.clip-mini.clip-del:hover{border-color:#dc2626;color:#dc2626}
.clip-mini.clip-pin:hover{border-color:#f59e0b;color:#f59e0b}
.clip-item-text{font-size:14px;color:var(--fg);line-height:1.7;white-space:pre-wrap;word-break:break-word;max-height:120px;overflow:hidden}
.clip-empty{text-align:center;padding:60px 20px;color:var(--muted);margin-bottom:20px}
.clip-empty i{font-size:48px;color:var(--muted);display:block;margin-bottom:16px}
.clip-empty > div:first-of-type{font-size:15px;color:var(--muted);margin-bottom:8px}
.clip-empty-sub{font-size:13px;color:var(--muted)}
.clip-tips-list{list-style:none;padding:0;margin:0}
.clip-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.clip-tips-list li:last-child{border-bottom:none}
.clip-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#8b5cf6;font-size:12px}
.clip-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .clip-btn{flex:1;justify-content:center}
  .clip-search{font-size:14px}
  .clip-item{padding:12px}
  .clip-item-text{font-size:13px}
  .clip-count{font-size:12px}
}


/* ===== 图片裁剪 v3 (imgc-) ===== */
label.imgc-upload{display:block;cursor:pointer;border:2px dashed var(--line);border-radius:14px;padding:60px 20px;text-align:center;transition:.2s;background:var(--bg)}
label.imgc-upload:hover,label.imgc-upload.imgc-over{border-color:#10b981;background:rgba(16,185,129,.1)}
label.imgc-upload i{font-size:52px;color:#10b981;margin-bottom:16px}
.imgc-upload-title{font-size:16px;color:var(--fg);font-weight:600;margin-bottom:8px}
.imgc-upload-sub{font-size:13px;color:var(--muted);line-height:1.7}

.imgc-workspace{margin-bottom:16px}
.imgc-toolbar{display:flex;gap:16px;flex-wrap:wrap;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 18px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.imgc-ratios{display:flex;gap:6px;flex-wrap:wrap}
.imgc-ratio{padding:7px 14px;font-size:13px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500;font-family:ui-monospace,Menlo,Consolas,monospace}
.imgc-ratio:hover{border-color:#10b981;color:#10b981}
.imgc-ratio.on{background:linear-gradient(135deg,#10b981,#059669);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(16,185,129,.25)}
.imgc-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.imgc-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.imgc-btn:hover{border-color:#10b981;color:#10b981}
.imgc-btn-primary{background:linear-gradient(135deg,#10b981,#059669);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(16,185,129,.3)}
.imgc-btn-primary:hover{background:linear-gradient(135deg,#059669,#10b981);color:#fff}

.imgc-stage{background:var(--fg);border-radius:12px;overflow:auto;margin-bottom:16px;text-align:center;line-height:0;padding:12px}
.imgc-stage canvas{display:inline-block;max-width:100%;height:auto;cursor:crosshair;background:var(--panel)}

.imgc-result-wrap{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.imgc-result-head{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;color:var(--fg);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.imgc-result-head i{color:#10b981;margin-right:4px}
.imgc-result-size{font-size:12px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:400}
.imgc-result-canvas-wrap{background:var(--hover);border-radius:10px;padding:16px;text-align:center;margin-bottom:14px;min-height:120px;display:flex;align-items:center;justify-content:center}
.imgc-result-canvas-wrap canvas{max-width:100%;max-height:400px;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.08);display:block}
.imgc-result-wrap .imgc-actions{margin-left:0}

.imgc-tips-list{list-style:none;padding:0;margin:0}
.imgc-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.imgc-tips-list li:last-child{border-bottom:none}
.imgc-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#10b981;font-size:12px}
.imgc-tips-list b{color:var(--fg)}

@media (max-width:640px){
  .imgc-toolbar{flex-direction:column;align-items:stretch;gap:12px}
  .imgc-actions{margin-left:0;width:100%}
  .imgc-btn{flex:1;justify-content:center;font-size:12px;padding:9px 12px}
  label.imgc-upload{padding:40px 16px}
  label.imgc-upload i{font-size:40px}
}

/* ===== 图片加水印 (imgw-) ===== */
label.imgw-upload{display:block;cursor:pointer;border:2px dashed var(--line);border-radius:14px;padding:60px 20px;text-align:center;transition:.2s;background:var(--bg)}
label.imgw-upload:hover,label.imgw-upload.imgw-over{border-color:var(--accent);background:rgba(14,165,233,.1)}
label.imgw-upload i{font-size:52px;color:var(--accent);margin-bottom:16px}
.imgw-upload-title{font-size:16px;color:var(--fg);font-weight:600;margin-bottom:8px}
.imgw-upload-sub{font-size:13px;color:var(--muted);line-height:1.7}

.imgw-workspace{margin-bottom:16px}
.imgw-stage{background:var(--fg);border-radius:12px;overflow:auto;margin-bottom:16px;text-align:center;line-height:0;padding:12px}
.imgw-stage canvas{display:inline-block;max-width:100%;height:auto;background:var(--panel)}

.imgw-panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.imgw-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.imgw-tab{padding:9px 20px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.imgw-tab:hover{border-color:var(--accent);color:var(--accent)}
.imgw-tab.on{background:linear-gradient(135deg,var(--accent),#3b82f6);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(14,165,233,.3)}
.imgw-tabpanel{}
.imgw-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.imgw-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.imgw-input{flex:1;min-width:120px;padding:10px 14px;font-size:14px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.imgw-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.imgw-range{flex:1;min-width:180px;accent-color:var(--accent)}
.imgw-color{width:50px;height:38px;border:1px solid var(--line);border-radius:8px;cursor:pointer;padding:2px;background:var(--panel)}
.imgw-val{font-size:13px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace;min-width:60px;text-align:right}
.imgw-positions{display:grid;grid-template-columns:repeat(3,40px) auto;gap:6px;flex:1}
.imgw-pos,.imgw-mpos{width:40px;height:36px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-size:14px;transition:.15s;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
.imgw-pos:hover,.imgw-mpos:hover{border-color:var(--accent);color:var(--accent)}
.imgw-pos.on,.imgw-mpos.on{background:linear-gradient(135deg,var(--accent),#3b82f6);border-color:transparent;color:#fff;box-shadow:0 2px 8px rgba(14,165,233,.25)}
.imgw-pos[data-p="tile"],.imgw-mpos[data-p="tile"]{width:auto;padding:0 12px;grid-column:4;grid-row:2/span 2;height:auto}
.imgw-mini-upload{padding:9px 18px;font-size:13px;border:1px dashed var(--accent);border-radius:9px;background:rgba(14,165,233,.1);color:#3b82f6;cursor:pointer;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:.15s}
.imgw-mini-upload:hover{background:var(--accent);color:#fff}
.imgw-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.imgw-btn{padding:11px 22px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.imgw-btn:hover{border-color:var(--accent);color:var(--accent)}
.imgw-btn-primary{background:linear-gradient(135deg,var(--accent),#3b82f6);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(14,165,233,.3)}
.imgw-btn-primary:hover{background:linear-gradient(135deg,#3b82f6,#3b82f6);color:#fff}
.imgw-tips-list{list-style:none;padding:0;margin:0}
.imgw-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.imgw-tips-list li:last-child{border-bottom:none}
.imgw-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:var(--accent);font-size:12px}
.imgw-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .imgw-label{width:100%}
  .imgw-btn{flex:1;justify-content:center}
  .imgw-positions{grid-template-columns:repeat(3,36px) auto}
  .imgw-pos,.imgw-mpos{width:36px;height:34px;font-size:13px}
  .imgw-panel{padding:16px}
}

/* ===== 图片转PDF (img2pdf-) ===== */
label.img2pdf-upload{display:block;cursor:pointer;border:2px dashed var(--line);border-radius:14px;padding:60px 20px;text-align:center;transition:.2s;background:var(--bg)}
label.img2pdf-upload:hover,label.img2pdf-upload.img2pdf-over{border-color:#dc2626;background:rgba(239,68,68,.1)}
label.img2pdf-upload i{font-size:52px;color:#dc2626;margin-bottom:16px}
.img2pdf-upload-title{font-size:16px;color:var(--fg);font-weight:600;margin-bottom:8px}
.img2pdf-upload-sub{font-size:13px;color:var(--muted);line-height:1.7}

.img2pdf-workspace{margin-bottom:16px}
.img2pdf-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.img2pdf-info{font-size:14px;color:var(--muted)}
.img2pdf-info i{color:#dc2626;margin-right:6px}
.img2pdf-info b{color:#dc2626;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:16px}
.img2pdf-actions{display:flex;gap:8px;flex-wrap:wrap}
.img2pdf-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.img2pdf-btn:hover{border-color:#dc2626;color:#dc2626}
.img2pdf-btn:disabled{opacity:.6;cursor:not-allowed}
.img2pdf-btn-primary{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(220,38,38,.3);padding:12px 28px;font-size:14px}
.img2pdf-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#ef4444,#ef4444);color:#fff}
.img2pdf-btn-danger{border-color:rgba(239,68,68,.4);color:#dc2626}
.img2pdf-btn-danger:hover{background:rgba(239,68,68,.1);border-color:#dc2626}

.img2pdf-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:18px}
.img2pdf-empty{grid-column:1/-1;text-align:center;padding:40px 20px;color:var(--muted);font-size:14px;background:var(--panel);border-radius:12px;border:1px dashed var(--line)}
.img2pdf-item{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:grab;transition:.15s;user-select:none}
.img2pdf-item:hover{border-color:#dc2626;box-shadow:0 4px 12px rgba(220,38,38,.15)}
.img2pdf-item.img2pdf-dragging{opacity:.5;cursor:grabbing}
.img2pdf-item.img2pdf-over{border-color:#10b981;border-style:dashed;transform:scale(1.02)}
.img2pdf-thumb{width:100%;aspect-ratio:1;background:var(--hover);display:flex;align-items:center;justify-content:center;overflow:hidden}
.img2pdf-thumb img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.img2pdf-item-info{padding:8px 10px}
.img2pdf-item-name{font-size:12px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}
.img2pdf-item-dim{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.img2pdf-item-num{position:absolute;top:6px;left:6px;width:24px;height:24px;border-radius:50%;background:#dc2626;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.img2pdf-item-del{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:none;background:rgba(0,0,0,.6);color:#fff;font-size:16px;line-height:1;cursor:pointer;transition:.15s;display:flex;align-items:center;justify-content:center;font-weight:700}
.img2pdf-item-del:hover{background:#dc2626;transform:scale(1.1)}

.img2pdf-settings{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.img2pdf-set-head{font-size:15px;font-weight:700;color:var(--fg);margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.img2pdf-set-head i{color:#dc2626}
.img2pdf-set-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.img2pdf-set-row:last-of-type{margin-bottom:0}
.img2pdf-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.img2pdf-opts{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.img2pdf-opt{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.img2pdf-opt:hover{border-color:#dc2626;color:#dc2626}
.img2pdf-opt.on{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(220,38,38,.25)}
.img2pdf-actions-final{display:flex;justify-content:center;margin-top:22px;padding-top:18px;border-top:1px dashed var(--line)}

.img2pdf-tips-list{list-style:none;padding:0;margin:0}
.img2pdf-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.img2pdf-tips-list li:last-child{border-bottom:none}
.img2pdf-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#dc2626;font-size:12px}
.img2pdf-tips-list b{color:var(--fg)}

@media (max-width:640px){
  .img2pdf-label{width:100%}
  .img2pdf-list{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
  .img2pdf-btn{flex:1;justify-content:center}
  .img2pdf-toolbar{flex-direction:column;align-items:stretch}
  .img2pdf-settings{padding:16px}
}

/* ===== PDF转图片 (pdf2img-) ===== */
label.pdf2img-upload{display:block;cursor:pointer;border:2px dashed var(--line);border-radius:14px;padding:60px 20px;text-align:center;transition:.2s;background:var(--bg)}
label.pdf2img-upload:hover,label.pdf2img-upload.pdf2img-over{border-color:#dc2626;background:rgba(239,68,68,.1)}
label.pdf2img-upload i{font-size:52px;color:#dc2626;margin-bottom:16px}
.pdf2img-upload-title{font-size:16px;color:var(--fg);font-weight:600;margin-bottom:8px}
.pdf2img-upload-sub{font-size:13px;color:var(--muted);line-height:1.7}

.pdf2img-workspace{margin-bottom:16px}
.pdf2img-info-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.pdf2img-info{font-size:14px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;max-width:400px;white-space:nowrap}
.pdf2img-info i{color:#dc2626;margin-right:6px}
.pdf2img-info b{color:#dc2626;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:16px}
.pdf2img-actions{display:flex;gap:8px;flex-wrap:wrap}
.pdf2img-btn{padding:9px 18px;font-size:13px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.pdf2img-btn:hover:not(:disabled){border-color:#dc2626;color:#dc2626}
.pdf2img-btn:disabled{opacity:.5;cursor:not-allowed}
.pdf2img-btn-danger{border-color:rgba(239,68,68,.4);color:#dc2626}
.pdf2img-btn-danger:hover:not(:disabled){background:rgba(239,68,68,.1);border-color:#dc2626}
.pdf2img-btn-primary{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(220,38,38,.3);padding:11px 22px}
.pdf2img-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#ef4444,#ef4444);color:#fff}

.pdf2img-settings{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.pdf2img-set-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.pdf2img-set-row:last-of-type{margin-bottom:0}
.pdf2img-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.pdf2img-input{flex:1;min-width:160px;padding:10px 14px;font-size:14px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;font-family:ui-monospace,Menlo,Consolas,monospace}
.pdf2img-input:focus{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.12)}
.pdf2img-opts{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.pdf2img-opt{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.pdf2img-opt:hover{border-color:#dc2626;color:#dc2626}
.pdf2img-opt.on{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(220,38,38,.25)}
.pdf2img-actions-final{display:flex;gap:10px;justify-content:center;margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}

.pdf2img-progress{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:16px}
.pdf2img-progress-text{font-size:13px;color:var(--muted);margin-bottom:10px}
.pdf2img-progress-text b{color:#dc2626;font-family:ui-monospace,Menlo,Consolas,monospace}
.pdf2img-progress-track{height:8px;background:var(--line);border-radius:4px;overflow:hidden}
.pdf2img-progress-fill{height:100%;background:linear-gradient(90deg,#dc2626,#ef4444);border-radius:4px;transition:width .2s;width:0%}

.pdf2img-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:18px}
.pdf2img-item{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04);transition:.15s}
.pdf2img-item:hover{box-shadow:0 6px 18px rgba(220,38,38,.15);transform:translateY(-2px)}
.pdf2img-thumb{width:100%;aspect-ratio:3/4;background:var(--hover);display:flex;align-items:center;justify-content:center;overflow:hidden}
.pdf2img-thumb img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.pdf2img-item-info{padding:8px 12px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}
.pdf2img-item-page{font-weight:600;color:var(--fg)}
.pdf2img-item-dim{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px}
.pdf2img-item-dl{display:block;width:100%;padding:9px;font-size:13px;border:none;border-top:1px solid var(--line);background:var(--panel);color:#dc2626;cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;justify-content:center;gap:5px}
.pdf2img-item-dl:hover{background:#dc2626;color:#fff}

.pdf2img-tips-list{list-style:none;padding:0;margin:0}
.pdf2img-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.pdf2img-tips-list li:last-child{border-bottom:none}
.pdf2img-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#dc2626;font-size:12px}
.pdf2img-tips-list b{color:var(--fg)}

@media (max-width:640px){
  .pdf2img-label{width:100%}
  .pdf2img-btn{flex:1;justify-content:center}
  .pdf2img-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
  .pdf2img-info-bar{flex-direction:column;align-items:stretch}
  .pdf2img-info{max-width:100%;white-space:normal}
}

/* ===== 舔狗日记 (tdiary-) ===== */
.tdiary-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.tdiary-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.tdiary-row:last-of-type{margin-bottom:0}
.tdiary-label{width:120px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.tdiary-input{flex:1;min-width:160px;padding:11px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.tdiary-input:focus{border-color:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.12)}
.tdiary-styles{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.tdiary-style{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.tdiary-style:hover{border-color:#f59e0b;color:#f59e0b}
.tdiary-style.on{background:linear-gradient(135deg,#f59e0b,#f59e0b);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(245,158,11,.25)}
.tdiary-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.tdiary-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.tdiary-btn:hover{border-color:#f59e0b;color:#f59e0b}
.tdiary-btn-primary{background:linear-gradient(135deg,#f59e0b,#f59e0b);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(245,158,11,.3)}
.tdiary-btn-primary:hover{background:linear-gradient(135deg,#f59e0b,#f59e0b);color:#fff}
.tdiary-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px;box-shadow:0 4px 20px rgba(245,158,11,.08)}
.tdiary-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid rgba(245,158,11,.15)}
.tdiary-icon{font-size:15px;font-weight:700;color:#f59e0b;display:inline-flex;align-items:center;gap:8px}
.tdiary-icon i{color:#f59e0b}
.tdiary-copy{padding:6px 14px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.tdiary-copy:hover{border-color:#f59e0b;color:#f59e0b}
.tdiary-text{padding:18px 20px;background:linear-gradient(135deg,rgba(245,158,11,.1),rgba(245,158,11,.15));border-radius:12px;font-size:15px;line-height:2;color:#f59e0b;border-left:4px solid #f59e0b;word-break:break-word}
.tdiary-batch-item{display:flex;gap:12px;padding:12px 16px;background:rgba(245,158,11,.1);border-radius:10px;margin-bottom:10px;border-left:3px solid #f59e0b}
.tdiary-batch-item:last-child{margin-bottom:0}
.tdiary-batch-num{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:#f59e0b;color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.tdiary-batch-text{font-size:14px;line-height:1.9;color:#f59e0b;flex:1;word-break:break-word}
.tdiary-tips-list{list-style:none;padding:0;margin:0}
.tdiary-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.tdiary-tips-list li:last-child{border-bottom:none}
.tdiary-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#f59e0b;font-size:12px}
.tdiary-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .tdiary-label{width:100%}
  .tdiary-btn{flex:1;justify-content:center}
  .tdiary-card{padding:16px}
  .tdiary-text{font-size:14px;padding:14px}
}

/* ===== 彩虹屁生成 (rainbow-) ===== */
.rainbow-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.rainbow-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.rainbow-row:last-of-type{margin-bottom:0}
.rainbow-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.rainbow-input{flex:1;min-width:160px;padding:11px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.rainbow-input:focus{border-color:#ec4899;box-shadow:0 0 0 3px rgba(236,72,153,.12)}
.rainbow-styles,.rainbow-levels{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.rainbow-style,.rainbow-level{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.rainbow-style:hover,.rainbow-level:hover{border-color:#ec4899;color:#ec4899}
.rainbow-style.on,.rainbow-level.on{background:linear-gradient(135deg,#ec4899,#db2777);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(236,72,153,.25)}
.rainbow-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.rainbow-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.rainbow-btn:hover{border-color:#ec4899;color:#ec4899}
.rainbow-btn-primary{background:linear-gradient(135deg,#ec4899,#db2777);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(236,72,153,.3)}
.rainbow-btn-primary:hover{background:linear-gradient(135deg,#db2777,#ec4899);color:#fff}
.rainbow-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px;box-shadow:0 4px 20px rgba(236,72,153,.08)}
.rainbow-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid rgba(236,72,153,.15)}
.rainbow-icon{font-size:15px;font-weight:700;color:#ec4899;display:inline-flex;align-items:center;gap:8px}
.rainbow-icon i{color:#ec4899}
.rainbow-copy{padding:6px 14px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.rainbow-copy:hover{border-color:#ec4899;color:#ec4899}
.rainbow-text{padding:18px 20px;background:linear-gradient(135deg,rgba(236,72,153,.1),rgba(236,72,153,.15));border-radius:12px;font-size:16px;line-height:1.9;color:#ec4899;border-left:4px solid #ec4899;word-break:break-word}
.rainbow-batch-item{display:flex;gap:12px;padding:12px 16px;background:rgba(236,72,153,.1);border-radius:10px;margin-bottom:10px;border-left:3px solid #ec4899}
.rainbow-batch-item:last-child{margin-bottom:0}
.rainbow-batch-num{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:#ec4899;color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.rainbow-batch-text{font-size:14px;line-height:1.9;color:#ec4899;flex:1;word-break:break-word}
.rainbow-tips-list{list-style:none;padding:0;margin:0}
.rainbow-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.rainbow-tips-list li:last-child{border-bottom:none}
.rainbow-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#ec4899;font-size:12px}
.rainbow-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .rainbow-label{width:100%}
  .rainbow-btn{flex:1;justify-content:center}
  .rainbow-card{padding:16px}
  .rainbow-text{font-size:14px;padding:14px}
}

/* ===== 土味情话 (cheesy-) ===== */
.cheesy-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.cheesy-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.cheesy-row:last-of-type{margin-bottom:0}
.cheesy-label{width:130px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.cheesy-input{flex:1;min-width:160px;padding:11px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.cheesy-input:focus{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.12)}
.cheesy-styles{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.cheesy-style{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.cheesy-style:hover{border-color:#ef4444;color:#ef4444}
.cheesy-style.on{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(239,68,68,.25)}
.cheesy-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.cheesy-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.cheesy-btn:hover{border-color:#ef4444;color:#ef4444}
.cheesy-btn-primary{background:linear-gradient(135deg,#ef4444,#dc2626);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(239,68,68,.3)}
.cheesy-btn-primary:hover{background:linear-gradient(135deg,#dc2626,#ef4444);color:#fff}
.cheesy-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px;box-shadow:0 4px 20px rgba(239,68,68,.08)}
.cheesy-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid rgba(239,68,68,.15)}
.cheesy-icon{font-size:15px;font-weight:700;color:#ef4444;display:inline-flex;align-items:center;gap:8px}
.cheesy-icon i{color:#ef4444}
.cheesy-copy{padding:6px 14px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.cheesy-copy:hover{border-color:#ef4444;color:#ef4444}
.cheesy-text{padding:18px 20px;background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(239,68,68,.15));border-radius:12px;font-size:16px;line-height:1.9;color:#ef4444;border-left:4px solid #ef4444;word-break:break-word}
.cheesy-batch-item{display:flex;gap:12px;padding:12px 16px;background:rgba(239,68,68,.1);border-radius:10px;margin-bottom:10px;border-left:3px solid #ef4444}
.cheesy-batch-item:last-child{margin-bottom:0}
.cheesy-batch-num{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:#ef4444;color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.cheesy-batch-text{font-size:14px;line-height:1.9;color:#ef4444;flex:1;word-break:break-word}
.cheesy-tips-list{list-style:none;padding:0;margin:0}
.cheesy-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.cheesy-tips-list li:last-child{border-bottom:none}
.cheesy-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#ef4444;font-size:12px}
.cheesy-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .cheesy-label{width:100%}
  .cheesy-btn{flex:1;justify-content:center}
  .cheesy-card{padding:16px}
  .cheesy-text{font-size:14px;padding:14px}
}
/* ===== 情书生成 (loveletter-) ===== */
.loveletter-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.loveletter-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.loveletter-row:last-of-type{margin-bottom:0}
.loveletter-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.loveletter-input{flex:1;min-width:160px;padding:11px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.loveletter-input:focus{border-color:#db2777;box-shadow:0 0 0 3px rgba(219,39,119,.12)}
.loveletter-styles,.loveletter-lengths{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.loveletter-style,.loveletter-len{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.loveletter-style:hover,.loveletter-len:hover{border-color:#db2777;color:#db2777}
.loveletter-style.on,.loveletter-len.on{background:linear-gradient(135deg,#db2777,#ec4899);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(219,39,119,.25)}
.loveletter-extras{display:flex;gap:16px;flex-wrap:wrap;flex:1}
.loveletter-check{font-size:14px;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.loveletter-check input{width:16px;height:16px;cursor:pointer;accent-color:#db2777}
.loveletter-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.loveletter-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.loveletter-btn:hover{border-color:#db2777;color:#db2777}
.loveletter-btn-primary{background:linear-gradient(135deg,#db2777,#ec4899);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(219,39,119,.3)}
.loveletter-btn-primary:hover{background:linear-gradient(135deg,#ec4899,#ec4899);color:#fff}
.loveletter-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px;box-shadow:0 4px 20px rgba(219,39,119,.08)}
.loveletter-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid rgba(236,72,153,.15)}
.loveletter-icon{font-size:15px;font-weight:700;color:#ec4899;display:inline-flex;align-items:center;gap:8px}
.loveletter-icon i{color:#db2777}
.loveletter-copy{padding:6px 14px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.loveletter-copy:hover{border-color:#db2777;color:#db2777}
.loveletter-paper{padding:26px 28px;background:linear-gradient(135deg,rgba(236,72,153,.1),rgba(236,72,153,.15));border-radius:10px;font-family:'Kaiti SC','STKaiti',Georgia,serif;font-size:16px;line-height:2.2;color:#ec4899;word-break:break-word;border-left:4px solid #db2777;letter-spacing:1px}
.loveletter-tips-list{list-style:none;padding:0;margin:0}
.loveletter-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.loveletter-tips-list li:last-child{border-bottom:none}
.loveletter-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#db2777;font-size:12px}
.loveletter-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .loveletter-label{width:100%}
  .loveletter-btn{flex:1;justify-content:center}
  .loveletter-card{padding:16px}
  .loveletter-paper{padding:18px;font-size:15px;line-height:2}
}
/* ===== 表情包制作 (meme-) ===== */
label.meme-upload{display:block;cursor:pointer;border:2px dashed var(--line);border-radius:14px;padding:60px 20px;text-align:center;transition:.2s;background:var(--bg)}
label.meme-upload:hover,label.meme-upload.meme-over{border-color:#10b981;background:rgba(16,185,129,.1)}
label.meme-upload i{font-size:52px;color:#10b981;margin-bottom:16px}
.meme-upload-title{font-size:16px;color:var(--fg);font-weight:600;margin-bottom:8px}
.meme-upload-sub{font-size:13px;color:var(--muted);line-height:1.7}

.meme-workspace{margin-bottom:16px}
.meme-stage{background:var(--fg);border-radius:12px;overflow:auto;margin-bottom:16px;text-align:center;line-height:0;padding:12px}
.meme-stage canvas{display:inline-block;max-width:100%;height:auto;cursor:move;background:var(--panel)}

.meme-panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.meme-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.meme-row:last-of-type{margin-bottom:0}
.meme-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.meme-input{flex:1;min-width:160px;padding:10px 14px;font-size:14px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.meme-input:focus{border-color:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.12)}
.meme-range{flex:1;min-width:180px;accent-color:#10b981}
.meme-color{width:50px;height:38px;border:1px solid var(--line);border-radius:8px;cursor:pointer;padding:2px;background:var(--panel)}
.meme-val{font-size:13px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace;min-width:50px;text-align:right}
.meme-opts{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.meme-opt{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.meme-opt:hover{border-color:#10b981;color:#10b981}
.meme-opt.on{background:linear-gradient(135deg,#10b981,#059669);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(16,185,129,.25)}
.meme-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.meme-btn{padding:11px 22px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.meme-btn:hover{border-color:#10b981;color:#10b981}
.meme-btn-primary{background:linear-gradient(135deg,#10b981,#059669);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(16,185,129,.3)}
.meme-btn-primary:hover{background:linear-gradient(135deg,#059669,#10b981);color:#fff}
.meme-hint{margin-top:14px;padding:10px 14px;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.3);border-radius:8px;font-size:13px;color:#10b981;display:flex;align-items:flex-start;gap:6px;line-height:1.7}
.meme-hint i{margin-top:3px;flex-shrink:0;color:#10b981}
.meme-tips-list{list-style:none;padding:0;margin:0}
.meme-tips-list li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.meme-tips-list li:last-child{border-bottom:none}
.meme-tips-list li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#10b981;font-size:12px}
.meme-tips-list b{color:var(--fg)}
@media (max-width:640px){
  .meme-label{width:100%}
  .meme-btn{flex:1;justify-content:center}
  .meme-panel{padding:16px}
}
/* ===== 头像加国旗 (af-) ===== */
.af-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
label.af-upload{display:block;cursor:pointer;border:2px dashed var(--line);border-radius:14px;padding:60px 20px;text-align:center;transition:.2s;background:var(--bg)}
label.af-upload:hover,label.af-upload.af-over{border-color:#dc2626;background:rgba(239,68,68,.1)}
label.af-upload i{font-size:52px;color:#dc2626;margin-bottom:16px}
.af-upload-title{font-size:16px;color:var(--fg);font-weight:600;margin-bottom:8px}
.af-upload-sub{font-size:13px;color:var(--muted);line-height:1.7}

.af-workspace{margin-bottom:16px}
.af-stage{
  background:
    radial-gradient(circle at 50% 40%, rgba(255,255,255,.05) 0%, transparent 60%),
    linear-gradient(135deg,#1e293b 0%,#0f172a 100%);
  border-radius:14px;
  padding:32px 20px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:16px;
  min-height:400px;
}
.af-canvas-wrap{
  line-height:0;
  box-shadow:0 20px 50px rgba(0,0,0,.4);
}
.af-stage canvas{
  display:block;
  max-width:100%;
  height:auto;
}

.af-panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.af-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.af-row:last-of-type{margin-bottom:0}
.af-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.af-opts{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.af-opt{padding:9px 18px;font-size:13px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:8px}
.af-opt:hover{border-color:#dc2626;color:#dc2626}
.af-opt.on{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(220,38,38,.25)}

.af-pos-icon{display:inline-block;width:16px;height:16px;position:relative;background:var(--hover);border-radius:3px;border:1px solid var(--line)}
.af-pos-icon::after{content:'';position:absolute;width:6px;height:6px;background:#dc2626;border-radius:2px}
.af-pos-tl::after{top:1px;left:1px}
.af-pos-tr::after{top:1px;right:1px}
.af-pos-bl::after{bottom:1px;left:1px}
.af-pos-br::after{bottom:1px;right:1px}
.af-opt.on .af-pos-icon{background:rgba(255,255,255,.35);border-color:rgba(255,255,255,.5)}
.af-opt.on .af-pos-icon::after{background:#fff}

.af-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.af-btn{padding:11px 22px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.af-btn:hover{border-color:#dc2626;color:#dc2626}
.af-btn-primary{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(220,38,38,.3)}
.af-btn-primary:hover{background:linear-gradient(135deg,#ef4444,#ef4444);color:#fff}

.af-tips{list-style:none;padding:0;margin:0}
.af-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.af-tips li:last-child{border-bottom:none}
.af-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#dc2626;font-size:12px}
.af-tips b{color:var(--fg)}

@media (max-width:640px){
  .af-label{width:100%}
  .af-btn{flex:1;justify-content:center}
  .af-panel{padding:16px}
  .af-stage{padding:20px 12px;min-height:300px}
}
/* ===== 圣诞帽头像 (xmas-) ===== */
.xmas-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
label.xmas-upload{display:block;cursor:pointer;border:2px dashed var(--line);border-radius:14px;padding:60px 20px;text-align:center;transition:.2s;background:var(--bg)}
label.xmas-upload:hover,label.xmas-upload.xmas-over{border-color:#dc2626;background:rgba(239,68,68,.1)}
label.xmas-upload i{font-size:52px;color:#dc2626;margin-bottom:16px}
.xmas-upload-title{font-size:16px;color:var(--fg);font-weight:600;margin-bottom:8px}
.xmas-upload-sub{font-size:13px;color:var(--muted);line-height:1.7}

.xmas-workspace{margin-bottom:16px}
.xmas-stage{
  background:
    radial-gradient(circle at 50% 40%, rgba(255,255,255,.06) 0%, transparent 60%),
    linear-gradient(135deg,#0f172a 0%,#1e293b 100%);
  border-radius:14px;
  padding:32px 20px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:16px;
  min-height:400px;
}
.xmas-canvas-wrap{
  line-height:0;
  box-shadow:0 20px 50px rgba(0,0,0,.45);
}
.xmas-stage canvas{
  display:block;
  max-width:100%;
  height:auto;
}

.xmas-panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.xmas-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.xmas-row:last-of-type{margin-bottom:0}
.xmas-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.xmas-opts{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.xmas-opt{padding:9px 18px;font-size:13px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.xmas-opt:hover{border-color:#dc2626;color:#dc2626}
.xmas-opt.on{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(220,38,38,.25)}
.xmas-range{flex:1;min-width:180px;accent-color:#dc2626}
.xmas-val{font-size:13px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace;min-width:50px;text-align:right}

.xmas-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.xmas-btn{padding:11px 22px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.xmas-btn:hover{border-color:#dc2626;color:#dc2626}
.xmas-btn-primary{background:linear-gradient(135deg,#dc2626,#ef4444);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(220,38,38,.3)}
.xmas-btn-primary:hover{background:linear-gradient(135deg,#ef4444,#ef4444);color:#fff}

.xmas-tips{list-style:none;padding:0;margin:0}
.xmas-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.xmas-tips li:last-child{border-bottom:none}
.xmas-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#dc2626;font-size:12px}
.xmas-tips b{color:var(--fg)}

@media (max-width:640px){
  .xmas-label{width:100%}
  .xmas-btn{flex:1;justify-content:center}
  .xmas-panel{padding:16px}
  .xmas-stage{padding:20px 12px;min-height:300px}
}
/* ===== 生日贺卡 (bday-) ===== */
.bday-workspace{margin-bottom:16px}
.bday-stage{
  background:
    radial-gradient(circle at 50% 40%, rgba(255,255,255,.04) 0%, transparent 60%),
    linear-gradient(135deg,#0f172a 0%,#1e293b 100%);
  border-radius:14px;
  padding:32px 20px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:16px;
  min-height:400px;
}
.bday-canvas-wrap{
  line-height:0;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
  border-radius:8px;
  overflow:hidden;
}
.bday-stage canvas{
  display:block;
  max-width:100%;
  height:auto;
  max-height:70vh;
}

.bday-panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.bday-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.bday-row:last-of-type{margin-bottom:0}
.bday-label{width:90px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.bday-input{flex:1;min-width:160px;padding:10px 14px;font-size:14px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.bday-input:focus{border-color:#ec4899;box-shadow:0 0 0 3px rgba(236,72,153,.12)}
.bday-textarea{flex:1;min-width:200px;min-height:60px;padding:10px 14px;font-size:14px;font-family:inherit;line-height:1.6;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--fg);outline:none;resize:vertical;transition:.15s}
.bday-textarea:focus{border-color:#ec4899;box-shadow:0 0 0 3px rgba(236,72,153,.12)}
.bday-opts{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.bday-opt{padding:9px 18px;font-size:13px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.bday-opt:hover{border-color:#ec4899;color:#ec4899}
.bday-opt.on{background:linear-gradient(135deg,#ec4899,#db2777);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(236,72,153,.25)}

.bday-theme-pink{background:rgba(236,72,153,.15);color:#ec4899;border-color:rgba(236,72,153,.3)}
.bday-theme-pink.on{background:linear-gradient(135deg,#ec4899,#db2777);color:#fff}
.bday-theme-orange{background:rgba(245,158,11,.15);color:#f59e0b;border-color:rgba(245,158,11,.2)}
.bday-theme-orange.on{background:linear-gradient(135deg,#f97316,#f59e0b);color:#fff}
.bday-theme-blue{background:rgba(59,130,246,.15);color:#3b82f6;border-color:rgba(59,130,246,.3)}
.bday-theme-blue.on{background:linear-gradient(135deg,var(--accent),var(--accent));color:#fff}
.bday-theme-green{background:rgba(16,185,129,.15);color:#10b981;border-color:rgba(16,185,129,.4)}
.bday-theme-green.on{background:linear-gradient(135deg,#10b981,#059669);color:#fff}

.bday-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.bday-btn{padding:11px 22px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.bday-btn:hover{border-color:#ec4899;color:#ec4899}
.bday-btn-primary{background:linear-gradient(135deg,#ec4899,#db2777);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(236,72,153,.3)}
.bday-btn-primary:hover{background:linear-gradient(135deg,#db2777,#ec4899);color:#fff}

.bday-tips{list-style:none;padding:0;margin:0}
.bday-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.bday-tips li:last-child{border-bottom:none}
.bday-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#ec4899;font-size:12px}
.bday-tips b{color:var(--fg)}

@media (max-width:640px){
  .bday-label{width:100%}
  .bday-btn{flex:1;justify-content:center}
  .bday-panel{padding:16px}
  .bday-stage{padding:20px 12px;min-height:300px}
}
/* ===== 姓名配对测试 (namepair-) ===== */
.namepair-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.namepair-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.namepair-row:last-of-type{margin-bottom:0}
.namepair-label{width:100px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.namepair-input{flex:1;min-width:160px;padding:11px 14px;font-size:15px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.namepair-input:focus{border-color:#ec4899;box-shadow:0 0 0 3px rgba(236,72,153,.12)}
.namepair-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.namepair-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.namepair-btn:hover{border-color:#ec4899;color:#ec4899}
.namepair-btn-primary{background:linear-gradient(135deg,#ec4899,#db2777);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(236,72,153,.3)}
.namepair-btn-primary:hover{background:linear-gradient(135deg,#db2777,#ec4899);color:#fff}
.namepair-hint{margin-top:14px;padding:10px 14px;background:rgba(236,72,153,.1);border:1px solid rgba(236,72,153,.3);border-radius:8px;font-size:12px;color:#ec4899;display:flex;align-items:flex-start;gap:6px;line-height:1.7}
.namepair-hint i{margin-top:3px;flex-shrink:0;color:#ec4899}

.namepair-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(236,72,153,.08)}
.namepair-main{text-align:center;padding:28px 20px;background:linear-gradient(135deg,rgba(236,72,153,.1),rgba(236,72,153,.15));border-radius:14px;margin-bottom:22px}
.namepair-names{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.namepair-name{font-size:22px;font-weight:700;color:#ec4899;font-family:'Kaiti SC','STKaiti',Georgia,serif;letter-spacing:2px}
.namepair-heart{color:#ec4899;font-size:22px;animation:namepair-beat 1.2s ease-in-out infinite}
@keyframes namepair-beat {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.25); }
}
.namepair-score-wrap{margin-bottom:16px}
.namepair-score{font-size:64px;font-weight:700;line-height:1;font-family:ui-monospace,Menlo,Consolas,monospace;margin-bottom:6px}
.namepair-score span{font-size:18px;margin-left:6px;color:#ec4899;font-weight:500}
.namepair-level{font-size:18px;font-weight:600;letter-spacing:1px}
.namepair-bar{height:12px;background:var(--panel);border-radius:6px;overflow:hidden;margin:16px auto 14px;max-width:420px;box-shadow:inset 0 1px 3px rgba(0,0,0,.08)}
.namepair-fill{height:100%;border-radius:6px;transition:width .6s ease-out}
.namepair-comment{font-size:14px;color:#ec4899;line-height:1.9;max-width:520px;margin:0 auto;padding:14px 18px;background:var(--hover);border-radius:10px}

.namepair-section{margin-bottom:20px}
.namepair-section:last-of-type{margin-bottom:0}
.namepair-section-head{font-size:15px;font-weight:600;color:#ec4899;margin-bottom:12px;padding-bottom:10px;border-bottom:2px solid rgba(236,72,153,.15);display:flex;align-items:center;gap:8px}
.namepair-section-head i{color:#ec4899}
.namepair-lines{list-style:none;padding:0;margin:0}
.namepair-lines li{padding:10px 0 10px 26px;position:relative;font-size:14px;color:var(--muted);line-height:1.9;border-bottom:1px dashed var(--line)}
.namepair-lines li:last-child{border-bottom:none}
.namepair-lines li:before{content:'\f004';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:13px;color:#ec4899;font-size:12px}

.namepair-copy-wrap{display:flex;justify-content:center;margin-top:20px;padding-top:18px;border-top:1px dashed var(--line)}

.namepair-tips{list-style:none;padding:0;margin:0}
.namepair-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.namepair-tips li:last-child{border-bottom:none}
.namepair-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#ec4899;font-size:12px}
.namepair-tips b{color:var(--fg)}

@media (max-width:640px){
  .namepair-label{width:100%}
  .namepair-btn{flex:1;justify-content:center}
  .namepair-card{padding:16px}
  .namepair-score{font-size:52px}
  .namepair-name{font-size:18px}
}
/* ===== 星座运势 (horoscope-) ===== */
.horoscope-picker{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.horoscope-picker-title{font-size:15px;font-weight:700;color:var(--fg);margin-bottom:16px;display:flex;align-items:center;gap:8px}
.horoscope-picker-title i{color:#f59e0b}
.horoscope-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.horoscope-item{padding:14px 8px;border:1px solid var(--line);border-radius:12px;background:var(--panel);cursor:pointer;transition:.15s;text-align:center;color:var(--fg);font-family:inherit}
.horoscope-item:hover{border-color:var(--c);box-shadow:0 6px 18px rgba(0,0,0,.08);transform:translateY(-2px)}
.horoscope-item.on{background:linear-gradient(135deg,var(--c),var(--c));border-color:transparent;color:#fff;box-shadow:0 6px 20px rgba(0,0,0,.15)}
.horoscope-icon{font-size:28px;line-height:1;margin-bottom:6px;color:var(--c)}
.horoscope-item.on .horoscope-icon{color:#fff}
.horoscope-name{font-size:14px;font-weight:600;margin-bottom:4px}
.horoscope-range{font-size:11px;color:var(--muted)}
.horoscope-item.on .horoscope-range{color:rgba(255,255,255,.85)}

.horoscope-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(0,0,0,.08)}
.horoscope-head{display:flex;align-items:center;gap:18px;padding-bottom:18px;margin-bottom:20px;border-bottom:2px solid var(--line);flex-wrap:wrap}
.horoscope-symbol{font-size:56px;line-height:1;color:var(--c);flex-shrink:0}
.horoscope-title{font-size:22px;font-weight:700;color:var(--fg);margin-bottom:6px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.horoscope-en{font-size:14px;color:var(--muted);font-weight:400}
.horoscope-sub{font-size:13px;color:var(--muted)}

.horoscope-total{text-align:center;padding:24px 20px;background:linear-gradient(135deg,var(--hover),var(--hover));border-radius:12px;margin-bottom:20px;border:1px solid var(--line)}
.horoscope-total-label{font-size:13px;color:var(--muted);margin-bottom:10px;letter-spacing:1px}
.horoscope-total-stars{font-size:26px;margin-bottom:12px;letter-spacing:6px}
.horoscope-total-mood{font-size:15px;font-weight:600;color:var(--c)}

.horoscope-dims{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.horoscope-dim{padding:14px 16px;background:var(--hover);border-radius:10px;border:1px solid var(--line)}
.horoscope-dim-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;flex-wrap:wrap;gap:6px}
.horoscope-dim-name{font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.horoscope-dim-stars{font-size:13px;letter-spacing:2px}
.horoscope-dim-tip{font-size:12px;color:var(--muted);line-height:1.7}

.horoscope-lucky{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.horoscope-lucky-item{padding:14px 10px;background:linear-gradient(135deg,rgba(245,158,11,.08),rgba(245,158,11,.15));border:1px solid rgba(245,158,11,.2);border-radius:10px;text-align:center}
.horoscope-lucky-label{font-size:12px;color:#f59e0b;margin-bottom:6px}
.horoscope-lucky-val{font-size:16px;font-weight:700;color:#f59e0b;font-family:ui-monospace,Menlo,Consolas,monospace}

.horoscope-copy-wrap{display:flex;justify-content:center;padding-top:16px;border-top:1px dashed var(--line)}
.horoscope-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.horoscope-btn:hover{border-color:#f59e0b;color:#f59e0b}
.horoscope-btn-primary{background:linear-gradient(135deg,#f59e0b,#f59e0b);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(245,158,11,.3)}
.horoscope-btn-primary:hover{background:linear-gradient(135deg,#f59e0b,#f59e0b);color:#fff}

.horoscope-tips{list-style:none;padding:0;margin:0}
.horoscope-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.horoscope-tips li:last-child{border-bottom:none}
.horoscope-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#f59e0b;font-size:12px}
.horoscope-tips b{color:var(--fg)}

@media (max-width:640px){
  .horoscope-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}
  .horoscope-item{padding:10px 6px}
  .horoscope-icon{font-size:22px}
  .horoscope-name{font-size:12px}
  .horoscope-range{font-size:10px}
  .horoscope-card{padding:16px}
  .horoscope-symbol{font-size:42px}
  .horoscope-title{font-size:18px}
  .horoscope-dims{grid-template-columns:1fr}
  .horoscope-lucky{grid-template-columns:1fr 1fr}
  .horoscope-btn{flex:1;justify-content:center}
}
/* ===== 塔罗牌 (tarot-) ===== */
.tarot-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.tarot-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.tarot-row:last-of-type{margin-bottom:0}
.tarot-label{width:110px;flex-shrink:0;font-size:14px;color:var(--muted);font-weight:500}
.tarot-input{flex:1;min-width:180px;padding:11px 14px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s}
.tarot-input:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}
.tarot-spreads{display:flex;gap:10px;flex-wrap:wrap;flex:1}
.tarot-spread{padding:12px 20px;font-size:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:8px}
.tarot-spread-icon{font-size:18px}
.tarot-spread:hover{border-color:#8b5cf6;color:#8b5cf6}
.tarot-spread.on{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.3)}
.tarot-actions{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--line);flex-wrap:wrap}
.tarot-btn{padding:11px 24px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.tarot-btn:hover{border-color:#8b5cf6;color:#8b5cf6}
.tarot-btn-primary{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.3)}
.tarot-btn-primary:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}
.tarot-hint{margin-top:14px;padding:10px 14px;background:rgba(139,92,246,.08);border:1px solid rgba(139,92,246,.3);border-radius:8px;font-size:12px;color:#6d28d9;display:flex;align-items:flex-start;gap:6px;line-height:1.7}
.tarot-hint i{margin-top:3px;flex-shrink:0;color:#8b5cf6}

.tarot-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(139,92,246,.08)}
.tarot-question{padding:14px 18px;background:linear-gradient(135deg,rgba(139,92,246,.08),rgba(139,92,246,.12));border-left:4px solid #8b5cf6;border-radius:10px;font-size:14px;color:#8b5cf6;line-height:1.8;margin-bottom:20px;font-style:italic}
.tarot-question i{color:#8b5cf6;margin-right:6px;opacity:.7}

.tarot-cards{display:grid;gap:16px;margin-bottom:22px}
.tarot-cards-single{grid-template-columns:1fr;max-width:340px;margin-left:auto;margin-right:auto}
.tarot-cards-three{grid-template-columns:repeat(3,1fr)}
.tarot-card-item{background:linear-gradient(135deg,var(--hover),var(--hover));border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center;transition:.2s;box-shadow:0 4px 12px rgba(0,0,0,.04)}
.tarot-card-item:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(139,92,246,.15)}
.tarot-card-item.tarot-reversed .tarot-icon{transform:rotate(180deg)}
.tarot-position{font-size:13px;color:#8b5cf6;font-weight:600;margin-bottom:14px;letter-spacing:1px}
.tarot-card-face{padding:16px 12px;background:var(--panel);border:2px solid #8b5cf6;border-radius:12px;margin-bottom:12px}
.tarot-reversed .tarot-card-face{border-style:dashed}
.tarot-icon{font-size:44px;line-height:1;margin-bottom:10px;display:inline-block;transition:.3s}
.tarot-name{font-size:17px;font-weight:700;color:var(--fg);margin-bottom:6px;font-family:'Kaiti SC','STKaiti',Georgia,serif}
.tarot-orient{font-size:12px;color:#8b5cf6;background:rgba(139,92,246,.12);padding:3px 12px;border-radius:12px;display:inline-block;font-weight:600}
.tarot-reversed .tarot-orient{background:rgba(245,158,11,.15);color:#f59e0b}
.tarot-mean{text-align:left;padding:10px 14px;background:var(--panel);border-radius:8px;border:1px solid var(--line)}
.tarot-mean-row{display:flex;gap:10px;font-size:13px;line-height:1.7;color:var(--fg);align-items:flex-start}
.tarot-mean-lbl{flex-shrink:0;width:36px;color:var(--muted);font-weight:500}

.tarot-reading{margin-bottom:20px}
.tarot-reading-head{font-size:15px;font-weight:600;color:#8b5cf6;margin-bottom:12px;padding-bottom:10px;border-bottom:2px solid rgba(139,92,246,.12);display:flex;align-items:center;gap:8px}
.tarot-reading-head i{color:#8b5cf6}
.tarot-reading-list{list-style:none;padding:0;margin:0}
.tarot-reading-list li{padding:10px 0 10px 24px;position:relative;font-size:14px;color:var(--muted);line-height:1.9;border-bottom:1px dashed var(--line)}
.tarot-reading-list li:last-child{border-bottom:none}
.tarot-reading-list li:before{content:'\f005';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:13px;color:#8b5cf6;font-size:12px}

.tarot-copy-wrap{display:flex;justify-content:center;padding-top:16px;border-top:1px dashed var(--line)}

.tarot-tips{list-style:none;padding:0;margin:0}
.tarot-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.tarot-tips li:last-child{border-bottom:none}
.tarot-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#8b5cf6;font-size:12px}
.tarot-tips b{color:var(--fg)}

@media (max-width:640px){
  .tarot-label{width:100%}
  .tarot-spread{flex:1;justify-content:center;padding:10px 14px;font-size:13px}
  .tarot-btn{flex:1;justify-content:center}
  .tarot-card{padding:16px}
  .tarot-cards-three{grid-template-columns:1fr}
  .tarot-icon{font-size:36px}
  .tarot-name{font-size:15px}
}
/* ===== 颜色性格测试 (ysec-) ===== */
.ysec-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.ysec-title{font-size:18px;font-weight:700;color:var(--fg);text-align:center;margin-bottom:8px;display:flex;align-items:center;justify-content:center;gap:8px}
.ysec-title i{color:#8b5cf6}
.ysec-title b{color:#8b5cf6}
.ysec-sub{font-size:13px;color:var(--muted);text-align:center;margin-bottom:22px}
.ysec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-bottom:20px}
.ysec-color{background:var(--panel);border:2px solid var(--line);border-radius:14px;padding:16px 12px;cursor:pointer;transition:.18s;display:flex;flex-direction:column;align-items:center;gap:8px;font-family:inherit}
.ysec-color:hover{border-color:var(--c);transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,.08)}
.ysec-swatch{width:44px;height:44px;border-radius:50%;box-shadow:0 4px 12px rgba(0,0,0,.12);border:3px solid var(--panel);transition:.2s}
.ysec-color.on{border-color:var(--c);background:var(--c);box-shadow:0 8px 24px rgba(0,0,0,.15)}
.ysec-color.on .ysec-swatch{transform:scale(1.1);border-color:var(--panel);box-shadow:0 4px 14px rgba(0,0,0,.25)}
.ysec-color-name{font-size:14px;font-weight:600;color:var(--fg);transition:.15s}
.ysec-color.on .ysec-color-name{color:#fff}
.ysec-selected{text-align:center;padding:14px;background:var(--hover);border:1px dashed var(--line);border-radius:10px;margin-bottom:16px;font-size:14px}
.ysec-selected-label{color:var(--muted)}
.ysec-selected-list{color:#8b5cf6;font-weight:600;letter-spacing:1px}
.ysec-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.ysec-btn{padding:12px 28px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.ysec-btn:hover:not(:disabled){border-color:#8b5cf6;color:#8b5cf6}
.ysec-btn:disabled{opacity:.5;cursor:not-allowed}
.ysec-btn-primary{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(139,92,246,.3)}
.ysec-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}

.ysec-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 4px 20px rgba(139,92,246,.08)}
.ysec-result-head{text-align:center;padding:24px 20px;background:linear-gradient(135deg,rgba(139,92,246,.08),rgba(139,92,246,.12));border-radius:14px;margin-bottom:22px}
.ysec-result-colors{display:flex;justify-content:center;gap:12px;margin-bottom:16px}
.ysec-result-dot{width:44px;height:44px;border-radius:50%;box-shadow:0 4px 14px rgba(0,0,0,.18);border:3px solid var(--panel)}
.ysec-result-title{font-size:22px;font-weight:700;color:var(--fg);margin-bottom:8px}
.ysec-result-sub{font-size:14px;color:#7c3aed;letter-spacing:2px}

.ysec-section{padding:18px;border-radius:12px;background:var(--hover);border-left:4px solid var(--c);margin-bottom:14px}
.ysec-section-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ysec-section-swatch{width:22px;height:22px;border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.15);border:2px solid var(--panel)}
.ysec-section-title{font-size:17px;font-weight:700;color:var(--fg)}
.ysec-section-order{font-size:12px;color:var(--muted);background:var(--panel);padding:2px 10px;border-radius:10px;border:1px solid var(--line);margin-left:auto}
.ysec-keywords{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.ysec-kw{padding:4px 12px;background:var(--c);color:#fff;border-radius:12px;font-size:12px;font-weight:500;opacity:.9}
.ysec-para{font-size:14px;color:var(--fg);line-height:1.9;margin-bottom:8px}
.ysec-para b{color:var(--fg)}
.ysec-tip{padding:10px 14px;background:rgba(245,158,11,.1);border-radius:8px;border:1px solid rgba(245,158,11,.3);color:#f59e0b}
.ysec-tip b{color:#f59e0b}

.ysec-combo{padding:18px;background:linear-gradient(135deg,rgba(139,92,246,.08),rgba(99,102,241,.1));border:1px solid rgba(99,102,241,.3);border-radius:12px;margin-bottom:20px}
.ysec-combo-head{font-size:15px;font-weight:700;color:#6366f1;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.ysec-combo-head i{color:#f59e0b}
.ysec-combo-body{font-size:14px;color:var(--fg);line-height:2;white-space:pre-line}

.ysec-copy-wrap{display:flex;justify-content:center;padding-top:18px;border-top:1px dashed var(--line)}

.ysec-tips{list-style:none;padding:0;margin:0}
.ysec-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.ysec-tips li:last-child{border-bottom:none}
.ysec-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#8b5cf6;font-size:12px}
.ysec-tips b{color:var(--fg)}

@media (max-width:640px){
  .ysec-grid{grid-template-columns:repeat(3,1fr);gap:8px}
  .ysec-color{padding:12px 8px}
  .ysec-swatch{width:34px;height:34px}
  .ysec-color-name{font-size:12px}
  .ysec-btn{flex:1;justify-content:center}
  .ysec-card{padding:16px}
  .ysec-section{padding:14px}
  .ysec-result-dot{width:36px;height:36px}
}


/* ===== 中国大学列表 (univ-) ===== */
.univ-box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:16px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.univ-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.univ-search-wrap{position:relative;flex:1;min-width:220px}
.univ-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.univ-search{width:100%;padding:11px 40px 11px 38px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;box-sizing:border-box}
.univ-search:focus{border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.12)}
.univ-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:.15s}
.univ-search-clear:hover{background:var(--hover);color:#ef4444}
.univ-count{font-size:13px;color:var(--muted);white-space:nowrap}
.univ-count b{color:#4f46e5;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px}

.univ-filters{display:flex;flex-direction:column;gap:10px;margin-bottom:12px;padding-top:12px;border-top:1px dashed var(--line)}
.univ-filter-row{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.univ-filter-label{width:44px;flex-shrink:0;font-size:13px;color:var(--muted);padding-top:6px}
.univ-chips{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.univ-chips-scroll{max-height:120px;overflow-y:auto;padding:2px}
.univ-chip{padding:6px 14px;font-size:13px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500}
.univ-chip:hover{border-color:#4f46e5;color:#4f46e5}
.univ-chip.on{background:linear-gradient(135deg,#4f46e5,#6366f1);border-color:transparent;color:#fff;box-shadow:0 3px 8px rgba(79,70,229,.25)}
.univ-hint{font-size:12px;color:var(--muted);padding-top:10px;border-top:1px dashed var(--line)}
.univ-hint i{color:#6366f1;margin-right:4px}

.univ-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;margin-bottom:20px}
.univ-item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;transition:.15s;display:flex;align-items:center;gap:10px}
.univ-item:hover{border-color:#4f46e5;box-shadow:0 4px 12px rgba(79,70,229,.12);transform:translateY(-1px)}
.univ-item.univ-copied{background:rgba(16,185,129,.08);border-color:#10b981}
.univ-item-main{flex:1;min-width:0}
.univ-item-name{font-size:15px;font-weight:600;color:var(--fg);margin-bottom:6px;word-break:break-all;line-height:1.4}
.univ-item.univ-copied .univ-item-name{color:#059669}
.univ-item-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--muted)}
.univ-level{padding:2px 8px;border-radius:8px;font-size:11px;font-weight:600;color:#fff}
.univ-level-benke{background:var(--accent)}
.univ-level-zhuanke{background:#10b981}
.univ-level-chengren{background:var(--muted)}
.univ-prov{display:inline-flex;align-items:center;gap:3px}
.univ-prov i{font-size:10px;color:var(--muted)}
.univ-remark{color:#f59e0b}
.univ-item-tags{display:flex;flex-wrap:wrap;gap:4px;flex-shrink:0}
.univ-tag{padding:2px 8px;border-radius:8px;font-size:11px;font-weight:700}
.univ-tag-985{background:rgba(245,158,11,.15);color:#f59e0b}
.univ-tag-211{background:rgba(59,130,246,.15);color:var(--accent)}
.univ-tag-syl{background:rgba(139,92,246,.12);color:#6d28d9}
.univ-tag-plain{background:var(--hover);color:var(--muted)}
.univ-copy{flex-shrink:0;width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.univ-item:hover .univ-copy{color:#4f46e5;border-color:#4f46e5}
.univ-item.univ-copied .univ-copy{color:#10b981;border-color:#10b981}
.univ-more{grid-column:1/-1;text-align:center;padding:14px;color:var(--muted);font-size:13px;background:var(--hover);border-radius:8px}
.univ-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px}
.univ-empty i{font-size:36px;display:block;margin-bottom:12px;color:var(--muted)}
.univ-error{padding:20px;text-align:center;color:#dc2626;background:rgba(239,68,68,.1);border-radius:10px;font-size:14px;grid-column:1/-1}

.univ-tips{list-style:none;padding:0;margin:0}
.univ-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed var(--line)}
.univ-tips li:last-child{border-bottom:none}
.univ-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:#4f46e5;font-size:12px}
.univ-tips b{color:var(--fg)}

@media (max-width:640px){
  .univ-list{grid-template-columns:1fr;gap:8px}
  .univ-item{padding:10px 12px}
  .univ-item-name{font-size:14px}
  .univ-filter-label{width:100%;padding-top:0}
  .univ-chips-scroll{max-height:100px}
}


/* ===== 中国地铁图 (subway-) ===== */
.subway-tabs{display:flex;gap:8px;margin-bottom:16px}
.subway-tab{padding:10px 20px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.subway-tab:hover{border-color:var(--accent);color:var(--accent)}
.subway-tab.on{background:linear-gradient(135deg,var(--accent),#3b82f6);border-color:transparent;color:#fff;box-shadow:0 4px 14px rgba(14,165,233,.3)}

.subway-panel{margin-bottom:16px}
.subway-map-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:12px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.subway-city-select-wrap{display:flex;align-items:center;gap:8px;background:rgba(14,165,233,.1);border:1px solid rgba(14,165,233,.3);border-radius:10px;padding:8px 14px}
.subway-city-select-wrap i{color:var(--accent)}
.subway-city-select{border:none;background:transparent;font-size:15px;color:#3b82f6;font-weight:600;outline:none;cursor:pointer;padding:2px 4px}
.subway-map-hint{font-size:12px;color:var(--muted);flex:1;min-width:160px}
.subway-map-hint i{color:var(--accent);margin-right:4px}
.subway-btn{padding:8px 16px;font-size:13px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.subway-btn:hover{border-color:var(--accent);color:var(--accent)}
.subway-btn-open{background:linear-gradient(135deg,var(--accent),#3b82f6);color:#fff;border-color:transparent;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.subway-btn-open:hover{background:linear-gradient(135deg,#3b82f6,#3b82f6);color:#fff;border-color:transparent;text-decoration:none}

.subway-map-frame{position:relative;background:var(--hover);border:1px solid var(--line);border-radius:12px;overflow:hidden;height:680px}
.subway-map-frame iframe{display:block;width:100%;height:100%;border:none}
.subway-map-frame:fullscreen{height:100vh;background:var(--panel)}
.subway-map-frame:-webkit-full-screen{height:100vh;background:var(--panel)}

/* ===== 线路查询（新版） ===== */
.subway-lines-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:12px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.subway-lines-city-wrap{display:flex;align-items:center;gap:8px;background:rgba(14,165,233,.1);border:1px solid rgba(14,165,233,.3);border-radius:10px;padding:8px 14px}
.subway-lines-city-wrap i{color:var(--accent)}
.subway-lines-search{position:relative;flex:1;min-width:200px}
.subway-lines-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.subway-lines-search input{width:100%;padding:10px 36px 10px 38px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);outline:none;transition:.15s;box-sizing:border-box}
.subway-lines-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.subway-lines-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:none;background:transparent;color:var(--muted);cursor:pointer;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;transition:.15s}
.subway-lines-search-clear:hover{background:var(--hover);color:#ef4444}
.subway-lines-count{font-size:13px;color:var(--muted);white-space:nowrap}
.subway-lines-count b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px}

.subway-lines-body{display:grid;grid-template-columns:320px 1fr;gap:14px;min-height:600px;margin-bottom:20px}
.subway-lines-list{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px;max-height:680px;overflow-y:auto;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.subway-line-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;cursor:pointer;transition:.15s;margin-bottom:2px}
.subway-line-item:hover{background:rgba(14,165,233,.1)}
.subway-line-item.on{background:linear-gradient(135deg,rgba(14,165,233,.12),rgba(14,165,233,.3));box-shadow:0 2px 8px rgba(14,165,233,.15)}
.subway-line-color{width:6px;height:36px;border-radius:3px;flex-shrink:0}
.subway-line-info{flex:1;min-width:0}
.subway-line-name{font-size:14px;font-weight:600;color:var(--fg);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.subway-line-range{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.subway-line-count{font-size:11px;color:var(--accent);font-weight:600;white-space:nowrap;padding:2px 8px;background:rgba(14,165,233,.1);border-radius:10px}
.subway-lines-empty-sm{padding:40px 20px;text-align:center;color:var(--muted);font-size:13px}

.subway-lines-detail{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:0 2px 12px rgba(0,0,0,.04);max-height:680px;overflow-y:auto}
.subway-lines-empty{text-align:center;padding:80px 20px;color:var(--muted)}
.subway-lines-empty i{font-size:48px;color:var(--muted);display:block;margin-bottom:16px}
.subway-lines-empty-sub{font-size:12px;color:var(--muted);margin-top:6px}
.subway-lines-error{padding:20px;text-align:center;color:#dc2626;font-size:14px;background:rgba(239,68,68,.1);border-radius:8px;margin:8px}

.subway-detail-head{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--hover);border-radius:10px;border-left:5px solid #ccc;margin-bottom:18px}
.subway-detail-color{width:44px;height:44px;border-radius:10px;flex-shrink:0;box-shadow:0 4px 12px rgba(0,0,0,.1)}
.subway-detail-title-wrap{flex:1;min-width:0}
.subway-detail-title{font-size:20px;font-weight:700;color:var(--fg);margin-bottom:4px}
.subway-detail-range{font-size:13px;color:var(--muted)}
.subway-detail-copy{padding:8px 14px;font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.subway-detail-copy:hover{border-color:var(--accent);color:var(--accent)}

.subway-detail-stops{display:flex;flex-direction:column}
.subway-stop{display:flex;gap:14px;min-height:46px}
.subway-stop-marker-wrap{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:20px}
.subway-stop-marker{width:14px;height:14px;border-radius:50%;border:3px solid #ccc;background:var(--panel);margin-top:6px;flex-shrink:0;z-index:1}
.subway-stop-line{width:3px;flex:1;background:#ccc;margin-top:-2px}
.subway-stop-body{flex:1;padding-bottom:12px;padding-top:4px}
.subway-stop-name{font-size:14px;color:var(--fg);font-weight:500;line-height:1.4}
.subway-stop-transfer .subway-stop-name{font-weight:700;color:var(--accent)}
.subway-stop-badge{display:inline-block;font-size:10px;color:#3b82f6;background:rgba(14,165,233,.12);padding:1px 8px;border-radius:8px;margin-top:3px}



/* ===== 旧站点查询（保留，避免旧代码引用不到） ===== */
.subway-data-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:12px;box-shadow:0 2px 12px rgba(0,0,0,.04)}
.subway-search-wrap{position:relative;flex:1;min-width:220px}
.subway-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.subway-search{width:100%;padding:11px 40px 11px 38px;font-size:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:#111;outline:none;transition:.15s;box-sizing:border-box}
.subway-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.subway-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:.15s}
.subway-search-clear:hover{background:var(--hover);color:#ef4444}
.subway-count{font-size:13px;color:var(--muted);white-space:nowrap}
.subway-count b{color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px}
.subway-filters{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 18px;margin-bottom:12px}
.subway-filter-row{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.subway-filter-label{width:44px;flex-shrink:0;font-size:13px;color:var(--muted);padding-top:6px}
.subway-chips{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.subway-chips-scroll{max-height:130px;overflow-y:auto;padding:2px}
.subway-chip{padding:6px 14px;font-size:13px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:#555;cursor:pointer;transition:.15s;font-weight:500}
.subway-chip:hover{border-color:var(--accent);color:var(--accent)}
.subway-chip.on{background:linear-gradient(135deg,var(--accent),#3b82f6);border-color:transparent;color:var(--panel);box-shadow:0 3px 8px rgba(14,165,233,.25)}
.subway-data-hint{font-size:12px;color:var(--muted);margin-bottom:12px}
.subway-data-hint i{color:var(--accent);margin-right:4px}
.subway-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-bottom:20px}
.subway-item{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;transition:.15s;display:flex;align-items:center;justify-content:space-between;gap:10px}
.subway-item:hover{border-color:var(--accent);box-shadow:0 4px 12px rgba(14,165,233,.12);transform:translateY(-1px)}
.subway-item.subway-copied{background:rgba(6,182,212,.1);border-color:var(--accent)}
.subway-item-name{font-size:15px;font-weight:600;color:#111;margin-bottom:6px;word-break:break-all}
.subway-item.subway-copied .subway-item-name{color:#3b82f6}
.subway-item-meta{display:flex;gap:6px;flex-wrap:wrap;font-size:12px}
.subway-city-badge{padding:2px 8px;border-radius:8px;font-size:11px;font-weight:600;background:rgba(14,165,233,.12);color:#3b82f6}
.subway-copy{width:26px;height:26px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.subway-item:hover .subway-copy{color:var(--accent);border-color:var(--accent)}
.subway-item.subway-copied .subway-copy{color:var(--accent);border-color:var(--accent)}
.subway-more{grid-column:1/-1;text-align:center;padding:14px;color:var(--muted);font-size:13px;background:var(--hover);border-radius:8px}
.subway-empty{text-align:center;padding:60px 20px;color:var(--muted);font-size:14px}
.subway-empty i{font-size:36px;display:block;margin-bottom:12px;color:var(--line)}
.subway-error{padding:20px;text-align:center;color:#dc2626;background:rgba(239,68,68,.1);border-radius:10px;font-size:14px;grid-column:1/-1}

.subway-tips{list-style:none;padding:0;margin:0}
.subway-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.8;border-bottom:1px dashed #eee}
.subway-tips li:last-child{border-bottom:none}
.subway-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:8px;color:var(--accent);font-size:12px}
.subway-tips b{color:#111}

/* ===== 响应式 ===== */
@media (max-width:768px){
  .subway-lines-body{grid-template-columns:1fr}
  .subway-lines-list{max-height:320px}
  .subway-lines-detail{max-height:none}
  .subway-detail-head{flex-wrap:wrap}
  .subway-detail-copy{margin-left:0;width:100%;justify-content:center}
}
@media (max-width:640px){
  .subway-map-frame{height:480px}
  .subway-list{grid-template-columns:1fr;gap:8px}
  .subway-item{padding:10px 12px}
  .subway-tab{flex:1;justify-content:center}
  .subway-filter-label{width:100%;padding-top:0}
  .subway-lines-toolbar{padding:10px}
  .subway-lines-search{min-width:100%}
  .subway-detail-title{font-size:17px}
  .subway-detail-color{width:36px;height:36px}
}


/* 搜索结果页内搜索框 */
.search-box-inner{
  display:flex;align-items:center;gap:8px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:8px 12px;margin-bottom:20px;
  box-shadow:0 2px 12px rgba(0,0,0,.04);
  position:relative;
  max-width:640px;
}
.search-box-inner i{
  color:var(--muted);font-size:15px;flex-shrink:0;margin-left:6px;
}
.search-box-inner input{
  flex:1;padding:10px 8px;font-size:14px;border:none;background:transparent;
  color:#111;outline:none;
}
.search-box-inner button{
  padding:9px 20px;font-size:14px;border:none;border-radius:8px;
  background:linear-gradient(135deg,var(--accent),#3b82f6);color:var(--panel);
  cursor:pointer;font-weight:500;transition:.15s;flex-shrink:0;
}
.search-box-inner button:hover{
  background:linear-gradient(135deg,#3b82f6,#3b82f6);
}
.search-box-inner:focus-within{
  border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,165,233,.12);
}
/* ===== 图片去背景 (qb-) ===== */
.qb-toolbar{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;margin-bottom:14px}
.qb-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.qb-row:last-of-type{margin-bottom:0}
.qb-label{font-size:13px;color:var(--muted,var(--muted));white-space:nowrap;font-weight:500}
.qb-range{flex:1;min-width:120px;max-width:260px;accent-color:var(--accent)}
.qb-val{font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;min-width:28px}
.qb-color-wrap{display:inline-flex;align-items:center;gap:6px}
.qb-color{width:36px;height:32px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));cursor:pointer;padding:2px}
.qb-color-txt{font-size:12px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.qb-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.qb-check input{cursor:pointer;accent-color:var(--accent)}
.qb-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line,var(--line));padding-top:12px;margin-top:8px}
.qb-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.qb-btn:hover{border-color:var(--accent);color:var(--accent)}
.qb-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.qb-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.qb-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.qb-picking{background:rgba(245,158,11,.15);border-color:#f59e0b;color:#f59e0b}
.qb-status{margin-bottom:12px;min-height:0}
.qb-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.qb-st i{margin-right:6px}
.qb-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.qb-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.qb-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.qb-st-info{background:rgba(59,130,246,.15);color:var(--accent);border:1px solid rgba(59,130,246,.3)}
.qb-upload{border:2px dashed var(--line,var(--line));border-radius:14px;padding:48px 20px;text-align:center;cursor:pointer;transition:.2s;background:var(--panel,var(--panel));margin-bottom:18px}
.qb-upload:hover,.qb-drag{border-color:var(--accent);background:rgba(59,130,246,.04)}
.qb-upload i{font-size:40px;color:var(--accent);margin-bottom:12px;display:block}
.qb-upload p{font-size:15px;color:var(--fg,#222);margin:0 0 6px;font-weight:500}
.qb-upload span{font-size:12px;color:var(--muted,var(--muted))}
.qb-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.qb-panel{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.qb-panel-head{padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.qb-panel-head i{color:var(--accent);margin-right:6px}
.qb-canvas-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:14px;min-height:300px;overflow:auto}
.qb-canvas-wrap canvas{max-width:100%;max-height:420px;display:block;border-radius:6px}
.qb-checker{background-image:linear-gradient(45deg,var(--line) 25%,transparent 25%),linear-gradient(-45deg,var(--line) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--line) 75%),linear-gradient(-45deg,transparent 75%,var(--line) 75%);background-size:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0}
.qb-tips{list-style:none;padding:0;margin:0}
.qb-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.qb-tips li:last-child{border-bottom:none}
.qb-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.qb-tips b{color:var(--fg,#111)}
@media (max-width:820px){
  .qb-panels{grid-template-columns:1fr}
  .qb-canvas-wrap{min-height:220px}
}
@media (max-width:640px){
  .qb-row{flex-direction:column;align-items:stretch}
  .qb-range{max-width:none}
  .qb-btn{flex:1;justify-content:center}
}/* ===== 图片转WebP (twp-) ===== */
.twp-toolbar{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;margin-bottom:14px}
.twp-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.twp-label{font-size:13px;color:var(--muted,var(--muted));white-space:nowrap;font-weight:500}
.twp-range{flex:1;min-width:120px;max-width:300px;accent-color:var(--accent)}
.twp-val{font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace;min-width:28px}
.twp-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.twp-check input{cursor:pointer;accent-color:var(--accent)}
.twp-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line,var(--line));padding-top:12px;margin-top:8px}
.twp-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none}
.twp-btn:hover{border-color:var(--accent);color:var(--accent)}
.twp-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.twp-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.twp-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.twp-btn-sm{padding:6px 10px;font-size:12px}
.twp-status{margin-bottom:12px;min-height:0}
.twp-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.twp-st i{margin-right:6px}
.twp-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.twp-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.twp-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.twp-st-info{background:rgba(59,130,246,.15);color:var(--accent);border:1px solid rgba(59,130,246,.3)}
.twp-upload{border:2px dashed var(--line,var(--line));border-radius:14px;padding:48px 20px;text-align:center;cursor:pointer;transition:.2s;background:var(--panel,var(--panel));margin-bottom:18px}
.twp-upload:hover,.twp-drag{border-color:var(--accent);background:rgba(59,130,246,.04)}
.twp-upload i{font-size:40px;color:var(--accent);margin-bottom:12px;display:block}
.twp-upload p{font-size:15px;color:var(--fg,#222);margin:0 0 6px;font-weight:500}
.twp-upload span{font-size:12px;color:var(--muted,var(--muted))}
.twp-list{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.twp-item{display:flex;align-items:center;gap:14px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:10px;padding:10px 14px}
.twp-thumb{width:64px;height:64px;flex-shrink:0;border-radius:8px;overflow:hidden;background:var(--hover);display:flex;align-items:center;justify-content:center}
.twp-thumb img{max-width:100%;max-height:100%;display:block}
.twp-meta{flex:1;min-width:0}
.twp-name{font-size:13px;color:var(--fg,#222);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}
.twp-sizes{font-size:12px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.twp-ratio{font-weight:600;margin-left:4px}
.twp-ops{display:flex;align-items:center;gap:6px;flex-shrink:0}
.twp-pending{font-size:12px;color:var(--muted)}
.twp-tips{list-style:none;padding:0;margin:0}
.twp-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.twp-tips li:last-child{border-bottom:none}
.twp-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.twp-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .twp-row{flex-direction:column;align-items:stretch}
  .twp-range{max-width:none}
  .twp-btn{flex:1;justify-content:center}
  .twp-item{flex-wrap:wrap}
  .twp-ops{width:100%;justify-content:flex-end}
}/* ===== PDF合并拆分 (pdfm-) ===== */
.pdfm-tabs{display:flex;gap:8px;margin-bottom:14px;border-bottom:1px solid var(--line,var(--line));padding-bottom:0}
.pdfm-tab{padding:10px 18px;font-size:14px;border:1px solid transparent;border-bottom:none;background:transparent;color:var(--muted,var(--muted));cursor:pointer;font-weight:500;border-radius:8px 8px 0 0;transition:.15s;display:inline-flex;align-items:center;gap:6px;margin-bottom:-1px}
.pdfm-tab:hover{color:var(--accent)}
.pdfm-tab.on{background:var(--panel,var(--panel));border-color:var(--line,var(--line));border-bottom-color:var(--panel,var(--panel));color:var(--accent)}
.pdfm-status{margin-bottom:12px;min-height:0}
.pdfm-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.pdfm-st i{margin-right:6px}
.pdfm-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.pdfm-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.pdfm-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.pdfm-st-info{background:rgba(59,130,246,.15);color:var(--accent);border:1px solid rgba(59,130,246,.3)}
.pdfm-upload{border:2px dashed var(--line,var(--line));border-radius:14px;padding:48px 20px;text-align:center;cursor:pointer;transition:.2s;background:var(--panel,var(--panel));margin-bottom:14px}
.pdfm-upload:hover,.pdfm-drag{border-color:var(--accent);background:rgba(59,130,246,.04)}
.pdfm-upload i{font-size:40px;color:var(--accent);margin-bottom:12px;display:block}
.pdfm-upload p{font-size:15px;color:var(--fg,#222);margin:0 0 6px;font-weight:500}
.pdfm-upload span{font-size:12px;color:var(--muted,var(--muted))}
.pdfm-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.pdfm-item{display:flex;align-items:center;gap:10px;background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:10px;padding:10px 14px;cursor:move;transition:.15s}
.pdfm-item:hover{border-color:var(--accent)}
.pdfm-dragging{opacity:.4}
.pdfm-over{border-color:var(--accent);background:rgba(59,130,246,.06)}
.pdfm-drag{color:var(--muted);cursor:grab}
.pdfm-idx{width:26px;height:26px;flex-shrink:0;border-radius:50%;background:var(--accent);color:var(--panel);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}
.pdfm-meta{flex:1;min-width:0}
.pdfm-name{font-size:13px;color:var(--fg,#222);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdfm-size{font-size:11px;color:var(--muted,var(--muted));font-family:ui-monospace,Menlo,Consolas,monospace}
.pdfm-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.pdfm-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none}
.pdfm-btn:hover{border-color:var(--accent);color:var(--accent)}
.pdfm-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.pdfm-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.pdfm-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.pdfm-btn-sm{padding:6px 10px;font-size:12px}
.pdfm-split-info{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px}
.pdfm-split-name{font-size:14px;color:var(--fg,#222);font-weight:500;margin-bottom:12px;padding-bottom:12px;border-bottom:1px dashed var(--line,var(--line))}
.pdfm-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.pdfm-label{font-size:13px;color:var(--muted,var(--muted));white-space:nowrap;font-weight:500}
.pdfm-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;font-family:ui-monospace,Menlo,Consolas,monospace}
.pdfm-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.pdfm-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.pdfm-check input{cursor:pointer;accent-color:var(--accent)}
.pdfm-tips{list-style:none;padding:0;margin:0}
.pdfm-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.pdfm-tips li:last-child{border-bottom:none}
.pdfm-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.pdfm-tips b{color:var(--fg,#111)}
.pdfm-tips code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--hover,var(--hover));padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
@media (max-width:640px){
  .pdfm-row{flex-direction:column;align-items:stretch}
  .pdfm-input{min-width:0}
  .pdfm-btn{flex:1;justify-content:center}
}/* ===== GIF帧提取 (gfe-) ===== */
.gfe-toolbar{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;padding:16px;margin-bottom:14px}
.gfe-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.gfe-label{font-size:13px;color:var(--muted,var(--muted));white-space:nowrap;font-weight:500}
.gfe-select{padding:8px 12px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--bg,var(--panel));color:var(--fg,#222);outline:none;cursor:pointer}
.gfe-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.gfe-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted,var(--muted));cursor:pointer;user-select:none}
.gfe-check input{cursor:pointer;accent-color:var(--accent)}
.gfe-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line,var(--line));padding-top:12px;margin-top:8px}
.gfe-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line,var(--line));border-radius:8px;background:var(--panel,var(--panel));color:var(--muted,#555);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none}
.gfe-btn:hover{border-color:var(--accent);color:var(--accent)}
.gfe-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.gfe-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.gfe-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.gfe-btn-sm{padding:6px 10px;font-size:12px}
.gfe-status{margin-bottom:12px;min-height:0}
.gfe-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.gfe-st i{margin-right:6px}
.gfe-st-ok{background:rgba(16,185,129,.15);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.gfe-st-err{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.gfe-st-warn{background:rgba(245,158,11,.15);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.gfe-st-info{background:rgba(59,130,246,.15);color:var(--accent);border:1px solid rgba(59,130,246,.3)}
.gfe-upload{border:2px dashed var(--line,var(--line));border-radius:14px;padding:48px 20px;text-align:center;cursor:pointer;transition:.2s;background:var(--panel,var(--panel));margin-bottom:18px}
.gfe-upload:hover,.gfe-drag{border-color:var(--accent);background:rgba(59,130,246,.04)}
.gfe-upload i{font-size:40px;color:var(--accent);margin-bottom:12px;display:block}
.gfe-upload p{font-size:15px;color:var(--fg,#222);margin:0 0 6px;font-weight:500}
.gfe-upload span{font-size:12px;color:var(--muted,var(--muted))}
.gfe-preview{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:12px;overflow:hidden;margin-bottom:18px}
.gfe-preview-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover,var(--hover));border-bottom:1px solid var(--line,var(--line));font-size:13px;color:var(--muted,var(--muted));font-weight:500}
.gfe-preview-head i{color:var(--accent);margin-right:6px}
.gfe-count{font-size:12px;color:var(--accent);font-family:ui-monospace,Menlo,Consolas,monospace}
.gfe-preview-body{display:flex;align-items:center;justify-content:center;padding:14px;min-height:200px}
.gfe-preview-body img{max-width:100%;max-height:360px;display:block;border-radius:6px}
.gfe-frames{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:18px}
.gfe-frame{background:var(--panel,var(--panel));border:1px solid var(--line,var(--line));border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}
.gfe-frame-thumb{background:var(--hover);border-radius:6px;overflow:hidden;display:flex;align-items:center;justify-content:center;height:120px}
.gfe-frame-thumb img{max-width:100%;max-height:100%;display:block}
.gfe-frame-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted,var(--muted))}
.gfe-frame-idx{font-weight:500;color:var(--fg,#222)}
.gfe-frame-size{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--muted)}
.gfe-tips{list-style:none;padding:0;margin:0}
.gfe-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted,var(--muted));line-height:1.7;border-bottom:1px dashed var(--line,#eee)}
.gfe-tips li:last-child{border-bottom:none}
.gfe-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.gfe-tips b{color:var(--fg,#111)}
@media (max-width:640px){
  .gfe-row{flex-direction:column;align-items:stretch}
  .gfe-btn{flex:1;justify-content:center}
  .gfe-frames{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
}
/* ===== AI合同审查 (ahc-) ===== */
.ahc-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ahc-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ahc-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ahc-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ahc-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ahc-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ahc-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ahc-btn:hover{border-color:var(--accent);color:var(--accent)}
.ahc-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.ahc-btn-primary:hover{opacity:.9;color:var(--panel)}
.ahc-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ahc-status{margin-bottom:12px;min-height:0}
.ahc-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ahc-st i{margin-right:6px}
.ahc-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ahc-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ahc-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ahc-st-info{background:rgba(59,130,246,.12);color:var(--accent);border:1px solid rgba(59,130,246,.3)}
.ahc-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.ahc-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:480px}
.ahc-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ahc-panel-head i{color:var(--accent);margin-right:6px}
.ahc-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ahc-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:inherit;line-height:1.8;resize:none;background:var(--bg);color:var(--fg);box-sizing:border-box}
.ahc-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.8}
.ahc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;color:var(--muted)}
.ahc-empty i{font-size:48px;margin-bottom:14px;opacity:.4}
.ahc-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;color:var(--accent)}
.ahc-loading i{font-size:36px;margin-bottom:14px}
.ahc-summary{display:flex;gap:14px;flex-wrap:wrap;padding:12px 14px;background:var(--hover);border-radius:10px;margin-bottom:14px}
.ahc-summary-item{display:flex;flex-direction:column;gap:4px}
.ahc-summary-label{font-size:11px;color:var(--muted)}
.ahc-summary-val{font-size:14px;font-weight:600;color:var(--fg)}
.ahc-risk{display:inline-block;padding:2px 10px;border-radius:6px;font-size:13px;font-weight:600}
.ahc-risk-high{background:rgba(239,68,68,.15);color:#ef4444}
.ahc-risk-medium{background:rgba(245,158,11,.15);color:#f59e0b}
.ahc-risk-low{background:rgba(16,185,129,.15);color:#10b981}
.ahc-block{margin-bottom:18px}
.ahc-block h3{font-size:15px;color:var(--fg);margin:0 0 10px;padding-bottom:8px;border-bottom:1px dashed var(--line);display:flex;align-items:center;gap:8px}
.ahc-block h3 i{color:var(--accent)}
.ahc-block p{margin:0;color:var(--fg);line-height:1.8}
.ahc-risk-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.ahc-risk-item{border:1px solid var(--line);border-left-width:4px;border-radius:10px;padding:12px 14px;background:var(--panel)}
.ahc-risk-item-high{border-left-color:#ef4444}
.ahc-risk-item-medium{border-left-color:#f59e0b}
.ahc-risk-item-low{border-left-color:#10b981}
.ahc-risk-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ahc-risk-tag{display:inline-block;padding:1px 8px;border-radius:4px;font-size:11px;font-weight:600;color:var(--panel)}
.ahc-risk-tag.ahc-risk-high{background:#ef4444}
.ahc-risk-tag.ahc-risk-medium{background:#f59e0b}
.ahc-risk-tag.ahc-risk-low{background:#10b981}
.ahc-risk-title{font-size:14px;font-weight:600;color:var(--fg)}
.ahc-risk-clause,.ahc-risk-desc,.ahc-risk-suggest{font-size:13px;line-height:1.7;margin-top:6px;color:var(--fg)}
.ahc-risk-clause b,.ahc-risk-desc b,.ahc-risk-suggest b{color:var(--muted);font-weight:500;margin-right:4px}
.ahc-risk-clause{color:var(--muted);font-style:italic}
.ahc-risk-suggest{color:var(--accent)}
.ahc-missing-list,.ahc-vague-list{margin:0;padding-left:20px;color:var(--fg);line-height:1.9}
.ahc-pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:13px;line-height:1.8;background:var(--hover);padding:12px;border-radius:8px;color:var(--fg);margin:0}
.ahc-disclaimer{margin-top:16px;padding:10px 14px;background:var(--hover);border-radius:8px;font-size:12px;color:var(--muted);line-height:1.6}
.ahc-disclaimer i{margin-right:6px;color:var(--accent)}
.ahc-tips{list-style:none;padding:0;margin:0}
.ahc-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ahc-tips li:last-child{border-bottom:none}
.ahc-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ahc-tips b{color:var(--fg)}
@media (max-width:820px){
  .ahc-panels{grid-template-columns:1fr}
  .ahc-panel-box{min-height:320px}
}
@media (max-width:640px){
  .ahc-row{flex-direction:column;align-items:stretch}
  .ahc-select{width:100%}
  .ahc-btn{flex:1;justify-content:center}
  .ahc-summary{flex-direction:column;gap:8px}
}/* ===== AI简历优化 (ajl-) ===== */
.ajl-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ajl-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ajl-row:last-of-type{margin-bottom:0}
.ajl-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ajl-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ajl-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ajl-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ajl-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ajl-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer;user-select:none;padding-right:8px}
.ajl-check input{cursor:pointer;accent-color:var(--accent)}
.ajl-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ajl-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ajl-btn:hover{border-color:var(--accent);color:var(--accent)}
.ajl-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.ajl-btn-primary:hover{opacity:.9;color:var(--panel)}
.ajl-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ajl-btn-sm{padding:6px 12px;font-size:12px;margin-top:10px}
.ajl-status{margin-bottom:12px;min-height:0}
.ajl-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ajl-st i{margin-right:6px}
.ajl-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ajl-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ajl-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ajl-st-info{background:rgba(59,130,246,.12);color:var(--accent);border:1px solid rgba(59,130,246,.3)}
.ajl-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.ajl-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:480px}
.ajl-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ajl-panel-head i{color:var(--accent);margin-right:6px}
.ajl-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ajl-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:inherit;line-height:1.8;resize:none;background:var(--bg);color:var(--fg);box-sizing:border-box}
.ajl-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.8}
.ajl-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;color:var(--muted)}
.ajl-empty i{font-size:48px;margin-bottom:14px;opacity:.4}
.ajl-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;color:var(--accent)}
.ajl-loading i{font-size:36px;margin-bottom:14px}
.ajl-block{margin-bottom:18px}
.ajl-block h3{font-size:15px;color:var(--fg);margin:0 0 10px;padding-bottom:8px;border-bottom:1px dashed var(--line);display:flex;align-items:center;gap:8px}
.ajl-block h3 i{color:var(--accent)}
.ajl-block p{margin:0;color:var(--fg);line-height:1.8}
.ajl-pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:13px;line-height:1.9;background:var(--hover);padding:14px;border-radius:8px;color:var(--fg);margin:0}
.ajl-change-list{margin:0;padding-left:20px;color:var(--fg);line-height:1.9}
.ajl-change-list b{color:var(--accent)}
.ajl-tip-list{margin:0;padding-left:20px;color:var(--fg);line-height:1.9}
.ajl-disclaimer{margin-top:16px;padding:10px 14px;background:var(--hover);border-radius:8px;font-size:12px;color:var(--muted);line-height:1.6}
.ajl-disclaimer i{margin-right:6px;color:var(--accent)}
.ajl-tips{list-style:none;padding:0;margin:0}
.ajl-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ajl-tips li:last-child{border-bottom:none}
.ajl-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ajl-tips b{color:var(--fg)}
@media (max-width:820px){
  .ajl-panels{grid-template-columns:1fr}
  .ajl-panel-box{min-height:320px}
}
@media (max-width:640px){
  .ajl-row{flex-direction:column;align-items:stretch}
  .ajl-input,.ajl-select{width:100%;min-width:0}
  .ajl-btn{flex:1;justify-content:center}
}/* ===== AI教案生成 (aja-) ===== */
.aja-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.aja-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.aja-row:last-of-type{margin-bottom:0}
.aja-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.aja-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.aja-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aja-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.aja-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aja-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.aja-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aja-btn:hover{border-color:var(--accent);color:var(--accent)}
.aja-btn-primary{background:var(--accent);border-color:var(--accent);color:var(--panel)}
.aja-btn-primary:hover{opacity:.9;color:var(--panel)}
.aja-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.aja-status{margin-bottom:12px;min-height:0}
.aja-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.aja-st i{margin-right:6px}
.aja-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.aja-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.aja-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.aja-st-info{background:rgba(59,130,246,.12);color:var(--accent);border:1px solid rgba(59,130,246,.3)}
.aja-output{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;min-height:400px;color:var(--fg);font-size:14px;line-height:1.8}
.aja-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:360px;color:var(--muted)}
.aja-empty i{font-size:48px;margin-bottom:14px;opacity:.4}
.aja-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:360px;color:var(--accent)}
.aja-loading i{font-size:36px;margin-bottom:14px}
.aja-summary{display:flex;gap:14px;flex-wrap:wrap;padding:12px 14px;background:var(--hover);border-radius:10px;margin-bottom:16px}
.aja-summary-item{display:flex;flex-direction:column;gap:4px}
.aja-summary-label{font-size:11px;color:var(--muted)}
.aja-summary-val{font-size:14px;font-weight:600;color:var(--fg)}
.aja-block{margin-bottom:18px}
.aja-block h3{font-size:15px;color:var(--fg);margin:0 0 10px;padding-bottom:8px;border-bottom:1px dashed var(--line);display:flex;align-items:center;gap:8px}
.aja-block h3 i{color:var(--accent)}
.aja-block p{margin:0;color:var(--fg);line-height:1.8}
.aja-list{margin:0;padding-left:20px;color:var(--fg);line-height:1.9}
.aja-pre{white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.8;background:var(--hover);padding:14px;border-radius:8px;color:var(--fg);margin:0}
.aja-step{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px;background:var(--bg)}
.aja-step-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.aja-step-num{width:24px;height:24px;flex-shrink:0;border-radius:50%;background:var(--accent);color:var(--panel);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}
.aja-step-title{font-size:14px;font-weight:600;color:var(--fg);flex:1}
.aja-step-time{font-size:12px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.aja-step-body{font-size:13px;color:var(--fg);line-height:1.8;margin-bottom:6px}
.aja-step-intent{font-size:12px;color:var(--muted);line-height:1.7;padding-top:6px;border-top:1px dashed var(--line)}
.aja-step-intent b{color:var(--accent);font-weight:500}
.aja-disclaimer{margin-top:16px;padding:10px 14px;background:var(--hover);border-radius:8px;font-size:12px;color:var(--muted);line-height:1.6}
.aja-disclaimer i{margin-right:6px;color:var(--accent)}
.aja-tips{list-style:none;padding:0;margin:0}
.aja-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aja-tips li:last-child{border-bottom:none}
.aja-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.aja-tips b{color:var(--fg)}
@media (max-width:640px){
  .aja-row{flex-direction:column;align-items:stretch}
  .aja-input,.aja-select{width:100%;min-width:0}
  .aja-btn{flex:1;justify-content:center}
  .aja-summary{flex-direction:column;gap:8px}
  .aja-output{padding:14px}
}

/* ===== cURL 转代码（前缀 czd-）===== */
.czd-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.czd-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.czd-row label{color:var(--fg);font-weight:600;min-width:80px;padding-top:8px}
.czd-input{flex:1;width:100%;min-height:140px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.6;resize:vertical;box-sizing:border-box}
.czd-input:focus{outline:none;border-color:var(--accent)}
.czd-select{flex:1;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);font-size:14px;max-width:300px}
.czd-actions{gap:8px}
.czd-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);font-size:14px;cursor:pointer;transition:all .2s}
.czd-btn:hover{background:var(--hover);border-color:var(--accent)}
.czd-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.czd-btn-primary:hover{opacity:.9;background:var(--accent)}
.czd-output{flex:1;min-height:160px;margin:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--hover);color:var(--fg);font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.6;overflow-x:auto;white-space:pre;box-sizing:border-box}
@media (max-width:768px){
  .czd-row{flex-direction:column;align-items:stretch;gap:6px}
  .czd-row label{padding-top:0;min-width:auto}
  .czd-select{max-width:100%}
  .czd-actions{flex-direction:row;flex-wrap:wrap}
  .czd-btn{flex:1;justify-content:center}
}
/* ===== MBTI 人格测试（前缀 mbti-）===== */
.mbti-wrap{max-width:860px;margin:0 auto}
.mbti-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px}
.mbti-hero{text-align:center;margin-bottom:20px}
.mbti-hero i{font-size:56px;color:var(--accent);margin-bottom:12px;display:inline-block}
.mbti-hero h2{font-size:24px;color:var(--fg);margin:0 0 8px}
.mbti-hero p{color:var(--muted);font-size:14px;margin:0}
.mbti-intro{list-style:none;padding:0;margin:20px 0;display:flex;flex-direction:column;gap:10px}
.mbti-intro li{background:var(--hover);padding:12px 16px;border-radius:8px;font-size:14px;color:var(--fg);line-height:1.6}
.mbti-intro b{color:var(--accent);margin-right:6px}
.mbti-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);font-size:14px;cursor:pointer;transition:.15s;font-weight:500}
.mbti-btn:hover{border-color:var(--accent);color:var(--accent)}
.mbti-btn:disabled{opacity:.4;cursor:not-allowed}
.mbti-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.mbti-btn-primary:hover{opacity:.9;color:#fff}
.mbti-btn-lg{padding:14px 32px;font-size:16px;display:flex;margin:0 auto}
.mbti-note{text-align:center;color:var(--muted);font-size:12px;margin-top:14px}
.mbti-progress{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.mbti-progress-bar{flex:1;height:6px;background:var(--hover);border-radius:3px;overflow:hidden}
.mbti-progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}
.mbti-progress-text{font-size:13px;color:var(--muted);font-family:monospace;min-width:60px;text-align:right}
.mbti-question{font-size:18px;color:var(--fg);font-weight:600;margin-bottom:20px;line-height:1.5}
.mbti-options{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.mbti-option{padding:16px 20px;border:2px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-size:15px;line-height:1.5}
.mbti-option:hover{border-color:var(--accent);background:var(--hover)}
.mbti-option-on{border-color:var(--accent);background:var(--accent-soft);font-weight:600}
.mbti-nav{display:flex;justify-content:space-between;gap:12px}
.mbti-type-hero{text-align:center;padding:24px;border:3px solid var(--accent);border-radius:12px;margin-bottom:24px}
.mbti-type-code{font-size:56px;font-weight:900;letter-spacing:4px;line-height:1;margin-bottom:8px}
.mbti-type-name{font-size:20px;color:var(--fg);font-weight:600;margin-bottom:12px;display:flex;align-items:center;justify-content:center;gap:10px}
.mbti-type-tag{color:#fff;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500}
.mbti-type-desc{color:var(--muted);font-size:14px;line-height:1.7;margin:0}
.mbti-bars{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}
.mbti-bar-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--fg)}
.mbti-bar-label{width:60px;flex-shrink:0}
.mbti-bar{flex:1;height:10px;background:var(--hover);border-radius:5px;overflow:hidden}
.mbti-bar-fill{height:100%;border-radius:5px;transition:width .5s}
.mbti-bar-val{width:44px;text-align:center;font-family:monospace;color:var(--muted);flex-shrink:0}
.mbti-detail{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px}
.mbti-detail-item{background:var(--hover);padding:16px;border-radius:10px}
.mbti-detail-item h3{font-size:14px;color:var(--accent);margin:0 0 8px;display:flex;align-items:center;gap:6px}
.mbti-detail-item p{font-size:14px;color:var(--fg);line-height:1.7;margin:0}
.mbti-result-actions{display:flex;gap:12px;justify-content:center}
@media (max-width:640px){
  .mbti-card{padding:18px}
  .mbti-type-code{font-size:40px}
  .mbti-type-name{font-size:16px;flex-wrap:wrap}
  .mbti-detail{grid-template-columns:1fr}
  .mbti-bar-row{gap:6px;font-size:12px}
  .mbti-bar-label{width:44px}
  .mbti-bar-val{width:36px}
  .mbti-nav{flex-direction:column}
  .mbti-nav .mbti-btn{width:100%}
  .mbti-result-actions{flex-direction:column}
  .mbti-result-actions .mbti-btn{width:100%}
}/* ===== 九型人格测试（前缀 jxrg-）===== */
.jxrg-wrap{max-width:860px;margin:0 auto}
.jxrg-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px}
.jxrg-hero{text-align:center;margin-bottom:20px}
.jxrg-hero i{font-size:56px;color:var(--accent);margin-bottom:12px;display:inline-block}
.jxrg-hero h2{font-size:24px;color:var(--fg);margin:0 0 8px}
.jxrg-hero p{color:var(--muted);font-size:14px;margin:0}
.jxrg-intro{list-style:none;padding:0;margin:20px 0;display:flex;flex-direction:column;gap:10px}
.jxrg-intro li{background:var(--hover);padding:12px 16px;border-radius:8px;font-size:14px;color:var(--fg);line-height:1.6}
.jxrg-intro b{color:var(--accent);margin-right:6px}
.jxrg-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);font-size:14px;cursor:pointer;transition:.15s;font-weight:500}
.jxrg-btn:hover{border-color:var(--accent);color:var(--accent)}
.jxrg-btn:disabled{opacity:.4;cursor:not-allowed}
.jxrg-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.jxrg-btn-primary:hover{opacity:.9;color:#fff}
.jxrg-btn-lg{padding:14px 32px;font-size:16px;display:flex;margin:0 auto}
.jxrg-note{text-align:center;color:var(--muted);font-size:12px;margin-top:14px}
.jxrg-progress{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.jxrg-progress-bar{flex:1;height:6px;background:var(--hover);border-radius:3px;overflow:hidden}
.jxrg-progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .3s}
.jxrg-progress-text{font-size:13px;color:var(--muted);font-family:monospace;min-width:60px;text-align:right}
.jxrg-question{font-size:18px;color:var(--fg);font-weight:600;margin-bottom:20px;line-height:1.5}
.jxrg-options{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.jxrg-option{padding:16px 20px;border:2px solid var(--line);border-radius:10px;background:var(--panel);color:var(--fg);cursor:pointer;transition:.15s;font-size:15px;line-height:1.5}
.jxrg-option:hover{border-color:var(--accent);background:var(--hover)}
.jxrg-option-on{border-color:var(--accent);background:var(--accent-soft);font-weight:600}
.jxrg-nav{display:flex;justify-content:space-between;gap:12px}
.jxrg-type-hero{text-align:center;padding:24px;border:3px solid var(--accent);border-radius:12px;margin-bottom:24px}
.jxrg-type-num{font-size:56px;font-weight:900;line-height:1;margin-bottom:8px}
.jxrg-type-name{font-size:20px;color:var(--fg);font-weight:600;margin-bottom:12px;display:flex;align-items:center;justify-content:center;gap:10px}
.jxrg-type-tag{color:#fff;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500}
.jxrg-type-desc{color:var(--muted);font-size:14px;line-height:1.7;margin:0}
.jxrg-bars{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}
.jxrg-bar-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--fg)}
.jxrg-bar-label{width:90px;flex-shrink:0}
.jxrg-bar{flex:1;height:10px;background:var(--hover);border-radius:5px;overflow:hidden}
.jxrg-bar-fill{height:100%;border-radius:5px;transition:width .5s}
.jxrg-bar-val{width:44px;text-align:center;font-family:monospace;color:var(--muted);flex-shrink:0}
.jxrg-detail{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px}
.jxrg-detail-item{background:var(--hover);padding:16px;border-radius:10px}
.jxrg-detail-item h3{font-size:14px;color:var(--accent);margin:0 0 8px;display:flex;align-items:center;gap:6px}
.jxrg-detail-item p{font-size:14px;color:var(--fg);line-height:1.7;margin:0}
.jxrg-result-actions{display:flex;gap:12px;justify-content:center}
@media (max-width:640px){
  .jxrg-card{padding:18px}
  .jxrg-type-num{font-size:40px}
  .jxrg-type-name{font-size:16px;flex-wrap:wrap}
  .jxrg-detail{grid-template-columns:1fr}
  .jxrg-bar-row{gap:6px;font-size:12px}
  .jxrg-bar-label{width:70px}
  .jxrg-bar-val{width:36px}
  .jxrg-nav{flex-direction:column}
  .jxrg-nav .jxrg-btn{width:100%}
  .jxrg-result-actions{flex-direction:column}
  .jxrg-result-actions .jxrg-btn{width:100%}
}/* ===== 今日运势（前缀 jrys-）===== */
.jrys-wrap{max-width:820px;margin:0 auto}
.jrys-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:16px}
.jrys-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.jrys-label{font-size:14px;color:var(--fg);font-weight:600;min-width:80px}
.jrys-input{flex:1;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font-size:14px;outline:none}
.jrys-input:focus{border-color:var(--accent)}
.jrys-actions{display:flex;gap:10px;flex-wrap:wrap}
.jrys-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);font-size:14px;cursor:pointer;transition:.15s;font-weight:500}
.jrys-btn:hover{border-color:var(--accent);color:var(--accent)}
.jrys-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.jrys-btn-primary:hover{opacity:.9;color:#fff}
.jrys-note{margin:12px 0 0;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}
.jrys-result{display:block}
.jrys-hero{background:linear-gradient(135deg,var(--accent),#8e24aa);color:#fff;border-radius:12px;padding:28px 20px;text-align:center;margin-bottom:16px}
.jrys-date{font-size:13px;opacity:.9;margin-bottom:10px}
.jrys-score{display:flex;align-items:baseline;justify-content:center;gap:4px;margin-bottom:4px}
.jrys-score-num{font-size:64px;font-weight:900;line-height:1}
.jrys-score-unit{font-size:20px;opacity:.9}
.jrys-score-label{font-size:13px;opacity:.85}
.jrys-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.jrys-item{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}
.jrys-item-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.jrys-item-body{flex:1;min-width:0}
.jrys-item-title{font-size:14px;color:var(--fg);font-weight:600;margin-bottom:4px}
.jrys-item-stars{font-size:16px;color:#f9a825;letter-spacing:2px}
.jrys-lucky{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}
.jrys-lucky-item{background:var(--hover);border-radius:10px;padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.jrys-lucky-label{font-size:12px;color:var(--muted);flex-shrink:0}
.jrys-lucky-val{font-size:14px;color:var(--fg);font-weight:600}
.jrys-advice{background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:8px;padding:14px 16px;font-size:14px;color:var(--fg);line-height:1.7;margin-bottom:14px}
.jrys-advice i{color:var(--accent);margin-right:6px}
.jrys-disclaimer{font-size:12px;color:var(--muted);text-align:center;line-height:1.6}
.jrys-disclaimer i{margin-right:4px}
.jrys-tips{list-style:none;padding:0;margin:0}
.jrys-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.jrys-tips li:last-child{border-bottom:none}
.jrys-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.jrys-tips b{color:var(--fg)}
@media (max-width:640px){
  .jrys-card{padding:16px}
  .jrys-score-num{font-size:48px}
  .jrys-grid{grid-template-columns:1fr}
  .jrys-lucky{grid-template-columns:1fr}
  .jrys-row{flex-direction:column;align-items:stretch;gap:6px}
  .jrys-label{min-width:auto}
  .jrys-actions{flex-direction:column}
  .jrys-btn{width:100%}
}/* ===== AI周报生成（前缀 azb-）===== */
.azb-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.azb-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.azb-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.azb-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.azb-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.azb-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.azb-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.azb-btn:hover{border-color:var(--accent);color:var(--accent)}
.azb-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.azb-btn-primary:hover{opacity:.9;color:#fff}
.azb-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.azb-status{margin-bottom:12px}
.azb-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.azb-st i{margin-right:6px}
.azb-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.azb-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.azb-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.azb-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.azb-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.azb-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:480px}
.azb-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.azb-panel-head i{color:var(--accent);margin-right:6px}
.azb-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.azb-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:inherit;line-height:1.8;resize:none;background:var(--bg);color:var(--fg);box-sizing:border-box}
.azb-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.8;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.azb-tips{list-style:none;padding:0;margin:0}
.azb-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.azb-tips li:last-child{border-bottom:none}
.azb-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.azb-tips b{color:var(--fg)}
@media (max-width:820px){
  .azb-panels{grid-template-columns:1fr}
  .azb-panel-box{min-height:320px}
}
@media (max-width:640px){
  .azb-row{flex-direction:column;align-items:stretch}
  .azb-select{width:100%}
  .azb-btn{flex:1;justify-content:center}
}/* ===== AI会议纪要（前缀 ahy-）===== */
.ahy-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ahy-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ahy-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ahy-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ahy-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ahy-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ahy-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ahy-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ahy-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ahy-btn:hover{border-color:var(--accent);color:var(--accent)}
.ahy-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ahy-btn-primary:hover{opacity:.9;color:#fff}
.ahy-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ahy-status{margin-bottom:12px}
.ahy-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ahy-st i{margin-right:6px}
.ahy-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ahy-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ahy-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ahy-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ahy-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.ahy-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px}
.ahy-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ahy-panel-head i{color:var(--accent);margin-right:6px}
.ahy-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ahy-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:inherit;line-height:1.8;resize:none;background:var(--bg);color:var(--fg);box-sizing:border-box}
.ahy-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.8;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.ahy-tips{list-style:none;padding:0;margin:0}
.ahy-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ahy-tips li:last-child{border-bottom:none}
.ahy-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ahy-tips b{color:var(--fg)}
@media (max-width:820px){
  .ahy-panels{grid-template-columns:1fr}
  .ahy-panel-box{min-height:340px}
}
@media (max-width:640px){
  .ahy-row{flex-direction:column;align-items:stretch}
  .ahy-input{width:100%}
  .ahy-select{width:100%}
  .ahy-btn{flex:1;justify-content:center}
}/* ===== AI邮件润色（前缀 ayr-）===== */
.ayr-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ayr-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ayr-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ayr-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ayr-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ayr-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ayr-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ayr-btn:hover{border-color:var(--accent);color:var(--accent)}
.ayr-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ayr-btn-primary:hover{opacity:.9;color:#fff}
.ayr-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ayr-status{margin-bottom:12px}
.ayr-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ayr-st i{margin-right:6px}
.ayr-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ayr-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ayr-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ayr-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ayr-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.ayr-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:480px}
.ayr-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ayr-panel-head i{color:var(--accent);margin-right:6px}
.ayr-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ayr-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:inherit;line-height:1.8;resize:none;background:var(--bg);color:var(--fg);box-sizing:border-box}
.ayr-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.8;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.ayr-tips{list-style:none;padding:0;margin:0}
.ayr-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ayr-tips li:last-child{border-bottom:none}
.ayr-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ayr-tips b{color:var(--fg)}
@media (max-width:820px){
  .ayr-panels{grid-template-columns:1fr}
  .ayr-panel-box{min-height:340px}
}
@media (max-width:640px){
  .ayr-row{flex-direction:column;align-items:stretch}
  .ayr-select{width:100%}
  .ayr-btn{flex:1;justify-content:center}
}/* ===== AI报错解释（前缀 abc-）===== */
.abc-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.abc-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.abc-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.abc-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.abc-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.abc-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.abc-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.abc-btn:hover{border-color:var(--accent);color:var(--accent)}
.abc-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.abc-btn-primary:hover{opacity:.9;color:#fff}
.abc-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.abc-status{margin-bottom:12px}
.abc-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.abc-st i{margin-right:6px}
.abc-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.abc-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.abc-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.abc-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.abc-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.abc-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px}
.abc-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.abc-panel-head i{color:var(--accent);margin-right:6px}
.abc-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.abc-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.7;resize:none;background:var(--bg);color:var(--fg);box-sizing:border-box}
.abc-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:13px;line-height:1.8;white-space:pre-wrap;word-break:break-word;margin:0;font-family:ui-monospace,Menlo,Consolas,monospace}
.abc-tips{list-style:none;padding:0;margin:0}
.abc-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.abc-tips li:last-child{border-bottom:none}
.abc-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.abc-tips b{color:var(--fg)}
@media (max-width:820px){
  .abc-panels{grid-template-columns:1fr}
  .abc-panel-box{min-height:340px}
}
@media (max-width:640px){
  .abc-row{flex-direction:column;align-items:stretch}
  .abc-select{width:100%}
  .abc-btn{flex:1;justify-content:center}
}/* ===== AI简历筛选（前缀 ajs-）===== */
.ajs-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ajs-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ajs-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ajs-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ajs-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ajs-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ajs-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ajs-btn:hover{border-color:var(--accent);color:var(--accent)}
.ajs-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ajs-btn-primary:hover{opacity:.9;color:#fff}
.ajs-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ajs-status{margin-bottom:12px}
.ajs-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ajs-st i{margin-right:6px}
.ajs-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ajs-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ajs-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ajs-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ajs-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.ajs-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:300px}
.ajs-result-box{min-height:400px;margin-bottom:18px}
.ajs-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ajs-panel-head i{color:var(--accent);margin-right:6px}
.ajs-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ajs-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:inherit;line-height:1.8;resize:none;background:var(--bg);color:var(--fg);box-sizing:border-box;min-height:260px}
.ajs-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.8}
.ajs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:340px;color:var(--muted)}
.ajs-empty i{font-size:48px;margin-bottom:14px;opacity:.4}
.ajs-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:340px;color:var(--accent)}
.ajs-loading i{font-size:36px;margin-bottom:14px}
.ajs-summary{display:flex;align-items:center;gap:20px;padding:18px;background:var(--hover);border-radius:10px;margin-bottom:16px}
.ajs-score{width:90px;height:90px;border-radius:50%;display:flex;align-items:baseline;justify-content:center;flex-shrink:0;border:4px solid}
.ajs-score-num{font-size:32px;font-weight:900;line-height:1}
.ajs-score-unit{font-size:13px;opacity:.8;margin-left:2px}
.ajs-score-high{border-color:#10b981;color:#10b981}
.ajs-score-medium{border-color:#f59e0b;color:#f59e0b}
.ajs-score-low{border-color:#ef4444;color:#ef4444}
.ajs-summary-info{flex:1}
.ajs-summary-level{font-size:20px;font-weight:700;margin-bottom:6px}
.ajs-level-high{color:#10b981}
.ajs-level-medium{color:#f59e0b}
.ajs-level-low{color:#ef4444}
.ajs-summary-type{font-size:13px;color:var(--muted)}
.ajs-block{margin-bottom:18px}
.ajs-block h3{font-size:15px;color:var(--fg);margin:0 0 10px;padding-bottom:8px;border-bottom:1px dashed var(--line);display:flex;align-items:center;gap:8px}
.ajs-block h3 i{color:var(--accent)}
.ajs-block p{margin:0;color:var(--fg);line-height:1.8}
.ajs-list{margin:0;padding-left:20px;color:var(--fg);line-height:1.9}
.ajs-list-good li::marker{color:#10b981}
.ajs-list-bad li::marker{color:#ef4444}
.ajs-list-q li::marker{color:var(--accent)}
.ajs-pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:13px;line-height:1.8;background:var(--hover);padding:12px;border-radius:8px;color:var(--fg);margin:0}
.ajs-disclaimer{margin-top:16px;padding:10px 14px;background:var(--hover);border-radius:8px;font-size:12px;color:var(--muted);line-height:1.6}
.ajs-disclaimer i{margin-right:6px;color:var(--accent)}
.ajs-tips{list-style:none;padding:0;margin:0}
.ajs-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ajs-tips li:last-child{border-bottom:none}
.ajs-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ajs-tips b{color:var(--fg)}
@media (max-width:820px){
  .ajs-panels{grid-template-columns:1fr}
}
@media (max-width:640px){
  .ajs-row{flex-direction:column;align-items:stretch}
  .ajs-select{width:100%}
  .ajs-btn{flex:1;justify-content:center}
  .ajs-summary{flex-direction:column;text-align:center;gap:12px}
}/* ===== AI简历筛选 - 评分圆环修正 ===== */
.ajs-score{display:flex;align-items:center;justify-content:center;position:relative;padding:0}
.ajs-score-num{font-size:32px;font-weight:900;line-height:1;display:inline-block}
.ajs-score-unit{font-size:13px;opacity:.8;margin-left:2px;line-height:1;display:inline-block;position:relative;top:6px}

/* ===== AI法律咨询（前缀 afl-）===== */
.afl-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.afl-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.afl-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.afl-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.afl-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.afl-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.afl-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.afl-btn:hover{border-color:var(--accent);color:var(--accent)}
.afl-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.afl-btn-primary:hover{opacity:.9;color:#fff}
.afl-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.afl-status{margin-bottom:12px}
.afl-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.afl-st i{margin-right:6px}
.afl-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.afl-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.afl-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.afl-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.afl-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.afl-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px}
.afl-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.afl-panel-head i{color:var(--accent);margin-right:6px}
.afl-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.afl-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:inherit;line-height:1.8;resize:none;background:var(--bg);color:var(--fg);box-sizing:border-box}
.afl-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.8;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.afl-tips{list-style:none;padding:0;margin:0}
.afl-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.afl-tips li:last-child{border-bottom:none}
.afl-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.afl-tips b{color:var(--fg)}
@media (max-width:820px){
  .afl-panels{grid-template-columns:1fr}
  .afl-panel-box{min-height:340px}
}
@media (max-width:640px){
  .afl-row{flex-direction:column;align-items:stretch}
  .afl-select{width:100%}
  .afl-btn{flex:1;justify-content:center}
}/* ===== AI PPT大纲（前缀 apg-）===== */
.apg-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.apg-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.apg-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.apg-input{flex:1;min-width:240px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.apg-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.apg-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.apg-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.apg-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.apg-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.apg-btn:hover{border-color:var(--accent);color:var(--accent)}
.apg-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.apg-btn-primary:hover{opacity:.9;color:#fff}
.apg-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.apg-status{margin-bottom:12px}
.apg-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.apg-st i{margin-right:6px}
.apg-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.apg-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.apg-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.apg-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.apg-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.apg-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.apg-panel-head i{color:var(--accent);margin-right:6px}
.apg-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.apg-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.8;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.apg-tips{list-style:none;padding:0;margin:0}
.apg-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.apg-tips li:last-child{border-bottom:none}
.apg-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.apg-tips b{color:var(--fg)}
@media (max-width:640px){
  .apg-row{flex-direction:column;align-items:stretch}
  .apg-input,.apg-select{width:100%}
  .apg-btn{flex:1;justify-content:center}
}/* ===== AI思维导图（前缀 asw-）===== */
.asw-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.asw-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.asw-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.asw-input{flex:1;min-width:240px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.asw-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asw-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.asw-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asw-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.asw-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.asw-btn:hover{border-color:var(--accent);color:var(--accent)}
.asw-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asw-btn-primary:hover{opacity:.9;color:#fff}
.asw-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.asw-status{margin-bottom:12px}
.asw-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.asw-st i{margin-right:6px}
.asw-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.asw-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.asw-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.asw-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.asw-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.asw-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.asw-panel-head i{color:var(--accent);margin-right:6px}
.asw-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.asw-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.8;white-space:pre-wrap;word-break:break-word;margin:0;font-family:ui-monospace,Menlo,Consolas,monospace}
.asw-tips{list-style:none;padding:0;margin:0}
.asw-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.asw-tips li:last-child{border-bottom:none}
.asw-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.asw-tips b{color:var(--fg)}
@media (max-width:640px){
  .asw-row{flex-direction:column;align-items:stretch}
  .asw-input,.asw-select{width:100%}
  .asw-btn{flex:1;justify-content:center}
}/* ===== AI演讲稿（前缀 ayj-）===== */
.ayj-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ayj-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ayj-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ayj-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ayj-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ayj-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ayj-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ayj-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ayj-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ayj-btn:hover{border-color:var(--accent);color:var(--accent)}
.ayj-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ayj-btn-primary:hover{opacity:.9;color:#fff}
.ayj-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ayj-status{margin-bottom:12px}
.ayj-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ayj-st i{margin-right:6px}
.ayj-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ayj-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ayj-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ayj-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ayj-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.ayj-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ayj-panel-head i{color:var(--accent);margin-right:6px}
.ayj-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ayj-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.ayj-tips{list-style:none;padding:0;margin:0}
.ayj-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ayj-tips li:last-child{border-bottom:none}
.ayj-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ayj-tips b{color:var(--fg)}
@media (max-width:640px){
  .ayj-row{flex-direction:column;align-items:stretch}
  .ayj-input,.ayj-select{width:100%}
  .ayj-btn{flex:1;justify-content:center}
}/* ===== AI读书笔记（前缀 ads-）===== */
.ads-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ads-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ads-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ads-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ads-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ads-textarea{width:100%;min-height:120px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.ads-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ads-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ads-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ads-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ads-btn:hover{border-color:var(--accent);color:var(--accent)}
.ads-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ads-btn-primary:hover{opacity:.9;color:#fff}
.ads-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ads-status{margin-bottom:12px}
.ads-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ads-st i{margin-right:6px}
.ads-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ads-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ads-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ads-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ads-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.ads-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ads-panel-head i{color:var(--accent);margin-right:6px}
.ads-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ads-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.ads-tips{list-style:none;padding:0;margin:0}
.ads-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ads-tips li:last-child{border-bottom:none}
.ads-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ads-tips b{color:var(--fg)}
@media (max-width:640px){
  .ads-row{flex-direction:column;align-items:stretch}
  .ads-input,.ads-select{width:100%}
  .ads-btn{flex:1;justify-content:center}
}/* ===== AI面试题生成（前缀 ams-）===== */
.ams-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ams-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ams-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ams-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ams-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ams-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ams-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ams-checks{display:flex;flex-wrap:wrap;gap:14px}
.ams-checks label{font-size:13px;color:var(--fg);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.ams-checks input{cursor:pointer}
.ams-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ams-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ams-btn:hover{border-color:var(--accent);color:var(--accent)}
.ams-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ams-btn-primary:hover{opacity:.9;color:#fff}
.ams-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ams-status{margin-bottom:12px}
.ams-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ams-st i{margin-right:6px}
.ams-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ams-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ams-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ams-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ams-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.ams-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ams-panel-head i{color:var(--accent);margin-right:6px}
.ams-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ams-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.ams-tips{list-style:none;padding:0;margin:0}
.ams-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ams-tips li:last-child{border-bottom:none}
.ams-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ams-tips b{color:var(--fg)}
@media (max-width:640px){
  .ams-row{flex-direction:column;align-items:stretch}
  .ams-input,.ams-select{width:100%}
  .ams-btn{flex:1;justify-content:center}
  .ams-checks{gap:10px}
}/* ===== AI工作总结（前缀 agz-）===== */
.agz-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.agz-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.agz-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.agz-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.agz-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.agz-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.agz-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.agz-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.agz-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.agz-btn:hover{border-color:var(--accent);color:var(--accent)}
.agz-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.agz-btn-primary:hover{opacity:.9;color:#fff}
.agz-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.agz-status{margin-bottom:12px}
.agz-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.agz-st i{margin-right:6px}
.agz-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.agz-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.agz-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.agz-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.agz-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.agz-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:480px}
.agz-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.agz-panel-head i{color:var(--accent);margin-right:6px}
.agz-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.agz-textarea{flex:1;width:100%;border:none;outline:none;padding:14px;font-size:13px;font-family:inherit;line-height:1.8;resize:none;background:var(--bg);color:var(--fg);box-sizing:border-box}
.agz-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.agz-tips{list-style:none;padding:0;margin:0}
.agz-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.agz-tips li:last-child{border-bottom:none}
.agz-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.agz-tips b{color:var(--fg)}
@media (max-width:820px){
  .agz-panels{grid-template-columns:1fr}
  .agz-panel-box{min-height:340px}
}
@media (max-width:640px){
  .agz-row{flex-direction:column;align-items:stretch}
  .agz-input,.agz-select{width:100%}
  .agz-btn{flex:1;justify-content:center}
}/* ===== AI竞品分析（前缀 ajp-）===== */
.ajp-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ajp-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ajp-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ajp-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ajp-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ajp-textarea{width:100%;min-height:100px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.ajp-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ajp-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ajp-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ajp-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ajp-btn:hover{border-color:var(--accent);color:var(--accent)}
.ajp-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ajp-btn-primary:hover{opacity:.9;color:#fff}
.ajp-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ajp-status{margin-bottom:12px}
.ajp-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ajp-st i{margin-right:6px}
.ajp-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ajp-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ajp-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ajp-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ajp-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.ajp-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ajp-panel-head i{color:var(--accent);margin-right:6px}
.ajp-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ajp-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.ajp-tips{list-style:none;padding:0;margin:0}
.ajp-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ajp-tips li:last-child{border-bottom:none}
.ajp-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ajp-tips b{color:var(--fg)}
@media (max-width:640px){
  .ajp-row{flex-direction:column;align-items:stretch}
  .ajp-input,.ajp-select{width:100%}
  .ajp-btn{flex:1;justify-content:center}
}/* ===== AI性格分析（前缀 axf-）===== */
.axf-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.axf-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.axf-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.axf-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.axf-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.axf-textarea{width:100%;min-height:160px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.axf-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.axf-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.axf-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.axf-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.axf-btn:hover{border-color:var(--accent);color:var(--accent)}
.axf-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.axf-btn-primary:hover{opacity:.9;color:#fff}
.axf-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.axf-status{margin-bottom:12px}
.axf-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.axf-st i{margin-right:6px}
.axf-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.axf-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.axf-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.axf-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.axf-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.axf-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.axf-panel-head i{color:var(--accent);margin-right:6px}
.axf-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.axf-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.axf-tips{list-style:none;padding:0;margin:0}
.axf-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.axf-tips li:last-child{border-bottom:none}
.axf-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.axf-tips b{color:var(--fg)}
@media (max-width:640px){
  .axf-row{flex-direction:column;align-items:stretch}
  .axf-input,.axf-select{width:100%}
  .axf-btn{flex:1;justify-content:center}
}/* ===== AI旅游攻略（前缀 aly-）===== */
.aly-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.aly-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.aly-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.aly-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.aly-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aly-textarea{width:100%;min-height:80px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.aly-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.aly-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aly-checks{display:flex;flex-wrap:wrap;gap:14px}
.aly-checks label{font-size:13px;color:var(--fg);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.aly-checks input{cursor:pointer}
.aly-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.aly-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aly-btn:hover{border-color:var(--accent);color:var(--accent)}
.aly-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aly-btn-primary:hover{opacity:.9;color:#fff}
.aly-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.aly-status{margin-bottom:12px}
.aly-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.aly-st i{margin-right:6px}
.aly-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.aly-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.aly-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.aly-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.aly-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.aly-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.aly-panel-head i{color:var(--accent);margin-right:6px}
.aly-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.aly-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.aly-tips{list-style:none;padding:0;margin:0}
.aly-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aly-tips li:last-child{border-bottom:none}
.aly-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.aly-tips b{color:var(--fg)}
@media (max-width:640px){
  .aly-row{flex-direction:column;align-items:stretch}
  .aly-input,.aly-select{width:100%}
  .aly-btn{flex:1;justify-content:center}
  .aly-checks{gap:10px}
}/* ===== AI健康建议（前缀 ajk-）===== */
.ajk-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ajk-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ajk-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ajk-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ajk-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ajk-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.ajk-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ajk-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ajk-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ajk-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ajk-btn:hover{border-color:var(--accent);color:var(--accent)}
.ajk-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ajk-btn-primary:hover{opacity:.9;color:#fff}
.ajk-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ajk-status{margin-bottom:12px}
.ajk-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ajk-st i{margin-right:6px}
.ajk-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ajk-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ajk-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ajk-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ajk-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.ajk-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ajk-panel-head i{color:var(--accent);margin-right:6px}
.ajk-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ajk-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.ajk-tips{list-style:none;padding:0;margin:0}
.ajk-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ajk-tips li:last-child{border-bottom:none}
.ajk-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ajk-tips b{color:var(--fg)}
@media (max-width:640px){
  .ajk-row{flex-direction:column;align-items:stretch}
  .ajk-input,.ajk-select{width:100%}
  .ajk-btn{flex:1;justify-content:center}
}/* ===== AI菜谱推荐（前缀 acp-）===== */
.acp-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.acp-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.acp-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.acp-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.acp-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.acp-textarea{width:100%;min-height:100px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.acp-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.acp-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.acp-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.acp-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.acp-btn:hover{border-color:var(--accent);color:var(--accent)}
.acp-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.acp-btn-primary:hover{opacity:.9;color:#fff}
.acp-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.acp-status{margin-bottom:12px}
.acp-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.acp-st i{margin-right:6px}
.acp-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.acp-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.acp-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.acp-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.acp-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.acp-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.acp-panel-head i{color:var(--accent);margin-right:6px}
.acp-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.acp-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.acp-tips{list-style:none;padding:0;margin:0}
.acp-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.acp-tips li:last-child{border-bottom:none}
.acp-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.acp-tips b{color:var(--fg)}
@media (max-width:640px){
  .acp-row{flex-direction:column;align-items:stretch}
  .acp-input,.acp-select{width:100%}
  .acp-btn{flex:1;justify-content:center}
}/* ===== AI运动计划（前缀 ayd-）===== */
.ayd-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ayd-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ayd-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ayd-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ayd-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ayd-textarea{width:100%;min-height:100px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.ayd-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ayd-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ayd-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ayd-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ayd-btn:hover{border-color:var(--accent);color:var(--accent)}
.ayd-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ayd-btn-primary:hover{opacity:.9;color:#fff}
.ayd-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ayd-status{margin-bottom:12px}
.ayd-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ayd-st i{margin-right:6px}
.ayd-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ayd-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ayd-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ayd-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ayd-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.ayd-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ayd-panel-head i{color:var(--accent);margin-right:6px}
.ayd-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ayd-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.ayd-tips{list-style:none;padding:0;margin:0}
.ayd-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ayd-tips li:last-child{border-bottom:none}
.ayd-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ayd-tips b{color:var(--fg)}
@media (max-width:640px){
  .ayd-row{flex-direction:column;align-items:stretch}
  .ayd-input,.ayd-select{width:100%}
  .ayd-btn{flex:1;justify-content:center}
}/* ===== AI学习计划（前缀 axj-）===== */
.axj-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.axj-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.axj-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.axj-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.axj-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.axj-textarea{width:100%;min-height:80px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.axj-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.axj-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.axj-checks{display:flex;flex-wrap:wrap;gap:14px}
.axj-checks label{font-size:13px;color:var(--fg);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.axj-checks input{cursor:pointer}
.axj-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.axj-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.axj-btn:hover{border-color:var(--accent);color:var(--accent)}
.axj-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.axj-btn-primary:hover{opacity:.9;color:#fff}
.axj-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.axj-status{margin-bottom:12px}
.axj-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.axj-st i{margin-right:6px}
.axj-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.axj-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.axj-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.axj-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.axj-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.axj-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.axj-panel-head i{color:var(--accent);margin-right:6px}
.axj-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.axj-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.axj-tips{list-style:none;padding:0;margin:0}
.axj-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.axj-tips li:last-child{border-bottom:none}
.axj-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.axj-tips b{color:var(--fg)}
@media (max-width:640px){
  .axj-row{flex-direction:column;align-items:stretch}
  .axj-input,.axj-select{width:100%}
  .axj-btn{flex:1;justify-content:center}
  .axj-checks{gap:10px}
}/* ===== AI职业规划（前缀 azg-）===== */
.azg-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.azg-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.azg-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.azg-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.azg-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.azg-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.azg-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.azg-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.azg-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.azg-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.azg-btn:hover{border-color:var(--accent);color:var(--accent)}
.azg-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.azg-btn-primary:hover{opacity:.9;color:#fff}
.azg-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.azg-status{margin-bottom:12px}
.azg-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.azg-st i{margin-right:6px}
.azg-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.azg-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.azg-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.azg-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.azg-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.azg-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.azg-panel-head i{color:var(--accent);margin-right:6px}
.azg-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.azg-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.azg-tips{list-style:none;padding:0;margin:0}
.azg-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.azg-tips li:last-child{border-bottom:none}
.azg-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.azg-tips b{color:var(--fg)}
@media (max-width:640px){
  .azg-row{flex-direction:column;align-items:stretch}
  .azg-input,.azg-select{width:100%}
  .azg-btn{flex:1;justify-content:center}
}/* ===== AI时间管理（前缀 asj-）===== */
.asj-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.asj-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.asj-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.asj-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.asj-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asj-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.asj-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.asj-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asj-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.asj-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.asj-btn:hover{border-color:var(--accent);color:var(--accent)}
.asj-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asj-btn-primary:hover{opacity:.9;color:#fff}
.asj-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.asj-status{margin-bottom:12px}
.asj-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.asj-st i{margin-right:6px}
.asj-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.asj-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.asj-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.asj-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.asj-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.asj-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.asj-panel-head i{color:var(--accent);margin-right:6px}
.asj-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.asj-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.asj-tips{list-style:none;padding:0;margin:0}
.asj-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.asj-tips li:last-child{border-bottom:none}
.asj-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.asj-tips b{color:var(--fg)}
@media (max-width:640px){
  .asj-row{flex-direction:column;align-items:stretch}
  .asj-input,.asj-select{width:100%}
  .asj-btn{flex:1;justify-content:center}
}/* ===== AI商业计划书（前缀 asy-）===== */
.asy-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.asy-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.asy-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.asy-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.asy-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asy-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.asy-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.asy-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asy-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.asy-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.asy-btn:hover{border-color:var(--accent);color:var(--accent)}
.asy-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asy-btn-primary:hover{opacity:.9;color:#fff}
.asy-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.asy-status{margin-bottom:12px}
.asy-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.asy-st i{margin-right:6px}
.asy-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.asy-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.asy-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.asy-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.asy-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.asy-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.asy-panel-head i{color:var(--accent);margin-right:6px}
.asy-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.asy-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.asy-tips{list-style:none;padding:0;margin:0}
.asy-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.asy-tips li:last-child{border-bottom:none}
.asy-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.asy-tips b{color:var(--fg)}
@media (max-width:640px){
  .asy-row{flex-direction:column;align-items:stretch}
  .asy-input,.asy-select{width:100%}
  .asy-btn{flex:1;justify-content:center}
}/* ===== AI数据分析（前缀 asd-）===== */
.asd-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.asd-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.asd-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.asd-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.asd-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asd-textarea{width:100%;min-height:180px;resize:vertical;line-height:1.7;font-family:ui-monospace,Menlo,Consolas,monospace;box-sizing:border-box}
.asd-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.asd-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asd-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.asd-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.asd-btn:hover{border-color:var(--accent);color:var(--accent)}
.asd-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asd-btn-primary:hover{opacity:.9;color:#fff}
.asd-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.asd-status{margin-bottom:12px}
.asd-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.asd-st i{margin-right:6px}
.asd-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.asd-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.asd-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.asd-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.asd-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.asd-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.asd-panel-head i{color:var(--accent);margin-right:6px}
.asd-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.asd-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.asd-tips{list-style:none;padding:0;margin:0}
.asd-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.asd-tips li:last-child{border-bottom:none}
.asd-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.asd-tips b{color:var(--fg)}
@media (max-width:640px){
  .asd-row{flex-direction:column;align-items:stretch}
  .asd-input,.asd-select{width:100%}
  .asd-btn{flex:1;justify-content:center}
}/* ===== AI颜色搭配（前缀 ayd-）===== */
.ayd-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ayd-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ayd-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ayd-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ayd-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ayd-textarea{width:100%;min-height:80px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.ayd-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ayd-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ayd-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ayd-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ayd-btn:hover{border-color:var(--accent);color:var(--accent)}
.ayd-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ayd-btn-primary:hover{opacity:.9;color:#fff}
.ayd-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ayd-status{margin-bottom:12px}
.ayd-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ayd-st i{margin-right:6px}
.ayd-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ayd-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ayd-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ayd-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ayd-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.ayd-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ayd-panel-head i{color:var(--accent);margin-right:6px}
.ayd-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ayd-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.ayd-tips{list-style:none;padding:0;margin:0}
.ayd-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ayd-tips li:last-child{border-bottom:none}
.ayd-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ayd-tips b{color:var(--fg)}
@media (max-width:640px){
  .ayd-row{flex-direction:column;align-items:stretch}
  .ayd-input,.ayd-select{width:100%}
  .ayd-btn{flex:1;justify-content:center}
}/* ===== AI室内设计（前缀 asi-）===== */
.asi-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.asi-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.asi-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.asi-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.asi-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asi-textarea{width:100%;min-height:120px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.asi-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.asi-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asi-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.asi-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.asi-btn:hover{border-color:var(--accent);color:var(--accent)}
.asi-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asi-btn-primary:hover{opacity:.9;color:#fff}
.asi-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.asi-status{margin-bottom:12px}
.asi-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.asi-st i{margin-right:6px}
.asi-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.asi-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.asi-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.asi-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.asi-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.asi-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.asi-panel-head i{color:var(--accent);margin-right:6px}
.asi-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.asi-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.asi-tips{list-style:none;padding:0;margin:0}
.asi-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.asi-tips li:last-child{border-bottom:none}
.asi-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.asi-tips b{color:var(--fg)}
@media (max-width:640px){
  .asi-row{flex-direction:column;align-items:stretch}
  .asi-input,.asi-select{width:100%}
  .asi-btn{flex:1;justify-content:center}
}/* ===== AI合同起草（前缀 ahq-）===== */
.ahq-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ahq-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ahq-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ahq-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ahq-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ahq-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.ahq-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ahq-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ahq-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ahq-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ahq-btn:hover{border-color:var(--accent);color:var(--accent)}
.ahq-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ahq-btn-primary:hover{opacity:.9;color:#fff}
.ahq-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ahq-status{margin-bottom:12px}
.ahq-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ahq-st i{margin-right:6px}
.ahq-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ahq-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ahq-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ahq-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ahq-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.ahq-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ahq-panel-head i{color:var(--accent);margin-right:6px}
.ahq-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ahq-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.ahq-tips{list-style:none;padding:0;margin:0}
.ahq-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ahq-tips li:last-child{border-bottom:none}
.ahq-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ahq-tips b{color:var(--fg)}
@media (max-width:640px){
  .ahq-row{flex-direction:column;align-items:stretch}
  .ahq-input,.ahq-select{width:100%}
  .ahq-btn{flex:1;justify-content:center}
}/* ===== AI辩论稿（前缀 abl-）===== */
.abl-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.abl-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.abl-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.abl-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.abl-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.abl-textarea{width:100%;min-height:80px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.abl-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.abl-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.abl-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.abl-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.abl-btn:hover{border-color:var(--accent);color:var(--accent)}
.abl-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.abl-btn-primary:hover{opacity:.9;color:#fff}
.abl-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.abl-status{margin-bottom:12px}
.abl-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.abl-st i{margin-right:6px}
.abl-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.abl-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.abl-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.abl-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.abl-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.abl-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.abl-panel-head i{color:var(--accent);margin-right:6px}
.abl-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.abl-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.abl-tips{list-style:none;padding:0;margin:0}
.abl-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.abl-tips li:last-child{border-bottom:none}
.abl-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.abl-tips b{color:var(--fg)}
@media (max-width:640px){
  .abl-row{flex-direction:column;align-items:stretch}
  .abl-input,.abl-select{width:100%}
  .abl-btn{flex:1;justify-content:center}
}/* ===== AI求婚策划（前缀 aqh-）===== */
.aqh-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.aqh-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.aqh-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.aqh-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.aqh-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aqh-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.aqh-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.aqh-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aqh-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.aqh-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aqh-btn:hover{border-color:var(--accent);color:var(--accent)}
.aqh-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aqh-btn-primary:hover{opacity:.9;color:#fff}
.aqh-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.aqh-status{margin-bottom:12px}
.aqh-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.aqh-st i{margin-right:6px}
.aqh-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.aqh-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.aqh-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.aqh-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.aqh-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.aqh-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.aqh-panel-head i{color:var(--accent);margin-right:6px}
.aqh-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.aqh-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.aqh-tips{list-style:none;padding:0;margin:0}
.aqh-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aqh-tips li:last-child{border-bottom:none}
.aqh-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.aqh-tips b{color:var(--fg)}
@media (max-width:640px){
  .aqh-row{flex-direction:column;align-items:stretch}
  .aqh-input,.aqh-select{width:100%}
  .aqh-btn{flex:1;justify-content:center}
}/* ===== AI婚礼致辞（前缀 ahz-）===== */
.ahz-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ahz-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ahz-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ahz-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ahz-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ahz-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.ahz-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ahz-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ahz-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ahz-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ahz-btn:hover{border-color:var(--accent);color:var(--accent)}
.ahz-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ahz-btn-primary:hover{opacity:.9;color:#fff}
.ahz-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ahz-status{margin-bottom:12px}
.ahz-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ahz-st i{margin-right:6px}
.ahz-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ahz-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ahz-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ahz-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ahz-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.ahz-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ahz-panel-head i{color:var(--accent);margin-right:6px}
.ahz-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ahz-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.ahz-tips{list-style:none;padding:0;margin:0}
.ahz-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ahz-tips li:last-child{border-bottom:none}
.ahz-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ahz-tips b{color:var(--fg)}
@media (max-width:640px){
  .ahz-row{flex-direction:column;align-items:stretch}
  .ahz-input,.ahz-select{width:100%}
  .ahz-btn{flex:1;justify-content:center}
}/* ===== AI生日祝福（前缀 asz-）===== */
.asz-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.asz-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.asz-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.asz-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.asz-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asz-textarea{width:100%;min-height:100px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.asz-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.asz-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asz-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.asz-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.asz-btn:hover{border-color:var(--accent);color:var(--accent)}
.asz-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asz-btn-primary:hover{opacity:.9;color:#fff}
.asz-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.asz-status{margin-bottom:12px}
.asz-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.asz-st i{margin-right:6px}
.asz-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.asz-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.asz-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.asz-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.asz-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:400px;margin-bottom:18px}
.asz-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.asz-panel-head i{color:var(--accent);margin-right:6px}
.asz-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.asz-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:15px;line-height:2;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.asz-tips{list-style:none;padding:0;margin:0}
.asz-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.asz-tips li:last-child{border-bottom:none}
.asz-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.asz-tips b{color:var(--fg)}
@media (max-width:640px){
  .asz-row{flex-direction:column;align-items:stretch}
  .asz-input,.asz-select{width:100%}
  .asz-btn{flex:1;justify-content:center}
}/* ===== AI道歉信（前缀 adq-）===== */
.adq-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.adq-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.adq-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.adq-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.adq-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.adq-textarea{width:100%;min-height:120px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.adq-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.adq-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.adq-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.adq-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.adq-btn:hover{border-color:var(--accent);color:var(--accent)}
.adq-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.adq-btn-primary:hover{opacity:.9;color:#fff}
.adq-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.adq-status{margin-bottom:12px}
.adq-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.adq-st i{margin-right:6px}
.adq-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.adq-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.adq-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.adq-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.adq-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:460px;margin-bottom:18px}
.adq-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.adq-panel-head i{color:var(--accent);margin-right:6px}
.adq-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.adq-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.adq-tips{list-style:none;padding:0;margin:0}
.adq-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.adq-tips li:last-child{border-bottom:none}
.adq-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.adq-tips b{color:var(--fg)}
@media (max-width:640px){
  .adq-row{flex-direction:column;align-items:stretch}
  .adq-input,.adq-select{width:100%}
  .adq-btn{flex:1;justify-content:center}
}/* ===== AI感谢信（前缀 agx-）===== */
.agx-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.agx-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.agx-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.agx-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.agx-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.agx-textarea{width:100%;min-height:120px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.agx-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.agx-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.agx-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.agx-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.agx-btn:hover{border-color:var(--accent);color:var(--accent)}
.agx-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.agx-btn-primary:hover{opacity:.9;color:#fff}
.agx-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.agx-status{margin-bottom:12px}
.agx-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.agx-st i{margin-right:6px}
.agx-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.agx-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.agx-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.agx-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.agx-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:460px;margin-bottom:18px}
.agx-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.agx-panel-head i{color:var(--accent);margin-right:6px}
.agx-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.agx-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.agx-tips{list-style:none;padding:0;margin:0}
.agx-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.agx-tips li:last-child{border-bottom:none}
.agx-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.agx-tips b{color:var(--fg)}
@media (max-width:640px){
  .agx-row{flex-direction:column;align-items:stretch}
  .agx-input,.agx-select{width:100%}
  .agx-btn{flex:1;justify-content:center}
}/* ===== AI请假条（前缀 aqj-）===== */
.aqj-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.aqj-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.aqj-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.aqj-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.aqj-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aqj-textarea{width:100%;min-height:100px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.aqj-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.aqj-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aqj-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.aqj-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aqj-btn:hover{border-color:var(--accent);color:var(--accent)}
.aqj-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aqj-btn-primary:hover{opacity:.9;color:#fff}
.aqj-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.aqj-status{margin-bottom:12px}
.aqj-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.aqj-st i{margin-right:6px}
.aqj-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.aqj-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.aqj-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.aqj-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.aqj-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:420px;margin-bottom:18px}
.aqj-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.aqj-panel-head i{color:var(--accent);margin-right:6px}
.aqj-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.aqj-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.aqj-tips{list-style:none;padding:0;margin:0}
.aqj-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aqj-tips li:last-child{border-bottom:none}
.aqj-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.aqj-tips b{color:var(--fg)}
@media (max-width:640px){
  .aqj-row{flex-direction:column;align-items:stretch}
  .aqj-input,.aqj-select{width:100%}
  .aqj-btn{flex:1;justify-content:center}
}/* ===== AI座右铭（前缀 azm-）===== */
.azm-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.azm-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.azm-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.azm-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.azm-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.azm-textarea{width:100%;min-height:100px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.azm-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.azm-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.azm-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.azm-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.azm-btn:hover{border-color:var(--accent);color:var(--accent)}
.azm-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.azm-btn-primary:hover{opacity:.9;color:#fff}
.azm-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.azm-status{margin-bottom:12px}
.azm-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.azm-st i{margin-right:6px}
.azm-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.azm-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.azm-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.azm-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.azm-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:420px;margin-bottom:18px}
.azm-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.azm-panel-head i{color:var(--accent);margin-right:6px}
.azm-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.azm-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:15px;line-height:2;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.azm-tips{list-style:none;padding:0;margin:0}
.azm-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.azm-tips li:last-child{border-bottom:none}
.azm-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.azm-tips b{color:var(--fg)}
@media (max-width:640px){
  .azm-row{flex-direction:column;align-items:stretch}
  .azm-input,.azm-select{width:100%}
  .azm-btn{flex:1;justify-content:center}
}/* ===== AI小说大纲（前缀 axs-）===== */
.axs-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.axs-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.axs-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.axs-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.axs-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.axs-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.axs-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.axs-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.axs-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.axs-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.axs-btn:hover{border-color:var(--accent);color:var(--accent)}
.axs-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.axs-btn-primary:hover{opacity:.9;color:#fff}
.axs-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.axs-status{margin-bottom:12px}
.axs-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.axs-st i{margin-right:6px}
.axs-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.axs-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.axs-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.axs-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.axs-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.axs-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.axs-panel-head i{color:var(--accent);margin-right:6px}
.axs-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.axs-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.axs-tips{list-style:none;padding:0;margin:0}
.axs-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.axs-tips li:last-child{border-bottom:none}
.axs-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.axs-tips b{color:var(--fg)}
@media (max-width:640px){
  .axs-row{flex-direction:column;align-items:stretch}
  .axs-input,.axs-select{width:100%}
  .axs-btn{flex:1;justify-content:center}
}/* ===== AI情书（前缀 aqs-）===== */
.aqs-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.aqs-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.aqs-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.aqs-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.aqs-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aqs-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.aqs-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.aqs-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aqs-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.aqs-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aqs-btn:hover{border-color:var(--accent);color:var(--accent)}
.aqs-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aqs-btn-primary:hover{opacity:.9;color:#fff}
.aqs-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.aqs-status{margin-bottom:12px}
.aqs-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.aqs-st i{margin-right:6px}
.aqs-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.aqs-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.aqs-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.aqs-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.aqs-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:460px;margin-bottom:18px}
.aqs-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.aqs-panel-head i{color:#e91e63;margin-right:6px}
.aqs-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.aqs-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:2;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.aqs-tips{list-style:none;padding:0;margin:0}
.aqs-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aqs-tips li:last-child{border-bottom:none}
.aqs-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.aqs-tips b{color:var(--fg)}
@media (max-width:640px){
  .aqs-row{flex-direction:column;align-items:stretch}
  .aqs-input,.aqs-select{width:100%}
  .aqs-btn{flex:1;justify-content:center}
}/* ===== AI新闻稿（前缀 axw-）===== */
.axw-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.axw-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.axw-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.axw-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.axw-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.axw-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.axw-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.axw-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.axw-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.axw-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.axw-btn:hover{border-color:var(--accent);color:var(--accent)}
.axw-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.axw-btn-primary:hover{opacity:.9;color:#fff}
.axw-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.axw-status{margin-bottom:12px}
.axw-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.axw-st i{margin-right:6px}
.axw-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.axw-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.axw-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.axw-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.axw-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.axw-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.axw-panel-head i{color:var(--accent);margin-right:6px}
.axw-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.axw-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.axw-tips{list-style:none;padding:0;margin:0}
.axw-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.axw-tips li:last-child{border-bottom:none}
.axw-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.axw-tips b{color:var(--fg)}
@media (max-width:640px){
  .axw-row{flex-direction:column;align-items:stretch}
  .axw-input,.axw-select{width:100%}
  .axw-btn{flex:1;justify-content:center}
}/* ===== AI请假理由（前缀 aqy-）===== */
.aqy-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.aqy-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.aqy-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.aqy-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.aqy-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aqy-textarea{width:100%;min-height:100px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.aqy-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.aqy-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.aqy-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.aqy-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.aqy-btn:hover{border-color:var(--accent);color:var(--accent)}
.aqy-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aqy-btn-primary:hover{opacity:.9;color:#fff}
.aqy-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.aqy-status{margin-bottom:12px}
.aqy-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.aqy-st i{margin-right:6px}
.aqy-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.aqy-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.aqy-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.aqy-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.aqy-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:420px;margin-bottom:18px}
.aqy-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.aqy-panel-head i{color:var(--accent);margin-right:6px}
.aqy-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.aqy-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.aqy-tips{list-style:none;padding:0;margin:0}
.aqy-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.aqy-tips li:last-child{border-bottom:none}
.aqy-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.aqy-tips b{color:var(--fg)}
@media (max-width:640px){
  .aqy-row{flex-direction:column;align-items:stretch}
  .aqy-input,.aqy-select{width:100%}
  .aqy-btn{flex:1;justify-content:center}
}/* ===== AI安慰语（前缀 awy-）===== */
.awy-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.awy-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.awy-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.awy-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.awy-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.awy-textarea{width:100%;min-height:100px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.awy-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.awy-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.awy-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.awy-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.awy-btn:hover{border-color:var(--accent);color:var(--accent)}
.awy-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.awy-btn-primary:hover{opacity:.9;color:#fff}
.awy-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.awy-status{margin-bottom:12px}
.awy-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.awy-st i{margin-right:6px}
.awy-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.awy-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.awy-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.awy-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.awy-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:420px;margin-bottom:18px}
.awy-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.awy-panel-head i{color:#e91e63;margin-right:6px}
.awy-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.awy-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:15px;line-height:2;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.awy-tips{list-style:none;padding:0;margin:0}
.awy-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.awy-tips li:last-child{border-bottom:none}
.awy-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.awy-tips b{color:var(--fg)}
@media (max-width:640px){
  .awy-row{flex-direction:column;align-items:stretch}
  .awy-input,.awy-select{width:100%}
  .awy-btn{flex:1;justify-content:center}
}/* ===== AI商务邮件（前缀 asw-）===== */
.asw-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.asw-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.asw-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.asw-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.asw-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asw-textarea{width:100%;min-height:120px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.asw-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.asw-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asw-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.asw-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.asw-btn:hover{border-color:var(--accent);color:var(--accent)}
.asw-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asw-btn-primary:hover{opacity:.9;color:#fff}
.asw-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.asw-status{margin-bottom:12px}
.asw-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.asw-st i{margin-right:6px}
.asw-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.asw-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.asw-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.asw-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.asw-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:460px;margin-bottom:18px}
.asw-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.asw-panel-head i{color:var(--accent);margin-right:6px}
.asw-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.asw-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.asw-tips{list-style:none;padding:0;margin:0}
.asw-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.asw-tips li:last-child{border-bottom:none}
.asw-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.asw-tips b{color:var(--fg)}
@media (max-width:640px){
  .asw-row{flex-direction:column;align-items:stretch}
  .asw-input,.asw-select{width:100%}
  .asw-btn{flex:1;justify-content:center}
}/* ===== AI产品说明书（前缀 acps-）===== */
.acps-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.acps-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.acps-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.acps-input{flex:1;min-width:200px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.acps-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.acps-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.acps-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.acps-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.acps-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.acps-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.acps-btn:hover{border-color:var(--accent);color:var(--accent)}
.acps-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.acps-btn-primary:hover{opacity:.9;color:#fff}
.acps-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.acps-status{margin-bottom:12px}
.acps-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.acps-st i{margin-right:6px}
.acps-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.acps-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.acps-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.acps-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.acps-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.acps-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.acps-panel-head i{color:var(--accent);margin-right:6px}
.acps-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.acps-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.acps-tips{list-style:none;padding:0;margin:0}
.acps-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.acps-tips li:last-child{border-bottom:none}
.acps-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.acps-tips b{color:var(--fg)}
@media (max-width:640px){
  .acps-row{flex-direction:column;align-items:stretch}
  .acps-input,.acps-select{width:100%}
  .acps-btn{flex:1;justify-content:center}
}/* ===== AI考试题生成（前缀 akts-）===== */
.akts-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.akts-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.akts-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.akts-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.akts-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.akts-textarea{width:100%;min-height:100px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.akts-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.akts-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.akts-checks{display:flex;flex-wrap:wrap;gap:14px}
.akts-checks label{font-size:13px;color:var(--fg);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.akts-checks input{cursor:pointer}
.akts-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.akts-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.akts-btn:hover{border-color:var(--accent);color:var(--accent)}
.akts-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.akts-btn-primary:hover{opacity:.9;color:#fff}
.akts-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.akts-status{margin-bottom:12px}
.akts-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.akts-st i{margin-right:6px}
.akts-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.akts-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.akts-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.akts-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.akts-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.akts-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.akts-panel-head i{color:var(--accent);margin-right:6px}
.akts-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.akts-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.akts-tips{list-style:none;padding:0;margin:0}
.akts-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.akts-tips li:last-child{border-bottom:none}
.akts-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.akts-tips b{color:var(--fg)}
@media (max-width:640px){
  .akts-row{flex-direction:column;align-items:stretch}
  .akts-input,.akts-select{width:100%}
  .akts-btn{flex:1;justify-content:center}
  .akts-checks{gap:10px}
}/* ===== AI试卷生成（前缀 asj-）===== */
.asj-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.asj-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.asj-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.asj-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.asj-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asj-textarea{width:100%;min-height:80px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.asj-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.asj-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asj-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.asj-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.asj-btn:hover{border-color:var(--accent);color:var(--accent)}
.asj-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asj-btn-primary:hover{opacity:.9;color:#fff}
.asj-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.asj-status{margin-bottom:12px}
.asj-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.asj-st i{margin-right:6px}
.asj-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.asj-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.asj-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.asj-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.asj-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.asj-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.asj-panel-head i{color:var(--accent);margin-right:6px}
.asj-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.asj-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.asj-tips{list-style:none;padding:0;margin:0}
.asj-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.asj-tips li:last-child{border-bottom:none}
.asj-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.asj-tips b{color:var(--fg)}
@media (max-width:640px){
  .asj-row{flex-direction:column;align-items:stretch}
  .asj-input,.asj-select{width:100%}
  .asj-btn{flex:1;justify-content:center}
}/* ===== AI投资建议（前缀 atz-）===== */
.atz-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.atz-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.atz-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.atz-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.atz-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.atz-textarea{width:100%;min-height:120px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.atz-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.atz-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.atz-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.atz-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.atz-btn:hover{border-color:var(--accent);color:var(--accent)}
.atz-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.atz-btn-primary:hover{opacity:.9;color:#fff}
.atz-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.atz-status{margin-bottom:12px}
.atz-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.atz-st i{margin-right:6px}
.atz-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.atz-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.atz-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.atz-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.atz-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:520px;margin-bottom:18px}
.atz-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.atz-panel-head i{color:var(--accent);margin-right:6px}
.atz-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.atz-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.atz-tips{list-style:none;padding:0;margin:0}
.atz-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.atz-tips li:last-child{border-bottom:none}
.atz-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.atz-tips b{color:var(--fg)}
@media (max-width:640px){
  .atz-row{flex-direction:column;align-items:stretch}
  .atz-input,.atz-select{width:100%}
  .atz-btn{flex:1;justify-content:center}
}/* ===== AI财务报表（前缀 acw-）===== */
.acw-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.acw-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.acw-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.acw-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.acw-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.acw-textarea{width:100%;min-height:160px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.acw-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.acw-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.acw-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.acw-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.acw-btn:hover{border-color:var(--accent);color:var(--accent)}
.acw-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.acw-btn-primary:hover{opacity:.9;color:#fff}
.acw-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.acw-status{margin-bottom:12px}
.acw-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.acw-st i{margin-right:6px}
.acw-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.acw-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.acw-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.acw-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.acw-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.acw-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.acw-panel-head i{color:var(--accent);margin-right:6px}
.acw-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.acw-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.acw-tips{list-style:none;padding:0;margin:0}
.acw-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.acw-tips li:last-child{border-bottom:none}
.acw-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.acw-tips b{color:var(--fg)}
@media (max-width:640px){
  .acw-row{flex-direction:column;align-items:stretch}
  .acw-input,.acw-select{width:100%}
  .acw-btn{flex:1;justify-content:center}
}/* ===== AI视觉设计（前缀 asjs-）===== */
.asjs-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.asjs-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.asjs-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.asjs-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.asjs-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asjs-textarea{width:100%;min-height:140px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.asjs-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.asjs-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.asjs-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.asjs-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.asjs-btn:hover{border-color:var(--accent);color:var(--accent)}
.asjs-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asjs-btn-primary:hover{opacity:.9;color:#fff}
.asjs-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.asjs-status{margin-bottom:12px}
.asjs-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.asjs-st i{margin-right:6px}
.asjs-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.asjs-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.asjs-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.asjs-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.asjs-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.asjs-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.asjs-panel-head i{color:var(--accent);margin-right:6px}
.asjs-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.asjs-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.asjs-tips{list-style:none;padding:0;margin:0}
.asjs-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.asjs-tips li:last-child{border-bottom:none}
.asjs-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.asjs-tips b{color:var(--fg)}
@media (max-width:640px){
  .asjs-row{flex-direction:column;align-items:stretch}
  .asjs-input,.asjs-select{width:100%}
  .asjs-btn{flex:1;justify-content:center}
}/* ===== AI Logo设计（前缀 algo-）===== */
.algo-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.algo-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.algo-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.algo-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.algo-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.algo-textarea{width:100%;min-height:120px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.algo-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.algo-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.algo-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.algo-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.algo-btn:hover{border-color:var(--accent);color:var(--accent)}
.algo-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.algo-btn-primary:hover{opacity:.9;color:#fff}
.algo-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.algo-status{margin-bottom:12px}
.algo-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.algo-st i{margin-right:6px}
.algo-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.algo-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.algo-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.algo-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.algo-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.algo-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.algo-panel-head i{color:var(--accent);margin-right:6px}
.algo-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.algo-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit}
.algo-tips{list-style:none;padding:0;margin:0}
.algo-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.algo-tips li:last-child{border-bottom:none}
.algo-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.algo-tips b{color:var(--fg)}
@media (max-width:640px){
  .algo-row{flex-direction:column;align-items:stretch}
  .algo-input,.algo-select{width:100%}
  .algo-btn{flex:1;justify-content:center}
}/* ===== AI家具布局（前缀 ajj-）===== */
.ajj-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px}
.ajj-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.ajj-label{font-size:13px;color:var(--muted);white-space:nowrap;font-weight:500}
.ajj-input{flex:1;min-width:180px;padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none}
.ajj-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ajj-textarea{width:100%;min-height:120px;resize:vertical;line-height:1.7;font-family:inherit;box-sizing:border-box}
.ajj-select{padding:8px 12px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;cursor:pointer}
.ajj-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(43,108,176,.12)}
.ajj-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:12px;margin-top:8px}
.ajj-btn{padding:9px 16px;font-size:13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);cursor:pointer;font-weight:500;transition:.15s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ajj-btn:hover{border-color:var(--accent);color:var(--accent)}
.ajj-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ajj-btn-primary:hover{opacity:.9;color:#fff}
.ajj-btn-danger:hover{border-color:#dc2626;color:#dc2626}
.ajj-status{margin-bottom:12px}
.ajj-st{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.6}
.ajj-st i{margin-right:6px}
.ajj-st-ok{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.3)}
.ajj-st-err{background:rgba(239,68,68,.12);color:#ef4444;border:1px solid rgba(239,68,68,.3)}
.ajj-st-warn{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.ajj-st-info{background:rgba(59,130,246,.12);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}
.ajj-panel-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:560px;margin-bottom:18px}
.ajj-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--hover);border-bottom:1px solid var(--line);font-size:13px;color:var(--fg);font-weight:500}
.ajj-panel-head i{color:var(--accent);margin-right:6px}
.ajj-len{font-size:11px;color:var(--muted);font-family:ui-monospace,Menlo,Consolas,monospace}
.ajj-output{flex:1;padding:14px;overflow-y:auto;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap;word-break:break-word;margin:0;font-family:ui-monospace,Menlo,Consolas,monospace}
.ajj-tips{list-style:none;padding:0;margin:0}
.ajj-tips li{padding:6px 0 6px 20px;position:relative;font-size:14px;color:var(--muted);line-height:1.7;border-bottom:1px dashed var(--line)}
.ajj-tips li:last-child{border-bottom:none}
.ajj-tips li:before{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;left:0;top:6px;color:#10b981;font-size:12px}
.ajj-tips b{color:var(--fg)}
@media (max-width:640px){
  .ajj-row{flex-direction:column;align-items:stretch}
  .ajj-input,.ajj-select{width:100%}
  .ajj-btn{flex:1;justify-content:center}
}
/* ===== 日期计算器（前缀 rq-）===== */
.rq-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.rq-tabs{display:flex;gap:8px;margin-bottom:18px;border-bottom:1px solid var(--line);padding-bottom:12px;flex-wrap:wrap}
.rq-tab{padding:8px 16px;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}
.rq-tab:hover{background:var(--hover)}
.rq-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.rq-panel{display:none}
.rq-panel.on{display:block}
.rq-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.rq-label{width:110px;flex-shrink:0;color:var(--muted);font-size:14px}
.rq-input{flex:1;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;min-width:0}
.rq-input:focus{border-color:var(--accent)}
.rq-num{max-width:120px;flex:none}
.rq-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px}
.rq-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;margin-bottom:16px}
.rq-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}
.rq-btn:hover{background:var(--hover)}
.rq-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.rq-btn-primary:hover{opacity:.9;background:var(--accent)}
.rq-result{display:none;margin-top:16px;padding:18px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius)}
.rq-result.on{display:block}
.rq-res-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:12px}
.rq-res-item{text-align:center;padding:14px 8px;background:var(--panel);border:1px solid var(--line);border-radius:10px}
.rq-res-wide{grid-column:1/-1}
.rq-res-num{display:block;font-size:22px;font-weight:700;color:var(--accent);word-break:break-all}
.rq-res-lb{display:block;font-size:13px;color:var(--muted);margin-top:6px}
.rq-res-tip{text-align:center;color:var(--muted);font-size:13px;margin:0}
.rq-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.rq-note p{margin:0}

/* ===== 工作日计算器（前缀 gzr-）===== */
.gzr-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.gzr-tabs{display:flex;gap:8px;margin-bottom:18px;border-bottom:1px solid var(--line);padding-bottom:12px;flex-wrap:wrap}
.gzr-tab{padding:8px 16px;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}
.gzr-tab:hover{background:var(--hover)}
.gzr-tab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.gzr-panel{display:none}
.gzr-panel.on{display:block}
.gzr-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.gzr-label{width:110px;flex-shrink:0;color:var(--muted);font-size:14px}
.gzr-input{flex:1;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;min-width:0}
.gzr-input:focus{border-color:var(--accent)}
.gzr-num{max-width:140px;flex:none}
.gzr-check{display:flex;gap:20px;flex-wrap:wrap;color:var(--fg);font-size:14px}
.gzr-check label{display:flex;align-items:center;gap:6px;cursor:pointer}
.gzr-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;margin-bottom:16px}
.gzr-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}
.gzr-btn:hover{background:var(--hover)}
.gzr-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.gzr-btn-primary:hover{opacity:.9;background:var(--accent)}
.gzr-result{display:none;margin-top:16px;padding:18px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius)}
.gzr-result.on{display:block}
.gzr-res-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:12px}
.gzr-res-item{text-align:center;padding:14px 8px;background:var(--panel);border:1px solid var(--line);border-radius:10px}
.gzr-res-wide{grid-column:1/-1}
.gzr-res-num{display:block;font-size:22px;font-weight:700;color:var(--accent);word-break:break-all}
.gzr-res-lb{display:block;font-size:13px;color:var(--muted);margin-top:6px}
.gzr-res-tip{text-align:center;color:var(--muted);font-size:13px;margin:0}
.gzr-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.gzr-note p{margin:0}

/* ===== 倒数日（前缀 dsr-）===== */
.dsr-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.dsr-form{margin-bottom:20px}
.dsr-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.dsr-row-inline{gap:20px}
.dsr-label{width:110px;flex-shrink:0;color:var(--muted);font-size:14px}
.dsr-input{flex:1;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;min-width:0}
.dsr-input:focus{border-color:var(--accent)}
.dsr-check{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--fg);font-size:14px}
.dsr-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.dsr-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}
.dsr-btn:hover{background:var(--hover)}
.dsr-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.dsr-btn-primary:hover{opacity:.9;background:var(--accent)}
.dsr-list{display:flex;flex-direction:column;gap:12px}
.dsr-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);border-left:4px solid var(--accent);transition:all .2s}
.dsr-item:hover{background:var(--hover)}
.dsr-item.dsr-today{border-left-color:#43a047;background:rgba(67,160,71,.08)}
.dsr-item.dsr-soon{border-left-color:#f57c00;background:rgba(245,124,0,.08)}
.dsr-item-main{flex:1;min-width:0}
.dsr-item-name{font-size:16px;font-weight:600;color:var(--fg);margin-bottom:6px;word-break:break-all}
.dsr-item-date{font-size:13px;color:var(--muted)}
.dsr-badge{display:inline-block;padding:2px 8px;background:var(--accent-soft);color:var(--accent);border-radius:4px;font-size:12px;font-weight:400;margin-left:6px}
.dsr-item-days{text-align:center;min-width:80px}
.dsr-days-num{display:block;font-size:24px;font-weight:700;color:var(--accent);line-height:1.2}
.dsr-days-lb{display:block;font-size:12px;color:var(--muted)}
.dsr-days-tip{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.dsr-del{padding:8px 10px;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;cursor:pointer;transition:all .2s}
.dsr-del:hover{background:rgba(229,57,53,.1);color:#e53935;border-color:#e53935}
.dsr-empty{text-align:center;color:var(--muted);padding:30px 0;font-size:14px}
.dsr-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.dsr-note p{margin:0}

/* ===== 密码强度检测（前缀 mmqd-）===== */
.mmqd-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.mmqd-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.mmqd-label{width:110px;flex-shrink:0;color:var(--muted);font-size:14px}
.mmqd-input-box{flex:1;position:relative;display:flex;align-items:center}
.mmqd-input{flex:1;padding:12px 44px 12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:15px;font-family:monospace;letter-spacing:1px;min-width:0;width:100%}
.mmqd-input:focus{border-color:var(--accent)}
.mmqd-eye{position:absolute;right:8px;padding:6px 10px;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:16px}
.mmqd-eye:hover{color:var(--accent)}
.mmqd-bar{height:10px;background:var(--bg);border-radius:5px;overflow:hidden;margin:16px 0 8px;border:1px solid var(--line)}
.mmqd-bar-in{height:100%;width:0;background:transparent;transition:all .3s}
.mmqd-level{text-align:center;font-size:16px;font-weight:600;color:var(--muted);margin-bottom:20px}
.mmqd-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.mmqd-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.mmqd-card-title{font-size:14px;font-weight:600;color:var(--fg);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.mmqd-info,.mmqd-check,.mmqd-sug{list-style:none;padding:0;margin:0}
.mmqd-info li{display:flex;justify-content:space-between;padding:8px 0;font-size:14px;color:var(--fg);border-bottom:1px dashed var(--line)}
.mmqd-info li:last-child{border-bottom:none}
.mmqd-info span{color:var(--muted)}
.mmqd-info b{color:var(--fg);font-weight:600}
.mmqd-check li{padding:8px 0;font-size:14px;color:var(--fg);display:flex;align-items:center;gap:8px}
.mmqd-check li.ok{color:#43a047}
.mmqd-check li.no{color:var(--muted)}
.mmqd-check li i{width:16px}
.mmqd-sug li{padding:6px 0;font-size:14px;color:var(--fg);line-height:1.6;padding-left:20px;position:relative}
.mmqd-sug li::before{content:"";position:absolute;left:6px;top:14px;width:6px;height:6px;background:var(--accent);border-radius:50%}
.mmqd-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;margin-top: 20px;}
.mmqd-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}
.mmqd-btn:hover{background:var(--hover)}
.mmqd-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.mmqd-btn-primary:hover{opacity:.9;background:var(--accent)}
.mmqd-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.mmqd-note p{margin:0}

/* ===== 文件哈希校验（前缀 wjhx-）===== */
.wjhx-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.wjhx-drop{border:2px dashed var(--line);border-radius:var(--radius);padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s;color:var(--muted)}
.wjhx-drop:hover,.wjhx-drop.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.wjhx-drop i{font-size:40px;margin-bottom:12px;display:block}
.wjhx-drop p{margin:0;font-size:14px}
.wjhx-file{margin-top:16px;padding:14px;background:var(--bg);border:1px solid var(--line);border-radius:8px}
.wjhx-fi-name{font-size:15px;font-weight:600;color:var(--fg);word-break:break-all;margin-bottom:4px}
.wjhx-fi-size{font-size:13px;color:var(--muted)}
.wjhx-progress{margin-top:16px}
.wjhx-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.wjhx-bar-in{height:100%;width:0;background:var(--accent);transition:width .2s}
.wjhx-bar-tip{text-align:center;color:var(--muted);font-size:13px;margin-top:8px}
.wjhx-result{margin-top:16px}
.wjhx-res-title{font-size:14px;font-weight:600;color:var(--fg);margin-bottom:12px}
.wjhx-res-item{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg);border:1px solid var(--line);border-radius:8px;margin-bottom:8px}
.wjhx-res-lb{width:70px;flex-shrink:0;font-size:13px;color:var(--muted);font-weight:600}
.wjhx-res-val{flex:1;font-family:monospace;font-size:13px;color:var(--fg);word-break:break-all;min-width:0}
.wjhx-copy{padding:6px 10px;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:6px;cursor:pointer;flex-shrink:0}
.wjhx-copy:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.wjhx-compare{margin-top:20px;padding:16px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius)}
.wjhx-compare-title{font-size:14px;font-weight:600;color:var(--fg);margin-bottom:12px}
.wjhx-row{display:flex;gap:10px;align-items:center}
.wjhx-input{flex:1;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);outline:none;font-size:13px;font-family:monospace;min-width:0}
.wjhx-input:focus{border-color:var(--accent)}
.wjhx-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;white-space:nowrap}
.wjhx-btn:hover{background:var(--hover)}
.wjhx-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.wjhx-btn-primary:hover{opacity:.9;background:var(--accent)}
.wjhx-compare-res{margin-top:12px}
.wjhx-cmp{padding:10px 14px;border-radius:8px;font-size:14px;display:flex;align-items:center;gap:8px}
.wjhx-cmp.ok{background:rgba(67,160,71,.15);color:#43a047}
.wjhx-cmp.no{background:rgba(229,57,53,.15);color:#e53935}
.wjhx-actions{margin-top:16px}
.wjhx-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.wjhx-note p{margin:0}

/* ===== 移动端适配 ===== */
@media (max-width:768px){
  .rq-tabs,.gzr-tabs{gap:6px}
  .rq-tab,.gzr-tab{flex:1;text-align:center;padding:8px 10px;font-size:13px}
  .rq-row,.gzr-row{flex-wrap:wrap}
  .rq-label,.gzr-label,.dsr-label,.mmqd-label{width:100%;margin-bottom:6px}
  .rq-input,.gzr-input,.dsr-input,.mmqd-input{width:100%}
  .rq-num,.gzr-num{max-width:100%;width:100%}
  .rq-actions,.gzr-actions,.dsr-actions,.mmqd-actions{flex-direction:column}
  .rq-btn,.gzr-btn,.dsr-btn,.mmqd-btn,.wjhx-btn{flex:1;justify-content:center;text-align:center}
  .rq-res-grid,.gzr-res-grid{grid-template-columns:1fr 1fr}
  .dsr-item{flex-wrap:wrap}
  .dsr-item-days{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px}
  .dsr-days-num{font-size:20px}
  .dsr-days-lb{display:inline;font-size:14px}
  .dsr-days-tip{margin-top:0}
  .mmqd-grid{grid-template-columns:1fr}
  .wjhx-res-item{flex-wrap:wrap}
  .wjhx-res-lb{width:100%}
  .wjhx-res-val{width:100%;order:2}
  .wjhx-copy{order:1}
  .wjhx-row{flex-direction:column}
  .wjhx-input,.wjhx-btn{width:100%}
}
@media (max-width:640px){
  .rq-wrap,.gzr-wrap,.dsr-wrap,.mmqd-wrap,.wjhx-wrap{padding:14px}
  .rq-res-grid,.gzr-res-grid{grid-template-columns:1fr}
  .mmqd-input{font-size:14px}
  .dsr-item{padding:12px}
  .dsr-days-num{font-size:18px}
}

/* ===== AI 商品标题生成（前缀 aspt-）===== */
.aspt-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.aspt-form{margin-bottom:20px}
.aspt-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.aspt-row-2{flex-wrap:wrap}
.aspt-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.aspt-label{color:var(--muted);font-size:14px;flex-shrink:0}
.aspt-req{color:#e53935}
.aspt-input,.aspt-textarea,.aspt-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.aspt-input:focus,.aspt-textarea:focus,.aspt-select:focus{border-color:var(--accent)}
.aspt-textarea{min-height:100px;resize:vertical;line-height:1.6}
.aspt-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.aspt-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.aspt-btn:hover{background:var(--hover)}
.aspt-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aspt-btn-primary:hover{opacity:.9;background:var(--accent)}
.aspt-btn-sm{padding:6px 12px;font-size:13px}
.aspt-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.aspt-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.aspt-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.aspt-result-actions{display:flex;gap:8px}
.aspt-result-body{color:var(--fg);font-size:14px;line-height:1.8}
.aspt-md h2,.aspt-md h3,.aspt-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.aspt-md h2{font-size:18px}.aspt-md h3{font-size:16px}.aspt-md h4{font-size:15px}
.aspt-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.aspt-md strong{color:var(--fg)}
.aspt-md pre{background:var(--hover);padding:12px;border-radius:8px;overflow-x:auto}
.aspt-md pre code{background:none;padding:0}
.aspt-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.aspt-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.aspt-loading i{margin-right:6px}
.aspt-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.aspt-note p{margin:0}

/* ===== AI 代码审查（前缀 adms-）===== */
.adms-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.adms-form{margin-bottom:20px}
.adms-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.adms-row-2{flex-wrap:wrap}
.adms-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.adms-label{color:var(--muted);font-size:14px;flex-shrink:0}
.adms-req{color:#e53935}
.adms-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.adms-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:13px;font-family:'Courier New',monospace;width:100%;min-height:260px;resize:vertical;line-height:1.6;box-sizing:border-box}
.adms-textarea:focus{border-color:var(--accent)}
.adms-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.adms-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.adms-btn:hover{background:var(--hover)}
.adms-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.adms-btn-primary:hover{opacity:.9;background:var(--accent)}
.adms-btn-sm{padding:6px 12px;font-size:13px}
.adms-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.adms-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.adms-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.adms-result-actions{display:flex;gap:8px}
.adms-result-body{color:var(--fg);font-size:14px;line-height:1.8}
.adms-md h2,.adms-md h3,.adms-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.adms-md h2{font-size:18px}.adms-md h3{font-size:16px}.adms-md h4{font-size:15px}
.adms-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.adms-md pre{background:var(--hover);padding:12px;border-radius:8px;overflow-x:auto}
.adms-md pre code{background:none;padding:0}
.adms-md strong{color:var(--fg)}
.adms-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.adms-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.adms-loading i{margin-right:6px}
.adms-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.adms-note p{margin:0}

/* ===== AI 论文润色（前缀 alwr-）===== */
.alwr-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.alwr-form{margin-bottom:20px}
.alwr-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.alwr-row-3{flex-wrap:wrap}
.alwr-col{flex:1;min-width:140px;display:flex;flex-direction:column;gap:6px}
.alwr-label{color:var(--muted);font-size:14px;flex-shrink:0}
.alwr-req{color:#e53935}
.alwr-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.alwr-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%;min-height:200px;resize:vertical;line-height:1.7;box-sizing:border-box;font-family:inherit}
.alwr-textarea:focus{border-color:var(--accent)}
.alwr-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.alwr-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.alwr-btn:hover{background:var(--hover)}
.alwr-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.alwr-btn-primary:hover{opacity:.9;background:var(--accent)}
.alwr-btn-sm{padding:6px 12px;font-size:13px}
.alwr-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.alwr-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.alwr-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.alwr-result-actions{display:flex;gap:8px}
.alwr-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.alwr-md h2,.alwr-md h3,.alwr-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.alwr-md h2{font-size:18px}.alwr-md h3{font-size:16px}.alwr-md h4{font-size:15px}
.alwr-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.alwr-md strong{color:var(--fg)}
.alwr-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.alwr-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.alwr-loading i{margin-right:6px}
.alwr-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.alwr-note p{margin:0}

/* ===== AI 数学解题（前缀 asxjt-）===== */
.asxjt-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.asxjt-form{margin-bottom:20px}
.asxjt-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.asxjt-row-2{flex-wrap:wrap}
.asxjt-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.asxjt-label{color:var(--muted);font-size:14px;flex-shrink:0}
.asxjt-req{color:#e53935}
.asxjt-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.asxjt-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%;min-height:140px;resize:vertical;line-height:1.7;box-sizing:border-box;font-family:inherit}
.asxjt-textarea:focus{border-color:var(--accent)}
.asxjt-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.asxjt-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.asxjt-btn:hover{background:var(--hover)}
.asxjt-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asxjt-btn-primary:hover{opacity:.9;background:var(--accent)}
.asxjt-btn-sm{padding:6px 12px;font-size:13px}
.asxjt-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.asxjt-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.asxjt-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.asxjt-result-actions{display:flex;gap:8px}
.asxjt-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.asxjt-md h2,.asxjt-md h3,.asxjt-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.asxjt-md h2{font-size:18px}.asxjt-md h3{font-size:16px}.asxjt-md h4{font-size:15px}
.asxjt-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.asxjt-md pre{background:var(--hover);padding:12px;border-radius:8px;overflow-x:auto}
.asxjt-md pre code{background:none;padding:0}
.asxjt-md strong{color:var(--fg)}
.asxjt-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.asxjt-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.asxjt-loading i{margin-right:6px}
.asxjt-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.asxjt-note p{margin:0}

/* ===== AI 离职信（前缀 alzx-）===== */
.alzx-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.alzx-form{margin-bottom:20px}
.alzx-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.alzx-row-2{flex-wrap:wrap}
.alzx-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.alzx-label{color:var(--muted);font-size:14px;flex-shrink:0}
.alzx-req{color:#e53935}
.alzx-input,.alzx-textarea,.alzx-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.alzx-input:focus,.alzx-textarea:focus,.alzx-select:focus{border-color:var(--accent)}
.alzx-textarea{min-height:80px;resize:vertical;line-height:1.6}
.alzx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.alzx-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.alzx-btn:hover{background:var(--hover)}
.alzx-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.alzx-btn-primary:hover{opacity:.9;background:var(--accent)}
.alzx-btn-sm{padding:6px 12px;font-size:13px}
.alzx-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.alzx-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.alzx-result-title{font-size:15px;font-weight:600;color:var(--fg);dems:center;gap:8px}
.alzx-result-actions{display:flex;gap:8px}
.alzx-result-body{color:var(--fg);font-size:14px;line-height:1.9;white-space:pre-wrap}
.alzx-md h2,.alzx-md h3,.alzx-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.alzx-md h2{font-size:18px}.alzx-md h3{font-size:16px}.alzx-md h4{font-size:15px}
.alzx-md strong{color:var(--fg)}
.alzx-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.alzx-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.alzx-loading i{margin-right:6px}
.alzx-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.alzx-note p{margin:0}

/* ===== 移动端适配 ===== */
@media (max-width:768px){
  .aspt-row,.adms-row,.alwr-row,.asxjt-row,.alzx-row{flex-wrap:wrap}
  .aspt-label,.adms-label,.alwr-label,.asxjt-label,.alzx-label{width:100%}
  .aspt-col,.adms-col,.alwr-col,.asxjt-col,.alzx-col{min-width:100%}
  .aspt-actions,.adms-actions,.alwr-actions,.asxjt-actions,.alzx-actions{flex-direction:column}
  .aspt-btn,.adms-btn,.alwr-btn,.asxjt-btn,.alzx-btn{flex:1;justify-content:center;text-align:center}
  .aspt-result-head,.adms-result-head,.alwr-result-head,.asxjt-result-head,.alzx-result-head{flex-direction:column;align-items:stretch}
  .aspt-result-actions,.adms-result-actions,.alwr-result-actions,.asxjt-result-actions,.alzx-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .aspt-wrap,.adms-wrap,.alwr-wrap,.asxjt-wrap,.alzx-wrap{padding:14px}
  .aspt-result,.adms-result,.alwr-result,.asxjt-result,.alzx-result{padding:14px}
  .aspt-textarea,.adms-textarea,.alwr-textarea,.asxjt-textarea,.alzx-textarea{min-height:120px}
}

/* ===== AI 商品详情页（aspxq-）===== */
.aspxq-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.aspxq-form{margin-bottom:20px}
.aspxq-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.aspxq-row-3{flex-wrap:wrap}
.aspxq-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.aspxq-label{color:var(--muted);font-size:14px;flex-shrink:0}
.aspxq-req{color:#e53935}
.aspxq-input,.aspxq-textarea,.aspxq-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.aspxq-input:focus,.aspxq-textarea:focus,.aspxq-select:focus{border-color:var(--accent)}
.aspxq-textarea{min-height:100px;resize:vertical;line-height:1.6}
.aspxq-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.aspxq-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.aspxq-btn:hover{background:var(--hover)}
.aspxq-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aspxq-btn-primary:hover{opacity:.9;background:var(--accent)}
.aspxq-btn-sm{padding:6px 12px;font-size:13px}
.aspxq-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.aspxq-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.aspxq-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.aspxq-result-actions{display:flex;gap:8px}
.aspxq-result-body{color:var(--fg);font-size:14px;line-height:1.8}
.aspxq-md h2,.aspxq-md h3,.aspxq-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.aspxq-md h2{font-size:18px}.aspxq-md h3{font-size:16px}.aspxq-md h4{font-size:15px}
.aspxq-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.aspxq-md strong{color:var(--fg)}
.aspxq-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.aspxq-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.aspxq-loading i{margin-right:6px}
.aspxq-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.aspxq-note p{margin:0}

/* ===== AI 商品评论分析（aplfx-）===== */
.aplfx-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.aplfx-form{margin-bottom:20px}
.aplfx-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.aplfx-row-2{flex-wrap:wrap}
.aplfx-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.aplfx-label{color:var(--muted);font-size:14px;flex-shrink:0}
.aplfx-req{color:#e53935}
.aplfx-input,.aplfx-textarea,.aplfx-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.aplfx-textarea{min-height:180px;resize:vertical;line-height:1.7}
.aplfx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.aplfx-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.aplfx-btn:hover{background:var(--hover)}
.aplfx-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aplfx-btn-primary:hover{opacity:.9;background:var(--accent)}
.aplfx-btn-sm{padding:6px 12px;font-size:13px}
.aplfx-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.aplfx-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.aplfx-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.aplfx-result-actions{display:flex;gap:8px}
.aplfx-result-body{color:var(--fg);font-size:14px;line-height:1.8}
.aplfx-md h2,.aplfx-md h3,.aplfx-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.aplfx-md h2{font-size:18px}.aplfx-md h3{font-size:16px}.aplfx-md h4{font-size:15px}
.aplfx-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.aplfx-md strong{color:var(--fg)}
.aplfx-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.aplfx-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.aplfx-loading i{margin-right:6px}
.aplfx-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.aplfx-note p{margin:0}

/* ===== AI 客服话术（akfhs-）===== */
.akfhs-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.akfhs-form{margin-bottom:20px}
.akfhs-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.akfhs-row-2{flex-wrap:wrap}
.akfhs-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.akfhs-label{color:var(--muted);font-size:14px;flex-shrink:0}
.akfhs-req{color:#e53935}
.akfhs-input,.akfhs-textarea,.akfhs-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.akfhs-textarea{min-height:120px;resize:vertical;line-height:1.7}
.akfhs-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.akfhs-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.akfhs-btn:hover{background:var(--hover)}
.akfhs-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.akfhs-btn-primary:hover{opacity:.9;background:var(--accent)}
.akfhs-btn-sm{padding:6px 12px;font-size:13px}
.akfhs-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.akfhs-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.akfhs-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.akfhs-result-actions{display:flex;gap:8px}
.akfhs-result-body{color:var(--fg);font-size:14px;line-height:1.8}
.akfhs-md h2,.akfhs-md h3,.akfhs-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.akfhs-md h2{font-size:18px}.akfhs-md h3{font-size:16px}.akfhs-md h4{font-size:15px}
.akfhs-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.akfhs-md strong{color:var(--fg)}
.akfhs-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.akfhs-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.akfhs-loading i{margin-right:6px}
.akfhs-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.akfhs-note p{margin:0}

/* ===== AI 直播话术（azbhs-）===== */
.azbhs-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.azbhs-form{margin-bottom:20px}
.azbhs-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.azbhs-row-3{flex-wrap:wrap}
.azbhs-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.azbhs-label{color:var(--muted);font-size:14px;flex-shrink:0}
.azbhs-req{color:#e53935}
.azbhs-input,.azbhs-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.azbhs-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.azbhs-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.azbhs-btn:hover{background:var(--hover)}
.azbhs-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.azbhs-btn-primary:hover{opacity:.9;background:var(--accent)}
.azbhs-btn-sm{padding:6px 12px;font-size:13px}
.azbhs-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.azbhs-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.azbhs-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.azbhs-result-actions{display:flex;gap:8px}
.azbhs-result-body{color:var(--fg);font-size:14px;line-height:1.8}
.azbhs-md h2,.azbhs-md h3,.azbhs-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.azbhs-md h2{font-size:18px}.azbhs-md h3{font-size:16px}.azbhs-md h4{font-size:15px}
.azbhs-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.azbhs-md strong{color:var(--fg)}
.azbhs-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.azbhs-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.azbhs-loading i{margin-right:6px}
.azbhs-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.azbhs-note p{margin:0}

/* ===== AI 用户画像（ayhhx-）===== */
.ayhhx-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ayhhx-form{margin-bottom:20px}
.ayhhx-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ayhhx-row-2{flex-wrap:wrap}
.ayhhx-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.ayhhx-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ayhhx-req{color:#e53935}
.ayhhx-input,.ayhhx-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.ayhhx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ayhhx-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ayhhx-btn:hover{background:var(--hover)}
.ayhhx-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ayhhx-btn-primary:hover{opacity:.9;background:var(--accent)}
.ayhhx-btn-sm{padding:6px 12px;font-size:13px}
.ayhhx-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ayhhx-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ayhhx-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ayhhx-result-actions{display:flex;gap:8px}
.ayhhx-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ayhhx-md h2,.ayhhx-md h3,.ayhhx-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ayhhx-md h2{font-size:18px}.ayhhx-md h3{font-size:16px}.ayhhx-md h4{font-size:15px}
.ayhhx-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ayhhx-md strong{color:var(--fg)}
.ayhhx-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ayhhx-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ayhhx-loading i{margin-right:6px}
.ayhhx-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ayhhx-note p{margin:0}

/* ===== 移动端适配 ===== */
@media (max-width:768px){
  .aspxq-row,.aplfx-row,.akfhs-row,.azbhs-row,.ayhhx-row{flex-wrap:wrap}
  .aspxq-label,.aplfx-label,.akfhs-label,.azbhs-label,.ayhhx-label{width:100%}
  .aspxq-col,.aplfx-col,.akfhs-col,.azbhs-col,.ayhhx-col{min-width:100%}
  .aspxq-actions,.aplfx-actions,.akfhs-actions,.azbhs-actions,.ayhhx-actions{flex-direction:column}
  .aspxq-btn,.aplfx-btn,.akfhs-btn,.azbhs-btn,.ayhhx-btn{flex:1;justify-content:center;text-align:center}
  .aspxq-result-head,.aplfx-result-head,.akfhs-result-head,.azbhs-result-head,.ayhhx-result-head{flex-direction:column;align-items:stretch}
  .aspxq-result-actions,.aplfx-result-actions,.akfhs-result-actions,.azbhs-result-actions,.ayhhx-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .aspxq-wrap,.aplfx-wrap,.akfhs-wrap,.azbhs-wrap,.ayhhx-wrap{padding:14px}
  .aspxq-result,.aplfx-result,.akfhs-result,.azbhs-result,.ayhhx-result{padding:14px}
}

/* ===== AI 代码优化（admyh-）===== */
.admyh-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.admyh-form{margin-bottom:20px}
.admyh-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.admyh-row-2{flex-wrap:wrap}
.admyh-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.admyh-label{color:var(--muted);font-size:14px;flex-shrink:0}
.admyh-req{color:#e53935}
.admyh-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.admyh-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:13px;font-family:'Courier New',monospace;width:100%;min-height:240px;resize:vertical;line-height:1.6;box-sizing:border-box}
.admyh-textarea:focus{border-color:var(--accent)}
.admyh-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.admyh-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.admyh-btn:hover{background:var(--hover)}
.admyh-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.admyh-btn-primary:hover{opacity:.9;background:var(--accent)}
.admyh-btn-sm{padding:6px 12px;font-size:13px}
.admyh-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.admyh-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.admyh-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.admyh-result-actions{display:flex;gap:8px}
.admyh-result-body{color:var(--fg);font-size:14px;line-height:1.8}
.admyh-md h2,.admyh-md h3,.admyh-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.admyh-md h2{font-size:18px}.admyh-md h3{font-size:16px}.admyh-md h4{font-size:15px}
.admyh-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.admyh-md pre{background:var(--hover);padding:12px;border-radius:8px;overflow-x:auto}
.admyh-md pre code{background:none;padding:0}
.admyh-md strong{color:var(--fg)}
.admyh-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.admyh-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.admyh-loading i{margin-right:6px}
.admyh-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.admyh-note p{margin:0}

/* ===== AI Bug 修复（abxf-）===== */
.abxf-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.abxf-form{margin-bottom:20px}
.abxf-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.abxf-row-2{flex-wrap:wrap}
.abxf-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.abxf-label{color:var(--muted);font-size:14px;flex-shrink:0}
.abxf-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.abxf-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:13px;font-family:'Courier New',monospace;width:100%;min-height:200px;resize:vertical;line-height:1.6;box-sizing:border-box}
.abxf-textarea-sm{min-height:100px}
.abxf-textarea:focus{border-color:var(--accent)}
.abxf-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.abxf-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.abxf-btn:hover{background:var(--hover)}
.abxf-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.abxf-btn-primary:hover{opacity:.9;background:var(--accent)}
.abxf-btn-sm{padding:6px 12px;font-size:13px}
.abxf-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.abxf-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.abxf-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.abxf-result-actions{display:flex;gap:8px}
.abxf-result-body{color:var(--fg);font-size:14px;line-height:1.8}
.abxf-md h2,.abxf-md h3,.abxf-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.abxf-md h2{font-size:18px}.abxf-md h3{font-size:16px}.abxf-md h4{font-size:15px}
.abxf-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.abxf-md pre{background:var(--hover);padding:12px;border-radius:8px;overflow-x:auto}
.abxf-md pre code{background:none;padding:0}
.abxf-md strong{color:var(--fg)}
.abxf-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.abxf-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.abxf-loading i{margin-right:6px}
.abxf-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.abxf-note p{margin:0}

/* ===== AI 单元测试（adycs-）===== */
.adycs-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.adycs-form{margin-bottom:20px}
.adycs-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.adycs-row-2{flex-wrap:wrap}
.adycs-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.adycs-label{color:var(--muted);font-size:14px;flex-shrink:0}
.adycs-req{color:#e53935}
.adycs-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.adycs-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:13px;font-family:'Courier New',monospace;width:100%;min-height:240px;resize:vertical;line-height:1.6;box-sizing:border-box}
.adycs-textarea:focus{border-color:var(--accent)}
.adycs-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.adycs-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.adycs-btn:hover{background:var(--hover)}
.adycs-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.adycs-btn-primary:hover{opacity:.9;background:var(--accent)}
.adycs-btn-sm{padding:6px 12px;font-size:13px}
.adycs-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.adycs-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.adycs-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.adycs-result-actions{display:flex;gap:8px}
.adycs-result-body{color:var(--fg);font-size:14px;line-height:1.8}
.adycs-md h2,.adycs-md h3,.adycs-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.adycs-md h2{font-size:18px}.adycs-md h3{font-size:16px}.adycs-md h4{font-size:15px}
.adycs-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.adycs-md pre{background:var(--hover);padding:12px;border-radius:8px;overflow-x:auto}
.adycs-md pre code{background:none;padding:0}
.adycs-md strong{color:var(--fg)}
.adycs-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.adycs-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.adycs-loading i{margin-right:6px}
.adycs-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.adycs-note p{margin:0}

/* ===== AI SQL 生成（asqlsc-）===== */
.asqlsc-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.asqlsc-form{margin-bottom:20px}
.asqlsc-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.asqlsc-row-2{flex-wrap:wrap}
.asqlsc-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.asqlsc-label{color:var(--muted);font-size:14px;flex-shrink:0}
.asqlsc-req{color:#e53935}
.asqlsc-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.asqlsc-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;min-height:140px;resize:vertical;line-height:1.7;box-sizing:border-box}
.asqlsc-textarea-sm{min-height:90px;font-family:'Courier New',monospace;font-size:13px}
.asqlsc-textarea:focus{border-color:var(--accent)}
.asqlsc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.asqlsc-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.asqlsc-btn:hover{background:var(--hover)}
.asqlsc-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asqlsc-btn-primary:hover{opacity:.9;background:var(--accent)}
.asqlsc-btn-sm{padding:6px 12px;font-size:13px}
.asqlsc-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.asqlsc-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.asqlsc-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.asqlsc-result-actions{display:flex;gap:8px}
.asqlsc-result-body{color:var(--fg);font-size:14px;line-height:1.8}
.asqlsc-md h2,.asqlsc-md h3,.asqlsc-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.asqlsc-md h2{font-size:18px}.asqlsc-md h3{font-size:16px}.asqlsc-md h4{font-size:15px}
.asqlsc-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.asqlsc-md pre{background:var(--hover);padding:12px;border-radius:8px;overflow-x:auto}
.asqlsc-md pre code{background:none;padding:0}
.asqlsc-md strong{color:var(--fg)}
.asqlsc-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.asqlsc-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.asqlsc-loading i{margin-right:6px}
.asqlsc-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.asqlsc-note p{margin:0}

/* ===== AI 正则生成（azzsc-）===== */
.azzsc-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.azzsc-form{margin-bottom:20px}
.azzsc-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.azzsc-row-2{flex-wrap:wrap}
.azzsc-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.azzsc-label{color:var(--muted);font-size:14px;flex-shrink:0}
.azzsc-req{color:#e53935}
.azzsc-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.azzsc-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;min-height:100px;resize:vertical;line-height:1.7;box-sizing:border-box}
.azzsc-textarea-sm{min-height:70px;font-family:'Courier New',monospace;font-size:13px}
.azzsc-textarea:focus{border-color:var(--accent)}
.azzsc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.azzsc-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.azzsc-btn:hover{background:var(--hover)}
.azzsc-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.azzsc-btn-primary:hover{opacity:.9;background:var(--accent)}
.azzsc-btn-sm{padding:6px 12px;font-size:13px}
.azzsc-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.azzsc-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.azzsc-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.azzsc-result-actions{display:flex;gap:8px}
.azzsc-result-body{color:var(--fg);font-size:14px;line-height:1.8}
.azzsc-md h2,.azzsc-md h3,.azzsc-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.azzsc-md h2{font-size:18px}.azzsc-md h3{font-size:16px}.azzsc-md h4{font-size:15px}
.azzsc-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.azzsc-md pre{background:var(--hover);padding:12px;border-radius:8px;overflow-x:auto}
.azzsc-md pre code{background:none;padding
.azzsc-md strong{color:var(--fg)}
.azzsc-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.azzsc-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.azzsc-loading i{margin-right:6px}
.azzsc-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.azzsc-note p{margin:0}

/* ===== 移动端适配 ===== */
@media (max-width:768px){
  .admyh-row,.abxf-row,.adycs-row,.asqlsc-row,.azzsc-row{flex-wrap:wrap}
  .admyh-label,.abxf-label,.adycs-label,.asqlsc-label,.azzsc-label{width:100%}
  .admyh-col,.abxf-col,.adycs-col,.asqlsc-col,.azzsc-col{min-width:100%}
  .admyh-actions,.abxf-actions,.adycs-actions,.asqlsc-actions,.azzsc-actions{flex-direction:column}
  .admyh-btn,.abxf-btn,.adycs-btn,.asqlsc-btn,.azzsc-btn{flex:1;justify-content:center;text-align:center}
  .admyh-result-head,.abxf-result-head,.adycs-result-head,.asqlsc-result-head,.azzsc-result-head{flex-direction:column;align-items:stretch}
  .admyh-result-actions,.abxf-result-actions,.adycs-result-actions,.asqlsc-result-actions,.azzsc-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .admyh-wrap,.abxf-wrap,.adycs-wrap,.asqlsc-wrap,.azzsc-wrap{padding:14px}
  .admyh-result,.abxf-result,.adycs-result,.asqlsc-result,.azzsc-result{padding:14px}
}
}

/* ===== AI 宝宝名字（abbmz-）===== */
.abbmz-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.abbmz-form{margin-bottom:20px}
.abbmz-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.abbmz-row-2{flex-wrap:wrap}
.abbmz-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.abbmz-label{color:var(--muted);font-size:14px;flex-shrink:0}
.abbmz-req{color:#e53935}
.abbmz-input,.abbmz-textarea,.abbmz-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.abbmz-textarea{min-height:80px;resize:vertical;line-height:1.6}
.abbmz-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.abbmz-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.abbmz-btn:hover{background:var(--hover)}
.abbmz-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.abbmz-btn-primary:hover{opacity:.9;background:var(--accent)}
.abbmz-btn-sm{padding:6px 12px;font-size:13px}
.abbmz-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.abbmz-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.abbmz-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.abbmz-result-actions{display:flex;gap:8px}
.abbmz-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.abbmz-md h2,.abbmz-md h3,.abbmz-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.abbmz-md h2{font-size:18px}.abbmz-md h3{font-size:16px}.abbmz-md h4{font-size:15px}
.abbmz-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.abbmz-md strong{color:var(--fg)}
.abbmz-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.abbmz-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.abbmz-loading i{margin-right:6px}
.abbmz-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.abbmz-note p{margin:0}

/* ===== AI 网名（awm-）===== */
.awm-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.awm-form{margin-bottom:20px}
.awm-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.awm-row-2{flex-wrap:wrap}
.awm-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.awm-label{color:var(--muted);font-size:14px;flex-shrink:0}
.awm-input,.awm-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.awm-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.awm-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.awm-btn:hover{background:var(--hover)}
.awm-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.awm-btn-primary:hover{opacity:.9;background:var(--accent)}
.awm-btn-sm{padding:6px 12px;font-size:13px}
.awm-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.awm-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.awm-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.awm-result-actions{display:flex;gap:8px}
.awm-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.awm-md h2,.awm-md h3,.awm-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.awm-md h2{font-size:18px}.awm-md h3{font-size:16px}.awm-md h4{font-size:15px}
.awm-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.awm-md strong{color:var(--fg)}
.awm-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.awm-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.awm-loading i{margin-right:6px}
.awm-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.awm-note p{margin:0}

/* ===== AI 表白语（abby-）===== */
.abby-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.abby-form{margin-bottom:20px}
.abby-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.abby-row-2{flex-wrap:wrap}
.abby-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.abby-label{color:var(--muted);font-size:14px;flex-shrink:0}
.abby-input,.abby-textarea,.abby-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.abby-textarea{min-height:80px;resize:vertical;line-height:1.6}
.abby-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.abby-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.abby-btn:hover{background:var(--hover)}
.abby-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.abby-btn-primary:hover{opacity:.9;background:var(--accent)}
.abby-btn-sm{padding:6px 12px;font-size:13px}
.abby-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.abby-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.abby-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.abby-result-actions{display:flex;gap:8px}
.abby-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.abby-md h2,.abby-md h3,.abby-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.abby-md h2{font-size:18px}.abby-md h3{font-size:16px}.abby-md h4{font-size:15px}
.abby-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.abby-md strong{color:var(--fg)}
.abby-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.abby-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.abby-loading i{margin-right:6px}
.abby-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.abby-note p{margin:0}

/* ===== AI 节日祝福（ajrzf-）===== */
.ajrzf-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ajrzf-form{margin-bottom:20px}
.ajrzf-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ajrzf-row-2{flex-wrap:wrap}
.ajrzf-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.ajrzf-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ajrzf-input,.ajrzf-textarea,.ajrzf-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.ajrzf-textarea{min-height:80px;resize:vertical;line-height:1.6}
.ajrzf-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ajrzf-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ajrzf-btn:hover{background:var(--hover)}
.ajrzf-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ajrzf-btn-primary:hover{opacity:.9;background:var(--accent)}
.ajrzf-btn-sm{padding:6px 12px;font-size:13px}
.ajrzf-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ajrzf-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ajrzf-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ajrzf-result-actions{display:flex;gap:8px}
.ajrzf-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ajrzf-md h2,.ajrzf-md h3,.ajrzf-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ajrzf-md h2{font-size:18px}.ajrzf-md h3{font-size:16px}.ajrzf-md h4{font-size:15px}
.ajrzf-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ajrzf-md strong{color:var(--fg)}
.ajrzf-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ajrzf-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ajrzf-loading i{margin-right:6px}
.ajrzf-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ajrzf-note p{margin:0}

/* ===== AI 挽联/悼词（awldc-）===== */
.awldc-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.awldc-form{margin-bottom:20px}
.awldc-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.awldc-row-2{flex-wrap:wrap}
.awldc-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.awldc-label{color:var(--muted);font-size:14px;flex-shrink:0}
.awldc-req{color:#e53935}
.awldc-input,.awldc-textarea,.awldc-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.awldc-textarea{min-height:100px;resize:vertical;line-height:1.6}
.awldc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.awldc-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.awldc-btn:hover{background:var(--hover)}
.awldc-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.awldc-btn-primary:hover{opacity:.9;background:var(--accent)}
.awldc-btn-sm{padding:6px 12px;font-size:13px}
.awldc-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.awldc-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.awldc-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.awldc-result-actions{display:flex;gap:8px}
.awldc-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.awldc-md h2,.awldc-md h3,.awldc-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.awldc-md h2{font-size:18px}.awldc-md h3{font-size:16px}.awldc-md h4{font-size:15px}
.awldc-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.awldc-md strong{color:var(--fg)}
.awldc-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.awldc-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.awldc-loading i{margin-right:6px}
.awldc-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.awldc-note p{margin:0}

/* ===== 移动端适配 ===== */
@media (max-width:768px){
  .abbmz-row,.awm-row,.abby-row,.ajrzf-row,.awldc-row{flex-wrap:wrap}
  .abbmz-label,.awm-label,.abby-label,.ajrzf-label,.awldc-label{width:100%}
  .abbmz-col,.awm-col,.abby-col,.ajrzf-col,.awldc-col{min-width:100%}
  .abbmz-actions,.awm-actions,.abby-actions,.ajrzf-actions,.awldc-actions{flex-direction:column}
  .abbmz-btn,.awm-btn,.abby-btn,.ajrzf-btn,.awldc-btn{flex:1;justify-content:center;text-align:center}
  .abbmz-result-head,.awm-result-head,.abby-result-head,.ajrzf-result-head,.awldc-result-head{flex-direction:column;align-items:stretch}
  .abbmz-result-actions,.awm-result-actions,.abby-result-actions,.ajrzf-result-actions,.awldc-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .abbmz-wrap,.awm-wrap,.abby-wrap,.ajrzf-wrap,.awldc-wrap{padding:14px}
  .abbmz-result,.awm-result,.abby-result,.ajrzf-result,.awldc-result{padding:14px}
}

/* ===== AI 英语作文批改（ayyzwpg-）===== */
.ayyzwpg-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ayyzwpg-form{margin-bottom:20px}
.ayyzwpg-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ayyzwpg-row-2{flex-wrap:wrap}
.ayyzwpg-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.ayyzwpg-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ayyzwpg-req{color:#e53935}
.ayyzwpg-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.ayyzwpg-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;min-height:220px;resize:vertical;line-height:1.7;box-sizing:border-box}
.ayyzwpg-textarea:focus{border-color:var(--accent)}
.ayyzwpg-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ayyzwpg-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ayyzwpg-btn:hover{background:var(--hover)}
.ayyzwpg-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ayyzwpg-btn-primary:hover{opacity:.9;background:var(--accent)}
.ayyzwpg-btn-sm{padding:6px 12px;font-size:13px}
.ayyzwpg-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ayyzwpg-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ayyzwpg-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ayyzwpg-result-actions{display:flex;gap:8px}
.ayyzwpg-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ayyzwpg-md h2,.ayyzwpg-md h3,.ayyzwpg-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ayyzwpg-md h2{font-size:18px}.ayyzwpg-md h3{font-size:16px}.ayyzwpg-md h4{font-size:15px}
.ayyzwpg-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ayyzwpg-md strong{color:var(--fg)}
.ayyzwpg-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ayyzwpg-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ayyzwpg-loading i{margin-right:6px}
.ayyzwpg-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ayyzwpg-note p{margin:0}

/* ===== AI 单词记忆（adcjy-）===== */
.adcjy-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.adcjy-form{margin-bottom:20px}
.adcjy-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.adcjy-row-2{flex-wrap:wrap}
.adcjy-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.adcjy-label{color:var(--muted);font-size:14px;flex-shrink:0}
.adcjy-req{color:#e53935}
.adcjy-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.adcjy-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;min-height:140px;resize:vertical;line-height:1.7;box-sizing:border-box}
.adcjy-textarea:focus{border-color:var(--accent)}
.adcjy-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.adcjy-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.adcjy-btn:hover{background:var(--hover)}
.adcjy-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.adcjy-btn-primary:hover{opacity:.9;background:var(--accent)}
.adcjy-btn-sm{padding:6px 12px;font-size:13px}
.adcjy-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.adcjy-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.adcjy-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.adcjy-result-actions{display:flex;gap:8px}
.adcjy-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.adcjy-md h2,.adcjy-md h3,.adcjy-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.adcjy-md h2{font-size:18px}.adcjy-md h3{font-size:16px}.adcjy-md h4{font-size:15px}
.adcjy-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.adcjy-md strong{color:var(--fg)}
.adcjy-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.adcjy-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.adcjy-loading i{margin-right:6px}
.adcjy-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.adcjy-note p{margin:0}

/* ===== AI 错题分析（actfx-）===== */
.actfx-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.actfx-form{margin-bottom:20px}
.actfx-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.actfx-row-2{flex-wrap:wrap}
.actfx-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.actfx-label{color:var(--muted);font-size:14px;flex-shrink:0}
.actfx-req{color:#e53935}
.actfx-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.actfx-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;min-height:160px;resize:vertical;line-height:1.7;box-sizing:border-box}
.actfx-textarea-sm{min-height:80px}
.actfx-textarea:focus{border-color:var(--accent)}
.actfx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.actfx-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.actfx-btn:hover{background:var(--hover)}
.actfx-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.actfx-btn-primary:hover{opacity:.9;background:var(--accent)}
.actfx-btn-sm{padding:6px 12px;font-size:13px}
.actfx-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.actfx-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.actfx-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.actfx-result-actions{display:flex;gap:8px}
.actfx-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.actfx-md h2,.actfx-md h3,.actfx-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.actfx-md h2{font-size:18px}.actfx-md h3{font-size:16px}.actfx-md h4{font-size:15px}
.actfx-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.actfx-md strong{color:var(--fg)}
.actfx-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.actfx-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.actfx-loading i{margin-right:6px}
.actfx-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.actfx-note p{margin:0}

/* ===== AI 学习路径（axxlj-）===== */
.axxlj-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.axxlj-form{margin-bottom:20px}
.axxlj-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.axxlj-row-2{flex-wrap:wrap}
.axxlj-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.axxlj-label{color:var(--muted);font-size:14px;flex-shrink:0}
.axxlj-req{color:#e53935}
.axxlj-input,.axxlj-textarea{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.axxlj-textarea{min-height:100px;resize:vertical;line-height:1.6}
.axxlj-textarea-sm{min-height:70px}
.axxlj-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.axxlj-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.axxlj-btn:hover{background:var(--hover)}
.axxlj-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.axxlj-btn-primary:hover{opacity:.9;background:var(--accent)}
.axxlj-btn-sm{padding:6px 12px;font-size:13px}
.axxlj-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.axxlj-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.axxlj-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.axxlj-result-actions{display:flex;gap:8px}
.axxlj-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.axxlj-md h2,.axxlj-md h3,.axxlj-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.axxlj-md h2{font-size:18px}.axxlj-md h3{font-size:16px}.axxlj-md h4{font-size:15px}
.axxlj-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.axxlj-md strong{color:var(--fg)}
.axxlj-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.axxlj-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.axxlj-loading i{margin-right:6px}
.axxlj-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.axxlj-note p{margin:0}

/* ===== AI 知识卡片（azskp-）===== */
.azskp-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.azskp-form{margin-bottom:20px}
.azskp-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.azskp-row-2{flex-wrap:wrap}
.azskp-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.azskp-label{color:var(--muted);font-size:14px;flex-shrink:0}
.azskp-req{color:#e53935}
.azskp-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.azskp-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;min-height:100px;resize:vertical;line-height:1.7;box-sizing:border-box}
.azskp-textarea:focus{border-color:var(--accent)}
.azskp-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.azskp-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.azskp-btn:hover{background:var(--hover)}
.azskp-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.azskp-btn-primary:hover{opacity:.9;background:var(--accent)}
.azskp-btn-sm{padding:6px 12px;font-size:13px}
.azskp-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.azskp-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.azskp-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.azskp-result-actions{display:flex;gap:8px}
.azskp-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.azskp-md h2,.azskp-md h3,.azskp-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.azskp-md h2{font-size:18px}.azskp-md h3{font-size:16px}.azskp-md h4{font-size:15px}
.azskp-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.azskp-md strong{color:var(--fg)}
.azskp-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.azskp-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.azskp-loading i{margin-right:6px}
.azskp-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.azskp-note p{margin:0}

@media (max-width:768px){
  .ayyzwpg-row,.adcjy-row,.actfx-row,.axxlj-row,.azskp-row{flex-wrap:wrap}
  .ayyzwpg-label,.adcjy-label,.actfx-label,.axxlj-label,.azskp-label{width:100%}
  .ayyzwpg-col,.adcjy-col,.actfx-col,.axxlj-col,.azskp-col{min-width:100%}
  .ayyzwpg-actions,.adcjy-actions,.actfx-actions,.axxlj-actions,.azskp-actions{flex-direction:column}
  .ayyzwpg-btn,.adcjy-btn,.actfx-btn,.axxlj-btn,.azskp-btn{flex:1;justify-content:center;text-align:center}
  .ayyzwpg-result-head,.adcjy-result-head,.actfx-result-head,.axxlj-result-head,.azskp-result-head{flex-direction:column;align-items:stretch}
  .ayyzwpg-result-actions,.adcjy-result-actions,.actfx-result-actions,.axxlj-result-actions,.azskp-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .ayyzwpg-wrap,.adcjy-wrap,.actfx-wrap,.axxlj-wrap,.azskp-wrap{padding:14px}
  .ayyzwpg-result,.adcjy-result,.actfx-result,.axxlj-result,.azskp-result{padding:14px}
}

/* ===== AI 述职报告（aszbg-）===== */
.aszbg-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.aszbg-form{margin-bottom:20px}
.aszbg-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.aszbg-row-2{flex-wrap:wrap}
.aszbg-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.aszbg-label{color:var(--muted);font-size:14px;flex-shrink:0}
.aszbg-req{color:#e53935}
.aszbg-input,.aszbg-textarea,.aszbg-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.aszbg-textarea{min-height:100px;resize:vertical;line-height:1.6}
.aszbg-textarea-sm{min-height:70px}
.aszbg-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.aszbg-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.aszbg-btn:hover{background:var(--hover)}
.aszbg-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aszbg-btn-primary:hover{opacity:.9;background:var(--accent)}
.aszbg-btn-sm{padding:6px 12px;font-size:13px}
.aszbg-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.aszbg-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.aszbg-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.aszbg-result-actions{display:flex;gap:8px}
.aszbg-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.aszbg-md h2,.aszbg-md h3,.aszbg-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.aszbg-md h2{font-size:18px}.aszbg-md h3{font-size:16px}.aszbg-md h4{font-size:15px}
.aszbg-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.aszbg-md strong{color:var(--fg)}
.aszbg-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.aszbg-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.aszbg-loading i{margin-right:6px}
.aszbg-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.aszbg-note p{margin:0}

/* ===== AI 推荐信（atjx-）===== */
.atjx-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.atjx-form{margin-bottom:20px}
.atjx-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.atjx-row-2{flex-wrap:wrap}
.atjx-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.atjx-label{color:var(--muted);font-size:14px;flex-shrink:0}
.atjx-req{color:#e53935}
.atjx-input,.atjx-textarea,.atjx-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.atjx-textarea{min-height:100px;resize:vertical;line-height:1.6}
.atjx-textarea-sm{min-height:70px}
.atjx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.atjx-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.atjx-btn:hover{background:var(--hover)}
.atjx-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.atjx-btn-primary:hover{opacity:.9;background:var(--accent)}
.atjx-btn-sm{padding:6px 12px;font-size:13px}
.atjx-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.atjx-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.atjx-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.atjx-result-actions{display:flex;gap:8px}
.atjx-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.atjx-md h2,.atjx-md h3,.atjx-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.atjx-md h2{font-size:18px}.atjx-md h3{font-size:16px}.atjx-md h4{font-size:15px}
.atjx-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.atjx-md strong{color:var(--fg)}
.atjx-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.atjx-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.atjx-loading i{margin-right:6px}
.atjx-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.atjx-note p{margin:0}

/* ===== AI 邀请函（ayqh-）===== */
.ayqh-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ayqh-form{margin-bottom:20px}
.ayqh-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ayqh-row-2{flex-wrap:wrap}
.ayqh-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.ayqh-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ayqh-req{color:#e53935}
.ayqh-input,.ayqh-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.ayqh-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ayqh-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ayqh-btn:hover{background:var(--hover)}
.ayqh-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ayqh-btn-primary:hover{opacity:.9;background:var(--accent)}
.ayqh-btn-sm{padding:6px 12px;font-size:13px}
.ayqh-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ayqh-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ayqh-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ayqh-result-actions{display:flex;gap:8px}
.ayqh-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ayqh-md h2,.ayqh-md h3,.ayqh-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ayqh-md h2{font-size:18px}.ayqh-md h3{font-size:16px}.ayqh-md h4{font-size:15px}
.ayqh-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ayqh-md strong{color:var(--fg)}
.ayqh-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ayqh-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ayqh-loading i{margin-right:6px}
.ayqh-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ayqh-note p{margin:0}

/* ===== AI 项目计划（axmjh-）===== */
.axmjh-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.axmjh-form{margin-bottom:20px}
.axmjh-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.axmjh-row-3{flex-wrap:wrap}
.axmjh-col{flex:1;min-width:140px;display:flex;flex-direction:column;gap:6px}
.axmjh-label{color:var(--muted);font-size:14px;flex-shrink:0}
.axmjh-req{color:#e53935}
.axmjh-input,.axmjh-textarea{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.axmjh-textarea{min-height:100px;resize:vertical;line-height:1.6}
.axmjh-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.axmjh-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.axmjh-btn:hover{background:var(--hover)}
.axmjh-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.axmjh-btn-primary:hover{opacity:.9;background:var(--accent)}
.axmjh-btn-sm{padding:6px 12px;font-size:13px}
.axmjh-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.axmjh-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.axmjh-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.axmjh-result-actions{display:flex;gap:8px}
.axmjh-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.axmjh-md h2,.axmjh-md h3,.axmjh-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.axmjh-md h2{font-size:18px}.axmjh-md h3{font-size:16px}.axmjh-md h4{font-size:15px}
.axmjh-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.axmjh-md strong{color:var(--fg)}
.axmjh-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.axmjh-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.axmjh-loading i{margin-right:6px}
.axmjh-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.axmjh-note p{margin:0}

/* ===== AI 需求文档（axqwd-）===== */
.axqwd-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.axqwd-form{margin-bottom:20px}
.axqwd-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.axqwd-row-2{flex-wrap:wrap}
.axqwd-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.axqwd-label{color:var(--muted);font-size:14px;flex-shrink:0}
.axqwd-req{color:#e53935}
.axqwd-input,.axqwd-textarea,.axqwd-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.axqwd-textarea{min-height:120px;resize:vertical;line-height:1.6}
.axqwd-textarea-sm{min-height:70px}
.axqwd-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.axqwd-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.axqwd-btn:hover{background:var(--hover)}
.axqwd-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.axqwd-btn-primary:hover{opacity:.9;background:var(--accent)}
.axqwd-btn-sm{padding:6px 12px;font-size:13px}
.axqwd-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.axqwd-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.axqwd-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.axqwd-result-actions{display:flex;gap:8px}
.axqwd-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.axqwd-md h2,.axqwd-md h3,.axqwd-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.axqwd-md h2{font-size:18px}.axqwd-md h3{font-size:16px}.axqwd-md h4{font-size:15px}
.axqwd-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.axqwd-md strong{color:var(--fg)}
.axqwd-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.axqwd-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.axqwd-loading i{margin-right:6px}
.axqwd-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.axqwd-note p{margin:0}

@media (max-width:768px){
  .aszbg-row,.atjx-row,.ayqh-row,.axmjh-row,.axqwd-row{flex-wrap:wrap}
  .aszbg-label,.atjx-label,.ayqh-label,.axmjh-label,.axqwd-label{width:100%}
  .aszbg-col,.atjx-col,.ayqh-col,.axmjh-col,.axqwd-col{min-width:100%}
  .aszbg-actions,.atjx-actions,.ayqh-actions,.axmjh-actions,.axqwd-actions{flex-direction:column}
  .aszbg-btn,.atjx-btn,.ayqh-btn,.axmjh-btn,.axqwd-btn{flex:1;justify-content:center;text-align:center}
  .aszbg-result-head,.atjx-result-head,.ayqh-result-head,.axmjh-result-head,.axqwd-result-head{flex-direction:column;align-items:stretch}
  .aszbg-result-actions,.atjx-result-actions,.ayqh-result-actions,.axmjh-result-actions,.axqwd-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .aszbg-wrap,.atjx-wrap,.ayqh-wrap,.axmjh-wrap,.axqwd-wrap{padding:14px}
  .aszbg-result,.atjx-result,.ayqh-result,.axmjh-result,.axqwd-result{padding:14px}
}

/* ===== AI 测试用例（acsyl-）===== */
.acsyl-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.acsyl-form{margin-bottom:20px}
.acsyl-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.acsyl-row-3{flex-wrap:wrap}
.acsyl-col{flex:1;min-width:140px;display:flex;flex-direction:column;gap:6px}
.acsyl-label{color:var(--muted);font-size:14px;flex-shrink:0}
.acsyl-req{color:#e53935}
.acsyl-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.acsyl-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;min-height:140px;resize:vertical;line-height:1.7;box-sizing:border-box}
.acsyl-textarea:focus{border-color:var(--accent)}
.acsyl-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.acsyl-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.acsyl-btn:hover{background:var(--hover)}
.acsyl-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.acsyl-btn-primary:hover{opacity:.9;background:var(--accent)}
.acsyl-btn-sm{padding:6px 12px;font-size:13px}
.acsyl-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.acsyl-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.acsyl-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.acsyl-result-actions{display:flex;gap:8px}
.acsyl-result-body{color:var(--fg);font-size:14px;line-height:1.9;overflow-x:auto}
.acsyl-md h2,.acsyl-md h3,.acsyl-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.acsyl-md h2{font-size:18px}.acsyl-md h3{font-size:16px}.acsyl-md h4{font-size:15px}
.acsyl-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.acsyl-md strong{color:var(--fg)}
.acsyl-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.acsyl-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.acsyl-loading i{margin-right:6px}
.acsyl-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.acsyl-note p{margin:0}

/* ===== AI 技术方案（ajsfa-）===== */
.ajsfa-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ajsfa-form{margin-bottom:20px}
.ajsfa-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ajsfa-row-2{flex-wrap:wrap}
.ajsfa-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.ajsfa-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ajsfa-req{color:#e53935}
.ajsfa-input,.ajsfa-textarea{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.ajsfa-textarea{min-height:120px;resize:vertical;line-height:1.6}
.ajsfa-textarea-sm{min-height:70px}
.ajsfa-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ajsfa-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ajsfa-btn:hover{background:var(--hover)}
.ajsfa-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ajsfa-btn-primary:hover{opacity:.9;background:var(--accent)}
.ajsfa-btn-sm{padding:6px 12px;font-size:13px}
.ajsfa-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ajsfa-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ajsfa-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ajsfa-result-actions{display:flex;gap:8px}
.ajsfa-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ajsfa-md h2,.ajsfa-md h3,.ajsfa-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ajsfa-md h2{font-size:18px}.ajsfa-md h3{font-size:16px}.ajsfa-md h4{font-size:15px}
.ajsfa-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ajsfa-md strong{color:var(--fg)}
.ajsfa-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ajsfa-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ajsfa-loading i{margin-right:6px}
.ajsfa-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ajsfa-note p{margin:0}

/* ===== AI 架构设计（ajgsj-）===== */
.ajgsj-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ajgsj-form{margin-bottom:20px}
.ajgsj-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ajgsj-row-3{flex-wrap:wrap}
.ajgsj-col{flex:1;min-width:140px;display:flex;flex-direction:column;gap:6px}
.ajgsj-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ajgsj-req{color:#e53935}
.ajgsj-input,.ajgsj-textarea{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.ajgsj-textarea{min-height:120px;resize:vertical;line-height:1.6}
.ajgsj-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ajgsj-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ajgsj-btn:hover{background:var(--hover)}
.ajgsj-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ajgsj-btn-primary:hover{opacity:.9;background:var(--accent)}
.ajgsj-btn-sm{padding:6px 12px;font-size:13px}
.ajgsj-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ajgsj-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ajgsj-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ajgsj-result-actions{display:flex;gap:8px}
.ajgsj-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ajgsj-md h2,.ajgsj-md h3,.ajgsj-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ajgsj-md h2{font-size:18px}.ajgsj-md h3{font-size:16px}.ajgsj-md h4{font-size:15px}
.ajgsj-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ajgsj-md strong{color:var(--fg)}
.ajgsj-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ajgsj-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ajgsj-loading i{margin-right:6px}
.ajgsj-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ajgsj-note p{margin:0}

/* ===== AI API 文档（aapiwd-）===== */
.aapiwd-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.aapiwd-form{margin-bottom:20px}
.aapiwd-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.aapiwd-row-2{flex-wrap:wrap}
.aapiwd-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.aapiwd-label{color:var(--muted);font-size:14px;flex-shrink:0}
.aapiwd-req{color:#e53935}
.aapiwd-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.aapiwd-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;min-height:100px;resize:vertical;line-height:1.7;box-sizing:border-box}
.aapiwd-textarea-sm{min-height:70px}
.aapiwd-textarea:focus{border-color:var(--accent)}
.aapiwd-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.aapiwd-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.aapiwd-btn:hover{background:var(--hover)}
.aapiwd-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aapiwd-btn-primary:hover{opacity:.9;background:var(--accent)}
.aapiwd-btn-sm{padding:6px 12px;font-size:13px}
.aapiwd-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.aapiwd-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.aapiwd-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.aapiwd-result-actions{display:flex;gap:8px}
.aapiwd-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.aapiwd-md h2,.aapiwd-md h3,.aapiwd-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.aapiwd-md h2{font-size:18px}.aapiwd-md h3{font-size:16px}.aapiwd-md h4{font-size:15px}
.aapiwd-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.aapiwd-md strong{color:var(--fg)}
.aapiwd-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.aapiwd-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.aapiwd-loading i{margin-right:6px}
.aapiwd-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.aapiwd-note p{margin:0}

/* ===== AI 变量命名（ablmm-）===== */
.ablmm-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ablmm-form{margin-bottom:20px}
.ablmm-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ablmm-row-2{flex-wrap:wrap}
.ablmm-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.ablmm-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ablmm-req{color:#e53935}
.ablmm-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;width:100%}
.ablmm-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;min-height:100px;resize:vertical;line-height:1.7;box-sizing:border-box}
.ablmm-textarea:focus{border-color:var(--accent)}
.ablmm-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ablmm-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ablmm-btn:hover{background:var(--hover)}
.ablmm-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ablmm-btn-primary:hover{opacity:.9;background:var(--accent)}
.ablmm-btn-sm{padding:6px 12px;font-size:13px}
.ablmm-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ablmm-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ablmm-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ablmm-result-actions{display:flex;gap:8px}
.ablmm-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ablmm-md h2,.ablmm-md h3,.ablmm-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ablmm-md h2{font-size:18px}.ablmm-md h3{font-size:16px}.ablmm-md h4{font-size:15px}
.ablmm-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ablmm-md strong{color:var(--fg)}
.ablmm-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ablmm-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ablmm-loading i{margin-right:6px}
.ablmm-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ablmm-note p{margin:0}

@media (max-width:768px){
  .acsyl-row,.ajsfa-row,.ajgsj-row,.aapiwd-row,.ablmm-row{flex-wrap:wrap}
  .acsyl-label,.ajsfa-label,.ajgsj-label,.aapiwd-label,.ablmm-label{width:100%}
  .acsyl-col,.ajsfa-col,.ajgsj-col,.aapiwd-col,.ablmm-col{min-width:100%}
  .acsyl-actions,.ajsfa-actions,.ajgsj-actions,.aapiwd-actions,.ablmm-actions{flex-direction:column}
  .acsyl-btn,.ajsfa-btn,.ajgsj-btn,.aapiwd-btn,.ablmm-btn{flex:1;justify-content:center;text-align:center}
  .acsyl-result-head,.ajsfa-result-head,.ajgsj-result-head,.aapiwd-result-head,.ablmm-result-head{flex-direction:column;align-items:stretch}
  .acsyl-result-actions,.ajsfa-result-actions,.ajgsj-result-actions,.aapiwd-result-actions,.ablmm-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .acsyl-wrap,.ajsfa-wrap,.ajgsj-wrap,.aapiwd-wrap,.ablmm-wrap{padding:14px}
  .acsyl-result,.ajsfa-result,.ajgsj-result,.aapiwd-result,.ablmm-result{padding:14px}
}

/* ===== AI 旅行行程（alxxx-）===== */
.alxxx-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.alxxx-form{margin-bottom:20px}
.alxxx-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.alxxx-row-3{flex-wrap:wrap}
.alxxx-col{flex:1;min-width:140px;display:flex;flex-direction:column;gap:6px}
.alxxx-label{color:var(--muted);font-size:14px;flex-shrink:0}
.alxxx-req{color:#e53935}
.alxxx-input,.alxxx-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.alxxx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.alxxx-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.alxxx-btn:hover{background:var(--hover)}
.alxxx-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.alxxx-btn-primary:hover{opacity:.9;background:var(--accent)}
.alxxx-btn-sm{padding:6px 12px;font-size:13px}
.alxxx-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.alxxx-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.alxxx-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.alxxx-result-actions{display:flex;gap:8px}
.alxxx-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.alxxx-md h2,.alxxx-md h3,.alxxx-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.alxxx-md h2{font-size:18px}.alxxx-md h3{font-size:16px}.alxxx-md h4{font-size:15px}
.alxxx-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.alxxx-md strong{color:var(--fg)}
.alxxx-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.alxxx-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.alxxx-loading i{margin-right:6px}
.alxxx-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.alxxx-note p{margin:0}

/* ===== AI 购物清单（agwqd-）===== */
.agwqd-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.agwqd-form{margin-bottom:20px}
.agwqd-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.agwqd-row-3{flex-wrap:wrap}
.agwqd-col{flex:1;min-width:140px;display:flex;flex-direction:column;gap:6px}
.agwqd-label{color:var(--muted);font-size:14px;flex-shrink:0}
.agwqd-req{color:#e53935}
.agwqd-input,.agwqd-textarea{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.agwqd-textarea{min-height:80px;resize:vertical;line-height:1.6}
.agwqd-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.agwqd-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.agwqd-btn:hover{background:var(--hover)}
.agwqd-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.agwqd-btn-primary:hover{opacity:.9;background:var(--accent)}
.agwqd-btn-sm{padding:6px 12px;font-size:13px}
.agwqd-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.agwqd-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.agwqd-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.agwqd-result-actions{display:flex;gap:8px}
.agwqd-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.agwqd-md h2,.agwqd-md h3,.agwqd-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.agwqd-md h2{font-size:18px}.agwqd-md h3{font-size:16px}.agwqd-md h4{font-size:15px}
.agwqd-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.agwqd-md strong{color:var(--fg)}
.agwqd-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.agwqd-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.agwqd-loading i{margin-right:6px}
.agwqd-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.agwqd-note p{margin:0}

/* ===== AI 健身计划（ajsjh-）===== */
.ajsjh-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ajsjh-form{margin-bottom:20px}
.ajsjh-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ajsjh-row-2{flex-wrap:wrap}
.ajsjh-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.ajsjh-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ajsjh-req{color:#e53935}
.ajsjh-input,.ajsjh-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.ajsjh-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ajsjh-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ajsjh-btn:hover{background:var(--hover)}
.ajsjh-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ajsjh-btn-primary:hover{opacity:.9;background:var(--accent)}
.ajsjh-btn-sm{padding:6px 12px;font-size:13px}
.ajsjh-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ajsjh-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ajsjh-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ajsjh-result-actions{display:flex;gap:8px}
.ajsjh-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ajsjh-md h2,.ajsjh-md h3,.ajsjh-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ajsjh-md h2{font-size:18px}.ajsjh-md h3{font-size:16px}.ajsjh-md h4{font-size:15px}
.ajsjh-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ajsjh-md strong{color:var(--fg)}
.ajsjh-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ajsjh-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ajsjh-loading i{margin-right:6px}
.ajsjh-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ajsjh-note p{margin:0}

/* ===== AI 装修方案（azxfa-）===== */
.azxfa-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.azxfa-form{margin-bottom:20px}
.azxfa-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.azxfa-row-2{flex-wrap:wrap}
.azxfa-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.azxfa-label{color:var(--muted);font-size:14px;flex-shrink:0}
.azxfa-req{color:#e53935}
.azxfa-input,.azxfa-textarea,.azxfa-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.azxfa-textarea{min-height:80px;resize:vertical;line-height:1.6}
.azxfa-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.azxfa-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.azxfa-btn:hover{background:var(--hover)}
.azxfa-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.azxfa-btn-primary:hover{opacity:.9;background:var(--accent)}
.azxfa-btn-sm{padding:6px 12px;font-size:13px}
.azxfa-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.azxfa-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.azxfa-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.azxfa-result-actions{display:flex;gap:8px}
.azxfa-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.azxfa-md h2,.azxfa-md h3,.azxfa-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.azxfa-md h2{font-size:18px}.azxfa-md h3{font-size:16px}.azxfa-md h4{font-size:15px}
.azxfa-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.azxfa-md strong{color:var(--fg)}
.azxfa-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.azxfa-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.azxfa-loading i{margin-right:6px}
.azxfa-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.azxfa-note p{margin:0}

/* ===== AI 育儿建议（ayejy-）===== */
.ayejy-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ayejy-form{margin-bottom:20px}
.ayejy-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ayejy-row-2{flex-wrap:wrap}
.ayejy-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.ayejy-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ayejy-req{color:#e53935}
.ayejy-input,.ayejy-textarea,.ayejy-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.ayejy-textarea{min-height:120px;resize:vertical;line-height:1.6}
.ayejy-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ayejy-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ayejy-btn:hover{background:var(--hover)}
.ayejy-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ayejy-btn-primary:hover{opacity:.9;background:var(--accent)}
.ayejy-btn-sm{padding:6px 12px;font-size:13px}
.ayejy-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ayejy-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ayejy-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ayejy-result-actions{display:flex;gap:8px}
.ayejy-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ayejy-md h2,.ayejy-md h3,.ayejy-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ayejy-md h2{font-size:18px}.ayejy-md h3{font-size:16px}.ayejy-md h4{font-size:15px}
.ayejy-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ayejy-md strong{color:var(--fg)}
.ayejy-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ayejy-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ayejy-loading i{margin-right:6px}
.ayejy-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ayejy-note p{margin:0}

@media (max-width:768px){
  .alxxx-row,.agwqd-row,.ajsjh-row,.azxfa-row,.ayejy-row{flex-wrap:wrap}
  .alxxx-label,.agwqd-label,.ajsjh-label,.azxfa-label,.ayejy-label{width:100%}
  .alxxx-col,.agwqd-col,.ajsjh-col,.azxfa-col,.ayejy-col{min-width:100%}
  .alxxx-actions,.agwqd-actions,.ajsjh-actions,.azxfa-actions,.ayejy-actions{flex-direction:column}
  .alxxx-btn,.agwqd-btn,.ajsjh-btn,.azxfa-btn,.ayejy-btn{flex:1;justify-content:center;text-align:center}
  .alxxx-result-head,.agwqd-result-head,.ajsjh-result-head,.azxfa-result-head,.ayejy-result-head{flex-direction:column;align-items:stretch}
  .alxxx-result-actions,.agwqd-result-actions,.ajsjh-result-actions,.azxfa-result-actions,.ayejy-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .alxxx-wrap,.agwqd-wrap,.ajsjh-wrap,.azxfa-wrap,.ayejy-wrap{padding:14px}
  .alxxx-result,.agwqd-result,.ajsjh-result,.azxfa-result,.ayejy-result{padding:14px}
}

/* ===== AI 品牌命名（appmm-）===== */
.appmm-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.appmm-form{margin-bottom:20px}
.appmm-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.appmm-row-2,.appmm-row-3{flex-wrap:wrap}
.appmm-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.appmm-label{color:var(--muted);font-size:14px;flex-shrink:0}
.appmm-req{color:#e53935}
.appmm-input,.appmm-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.appmm-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.appmm-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.appmm-btn:hover{background:var(--hover)}
.appmm-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.appmm-btn-primary:hover{opacity:.9;background:var(--accent)}
.appmm-btn-sm{padding:6px 12px;font-size:13px}
.appmm-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.appmm-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.appmm-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.appmm-result-actions{display:flex;gap:8px}
.appmm-result-body{color:var(--fg);font-size:14px;line-height:1.9;overflow-x:auto}
.appmm-md h2,.appmm-md h3,.appmm-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.appmm-md h2{font-size:18px}.appmm-md h3{font-size:16px}.appmm-md h4{font-size:15px}
.appmm-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.appmm-md strong{color:var(--fg)}
.appmm-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.appmm-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.appmm-loading i{margin-right:6px}
.appmm-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.appmm-note p{margin:0}

/* ===== AI Slogan（aslogan-）===== */
.aslogan-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.aslogan-form{margin-bottom:20px}
.aslogan-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.aslogan-row-2{flex-wrap:wrap}
.aslogan-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.aslogan-label{color:var(--muted);font-size:14px;flex-shrink:0}
.aslogan-req{color:#e53935}
.aslogan-input,.aslogan-textarea,.aslogan-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.aslogan-textarea{min-height:80px;resize:vertical;line-height:1.6}
.aslogan-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.aslogan-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.aslogan-btn:hover{background:var(--hover)}
.aslogan-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aslogan-btn-primary:hover{opacity:.9;background:var(--accent)}
.aslogan-btn-sm{padding:6px 12px;font-size:13px}
.aslogan-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.aslogan-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.aslogan-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.aslogan-result-actions{display:flex;gap:8px}
.aslogan-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.aslogan-md h2,.aslogan-md h3,.aslogan-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.aslogan-md h2{font-size:18px}.aslogan-md h3{font-size:16px}.aslogan-md h4{font-size:15px}
.aslogan-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.aslogan-md strong{color:var(--fg)}
.aslogan-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.aslogan-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.aslogan-loading i{margin-right:6px}
.aslogan-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.aslogan-note p{margin:0}

/* ===== AI 广告创意（aggcy-）===== */
.aggcy-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.aggcy-form{margin-bottom:20px}
.aggcy-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.aggcy-row-2,.aggcy-row-3{flex-wrap:wrap}
.aggcy-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.aggcy-label{color:var(--muted);font-size:14px;flex-shrink:0}
.aggcy-req{color:#e53935}
.aggcy-input,.aggcy-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.aggcy-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.aggcy-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.aggcy-btn:hover{background:var(--hover)}
.aggcy-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aggcy-btn-primary:hover{opacity:.9;background:var(--accent)}
.aggcy-btn-sm{padding:6px 12px;font-size:13px}
.aggcy-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.aggcy-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.aggcy-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.aggcy-result-actions{display:flex;gap:8px}
.aggcy-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.aggcy-md h2,.aggcy-md h3,.aggcy-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.aggcy-md h2{font-size:18px}.aggcy-md h3{font-size:16px}.aggcy-md h4{font-size:15px}
.aggcy-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.aggcy-md strong{color:var(--fg)}
.aggcy-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.aggcy-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.aggcy-loading i{margin-right:6px}
.aggcy-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.aggcy-note p{margin:0}

/* ===== AI 活动策划（ahdch-）===== */
.ahdch-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ahdch-form{margin-bottom:20px}
.ahdch-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ahdch-row-3{flex-wrap:wrap}
.ahdch-col{flex:1;min-width:140px;display:flex;flex-direction:column;gap:6px}
.ahdch-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ahdch-req{color:#e53935}
.ahdch-input{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.ahdch-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ahdch-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ahdch-btn:hover{background:var(--hover)}
.ahdch-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ahdch-btn-primary:hover{opacity:.9;background:var(--accent)}
.ahdch-btn-sm{padding:6px 12px;font-size:13px}
.ahdch-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ahdch-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ahdch-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ahdch-result-actions{display:flex;gap:8px}
.ahdch-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ahdch-md h2,.ahdch-md h3,.ahdch-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ahdch-md h2{font-size:18px}.ahdch-md h3{font-size:16px}.ahdch-md h4{font-size:15px}
.ahdch-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ahdch-md strong{color:var(--fg)}
.ahdch-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ahdch-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ahdch-loading i{margin-right:6px}
.ahdch-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ahdch-note p{margin:0}

/* ===== AI 产品命名（acpmm-）===== */
.acpmm-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.acpmm-form{margin-bottom:20px}
.acpmm-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.acpmm-row-3{flex-wrap:wrap}
.acpmm-col{flex:1;min-width:140px;display:flex;flex-direction:column;gap:6px}
.acpmm-label{color:var(--muted);font-size:14px;flex-shrink:0}
.acpmm-req{color:#e53935}
.acpmm-input,.acpmm-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.acpmm-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.acpmm-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.acpmm-btn:hover{background:var(--hover)}
.acpmm-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.acpmm-btn-primary:hover{opacity:.9;background:var(--accent)}
.acpmm-btn-sm{padding:6px 12px;font-size:13px}
.acpmm-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.acpmm-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.acpmm-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.acpmm-result-actions{display:flex;gap:8px}
.acpmm-result-body{color:var(--fg);font-size:14px;line-height:1.9;overflow-x:auto}
.acpmm-md h2,.acpmm-md h3,.acpmm-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.acpmm-md h2{font-size:18px}.acpmm-md h3{font-size:16px}.acpmm-md h4{font-size:15px}
.acpmm-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.acpmm-md strong{color:var(--fg)}
.acpmm-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.acpmm-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.acpmm-loading i{margin-right:6px}
.acpmm-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.acpmm-note p{margin:0}

@media (max-width:768px){
  .appmm-row,.aslogan-row,.aggcy-row,.ahdch-row,.acpmm-row{flex-wrap:wrap}
  .appmm-label,.aslogan-label,.aggcy-label,.ahdch-label,.acpmm-label{width:100%}
  .appmm-col,.aslogan-col,.aggcy-col,.ahdch-col,.acpmm-col{min-width:100%}
  .appmm-actions,.aslogan-actions,.aggcy-actions,.ahdch-actions,.acpmm-actions{flex-direction:column}
  .appmm-btn,.aslogan-btn,.aggcy-btn,.ahdch-btn,.acpmm-btn{flex:1;justify-content:center;text-align:center}
  .appmm-result-head,.aslogan-result-head,.aggcy-result-head,.ahdch-result-head,.acpmm-result-head{flex-direction:column;align-items:stretch}
  .appmm-result-actions,.aslogan-result-actions,.aggcy-result-actions,.ahdch-result-actions,.acpmm-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .appmm-wrap,.aslogan-wrap,.aggcy-wrap,.ahdch-wrap,.acpmm-wrap{padding:14px}
  .appmm-result,.aslogan-result,.aggcy-result,.ahdch-result,.acpmm-result{padding:14px}
}

/* ===== AI 小红书标题（axhsbt-）===== */
.axhsbt-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.axhsbt-form{margin-bottom:20px}
.axhsbt-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.axhsbt-row-2{flex-wrap:wrap}
.axhsbt-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.axhsbt-label{color:var(--muted);font-size:14px;flex-shrink:0}
.axhsbt-req{color:#e53935}
.axhsbt-input,.axhsbt-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.axhsbt-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.axhsbt-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.axhsbt-btn:hover{background:var(--hover)}
.axhsbt-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.axhsbt-btn-primary:hover{opacity:.9;background:var(--accent)}
.axhsbt-btn-sm{padding:6px 12px;font-size:13px}
.axhsbt-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.axhsbt-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.axhsbt-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.axhsbt-result-actions{display:flex;gap:8px}
.axhsbt-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.axhsbt-md h2,.axhsbt-md h3,.axhsbt-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.axhsbt-md h2{font-size:18px}.axhsbt-md h3{font-size:16px}.axhsbt-md h4{font-size:15px}
.axhsbt-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.axhsbt-md strong{color:var(--fg)}
.axhsbt-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.axhsbt-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.axhsbt-loading i{margin-right:6px}
.axhsbt-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.axhsbt-note p{margin:0}

/* ===== AI 公众号文章（agzhwz-）===== */
.agzhwz-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.agzhwz-form{margin-bottom:20px}
.agzhwz-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.agzhwz-row-3{flex-wrap:wrap}
.agzhwz-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.agzhwz-label{color:var(--muted);font-size:14px;flex-shrink:0}
.agzhwz-req{color:#e53935}
.agzhwz-input,.agzhwz-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.agzhwz-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.agzhwz-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.agzhwz-btn:hover{background:var(--hover)}
.agzhwz-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.agzhwz-btn-primary:hover{opacity:.9;background:var(--accent)}
.agzhwz-btn-sm{padding:6px 12px;font-size:13px}
.agzhwz-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.agzhwz-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.agzhwz-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.agzhwz-result-actions{display:flex;gap:8px}
.agzhwz-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.agzhwz-md h2,.agzhwz-md h3,.agzhwz-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.agzhwz-md h2{font-size:18px}.agzhwz-md h3{font-size:16px}.agzhwz-md h4{font-size:15px}
.agzhwz-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.agzhwz-md strong{color:var(--fg)}
.agzhwz-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.agzhwz-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.agzhwz-loading i{margin-right:6px}
.agzhwz-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.agzhwz-note p{margin:0}

/* ===== AI 知乎回答（azhhd-）===== */
.azhhd-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.azhhd-form{margin-bottom:20px}
.azhhd-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.azhhd-row-3{flex-wrap:wrap}
.azhhd-col{flex:1;min-width:140px;display:flex;flex-direction:column;gap:6px}
.azhhd-label{color:var(--muted);font-size:14px;flex-shrink:0}
.azhhd-req{color:#e53935}
.azhhd-input,.azhhd-textarea,.azhhd-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.azhhd-textarea{min-height:100px;resize:vertical;line-height:1.6}
.azhhd-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.azhhd-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.azhhd-btn:hover{background:var(--hover)}
.azhhd-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.azhhd-btn-primary:hover{opacity:.9;background:var(--accent)}
.azhhd-btn-sm{padding:6px 12px;font-size:13px}
.azhhd-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.azhhd-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.azhhd-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.azhhd-result-actions{display:flex;gap:8px}
.azhhd-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.azhhd-md h2,.azhhd-md h3,.azhhd-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.azhhd-md h2{font-size:18px}.azhhd-md h3{font-size:16px}.azhhd-md h4{font-size:15px}
.azhhd-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.azhhd-md strong{color:var(--fg)}
.azhhd-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.azhhd-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.azhhd-loading i{margin-right:6px}
.azhhd-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.azhhd-note p{margin:0}

/* ===== AI 微博文案（awbwa-）===== */
.awbwa-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.awbwa-form{margin-bottom:20px}
.awbwa-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.awbwa-row-3{flex-wrap:wrap}
.awbwa-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.awbwa-label{color:var(--muted);font-size:14px;flex-shrink:0}
.awbwa-req{color:#e53935}
.awbwa-input,.awbwa-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.awbwa-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.awbwa-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.awbwa-btn:hover{background:var(--hover)}
.awbwa-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.awbwa-btn-primary:hover{opacity:.9;background:var(--accent)}
.awbwa-btn-sm{padding:6px 12px;font-size:13px}
.awbwa-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.awbwa-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.awbwa-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.awbwa-result-actions{display:flex;gap:8px}
.awbwa-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.awbwa-md h2,.awbwa-md h3,.awbwa-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.awbwa-md h2{font-size:18px}.awbwa-md h3{font-size:16px}.awbwa-md h4{font-size:15px}
.awbwa-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.awbwa-md strong{color:var(--fg)}
.awbwa-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.awbwa-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.awbwa-loading i{margin-right:6px}
.awbwa-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.awbwa-note p{margin:0}

/* ===== AI 视频号文案（asphwa-）===== */
.asphwa-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.asphwa-form{margin-bottom:20px}
.asphwa-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.asphwa-row-3{flex-wrap:wrap}
.asphwa-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.asphwa-label{color:var(--muted);font-size:14px;flex-shrink:0}
.asphwa-req{color:#e53935}
.asphwa-input,.asphwa-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.asphwa-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.asphwa-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.asphwa-btn:hover{background:var(--hover)}
.asphwa-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asphwa-btn-primary:hover{opacity:.9;background:var(--accent)}
.asphwa-btn-sm{padding:6px 12px;font-size:13px}
.asphwa-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.asphwa-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.asphwa-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.asphwa-result-actions{display:flex;gap:8px}
.asphwa-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.asphwa-md h2,.asphwa-md h3,.asphwa-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.asphwa-md h2{font-size:18px}.asphwa-md h3{font-size:16px}.asphwa-md h4{font-size:15px}
.asphwa-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.asphwa-md strong{color:var(--fg)}
.asphwa-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.asphwa-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.asphwa-loading i{margin-right:6px}
.asphwa-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.asphwa-note p{margin:0}

@media (max-width:768px){
  .axhsbt-row,.agzhwz-row,.azhhd-row,.awbwa-row,.asphwa-row{flex-wrap:wrap}
  .axhsbt-label,.agzhwz-label,.azhhd-label,.awbwa-label,.asphwa-label{width:100%}
  .axhsbt-col,.agzhwz-col,.azhhd-col,.awbwa-col,.asphwa-col{min-width:100%}
  .axhsbt-actions,.agzhwz-actions,.azhhd-actions,.awbwa-actions,.asphwa-actions{flex-direction:column}
  .axhsbt-btn,.agzhwz-btn,.azhhd-btn,.awbwa-btn,.asphwa-btn{flex:1;justify-content:center;text-align:center}
  .axhsbt-result-head,.agzhwz-result-head,.azhhd-result-head,.awbwa-result-head,.asphwa-result-head{flex-direction:column;align-items:stretch}
  .axhsbt-result-actions,.agzhwz-result-actions,.azhhd-result-actions,.awbwa-result-actions,.asphwa-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .axhsbt-wrap,.agzhwz-wrap,.azhhd-wrap,.awbwa-wrap,.asphwa-wrap{padding:14px}
  .axhsbt-result,.agzhwz-result,.azhhd-result,.awbwa-result,.asphwa-result{padding:14px}
}

/* ===== AI 体检报告解读（atjbgjd-）===== */
.atjbgjd-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.atjbgjd-form{margin-bottom:20px}
.atjbgjd-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.atjbgjd-row-2{flex-wrap:wrap}
.atjbgjd-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.atjbgjd-label{color:var(--muted);font-size:14px;flex-shrink:0}
.atjbgjd-req{color:#e53935}
.atjbgjd-input,.atjbgjd-textarea,.atjbgjd-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.atjbgjd-textarea{min-height:140px;resize:vertical;line-height:1.6}
.atjbgjd-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.atjbgjd-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.atjbgjd-btn:hover{background:var(--hover)}
.atjbgjd-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.atjbgjd-btn-primary:hover{opacity:.9;background:var(--accent)}
.atjbgjd-btn-sm{padding:6px 12px;font-size:13px}
.atjbgjd-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.atjbgjd-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.atjbgjd-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.atjbgjd-result-actions{display:flex;gap:8px}
.atjbgjd-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.atjbgjd-md h2,.atjbgjd-md h3,.atjbgjd-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.atjbgjd-md h2{font-size:18px}.atjbgjd-md h3{font-size:16px}.atjbgjd-md h4{font-size:15px}
.atjbgjd-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.atjbgjd-md strong{color:var(--fg)}
.atjbgjd-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.atjbgjd-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.atjbgjd-loading i{margin-right:6px}
.atjbgjd-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.atjbgjd-note p{margin:0}

/* ===== AI 用药提醒（ayytx-）===== */
.ayytx-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ayytx-form{margin-bottom:20px}
.ayytx-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ayytx-row-3{flex-wrap:wrap}
.ayytx-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.ayytx-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ayytx-req{color:#e53935}
.ayytx-input,.ayytx-textarea{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.ayytx-textarea{min-height:80px;resize:vertical;line-height:1.6}
.ayytx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ayytx-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ayytx-btn:hover{background:var(--hover)}
.ayytx-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ayytx-btn-primary:hover{opacity:.9;background:var(--accent)}
.ayytx-btn-sm{padding:6px 12px;font-size:13px}
.ayytx-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ayytx-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ayytx-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ayytx-result-actions{display:flex;gap:8px}
.ayytx-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ayytx-md h2,.ayytx-md h3,.ayytx-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ayytx-md h2{font-size:18px}.ayytx-md h3{font-size:16px}.ayytx-md h4{font-size:15px}
.ayytx-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ayytx-md strong{color:var(--fg)}
.ayytx-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ayytx-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ayytx-loading i{margin-right:6px}
.ayytx-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ayytx-note p{margin:0}

/* ===== AI 睡眠改善（asmgs-）===== */
.asmgs-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.asmgs-form{margin-bottom:20px}
.asmgs-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.asmgs-row-2{flex-wrap:wrap}
.asmgs-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.asmgs-label{color:var(--muted);font-size:14px;flex-shrink:0}
.asmgs-req{color:#e53935}
.asmgs-input,.asmgs-textarea{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.asmgs-textarea{min-height:120px;resize:vertical;line-height:1.6}
.asmgs-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.asmgs-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.asmgs-btn:hover{background:var(--hover)}
.asmgs-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.asmgs-btn-primary:hover{opacity:.9;background:var(--accent)}
.asmgs-btn-sm{padding:6px 12px;font-size:13px}
.asmgs-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.asmgs-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.asmgs-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.asmgs-result-actions{display:flex;gap:8px}
.asmgs-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.asmgs-md h2,.asmgs-md h3,.asmgs-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.asmgs-md h2{font-size:18px}.asmgs-md h3{font-size:16px}.asmgs-md h4{font-size:15px}
.asmgs-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.asmgs-md strong{color:var(--fg)}
.asmgs-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.asmgs-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.asmgs-loading i{margin-right:6px}
.asmgs-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.asmgs-note p{margin:0}

/* ===== AI 减脂食谱（ajzsp-）===== */
.ajzsp-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ajzsp-form{margin-bottom:20px}
.ajzsp-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ajzsp-row-2{flex-wrap:wrap}
.ajzsp-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.ajzsp-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ajzsp-req{color:#e53935}
.ajzsp-input,.ajzsp-textarea{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.ajzsp-textarea{min-height:80px;resize:vertical;line-height:1.6}
.ajzsp-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ajzsp-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ajzsp-btn:hover{background:var(--hover)}
.ajzsp-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ajzsp-btn-primary:hover{opacity:.9;background:var(--accent)}
.ajzsp-btn-sm{padding:6px 12px;font-size:13px}
.ajzsp-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ajzsp-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ajzsp-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ajzsp-result-actions{display:flex;gap:8px}
.ajzsp-result-body{color:var(--fg);font-size:14px;line-height:1.9;overflow-x:auto}
.ajzsp-md h2,.ajzsp-md h3,.ajzsp-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ajzsp-md h2{font-size:18px}.ajzsp-md h3{font-size:16px}.ajzsp-md h4{font-size:15px}
.ajzsp-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ajzsp-md strong{color:var(--fg)}
.ajzsp-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ajzsp-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ajzsp-loading i{margin-right:6px}
.ajzsp-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ajzsp-note p{margin:0}

/* ===== AI 情绪疏导（aqxsd-）===== */
.aqxsd-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.aqxsd-form{margin-bottom:20px}
.aqxsd-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.aqxsd-row-2{flex-wrap:wrap}
.aqxsd-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.aqxsd-label{color:var(--muted);font-size:14px;flex-shrink:0}
.aqxsd-req{color:#e53935}
.aqxsd-input,.aqxsd-textarea,.aqxsd-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.aqxsd-textarea{min-height:120px;resize:vertical;line-height:1.6}
.aqxsd-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.aqxsd-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.aqxsd-btn:hover{background:var(--hover)}
.aqxsd-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aqxsd-btn-primary:hover{opacity:.9;background:var(--accent)}
.aqxsd-btn-sm{padding:6px 12px;font-size:13px}
.aqxsd-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.aqxsd-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.aqxsd-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.aqxsd-result-actions{display:flex;gap:8px}
.aqxsd-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.aqxsd-md h2,.aqxsd-md h3,.aqxsd-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.aqxsd-md h2{font-size:18px}.aqxsd-md h3{font-size:16px}.aqxsd-md h4{font-size:15px}
.aqxsd-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.aqxsd-md strong{color:var(--fg)}
.aqxsd-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.aqxsd-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.aqxsd-loading i{margin-right:6px}
.aqxsd-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.aqxsd-note p{margin:0}

@media (max-width:768px){
  .atjbgjd-row,.ayytx-row,.asmgs-row,.ajzsp-row,.aqxsd-row{flex-wrap:wrap}
  .atjbgjd-label,.ayytx-label,.asmgs-label,.ajzsp-label,.aqxsd-label{width:100%}
  .atjbgjd-col,.ayytx-col,.asmgs-col,.ajzsp-col,.aqxsd-col{min-width:100%}
  .atjbgjd-actions,.ayytx-actions,.asmgs-actions,.ajzsp-actions,.aqxsd-actions{flex-direction:column}
  .atjbgjd-btn,.ayytx-btn,.asmgs-btn,.ajzsp-btn,.aqxsd-btn{flex:1;justify-content:center;text-align:center}
  .atjbgjd-result-head,.ayytx-result-head,.asmgs-result-head,.ajzsp-result-head,.aqxsd-result-head{flex-direction:column;align-items:stretch}
  .atjbgjd-result-actions,.ayytx-result-actions,.asmgs-result-actions,.ajzsp-result-actions,.aqxsd-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .atjbgjd-wrap,.ayytx-wrap,.asmgs-wrap,.ajzsp-wrap,.aqxsd-wrap{padding:14px}
  .atjbgjd-result,.ayytx-result,.asmgs-result,.ajzsp-result,.aqxsd-result{padding:14px}
}

/* ===== AI 面试自我介绍（amszwjs-）===== */
.amszwjs-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.amszwjs-form{margin-bottom:20px}
.amszwjs-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.amszwjs-row-2{flex-wrap:wrap}
.amszwjs-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.amszwjs-label{color:var(--muted);font-size:14px;flex-shrink:0}
.amszwjs-req{color:#e53935}
.amszwjs-input,.amszwjs-textarea,.amszwjs-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.amszwjs-textarea{min-height:100px;resize:vertical;line-height:1.6}
.amszwjs-textarea-sm{min-height:70px}
.amszwjs-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.amszwjs-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.amszwjs-btn:hover{background:var(--hover)}
.amszwjs-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.amszwjs-btn-primary:hover{opacity:.9;background:var(--accent)}
.amszwjs-btn-sm{padding:6px 12px;font-size:13px}
.amszwjs-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.amszwjs-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.amszwjs-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.amszwjs-result-actions{display:flex;gap:8px}
.amszwjs-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.amszwjs-md h2,.amszwjs-md h3,.amszwjs-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.amszwjs-md h2{font-size:18px}.amszwjs-md h3{font-size:16px}.amszwjs-md h4{font-size:15px}
.amszwjs-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.amszwjs-md strong{color:var(--fg)}
.amszwjs-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.amszwjs-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.amszwjs-loading i{margin-right:6px}
.amszwjs-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.amszwjs-note p{margin:0}

/* ===== AI 面试问题预测（amswtyc-）===== */
.amswtyc-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.amswtyc-form{margin-bottom:20px}
.amswtyc-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.amswtyc-row-3{flex-wrap:wrap}
.amswtyc-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.amswtyc-label{color:var(--muted);font-size:14px;flex-shrink:0}
.amswtyc-req{color:#e53935}
.amswtyc-input,.amswtyc-textarea,.amswtyc-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.amswtyc-textarea{min-height:100px;resize:vertical;line-height:1.6}
.amswtyc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.amswtyc-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.amswtyc-btn:hover{background:var(--hover)}
.amswtyc-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.amswtyc-btn-primary:hover{opacity:.9;background:var(--accent)}
.amswtyc-btn-sm{padding:6px 12px;font-size:13px}
.amswtyc-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.amswtyc-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.amswtyc-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.amswtyc-result-actions{display:flex;gap:8px}
.amswtyc-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.amswtyc-md h2,.amswtyc-md h3,.amswtyc-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.amswtyc-md h2{font-size:18px}.amswtyc-md h3{font-size:16px}.amswtyc-md h4{font-size:15px}
.amswtyc-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.amswtyc-md strong{color:var(--fg)}
.amswtyc-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.amswtyc-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.amswtyc-loading i{margin-right:6px}
.amswtyc-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.amswtyc-note p{margin:0}

/* ===== AI 薪资谈判（axztp-）===== */
.axztp-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.axztp-form{margin-bottom:20px}
.axztp-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.axztp-row-2{flex-wrap:wrap}
.axztp-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.axztp-label{color:var(--muted);font-size:14px;flex-shrink:0}
.axztp-req{color:#e53935}
.axztp-input,.axztp-textarea{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.axztp-textarea{min-height:100px;resize:vertical;line-height:1.6}
.axztp-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.axztp-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.axztp-btn:hover{background:var(--hover)}
.axztp-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.axztp-btn-primary:hover{opacity:.9;background:var(--accent)}
.axztp-btn-sm{padding:6px 12px;font-size:13px}
.axztp-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.axztp-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.axztp-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.axztp-result-actions{display:flex;gap:8px}
.axztp-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.axztp-md h2,.axztp-md h3,.axztp-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.axztp-md h2{font-size:18px}.axztp-md h3{font-size:16px}.axztp-md h4{font-size:15px}
.axztp-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.axztp-md strong{color:var(--fg)}
.axztp-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.axztp-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.axztp-loading i{margin-right:6px}
.axztp-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.axztp-note p{margin:0}

/* ===== AI 晋升答辩（ajsdb-）===== */
.ajsdb-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ajsdb-form{margin-bottom:20px}
.ajsdb-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ajsdb-row-2{flex-wrap:wrap}
.ajsdb-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.ajsdb-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ajsdb-req{color:#e53935}
.ajsdb-input,.ajsdb-textarea{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.ajsdb-textarea{min-height:100px;resize:vertical;line-height:1.6}
.ajsdb-textarea-sm{min-height:70px}
.ajsdb-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ajsdb-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ajsdb-btn:hover{background:var(--hover)}
.ajsdb-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ajsdb-btn-primary:hover{opacity:.9;background:var(--accent)}
.ajsdb-btn-sm{padding:6px 12px;font-size:13px}
.ajsdb-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ajsdb-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ajsdb-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ajsdb-result-actions{display:flex;gap:8px}
.ajsdb-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ajsdb-md h2,.ajsdb-md h3,.ajsdb-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ajsdb-md h2{font-size:18px}.ajsdb-md h3{font-size:16px}.ajsdb-md h4{font-size:15px}
.ajsdb-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ajsdb-md strong{color:var(--fg)}
.ajsdb-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ajsdb-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ajsdb-loading i{margin-right:6px}
.ajsdb-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ajsdb-note p{margin:0}

/* ===== AI 求职信（aqzx-）===== */
.aqzx-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.aqzx-form{margin-bottom:20px}
.aqzx-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.aqzx-row-2{flex-wrap:wrap}
.aqzx-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.aqzx-label{color:var(--muted);font-size:14px;flex-shrink:0}
.aqzx-req{color:#e53935}
.aqzx-input,.aqzx-textarea,.aqzx-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.aqzx-textarea{min-height:100px;resize:vertical;line-height:1.6}
.aqzx-textarea-sm{min-height:70px}
.aqzx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.aqzx-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.aqzx-btn:hover{background:var(--hover)}
.aqzx-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.aqzx-btn-primary:hover{opacity:.9;background:var(--accent)}
.aqzx-btn-sm{padding:6px 12px;font-size:13px}
.aqzx-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.aqzx-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.aqzx-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.aqzx-result-actions{display:flex;gap:8px}
.aqzx-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.aqzx-md h2,.aqzx-md h3,.aqzx-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.aqzx-md h2{font-size:18px}.aqzx-md h3{font-size:16px}.aqzx-md h4{font-size:15px}
.aqzx-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.aqzx-md strong{color:var(--fg)}
.aqzx-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.aqzx-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.aqzx-loading i{margin-right:6px}
.aqzx-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.aqzx-note p{margin:0}

@media (max-width:768px){
  .amszwjs-row,.amswtyc-row,.axztp-row,.ajsdb-row,.aqzx-row{flex-wrap:wrap}
  .amszwjs-label,.amswtyc-label,.axztp-label,.ajsdb-label,.aqzx-label{width:100%}
  .amszwjs-col,.amswtyc-col,.axztp-col,.ajsdb-col,.aqzx-col{min-width:100%}
  .amszwjs-actions,.amswtyc-actions,.axztp-actions,.ajsdb-actions,.aqzx-actions{flex-direction:column}
  .amszwjs-btn,.amswtyc-btn,.axztp-btn,.ajsdb-btn,.aqzx-btn{flex:1;justify-content:center;text-align:center}
  .amszwjs-result-head,.amswtyc-result-head,.axztp-result-head,.ajsdb-result-head,.aqzx-result-head{flex-direction:column;align-items:stretch}
  .amszwjs-result-actions,.amswtyc-result-actions,.axztp-result-actions,.ajsdb-result-actions,.aqzx-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .amszwjs-wrap,.amswtyc-wrap,.axztp-wrap,.ajsdb-wrap,.aqzx-wrap{padding:14px}
  .amszwjs-result,.amswtyc-result,.axztp-result,.ajsdb-result,.aqzx-result{padding:14px}
}

/* ===== AI 古诗创作（agscz-）===== */
.agscz-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.agscz-form{margin-bottom:20px}
.agscz-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.agscz-row-3{flex-wrap:wrap}
.agscz-col{flex:1;min-width:160px;display:flex;flex-direction:column;gap:6px}
.agscz-label{color:var(--muted);font-size:14px;flex-shrink:0}
.agscz-req{color:#e53935}
.agscz-input,.agscz-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.agscz-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.agscz-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.agscz-btn:hover{background:var(--hover)}
.agscz-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.agscz-btn-primary:hover{opacity:.9;background:var(--accent)}
.agscz-btn-sm{padding:6px 12px;font-size:13px}
.agscz-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.agscz-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.agscz-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.agscz-result-actions{display:flex;gap:8px}
.agscz-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.agscz-md h2,.agscz-md h3,.agscz-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.agscz-md h2{font-size:18px}.agscz-md h3{font-size:16px}.agscz-md h4{font-size:15px}
.agscz-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.agscz-md strong{color:var(--fg)}
.agscz-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.agscz-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.agscz-loading i{margin-right:6px}
.agscz-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.agscz-note p{margin:0}

/* ===== AI 文言文翻译（awywyf-）===== */
.awywyf-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.awywyf-form{margin-bottom:20px}
.awywyf-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.awywyf-label{color:var(--muted);font-size:14px;flex-shrink:0}
.awywyf-req{color:#e53935}
.awywyf-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px}
.awywyf-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;min-height:180px;resize:vertical;line-height:1.7;box-sizing:border-box}
.awywyf-textarea:focus{border-color:var(--accent)}
.awywyf-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.awywyf-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.awywyf-btn:hover{background:var(--hover)}
.awywyf-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.awywyf-btn-primary:hover{opacity:.9;background:var(--accent)}
.awywyf-btn-sm{padding:6px 12px;font-size:13px}
.awywyf-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.awywyf-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.awywyf-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.awywyf-result-actions{display:flex;gap:8px}
.awywyf-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.awywyf-md h2,.awywyf-md h3,.awywyf-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.awywyf-md h2{font-size:18px}.awywyf-md h3{font-size:16px}.awywyf-md h4{font-size:15px}
.awywyf-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.awywyf-md strong{color:var(--fg)}
.awywyf-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.awywyf-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.awywyf-loading i{margin-right:6px}
.awywyf-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.awywyf-note p{margin:0}

/* ===== AI 成语故事（acygs-）===== */
.acygs-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.acygs-form{margin-bottom:20px}
.acygs-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.acygs-label{color:var(--muted);font-size:14px;flex-shrink:0}
.acygs-req{color:#e53935}
.acygs-input{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.acygs-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.acygs-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.acygs-btn:hover{background:var(--hover)}
.acygs-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.acygs-btn-primary:hover{opacity:.9;background:var(--accent)}
.acygs-btn-sm{padding:6px 12px;font-size:13px}
.acygs-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.acygs-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.acygs-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.acygs-result-actions{display:flex;gap:8px}
.acygs-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.acygs-md h2,.acygs-md h3,.acygs-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.acygs-md h2{font-size:18px}.acygs-md h3{font-size:16px}.acygs-md h4{font-size:15px}
.acygs-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.acygs-md strong{color:var(--fg)}
.acygs-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.acygs-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.acygs-loading i{margin-right:6px}
.acygs-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.acygs-note p{margin:0}

/* ===== AI 诗词赏析（ascsx-）===== */
.ascsx-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ascsx-form{margin-bottom:20px}
.ascsx-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.ascsx-label{color:var(--muted);font-size:14px;flex-shrink:0}
.ascsx-req{color:#e53935}
.ascsx-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px}
.ascsx-textarea{padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;min-height:180px;resize:vertical;line-height:1.7;box-sizing:border-box}
.ascsx-textarea:focus{border-color:var(--accent)}
.ascsx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.ascsx-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ascsx-btn:hover{background:var(--hover)}
.ascsx-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ascsx-btn-primary:hover{opacity:.9;background:var(--accent)}
.ascsx-btn-sm{padding:6px 12px;font-size:13px}
.ascsx-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.ascsx-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.ascsx-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.ascsx-result-actions{display:flex;gap:8px}
.ascsx-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.ascsx-md h2,.ascsx-md h3,.ascsx-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.ascsx-md h2{font-size:18px}.ascsx-md h3{font-size:16px}.ascsx-md h4{font-size:15px}
.ascsx-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.ascsx-md strong{color:var(--fg)}
.ascsx-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.ascsx-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.ascsx-loading i{margin-right:6px}
.ascsx-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.ascsx-note p{margin:0}

/* ===== AI 对联创作（adlcz-）===== */
.adlcz-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.adlcz-form{margin-bottom:20px}
.adlcz-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.adlcz-row-2{flex-wrap:wrap}
.adlcz-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:6px}
.adlcz-label{color:var(--muted);font-size:14px;flex-shrink:0}
.adlcz-input,.adlcz-select{padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;font-family:inherit;width:100%;box-sizing:border-box;min-width:0}
.adlcz-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.adlcz-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.adlcz-btn:hover{background:var(--hover)}
.adlcz-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.adlcz-btn-primary:hover{opacity:.9;background:var(--accent)}
.adlcz-btn-sm{padding:6px 12px;font-size:13px}
.adlcz-result{margin-top:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.adlcz-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:10px}
.adlcz-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.adlcz-result-actions{display:flex;gap:8px}
.adlcz-result-body{color:var(--fg);font-size:14px;line-height:1.9}
.adlcz-md h2,.adlcz-md h3,.adlcz-md h4{color:var(--fg);margin:16px 0 8px;font-weight:600}
.adlcz-md h2{font-size:18px}.adlcz-md h3{font-size:16px}.adlcz-md h4{font-size:15px}
.adlcz-md code{background:var(--hover);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.adlcz-md strong{color:var(--fg)}
.adlcz-err{padding:14px;background:rgba(229,57,53,.15);color:#e53935;border-radius:8px}
.adlcz-loading{padding:20px;text-align:center;color:var(--muted);font-size:14px;margin-top:20px}
.adlcz-loading i{margin-right:6px}
.adlcz-note{margin-top:18px;padding:14px;background:var(--accent-soft);border-radius:8px;font-size:13px;color:var(--muted);line-height:1.7}
.adlcz-note p{margin:0}

@media (max-width:768px){
  .agscz-row,.awywyf-row,.acygs-row,.ascsx-row,.adlcz-row{flex-wrap:wrap}
  .agscz-label,.awywyf-label,.acygs-label,.ascsx-label,.adlcz-label{width:100%}
  .agscz-col,.adlcz-col{min-width:100%}
  .agscz-actions,.awywyf-actions,.acygs-actions,.ascsx-actions,.adlcz-actions{flex-direction:column}
  .agscz-btn,.awywyf-btn,.acygs-btn,.ascsx-btn,.adlcz-btn{flex:1;justify-content:center;text-align:center}
  .agscz-result-head,.awywyf-result-head,.acygs-result-head,.ascsx-result-head,.adlcz-result-head{flex-direction:column;align-items:stretch}
  .agscz-result-actions,.awywyf-result-actions,.acygs-result-actions,.ascsx-result-actions,.adlcz-result-actions{justify-content:flex-end}
}
@media (max-width:640px){
  .agscz-wrap,.awywyf-wrap,.acygs-wrap,.ascsx-wrap,.adlcz-wrap{padding:14px}
  .agscz-result,.awywyf-result,.acygs-result,.ascsx-result,.adlcz-result{padding:14px}
}

/* ===== 图片去水印（tpqsy-）===== */
.tpqsy-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.tpqsy-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.tpqsy-btn{padding:8px 16px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.tpqsy-btn:hover{background:var(--hover)}
.tpqsy-btn:disabled{opacity:.5;cursor:not-allowed}
.tpqsy-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.tpqsy-btn-primary:hover:not(:disabled){opacity:.9}
.tpqsy-range-lb{font-size:13px;color:var(--muted)}
.tpqsy-range{width:140px}
.tpqsy-stage{min-height:400px;background:var(--bg);border:1px dashed var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:auto;padding:16px;margin-bottom:16px}
.tpqsy-empty{text-align:center;color:var(--muted)}
.tpqsy-empty i{font-size:48px;margin-bottom:12px;display:block}
.tpqsy-empty p{margin:0;font-size:14px}
#tpqsyCanvas{max-width:100%;cursor:crosshair;border-radius:4px;display:block}
.tpqsy-tips{background:var(--accent-soft);border-radius:8px;padding:14px;font-size:13px;color:var(--muted);line-height:1.8}
.tpqsy-tips p{margin:0 0 6px}
.tpqsy-tips ol{margin:0;padding-left:20px}

/* ===== 图片拼图（tpptu-）===== */
.tpptu-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.tpptu-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.tpptu-btn{padding:8px 16px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.tpptu-btn:hover{background:var(--hover)}
.tpptu-btn:disabled{opacity:.5;cursor:not-allowed}
.tpptu-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.tpptu-label{font-size:13px;color:var(--muted)}
.tpptu-select{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font-size:14px}
.tpptu-range{width:100px}
.tpptu-color{width:40px;height:32px;border:1px solid var(--line);border-radius:6px;cursor:pointer}
.tpptu-stage{min-height:400px;background:var(--bg);border:1px dashed var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:auto;padding:16px;margin-bottom:16px}
.tpptu-empty{text-align:center;color:var(--muted);font-size:14px}
#tpptuCanvas{max-width:100%;border-radius:4px;display:block;box-shadow:0 4px 12px rgba(0,0,0,.1)}
.tpptu-tips{background:var(--accent-soft);border-radius:8px;padding:14px;font-size:13px;color:var(--muted);line-height:1.8}
.tpptu-tips p{margin:0 0 6px}
.tpptu-tips ol{margin:0;padding-left:20px}

/* ===== 图片滤镜（tplj-）===== */
.tplj-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.tplj-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.tplj-btn{padding:8px 16px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.tplj-btn:hover{background:var(--hover)}
.tplj-btn:disabled{opacity:.5;cursor:not-allowed}
.tplj-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.tplj-btn-primary:hover:not(:disabled){opacity:.9}
.tplj-label{font-size:13px;color:var(--muted)}
.tplj-range{width:100px}
.tplj-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.tplj-filter{padding:6px 12px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:20px;cursor:pointer;font-size:13px;transition:all .2s}
.tplj-filter:hover{background:var(--hover)}
.tplj-filter.on{background:var(--accent);border-color:var(--accent);color:#fff}
.tplj-stage{min-height:400px;background:var(--bg);border:1px dashed var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:auto;padding:16px;margin-bottom:16px}
.tplj-empty{text-align:center;color:var(--muted)}
.tplj-empty i{font-size:48px;margin-bottom:12px;display:block}
.tplj-empty p{margin:0;font-size:14px}
#tpljCanvas{max-width:100%;border-radius:4px;display:block}
.tplj-tips{background:var(--accent-soft);border-radius:8px;padding:14px;font-size:13px;color:var(--muted);line-height:1.8}
.tplj-tips p{margin:0}

/* ===== 图片取色器（tpqsq-）===== */
.tpqsq-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.tpqsq-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.tpqsq-btn{padding:8px 16px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.tpqsq-btn:hover{background:var(--hover)}
.tpqsq-btn:disabled{opacity:.5;cursor:not-allowed}
.tpqsq-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.tpqsq-stage{min-height:400px;background:var(--bg);border:1px dashed var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:auto;padding:16px;margin-bottom:16px}
.tpqsq-empty{text-align:center;color:var(--muted)}
.tpqsq-empty i{font-size:48px;margin-bottom:12px;display:block}
.tpqsq-empty p{margin:0;font-size:14px}
#tpqsqCanvas{max-width:100%;border-radius:4px;display:block;cursor:crosshair}
.tpqsq-result{margin-bottom:16px}
.tpqsq-color-box{display:flex;gap:16px;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:16px}
.tpqsq-color-preview{width:80px;height:80px;border-radius:8px;border:2px solid var(--line);flex-shrink:0}
.tpqsq-color-info{flex:1;min-width:0}
.tpqsq-info-row{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:14px}
.tpqsq-info-row span{width:50px;color:var(--muted)}
.tpqsq-info-row b{flex:1;font-family:monospace;color:var(--fg);word-break:break-all}
.tpqsq-copy{padding:4px 8px;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:6px;cursor:pointer}
.tpqsq-copy:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.tpqsq-palette{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:16px}
.tpqsq-palette-title{font-size:14px;color:var(--muted);margin-bottom:10px}
.tpqsq-swatches{display:flex;gap:8px;flex-wrap:wrap}
.tpqsq-swatch{width:48px;height:48px;border-radius:8px;cursor:pointer;border:2px solid var(--line);transition:transform .2s}
.tpqsq-swatch:hover{transform:scale(1.1)}
.tpqsq-tips{background:var(--accent-soft);border-radius:8px;padding:14px;font-size:13px;color:var(--muted);line-height:1.8}
.tpqsq-tips p{margin:0}

/* ===== 图片对比（tpdb-）===== */
.tpdb-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.tpdb-upload{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.tpdb-up-item{flex:1;min-width:200px}
.tpdb-btn{padding:8px 16px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px;margin-bottom:8px}
.tpdb-btn:hover{background:var(--hover)}
.tpdb-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.tpdb-up-info{font-size:13px;color:var(--muted)}
.tpdb-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.tpdb-label{font-size:13px;color:var(--muted)}
.tpdb-select{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font-size:14px}
.tpdb-range{width:200px}
.tpdb-stage{min-height:400px;background:var(--bg);border:1px dashed var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:16px;margin-bottom:16px;position:relative}
.tpdb-empty{text-align:center;color:var(--muted)}
.tpdb-empty i{font-size:48px;margin-bottom:12px;display:block}
.tpdb-empty p{margin:0;font-size:14px}
.tpdb-view{position:relative;max-width:100%;border-radius:4px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.1)}
.tpdb-img-a{display:block;width:100%;height:100%}
.tpdb-layer{position:absolute;top:0;left:0;width:100%;height:100%}
.tpdb-img-b{display:block;width:100%;height:100%}
.tpdb-divider{position:absolute;background:#fff;box-shadow:0 0 8px rgba(0,0,0,.3);z-index:5}
#tpdbDiffCanvas{max-width:100%;border-radius:4px;display:block}
.tpdb-tips{background:var(--accent-soft);border-radius:8px;padding:14px;font-size:13px;color:var(--muted);line-height:1.8}
.tpdb-tips p{margin:0}

@media (max-width:768px){
  .tpqsy-toolbar,.tpptu-toolbar,.tplj-toolbar,.tpqsq-toolbar,.tpdb-toolbar{flex-direction:column;align-items:stretch}
  .tpqsy-btn,.tpptu-btn,.tplj-btn,.tpqsq-btn,.tpdb-btn{width:100%;justify-content:center}
  .tpqsy-range,.tpptu-range,.tplj-range,.tpdb-range{width:100%}
  .tpqsq-color-box{flex-direction:column;align-items:stretch}
  .tpqsq-color-preview{width:100%;height:60px}
  .tpdb-upload{flex-direction:column}
}

/* ===== 音频剪辑 v2（ypjj-）===== */
.ypjj-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ypjj-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.ypjj-btn{padding:8px 16px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ypjj-btn:hover{background:var(--hover)}
.ypjj-btn:disabled{opacity:.5;cursor:not-allowed}
.ypjj-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ypjj-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}
.ypjj-btn-sm{padding:5px 12px;font-size:13px}
.ypjj-info{font-size:13px;color:var(--muted)}
.ypjj-wave-wrap{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px 12px 4px;margin-bottom:14px}
#ypjjWave{width:100%}
.ypjj-wave-tip{font-size:12px;color:var(--muted);text-align:center;padding:6px 0 2px}
.ypjj-region-bar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin-bottom:14px}
.ypjj-region-item{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--fg)}
.ypjj-region-lb{color:var(--muted);font-size:13px}
.ypjj-region-item b{color:var(--accent);font-family:monospace;font-size:15px}
.ypjj-region-sep{color:var(--muted)}
.ypjj-region-unit{color:var(--muted);font-size:12px}
.ypjj-region-actions{margin-left:auto;display:flex;gap:8px}
.ypjj-controls{margin-bottom:14px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px 16px}
.ypjj-control-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.ypjj-control-row:last-child{margin-bottom:0}
.ypjj-label{width:110px;color:var(--muted);font-size:13px;flex-shrink:0}
.ypjj-range{flex:1}
.ypjj-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.ypjj-tips{background:var(--accent-soft);border-radius:8px;padding:14px 16px;font-size:13px;color:var(--muted);line-height:1.8}
.ypjj-tips p{margin:0 0 6px}
.ypjj-tips ol{margin:0;padding-left:20px}

@media (max-width:768px){
  .ypjj-toolbar{flex-direction:column;align-items:stretch}
  .ypjj-btn{width:100%;justify-content:center}
  .ypjj-region-bar{flex-direction:column;align-items:stretch;gap:10px}
  .ypjj-region-actions{margin-left:0}
  .ypjj-control-row{flex-direction:column;align-items:stretch}
  .ypjj-label{width:100%}
  .ypjj-range{width:100%}
}

/* ===== 音频格式转换（ypzh-）===== */
.ypzh-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ypzh-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.ypzh-btn{padding:8px 16px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ypzh-btn:hover{background:var(--hover)}
.ypzh-btn:disabled{opacity:.5;cursor:not-allowed}
.ypzh-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ypzh-label{font-size:13px;color:var(--muted)}
.ypzh-select{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font-size:14px}
.ypzh-info{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:16px;font-size:14px}
.ypzh-info p{margin:0 0 6px}
.ypzh-info p:last-child{margin-bottom:0}
.ypzh-progress{margin-bottom:16px}
.ypzh-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.ypzh-bar-in{height:100%;width:0;background:var(--accent);transition:width .2s}
.ypzh-bar-tip{text-align:center;color:var(--muted);font-size:13px;margin-top:8px}
.ypzh-result{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px}
.ypzh-tips{background:var(--accent-soft);border-radius:8px;padding:14px;font-size:13px;color:var(--muted);line-height:1.8}
.ypzh-tips p{margin:0}

/* ===== 视频转 GIF（spzg-）===== */
.spzg-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.spzg-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.spzg-btn{padding:8px 16px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.spzg-btn:hover{background:var(--hover)}
.spzg-btn:disabled{opacity:.5;cursor:not-allowed}
.spzg-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.spzg-info{font-size:13px;color:var(--muted)}
.spzg-video{margin-bottom:16px}
.spzg-controls{margin-bottom:16px}
.spzg-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.spzg-label{width:120px;color:var(--muted);font-size:14px;flex-shrink:0}
.spzg-range{flex:1}
.spzg-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.spzg-progress{margin-top:16px}
.spzg-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.spzg-bar-in{height:100%;width:0;background:var(--accent);transition:width .2s}
.spzg-bar-tip{text-align:center;color:var(--muted);font-size:13px;margin-top:8px}
.spzg-preview{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:16px;text-align:center}
.spzg-preview-title{font-size:13px;color:var(--muted);margin:0 0 10px}
#spzgPreviewImg{max-width:100%;border-radius:4px}
.spzg-tips{background:var(--accent-soft);border-radius:8px;padding:14px;font-size:13px;color:var(--muted);line-height:1.8}
.spzg-tips p{margin:0 0 6px}
.spzg-tips p:last-child{margin-bottom:0}

/* ===== 音频转文字（ypzw-）===== */
.ypzw-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.ypzw-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.ypzw-btn{padding:8px 16px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.ypzw-btn:hover{background:var(--hover)}
.ypzw-btn:disabled{opacity:.5;cursor:not-allowed}
.ypzw-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.ypzw-label{font-size:13px;color:var(--muted)}
.ypzw-select{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font-size:14px}
.ypzw-status{font-size:14px;color:var(--muted);margin-bottom:16px;padding:10px;background:var(--bg);border-radius:8px}
.ypzw-result{margin-bottom:16px}
.ypzw-result-title{font-size:14px;color:var(--muted);margin-bottom:8px}
.ypzw-text{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:16px;min-height:200px;font-size:15px;line-height:1.9;color:var(--fg);outline:none}
.ypzw-text:focus{border-color:var(--accent)}
.ypzw-tips{background:var(--accent-soft);border-radius:8px;padding:14px;font-size:13px;color:var(--muted);line-height:1.8}
.ypzw-tips p{margin:0 0 6px}
.ypzw-tips p:last-child{margin-bottom:0}


/* ===== 文字转语音 v2（wzyy-）===== */
.wzyy-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.wzyy-form{margin-bottom:16px}
.wzyy-textarea{width:100%;min-height:180px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font-size:15px;line-height:1.8;font-family:inherit;resize:vertical;outline:none;box-sizing:border-box}
.wzyy-textarea:focus{border-color:var(--accent)}
.wzyy-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:14px;background:var(--bg);border:1px solid var(--line);border-radius:8px}
.wzyy-label{font-size:13px;color:var(--muted);flex-shrink:0}
.wzyy-select{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);font-size:14px;outline:none;cursor:pointer}
.wzyy-select:focus{border-color:var(--accent)}
.wzyy-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.wzyy-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.wzyy-btn:hover{background:var(--hover)}
.wzyy-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.wzyy-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}
.wzyy-status{margin-bottom:16px;padding:12px 16px;border-radius:8px;font-size:14px;line-height:1.6;background:var(--bg);color:var(--muted)}
.wzyy-result{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:16px}
.wzyy-result-title{font-size:14px;color:var(--muted);margin-bottom:10px}
.wzyy-result-actions{margin-top:12px;display:flex;gap:10px;flex-wrap:wrap}
.wzyy-tips{background:var(--accent-soft);border-radius:8px;padding:14px 16px;font-size:13px;color:var(--muted);line-height:1.8}
.wzyy-tips p{margin:0 0 6px}
.wzyy-tips ol{margin:0;padding-left:20px}

@media (max-width:768px){
  .wzyy-toolbar{flex-direction:column;align-items:stretch}
  .wzyy-select{width:100%}
  .wzyy-actions{flex-direction:column}
  .wzyy-btn{width:100%;justify-content:center}
}



/* ===== 修复：所有主按钮 hover 保持白字 ===== */
.wzyy-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}
.ypjj-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}
.ypzh-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}
.spzg-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}
.ypzw-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}
.tpptu-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}
.tpqsq-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}
.tpdb-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}


/* ===== PDF 工具统一样式（pdftool-*）===== */
.pdftool-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:20px}
.pdftool-upload{display:block;border:2px dashed var(--line);border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .2s;color:var(--muted);margin-bottom:16px;background:var(--bg)}
.pdftool-upload:hover,.pdftool-upload.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.pdftool-upload i{font-size:40px;margin-bottom:12px;display:block;color:var(--accent)}
.pdftool-upload p{margin:0;font-size:14px}
.pdftool-info{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin-bottom:16px;font-size:14px;color:var(--fg)}
.pdftool-row{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:14px;border-bottom:1px dashed var(--line)}
.pdftool-row:last-child{border-bottom:none}
.pdftool-row span{width:90px;color:var(--muted);flex-shrink:0}
.pdftool-row b{flex:1;color:var(--fg);word-break:break-all;font-weight:500}
.pdftool-form{margin-bottom:16px}
.pdftool-label{display:block;color:var(--muted);font-size:14px;margin-bottom:6px}
.pdftool-input,.pdftool-select{width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);outline:none;font-size:14px;box-sizing:border-box;font-family:inherit}
.pdftool-input:focus,.pdftool-select:focus{border-color:var(--accent)}
.pdftool-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.pdftool-btn{padding:10px 20px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s;display:inline-flex;align-items:center;gap:6px}
.pdftool-btn:hover{background:var(--hover)}
.pdftool-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.pdftool-btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1}
.pdftool-status{margin-top:16px;padding:12px 16px;border-radius:8px;font-size:14px;line-height:1.6;background:var(--bg);color:var(--muted)}
.pdftool-note{background:var(--accent-soft);border-radius:8px;padding:14px 16px;font-size:13px;color:var(--muted);line-height:1.8;margin-top:16px}
.pdftool-note p{margin:0 0 6px}
.pdftool-note p:last-child{margin-bottom:0}
.pdftool-note code{background:var(--bg);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}
.pdftool-result{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:16px;margin-top:16px}
.pdftool-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:10px}
.pdftool-result-title{font-size:15px;font-weight:600;color:var(--fg);display:flex;align-items:center;gap:8px}
.pdftool-result-actions{display:flex;gap:8px;flex-wrap:wrap}
.pdftool-textarea{width:100%;min-height:300px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--fg);font-size:14px;line-height:1.8;font-family:monospace;resize:vertical;outline:none;box-sizing:border-box}
.pdftool-progress{margin-bottom:16px}
.pdftool-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden;border:1px solid var(--line)}
.pdftool-bar-in{height:100%;width:0;background:var(--accent);transition:width .2s}
.pdftool-bar-tip{text-align:center;color:var(--muted);font-size:13px;margin-top:8px}

@media (max-width:768px){
  .pdftool-wrap{padding:14px}
  .pdftool-upload{padding:30px 16px}
  .pdftool-actions{flex-direction:column}
  .pdftool-btn{width:100%;justify-content:center;text-align:center}
  .pdftool-row span{width:70px}
}
/* ===== PDF 工具字段优化（pdftool-field）===== */
.pdftool-field{margin-bottom:18px}
.pdftool-field-label{display:block;color:var(--fg);font-size:14px;font-weight:500;margin-bottom:8px}
.pdftool-field-label::before{content:"";display:inline-block;width:3px;height:14px;background:var(--accent);border-radius:2px;margin-right:8px;vertical-align:-2px}
.pdftool-field-tip{margin:6px 0 0;font-size:12px;color:var(--muted);line-height:1.6;padding-left:11px}

/* 说明区优化 */
.pdftool-note{background:var(--accent-soft);border-radius:8px;padding:18px 20px;font-size:13px;color:var(--fg);line-height:1.9;margin-top:20px}
.pdftool-note p{margin:0 0 10px}
.pdftool-note p:last-child{margin-bottom:0}
.pdftool-note strong{color:var(--fg)}
.pdftool-note ol,.pdftool-note ul{margin:0 0 12px;padding-left:22px}
.pdftool-note li{margin-bottom:6px;color:var(--muted)}
.pdftool-note li strong{color:var(--fg)}
.pdftool-note code{background:var(--bg);padding:2px 6px;border-radius:4px;font-family:monospace;color:var(--accent)}

@media (max-width:768px){
  .pdftool-field-tip{padding-left:0}
  .pdftool-note{padding:14px 16px}
}
/* ===== 音频转文字（asr-）===== */
.asr-limit-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--accent-soft);border-radius:8px;font-size:14px;color:var(--fg);margin-bottom:16px}
.asr-limit-bar i{color:var(--accent)}
.asr-limit-bar b{color:var(--accent);font-size:16px;font-weight:600}
.asr-limit-bar.asr-limit-zero{background:rgba(229,57,53,.15)}
.asr-limit-bar.asr-limit-zero b{color:#e53935}
.asr-upload-hint{margin:6px 0 0;font-size:12px;color:var(--muted)}


/* ===== 音频转文字提示优化 ===== */
.pdftool-note ul{list-style:none;padding-left:0}
.pdftool-note ul li{padding-left:20px;position:relative;margin-bottom:6px}
.pdftool-note ul li::before{content:"•";position:absolute;left:6px;top:0;color:var(--accent);font-weight:bold}