/* =================================================================
   AI 速析 — 公共样式表 (common.css)
   包含所有页面共享的 CSS 变量、重置、导航、侧边栏、Toast、
   Modal、Loading、场景分析、表单、工具卡片、响应式等样式。
   各页面引入: <link rel="stylesheet" href="common.css">
   ================================================================= */

/* =================================================================
   1. CSS 变量 (:root)
   ================================================================= */
:root {
  --primary: #7733f8;
  --primary-hover: #9c5eff;
  --primary-active: #5921d1;
  --primary-light: #F5F0FF;
  --gradient: linear-gradient(90deg, #3b2af9, #f335ec);
  --gradient-subtle: linear-gradient(135deg, #3b2af9, #7733f8);
  --text-primary: #141414;
  --text-secondary: rgba(20,20,20,0.7);
  --text-muted: #666;
  --bg-white: #fff;
  --bg-gray: #F8F8F8;
  --bg-hero: linear-gradient(135deg, #f5f0ff 0%, #fff 40%, #f0f5ff 100%);
  --border-light: #EFEDF3;
  --radius-lg: 12px;
  --radius-md: 8px;
  --radius-sm: 6px;
  --shadow-sm: 0 2px 8px rgba(0,0,0,0.06);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.1);
  --shadow-btn: 0 4px 20px rgba(119,51,248,0.3);
  --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

/* =================================================================
   2. 全局重置
   ================================================================= */
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font-family);color:var(--text-primary);background:var(--bg-white);line-height:1.6;-webkit-font-smoothing:antialiased}
[v-cloak]{display:none!important}

/* ========== 钱币图标（立体铜钱，与小程序统一） ========== */
/* ========== 积分图标（coin-icon）==========
   统一规范：圆形背景 + 四角星(✦)居中
   背景尺寸由 size 类控制，四角星 font-size = 背景尺寸 × 0.7
   所有变体自动继承居中逻辑
   =========================================== */
.coin-icon{
  position:relative;border-radius:50%;
  background:linear-gradient(145deg,#D4A017 0%,#B8860B 50%,#8B6914 100%);
  display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;box-sizing:border-box;
  box-shadow:0 2px 6px rgba(80,60,10,0.3),0 0 2px rgba(80,60,10,0.2),inset 0 1px 2px rgba(255,255,255,0.3),inset 0 -2px 4px rgba(80,50,0,0.2);
  border:2px solid rgba(160,120,30,0.5);
}
.coin-icon::before{
  content:'';position:absolute;top:7%;left:7%;right:7%;bottom:7%;
  border-radius:50%;border:1.5px solid rgba(255,255,255,0.12);
  box-shadow:inset 0 0 4px rgba(255,255,255,0.08);
}
.coin-icon::after{
  content:'\2726';position:absolute;top:50%;left:50%;
  transform:translate(-52%,-54%);line-height:1;
  color:rgba(255,255,255,0.85);text-shadow:0 1px 3px rgba(80,50,0,0.3);
  display:flex;align-items:center;justify-content:center;
}
/* 尺寸：四角星 font-size = width × 0.7 */
.coin-xs{width:13px;height:13px;margin-right:4px;vertical-align:middle}
.coin-xs::after{font-size:9px}
.coin-sm{width:18px;height:18px}
.coin-sm::after{font-size:13px}
.coin-md{width:24px;height:24px}
.coin-md::after{font-size:17px}
a{color:var(--primary);text-decoration:none;transition:color .2s}
a:hover{color:var(--primary-hover)}
.container{max-width:1200px;margin:0 auto;padding:0 24px}

/* =================================================================
   3. 顶部导航栏 (NAV)
   ================================================================= */
.nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,0.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light);box-shadow:0 1px 4px rgba(0,0,0,0.04);padding:0}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 30px}
.nav-logo{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.nav-logo .logo-img{height:50px;width:auto;max-width:200px;object-fit:contain}
.nav-logo .logo-icon{width:32px;height:32px;border-radius:var(--radius-md);background:var(--gradient-subtle);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:700;flex-shrink:0}
.nav-logo .logo-text{font-size:20px;font-weight:600;color:var(--text-primary);letter-spacing:-0.3px}
.nav-logo .logo-domain{font-size:12px;color:var(--text-muted);margin-left:2px}
.nav-links{display:flex;align-items:center;gap:32px}
.nav-link{font-size:14px;font-weight:400;color:var(--text-secondary);cursor:pointer;transition:color .2s;position:relative;white-space:nowrap;text-decoration:none}
.nav-link:hover{color:var(--primary)}
.nav-link::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:2px;background:var(--primary);border-radius:1px;transform:scaleX(0);transition:transform .25s}
.nav-link:hover::after{transform:scaleX(1)}
.nav-links .btn-nav{display:inline-flex;align-items:center;padding:7px 20px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;transition:all .25s;line-height:1;white-space:nowrap}
.nav-links .btn-login{background:transparent;color:var(--primary);border:1px solid var(--primary);cursor:pointer}
.nav-links .btn-login:hover{background:var(--primary);color:#fff;transform:translateY(-1px);box-shadow:0 2px 8px rgba(119,51,248,0.25)}
.nav-links .btn-member{background:var(--gradient);color:#fff;border:none;cursor:pointer;box-shadow:0 2px 8px rgba(59,42,249,0.2)}
.nav-links .btn-member:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(59,42,249,0.35)}
.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--gradient-subtle);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;flex-shrink:0}
.user-avatar svg{width:18px;height:18px;fill:#fff}
.user-info{display:flex;align-items:center;gap:8px}
.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;background:none;border:none}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--text-primary);border-radius:1px;transition:all .25s}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* User Dropdown */
.user-dropdown{position:absolute;top:100%;right:0;background:#fff;border:1px solid var(--border-light);border-radius:12px;padding:8px 0;box-shadow:0 4px 16px rgba(0,0,0,0.1);z-index:110;min-width:140px}
.user-dropdown-submenu{top:auto;right:auto;width:max-content;z-index:111}
.user-dropdown-item{padding:10px 20px;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:background .2s;white-space:nowrap}
.user-dropdown-item:hover{background:var(--primary-light);color:var(--primary)}
.user-dropdown-item.logout{color:#e24a5a}
.user-dropdown-item.logout:hover{background:#fef0f0}
.udi-arrow{float:right;font-size:16px;line-height:1}
.user-dropdown-sub .sub-item{padding-left:32px;font-size:12px}
.user-dropdown-divider{height:1px;background:var(--border-light);margin:4px 0}
.user-dropdown-info{padding:10px 16px;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.udi-name{font-size:13px;font-weight:600;color:var(--text-primary)}
.udi-uid{font-size:12px;color:var(--text-muted)}

/* =================================================================
   4. 页面布局: 侧边栏 + 内容区 (LAYOUT / Sidebar)
   ================================================================= */
.app-layout{display:flex;min-height:100vh}
.app-layout.full{display:block}

/* --- 侧边栏 --- */
.sidebar{position:fixed;top:0;left:0;bottom:0;width:256px;min-width:256px;background:#FCFCFC;border-right:1px solid #F3F4F6;padding:24px 0 120px;overflow-y:auto;display:flex;flex-direction:column;z-index:50}
.content-area{}
.sidebar-logo{display:flex;align-items:center;padding:0 16px 0 19px;border-bottom:1px solid #F3F4F6;margin-bottom:8px;height:52px;box-sizing:border-box;cursor:pointer}
.sidebar-logo .logo-img{height:45px;width:auto;max-width:190px;object-fit:contain;flex-shrink:0}
/* 侧边栏收缩/展开（所有屏幕尺寸） */
.sidebar.collapsed{overflow-y:hidden;padding-top:84px;width:60px;min-width:60px}
.sidebar.collapsed .s-label,
.sidebar.collapsed .s-arrow,
.sidebar.collapsed .sidebar-separator,
.sidebar.collapsed .sidebar-section-title{display:none!important}
/* 收缩态：��菜单默认隐藏 */
.sidebar.collapsed .sidebar-sub{display:none!important}
/* 收缩态：子菜单展开时显示，图标垂直排列 */
.sidebar.collapsed .sidebar-sub.open-in-collapsed{display:flex!important;flex-direction:column;align-items:center;gap:4px;padding:4px 0}
.sidebar.collapsed .sidebar-sub.open-in-collapsed .sidebar-item{display:flex;justify-content:center;align-items:center;padding:8px 0;width:100%}
.sidebar.collapsed .sidebar-sub.open-in-collapsed .sidebar-item .s-icon{font-size:16px;width:auto;margin:0}
.sidebar.collapsed .sidebar-sub.open-in-collapsed .s-label{display:none!important}
.sidebar.collapsed .sidebar-item{justify-content:center;padding:11px 0;border-left:none}
.sidebar.collapsed .sidebar-item.active{border-left:none}
.sidebar.collapsed .sidebar-item .s-icon{font-size:18px;width:auto}
.sidebar.collapsed .sidebar-point-card{background:transparent;border:none;padding:8px 0;text-align:center;bottom:12px;left:0;right:0;margin:0}
.sidebar.collapsed .spc-header,
.sidebar.collapsed .spc-detail-row,
.sidebar.collapsed .spc-buy-btn,
.sidebar.collapsed .spc-deco,
.sidebar.collapsed .spc-label,
.sidebar.collapsed .spc-detail{display:none!important}
.sidebar.collapsed .spc-total{font-size:0;margin-bottom:0}
/* 收缩态积分图标：22px 圆形背景 + ✦ 居中 */
.sidebar.collapsed .spc-total::before{
  content:'';display:block;width:22px;height:22px;margin:0 auto;
  border-radius:50%;position:relative;
  background:linear-gradient(145deg,#D4A017 0%,#B8860B 50%,#8B6914 100%);
  box-shadow:0 2px 6px rgba(80,60,10,0.3),0 0 2px rgba(80,60,10,0.2),inset 0 1px 2px rgba(255,255,255,0.3),inset 0 -2px 4px rgba(80,50,0,0.2);
  border:2px solid rgba(160,120,30,0.5);
}
.sidebar.collapsed .spc-total::after{
  content:'✦';position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);font-size:15px;line-height:1;
  color:rgba(255,255,255,0.85);text-shadow:0 1px 3px rgba(80,50,0,0.3);
  pointer-events:none;
}
.sidebar.collapsed .sidebar-logo{display:none}
.sidebar.collapsed .sidebar-logo{display:none}
.sidebar.collapsed~.content-area{margin-left:60px}
.sidebar-item{display:flex;align-items:center;gap:10px;padding:11px 16px;font-size:14px;font-weight:400;color:#1C2420;cursor:pointer;transition:background .15s,color .15s;border-left:3px solid transparent;text-decoration:none}
.sidebar-item:hover{background:var(--primary-light);color:var(--primary)}
.sidebar-item.active{background:var(--primary-light);color:var(--primary);font-weight:400;border-left-color:var(--primary)}
.sidebar-item .s-icon{font-size:16px;width:20px;text-align:center;flex-shrink:0}
.sidebar-item .s-label{flex:1}
.sidebar-item .s-arrow{font-size:14px;font-weight:700;transition:transform .2s}
.sidebar-item .s-arrow.open{transform:rotate(90deg)}
.sidebar-sub{overflow:hidden}

.sidebar-group-header{cursor:pointer}
.sidebar-group-header .s-arrow{font-family:monospace}
.sidebar-sub .sidebar-item{padding-left:40px;font-size:12px}
.sidebar-separator{height:1px;background:#F3F4F6;margin:6px 16px}
.sidebar-section-title{padding:8px 16px 4px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px}
.sidebar-item.indented{padding-left:40px;font-size:12px}

/* --- 侧边栏点数卡片 --- */
.sidebar-point-card{position:absolute;bottom:12px;left:0;right:0;margin:0 16px;padding:12px;border-radius:12px;border:1px solid rgba(119,51,248,0.15);background:linear-gradient(135deg,#F8F6FF,#F5F0FF);overflow:hidden;z-index:100}
.sidebar-point-card::after{content:'';position:absolute;right:-8px;bottom:-8px;width:60px;height:60px;background:radial-gradient(circle,rgba(119,51,248,0.06) 0%,transparent 70%);border-radius:50%;pointer-events:none}
.spc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;position:relative;z-index:1}
.spc-label{font-size:11px;color:var(--text-muted)}
.spc-buy-btn{font-size:13px;color:#fff;background:#D4A017;padding:3px 11px;border-radius:0 12px 0 10px;cursor:pointer;transition:opacity .2s;white-space:nowrap;position:absolute;top:0;right:0;line-height:1.5}
.spc-buy-btn:hover{opacity:0.85}
.spc-total{font-size:24px;font-weight:700;color:var(--text-primary);line-height:1.2;position:relative;z-index:1;margin-bottom:4px}
.spc-detail{font-size:11px;color:var(--text-muted);position:relative;z-index:1}
.spc-detail-row{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}
.spc-detail-link{font-size:11px;color:var(--primary);text-decoration:underline;cursor:pointer;position:relative;z-index:1}
.spc-detail-link:hover{color:var(--primary-hover)}
.spc-deco{position:absolute;right:8px;bottom:8px;font-size:20px;color:rgba(119,51,248,0.12);line-height:1;pointer-events:none;z-index:0}

/* --- 侧边栏收缩切换按钮 --- */
.sidebar-toggle-btn{
  position:absolute;top:36px;right:6px;
  width:28px;height:28px;
  display:flex;align-items:center;justify-content:center;
  background:transparent;border:none;
  border-radius:8px;cursor:pointer;
  color:#1F2937;transition:all .2s;
  padding:0;flex-shrink:0;z-index:100;
  box-shadow:none;
}
.sidebar-toggle-btn:hover{background:rgba(0,0,0,0.06);color:#000}
/* 收缩后按钮居中于logo行 */
.sidebar.collapsed .sidebar-toggle-btn{
  top:36px;right:auto;left:50%;transform:translateX(-50%);
}
/* 展开态图标: << 双左箭头 */
.sidebar-toggle-btn.sidebar-expanded-icon::before{
  content:'';display:block;
  width:16px;height:16px;
  background:currentColor;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='15 18 9 12 15 6'%3E%3C/polyline%3E%3Cpolyline points='9 18 3 12 9 6'%3E%3C/polyline%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='15 18 9 12 15 6'%3E%3C/polyline%3E%3Cpolyline points='9 18 3 12 9 6'%3E%3C/polyline%3E%3C/svg%3E") center/contain no-repeat;
}
/* 收缩态图标: >> 双右箭头 */
.sidebar-toggle-btn.sidebar-collapsed-icon::before{
  content:'';display:block;
  width:16px;height:16px;
  background:currentColor;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3Cpolyline points='15 18 21 12 15 6'%3E%3C/polyline%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'%3E%3C/polyline%3E%3Cpolyline points='15 18 21 12 15 6'%3E%3C/polyline%3E%3C/svg%3E") center/contain no-repeat;
}
.sidebar-toggle-btn svg{display:block}
@media(max-width:900px){.sidebar-toggle-btn{display:none}.sidebar.sidebar-expanded .sidebar-toggle-btn{display:flex}}

/* --- 签到弹窗（右上角悬浮，不遮罩页面） --- */
.checkin-modal-mask{position:fixed;top:80px;right:20px;z-index:200;display:none}
.cm-card{background:#fff;border-radius:16px;padding:28px 24px 22px;min-width:260px;max-width:300px;box-shadow:0 8px 36px rgba(0,0,0,.15);position:relative}
.cm-card .cm-close{position:absolute;top:8px;right:10px;width:28px;height:28px;border-radius:50%;background:transparent;border:none;cursor:pointer;font-size:18px;color:#999;display:flex;align-items:center;justify-content:center}
.cm-card .cm-close:hover{background:#f5f5f5;color:#333}
.cm-title{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:6px}
.cm-status{font-size:13px;color:var(--text-muted);margin-bottom:12px}
.cm-points{font-size:14px;font-weight:600;color:var(--primary);margin-bottom:16px}
.cm-btn{display:block;width:100%;padding:10px 0;font-size:15px;font-weight:600;color:#fff;background:var(--gradient-subtle);border:none;border-radius:10px;cursor:pointer;transition:all .2s}
.cm-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(119,51,248,0.35)}
.cm-btn:active{transform:translateY(0)}
.cm-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.cm-btn.checked{background:#c4c2cb;cursor:default;box-shadow:none}

/* --- 页面顶部操作栏链接 --- */
.pd-top-link{font-size:13px;color:var(--primary);text-decoration:underline;cursor:pointer;white-space:nowrap;margin-right:4px}
.pd-top-link:hover{color:var(--primary-hover)}

/* --- 顶部右侧操作栏 (新版) --- */
.scene-top-right{display:flex;align-items:center;gap:10px;margin-left:auto}
.nav-points-oval{display:inline-flex;align-items:center;background:#fff;border:1px solid #E5E7EB;border-radius:20px;padding:5px 12px;font-size:13px;cursor:pointer;transition:all .2s}
.nav-points-oval:hover{border-color:var(--primary);box-shadow:0 2px 8px rgba(119,51,248,0.1)}
.npo-left,.npo-right{color:var(--text-primary);padding:0 4px;text-decoration:underline;font-size:13px;transition:color .2s}
.npo-left:hover,.npo-right:hover{color:var(--primary)}
.npo-divider{color:var(--border-light);padding:0 2px}
.nav-bell-hand{width:22px;height:22px;color:#333;cursor:pointer;transition:color .2s;stroke:#333;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none;position:relative}
.nav-bell-hand:hover{color:var(--primary)}
/* 铃铛红点 */
.bell-badge{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:#E24A5A;border-radius:50%;border:1px solid #fff}
.nav-login-gradient{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#0891b2,#10b981);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .2s}
.nav-login-gradient:hover{opacity:0.85}

/* --- 通知弹窗 --- */
.notification-modal-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;z-index:200;backdrop-filter:blur(4px)}
.notification-modal{background:#fff;border-radius:16px;width:360px;max-width:90vw;overflow:hidden;box-shadow:0 12px 48px rgba(0,0,0,0.15)}
.notification-modal-header{text-align:center;font-size:18px;font-weight:600;color:var(--text-primary);padding:24px 0 16px;border-bottom:1px solid var(--border-light)}
.notification-modal-body{padding:0 24px;text-align:left;color:var(--text-muted);font-size:14px;max-height:360px;overflow-y:auto}
.notify-loading,.notify-empty{padding:32px 0;text-align:center;color:var(--text-muted)}
.notify-list{display:flex;flex-direction:column}
.notify-item{padding:16px 0;border-bottom:1px solid var(--border-light)}
.notify-item:last-child{border-bottom:none}
.notify-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.notify-item-title{font-size:14px;font-weight:600;color:var(--text-primary)}
.notify-item-time{font-size:11px;color:var(--text-muted);white-space:nowrap;margin-left:12px}
.notify-item-content{font-size:13px;color:var(--text-secondary);line-height:1.5}
.notification-modal-footer{display:flex;justify-content:center;padding:16px 24px 24px}
.notification-modal-footer button{padding:10px 40px;border-radius:20px;border:none;background:var(--primary-light);color:var(--primary);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s}
.notification-modal-footer button:hover{background:#e9e4f5}

/* --- 侧边栏遮罩 (移动端) --- */
.sidebar-overlay{display:none}

/* --- 内容区域 --- */
.content-area{flex:1;min-width:0;overflow-y:auto;background:#F5F5F5;margin-left:256px;padding:24px 40px 40px}

/* --- 页面内导航栏 --- */
.inner-nav{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--bg-white);border-bottom:1px solid var(--border-light)}
.inner-nav .hamburger{display:none;font-size:22px;cursor:pointer;background:none;border:none;color:var(--text-primary);padding:4px}
.inner-nav-right{display:flex;align-items:center;gap:16px}
.inner-nav-right .nav-link{font-size:13px}

/* --- 顶部右侧操作栏 (统一) --- */
.scene-top-bar{display:flex;justify-content:flex-end;align-items:center;padding:0 0 16px;height:52px;box-sizing:border-box;width:100%}
.scene-top-right{display:flex;align-items:center;gap:12px;margin-left:auto}
.nav-free-points{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:24px;background:linear-gradient(90deg,#FF6B6B,#FF8E8E);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s;box-shadow:0 2px 8px rgba(255,107,107,0.25);white-space:nowrap}
.nav-free-points:hover{opacity:.9}
.nav-recharge{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:24px;border:1px solid #E5E7EB;background:#fff;color:#6B7280;font-size:14px;cursor:pointer;transition:all .2s;white-space:nowrap}
.nav-recharge:hover{border-color:#7733F8;color:#7733F8}
.nav-bell{width:40px;height:40px;border-radius:50%;border:1px solid #E5E7EB;background:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;transition:all .2s;line-height:1}
.nav-bell:hover{border-color:#7733F8;color:#7733F8;transform:scale(1.05)}
.nav-user-circle{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#7733F8,#9B6DF8);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .2s;flex-shrink:0}
.nav-user-circle:hover{opacity:.85}
.nav-login-circle{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#7733F8,#9B6DF8);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .2s;box-shadow:0 2px 8px rgba(119,51,248,0.25);flex-shrink:0}
.nav-login-circle:hover{opacity:.85}
.nav-bell,.nav-user-circle,.nav-login-circle{position:relative;overflow:hidden}

/* --- 正文卡片 (统一) --- */
.main-card{background:#fff;border-radius:8px;box-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1);overflow:hidden;min-height:calc(100vh - 52px - 24px - 16px - 40px)}

/* ========== SHARED STEPPER ========== */
.stepper-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.08),0 1px 2px rgba(0,0,0,0.06);padding:14px 40px;margin-bottom:20px}
.stepper{display:grid;grid-template-columns:repeat(5,1fr);position:relative;align-items:center}
.stepper::before{content:'';position:absolute;top:14px;left:40px;right:40px;height:2px;background:#E5E7EB;z-index:0}
.step-item{display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;z-index:1;padding:0 4px}
.step-circle{width:28px;height:28px;border-radius:50%;background:#E5E7EB;color:#9CA3AF;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;margin-bottom:10px;transition:all .3s;position:relative;z-index:2}
.step-item.active .step-circle{background:#5656FB;color:#fff}
.step-label{font-size:14px;font-weight:600;color:#9CA3AF;transition:color .3s}
.step-item.active .step-label{color:#020817}
.step-desc{display:none}
/* Active step glow ring */
.step-item.active::before{content:'';position:absolute;top:0;width:28px;height:28px;border-radius:50%;box-shadow:0 0 0 3px rgba(86,86,251,0.3);z-index:0}
.step-item.done .step-circle{background:#22c55e;color:#fff}
.step-item.done::before{box-shadow:0 0 0 3px rgba(34,197,94,0.3)}
@media(max-width:900px){.stepper-card{padding:10px 20px}}

/* =================================================================
   5. Toast 消息提示
   ================================================================= */
.toast{position:fixed;top:80px;left:50%;transform:translateX(-50%);z-index:300;padding:12px 28px;border-radius:var(--radius-md);font-size:14px;color:#fff;box-shadow:var(--shadow-md);animation:toastIn .3s cubic-bezier(.4,0,.2,1)}
.toast.success{background:#52c41a}
.toast.error{background:#e24a5a}
.toast.warn{background:#faad14}
@keyframes toastIn{from{opacity:0;transform:translateX(-50%) translateY(-12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* =================================================================
   6. Modal 弹窗
   ================================================================= */
.modal-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:200;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.modal{background:var(--bg-white);border-radius:16px;padding:36px;min-width:380px;max-width:90vw;box-shadow:0 12px 48px rgba(0,0,0,.15);position:relative}
.modal h3{font-size:20px;font-weight:600;margin-bottom:24px;text-align:center;color:var(--text-primary)}
.modal .close-btn{position:absolute;top:16px;right:16px;font-size:22px;color:var(--text-muted);cursor:pointer;background:none;border:none;transition:color .2s}
.modal .close-btn:hover{color:var(--text-primary)}

/* --- 积分消耗确认弹窗 --- */
.point-cost-modal{text-align:center}
.point-cost-modal .pcm-icon{font-size:48px;margin-bottom:12px}
.point-cost-modal .pcm-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:6px}
.point-cost-modal .pcm-cost{font-size:14px;color:var(--text-muted);margin-bottom:20px}
.point-cost-modal .pcm-btns{display:flex;gap:12px;justify-content:center}
.point-cost-modal .pcm-btn{padding:10px 28px;border-radius:20px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}
.point-cost-modal .pcm-btn.cancel{background:var(--bg-gray);color:var(--text-secondary)}
.point-cost-modal .pcm-btn.cancel:hover{background:#e8e8e8}
.point-cost-modal .pcm-btn.confirm{background:var(--gradient-subtle);color:#fff}
.point-cost-modal .pcm-btn.confirm:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(119,51,248,0.35)}

/* --- 登录弹窗（微信扫码 / 短信验证码） --- */
.login-modal-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:none;align-items:center;justify-content:center;z-index:200;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.login-modal-card{background:#fff;border-radius:20px;width:780px;max-width:96vw;box-shadow:0 12px 48px rgba(0,0,0,.15);position:relative;overflow:hidden;padding:0;min-height:384px;display:flex;flex-direction:row}
.login-modal-left{flex:0 0 340px;padding:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at center, #ffffff 0%, #f0ebfd 60%, #e8e6fc 100%)}
.login-modal-left-img{width:100%;height:100%;object-fit:cover;display:block}
.login-modal-right{flex:1;padding:0;display:flex;flex-direction:column;position:relative}
.login-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px 10px}
.login-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:10px}
.login-modal-brand{display:flex;align-items:center;gap:8px}
.login-modal-brand-logo{height:44px;width:auto;object-fit:contain;flex-shrink:0}
.login-modal-name{font-size:20px;font-weight:700;color:var(--text-primary);letter-spacing:.5px}
.login-modal-close{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:50%;border:none;background:transparent;font-size:22px;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;z-index:10}
.login-modal-close:hover{background:var(--bg-gray);color:var(--text-primary)}
.login-modal-body{flex:1;display:flex;flex-direction:column;min-height:0;padding:0 24px 12px}
.login-modal-title{font-size:18px;font-weight:600;color:var(--text-primary);text-align:center;margin-bottom:18px}
.login-modal-panel{flex:1;display:flex;flex-direction:column;align-items:center}
.login-modal-title-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:24px}
.login-modal-title-row .login-modal-title{margin-bottom:0}
.login-modal-wechat-icon-img{width:28px;height:28px;object-fit:contain;flex-shrink:0;background:#fff;border-radius:50%;padding:3px}
.login-modal-switch-icon{width:20px;height:20px;object-fit:contain;vertical-align:middle;margin-right:4px;background:#fff;border-radius:50%;padding:2px}
.login-modal-subtitle{font-size:13px;color:var(--text-muted);text-align:center;margin-bottom:22px;line-height:1.5}
.login-modal-qr-wrap{width:210px;height:210px;border-radius:12px;border:1px solid var(--border-light);background:var(--bg-gray);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;margin:0 auto 18px}
.login-modal-qr-img{width:200px;height:200px;object-fit:contain;background:#fff;display:block}
.login-modal-qr-loading{font-size:13px;color:var(--text-muted);text-align:center;padding:0 16px;line-height:1.6}
.login-modal-qr-expired{position:absolute;inset:0;background:rgba(255,255,255,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:13px;color:var(--text-muted);text-align:center;line-height:1.8}
.login-modal-qr-expired a{color:var(--primary);font-weight:600;cursor:pointer}
.login-modal-qr-expired a:hover{color:var(--primary-hover)}
.login-modal-qr-placeholder{position:absolute;inset:0;background:rgba(255,255,255,.95);display:flex;align-items:center;justify-content:center}
.login-modal-qr-placeholder .login-modal-wechat-icon-img{width:64px;height:64px;background:#fff;border-radius:50%;padding:8px}
.login-modal-tip{font-size:13px;color:var(--text-muted);text-align:center;margin-bottom:18px}
.login-modal-switch-link{font-size:13px;color:var(--primary);cursor:pointer;transition:color .2s;text-align:center;display:flex;align-items:center;justify-content:center;gap:4px;margin-top:16px}
.login-modal-switch-link:hover{color:var(--primary-hover)}
.login-modal-form{width:100%;display:flex;flex-direction:column;gap:14px;margin-top:4px}
.login-modal-row{display:flex;align-items:center;gap:12px}
.login-modal-label{font-size:14px;font-weight:500;color:var(--text-primary);flex-shrink:0;white-space:nowrap;min-width:56px}
.login-modal-row .login-modal-input{flex:1;min-width:0}
.login-modal-input{height:46px;padding:0 16px;font-size:14px;color:var(--text-primary);background:#fff;border:1px solid var(--border-light);border-radius:10px;outline:none;transition:border .2s,box-shadow .2s;box-sizing:border-box}
.login-modal-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(119,51,248,.08);background:#fff}
.login-modal-send-btn{flex:0 0 auto;height:46px;padding:0 16px;font-size:13px;font-weight:500;color:var(--text-muted);background:#F0F0F0;border:none;border-radius:10px;cursor:pointer;transition:all .2s;white-space:nowrap}
.login-modal-send-btn:hover:not(:disabled){background:#e5e5e5}
.login-modal-send-btn:disabled{background:#F0F0F0;color:#c0c0c0;cursor:not-allowed}
.login-modal-submit{width:100%;height:48px;margin-top:10px;font-size:15px;font-weight:600;color:var(--primary);background:transparent;border:1.5px solid var(--primary);border-radius:10px;cursor:pointer;transition:all .2s}
.login-modal-submit.active{color:#fff;background:var(--gradient-subtle);border-color:transparent;box-shadow:0 4px 14px rgba(119,51,248,.25)}
.login-modal-submit.active:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px rgba(119,51,248,.35)}
.login-modal-submit:disabled{cursor:not-allowed}
.login-modal-submit:disabled:not(.active){color:#ccc;border-color:#e0e0e0}
.login-modal-error{color:#e24a5a;font-size:12px;text-align:center;min-height:16px;margin-top:10px}
.login-modal-footer{margin:0;padding:10px 24px 14px;border-top:1px solid var(--border-light);text-align:center;background:#fff;border-radius:0 0 0 0}
.login-modal-footer p{font-size:12px;color:var(--text-muted);line-height:1.6}
.login-modal-footer a{color:var(--primary)}
.login-modal-footer a:hover{color:var(--primary-hover);text-decoration:underline}

/* 移动端适配 */
@media(max-width:768px){
  .login-modal-card{width:92vw;flex-direction:column;min-height:auto;padding:0}
  .login-modal-left{flex:0 0 auto;height:180px}
  .login-modal-left-img{object-fit:contain}
  .login-modal-right{padding:16px 20px}
  .login-modal-qr-wrap{width:180px;height:180px}
  .login-modal-qr-img{width:172px;height:172px}
}

/* =================================================================
   7. Loading / Spinner 加载动画
   ================================================================= */
.loading{text-align:center;padding:48px;color:var(--text-muted)}
.spinner{display:inline-block;width:36px;height:36px;border:3px solid var(--border-light);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* =================================================================
   8. 场景分析公共样式 (Scene Layout & Form)
   ================================================================= */

/* --- 场景分析两栏布局 (tools.html / scene.html) --- */
.scene-layout{display:flex;gap:40px;max-width:960px;margin:40px auto;padding:32px;background:var(--bg-white);border-radius:16px;box-shadow:0 1px 4px rgba(0,0,0,0.04);min-height:calc(100vh - 140px)}
.scene-layout-v2{display:flex;gap:40px;max-width:960px;margin:40px auto;padding:32px;background:var(--bg-white);border-radius:16px;box-shadow:0 1px 4px rgba(0,0,0,0.04);min-height:calc(100vh - 140px)}
.scene-left{flex:1;min-width:0;max-width:500px;overflow-y:auto}
.scene-left::-webkit-scrollbar{width:4px}
.scene-left::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}
.scene-right{width:380px;flex-shrink:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px}
.scene-right::-webkit-scrollbar{width:4px}
.scene-right::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}
/* scene-layout-v2 的 right 区域用 flex:1 */
.scene-layout-v2 .scene-right{width:auto;flex:1;min-width:0;max-width:380px;gap:20px}

/* --- 场景表单样式 --- */
.sf-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:14px 18px;background:var(--bg-white);border-radius:14px;border:1px solid var(--border-light);box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.sf-header-icon{font-size:24px;line-height:1}
.sf-header-title{font-size:17px;font-weight:700;color:var(--text-primary)}
.sf-section{background:var(--bg-white);border-radius:14px;padding:18px;margin-bottom:12px;border:1px solid var(--border-light);box-shadow:0 1px 3px rgba(0,0,0,0.03)}
.sf-section-title{font-size:14px;font-weight:700;color:var(--text-primary);margin-bottom:12px}
.sf-section-hint{font-size:12px;color:var(--text-muted);margin-bottom:10px;line-height:1.5}
.sf-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.sf-row:last-of-type{margin-bottom:0}
.sf-label{font-size:13px;font-weight:500;color:var(--text-primary);min-width:48px;flex-shrink:0;white-space:nowrap}
.sf-label-wide{min-width:64px}
.sf-required{color:#e24a5a}
.sf-input{flex:1;height:38px;background:#F5F7FA;border:1px solid transparent;border-radius:10px;padding:0 14px;font-size:13px;color:var(--text-primary);outline:none;transition:border .2s,box-shadow .2s}
.sf-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(119,51,248,0.08);background:#fff}
.sf-upload{border:2px dashed var(--border-light);border-radius:14px;padding:28px 24px;text-align:center;cursor:pointer;transition:all .2s;background:#FAFBFD}
.sf-upload:hover{border-color:var(--primary);background:var(--primary-light)}
.sf-upload.disabled{opacity:0.4;cursor:not-allowed}
.sf-upload-icon{font-size:28px;color:#c4c2cb;display:block;margin-bottom:6px;transition:color .2s}
.sf-upload:hover .sf-upload-icon{color:var(--primary)}
.sf-upload-text{font-size:13px;color:var(--text-secondary)}
.sf-file-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.sf-file-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#f5f7fa;border-radius:10px;font-size:12px;transition:background .2s}
.sf-file-item:hover{background:#edf0f5}
.sf-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}
.sf-file-size{color:var(--text-muted);flex-shrink:0}
.sf-file-remove{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:pointer;flex-shrink:0;font-size:12px;border-radius:50%;transition:all .2s}
.sf-file-remove:hover{color:#fff;background:#e24a5a}
.sf-radio-group{display:flex;gap:20px}
.sf-radio{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);cursor:pointer;padding:6px 14px;border-radius:10px;border:1px solid transparent;transition:all .2s}
.sf-radio:hover{border-color:var(--border-light);background:#fafbfd}
.sf-radio-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--border-light);display:inline-block;transition:all .2s;flex-shrink:0}
.sf-radio.active .sf-radio-dot{border-color:var(--primary);background:var(--primary);box-shadow:inset 0 0 0 3px #fff}
.sf-radio.active{color:var(--primary);font-weight:600;border-color:var(--primary);background:var(--primary-light)}
.sf-submit-btn{display:block;width:100%;padding:14px 0;font-size:15px;font-weight:700;color:#fff;background:var(--gradient-subtle);border:none;border-radius:14px;cursor:pointer;transition:all .25s;box-shadow:0 4px 14px rgba(119,51,248,0.3);margin-top:4px;letter-spacing:0.5px}
.sf-submit-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(119,51,248,0.4)}
.sf-submit-btn:active{transform:translateY(0)}
.sf-submit-btn:disabled{background:#c4c2cb;box-shadow:none;cursor:not-allowed;transform:none}

/* --- 场景右侧 Banner 卡片 (scene.html) --- */
.scene-banner-card{display:flex;align-items:center;gap:18px;padding:24px;background:var(--bg-white);border:2px solid var(--border-light);border-radius:16px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.scene-banner-card:hover{border-color:var(--primary);box-shadow:0 4px 16px rgba(119,51,248,0.1)}
.scene-banner-card .sbc-gradient{position:absolute;top:-30px;right:-30px;width:120px;height:120px;border-radius:50%;opacity:0.3;pointer-events:none}
.scene-banner-card .sbc-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;position:relative;z-index:1}
.scene-banner-card .sbc-body{flex:1;min-width:0;position:relative;z-index:1}
.scene-banner-card .sbc-title{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:6px}
.scene-banner-card .sbc-desc{font-size:13px;color:var(--text-muted);line-height:1.6}

/* --- 场景右侧子卡片网格 --- */
.scene-sub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.scene-sub-card{display:flex;align-items:center;gap:10px;padding:14px;background:var(--bg-white);border:1px solid var(--border-light);border-radius:12px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.scene-sub-card::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 2px 2px 0;background:var(--primary);opacity:0;transition:opacity .2s}
.scene-sub-card:hover{border-color:var(--primary);box-shadow:0 2px 10px rgba(119,51,248,0.08);transform:translateX(2px)}
.scene-sub-card:hover::before{opacity:1}
.scene-sub-card.active{border-color:var(--primary);background:var(--primary-light);box-shadow:0 2px 10px rgba(119,51,248,0.12)}
.scene-sub-card.active::before{opacity:1}
.scene-sub-card .ssc-icon-wrap{width:34px;height:34px;flex-shrink:0;transition:transform .2s}
.scene-sub-card:hover .ssc-icon-wrap{transform:scale(1.05)}
.scene-sub-card .ssc-body{flex:1;min-width:0}
.scene-sub-card .ssc-title{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:2px}
.scene-sub-card.active .ssc-title{color:var(--primary)}
.scene-sub-card .ssc-desc{font-size:11px;color:var(--text-muted);line-height:1.5;word-break:break-word}

/* =================================================================
   9. 工具卡片样式 (Tools)
   ================================================================= */

/* --- 工具分组折叠面板 --- */
.tool-group{border:1px solid var(--border-light);border-radius:12px;overflow:hidden;background:var(--bg-white)}
.tool-group-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;user-select:none;transition:background .2s;font-size:14px;font-weight:600;color:var(--text-primary)}
.tool-group-header:hover{background:#fafbfd}
.tool-group-body{display:flex;flex-direction:column;gap:6px;padding:0 12px 12px}

/* --- 工具选择卡片 --- */
.tool-select-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:all .2s;border:1px solid transparent}
.tool-select-card:hover{border-color:var(--primary);background:var(--primary-light);box-shadow:0 2px 8px rgba(119,51,248,0.06)}
.tool-select-card.active{border-color:var(--primary);background:var(--primary-light);box-shadow:0 2px 10px rgba(119,51,248,0.1)}
.tool-select-card .tsc-icon{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;transition:transform .2s;color:#fff}
.tool-select-card:hover .tsc-icon{transform:scale(1.05)}
.tool-select-card .tsc-body{flex:1;min-width:0}
.tool-select-card .tsc-name{font-size:13px;font-weight:600;color:var(--text-primary)}
.tool-select-card.active .tsc-name{color:var(--primary)}
.tool-select-card .tsc-desc{font-size:11px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}

/* --- 多文件网格卡片 --- */
.ts-file-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}
.ts-file-card{background:#F5F7FA;border-radius:12px;padding:10px;text-align:center;position:relative;border:1px solid var(--border-light);transition:all .2s}
.ts-file-card:hover{border-color:var(--primary);box-shadow:0 2px 8px rgba(119,51,248,0.08)}
.ts-file-thumb{width:100%;height:120px;object-fit:cover;border-radius:8px;margin-bottom:8px;background:#e8e8e8}
.ts-file-thumb-pdf{display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--primary);background:var(--primary-light)}
.ts-file-actions{display:flex;gap:4px;justify-content:center;margin-bottom:6px}
.ts-file-actions button{width:26px;height:26px;border-radius:6px;border:1px solid var(--border-light);background:var(--bg-white);cursor:pointer;font-size:12px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0}
.ts-file-actions button:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-light)}
.ts-file-actions button:disabled{opacity:0.3;cursor:not-allowed}
.ts-file-name{font-size:11px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}

/* --- 使用说明卡片 --- */
.ts-info-card{background:var(--bg-white);border-radius:14px;padding:18px;border:1px solid var(--border-light);box-shadow:0 1px 3px rgba(0,0,0,0.03)}
.ts-info-title{font-size:15px;font-weight:700;color:var(--text-primary);margin-bottom:12px}
.ts-info-text{font-size:13px;color:var(--text-secondary);line-height:1.8}
.ts-info-text div{margin-bottom:2px}

/* =================================================================
   10. 文件类型颜色类 (Tool File Colors)
   ================================================================= */
.tool-file-color-pdf{background:#7c3aed}
.tool-file-color-word{background:#2563eb}
.tool-file-color-excel{background:#16a34a}
.tool-file-color-ppt{background:#dc2626}
.tool-file-color-img{background:#0891b2}

/* =================================================================
   11. 响应式布局 (Responsive)
   ================================================================= */

/* --- 1024px 断点 --- */
@media(max-width:1024px){
  .nav-links{gap:20px}
  .nav-links .btn-nav{padding:6px 16px;font-size:12px}
}

/* --- 900px 断点: 侧边栏收缩为图标列 --- */
@media(max-width:900px){
  .sidebar{width:60px;min-width:60px}
  .sidebar .s-label,
  .sidebar .s-arrow,
  .sidebar .sidebar-separator,
  .sidebar .sidebar-section-title,
  .sidebar .sidebar-sub{display:none!important}
  .sidebar .sidebar-item{justify-content:center;padding:11px 0;border-left:none}
  .sidebar .sidebar-item.active{border-left:none}
  .sidebar .sidebar-item .s-icon{font-size:18px;width:auto}
  .sidebar .sidebar-point-card{padding:8px 4px;text-align:center}
  .sidebar .spc-header,
  .sidebar .spc-detail-row,
  .sidebar .spc-buy-btn,
  .sidebar .spc-deco{display:none!important}
  .sidebar .spc-total{font-size:14px;margin-bottom:0}
  .sidebar .sidebar-logo{justify-content:center;padding:0 8px}
  .sidebar .sidebar-logo .logo-img{height:32px;max-width:44px}
  .content-area{margin-left:60px}
  /* 手动展开覆盖 */
  .sidebar.sidebar-expanded{width:256px!important;min-width:256px!important}
  .sidebar.sidebar-expanded .s-label,
  .sidebar.sidebar-expanded .s-arrow,
  .sidebar.sidebar-expanded .sidebar-separator,
  .sidebar.sidebar-expanded .sidebar-section-title,
  .sidebar.sidebar-expanded .sidebar-sub{display:flex!important}
  .sidebar.sidebar-expanded .sidebar-item{justify-content:flex-start;padding:11px 16px;border-left:3px solid transparent}
  .sidebar.sidebar-expanded .sidebar-point-card{padding:12px;text-align:left}
  .sidebar.sidebar-expanded .spc-header,
  .sidebar.sidebar-expanded .spc-detail-row,
  .sidebar.sidebar-expanded .spc-buy-btn,
  .sidebar.sidebar-expanded .spc-deco{display:flex!important}
  .sidebar.sidebar-expanded .spc-total{font-size:24px}
  .sidebar.sidebar-expanded .sidebar-logo{justify-content:flex-start;padding:0 16px 0 19px}
  .sidebar.sidebar-expanded .sidebar-logo .logo-img{height:45px;max-width:190px}
  .sidebar.sidebar-expanded~.content-area{margin-left:256px}
}

/* --- 768px 断点 (移动端抽屉) --- */
@media(max-width:768px){
  /* 侧边栏移动端 (抽屉式) — 覆盖 900px 收缩 */
  .sidebar{width:256px;min-width:256px;position:fixed;top:60px;left:0;bottom:0;z-index:90;transform:translateX(-100%);transition:transform .3s}
  .sidebar.open{transform:translateX(0)}
  .sidebar .s-label,
  .sidebar .s-arrow,
  .sidebar .sidebar-separator,
  .sidebar .sidebar-section-title,
  .sidebar .sidebar-sub{display:flex!important}
  .sidebar .sidebar-item{justify-content:flex-start;padding:11px 16px;border-left:3px solid transparent}
  .sidebar .sidebar-point-card{padding:12px;text-align:left}
  .sidebar .spc-header,
  .sidebar .spc-detail-row,
  .sidebar .spc-buy-btn,
  .sidebar .spc-deco{display:flex!important}
  .sidebar .spc-total{font-size:24px}
  .sidebar .sidebar-logo{justify-content:flex-start;padding:0 16px 0 19px}
  .sidebar .sidebar-logo .logo-img{height:45px;max-width:190px}
  .sidebar-overlay{display:block;position:fixed;top:60px;left:0;right:0;bottom:0;background:rgba(0,0,0,0.4);z-index:85}
  .content-area{margin-left:0}
  /* 导航栏移动端适配 */
  .nav-inner{height:56px}
  .nav-logo .logo-text{font-size:18px}
  .nav-logo .logo-domain{display:none}
  .nav-toggle{display:flex}
  .nav-links{position:fixed;top:56px;left:0;right:0;background:rgba(255,255,255,0.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);flex-direction:column;align-items:stretch;gap:0;padding:8px 0;border-bottom:1px solid var(--border-light);box-shadow:0 4px 16px rgba(0,0,0,0.08);transform:translateY(-8px);opacity:0;pointer-events:none;transition:all .25s}
  .nav-links.mobile-open{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav-links .nav-link{padding:14px 24px;font-size:15px;border-bottom:1px solid var(--border-light)}
  .nav-links .nav-link::after{display:none}
  .nav-links .user-info{padding:12px 24px;border-bottom:1px solid var(--border-light)}
  .nav-links .user-avatar{width:40px;height:40px;font-size:15px}
  .nav-links .btn-nav{margin:8px 20px;text-align:center;justify-content:center;padding:12px 0;font-size:14px;border-radius:var(--radius-md)}

  /* 页面内导航栏移动端 */
  .inner-nav{padding:0 12px}
  .inner-nav .hamburger{display:block}
  .inner-nav-right{gap:8px}
  .inner-nav-right .nav-link{font-size:12px}
  .inner-nav-right .user-avatar{width:32px;height:32px;font-size:12px}
  .inner-nav-right .btn-login{padding:6px 14px;font-size:12px}

  /* 场景布局移动端 */
  .scene-layout{flex-direction:column;padding:16px;gap:16px;max-width:100%;margin:16px;border-radius:12px;min-height:auto}
  .scene-layout-v2{flex-direction:column;padding:16px;gap:16px;max-width:100%;margin:16px;border-radius:12px;min-height:auto}
  .scene-left{flex:1 1 auto;max-width:100%}
  .scene-right{width:100%;flex:1 1 auto}
  .scene-layout-v2 .scene-right{flex:1 1 auto;max-width:100%}
  .sf-row{flex-direction:column;align-items:stretch;gap:4px}
  .sf-label{min-width:auto}
  .sf-input{width:100%}

  /* 工具文件网格移动端 */
  .ts-file-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .ts-file-card{padding:8px}
  .ts-file-thumb{width:100%;height:100px}
  .ts-file-actions button{width:22px;height:22px;font-size:10px}
  .ts-file-name{font-size:10px}
  .ts-info-card{padding:12px}
  .ts-info-title{font-size:13px}
  .ts-info-text{font-size:12px}

  /* 场景子卡片移动端 */
  .scene-sub-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .scene-sub-card{padding:10px;gap:8px}
  .scene-sub-card .ssc-icon-wrap{width:28px;height:28px}
  .scene-sub-card .ssc-title{font-size:12px}
  .scene-sub-card .ssc-desc{font-size:10px}
  .scene-banner-card{padding:16px;gap:12px}
  .scene-banner-card .sbc-icon{width:44px;height:44px;font-size:22px;border-radius:12px}
  .scene-banner-card .sbc-title{font-size:15px}
  .scene-banner-card .sbc-desc{font-size:12px}

  /* Toast 移动端 */
  .toast{top:70px;padding:10px 20px;font-size:13px;max-width:calc(100% - 32px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  /* Modal 移动端 */
  .modal{min-width:auto;width:calc(100% - 32px);padding:28px 20px;border-radius:14px}
  .modal h3{font-size:18px;margin-bottom:18px}
  .point-cost-modal .pcm-icon{font-size:40px;margin-bottom:10px}
  .point-cost-modal .pcm-title{font-size:16px}
  .point-cost-modal .pcm-cost{font-size:13px;margin-bottom:16px}
  .point-cost-modal .pcm-btn{padding:12px 24px;font-size:14px}
  .point-cost-modal .pcm-btns{gap:10px}

  /* Loading 移动端 */
  .loading{padding:32px}
  .spinner{width:28px;height:28px;border-width:2px}
}

/* --- 600px 断点 (小屏手机) --- */
@media(max-width:600px){
  .scene-sub-grid{grid-template-columns:1fr}
}

/* ========== UNIFIED PAGE FOOTER ========== */
.page-footer{text-align:center;padding:56px 24px 40px;background:linear-gradient(180deg,#141414,#1a1a2e);color:rgba(255,255,255,0.7);font-size:13px;line-height:1.8;margin-top:auto}
.page-footer a{color:rgba(255,255,255,0.6);margin:0 10px;transition:color .2s}
.page-footer a:hover{color:rgba(255,255,255,0.9)}
.page-footer .footer-brand{font-size:20px;font-weight:700;color:#fff;margin-bottom:8px}
.page-footer .footer-qr-row{display:flex;justify-content:center;gap:24px;margin-top:12px}
.page-footer .footer-qr-item{text-align:center}
.page-footer .footer-qr-item img,.page-footer .footer-qr-placeholder{width:80px;height:80px;border-radius:8px}
.page-footer .footer-qr-placeholder{background:rgba(255,255,255,0.08);border:1px dashed rgba(255,255,255,0.15);display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:rgba(255,255,255,0.3)}
.page-footer .footer-qr-item p{font-size:11px;color:rgba(255,255,255,0.5);margin-top:4px}

/* Footer mobile */
@media(max-width:480px){
  .page-footer{padding:40px 16px 32px;font-size:12px}
  .page-footer a{margin:0 6px}
  .page-footer .footer-brand{font-size:18px}
  .page-footer .footer-qr-row{gap:16px}
  .page-footer .footer-qr-item img,.page-footer .footer-qr-placeholder{width:64px;height:64px}
}
