@charset "UTF-8";
/* ==========================================================================
   贴纸主题适配层（Neubrutalism）—— assets/css/theme-sticker.css
   --------------------------------------------------------------------------
   与小程序端「新粗野贴纸风」同一套视觉语言：
     奶油底 #fdf6e7 · 白卡 · 2.5px 粗黑描边 · 无模糊硬投影 · 微旋转贴纸 · 零渐变
   加载顺序：bootstrap → macos.css → bs5-overwind.css → dapp.css → theme-sticker.css
   生效方式：admin/head.php 按配置在 <html> 上输出 nb-theme / ap-accent-* / ap-radius-* / ap-dark
   配置项：admin_theme=sticker + admin_theme_accent / radius / mode / scope（pre_config）
   ========================================================================== */

/* ---------- 1. 强调色（8 色，与 theme-apple.css 同名变量，独立自洽） ---------- */
html.ap-accent-blue   {--ap-accent:#3b82f6; --ap-accent-2:#93c5fd; --ap-accent-soft:rgba(59,130,246,.12);  --ap-accent-ring:rgba(59,130,246,.20)}
html.ap-accent-purple {--ap-accent:#a855f7; --ap-accent-2:#d8b4fe; --ap-accent-soft:rgba(168,85,247,.12);  --ap-accent-ring:rgba(168,85,247,.20)}
html.ap-accent-pink   {--ap-accent:#ec4899; --ap-accent-2:#f9a8d4; --ap-accent-soft:rgba(236,72,153,.12);  --ap-accent-ring:rgba(236,72,153,.20)}
html.ap-accent-red    {--ap-accent:#ef4444; --ap-accent-2:#fca5a5; --ap-accent-soft:rgba(239,68,68,.12);   --ap-accent-ring:rgba(239,68,68,.20)}
html.ap-accent-orange {--ap-accent:#f97316; --ap-accent-2:#fdba74; --ap-accent-soft:rgba(249,115,22,.14);  --ap-accent-ring:rgba(249,115,22,.20)}
html.ap-accent-green  {--ap-accent:#22c55e; --ap-accent-2:#86efac; --ap-accent-soft:rgba(34,197,94,.14);   --ap-accent-ring:rgba(34,197,94,.20)}
html.ap-accent-teal   {--ap-accent:#06b6d4; --ap-accent-2:#67e8f9; --ap-accent-soft:rgba(6,182,212,.14);   --ap-accent-ring:rgba(6,182,212,.20)}
html.ap-accent-indigo {--ap-accent:#6366f1; --ap-accent-2:#a5b4fc; --ap-accent-soft:rgba(99,102,241,.12);  --ap-accent-ring:rgba(99,102,241,.20)}
html.ap-dark.ap-accent-blue   {--ap-accent:#60a5fa; --ap-accent-2:#93c5fd}
html.ap-dark.ap-accent-purple {--ap-accent:#c084fc; --ap-accent-2:#d8b4fe}
html.ap-dark.ap-accent-pink   {--ap-accent:#f472b6; --ap-accent-2:#f9a8d4}
html.ap-dark.ap-accent-red    {--ap-accent:#f87171; --ap-accent-2:#fca5a5}
html.ap-dark.ap-accent-orange {--ap-accent:#fb923c; --ap-accent-2:#fdba74}
html.ap-dark.ap-accent-green  {--ap-accent:#4ade80; --ap-accent-2:#86efac}
html.ap-dark.ap-accent-teal   {--ap-accent:#22d3ee; --ap-accent-2:#67e8f9}
html.ap-dark.ap-accent-indigo {--ap-accent:#818cf8; --ap-accent-2:#a5b4fc}

/* ---------- 2. 圆角档位（贴纸风整体更方正） ---------- */
html.ap-radius-compact{--nb-r-card:12px; --nb-r-shell:14px; --nb-r-ctl:8px;  --nb-r-tile:8px}
html.ap-radius-comfy  {--nb-r-card:14px; --nb-r-shell:18px; --nb-r-ctl:10px; --nb-r-tile:10px}
html.ap-radius-large  {--nb-r-card:18px; --nb-r-shell:22px; --nb-r-ctl:12px; --nb-r-tile:12px}

/* ---------- 3. 主题令牌（覆盖 dapp/macos/bootstrap 三体系） ---------- */
html.nb-theme{
  /* 贴纸核心变量 */
  --nb-line:#1c1c1e;
  --nb-shadow:#1c1c1e;
  --nb-bw:2.5px;          /* 描边宽 */
  --nb-sh:5px 5px 0 var(--nb-shadow);   /* 卡片硬投影 */
  --nb-sh-sm:3px 3px 0 var(--nb-shadow);/* 控件硬投影 */

  /* dapp 令牌 */
  --bg:#fdf6e7;
  --shell:#ffffff;
  --ink-1:#1c1c1e;
  --ink-2:#5a5a60;
  --ink-3:#9aa0a6;
  --ink:var(--ink-1,#1c1c1e);
  --line:rgba(28,28,30,.10);
  --line-2:rgba(28,28,30,.18);

  --brand:var(--ap-accent,#3b82f6);
  --brand-2:var(--ap-accent-2,#93c5fd);
  --brand-soft:var(--ap-accent-soft,rgba(59,130,246,.12));
  --mint:#22c55e; --mint-soft:rgba(34,197,94,.14);
  --coral:#ef4444; --coral-soft:rgba(239,68,68,.12);
  --amber:#f59e0b; --amber-soft:rgba(245,158,11,.16);
  --sky:#06b6d4;   --sky-soft:rgba(6,182,212,.14);
  --pink:#ec4899;
  /* 兼容令牌：新增后台页（订单/举报/体检/工具箱/运营数据等）用的 --card/--bg-soft/
     --accent。--card 显式给值（不依赖 dapp.css 里 var(--shell) 的引用解析），
     --accent 挂到 --brand 上跟随强调色。 */
  --card:#ffffff;
  --bg-soft:#f7efdd;

  --r-xl:var(--nb-r-shell,18px);
  --r-lg:var(--nb-r-card,14px);
  --r-md:12px;
  --r-sm:var(--nb-r-ctl,10px);
  --r-xs:8px;
  --font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC",
              "Helvetica Neue","Microsoft YaHei",Inter,Roboto,Arial,sans-serif;
  --font-num:ui-monospace,Menlo,Consolas,"Liberation Mono",monospace;
  color-scheme:light;
}
html.nb-theme.ap-dark{
  color-scheme:dark;
  --bg:#131417;
  --shell:#1b1d22;
  --ink-1:#f4f4f5;
  --ink-2:#b3b3b8;
  --ink-3:#75757b;
  --nb-line:#ececee;
  --line:rgba(255,255,255,.10);
  --line-2:rgba(255,255,255,.20);
  --mint:#30d158; --coral:#ff6961; --amber:#ff9f0a; --sky:#22d3ee; --pink:#f472b6;
  --card:#1b1d22;
  --bg-soft:rgba(255,255,255,.06);
}

/* ---------- 4. 全局基础 ---------- */
html.nb-theme body{background:var(--bg);color:var(--ink-1);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}
html.nb-theme ::selection{background:var(--ap-accent-soft);color:var(--ink-1)}
html.nb-theme ::-webkit-scrollbar{width:10px;height:10px}
html.nb-theme ::-webkit-scrollbar-track{background:transparent}
html.nb-theme ::-webkit-scrollbar-thumb{background:var(--nb-line);border:3px solid transparent;border-radius:99px;background-clip:content-box}
html.nb-theme hr{border:0;border-top:2px solid var(--line);opacity:1}
html.nb-theme a{color:var(--brand);transition:color .15s}
html.nb-theme a:hover{color:var(--ink-1)}
html.nb-theme code,html.nb-theme kbd{background:var(--bg);border:1.5px solid var(--line);border-radius:6px;color:var(--ink-1);padding:2px 6px;font-family:var(--font-num);font-size:.88em}
html.nb-theme b,html.nb-theme strong{font-weight:800}
html.nb-theme h1,html.nb-theme h2,html.nb-theme h3,html.nb-theme h4,html.nb-theme h5,html.nb-theme h6{color:var(--ink-1);letter-spacing:-.01em}
html.nb-theme small,.text-muted{color:var(--ink-2)!important}
html.nb-theme ::placeholder{color:var(--ink-3);opacity:1}

/* ---------- 5. 骨架：外壳 / 图标栏 / 顶栏 ---------- */
html.nb-theme .dapp-app{padding:14px;gap:14px}
html.nb-theme .dapp-rail,
html.nb-theme .dapp-shell{
  background:var(--shell);
  border:var(--nb-bw) solid var(--nb-line);
  border-radius:var(--nb-r-shell,18px);
  box-shadow:var(--nb-sh);
}
html.nb-theme .dapp-main{padding:0 26px 34px}
html.nb-theme .dapp-logo{
  width:40px;height:40px;border-radius:11px;font-size:16px;
  background:var(--brand);color:#fff;
  border:2px solid var(--nb-line);box-shadow:2.5px 2.5px 0 var(--nb-shadow);
  transform:rotate(-4deg);
}
html.nb-theme .dapp-rail-btn{
  width:44px;height:44px;border-radius:12px;font-size:16px;
  border:2px solid transparent;color:var(--ink-1);
  transition:background .15s,color .15s,transform .15s,box-shadow .15s,border-color .15s;
}
html.nb-theme .dapp-rail-btn:hover{background:var(--brand-soft);color:var(--ink-1)}
html.nb-theme .dapp-rail-btn:active{transform:scale(.94)}
html.nb-theme .dapp-rail-btn.active{
  background:var(--brand-soft);color:var(--ink-1);
  border-color:var(--nb-line);box-shadow:2.5px 2.5px 0 var(--nb-shadow);
  transform:rotate(-2.5deg);
}
html.nb-theme .dapp-rail-btn.active::before{display:none}
html.nb-theme .dapp-rail-btn[data-tip]:hover::after{
  background:var(--nb-line);color:var(--shell);border-radius:8px;font-size:12px;left:54px;font-weight:700;
}
html.nb-theme .dapp-rail-badge{background:var(--coral);color:#fff;border:1.5px solid var(--nb-line);box-shadow:0 0 0 2px var(--shell);font-size:10px;font-weight:800;border-radius:8px}
html.nb-theme .dapp-rail-dot{border-color:var(--shell)}

html.nb-theme .dapp-topbar{
  padding:18px 26px 14px;
  background:transparent;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  border-bottom:0;
}
html.nb-theme .dapp-greet h1{font-size:21px;font-weight:900;letter-spacing:-.4px}
html.nb-theme .dapp-greet p{font-size:12.5px;color:var(--ink-2);font-weight:600}
html.nb-theme .dapp-search{
  background:var(--shell);border:2px solid var(--nb-line);border-radius:var(--nb-r-ctl,10px);
  height:40px;box-shadow:var(--nb-sh-sm);
}
html.nb-theme .dapp-search:focus-within{box-shadow:1.5px 1.5px 0 var(--nb-shadow)}
html.nb-theme .dapp-icon-btn{
  width:38px;height:38px;border-radius:10px;
  border:2px solid var(--nb-line);background:var(--shell);
  box-shadow:var(--nb-sh-sm);color:var(--ink-1);
}
html.nb-theme .dapp-icon-btn:hover{background:var(--brand-soft);color:var(--ink-1)}
html.nb-theme .dapp-icon-btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--nb-shadow)}
html.nb-theme .dapp-avatar{
  width:40px;height:40px;border-radius:50%;font-size:13px;
  background:var(--amber);color:#fff;
  border:2px solid var(--nb-line);box-shadow:2.5px 2.5px 0 var(--nb-shadow);
}
html.nb-theme .dapp-menu{
  border:2.5px solid var(--nb-line)!important;border-radius:14px;padding:6px;
  background:var(--shell)!important;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:6px 6px 0 var(--nb-shadow)!important;
}
html.nb-theme .dapp-menu .dropdown-item{border-radius:9px;font-size:13.5px;padding:8px 11px;font-weight:600}
html.nb-theme .dapp-menu .dropdown-item:hover{background:var(--brand-soft);color:var(--ink-1)}

/* ---------- 6. 按钮 ---------- */
html.nb-theme .dapp-btn-primary{
  height:40px;padding:0 18px;border-radius:var(--nb-r-ctl,10px);
  background:var(--brand);color:#fff;font-weight:800;font-size:13.5px;
  border:2px solid var(--nb-line);
  box-shadow:var(--nb-sh-sm);
  transition:transform .12s,box-shadow .12s;
}
html.nb-theme .dapp-btn-primary:hover{background:var(--brand);color:#fff;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--nb-shadow)}
html.nb-theme .dapp-btn-primary:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--nb-shadow)}

/* ---------- 7. 卡片 / 标题 / KPI / Hero ---------- */
html.nb-theme .dapp-card,
html.nb-theme .panel,
html.nb-theme .card{
  background:var(--shell);
  border:var(--nb-bw) solid var(--nb-line);
  border-radius:var(--nb-r-card,14px);
  box-shadow:var(--nb-sh);
  padding:18px;
}
html.nb-theme .dapp-card-hover:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--nb-shadow)}
html.nb-theme .panel{padding:0}
html.nb-theme .dapp-sec h2{font-size:16px;font-weight:900}
html.nb-theme .dapp-sec .sub{color:var(--ink-3);font-weight:600}
html.nb-theme .dapp-tile{border-radius:var(--nb-r-tile,10px)}
html.nb-theme .dapp-kpi-label{font-size:12.5px;color:var(--ink-2);font-weight:700}
html.nb-theme .dapp-kpi-num{font-size:26px;font-weight:900;letter-spacing:-.6px;font-variant-numeric:tabular-nums}
html.nb-theme .dapp-kpi-num small{font-weight:600;color:var(--ink-3)}
html.nb-theme .dapp-up{color:var(--mint);font-weight:800}
html.nb-theme .dapp-down{color:var(--coral);font-weight:800}

/* 主卡：贴纸插画 Hero（浅彩底 + 点阵底纹 + 卡通云朵贴纸 + 硬投影），对齐小程序端 Hero 卡 */
html.nb-theme .dapp-hero{
  border-radius:var(--nb-r-card,14px);padding:22px;
  background-color:var(--brand-soft);
  background-image:radial-gradient(circle, color-mix(in srgb, var(--brand) 25%, transparent) 1.6px, transparent 1.7px);
  background-size:18px 18px;
  border:var(--nb-bw) solid var(--nb-line);
  box-shadow:6px 6px 0 var(--nb-shadow);
}
/* 卡通云朵贴纸（压在圆环左上，微旋转） */
html.nb-theme .dapp-hero::after{
  content:'';position:absolute;z-index:1;right:148px;top:-12px;width:92px;height:58px;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 40'%3E%3Cpath d='M18 32c-6 0-10-4-10-9 0-4.4 3.2-8 7.6-8.8C17 9.4 21.6 6 27 6c6.4 0 11.8 4.6 12.8 10.6 4.8.4 8.6 4.3 8.6 9 0 3.6-3.4 6.4-7.6 6.4z' fill='%23ffffff' stroke='%231c1c1e' stroke-width='3' stroke-linejoin='round'/%3E%3Ccircle cx='44' cy='8' r='2.5' fill='%23f59e0b' stroke='%231c1c1e' stroke-width='1.5'/%3E%3C/svg%3E");
  transform:rotate(8deg);pointer-events:none;
}
html.nb-theme .dapp-hero::before{display:none}
html.nb-theme .dapp-hero-dark{background:#2c2c2e;box-shadow:6px 6px 0 var(--nb-shadow)}
/* 深色文字 + 贴纸胶囊（替代原纯色底上的白字白胶囊） */
html.nb-theme .dapp-hero{color:var(--ink-1)}
html.nb-theme .dapp-hero .h-num{font-size:38px;font-weight:900;letter-spacing:-1px;font-variant-numeric:tabular-nums;color:var(--ink-1)}
html.nb-theme .dapp-hero .h-num span{color:var(--ink-3)}
html.nb-theme .dapp-hero .h-label{color:var(--ink-2);font-weight:800}
html.nb-theme .dapp-hero .h-label i{color:var(--brand)}
html.nb-theme .dapp-hero .h-sub{color:var(--ink-2)}
html.nb-theme .dapp-hero .h-sub b{color:var(--brand)}
/* 环形进度：轨道浅灰 + 实色弧（CSS 覆盖内联白渐变），中心数字深色 */
html.nb-theme .dapp-ring svg circle{stroke:rgba(28,28,30,.10)}
html.nb-theme .dapp-ring svg circle#ringArc{stroke:var(--brand)}
html.nb-theme .dapp-ring .ring-txt{color:var(--ink-1)}
html.nb-theme .dapp-chip-w{
  background:var(--shell);border:2px solid var(--nb-line);border-radius:10px;
  color:var(--ink-1);font-weight:700;box-shadow:2px 2px 0 var(--nb-shadow);
}
html.nb-theme .dapp-chip-w i{color:var(--brand)}
html.nb-theme .dapp-chip-w b{color:var(--ink-1)}

/* ---------- 8. 微图表 / 胶囊 / 列表 ---------- */
html.nb-theme .dapp-bars i{border-radius:3px;background:var(--ap-accent-soft)}
html.nb-theme .dapp-bars i.hi{background:var(--brand)}
html.nb-theme .dapp-chip{
  border:2px solid var(--nb-line);background:var(--shell);
  border-radius:999px;color:var(--ink-2);padding:7px 14px;font-weight:700;
  transition:transform .12s,box-shadow .12s,background .15s;
}
html.nb-theme .dapp-chip:hover{color:var(--ink-1);transform:translate(-1px,-1px);box-shadow:2.5px 2.5px 0 var(--nb-shadow)}
html.nb-theme .dapp-chip.on{background:var(--brand);color:#fff;font-weight:800;box-shadow:var(--nb-sh-sm);transform:rotate(-1.5deg)}
html.nb-theme .dapp-chip .n{background:var(--brand-soft);font-weight:800;border-radius:6px;padding:0 5px}
html.nb-theme .dapp-chip.on .n{background:rgba(255,255,255,.25)}

html.nb-theme .dapp-tbl-head,
html.nb-theme .dapp-file-row{border-radius:var(--nb-r-ctl,10px);padding:11px 14px}
html.nb-theme .dapp-tbl-head{color:var(--ink-3);font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
html.nb-theme .dapp-file-row:hover{background:var(--brand-soft)}
html.nb-theme .dapp-f-ico{border-radius:var(--nb-r-tile,10px);border:2px solid var(--nb-line);box-shadow:2px 2px 0 var(--nb-shadow)}
html.nb-theme .dapp-mini-btn{border-radius:8px;border:2px solid var(--nb-line);background:var(--shell);font-weight:700}
html.nb-theme .dapp-mini-btn:hover{background:var(--brand-soft);color:var(--ink-1)}
html.nb-theme .dapp-feed-dot{box-shadow:0 0 0 3px var(--shell);border:1.5px solid var(--nb-line)}
html.nb-theme .dapp-task-item{border-radius:var(--nb-r-ctl,10px)}
html.nb-theme .dapp-task-item:hover{background:var(--brand-soft)}
html.nb-theme .dapp-tag{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:7px;font-size:11.5px;font-weight:800;border:1.5px solid var(--nb-line);background:var(--bg);color:var(--ink-1);transform:rotate(-1deg)}
html.nb-theme .dapp-tag.admin{background:var(--brand-soft);color:var(--ink-1)}
html.nb-theme .dapp-tag.super{background:rgba(168,85,247,.16);color:#9333ea}

/* ---------- 9. 设置页：panel / 表单 / 子导航 ---------- */
html.nb-theme .dapp-subnav{
  background:var(--shell);border:2px solid var(--nb-line);border-radius:var(--nb-r-ctl,10px);
  padding:4px;gap:2px;box-shadow:var(--nb-sh-sm);
}
html.nb-theme .dapp-subnav a{
  border-radius:calc(var(--nb-r-ctl,10px) - 3px);
  font-size:13px;font-weight:700;color:var(--ink-2);
  padding:7px 13px;transition:background .15s,color .15s;
}
html.nb-theme .dapp-subnav a:hover{color:var(--ink-1);background:var(--bg)}
html.nb-theme .dapp-subnav a.on{background:var(--brand);color:#fff;font-weight:800}
html.nb-theme .panel-primary>.card-header,
html.nb-theme .panel-info>.card-header,
html.nb-theme .card-header{
  background:transparent;border-bottom:2px solid var(--line);
  border-radius:var(--nb-r-card,14px) var(--nb-r-card,14px) 0 0;padding:14px 18px;
}
html.nb-theme .card-title{font-size:15px;font-weight:900;color:var(--ink-1)}
html.nb-theme .card-body{padding:18px}
html.nb-theme .card-footer{
  background:transparent;border-top:2px solid var(--line);
  border-radius:0 0 var(--nb-r-card,14px) var(--nb-r-card,14px);
  color:var(--ink-2);font-size:12.5px;padding:12px 18px;
}
html.nb-theme .control-label{font-weight:800;color:var(--ink-1)}
html.nb-theme pre{background:var(--bg);border:2px solid var(--line);border-radius:var(--nb-r-ctl,10px);color:var(--ink-1);font-size:12px}
html.nb-theme .well{background:var(--bg);border:2px solid var(--line);border-radius:var(--nb-r-card,14px);color:var(--ink-1)}

/* ---------- 10. 通用按钮（Bootstrap） ---------- */
html.nb-theme .btn{border-radius:var(--nb-r-ctl,10px);font-weight:800;border:2px solid var(--nb-line);transition:transform .12s,box-shadow .12s,background .15s}
html.nb-theme .btn:active{transform:translate(2px,2px)!important;box-shadow:0 0 0 var(--nb-shadow)!important}
html.nb-theme .btn-primary{background:var(--brand);border-color:var(--nb-line);box-shadow:var(--nb-sh-sm)}
html.nb-theme .btn-primary:hover{background:var(--brand);border-color:var(--nb-line);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--nb-shadow)}
html.nb-theme .btn-default,
html.nb-theme .btn-secondary{background:var(--shell);border-color:var(--nb-line);color:var(--ink-1);box-shadow:var(--nb-sh-sm)}
html.nb-theme .btn-default:hover,
html.nb-theme .btn-secondary:hover{background:var(--brand-soft);border-color:var(--nb-line);color:var(--ink-1);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--nb-shadow)}
html.nb-theme .btn-light,
html.nb-theme .btn-white{background:var(--shell);border-color:var(--nb-line);color:var(--ink-1)}

/* ---------- 11. 表格 ---------- */
html.nb-theme .table>thead>tr>th{
  font-size:11.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3);
  border-bottom:2px solid var(--line);background:transparent;
}
html.nb-theme .table>tbody>tr>td{border-top:2px solid var(--line);color:var(--ink-1)}
html.nb-theme .table-hover>tbody>tr:hover{background:var(--brand-soft)}
/* 贴纸卡片表格：整表描边圆角 + 表头浅彩底 + 行分隔线（覆盖 bootstrap 细线网格） */
html.nb-theme .table-bordered{
  border-collapse:separate;border-spacing:0;
  border:2.5px solid var(--nb-line);border-radius:12px;overflow:hidden;
  box-shadow:var(--nb-sh-sm);
}
html.nb-theme .table-bordered>thead>tr>th{
  background:var(--brand-soft);color:var(--ink-2);
  border:0;border-bottom:2px solid var(--nb-line);
}
html.nb-theme .table-bordered>thead>tr>th:first-child{border-top-left-radius:9px}
html.nb-theme .table-bordered>thead>tr>th:last-child{border-top-right-radius:9px}
html.nb-theme .table-bordered>tbody>tr>td{border:0;border-bottom:2px solid var(--line);vertical-align:middle}
html.nb-theme .table-bordered>tbody>tr:last-child>td{border-bottom:0}
html.nb-theme .dapp-page .table>thead>tr>th,
html.nb-theme .dapp-page .table>tbody>tr>td{padding:12px 16px;font-size:13px;vertical-align:middle;border-top:0;border-bottom:2px solid var(--line)}
html.nb-theme .dapp-page .table>tbody>tr:hover{background:var(--brand-soft)}
html.nb-theme .dapp-page .table>tbody>tr:last-child>td{border-bottom:0}
html.nb-theme .dapp-page .fixed-table-container{border:var(--nb-bw) solid var(--nb-line);border-radius:var(--nb-r-card,14px);background:var(--shell);box-shadow:var(--nb-sh)}
html.nb-theme .dapp-page .fixed-table-toolbar{padding:14px 18px;border-bottom:2px solid var(--line)}
html.nb-theme .dapp-page .fixed-table-toolbar .search input{height:34px;border-radius:8px;border:2px solid var(--nb-line);padding:0 12px;font-size:13px;background:var(--shell);color:var(--ink-1)}
html.nb-theme .dapp-page .fixed-table-toolbar .btn,
html.nb-theme .dapp-page .fixed-table-toolbar button{border-radius:8px!important;border:2px solid var(--nb-line)!important;box-shadow:2px 2px 0 var(--nb-shadow)!important;font-weight:700!important}
html.nb-theme .dapp-page .columns .btn-default{background:var(--shell)!important;border:2px solid var(--nb-line)!important;color:var(--ink-1)!important}
html.nb-theme .dapp-page .columns label{margin:0;padding:6px 10px;border-radius:7px;display:flex;align-items:center;gap:7px;color:var(--ink-1);font-weight:600}
html.nb-theme .dapp-page .columns label:hover{background:var(--brand-soft)}

/* ---------- 12. 表单控件 ---------- */
html.nb-theme .form-control,
html.nb-theme .form-select,
html.nb-theme .fr-input,
html.nb-theme textarea,
html.nb-theme select,
html.nb-theme input[type="text"],
html.nb-theme input[type="password"],
html.nb-theme input[type="number"],
html.nb-theme input[type="email"],
html.nb-theme input[type="search"]{
  min-height:38px;padding:8px 12px;font-size:13.5px;
  border:2px solid var(--nb-line);border-radius:var(--nb-r-ctl,10px);
  background:var(--shell);color:var(--ink-1);
  box-shadow:var(--nb-sh-sm);
  transition:box-shadow .12s,border-color .12s;
}
html.nb-theme .form-control:focus,
html.nb-theme .form-select:focus,
html.nb-theme .fr-input:focus,
html.nb-theme textarea:focus,
html.nb-theme select:focus,
html.nb-theme input[type="text"]:focus,
html.nb-theme input[type="password"]:focus,
html.nb-theme input[type="number"]:focus,
html.nb-theme input[type="email"]:focus,
html.nb-theme input[type="search"]:focus{
  outline:0;border-color:var(--ap-accent);
  box-shadow:1.5px 1.5px 0 var(--nb-shadow);background:var(--shell);
}
/* 复合控件（外壳自带描边+投影）：内部 input 保持扁平，避免双层叠加 */
html.nb-theme .dapp-search input{
  min-height:0;height:100%;padding:0;font-size:13.5px;
  border:0;background:transparent;box-shadow:none;border-radius:0;
}
html.nb-theme .dapp-search input:focus{
  outline:0;border:0;background:transparent;box-shadow:none;
}
html.nb-theme select:not([multiple]){
  -webkit-appearance:none;appearance:none;padding-right:34px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.8 4.4 6 7.6l3.2-3.2' fill='none' stroke='%231c1c1e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:12px;
}
html.nb-theme.ap-dark select:not([multiple]){
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.8 4.4 6 7.6l3.2-3.2' fill='none' stroke='%23ececee' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
html.nb-theme input[type="checkbox"],
html.nb-theme input[type="radio"]{
  -webkit-appearance:none;appearance:none;position:relative;cursor:pointer;
  width:20px;height:20px;flex:0 0 auto;margin:0 7px 0 0;vertical-align:-4px;
  background:var(--shell);border:2px solid var(--nb-line);border-radius:6px;
  box-shadow:2px 2px 0 var(--nb-shadow);
  transition:background .15s,box-shadow .12s;
}
html.nb-theme .ap-check input[type="checkbox"],
html.nb-theme .ap-radio input[type="radio"],
html.nb-theme .ap-switch input[type="checkbox"]{
  width:100%;height:100%;margin:0;opacity:0;z-index:3;
  background:transparent;border:0;border-radius:0;box-shadow:none;flex:0 0 auto;
}
html.nb-theme input[type="radio"]{border-radius:50%}
html.nb-theme input[type="checkbox"]:checked,
html.nb-theme input[type="radio"]:checked{background:var(--brand);border-color:var(--nb-line);box-shadow:2px 2px 0 var(--nb-shadow)}
html.nb-theme input[type="checkbox"]:checked::after{
  content:'';position:absolute;left:5.5px;top:2.5px;width:5px;height:9px;
  border:2px solid #fff;border-top:0;border-left:0;transform:rotate(42deg);
}
html.nb-theme input[type="radio"]:checked::after{content:'';position:absolute;inset:5px;border-radius:50%;background:#fff}
html.nb-theme input[type="checkbox"]:focus,
html.nb-theme input[type="radio"]:focus{outline:0;box-shadow:2px 2px 0 var(--nb-shadow)}
html.nb-theme input[type="checkbox"]:disabled,
html.nb-theme input[type="radio"]:disabled{opacity:.45;cursor:not-allowed}
html.nb-theme .f-chkline,
html.nb-theme .mc-chk{display:inline-flex;align-items:center;gap:7px;cursor:pointer;color:var(--ink-1);font-size:13px;font-weight:600}
html.nb-theme .f-chkline input[type="checkbox"],
html.nb-theme .mc-chk input[type="checkbox"]{width:18px;height:18px;border-radius:5px}
html.nb-theme input[type="checkbox"].switch,
html.nb-theme input[type="checkbox"].ap-switch{
  width:51px;height:31px;margin-right:0;border:2px solid var(--nb-line);border-radius:99px;
  background:var(--bg);box-shadow:var(--nb-sh-sm);
  transition:background .2s;
}
html.nb-theme input[type="checkbox"].switch::after,
html.nb-theme input[type="checkbox"].ap-switch::after{
  content:'';position:absolute;top:3px;left:3px;width:23px;height:23px;border-radius:50%;
  background:#fff;border:2px solid var(--nb-line);box-shadow:1.5px 1.5px 0 var(--nb-shadow);
  transition:transform .2s;
}
html.nb-theme input[type="checkbox"].switch:checked,
html.nb-theme input[type="checkbox"].ap-switch:checked{background:var(--brand)}
html.nb-theme input[type="checkbox"].switch:checked::after,
html.nb-theme input[type="checkbox"].ap-switch:checked::after{
  transform:translateX(20px);left:1px;top:1px;inset:auto;background:#fff;
}
html.nb-theme input[type="file"]{
  font-size:13px;padding:7px;border-radius:var(--nb-r-ctl,10px);
  border:2px dashed var(--nb-line);background:var(--shell);color:var(--ink-2);width:100%;
}
html.nb-theme input[type="file"]::file-selector-button{
  margin-right:10px;padding:6px 13px;border:2px solid var(--nb-line);border-radius:8px;
  background:var(--brand-soft);color:var(--ink-1);font-weight:800;font-size:12.5px;cursor:pointer;
  box-shadow:2px 2px 0 var(--nb-shadow);
}
html.nb-theme .input-group-text{
  border:2px solid var(--nb-line);background:var(--bg);color:var(--ink-2);
  border-radius:var(--nb-r-ctl,10px);font-size:13px;font-weight:700;
}
/* 输入组（bootstrap-3 式 addon，如「积分」后缀）：作为整体描边圆角，输入框去投影防叠层 */
html.nb-theme .input-group{border-radius:var(--nb-r-ctl,10px)}
html.nb-theme .input-group .form-control{
  border-right:0;border-radius:var(--nb-r-ctl,10px) 0 0 var(--nb-r-ctl,10px);
  box-shadow:none;
}
html.nb-theme .input-group .form-control:focus{box-shadow:none}
html.nb-theme .input-group-addon,
html.nb-theme .input-group .input-group-text{
  border:2px solid var(--nb-line);border-left:0;
  border-radius:0 var(--nb-r-ctl,10px) var(--nb-r-ctl,10px) 0;
  background:var(--brand-soft);color:var(--ink-2);
  font-size:12.5px;font-weight:800;box-shadow:none;
}

/* ---------- 13. 反馈层：alert / modal / tooltip / toast ---------- */
html.nb-theme .alert{
  border:2px solid var(--nb-line);border-radius:var(--nb-r-ctl,10px);
  background:var(--shell);color:var(--ink-1);
  padding:11px 14px;font-size:13px;font-weight:600;box-shadow:var(--nb-sh-sm);
}
html.nb-theme .alert-success{background:var(--mint-soft);color:#15803d}
html.nb-theme .alert-info,
html.nb-theme .alert-primary{background:var(--brand-soft);color:var(--ink-1)}
html.nb-theme .alert-warning{background:var(--amber-soft);color:#92400e}
html.nb-theme .alert-danger{background:var(--coral-soft);color:#b91c1c}
html.nb-theme .fr-alert{border-radius:var(--nb-r-ctl,10px);border:2px solid var(--nb-line)}
html.nb-theme .fr-alert.err{background:var(--coral-soft);color:#b91c1c}
html.nb-theme .fr-alert.ok{background:var(--mint-soft);color:#15803d}

html.nb-theme .modal-content{
  border:var(--nb-bw) solid var(--nb-line);border-radius:var(--nb-r-card,14px);
  background:var(--shell);box-shadow:7px 7px 0 var(--nb-shadow);overflow:hidden;
}
html.nb-theme .modal-header{border-bottom:2px solid var(--line);padding:15px 20px}
html.nb-theme .modal-title{font-size:16px;font-weight:900;color:var(--ink-1)}
html.nb-theme .modal-body{padding:18px 20px;color:var(--ink-1)}
html.nb-theme .modal-footer{border-top:2px solid var(--line);padding:12px 18px}
html.nb-theme .btn-close{opacity:.55}
html.nb-theme .tooltip .tooltip-inner{
  background:var(--nb-line);color:var(--shell);border-radius:8px;
  padding:6px 10px;font-size:12px;font-weight:700;box-shadow:3px 3px 0 rgba(0,0,0,.18);
}
html.nb-theme .popover{
  border:2.5px solid var(--nb-line);border-radius:14px;
  background:var(--shell);
  -webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:6px 6px 0 var(--nb-shadow);
}
html.nb-theme .popover-header{background:transparent;border-bottom:2px solid var(--line);font-weight:800;color:var(--ink-1)}
html.nb-theme .popover-body{color:var(--ink-1);font-size:13px}
html.nb-theme .toast{
  border:2.5px solid var(--nb-line);border-radius:14px;
  background:var(--shell);
  -webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:6px 6px 0 var(--nb-shadow);
}

/* ---------- 14. 通用组件：badge / 进度 / 分页 / 页签 / 下拉 ---------- */
html.nb-theme .badge,
html.nb-theme .label{
  display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:800;
  padding:2px 9px;border-radius:7px;border:1.5px solid var(--nb-line);
  background:var(--bg);color:var(--ink-1);transform:rotate(-1deg);
}
html.nb-theme .badge-primary,
html.nb-theme .label-primary{background:var(--brand-soft);color:var(--ink-1)}
html.nb-theme .badge-success,
html.nb-theme .label-success{background:var(--mint-soft);color:#15803d}
html.nb-theme .badge-info{background:var(--sky-soft);color:#0e7490}
html.nb-theme .badge-warning,
html.nb-theme .label-warning{background:var(--amber-soft);color:#92400e}
html.nb-theme .badge-danger,
html.nb-theme .label-danger{background:var(--coral-soft);color:#b91c1c}
html.nb-theme .progress{height:12px;border-radius:7px;background:var(--bg);border:2px solid var(--nb-line);overflow:hidden;box-shadow:inset 2px 2px 0 rgba(28,28,30,.08)}
html.nb-theme .progress-bar{background:var(--brand);border-radius:3px;border-right:2px solid var(--nb-line)}
html.nb-theme .pagination{margin:14px 0 6px;gap:6px}
html.nb-theme .pagination .page-link{
  min-width:32px;height:32px;padding:0 9px;border-radius:9px;
  background:var(--shell);border:2px solid var(--nb-line);color:var(--ink-1);
  font-variant-numeric:tabular-nums;font-size:13px;font-weight:800;box-shadow:2px 2px 0 var(--nb-shadow);transition:.12s;
}
html.nb-theme .pagination .page-link:hover{background:var(--brand-soft);color:var(--ink-1);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--nb-shadow)}
html.nb-theme .pagination .page-item.active .page-link{
  background:var(--brand);color:#fff;font-weight:800;transform:rotate(-2deg);
}
html.nb-theme .pagination .page-item.disabled .page-link{color:var(--ink-3);background:var(--bg);opacity:.6}
html.nb-theme .breadcrumb{font-size:12.5px;color:var(--ink-2);margin-bottom:10px;font-weight:600}
html.nb-theme .nav-tabs{border-bottom:2.5px solid var(--nb-line);gap:6px}
html.nb-theme .nav-tabs .nav-link{
  border:2px solid transparent;border-bottom:0;border-radius:10px 10px 0 0;color:var(--ink-2);
  font-size:13.5px;padding:8px 14px;font-weight:700;transition:.15s;
}
html.nb-theme .nav-tabs .nav-link:hover{color:var(--ink-1);background:var(--brand-soft)}
html.nb-theme .nav-tabs .nav-link.active{
  color:var(--ink-1);background:var(--shell);font-weight:900;
  border-color:var(--nb-line) var(--nb-line) transparent;
  transform:translateY(2.5px);
}
html.nb-theme .nav-pills .nav-link{border-radius:9px;color:var(--ink-2);font-weight:700}
html.nb-theme .nav-pills .nav-link.active{background:var(--brand);color:#fff;font-weight:800;border:2px solid var(--nb-line);box-shadow:2px 2px 0 var(--nb-shadow)}
html.nb-theme .dropdown-menu{
  border:2.5px solid var(--nb-line);border-radius:14px;padding:6px;
  background:var(--shell);
  -webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:6px 6px 0 var(--nb-shadow);
}
html.nb-theme .dropdown-item{border-radius:9px;font-size:13.5px;padding:8px 11px;color:var(--ink-1);font-weight:600}
html.nb-theme .dropdown-item:hover,
html.nb-theme .dropdown-item:focus{background:var(--brand-soft);color:var(--ink-1)}
html.nb-theme .dropdown-divider{border-top:2px solid var(--line);margin:5px 0}
html.nb-theme .list-group{border-radius:var(--nb-r-card,14px);overflow:hidden;border:var(--nb-bw) solid var(--nb-line);box-shadow:var(--nb-sh)}
html.nb-theme .list-group-item{background:var(--shell);color:var(--ink-1);border-color:var(--line);padding:11px 16px;font-size:13.5px}
html.nb-theme .list-group-item:hover{background:var(--brand-soft)}

/* ---------- 15. layer 弹窗贴纸化 ---------- */
html.nb-theme .layui-layer{border-radius:var(--nb-r-card,14px)!important;overflow:hidden;border:var(--nb-bw) solid var(--nb-line)!important;box-shadow:7px 7px 0 var(--nb-shadow)!important}
html.nb-theme .layui-layer-title{
  border-radius:var(--nb-r-card,14px) var(--nb-r-card,14px) 0 0!important;
  background:var(--shell)!important;color:var(--ink-1)!important;
  border-bottom:2px solid var(--line)!important;font-weight:900;height:48px;line-height:48px;font-size:14.5px!important;padding:14px 22px!important;
}
html.nb-theme .layui-layer-content{background:var(--shell);color:var(--ink-1);padding:18px}
html.nb-theme .layui-layer-btn{background:var(--shell);border-top:2px solid var(--line);padding:8px 14px 12px!important;text-align:right}
html.nb-theme .layui-layer-btn a{
  height:38px;line-height:34px;margin:6px 8px 6px 0!important;padding:0 18px;
  border-radius:var(--nb-r-ctl,10px)!important;border:2px solid var(--nb-line)!important;
  font-size:13.5px;font-weight:800;box-shadow:2px 2px 0 var(--nb-shadow)!important;background:var(--shell)!important;color:var(--ink-1)!important;
}
html.nb-theme .layui-layer-btn .layui-layer-btn0{background:var(--brand)!important;color:#fff!important}
html.nb-theme .layui-layer-msg{border-radius:12px!important}
html.nb-theme .layui-layer-dialog .layui-layer-content{font-size:13.5px}

/* ---------- 16. 前台：导航 / Hero / 区块 / 认证（fr-*） ---------- */
html.nb-theme .fr-nav{background:var(--bg);border-bottom:0}
html.nb-theme .fr-nav.is-scrolled{background:var(--bg);border-bottom:2.5px solid var(--nb-line);box-shadow:none}
html.nb-theme.ap-dark .fr-nav,
html.nb-theme.ap-dark .fr-nav.is-scrolled{background:var(--bg)}
html.nb-theme .fr-brand-mark{
  border-radius:10px;background:var(--brand);color:#fff;
  border:2px solid var(--nb-line);box-shadow:2.5px 2.5px 0 var(--nb-line);
  transform:rotate(-3deg);
}
html.nb-theme .fr-nav-links a{border-radius:999px;padding:7px 13px;font-weight:700;border:2px solid transparent}
html.nb-theme .fr-nav-links a:hover{background:var(--shell);color:var(--ink-1);border-color:var(--nb-line);box-shadow:2px 2px 0 var(--nb-line)}
html.nb-theme .fr-nav-toggle{border:2px solid var(--nb-line);border-radius:10px;background:var(--shell);box-shadow:2px 2px 0 var(--nb-line)}
html.nb-theme .fr-nav-menu{background:var(--shell);border-bottom:2.5px solid var(--nb-line)}
html.nb-theme .fr-nav-menu a:hover{background:var(--brand-soft)}

html.nb-theme .fr-btn{
  border-radius:var(--nb-r-ctl,10px);height:38px;padding:0 17px;font-weight:800;font-size:13.5px;
  border:2px solid var(--nb-line);
  transition:transform .12s,box-shadow .12s,background .15s;
}
html.nb-theme .fr-btn-primary{background:var(--brand);color:#fff;box-shadow:3px 3px 0 var(--nb-line)}
html.nb-theme .fr-btn-primary:hover{background:var(--brand);color:#fff;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--nb-line)}
html.nb-theme .fr-btn-primary:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--nb-line)}
html.nb-theme .fr-btn-ghost{border:2px solid var(--nb-line);background:var(--shell);color:var(--ink-1);box-shadow:3px 3px 0 var(--nb-line)}
html.nb-theme .fr-btn-ghost:hover{background:var(--brand-soft);color:var(--ink-1);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--nb-line)}
html.nb-theme .fr-btn-lg{height:44px;padding:0 22px;border-radius:12px;font-size:14.5px}
html.nb-theme .fr-btn-code{
  border:2px solid var(--nb-line);border-radius:var(--nb-r-ctl,10px);
  background:var(--shell);color:var(--ink-1);font-weight:800;box-shadow:2px 2px 0 var(--nb-line);
}
html.nb-theme .fr-btn-code:hover:not(:disabled){background:var(--brand-soft);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--nb-line)}
html.nb-theme .fr-btn-danger-soft{
  border:2px solid var(--nb-line);background:var(--coral-soft);
  color:#b91c1c;border-radius:var(--nb-r-ctl,10px);font-weight:800;box-shadow:3px 3px 0 var(--nb-line);
}
html.nb-theme .fr-avatar{background:var(--amber);color:#fff;border:2px solid var(--nb-line);box-shadow:2.5px 2.5px 0 var(--nb-line)}
html.nb-theme .fr-menu{
  border:2.5px solid var(--nb-line)!important;border-radius:14px!important;
  background:var(--shell)!important;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:6px 6px 0 var(--nb-line)!important;
}
html.nb-theme .fr-menu .dropdown-item:hover{background:var(--brand-soft);color:var(--ink-1)}
html.nb-theme .fr-menu-head{border-bottom:2px solid var(--line)}

html.nb-theme .fr-hero{background:var(--bg);padding:78px 0 68px}
html.nb-theme .fr-hero h1{font-weight:900;letter-spacing:-1.2px;line-height:1.08}
html.nb-theme .fr-hero h1 em{
  background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:var(--brand);
  color:var(--brand);font-style:normal;
  text-shadow:3px 3px 0 rgba(28,28,30,.16);
}
html.nb-theme .fr-hero-sub{color:var(--ink-2);font-size:17px;line-height:1.7;font-weight:600}
html.nb-theme .fr-hero-meta{border-top:2.5px solid var(--nb-line)}
html.nb-theme .fr-hero-meta div b{font-size:22px;font-weight:900;font-variant-numeric:tabular-nums}
html.nb-theme .fr-eyebrow{
  background:var(--shell);border:2px solid var(--nb-line);
  box-shadow:2.5px 2.5px 0 var(--nb-line);border-radius:999px;font-weight:800;
  transform:rotate(-1.5deg);
}
html.nb-theme .fr-visual{
  border:var(--nb-bw) solid var(--nb-line);border-radius:var(--nb-r-card,14px);
  background:var(--shell);box-shadow:8px 8px 0 var(--nb-line);
}
html.nb-theme .fr-visual-hero{
  background:var(--brand);
  border-bottom:var(--nb-bw) solid var(--nb-line);
  box-shadow:none;
}
html.nb-theme .fr-visual-hero::before{display:none}
html.nb-theme .fr-mini{border:2px solid var(--nb-line);border-radius:var(--nb-r-tile,10px);background:var(--shell);box-shadow:3px 3px 0 var(--nb-line)}
html.nb-theme .fr-mini .n{font-variant-numeric:tabular-nums;font-weight:900}
html.nb-theme .fr-mini-row{border-top:2px solid var(--line)}
html.nb-theme .fr-mini-row .ic{border-radius:8px;border:1.5px solid var(--nb-line)}
html.nb-theme .fr-float-card{
  border:2.5px solid var(--nb-line);border-radius:var(--nb-r-tile,10px);
  background:var(--shell);
  box-shadow:5px 5px 0 var(--nb-line);
}
html.nb-theme .fr-section.alt{background:var(--shell);border-top:2.5px solid var(--nb-line);border-bottom:2.5px solid var(--nb-line)}
html.nb-theme .fr-sec-head .tag{background:var(--brand-soft);color:var(--ink-1);font-weight:800;border:1.5px solid var(--nb-line);border-radius:8px;transform:rotate(-1deg)}
html.nb-theme .fr-sec-head h2{font-weight:900;letter-spacing:-.8px}
html.nb-theme .fr-feat{
  border:var(--nb-bw) solid var(--nb-line);border-radius:var(--nb-r-card,14px);
  background:var(--shell);box-shadow:var(--nb-sh);
  transition:transform .15s,box-shadow .15s;
}
html.nb-theme .fr-feat:hover{transform:translate(-3px,-3px);box-shadow:8px 8px 0 var(--nb-shadow)}
html.nb-theme .fr-feat-ic{border-radius:12px;border:2px solid var(--nb-line);box-shadow:2.5px 2.5px 0 var(--nb-shadow)}
html.nb-theme .fr-feat h3{font-weight:900}
html.nb-theme .fr-stor{
  border:2px solid var(--nb-line);border-radius:var(--nb-r-tile,10px);
  background:var(--shell);transition:.15s;box-shadow:3px 3px 0 var(--nb-line);
}
html.nb-theme .fr-stor:hover{color:var(--ink-1);background:var(--brand-soft);transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--nb-line)}
html.nb-theme .fr-stor i{color:var(--brand)}
html.nb-theme .fr-code{background:#1c1c1e;border-radius:var(--nb-r-card,14px);box-shadow:8px 8px 0 var(--nb-shadow);border:var(--nb-bw) solid var(--nb-line)}
html.nb-theme .fr-faq-item{border:2px solid var(--nb-line);border-radius:var(--nb-r-tile,10px);background:var(--shell);box-shadow:3px 3px 0 var(--nb-line)}
html.nb-theme .fr-faq-q{padding:15px 17px;font-weight:800}
html.nb-theme .fr-cta{
  border-radius:var(--nb-r-shell,18px);
  background:var(--brand);
  border:var(--nb-bw) solid var(--nb-line);
  box-shadow:8px 8px 0 var(--nb-shadow);
}
html.nb-theme .fr-cta::before,html.nb-theme .fr-cta::after{display:none}
html.nb-theme .fr-footer{background:var(--shell);border-top:2.5px solid var(--nb-line)}
html.nb-theme .fr-footer a:hover{color:var(--brand)}

html.nb-theme .fr-auth-box{
  border:var(--nb-bw) solid var(--nb-line);border-radius:var(--nb-r-shell,18px);
  background:var(--shell);box-shadow:9px 9px 0 var(--nb-shadow);
}
html.nb-theme .fr-auth-side{background:var(--brand);border-right:var(--nb-bw) solid var(--nb-line)}
html.nb-theme .fr-auth-side::before{display:none}
html.nb-theme .fr-tabs{background:var(--shell);border:2px solid var(--nb-line);border-radius:12px;padding:3px;gap:2px;box-shadow:var(--nb-sh-sm)}
html.nb-theme .fr-tab{border-radius:8px;font-weight:800;color:var(--ink-2)}
html.nb-theme .fr-tab.active{background:var(--brand);color:#fff;box-shadow:2px 2px 0 var(--nb-shadow)}
html.nb-theme .fr-tabs .nav-link.active{border-bottom-color:transparent;color:#fff}
html.nb-theme .fr-field label{font-weight:800;color:var(--ink-1)}
html.nb-theme .fr-oauth-btn{
  border:2px solid var(--nb-line);border-radius:var(--nb-r-ctl,10px);
  background:var(--shell);font-weight:800;box-shadow:var(--nb-sh-sm);
}
html.nb-theme .fr-oauth-btn:hover{background:var(--brand-soft);transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--nb-line)}
html.nb-theme .fr-divider::before,html.nb-theme .fr-divider::after{background:var(--nb-line);height:2px}
html.nb-theme .fr-auth-foot a{color:var(--brand);font-weight:800}
html.nb-theme .fr-back:hover{color:var(--brand)}
html.nb-theme .fr-link-box{border:2px solid var(--nb-line);border-radius:var(--nb-r-ctl,10px);background:var(--bg);box-shadow:var(--nb-sh-sm)}
html.nb-theme .fr-link-box:focus-within{background:var(--shell);box-shadow:1.5px 1.5px 0 var(--nb-shadow)}
html.nb-theme .fr-link-copy{border-radius:8px;background:var(--brand);color:#fff;font-weight:800;border:2px solid var(--nb-line)}

/* ---------- 17. 用户中心（uc-*） ---------- */
html.nb-theme .uc-app{padding:14px;gap:14px}
html.nb-theme .uc-rail{
  background:var(--shell);border:var(--nb-bw) solid var(--nb-line);
  border-radius:var(--nb-r-shell,18px);
  box-shadow:var(--nb-sh);
  padding:16px 12px;
}
html.nb-theme .uc-rail-label{font-size:10.5px;letter-spacing:.8px;color:var(--ink-3);font-weight:800}
html.nb-theme .uc-rail-btn{
  border-radius:12px;height:42px;border:2px solid transparent;
  color:var(--ink-1);font-weight:700;
  transition:background .15s,color .15s,transform .15s,box-shadow .15s,border-color .15s;
}
html.nb-theme .uc-rail-btn:hover{background:var(--brand-soft);color:var(--ink-1)}
html.nb-theme .uc-rail-btn:active{transform:scale(.98)}
html.nb-theme .uc-rail-btn.active{
  background:var(--brand-soft);color:var(--ink-1);font-weight:900;
  border-color:var(--nb-line);box-shadow:2.5px 2.5px 0 var(--nb-shadow);
  transform:rotate(-1.5deg);
}
html.nb-theme .uc-rail-btn.active .badge{background:var(--brand);color:#fff;border-color:var(--nb-line)}
html.nb-theme .uc-rail-btn .badge{background:var(--bg);color:var(--ink-2);border:1.5px solid var(--line)}
html.nb-theme .uc-rail-foot{border-top:2px solid var(--line)}
html.nb-theme .uc-user-card{border:var(--nb-bw) solid var(--nb-line);border-radius:var(--nb-r-card,14px);background:var(--shell);box-shadow:var(--nb-sh)}
html.nb-theme .uc-card{
  border:var(--nb-bw) solid var(--nb-line);
  border-radius:var(--nb-r-card,14px);
  background:var(--shell);box-shadow:var(--nb-sh);padding:18px;
}
html.nb-theme .uc-card-head h2{font-size:15px;font-weight:900}
html.nb-theme .uc-stat .n{font-size:26px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:-.6px}
html.nb-theme .uc-page-head h1{font-size:22px;font-weight:900;letter-spacing:-.5px}
html.nb-theme .uc-file{border-radius:var(--nb-r-ctl,10px)}
html.nb-theme .uc-file:hover{background:var(--brand-soft)}
html.nb-theme .uc-file-ic{border-radius:var(--nb-r-tile,10px);border:2px solid var(--nb-line);box-shadow:2px 2px 0 var(--nb-shadow)}
html.nb-theme .uc-mini-btn{border:2px solid var(--nb-line);border-radius:8px;background:var(--shell);box-shadow:2px 2px 0 var(--nb-shadow);font-weight:700}
html.nb-theme .uc-mini-btn:hover{background:var(--brand-soft);color:var(--ink-1);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--nb-shadow)}
html.nb-theme .uc-mini-btn.danger:hover{background:var(--coral-soft);color:#b91c1c}
html.nb-theme .uc-progress{background:var(--bg);border:2px solid var(--nb-line)}
html.nb-theme .uc-progress i{background:var(--brand)}
html.nb-theme .uc-drop{border:2.5px dashed var(--nb-line);border-radius:var(--nb-r-card,14px);background:var(--shell);box-shadow:var(--nb-sh)}
html.nb-theme .uc-drop:hover,
html.nb-theme .uc-drop.over{border-color:var(--ap-accent);border-style:solid;background:var(--brand-soft)}
html.nb-theme .uc-drop i{color:var(--brand)}
html.nb-theme .uc-space-tip{border-radius:var(--nb-r-ctl,10px);border:2px solid var(--nb-line)}
html.nb-theme .uc-space-tip.warn{background:var(--amber-soft);color:#92400e}
html.nb-theme .uc-empty>i{opacity:.4;color:var(--ink-3)}
html.nb-theme .uc-empty p{color:var(--ink-2);font-weight:600}

/* ---------- 18. macOS / Bootstrap 令牌（贴纸浅色） ---------- */
html.nb-theme{
  --mc-text-1:#1c1c1e; --mc-text-2:#5a5a60; --mc-text-3:#9aa0a6; --mc-text-4:#b3b3b8;
  --mc-page:#fdf6e7;
  --mc-card:#ffffff;
  --mc-hover:rgba(28,28,30,.05);
  --mc-active:rgba(28,28,30,.09);
  --mc-sunken:#f7efdd;
  --mc-border:#1c1c1e;
  --mc-border-2:rgba(28,28,30,.24);
  --mc-border-3:rgba(28,28,30,.34);
  --mc-glass:#ffffff;
  --mc-glass-solid:#ffffff;
  --mc-shadow-1:3px 3px 0 rgba(28,28,30,.9);
  --mc-shadow-2:4px 4px 0 rgba(28,28,30,.9);
  --mc-shadow-3:6px 6px 0 rgba(28,28,30,.9);
  --mc-shadow-4:8px 8px 0 rgba(28,28,30,.9);
  --mc-accent:var(--ap-accent,#3b82f6);
  --mc-accent-btn:var(--ap-accent,#3b82f6);
  --mc-accent-btn-hover:var(--ap-accent-2,#93c5fd);
  --mc-accent-btn-active:var(--ap-accent,#3b82f6);
  --mc-accent-soft:var(--ap-accent-soft,rgba(59,130,246,.12));
  --bs-link-color:var(--brand);
  --bs-link-hover-color:var(--ink-1);
  --ap-track:#f0e6cf;--ap-track-2:#eadfc4;
}

/* ---------- 19. 深色模式（nb-theme.ap-dark） ---------- */
html.nb-theme.ap-dark body{background:var(--bg);color:var(--ink-1)}
html.nb-theme.ap-dark ::selection{background:var(--ap-accent-soft);color:#fff}
html.nb-theme.ap-dark ::-webkit-scrollbar-thumb{background:var(--nb-line);border:3px solid transparent;border-radius:99px;background-clip:content-box}
html.nb-theme.ap-dark ::placeholder{color:var(--ink-3)!important;opacity:1}
html.nb-theme.ap-dark code,html.nb-theme.ap-dark kbd{background:var(--bg);border-color:var(--line)}
html.nb-theme.ap-dark .dapp-card,
html.nb-theme.ap-dark .panel,
html.nb-theme.ap-dark .card,
html.nb-theme.ap-dark .modal-content,
html.nb-theme.ap-dark .dropdown-menu,
html.nb-theme.ap-dark .toast,
html.nb-theme.ap-dark .popover,
html.nb-theme.ap-dark .layui-layer,
html.nb-theme.ap-dark .layui-layer-title,
html.nb-theme.ap-dark .layui-layer-content,
html.nb-theme.ap-dark .layui-layer-btn,
html.nb-theme.ap-dark .list-group-item{background:var(--shell);color:var(--ink-1)}
html.nb-theme.ap-dark .form-control,
html.nb-theme.ap-dark .form-select,
html.nb-theme.ap-dark .fr-input,
html.nb-theme.ap-dark textarea,
html.nb-theme.ap-dark select,
html.nb-theme.ap-dark input[type="text"],
html.nb-theme.ap-dark input[type="password"],
html.nb-theme.ap-dark input[type="number"],
html.nb-theme.ap-dark input[type="email"],
html.nb-theme.ap-dark input[type="search"]{background:var(--shell);color:var(--ink-1)}
html.nb-theme.ap-dark .btn-default,
html.nb-theme.ap-dark .btn-secondary,
html.nb-theme.ap-dark .btn-light,
html.nb-theme.ap-dark .btn-white,
html.nb-theme.ap-dark .dapp-chip,
html.nb-theme.ap-dark .dapp-icon-btn,
html.nb-theme.ap-dark .dapp-search,
html.nb-theme.ap-dark .fr-btn-ghost,
html.nb-theme.ap-dark .fr-oauth-btn,
html.nb-theme.ap-dark .fr-btn-code,
html.nb-theme.ap-dark .uc-mini-btn,
html.nb-theme.ap-dark .dapp-mini-btn{background:var(--shell);color:var(--ink-1)}
html.nb-theme.ap-dark .input-group-text,
html.nb-theme.ap-dark .pagination .page-link{background:var(--shell);color:var(--ink-1)}
html.nb-theme.ap-dark .pagination .page-item.active .page-link{background:var(--brand);color:#fff}
html.nb-theme.ap-dark .progress,
html.nb-theme.ap-dark .uc-progress{background:var(--bg)}
html.nb-theme.ap-dark .dapp-page .fixed-table-container{background:var(--shell)}
html.nb-theme.ap-dark .dapp-page .fixed-table-toolbar .search input{background:var(--shell);color:var(--ink-1)}
html.nb-theme.ap-dark .table>thead>tr>th{color:var(--ink-3)}
html.nb-theme.ap-dark .table td,
html.nb-theme.ap-dark .table th{border-color:var(--line);color:var(--ink-1)}
html.nb-theme.ap-dark .table{--bs-table-color:var(--ink-1);--bs-table-bg:transparent;--bs-table-border-color:var(--line)}
html.nb-theme.ap-dark .table-hover>tbody>tr:hover>*{--bs-table-hover-bg:rgba(255,255,255,.06);background:var(--brand-soft)}
html.nb-theme.ap-dark .fr-section.alt,
html.nb-theme.ap-dark .fr-feat,
html.nb-theme.ap-dark .fr-stor,
html.nb-theme.ap-dark .fr-faq-item,
html.nb-theme.ap-dark .fr-visual,
html.nb-theme.ap-dark .fr-mini,
html.nb-theme.ap-dark .fr-eyebrow,
html.nb-theme.ap-dark .fr-footer,
html.nb-theme.ap-dark .fr-nav-menu,
html.nb-theme.ap-dark .fr-nav-toggle,
html.nb-theme.ap-dark .fr-auth-box,
html.nb-theme.ap-dark .fr-link-box,
html.nb-theme.ap-dark .fr-float-card,
html.nb-theme.ap-dark .uc-card,
html.nb-theme.ap-dark .uc-user-card,
html.nb-theme.ap-dark .uc-rail,
html.nb-theme.ap-dark .uc-drop,
html.nb-theme.ap-dark .uc-file:hover{background:var(--shell);color:var(--ink-1)}
html.nb-theme.ap-dark .fr-code{background:#0d0e10}
html.nb-theme.ap-dark .fr-tab.active{background:var(--brand);color:#fff}
html.nb-theme.ap-dark .fr-tabs{background:var(--shell)}
html.nb-theme.ap-dark .fr-auth-side{border-right:var(--nb-bw) solid var(--nb-line)}
html.nb-theme.ap-dark .alert-success{color:var(--mint)}
html.nb-theme.ap-dark .alert-danger{color:var(--coral)}
html.nb-theme.ap-dark .alert-warning{color:var(--amber)}
html.nb-theme.ap-dark .badge-success,
html.nb-theme.ap-dark .label-success{color:var(--mint)}
html.nb-theme.ap-dark .badge-danger,
html.nb-theme.ap-dark .label-danger{color:var(--coral)}
html.nb-theme.ap-dark .badge-warning,
html.nb-theme.ap-dark .label-warning{color:var(--amber)}
html.nb-theme.ap-dark .uc-space-tip.warn{color:var(--amber)}
html.nb-theme.ap-dark select option{background:var(--shell);color:var(--ink-1)}
html.nb-theme.ap-dark{
  --mc-page:#131417; --mc-card:#1b1d22;
  --mc-hover:rgba(255,255,255,.07); --mc-active:rgba(255,255,255,.12);
  --mc-sunken:#101114;
  --mc-border:#ececee; --mc-border-2:rgba(255,255,255,.20); --mc-border-3:rgba(255,255,255,.30);
  --mc-glass:#1b1d22; --mc-glass-solid:#1b1d22;
  --mc-shadow-1:3px 3px 0 rgba(0,0,0,.9);
  --mc-shadow-2:4px 4px 0 rgba(0,0,0,.9);
  --mc-shadow-3:6px 6px 0 rgba(0,0,0,.9);
  --mc-shadow-4:8px 8px 0 rgba(0,0,0,.9);
  --ap-track:rgba(255,255,255,.12);--ap-track-2:rgba(255,255,255,.18);
}
/* 内联白底兜底 */
html.nb-theme.ap-dark .dapp-f-ico,
html.nb-theme.ap-dark .uc-file-ic,
html.nb-theme.ap-dark .uc-file-ic i{
  background:rgba(255,255,255,.10)!important;
  border:2px solid var(--nb-line);
}
html.nb-theme.ap-dark .dapp-page div[style*="background:#fff"],
html.nb-theme.ap-dark .dapp-page div[style*="background: #fff"],
html.nb-theme.ap-dark .dapp-page div[style*="background:#ffffff"]{background:var(--shell)!important}
html.nb-theme.ap-dark .dapp-hero-dark{background:#0d0e10}
/* 暗色下的贴纸 Hero：底纹与云朵换暗色 */
html.nb-theme.ap-dark .dapp-hero{
  background-color:rgba(255,255,255,.05);
  background-image:radial-gradient(circle, color-mix(in srgb, var(--brand) 40%, transparent) 1.6px, transparent 1.7px);
}
html.nb-theme.ap-dark .dapp-hero::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 40'%3E%3Cpath d='M18 32c-6 0-10-4-10-9 0-4.4 3.2-8 7.6-8.8C17 9.4 21.6 6 27 6c6.4 0 11.8 4.6 12.8 10.6 4.8.4 8.6 4.3 8.6 9 0 3.6-3.4 6.4-7.6 6.4z' fill='%232c2c2e' stroke='%23ececee' stroke-width='3' stroke-linejoin='round'/%3E%3Ccircle cx='44' cy='8' r='2.5' fill='%23f59e0b' stroke='%23ececee' stroke-width='1.5'/%3E%3C/svg%3E");
}
html.nb-theme.ap-dark .dapp-ring svg circle{stroke:rgba(255,255,255,.14)}

/* ---------- 20. 安全中心 / 零散组件 ---------- */
html.nb-theme .sec-ov{background:var(--shell);border:var(--nb-bw) solid var(--nb-line);border-radius:var(--nb-r-card,14px);box-shadow:var(--nb-sh)}
html.nb-theme .sec-channel{background:var(--shell);border:2px solid var(--nb-line);color:var(--ink-1);box-shadow:var(--nb-sh-sm);border-radius:12px;padding-left:46px}
/* 主题全局 radio 是 20px 贴纸控件且 position:relative 会压过 dapp 的 absolute 定位，这里强制拉回左侧留白槽 */
html.nb-theme .sec-channel input[type="radio"]{position:absolute;left:15px;top:13px;margin:0;flex:0 0 auto}
html.nb-theme .sec-channel:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--nb-shadow)}
html.nb-theme .sec-channel.on{background:var(--brand-soft);border-color:var(--nb-line);box-shadow:var(--nb-sh-sm);transform:rotate(-1deg)}
html.nb-theme .sec-channel .rec{background:var(--brand);color:#fff;border:1.5px solid var(--nb-line)}
html.nb-theme .sec-env-item{background:var(--shell);border:2px solid var(--nb-line);color:var(--ink-1);border-radius:12px}
html.nb-theme .sec-savebar{background:var(--shell)!important;border-top:2.5px solid var(--nb-line);-webkit-backdrop-filter:none;backdrop-filter:none}

/* ---------- 21. 窄屏 ---------- */
@media (max-width:991px){
  html.nb-theme .dapp-app{padding:0;gap:0}
  html.nb-theme .dapp-rail{border-radius:0;border:0;border-bottom:var(--nb-bw) solid var(--nb-line);box-shadow:none}
  html.nb-theme .dapp-shell{border-radius:0;border:0;box-shadow:none}
  html.nb-theme .dapp-main{padding:0 14px 28px}
  html.nb-theme .dapp-topbar{padding:14px}
  html.nb-theme .uc-app{padding:0;gap:0}
  html.nb-theme .uc-rail{border-radius:16px;border:var(--nb-bw) solid var(--nb-line);box-shadow:var(--nb-sh)}
}

/* ---------- 22. 贴纸风 Sprite 图标（同 id 体系替换 FA，几何来自 sticker-icons.svg） ---------- */
/* 图标引擎由 apple-icons.js 承担：html.ap-icon-sf 时把 <i class="fa-…"> 换成 <svg class="ap-ic"><use>。
   贴纸主题下 sprite 文件已换为 sticker-icons.svg（stroke 2.6 粗描边），这里只做配色与尺寸微调。 */
html.nb-theme .ap-ic{width:1.15em;height:1.15em;vertical-align:-.16em}

/* 侧栏：默认灰、悬停品牌色、选中白（品牌底），与彩色贴纸菜单呼应 */
html.nb-theme .rail a .ap-ic,
html.nb-theme .uc-rail-btn .ap-ic{color:var(--ink-3);transition:color .15s}
html.nb-theme .rail a:hover .ap-ic,
html.nb-theme .uc-rail-btn:hover .ap-ic{color:var(--brand)}
html.nb-theme .rail a.active .ap-ic,
html.nb-theme .uc-rail-btn.active .ap-ic{color:var(--brand)}

/* 下拉菜单 / 行内图标：随文字色，危险行红色 */
html.nb-theme .dropdown-item .ap-ic{color:var(--ink-3)}
html.nb-theme .dropdown-item.danger .ap-ic{color:var(--coral)}
html.nb-theme .card-title .ap-ic{color:var(--brand)}

/* 主按钮内图标白色（accent 底）；浅底按钮内品牌色 */
html.nb-theme .btn-primary .ap-ic,
html.nb-theme .fr-btn-primary .ap-ic{color:#fff}

/* 深色模式：侧栏图标提亮 */
html.nb-theme.ap-dark .rail a .ap-ic,
html.nb-theme.ap-dark .uc-rail-btn .ap-ic{color:#8b8f98}
html.nb-theme.ap-dark .rail a.active .ap-ic,
html.nb-theme.ap-dark .uc-rail-btn.active .ap-ic{color:var(--brand)}

/* ---------- 23. 图标彩色贴纸化（对齐小程序：每个菜单项一种颜色） ---------- */
/* 8 色贴纸调色板 */
html.nb-theme{
  --st-blue:#3b82f6; --st-purple:#a855f7; --st-pink:#ec4899; --st-green:#22c55e;
  --st-orange:#f97316; --st-teal:#06b6d4; --st-amber:#f59e0b; --st-red:#ef4444;
}
html.nb-theme.ap-dark{
  --st-blue:#60a5fa; --st-purple:#c084fc; --st-pink:#f472b6; --st-green:#4ade80;
  --st-orange:#fb923c; --st-teal:#22d3ee; --st-amber:#fbbf24; --st-red:#f87171;
}

/* 后台图标栏：逐项循环 8 色（工作台蓝/文件紫/用户粉/分组绿/套餐橙/…） */
html.nb-theme .dapp-rail > a:nth-of-type(8n+1) .ap-ic{color:var(--st-blue)}
html.nb-theme .dapp-rail > a:nth-of-type(8n+2) .ap-ic{color:var(--st-purple)}
html.nb-theme .dapp-rail > a:nth-of-type(8n+3) .ap-ic{color:var(--st-pink)}
html.nb-theme .dapp-rail > a:nth-of-type(8n+4) .ap-ic{color:var(--st-green)}
html.nb-theme .dapp-rail > a:nth-of-type(8n+5) .ap-ic{color:var(--st-orange)}
html.nb-theme .dapp-rail > a:nth-of-type(8n+6) .ap-ic{color:var(--st-teal)}
html.nb-theme .dapp-rail > a:nth-of-type(8n+7) .ap-ic{color:var(--st-amber)}
html.nb-theme .dapp-rail > a:nth-of-type(8n+8) .ap-ic{color:var(--st-red)}
html.nb-theme .dapp-rail .dapp-rail-btn:hover .ap-ic{transform:scale(1.12)}
html.nb-theme .dapp-rail .dapp-rail-btn.active .ap-ic{color:#fff !important}

/* 用户中心侧栏：品牌位蓝，概览蓝/文件绿/上传粉/套餐琥珀/资料紫，底部灰色 */
html.nb-theme .uc-rail .uc-rail-brand .ap-ic,
html.nb-theme .uc-rail .uc-rail-brand .fa-solid{color:var(--brand)}
html.nb-theme .uc-rail > a:nth-of-type(2) .ap-ic{color:var(--st-blue)}
html.nb-theme .uc-rail > a:nth-of-type(3) .ap-ic{color:var(--st-green)}
html.nb-theme .uc-rail > a:nth-of-type(4) .ap-ic{color:var(--st-pink)}
html.nb-theme .uc-rail > a:nth-of-type(5) .ap-ic{color:var(--st-amber)}
html.nb-theme .uc-rail > a:nth-of-type(6) .ap-ic{color:var(--st-purple)}
html.nb-theme .uc-rail-foot .ap-ic{color:var(--ink-3) !important}
html.nb-theme .uc-rail .uc-rail-btn.active .ap-ic{color:var(--brand) !important}

/* 下拉菜单（前台/后台/用户中心通用）：逐项循环配色，退出红 */
html.nb-theme .dropdown-menu .dropdown-item:nth-of-type(5n+1) .ap-ic{color:var(--st-blue)}
html.nb-theme .dropdown-menu .dropdown-item:nth-of-type(5n+2) .ap-ic{color:var(--st-green)}
html.nb-theme .dropdown-menu .dropdown-item:nth-of-type(5n+3) .ap-ic{color:var(--st-amber)}
html.nb-theme .dropdown-menu .dropdown-item:nth-of-type(5n+4) .ap-ic{color:var(--st-purple)}
html.nb-theme .dropdown-menu .dropdown-item.danger .ap-ic{color:var(--coral) !important}

/* 顶栏/按钮内图标跟随按钮配色 */
html.nb-theme .fr-btn-ghost .ap-ic{color:var(--brand)}
html.nb-theme .dapp-topbar .ap-ic{color:var(--ink-2)}

/* 选中态图标放大一点，强化「贴纸被按下」的手感 */
html.nb-theme .uc-rail-btn .ap-ic,
html.nb-theme .dropdown-item .ap-ic{transition:transform .15s}
html.nb-theme .uc-rail-btn:hover .ap-ic,
html.nb-theme .dropdown-item:hover .ap-ic{transform:scale(1.1)}

/* ==========================================================================
   21. 新增后台页适配（DB 1027-1029：订单/举报/存储体检/工具箱/运营数据/
       兑换码/优惠券/备份恢复/存储迁移/登录日志）
   --------------------------------------------------------------------------
   这些页面用私有类（.od-* / .rp-* / .sh-* / .tl-* / .st-* / .rd-* / .cp-* /
   .bk-* / .mg-* / .lg-*）搭卡片，未走 .mc-table-card 体系，因此无法靠覆盖
   --mc-* 令牌吃到贴纸风。这里统一给它们加粗黑描边 + 无模糊硬投影，
   并让表格表头改用奶油底，保证与其它后台页视觉一致。
   ========================================================================== */

/* 卡片容器：粗描边 + 硬投影 */
html.nb-theme .od-stat .it,
html.nb-theme .od-table,
html.nb-theme .rp-table,
html.nb-theme .sh-card,
html.nb-theme .sh-log,
html.nb-theme .tl-card,
html.nb-theme .tl-panel,
html.nb-theme .st-card,
html.nb-theme .st-panel,
html.nb-theme .rd-panel,
html.nb-theme .cp-panel,
html.nb-theme .bk-panel,
html.nb-theme .mg-panel,
html.nb-theme .lg-stat .it,
html.nb-theme .lg-table{
  border:var(--nb-bw,2.5px) solid var(--nb-line) !important;
  box-shadow:var(--nb-sh-sm,3px 3px 0 var(--nb-shadow)) !important;
}

/* 网格卡片加大投影，与页面其它大卡片对齐 */
html.nb-theme .tl-card,
html.nb-theme .sh-card,
html.nb-theme .st-panel,
html.nb-theme .rd-panel,
html.nb-theme .cp-panel,
html.nb-theme .bk-panel,
html.nb-theme .mg-panel{box-shadow:var(--nb-sh,5px 5px 0 var(--nb-shadow)) !important}

/* 入口卡按下：贴纸被压平 */
html.nb-theme .tl-card:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--nb-shadow) !important}

/* 表格表头：奶油底 + 下边粗线，替代原来的浅灰 */
html.nb-theme .od-table th,
html.nb-theme .rp-table th,
html.nb-theme .rd-table th,
html.nb-theme .cp-table th,
html.nb-theme .bk-table th,
html.nb-theme .mg-table th,
html.nb-theme .lg-table th{
  background:var(--bg-soft,#f7efdd);
  color:var(--ink-1);
  font-weight:800;
  border-bottom:2px solid var(--nb-line);
}

/* 小标签：描边贴纸化 */
html.nb-theme .od-tag,
html.nb-theme .rd-tag,
html.nb-theme .rp-reason{
  border:2px solid var(--nb-line);
  font-weight:800;
}

/* 状态切换 pill（举报三档 tab） */
html.nb-theme .rp-tabs a{border:2px solid var(--nb-line);font-weight:800;box-shadow:var(--nb-sh-sm,3px 3px 0 var(--nb-shadow))}
html.nb-theme .rp-tabs a.on{box-shadow:2px 2px 0 var(--nb-shadow)}

/* 警告框（备份恢复说明） */
html.nb-theme .bk-warn{border:var(--nb-bw,2.5px) solid var(--nb-line) !important;box-shadow:var(--nb-sh-sm,3px 3px 0 var(--nb-shadow)) !important}

/* 进度条：加黑边 */
html.nb-theme .sh-bar,
html.nb-theme .mg-bar{border:2px solid var(--nb-line);background:var(--bg-soft,#f7efdd)}

/* 子导航：粗描边 + 硬投影，与贴纸风其它组件一致 */
html.nb-theme .dapp-subnav{border:var(--nb-bw,2.5px) solid var(--nb-line);box-shadow:var(--nb-sh-sm,3px 3px 0 var(--nb-shadow))}
html.nb-theme .dapp-subnav a.on{box-shadow:2px 2px 0 var(--nb-shadow)}
html.nb-theme .dapp-subnav-badge{border:2px solid var(--nb-line);font-weight:800}
