/* ============================================================================
   深业·拾级 (SHUMYIP ASCENT) · 主题样式表  v3「高级科技版」   2026-10-01
   设计基准：Linear / Vercel / Stripe / Cloudflare 控制台
   在【深业红金】体系内做高级感 + 科技感：
   - 深业红顶栏回归（品牌压舱），叠加细网格 + 柔光，克制不刺眼
   - 卡片玻璃质感（半透 + 内高光 + 描边），悬浮微升起
   - 数字/标题用等宽数字 + 字距收紧，更"数据感"
   - 金色作为科技点缀（进度条、激活条、悬停描边、光晕）
   - 保留全部原有 class 名与 data-theme="dark" 深色支持
   ========================================================================== */

html body{
  --font-ui:'PingFang SC','Microsoft YaHei UI','Microsoft YaHei','Inter','Noto Sans SC',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'SF Mono','JetBrains Mono','Fira Code',ui-monospace,Menlo,Consolas,monospace;

  /* —— 深业品牌色 —— */
  --sy-red:#B21A1A;            /* 主色·深业红 */
  --sy-red-dark:#8F1414;       /* 主色·深 */
  --sy-red-deep:#6E0F0F;       /* 主色·更深（渐变尾） */
  --sy-red-light:#FBECEC;      /* 主色·极浅 */
  --sy-gold:#D8A755;           /* 辅助色·深业金 */
  --sy-gold-light:#EBCB92;     /* 金·亮 */
  --sy-gold-soft:rgba(216,167,85,.35);

  /* —— 浅色（默认）令牌 —— */
  --primary:var(--sy-red);
  --primary-dark:var(--sy-red-dark);
  --primary-light:var(--sy-red-light);
  --accent:var(--sy-gold);
  --success:#1F9D55; --warning:#C98A16; --danger:#C9332C;
  --bg:#F4F5F7;
  --bg-grad:radial-gradient(1200px 600px at 100% -10%, rgba(178,26,26,.045), transparent 60%),
            radial-gradient(900px 500px at -10% 110%, rgba(216,167,85,.05), transparent 55%);
  --card:#FFFFFF;
  --card-glass:rgba(255,255,255,.86);
  --sidebar:#FFFFFF;
  --sidebar-hover:#F6F7F9;
  --text:#1B1F24;
  --text2:#6B7280;
  --text-secondary:#6B7280;
  --border:#ECEDEF;
  --border-strong:#E2E4E8;
  --radius:14px;
  --radius-sm:10px;
  --shadow:0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.06);
  --shadow-lg:0 14px 36px rgba(16,24,40,.12);
  --shadow-red:0 10px 28px rgba(178,26,26,.22);
  --glow:0 8px 24px rgba(178,26,26,.18);
}

html body{
  font-family:var(--font-ui);background:var(--bg);background-image:var(--bg-grad);
  background-attachment:fixed;color:var(--text);-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* ============================================================================
   1. 顶栏：深业红回归 + 细网格科技纹 + 柔光；白字
   ========================================================================== */
.topbar{
  background:
    radial-gradient(300px 150px at 96% -8%, rgba(216,167,85,.38), transparent 70%),
    linear-gradient(135deg,var(--sy-red) 0%, var(--sy-red-dark) 55%, var(--sy-red-deep) 100%) !important;
  border-bottom:none !important;
  color:#fff !important;
  box-shadow:0 2px 14px rgba(143,20,20,.28), inset 0 -1px 0 rgba(255,255,255,.06);
  padding:15px 34px !important;
  position:relative;
  /* 注意：不要用 overflow:hidden —— 会把右侧账户下拉(.acct-drop)裁掉。
     金色柔光已改为上面的 background 层（背景天然被裁剪在盒内），故无需 overflow:hidden。 */
}
/* 科技细网格 + 金色柔光（不干扰文字） */
.topbar::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
  background-size:26px 26px;
  mask-image:linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.15) 70%, transparent);
  -webkit-mask-image:linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.15) 70%, transparent);
}
/* .topbar::after 金色柔光已并入 .topbar 背景层，删除以免溢出裁切账户下拉 */
.topbar h1{color:#fff !important;font-size:18px !important;font-weight:700;letter-spacing:.3px;position:relative;z-index:1;padding-left:14px}
.topbar h1::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:20px;border-radius:99px;background:linear-gradient(180deg,var(--sy-gold-light),var(--sy-gold));box-shadow:0 0 10px rgba(216,167,85,.6)}
.topbar .user-info{color:#fff;position:relative;z-index:1}
.topbar .acct-menu>button{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(6px)}
.topbar .acct-menu>button:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.42)}
.topbar .acct-menu>button .fa-chevron-down{color:rgba(255,255,255,.8) !important}
.topbar .btn-ghost{background:rgba(255,255,255,.12) !important;border:1px solid rgba(255,255,255,.28) !important;color:#fff !important;backdrop-filter:blur(6px)}
.topbar .btn-ghost:hover{background:rgba(255,255,255,.24) !important;color:#fff !important}
.topbar .lang-switch{color:rgba(255,255,255,.85) !important}

/* ============================================================================
   2. 侧边栏：品牌区更克制；导航选中态=红字+金左条+极浅红底
   ========================================================================== */
.sidebar{background:var(--sidebar);border-right:1px solid var(--border)}
.sidebar .logo{padding:20px 16px 14px;border-bottom:1px solid var(--border);position:relative}
.sidebar .logo h2{
  background:linear-gradient(135deg,var(--sy-red),var(--sy-gold));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  letter-spacing:.4px;
}
.sidebar .nav{padding:10px 12px}
.sidebar .nav .nav-section{
  font-size:10px;font-weight:700;color:#9AA0A6;letter-spacing:1.2px;
  padding:16px 14px 6px;text-transform:uppercase;
}
.sidebar .nav a{
  position:relative;border-radius:10px;padding:9px 14px;font-size:13.5px;
  color:var(--text2);transition:background .15s,color .15s,transform .12s;
}
.sidebar .nav a:hover{background:var(--sidebar-hover);color:var(--text);transform:translateX(2px)}
.sidebar .nav a.active,
.nav a.active{
  background:var(--sy-red-light) !important;color:var(--sy-red) !important;font-weight:600;
}
.sidebar .nav a.active::before,.nav a.active::before{
  content:'';position:absolute;left:0;top:18%;bottom:18%;width:3px;border-radius:99px;
  background:linear-gradient(180deg,var(--sy-gold-light),var(--sy-gold));
  box-shadow:0 0 8px rgba(216,167,85,.55);
}
.nav a.active i{color:var(--sy-red)}
.sidebar .nav a i{width:18px;text-align:center;font-size:14px}
.sidebar .bottom{border-top:1px solid var(--border);padding:10px 12px}
.sidebar .bottom a{border-radius:10px;font-size:13px}
.sidebar .bottom a:hover{background:var(--sy-red-light);color:var(--sy-red)}

/* ============================================================================
   3. 卡片：玻璃质感 + 内高光 + 描边；悬浮微升起
   ========================================================================== */
.card{
  background:var(--card-glass);
  backdrop-filter:blur(10px) saturate(1.05);
  -webkit-backdrop-filter:blur(10px) saturate(1.05);
  border:1px solid var(--border);border-radius:var(--radius);
  padding:20px 22px;margin-bottom:16px;
  box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.7);
  transition:box-shadow .2s,border-color .2s,transform .2s;
  position:relative;
}
.card:hover{
  box-shadow:var(--shadow-lg), inset 0 1px 0 rgba(255,255,255,.8);
  border-color:var(--border-strong);transform:translateY(-2px);
}
.card-title{
  color:var(--text);font-weight:700;letter-spacing:.4px;
  font-size:12.5px;text-transform:none;margin-bottom:12px;
  display:flex;align-items:center;gap:7px;
}
.card-title i{color:var(--sy-red)}

/* ============================================================================
   4. 按钮：统一圆角与高度；主色=深业红（带金边光晕）
   ========================================================================== */
.btn{
  border-radius:9px;font-weight:500;
  transition:background .15s,color .15s,border-color .15s,transform .12s,box-shadow .15s;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--sy-red),var(--sy-red-dark));color:#fff;border:none;box-shadow:0 2px 8px rgba(178,26,26,.22)}
.btn-primary:hover{box-shadow:var(--shadow-red)}
.btn-success{background:var(--success);color:#fff}
.btn-danger{background:var(--danger);color:#fff}
.btn-ghost{background:#fff;color:var(--text2);border:1px solid var(--border)}
.btn-ghost:hover{background:var(--sy-red-light);color:var(--sy-red);border-color:var(--sy-red-light)}
.btn:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-ghost){background:transparent;color:var(--text)}

/* 标签页（面板 tabs）：激活=红底白字，未激活=白底灰字 */
#panel-ai-chat, .panel{color:var(--text)}
div[style*="border-bottom:1px solid var(--border)"] button[id^="tab-"],
button[id^="tab-"]{background:#fff;color:var(--text2);border:1px solid var(--border) !important;border-bottom:none !important}
button[id^="tab-"].btn-primary{background:linear-gradient(135deg,var(--sy-red),var(--sy-red-dark)) !important;color:#fff !important;border-color:var(--sy-red) !important}

/* ============================================================================
   5. 数据看板：数字用红/金强调，等宽数字更"数据感"
   ========================================================================== */
.stat-value{color:var(--text);font-weight:800;letter-spacing:-.4px;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.stat-main .stat-value{color:var(--sy-red) !important}
.stat-minor .stat-value{color:var(--text2)}
.stat-bar{height:5px;border-radius:99px;background:#F0F1F3;overflow:hidden;margin-top:8px}
.stat-bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--sy-red),var(--sy-gold));box-shadow:0 0 10px rgba(216,167,85,.4)}
.stat-group-title{color:var(--text2);letter-spacing:.6px;font-weight:700}
.stat-group .stats-grid .card{padding:16px 14px}
.stats-grid{gap:12px}
.stats-groups{gap:20px}

/* ============================================================================
   6. 徽章 / 表格 / 键值
   ========================================================================== */
.badge{border-radius:20px;box-shadow:none;font-weight:600}
.badge-active,.badge-user{background:#EAF7EF;color:#1F9D55}
.badge-inactive{background:#FCECEC;color:#C9332C}
.badge-admin{background:var(--sy-red-light);color:var(--sy-red)}
.key-value{background:#F7F8FA;border:1px solid var(--border);border-radius:6px;font-family:var(--font-mono)}
pre{background:#1A1F27;color:#E8EBF5;border-radius:10px;border:1px solid #262D38}
code{font-family:var(--font-mono)}
th{color:var(--text2);font-weight:700}

/* ============================================================================
   7. 聊天区
   ========================================================================== */
.chat-messages{background:#F7F8FA !important}
.chat-msg.user .chat-bubble{background:linear-gradient(135deg,var(--sy-red),var(--sy-red-dark));color:#fff;box-shadow:0 6px 16px rgba(178,26,26,.20)}
.chat-msg.ai .chat-bubble{background:#fff;border:1px solid var(--border);box-shadow:var(--shadow)}
.chat-msg.ai .chat-bubble pre{background:#1A1F27}
.chat-msg{animation:msgIn .22s ease-out}
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.think-box summary{animation:thinkShimmer 1.8s ease-in-out infinite}
@keyframes thinkShimmer{0%{opacity:.6}50%{opacity:1}100%{opacity:.6}}
.cb-wrap{position:relative}
.cb-copy{position:absolute;top:6px;right:6px;font-size:11px;padding:2px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.10);color:#cbd5e1;cursor:pointer;opacity:.45;transition:opacity .15s;z-index:3}
.cb-wrap:hover .cb-copy{opacity:1}

/* ============================================================================
   8. 输入框
   ========================================================================== */
input:not([type="checkbox"]):not([type="radio"]),textarea,select{
  background:#fff;color:var(--text);border:1px solid var(--border);border-radius:9px;
}
input:focus,textarea:focus,select:focus{border-color:var(--sy-red);outline:none;box-shadow:0 0 0 3px var(--sy-red-light)}
input::placeholder,textarea::placeholder{color:#9AA0A6}
#chatInputBox{border-radius:16px}
#chatInputBox:focus-within{border-color:var(--sy-red) !important;box-shadow:0 0 0 3px var(--sy-red-light)}
#chatSendBtn{background:linear-gradient(135deg,var(--sy-red),var(--sy-red-dark)) !important;box-shadow:0 2px 10px rgba(178,26,26,.32) !important}
#newChatBtn{background:#fff;color:var(--sy-red);border:1.5px solid var(--sy-red);border-radius:10px;font-weight:600}
#newChatBtn:hover{background:var(--sy-red-light)}

/* ============================================================================
   9. 应用卡片：微质感 + 悬停上浮 + 金色描边
   ========================================================================== */
.app-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s,border-color .18s}
.app-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--sy-gold)}
.app-card:hover .app-name{color:var(--sy-red)}

/* ============================================================================
   10. 顶部账户下拉
   ========================================================================== */
.acct-menu{position:relative}
.acct-menu>button{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 6px;border:1px solid var(--border);border-radius:12px;background:var(--card);cursor:pointer;font-size:13px;color:var(--text);transition:background .15s}
.acct-menu>button:hover{background:var(--bg)}
.acct-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--sy-red),var(--sy-gold));color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0;box-shadow:0 1px 4px rgba(178,26,26,.3)}
.acct-drop{display:none;position:absolute;right:0;top:calc(100% + 8px);min-width:200px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;z-index:60}
.acct-menu.open .acct-drop{display:block}
.acct-drop a,.acct-drop button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 12px;border-radius:8px;border:none;background:transparent;color:var(--text);font-size:13px;cursor:pointer;text-decoration:none}
.acct-drop a:hover,.acct-drop button:hover{background:var(--sy-red-light);color:var(--sy-red)}

/* ============================================================================
   11. 会话搜索
   ========================================================================== */
#chatSessionSearch{background:#fff;color:var(--text);border:1px solid var(--border);border-radius:9px}
#chatSessionSearch:focus{border-color:var(--sy-red)}

/* ============================================================================
   12. 深色模式（可选，data-theme="dark"）
   ========================================================================== */
body[data-theme="dark"]{
  --primary:#E05252; --primary-dark:#C9332C; --primary-light:#3A1D1D;
  --accent:var(--sy-gold);
  --bg:#0B0E14; --card:#151A23; --card-glass:rgba(21,26,35,.86);
  --sidebar:#111722; --sidebar-hover:#1C2431;
  --text:#E8EBF5; --text2:#98A2B3; --text-secondary:#98A2B3;
  --border:#28303D; --border-strong:#333C4B;
  --shadow:0 1px 2px rgba(0,0,0,.5); --shadow-lg:0 12px 32px rgba(0,0,0,.5);
  --shadow-red:0 10px 28px rgba(224,82,82,.28);
  --glow:0 8px 24px rgba(224,82,82,.22);
  background:var(--bg); color:var(--text);background-image:none;
}
body[data-theme="dark"] .topbar{background:linear-gradient(135deg,#7E1414,#5E1010) !important}
body[data-theme="dark"] .card,
body[data-theme="dark"] .app-card,
body[data-theme="dark"] .acct-drop,
body[data-theme="dark"] .modal-content{background:var(--card) !important;border-color:var(--border) !important;box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.03)}
body[data-theme="dark"] .chat-messages{background:#0F141C !important}
body[data-theme="dark"] .chat-msg.ai .chat-bubble{background:#1A2230 !important;border-color:var(--border) !important}
body[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]),
body[data-theme="dark"] textarea,body[data-theme="dark"] select{background:#1A2230 !important;color:var(--text);border-color:var(--border)}
body[data-theme="dark"] .btn-ghost{background:transparent;color:var(--text2);border-color:var(--border)}
body[data-theme="dark"] .btn-ghost:hover{background:#1C2431;color:var(--text);border-color:var(--border)}
body[data-theme="dark"] button[id^="tab-"]{background:#151A23;color:var(--text2);border-color:var(--border) !important}
body[data-theme="dark"] button[id^="tab-"].btn-primary{background:var(--primary) !important;color:#fff !important}
body[data-theme="dark"] #newChatBtn{background:transparent;color:var(--primary);border-color:var(--primary)}
body[data-theme="dark"] #newChatBtn:hover{background:#2A1A1A}
body[data-theme="dark"] .chat-msg.user .chat-bubble{background:var(--primary);color:#fff}
body[data-theme="dark"] #chatSendBtn{background:var(--primary) !important}
body[data-theme="dark"] .stat-bar{background:#242C3A}
body[data-theme="dark"] .stat-main .stat-value{color:#F08A8A !important}
body[data-theme="dark"] .key-value{background:#1A2230}
body[data-theme="dark"] .badge-active,body[data-theme="dark"] .badge-user{background:rgba(31,157,85,.18);color:#6EE7A8}
body[data-theme="dark"] .badge-inactive{background:rgba(201,51,44,.18);color:#F0A0A0}
body[data-theme="dark"] .badge-admin{background:rgba(224,82,82,.18);color:#F2B8B8}
body[data-theme="dark"] .acct-drop a:hover,body[data-theme="dark"] .acct-drop button:hover{background:#2A1A1A;color:#F0A0A0}
/* 深色下把模板里写死的亮色内联样式压深 */
body[data-theme="dark"] [style*="background:#fff"],
body[data-theme="dark"] [style*="background: #fff"],
body[data-theme="dark"] [style*="background:#ffffff"],
body[data-theme="dark"] [style*="background:#f8fafc"],
body[data-theme="dark"] [style*="background:#F7F8FA"]{background:var(--card) !important}
body[data-theme="dark"] [style*="background:#fafafa"],body[data-theme="dark"] [style*="background:#F4F5F7"]{background:var(--bg) !important}
body[data-theme="dark"] [style*="background:#f1f5f9"]{background:#1A2230 !important}
body[data-theme="dark"] [style*="background:#eef2ff"],
body[data-theme="dark"] [style*="background:#FBECEC"],
body[data-theme="dark"] [style*="background:var(--primary-light)"]{background:rgba(224,82,82,.16) !important}
body[data-theme="dark"] [style*="background:linear-gradient(135deg,#eef2ff,#f5f3ff)"]{background:linear-gradient(135deg,rgba(224,82,82,.22),rgba(216,167,85,.14)) !important}
body[data-theme="dark"] [style*="background:#f0fdf4"]{background:rgba(31,157,85,.16) !important}
body[data-theme="dark"] [style*="background:#fff7ed"]{background:rgba(216,167,85,.16) !important}
body[data-theme="dark"] [style*="background:#1e293b"],body[data-theme="dark"] [style*="background:#2B2F36"]{background:#0A0E15 !important}

/* ============================================================================
   13. 排版与呼吸感（各页面统一）
   ========================================================================== */
.content{padding:26px 34px}
.topbar{padding:15px 34px}
.sidebar .nav{gap:2px}

/* ============================================================================
   14. 品牌 Logo
   ========================================================================== */
.sidebar .logo img.brand-lockup{display:block;width:auto;max-width:180px;max-height:42px;height:auto;margin:0 0 6px}
.site-nav .logo img.brand-lockup{display:block;width:auto;max-width:190px;max-height:44px;height:auto}
@media(max-width:768px){.sidebar .logo img.brand-lockup{display:none}}
/* 深浅色两套 logo：浅色模式用 -light（黑字），深色模式用 -dark（浅字） */
.sidebar .logo img.brand-lockup-dark{display:none}
body[data-theme="dark"] .sidebar .logo img.brand-lockup-light{display:none}
body[data-theme="dark"] .sidebar .logo img.brand-lockup-dark{display:block}
@media(max-width:768px){.sidebar .logo img.brand-lockup-dark{display:none !important}}

.icp-foot{text-align:center;color:var(--text-secondary);font-size:12px;padding:28px 0 10px;letter-spacing:.3px}

/* ============================================================================
   15. 侧栏底部「账户余额 / 推理速度」小仪表
   ========================================================================== */
.side-meters{display:flex;flex-direction:column;gap:6px;padding:6px 4px 10px;margin-bottom:6px;border-bottom:1px dashed var(--border)}
.side-meter{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:9px;background:linear-gradient(135deg,rgba(178,26,26,.05),rgba(216,167,85,.06));border:1px solid var(--border);font-size:12px;transition:border-color .15s,box-shadow .15s}
.side-meter:hover{border-color:var(--sy-gold);box-shadow:0 2px 10px rgba(216,167,85,.18)}
.side-meter .sm-ico{width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--sy-red);background:rgba(178,26,26,.12);border:1px solid rgba(178,26,26,.18);flex-shrink:0}
.side-meter:nth-child(2) .sm-ico{color:#a9791f;background:rgba(216,167,85,.16);border-color:rgba(216,167,85,.30)}
body[data-theme="dark"] .side-meter .sm-ico{color:#F2B8B8;background:rgba(224,82,82,.16);border-color:rgba(224,82,82,.28)}
body[data-theme="dark"] .side-meter:nth-child(2) .sm-ico{color:var(--sy-gold-light);background:rgba(216,167,85,.18);border-color:rgba(216,167,85,.30)}
.side-meter .sm-label{color:var(--text2);white-space:nowrap}
.side-meter .sm-val{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.2px;color:var(--sy-red);white-space:nowrap}
.side-meter:nth-child(2) .sm-val{color:#a9791f}
body[data-theme="dark"] .side-meter{background:linear-gradient(135deg,rgba(224,82,82,.10),rgba(216,167,85,.08));border-color:var(--border)}
body[data-theme="dark"] .side-meter .sm-val{color:#F08A8A}
body[data-theme="dark"] .side-meter:nth-child(2) .sm-val{color:var(--sy-gold-light)}
@media(max-width:768px){.side-meters{display:none}}

/* ============================================================================
   12. 服务板块（应用中心卡片）样式修正 —— 确保 8081 用户侧面板卡片完整渲染
   背景：内联 <style> 中 .app-card 的 padding/text-align 等被后续 theme.css 覆盖，
        且历史媒体查询块损坏，导致卡片看起来"没样式"。此处补全并锁定。
   ========================================================================== */
.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
.app-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;text-align:center;cursor:pointer;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s,border-color .18s}
.app-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--sy-gold)}
.app-card .app-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;font-size:20px}
.app-card .app-name{font-size:13px;font-weight:600;margin-bottom:2px;color:var(--text)}
.app-card:hover .app-name{color:var(--sy-red)}
.app-card .app-desc{font-size:10px;color:var(--text2);line-height:1.4}




/* ============================================================================
   16. 氛围灯饰 Ambient Light v2 —— 仅管理侧 (.surface-admin)  ·  2026-10-01
   理念：不做一堆零碎灯条，而是【一条连续的光导条】环绕中控——
        从侧栏右缘竖直下行，到顶栏底边水平延伸，连成一体（如车内环舱灯带）。
        它【同步缓慢呼吸】+【极淡的流光缓移】，安静但有生命感。
        全程只用深业红 / 深业金，不改主题色。
   ========================================================================== */

/* —— 顶栏底边：横向光导条（红—金—红），流光缓移 + 呼吸辉光 —— */
.surface-admin .topbar,.surface-user .topbar{ position:relative; }
.surface-admin .topbar::after,.surface-user .topbar::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:linear-gradient(90deg,
      rgba(178,26,26,.5) 0%, rgba(216,167,85,.95) 24%, rgba(178,26,26,.6) 50%,
      rgba(216,167,85,.95) 76%, rgba(178,26,26,.5) 100%);
  background-size:240% 100%;
  animation:syFlowX 16s linear infinite, syGlow 6.5s ease-in-out infinite;
  pointer-events:none; z-index:2;
}
@keyframes syFlowX{ from{background-position:0% 0} to{background-position:240% 0} }

/* —— 侧栏右缘：竖向光导条（金→红），与顶栏同一呼吸相位，连为一体 —— */
.surface-admin .sidebar::after,.surface-user .sidebar::after{
  content:''; position:absolute; top:0; bottom:0; right:0; width:2px;
  background:linear-gradient(180deg,
      rgba(216,167,85,.95) 0%, rgba(178,26,26,.9) 32%, rgba(178,26,26,.55) 100%);
  background-size:100% 240%;
  animation:syFlowY 16s linear infinite, syGlowV 6.5s ease-in-out infinite;
  pointer-events:none;
}
@keyframes syFlowY{ from{background-position:0 0%} to{background-position:0 240%} }

/* —— 同步呼吸：同周期、同缓动，两条灯带像一个光源一起明暗 —— */
@keyframes syGlow{
  0%,100%{ box-shadow:0 0 4px rgba(178,26,26,.18), 0 1px 0 rgba(216,167,85,.10); }
  50%    { box-shadow:0 0 26px rgba(178,26,26,.72), 0 0 12px rgba(216,167,85,.6); }
}
@keyframes syGlowV{
  0%,100%{ box-shadow:0 0 4px rgba(178,26,26,.18); }
  50%    { box-shadow:0 0 22px rgba(178,26,26,.62), 0 0 10px rgba(216,167,85,.45); }
}

/* —— 顶栏呼吸：整条红色顶栏的外辉光随之极轻微涨落，强化"氛围" —— */
.surface-admin .topbar,.surface-user .topbar{
  animation:syBarBreath 6.5s ease-in-out infinite;
}
@keyframes syBarBreath{
  0%,100%{ box-shadow:0 2px 14px rgba(143,20,20,.28), inset 0 -1px 0 rgba(255,255,255,.06); }
  50%    { box-shadow:0 4px 28px rgba(143,20,20,.5), 0 0 20px rgba(178,26,26,.35), inset 0 -1px 0 rgba(255,255,255,.06); }
}

/* —— 移动端：窄侧栏下灯带收敛 —— */
@media(max-width:768px){
  .surface-admin .sidebar::after{ width:1px }
}

/* —— 无障碍：尊重减少动效（停在辉光中间态，不闪）—— */
@media (prefers-reduced-motion: reduce){
  .surface-admin .topbar,
  .surface-admin .topbar::after,
  .surface-admin .sidebar::after{ animation:none !important; }
  .surface-admin .topbar::after{ box-shadow:0 0 12px rgba(178,26,26,.4), 0 1px 0 rgba(216,167,85,.3); }
  .surface-admin .sidebar::after{ box-shadow:0 0 12px rgba(178,26,26,.4); }
}


/* ============================================================================
   17. 科技感 / 现代感增强 —— 仅管理侧 (.surface-admin) · 2026-10-01
   深色模式入口 + 顶栏工具 + 点阵网格底纹 + 数字动效 + 卡片错峰入场 +
   按钮光扫 + ⌘/Ctrl+K 命令面板。全部在深业红/金体系内。
   ========================================================================== */

/* —— 顶栏右侧工具组（⌘K / 主题切换）—— */
.surface-admin .sy-topright,.surface-user .sy-topright{display:flex;align-items:center;gap:14px;position:relative;z-index:1}
.surface-admin .sy-tools,.surface-user .sy-tools{display:flex;align-items:center;gap:8px}
.surface-admin .sy-icon-btn,.surface-user .sy-icon-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;
  border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:#fff;cursor:pointer;font-size:13px;
  transition:background .15s,border-color .15s,transform .12s;backdrop-filter:blur(6px)}
.surface-admin .sy-icon-btn:hover,.surface-user .sy-icon-btn:hover{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.42);transform:translateY(-1px)}
.surface-admin .sy-icon-btn i,.surface-user .sy-icon-btn i{font-size:13px}
.surface-admin .sy-kbd,.surface-user .sy-kbd{font-size:11px;line-height:1;opacity:.92;border:1px solid rgba(255,255,255,.35);border-radius:5px;padding:2px 5px}

/* —— 内容区：极淡点阵网格底纹（科技感）—— */
.surface-admin .main,.surface-user .main{
  background-image:radial-gradient(rgba(178,26,26,.07) 1px, transparent 1.5px);
  background-size:22px 22px;background-position:-1px -1px;
}
body[data-theme="dark"].surface-admin .main,body[data-theme="dark"].surface-user .main{background-image:radial-gradient(rgba(224,82,82,.10) 1px, transparent 1.5px)}

/* —— 入场动效：卡片/统计卡错峰上浮（进入时加 .sy-in）—— */
@keyframes syRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.surface-admin .content .card.sy-in,.surface-user .content .card.sy-in,
.surface-admin .content .stat-card.sy-in,
.surface-user .content .stat-card.sy-in{animation:syRise .5s cubic-bezier(.2,.7,.3,1) backwards}

/* —— 按钮 hover 光扫 —— */
.surface-admin .btn,.surface-user .btn{position:relative;overflow:hidden}
.surface-admin .btn::after,.surface-user .btn::after{content:'';position:absolute;top:0;left:-130%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg);
  transition:left .55s ease;pointer-events:none}
.surface-admin .btn:hover::after,.surface-user .btn:hover::after{left:135%}

/* —— 数字：等宽数字（配合下方 count-up 动效）—— */
.surface-admin .stat-value,.surface-user .stat-value{font-variant-numeric:tabular-nums}

/* —— ⌘K 命令面板 —— */
.sy-palette{position:fixed;inset:0;z-index:2000;display:none;background:rgba(15,23,42,.42);backdrop-filter:blur(4px)}
.sy-palette.open{display:flex;align-items:flex-start;justify-content:center;padding-top:13vh}
.sy-pal-shell{width:min(560px,92vw);background:var(--card);border:1px solid var(--border);border-radius:16px;
  box-shadow:0 30px 70px rgba(0,0,0,.35);overflow:hidden;animation:syPop .18s ease}
@keyframes syPop{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
.sy-pal-input{width:100%;border:none;outline:none;padding:16px 18px;font-size:15px;background:transparent;color:var(--text)}
.sy-pal-list{max-height:52vh;overflow:auto;padding:6px}
.sy-pal-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;color:var(--text);font-size:13.5px}
.sy-pal-item.active,.sy-pal-item:hover{background:var(--sy-red-light);color:var(--sy-red)}
.sy-pal-item i{width:16px;text-align:center;opacity:.85}
.sy-pal-hint{padding:8px 14px;font-size:11px;color:var(--text2);border-top:1px solid var(--border);display:flex;gap:14px}
body[data-theme="dark"] .sy-pal-item.active,body[data-theme="dark"] .sy-pal-item:hover{background:rgba(224,82,82,.16);color:#F2B8B8}

@media(max-width:768px){ .surface-admin .sy-kbd,.surface-user .sy-kbd{display:none} }


/* ============================================================================
   18. Console v3 —— 高端 · 大气 · 稳重（仅管理侧 .surface-admin） · 2026-10-01
   在深业红/金体系与现有结构内，提升"座舱感"与专业度：
   品牌眉标 + 服务状态胶囊 + 北京时间 + 收紧排版层级 + 精修滚动条/选区/缓动。
   ========================================================================== */

/* —— 顶栏左侧：品牌眉标 + 页面标题 —— */
.surface-admin .sy-head,.surface-user .sy-head{position:relative;z-index:1;display:flex;flex-direction:column;gap:2px}
.surface-admin .sy-eyebrow,.surface-user .sy-eyebrow{font-size:9.5px;font-weight:700;letter-spacing:2.6px;text-transform:uppercase;
  color:rgba(255,255,255,.66);padding-left:14px}
.surface-admin .topbar h1,.surface-user .topbar h1{font-size:19px !important;letter-spacing:.4px}

/* —— 顶栏右侧：服务状态胶囊 + 北京时间 —— */
.surface-admin .sy-status,.surface-user .sy-status{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:999px;
  font-size:12px;color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(6px)}
.surface-admin .sy-status .sy-dot,.surface-user .sy-status .sy-dot{width:7px;height:7px;border-radius:50%;background:#57D98A;box-shadow:0 0 9px rgba(87,217,138,.85);animation:syPulse 2.4s ease-in-out infinite}
.surface-admin .sy-status.off .sy-dot,.surface-user .sy-status.off .sy-dot{background:#E0A94B;box-shadow:0 0 9px rgba(224,169,75,.85)}
@keyframes syPulse{0%,100%{opacity:.45}50%{opacity:1}}
.surface-admin .sy-clock,.surface-user .sy-clock{font-size:12.5px;color:rgba(255,255,255,.92);font-variant-numeric:tabular-nums;letter-spacing:.5px;padding:0 2px}

/* —— 排版层级：卡片标题更专业（小号大写 + 字距）—— */
.surface-admin .card-title,.surface-user .card-title{text-transform:uppercase;letter-spacing:1.2px;font-size:11.5px;color:var(--text2)}
.surface-admin .card-title i,.surface-user .card-title i{color:var(--sy-red)}
.surface-admin .stat-value,.surface-user .stat-value{font-weight:800;letter-spacing:-.5px;font-size:30px}

/* —— 材质：hover 时细金描边（克制的高级感）—— */
.surface-admin .card:hover,.surface-user .card:hover,.surface-admin .stat-card:hover,.surface-user .stat-card:hover{border-color:rgba(216,167,85,.55)}

/* —— 细节：滚动条 / 选区 —— */
.surface-admin ::-webkit-scrollbar,.surface-user ::-webkit-scrollbar{width:10px;height:10px}
.surface-admin ::-webkit-scrollbar-thumb,.surface-user ::-webkit-scrollbar-thumb{background:rgba(178,26,26,.5);border-radius:8px;border:2px solid transparent;background-clip:content-box}
.surface-admin ::-webkit-scrollbar-thumb:hover,.surface-user ::-webkit-scrollbar-thumb:hover{background:rgba(178,26,26,.75);background-clip:content-box}
.surface-admin ::-webkit-scrollbar-track,.surface-user ::-webkit-scrollbar-track{background:transparent}
.surface-admin ::selection,.surface-user ::selection{background:rgba(178,26,26,.18)}

/* —— 统一缓动 —— */
.surface-admin .card,.surface-user .card,.surface-admin .stat-card,.surface-user .stat-card,.surface-admin .btn,.surface-user .btn{transition-timing-function:cubic-bezier(.2,.7,.3,1)}

/* —— 深色下的冷峻边线 —— */
body[data-theme="dark"].surface-admin .card:hover,body[data-theme="dark"].surface-user .card:hover,
body[data-theme="dark"].surface-admin .stat-card:hover,
body[data-theme="dark"].surface-user .stat-card:hover{border-color:rgba(216,167,85,.45)}

/* —— 移动端：收敛顶栏右侧信息 —— */
@media(max-width:900px){ .surface-admin .sy-status,.surface-admin .sy-clock{display:none} }


/* ============================================================================
   19. 深色模式·厚重感增强 + 明暗统一（仅管理侧 .surface-admin） · 2026-10-01
   让深色更像"座舱"：深红/金角落氛围暗涌 + 卡片顶部微高光 + 更深的投影。
   ========================================================================== */
body[data-theme="dark"].surface-admin,body[data-theme="dark"].surface-user{
  background-image:
    radial-gradient(1100px 620px at 100% -12%, rgba(178,26,26,.16), transparent 62%),
    radial-gradient(820px 560px at -12% 112%, rgba(216,167,85,.07), transparent 58%) !important;
  background-attachment:fixed;
}
body[data-theme="dark"].surface-admin .card,body[data-theme="dark"].surface-user .card,
body[data-theme="dark"].surface-admin .stat-card,
body[data-theme="dark"].surface-user .stat-card{
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,0) 40%), var(--card) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045), 0 12px 32px rgba(0,0,0,.45) !important;
}
body[data-theme="dark"].surface-admin .stat-card .stat-value,body[data-theme="dark"].surface-user .stat-card .stat-value{color:#F2A2A2}
body[data-theme="dark"].surface-admin .topbar,body[data-theme="dark"].surface-user .topbar{box-shadow:0 4px 24px rgba(0,0,0,.55), inset 0 -1px 0 rgba(255,255,255,.05) !important}


/* ============================================================================
   20. 匠心细节 v4 —— 微距级精修（仅管理侧 .surface-admin） · 2026-10-01
   不做大动作，只抠"最后一公里"的细节：发丝高光、金短线、品牌签、
   按下回弹、焦点光环、行 hover……要的是"每一处都用心"。
   ========================================================================== */

/* —— 品牌眉标：前置金色短横（微光）—— */
.surface-admin .sy-eyebrow,.surface-user .sy-eyebrow{display:flex;align-items:center;gap:8px}
.surface-admin .sy-eyebrow::before,.surface-user .sy-eyebrow::before{content:'';width:16px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--sy-gold),rgba(216,167,85,0));box-shadow:0 0 6px rgba(216,167,85,.45)}

/* —— 顶栏用户头像：细白描边环 + 姓名字距 —— */
.surface-admin .topbar .user-info .avatar,.surface-user .topbar .user-info .avatar{box-shadow:0 0 0 2px rgba(255,255,255,.28), 0 2px 8px rgba(0,0,0,.25)}
.surface-admin .topbar .user-info span,.surface-user .topbar .user-info span{letter-spacing:.3px}

/* —— 侧栏导航：hover 金色小竖条 + 激活内描边 —— */
.surface-admin .sidebar .nav a,.surface-user .sidebar .nav a{border-radius:11px}
.surface-admin .sidebar .nav a::after,.surface-user .sidebar .nav a::after{content:'';position:absolute;left:5px;top:50%;transform:translateY(-50%);
  width:2px;height:0;border-radius:99px;background:var(--sy-gold);opacity:0;transition:height .18s ease,opacity .18s ease}
.surface-admin .sidebar .nav a:hover::after,.surface-user .sidebar .nav a:hover::after{height:14px;opacity:.85}
.surface-admin .sidebar .nav a.active,.surface-user .sidebar .nav a.active{box-shadow:inset 0 0 0 1px rgba(178,26,26,.10)}

/* —— 侧栏底部：品牌构建签（匠心小注）—— */
.surface-admin .sy-build,.surface-user .sy-build{font-size:9.5px;letter-spacing:1.6px;color:var(--text2);text-align:center;
  padding:11px 0 5px;margin:10px 2px 2px;border-top:1px dashed var(--border);text-transform:uppercase;opacity:.85}

/* —— 卡片：顶部发丝高光（红金微光，悬停点亮）—— */
.surface-admin .card::after,.surface-user .card::after,
.surface-admin .stat-card::after,
.surface-user .stat-card::after{content:'';position:absolute;left:14px;right:14px;top:0;height:1px;border-radius:2px;
  background:linear-gradient(90deg,transparent,rgba(178,26,26,.4) 50%,transparent);opacity:.45;transition:opacity .25s;pointer-events:none}
.surface-admin .card:hover::after,.surface-user .card:hover::after,
.surface-admin .stat-card:hover::after,
.surface-user .stat-card:hover::after{opacity:1}

/* —— 按钮：按下回弹 + 键盘焦点光环 —— */
.surface-admin .btn:active,.surface-user .btn:active{transform:translateY(0) scale(.985)}
.surface-admin .btn:focus-visible,.surface-user .btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--sy-red-light)}

/* —— 输入：聚焦时更细腻的双层光环 —— */
.surface-admin input:not([type="checkbox"]):not([type="radio"]):focus,.surface-user input:not([type="checkbox"]):not([type="radio"]):focus,
.surface-admin textarea:focus,
.surface-user textarea:focus,.surface-admin select:focus,.surface-user select:focus{box-shadow:0 0 0 3px var(--sy-red-light), 0 0 14px rgba(178,26,26,.12)}

/* —— 表格：行 hover 暖红底 + 表头字距 —— */
.surface-admin .content table tbody tr:hover td,.surface-user .content table tbody tr:hover td{background:rgba(178,26,26,.04)}
.surface-admin .content table thead th,.surface-user .content table thead th{letter-spacing:.7px}

/* —— 深色微调：发丝高光在深色下更暖 —— */
body[data-theme="dark"].surface-admin .card::after,body[data-theme="dark"].surface-user .card::after,
body[data-theme="dark"].surface-admin .stat-card::after,
body[data-theme="dark"].surface-user .stat-card::after{background:linear-gradient(90deg,transparent,rgba(224,82,82,.5) 50%,transparent)}


/* ============================================================================
   21. 统一线性图标集（内联 SVG sprite）—— 仅管理侧导航 / 顶栏工具 · 2026-10-02
   把原先混杂的 FontAwesome 图标（fas 实心、笔画粗细不一）统一换成同一套
   24×24、1.7px 圆头描边的线性图标，风格更纯粹、更"匠心"。
   颜色跟随 currentColor（继承文字色）→ 激活态自动转深业红（沿用导航激活色）。
   图标 symbol 定义在 base.html 的 <svg class="sy-sprite">。#i-* 引用。
   ========================================================================== */
.syico{
  width:18px;height:18px;flex:0 0 auto;display:inline-block;vertical-align:middle;
  fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
.surface-admin .sidebar .nav a .syico,.surface-user .sidebar .nav a .syico{width:18px;height:18px}
.sidebar .bottom a .syico{width:18px;height:18px}
.sidebar .nav a.active .syico{color:var(--sy-red)}
body[data-theme="dark"] .sidebar .nav a.active .syico{color:var(--primary)}
.surface-admin .sy-icon-btn .syico,.surface-user .sy-icon-btn .syico{width:15px;height:15px;stroke-width:1.8}
.side-meter .sm-ico .syico{width:11px;height:11px;stroke-width:2.2}
.acct-drop .syico,.acct-drop a .syico,.acct-drop button .syico{width:15px;height:15px;stroke-width:1.8;margin-right:2px}
.acct-menu>button .sy-chev{width:13px;height:13px;opacity:.7}
.sy-pal-item .sy-pal-ico{width:16px;height:16px;opacity:.9;stroke-width:1.8}
.sidebar .nav a:hover .syico,.sidebar .bottom a:hover .syico{color:currentColor}


/* ============================================================================
   23. 用户侧修正（8081）· 2026-10-02
   ========================================================================== */
/* 深色下二维码必须保持白底，否则黑模块叠在深底上无法扫描 */
body[data-theme="dark"] #payModalBody svg[style*="background:#fff"],
body[data-theme="dark"] .qr-wrap svg,
body[data-theme="dark"] #qrBox svg{background:#fff !important}
body[data-theme="dark"] .qr-wrap{background:#fff !important;border-color:#e2e4e8 !important}


/* ============================================================================
   24. 智能秘书 · 右下角气泡通知（用户侧）· 2026-10-02
   ========================================================================== */
.sy-bubbles{position:fixed;right:20px;bottom:20px;z-index:3000;display:flex;flex-direction:column;gap:10px;max-width:370px}
.sy-bubble{display:flex;gap:11px;align-items:flex-start;background:var(--card-glass);backdrop-filter:blur(10px);border:1px solid var(--border);border-left:3px solid var(--sy-red);border-radius:14px;padding:12px 13px;box-shadow:0 14px 34px rgba(16,24,40,.20);transform:translateY(14px);opacity:0;transition:transform .35s cubic-bezier(.2,.8,.3,1),opacity .35s}
.sy-bubble.on{transform:none;opacity:1}
.sy-bubble.off{transform:translateY(14px);opacity:0}
.sy-bubble .sb-ic{width:32px;height:32px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--sy-red),var(--sy-gold))}
.sy-bubble .sb-ic .syico{width:17px;height:17px}
.sy-bubble .sb-body{flex:1;min-width:0}
.sy-bubble .sb-t{font-size:13.5px;font-weight:700;color:var(--text);line-height:1.35}
.sy-bubble .sb-d{font-size:11.5px;color:var(--text2);margin-top:3px}
.sy-bubble .sb-x{border:none;background:transparent;color:var(--text2);font-size:18px;line-height:1;cursor:pointer;padding:0 2px}
.sy-bubble .sb-x:hover{color:var(--text)}
@media(max-width:640px){.sy-bubbles{left:14px;right:14px;max-width:none}}

/* 智能秘书页 */
.sec-wrap{max-width:900px;margin:0 auto}
.sec-add{display:flex;gap:10px;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:12px;box-shadow:var(--shadow);margin-bottom:18px}
.sec-add .syico{width:20px;height:20px;color:var(--sy-red);flex-shrink:0;margin-left:6px}
.sec-add input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:14px;color:var(--text);padding:8px 4px}
.sec-add .hint{font-size:11px;color:var(--text2);white-space:nowrap}
.sec-head{display:flex;justify-content:space-between;align-items:center;margin:6px 2px 12px}
.sec-head h3{font-size:15px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}
.sec-head h3 .syico{color:var(--sy-red);width:17px;height:17px}
.sec-list{display:flex;flex-direction:column;gap:10px}
.sec-item{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.sec-item:hover{border-color:var(--border-strong)}
.sec-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--sy-gold),var(--sy-red))}
.sec-when{flex-shrink:0;width:74px;text-align:center}
.sec-when .d{font-size:18px;font-weight:800;color:var(--sy-red);line-height:1.1;font-variant-numeric:tabular-nums}
.sec-when .y{font-size:10.5px;color:var(--text2);margin-top:2px}
.sec-main{flex:1;min-width:0}
.sec-main .t{font-size:14px;font-weight:600;color:var(--text);word-break:break-word}
.sec-main .s{font-size:11.5px;color:var(--text2);margin-top:3px}
.sec-ops{display:flex;gap:6px;flex-shrink:0}
.sec-tag{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;border-radius:20px;padding:2px 8px;background:var(--primary-light);color:var(--sy-red);margin-left:6px}
.sec-empty{text-align:center;color:var(--text2);padding:48px 20px;font-size:13px}
.sec-settings{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow);margin-top:18px}
.sec-settings h3{font-size:14px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;margin-bottom:14px}
.sec-settings h3 .syico{color:var(--sy-red);width:16px;height:16px}
.sec-row{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:13px;color:var(--text)}
.sec-row label{flex:1;color:var(--text2)}
.sec-row input[type=number],.sec-row input[type=time]{width:110px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-size:13px}
.sec-toggle{appearance:none;width:40px;height:22px;border-radius:20px;background:var(--border);position:relative;cursor:pointer;transition:background .2s;flex-shrink:0}
.sec-toggle:checked{background:var(--sy-red)}
.sec-toggle::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .2s}
.sec-toggle:checked::after{left:20px}
.sec-list.dim .sec-item{display:none}

/* ---- 行程秘书 v2：左时间轴 + 右日历 ---- */
.sec-wrap{max-width:1100px}
.sec-cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,0.95fr);gap:18px;align-items:start}
.sec-left,.sec-right{min-width:0}
.sec-daybar{display:flex;align-items:center;gap:10px;margin:2px 2px 12px;flex-wrap:wrap}
.sec-daybar .syico{color:var(--sy-red);width:18px;height:18px;flex-shrink:0}
.sec-daybar h3{font-size:16px;font-weight:700;color:var(--text);flex:1;min-width:140px}
.sec-timeline{display:flex;flex-direction:column;gap:12px}
.tl-item{display:grid;grid-template-columns:58px 18px 1fr;align-items:start}
.tl-time{text-align:right;padding-right:10px;padding-top:1px}
.tl-time .st{font-size:14px;font-weight:800;color:var(--sy-red);font-variant-numeric:tabular-nums;line-height:1.2}
.tl-time .line{width:2px;height:15px;border-radius:2px;background:var(--border);margin:3px 0 3px auto}
.tl-time .en{font-size:12px;color:var(--text2);line-height:1.2}
.tl-dot{position:relative;height:100%}
.tl-dot::before{content:'';position:absolute;left:5px;top:3px;width:9px;height:9px;border-radius:50%;background:var(--sy-red);box-shadow:0 0 0 3px var(--sy-red-light);z-index:1}
.tl-dot::after{content:'';position:absolute;left:8.5px;top:14px;bottom:-12px;width:2px;background:var(--border)}
.tl-item:last-child .tl-dot::after{display:none}
.tl-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s;margin-bottom:2px}
.tl-card:hover{border-color:var(--border-strong)}
.tl-t{font-size:14px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.4}
.tl-meta{margin-top:8px;display:flex;flex-direction:column;gap:4px}
.tl-meta .mi{font-size:12px;color:var(--text2);line-height:1.5}
.tl-meta .mi b{color:var(--text);font-weight:600;margin-right:6px}
.tl-ops{margin-top:10px;display:flex;gap:6px}
.tp-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--sy-red);background:var(--primary-light);border-radius:20px;padding:2px 9px}
.tp-chip .syico{width:13px;height:13px;color:var(--sy-red)}
.sec-undated{margin-top:18px}
.sec-und-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--text2);margin:0 2px 8px}
.sec-und-head .syico{color:var(--sy-gold);width:16px;height:16px}
.und-item{display:flex;align-items:center;gap:10px;background:var(--card);border:1px dashed var(--border-strong);border-radius:12px;padding:10px 14px;margin-bottom:8px}
.und-item .t{flex:1;font-size:13.5px;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.und-item .ops{display:flex;gap:6px}
.cal{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:var(--shadow);position:sticky;top:78px}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cal-head h3{font-size:15px;font-weight:700;color:var(--text)}
.cal-nav{width:30px;height:30px;border-radius:9px;border:1px solid var(--border);background:var(--card);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text2)}
.cal-nav:hover{border-color:var(--sy-gold);color:var(--sy-red)}
.cal-nav .syico{width:16px;height:16px}
.cal-week{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:11px;color:var(--text2);margin-bottom:6px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-cell{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border-radius:10px;font-size:13px;color:var(--text);cursor:pointer;transition:background .12s}
.cal-cell:hover{background:var(--sidebar-hover)}
.cal-cell.blank{cursor:default}
.cal-cell.today{box-shadow:inset 0 0 0 1.5px var(--sy-gold)}
.cal-cell.sel{background:var(--sy-red);color:#fff;font-weight:700}
.cal-cell .rdot{position:absolute;bottom:5px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--sy-red)}
.cal-cell.sel .rdot{background:#fff}
.cal-legend{margin-top:12px;font-size:11px;color:var(--text2);display:flex;align-items:center;gap:6px}
.cal-legend .dot{width:6px;height:6px;border-radius:50%;background:var(--sy-red);display:inline-block}
@media(max-width:900px){.sec-cols{grid-template-columns:1fr}.cal{position:static}}
/* 近三天行程概况卡 */
.sec-brief{background:linear-gradient(135deg,rgba(178,26,26,.05),rgba(216,167,85,.07));border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:16px}
.sec-brief .sb-head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--text);margin-bottom:8px}
.sec-brief .sb-head .syico{color:var(--sy-red);width:16px;height:16px;flex-shrink:0}
.sec-brief .sb-refresh{margin-left:auto;border:1px solid var(--border);background:var(--card);border-radius:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text2);transition:border-color .15s,color .15s}
.sec-brief .sb-refresh:hover{border-color:var(--sy-gold);color:var(--sy-red)}
.sec-brief .sb-refresh .syico{width:15px;height:15px;color:currentColor}
.sec-brief .sb-body{font-size:13px;color:var(--text);line-height:1.78;white-space:pre-wrap}
.sec-brief .sb-loading{color:var(--text2);font-size:12px}
body[data-theme="dark"] .sec-brief{background:linear-gradient(135deg,rgba(224,82,82,.09),rgba(216,167,85,.06))}


/* ============================================================================
   22. 组织架构等页面的深色补全（仅管理侧 .surface-admin） · 2026-10-02
   这些页面把亮色写死在自有 class 里（.org-wrap/.org-row/#orgMenu 等），
   深色模式下不会自动变深 → 统一压深。
   ========================================================================== */
body[data-theme="dark"].surface-admin .org-wrap,body[data-theme="dark"].surface-user .org-wrap{background:var(--card) !important;border-color:var(--border) !important;box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.03) !important}
body[data-theme="dark"].surface-admin .org-row:hover,body[data-theme="dark"].surface-user .org-row:hover{background:rgba(255,255,255,.05)}
body[data-theme="dark"].surface-admin .org-row.sel,body[data-theme="dark"].surface-user .org-row.sel{background:rgba(224,82,82,.16);outline-color:rgba(224,82,82,.38)}
body[data-theme="dark"].surface-admin .org-row.dragover-into,body[data-theme="dark"].surface-user .org-row.dragover-into{background:rgba(224,82,82,.16)}
body[data-theme="dark"].surface-admin .org-row.member,body[data-theme="dark"].surface-user .org-row.member{background:rgba(255,255,255,.03);border-color:var(--border)}
body[data-theme="dark"].surface-admin .org-row .cnt,body[data-theme="dark"].surface-user .org-row .cnt{background:rgba(255,255,255,.08);color:var(--text2)}
body[data-theme="dark"].surface-admin .badge-t,body[data-theme="dark"].surface-user .badge-t{background:rgba(255,255,255,.08);color:var(--text2)}
body[data-theme="dark"].surface-admin .badge-t.t-org,body[data-theme="dark"].surface-user .badge-t.t-org{background:rgba(224,82,82,.18);color:#F2B8B8}
body[data-theme="dark"].surface-admin .badge-t.t-virtual,body[data-theme="dark"].surface-user .badge-t.t-virtual{background:rgba(216,167,85,.18);color:var(--sy-gold-light)}
body[data-theme="dark"].surface-admin .badge-t.t-person,body[data-theme="dark"].surface-user .badge-t.t-person{background:rgba(31,157,85,.18);color:#6EE7A8}
body[data-theme="dark"].surface-admin .gap:hover,body[data-theme="dark"].surface-user .gap:hover{background:rgba(224,82,82,.30)}
body[data-theme="dark"].surface-admin #orgMenu,body[data-theme="dark"].surface-user #orgMenu,
body[data-theme="dark"].surface-admin #memMenu,
body[data-theme="dark"].surface-user #memMenu{background:#1A2029 !important;border-color:var(--border) !important}
body[data-theme="dark"].surface-admin #orgMenu button:hover,body[data-theme="dark"].surface-user #orgMenu button:hover{background:rgba(224,82,82,.16);color:#F0A0A0}
body[data-theme="dark"].surface-admin .org-wrap [style*="background:#fff"],body[data-theme="dark"].surface-user .org-wrap [style*="background:#fff"],
body[data-theme="dark"].surface-admin .org-wrap [style*="background:#F7F8FA"],
body[data-theme="dark"].surface-user .org-wrap [style*="background:#F7F8FA"],
body[data-theme="dark"].surface-admin .org-wrap [style*="background:#F2F3F5"],
body[data-theme="dark"].surface-user .org-wrap [style*="background:#F2F3F5"]{background:rgba(255,255,255,.06) !important}
/* 侧栏导航激活态：深色下不要用浅红底（否则像白块） */
body[data-theme="dark"].surface-admin .sidebar .nav a.active,body[data-theme="dark"].surface-user .sidebar .nav a.active{background:rgba(224,82,82,.18) !important;color:#F2B8B8 !important}
body[data-theme="dark"].surface-admin .sidebar .nav a.active .syico,body[data-theme="dark"].surface-user .sidebar .nav a.active .syico{color:#F2B8B8 !important}
