/* === 设置与权限 === */
.st-wrap{display:flex;gap:0;min-height:0}
.st-side{width:200px;flex-shrink:0;background:#fff;border:1px solid var(--line);border-radius:8px 0 0 8px;padding:16px 0;display:flex;flex-direction:column;gap:2px}
.st-side-btn{display:flex;align-items:center;gap:10px;padding:11px 20px;border:0;background:none;cursor:pointer;font:13px 'Noto Sans SC';color:var(--muted);text-align:left;width:100%;border-left:3px solid transparent;transition:.15s}
.st-side-btn:hover{background:#f0f4fa;color:var(--ink)}
.st-side-btn.active{background:#e8f0fc;color:var(--orange);font-weight:600;border-left-color:var(--orange)}
.st-side-btn span{font-size:16px;width:20px;text-align:center}
.st-main{flex:1;background:#fff;border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;padding:28px 32px;overflow:visible;max-height:none}
.st-tab{display:none}
.st-tab.active{display:block}
.st-section{margin-bottom:28px}
.st-section-title{font-size:15px;font-weight:600;margin:0 0 4px}
.st-section-desc{font-size:12px;color:var(--muted);margin:0 0 16px}
.st-divider{border:0;border-top:1px solid var(--line);margin:24px 0}
.st-form-row{display:flex;gap:16px;margin-bottom:14px}
.st-form-group{flex:1;display:flex;flex-direction:column;gap:5px}
.st-form-group label{font-size:11px;color:var(--muted);font-weight:500}
.st-input{border:1px solid var(--line);border-radius:4px;padding:9px 12px;font:13px 'Noto Sans SC';outline:none;transition:.15s;background:#fff}
.st-input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(59,125,216,.1)}
.st-select{border:1px solid var(--line);border-radius:4px;padding:9px 12px;font:13px 'Noto Sans SC';outline:none;background:#fff;cursor:pointer}
.st-select:focus{border-color:var(--orange)}
.st-btn{border:0;border-radius:4px;padding:9px 18px;font:13px 'Noto Sans SC';cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.st-btn-primary{background:var(--orange);color:#fff}
.st-btn-primary:hover{background:#2a6bc6}
.st-btn-outline{background:#fff;border:1px solid var(--line);color:var(--ink)}
.st-btn-outline:hover{border-color:var(--orange);color:var(--orange)}
.st-btn-danger{background:#fff;border:1px solid #e8c4c4;color:#c0392b}
.st-btn-danger:hover{background:#fdf0ef}
.st-btn-sm{padding:6px 12px;font-size:11px}
.st-btn-text{background:transparent;border:0;color:#3b7ab8;cursor:pointer;font:11px 'Noto Sans SC';padding:6px 4px;text-decoration:underline;text-underline-offset:2px}
.st-btn-text:hover{color:#1e3a5f}
.st-toggle-wrap{display:flex;align-items:center;gap:10px}
.st-toggle{position:relative;width:40px;height:22px;background:#e5e7eb;border-radius:11px;cursor:pointer;transition:.2s;flex-shrink:0}
.st-toggle.on{background:var(--orange)}
.st-toggle::after{content:'';position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;top:2px;left:2px;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.st-toggle.on::after{left:20px}
.st-toggle-label{font-size:13px;color:var(--ink)}
.st-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.st-stat-card{background:#f8fafd;border:1px solid var(--line);border-radius:8px;padding:16px;text-align:center}
.st-stat-card .st-stat-val{font:24px 'DM Mono';color:var(--orange);display:block}
.st-stat-card .st-stat-label{font-size:11px;color:var(--muted);margin-top:4px;display:block}
.st-role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:20px}
.st-role-card{background:#f8fafd;border:1px solid var(--line);border-radius:6px;padding:14px;cursor:pointer;transition:.15s}
.st-role-card:hover{border-color:var(--orange);background:#f0f4fa}
.st-role-card h4{font-size:13px;margin:0 0 6px}
.st-role-card p{font-size:11px;color:var(--muted);margin:0;line-height:1.5}
.st-role-badge{display:inline-block;padding:2px 8px;border-radius:10px;font:10px 'DM Mono';margin-bottom:6px}
.st-role-badge.admin{background:#e8f0fc;color:#2a5a8a}
.st-role-badge.manager{background:#e8f6ee;color:#2a7a4a}
.st-role-badge.staff{background:#fef6e8;color:#8a6a2a}
.st-table-wrap{overflow-x:auto}
.st-table{width:100%;border-collapse:collapse}
.st-table th{font:600 11px 'DM Mono';color:var(--muted);text-align:left;padding:10px 12px;border-bottom:2px solid var(--line);letter-spacing:.3px;white-space:nowrap}
.st-table td{padding:10px 12px;border-bottom:1px solid #f0f2f6;font-size:12px;vertical-align:middle}
.st-table tr:hover td{background:#f8fafd}
.st-table .st-avatar{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font:11px 'DM Mono';margin-right:8px;vertical-align:middle}
.st-status{display:inline-flex;align-items:center;gap:4px;font-size:11px}
.st-status::before{content:'';width:6px;height:6px;border-radius:50%}
.st-status.online::before{background:#27ae60}
.st-status.offline::before{background:#bdc3c7}
.st-status.disabled::before{background:#e74c3c}
.st-actions{display:flex;gap:6px}
.st-actions button{border:1px solid var(--line);background:#fff;border-radius:3px;padding:4px 10px;font-size:11px;cursor:pointer;transition:.15s}
.st-actions button:hover{border-color:var(--orange);color:var(--orange)}
.st-actions button.danger:hover{border-color:#e74c3c;color:#e74c3c}
.st-perm-table{width:100%;border-collapse:collapse;font-size:12px}
.st-perm-table th{font:600 10px 'DM Mono';color:var(--muted);padding:8px;text-align:center;background:#f8fafd;border-bottom:1px solid var(--line)}
.st-perm-table th:first-child{text-align:left}
.st-perm-table td{padding:8px;text-align:center;border-bottom:1px solid #f0f2f6}
.st-perm-table td:first-child{text-align:left;font-weight:500}
.st-perm-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--orange);cursor:pointer}
.st-country-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.st-country-card{background:#f8fafd;border:1px solid var(--line);border-radius:6px;padding:14px;display:flex;align-items:center;justify-content:space-between}
.st-country-card .st-cc-left{display:flex;align-items:center;gap:10px}
.st-country-card .st-flag{font-size:22px}
.st-country-card .st-cc-name{font-size:13px;font-weight:500}
.st-country-card .st-cc-time{font-size:10px;color:var(--muted)}
.st-platform-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}
.st-platform-card{background:#f8fafd;border:1px solid var(--line);border-radius:6px;padding:16px;display:flex;align-items:center;justify-content:space-between}
.st-platform-card .st-pc-info{display:flex;align-items:center;gap:10px}
.st-platform-card .st-pc-icon{width:32px;height:32px;border-radius:6px;display:grid;place-items:center;font-size:16px;color:#fff}
.st-platform-card .st-pc-name{font-size:13px;font-weight:500}
.st-alert-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}
.st-alert-check{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8fafd;border:1px solid var(--line);border-radius:4px;cursor:pointer;font-size:12px}
.st-alert-check input{accent-color:var(--orange);width:15px;height:15px}
.st-theme-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}
.st-theme-card{border:2px solid var(--line);border-radius:8px;padding:20px;text-align:center;cursor:pointer;transition:.15s}
.st-theme-card:hover{border-color:#a8b8d0}
.st-theme-card.selected{border-color:var(--orange);background:#f0f4fa}
.st-theme-card .st-theme-preview{width:100%;height:60px;border-radius:4px;margin-bottom:10px}
.st-theme-card h4{font-size:13px;margin:0}
.st-log-filters{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;align-items:center}
.st-log-filters select,.st-log-filters input{border:1px solid var(--line);border-radius:4px;padding:7px 10px;font:12px 'Noto Sans SC';outline:none}
.st-recycle-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:1px solid var(--line);border-radius:6px;margin-bottom:8px;background:#f8fafd}
.st-recycle-item .st-ri-left{display:flex;align-items:center;gap:12px}
.st-recycle-item .st-ri-icon{width:32px;height:32px;border-radius:4px;background:#e8f0fc;display:grid;place-items:center;font-size:15px}
.st-recycle-item .st-ri-name{font-size:13px;font-weight:500}
.st-recycle-item .st-ri-meta{font-size:10px;color:var(--muted)}
.st-recycle-item .st-ri-days{font-size:11px;color:#c0392b}
.st-avatar-upload{display:flex;align-items:center;gap:20px;margin-bottom:20px}
.st-avatar-big{width:64px;height:64px;border-radius:50%;background:var(--orange);display:grid;place-items:center;font:24px 'Playfair Display';color:#fff}
.st-device-list{display:flex;flex-direction:column;gap:8px}
.st-device-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:1px solid var(--line);border-radius:4px;font-size:12px}
.st-device-item .st-dev-info{display:flex;align-items:center;gap:10px}
.st-device-item .st-dev-icon{font-size:18px}
.st-modal-overlay{position:fixed;inset:0;background:rgba(26,35,50,.5);z-index:100;display:flex;align-items:center;justify-content:center}
.st-modal{background:#fff;border-radius:8px;width:480px;max-width:90vw;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.st-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--line)}
.st-modal-header h3{font-size:16px;margin:0}
.st-modal-close{border:0;background:none;font-size:20px;cursor:pointer;color:var(--muted);padding:4px}
.st-modal-body{padding:20px 24px}
.st-modal-footer{padding:14px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}
.st-fav-summary{display:flex;gap:20px;margin-bottom:14px}
.st-fav-stat{font-size:12px;color:var(--muted)}
.st-fav-stat b{color:var(--orange);font:16px 'DM Mono';margin-right:4px}
.st-macro-area{background:#f8fafd;border:1px solid var(--line);border-radius:6px;padding:16px;margin-bottom:16px}
.st-macro-area .st-macro-row{display:flex;align-items:center;justify-content:space-between}
.st-api-grid{display:grid;gap:12px}
.st-api-row{display:flex;align-items:center;gap:12px}
.st-api-row label{width:120px;font-size:12px;font-weight:500;flex-shrink:0}
.st-api-row input{flex:1}
.st-service-status{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:8px;min-width:0}
.st-service-status .health-dot{grid-row:1 / span 2}
.st-service-status b{font-size:12px;line-height:1.35}
.st-service-status small{display:block;color:var(--muted);font-size:10px;line-height:1.45;overflow-wrap:anywhere}
.st-notification-channels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.st-notification-channel{min-width:0;padding:14px;border:1px solid var(--line);border-radius:7px;background:#f8fafd}
.st-notification-channel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.st-notification-channel-head>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.st-notification-channel-head b{font-size:13px;color:var(--ink)}
.st-notification-channel-head small{font-size:10px;color:var(--muted);overflow-wrap:anywhere}
.st-channel-switch{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--ink);white-space:nowrap;cursor:pointer}
.st-channel-switch input{width:15px;height:15px;accent-color:var(--orange)}
.st-channel-state{display:flex;align-items:center;gap:6px;min-height:20px;margin:10px 0;color:var(--muted);font-size:11px}
.st-channel-state .health-dot{flex:0 0 7px}
.st-channel-webhook{box-sizing:border-box;width:100%;margin-bottom:10px;font-size:11px}
.st-channel-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.st-channel-actions .st-btn:disabled,.st-channel-switch input:disabled{opacity:.48;cursor:not-allowed}
.st-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.st-status-item{display:grid;grid-template-columns:108px minmax(0,1fr);align-items:center;gap:14px;min-height:76px;padding:14px 16px;border:1px solid var(--line);border-radius:6px;background:#f8fafd}
.st-status-label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:600}
.st-status-label svg{width:15px;height:15px;stroke-width:1.8}
.st-status-actions{display:flex;justify-content:flex-end;margin-top:12px}
.st-admin-section{background:#fef9f0;border:1px solid #f0dfa0;border-radius:6px;padding:16px;margin-top:20px}
.st-admin-section h4{font-size:13px;color:#8a6a2a;margin:0 0 12px}
.st-freq-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.st-freq-item{display:flex;flex-direction:column;gap:6px}
.st-freq-item label{font-size:11px;color:var(--muted)}
@media(min-width:701px) and (max-width:1000px){
.st-country-grid{grid-template-columns:repeat(3,1fr)}
.st-platform-grid{grid-template-columns:repeat(2,1fr)}
}
.st-empty{text-align:center;padding:40px;color:var(--muted);font-size:13px}
@media(max-width:700px){
.st-wrap{flex-direction:column}
.st-side{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;border-radius:8px 8px 0 0;padding:0}
.st-side-btn{min-width:0;white-space:nowrap;border-left:0;border-bottom:3px solid transparent;padding:11px 4px;gap:4px;justify-content:center;font-size:11px}
.st-side-btn svg{width:17px;height:17px;flex:0 0 17px}
.st-side-btn.active{border-left:0;border-bottom-color:var(--orange)}
.st-main{border-radius:0 0 8px 8px;border-left:1px solid var(--line);border-top:0;padding:18px}
.st-stats-row{grid-template-columns:1fr 1fr}
.st-form-row{flex-direction:column}
.st-country-grid{grid-template-columns:1fr}
.st-theme-cards{grid-template-columns:1fr}
.st-role-grid{grid-template-columns:1fr}
.st-alert-checks{grid-template-columns:1fr}
.st-freq-grid{grid-template-columns:1fr}
.st-status-grid{grid-template-columns:1fr}
.st-status-item{grid-template-columns:96px minmax(0,1fr)}
.st-status-actions{justify-content:stretch}
.st-status-actions .st-btn{width:100%}
.st-notification-channels{grid-template-columns:1fr}
}

/* === 报告生成中心 v2 全面重建 === */
.rp-v2-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:16px;flex-wrap:wrap}
.rp-v2-header-left h2{font:bold 22px 'Playfair Display';margin:0 0 4px}
.rp-v2-header-left .rp-v2-sub{font:12px 'Noto Sans SC';color:var(--muted);margin:0}
.rp-v2-header-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rp-v2-action-btn{padding:7px 16px;border-radius:12px;font:600 11px 'Noto Sans SC';cursor:pointer;border:none;transition:.15s;display:inline-flex;align-items:center;gap:5px}
.rp-v2-action-btn:hover{opacity:.85;transform:translateY(-1px)}
.rp-v2-action-btn.rp-primary{background:var(--green);color:#fff}
.rp-v2-action-btn.rp-orange{background:var(--orange);color:#fff}
.rp-v2-action-btn.rp-outline{background:#fff;border:1px solid var(--line);color:var(--ink)}
.rp-v2-action-btn.rp-danger{background:#fff;border:1px solid #ef4444;color:#ef4444}
/* 报告页 Hero：蓝色渐变 + 日期印章（参考 GEO 诊断报告页）*/
.rp-hero{background:linear-gradient(120deg,#1e3a5f 0%,#3b7ab8 58%,#5fb0e8 100%);border:none;border-radius:16px;padding:22px 26px;box-shadow:0 12px 30px rgba(30,95,174,.22);align-items:center}
.rp-hero .rp-v2-header-left h2{color:#fff;font-size:24px;margin:0}
.rp-hero .rp-v2-sub{color:rgba(255,255,255,.85);margin:6px 0 0}
.rp-hero .rp-hero-top{display:flex;align-items:center;gap:12px}
.rp-hero .rp-hero-date{font:800 13px 'Playfair Display';color:#fff;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:10px;padding:4px 11px;letter-spacing:.5px}
.rp-hero .rp-hero-meta{margin-top:10px;font:12px 'Noto Sans SC';color:rgba(255,255,255,.72)}
.rp-hero .rp-v2-header-right{margin-left:auto}
.rp-hero .rp-v2-action-btn{border:none;font-weight:700}
.rp-hero .rp-v2-action-btn.rp-outline{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.4)}
.rp-hero .rp-v2-action-btn.rp-primary{background:#fff;color:#1e3a5f}
.rp-hero .rp-v2-action-btn.rp-orange{background:#fff;color:#e8833a}
.rp-hero .rp-v2-action-btn.rp-danger{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.4)}
.rp-hero .rp-v2-action-btn:hover{opacity:.92;transform:translateY(-1px)}
.rp-v2-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px}
.rp-v2-stat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px 16px;display:flex;align-items:center;gap:12px}
.rp-v2-stat-icon{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;font-size:18px;flex-shrink:0}
.rp-v2-stat-icon.green{background:rgba(44,95,138,.1);color:var(--green)}
.rp-v2-stat-icon.orange{background:rgba(59,125,216,.1);color:var(--orange)}
.rp-v2-stat-icon.blue{background:rgba(99,102,241,.1);color:#6366f1}
.rp-v2-stat-icon.purple{background:rgba(139,92,246,.1);color:#8b5cf6}
.rp-v2-stat-icon.red{background:rgba(239,68,68,.1);color:#ef4444}
.rp-v2-stat-info{flex:1;min-width:0}
.rp-v2-stat-num{font:bold 22px 'Playfair Display';margin:0;line-height:1.1}
.rp-v2-stat-label{font:10px 'Noto Sans SC';color:var(--muted);margin:2px 0 0}
.rp-v2-workspace{display:grid;grid-template-columns:300px 1fr 320px;gap:16px;min-height:600px}
/* Left: Material Pool */
.rp-v2-pool{background:#fff;border:1px solid var(--line);border-radius:10px;padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 200px);position:sticky;top:80px}
.rp-v2-pool-header{padding:16px 18px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
.rp-v2-pool-header h3{font:bold 14px 'Noto Sans SC';margin:0;display:flex;align-items:center;gap:6px}
.rp-v2-pool-header h3 span{font-size:11px;color:var(--muted);font-weight:400}
.rp-v2-pool-actions{display:flex;gap:4px}
.rp-v2-pool-actions button{background:none;border:none;cursor:pointer;font-size:14px;color:var(--muted);padding:2px 4px;border-radius:3px}
.rp-v2-pool-actions button:hover{background:var(--sage);color:var(--green)}
.rp-v2-pool-filter{padding:8px 14px;border-bottom:1px solid var(--line);display:flex;gap:4px;flex-wrap:wrap}
.rp-v2-pool-tag{padding:3px 8px;border-radius:10px;font:10px 'Noto Sans SC';border:1px solid var(--line);background:#fff;cursor:pointer;transition:.15s;white-space:nowrap}
.rp-v2-pool-tag.active{background:var(--green);color:#fff;border-color:var(--green)}
.rp-v2-pool-tag:hover{border-color:var(--green)}
.rp-v2-pool-body{flex:1;overflow-y:auto;padding:8px 0}
.rp-v2-pool-group{margin-bottom:4px}
.rp-v2-pool-group-header{display:flex;align-items:center;gap:8px;padding:6px 16px;font:bold 10px 'DM Mono';color:var(--muted);text-transform:uppercase;letter-spacing:.8px;cursor:pointer;user-select:none}
.rp-v2-pool-group-header:hover{color:var(--ink)}
.rp-v2-pool-group-header .rp-v2-pool-gcount{font-weight:400;color:#b5b0a8}
.rp-v2-pool-item{display:flex;align-items:flex-start;gap:10px;padding:8px 16px;cursor:pointer;transition:.1s;border-left:3px solid transparent}
.rp-v2-pool-item:hover{background:#f8fafc}
.rp-v2-pool-item.selected{background:#f0f5f3;border-left-color:var(--green)}
.rp-v2-pool-item input[type=checkbox]{margin-top:3px;accent-color:var(--green);width:14px;height:14px;flex-shrink:0}
.rp-v2-pool-item-body{flex:1;min-width:0}
.rp-v2-pool-item-title{font:600 12px 'Noto Sans SC';margin:0 0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-v2-pool-item-meta{font:10px 'DM Mono';color:var(--muted);display:flex;gap:6px;align-items:center}
.rp-v2-pool-item-type{display:inline-block;padding:1px 5px;border-radius:3px;font-size:9px;color:#fff;font-weight:600}
.rp-v2-pool-item-remove{background:none;border:none;cursor:pointer;font-size:12px;color:#ccc;padding:0 2px;flex-shrink:0}
.rp-v2-pool-item-remove:hover{color:#ef4444}
.rp-v2-pool-empty{text-align:center;padding:40px 20px;color:var(--muted)}
.rp-v2-pool-empty .rp-v2-pool-empty-icon{font-size:36px;display:block;margin-bottom:8px;color:#d5d0c8}
.rp-v2-pool-empty p{font-size:13px;margin:4px 0}
.rp-v2-pool-empty small{font-size:11px;color:#98a5b5;display:block;margin-top:4px;line-height:1.6}
/* Center: Generation Wizard */
.rp-v2-center{display:flex;flex-direction:column;gap:16px}
.rp-v2-step-bar{display:flex;align-items:center;gap:0;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 8px;margin-bottom:4px}
.rp-v2-step{flex:1;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;transition:.15s;cursor:default}
.rp-v2-step.active{background:var(--sage)}
.rp-v2-step.done{background:rgba(44,95,138,.08)}
.rp-v2-step-num{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:bold 11px 'DM Mono';background:var(--line);color:var(--muted);flex-shrink:0}
.rp-v2-step.active .rp-v2-step-num{background:var(--green);color:#fff}
.rp-v2-step.done .rp-v2-step-num{background:var(--green);color:#fff}
.rp-v2-step-text{font:12px 'Noto Sans SC';color:var(--muted)}
.rp-v2-step.active .rp-v2-step-text{color:var(--ink);font-weight:600}
.rp-v2-step.done .rp-v2-step-text{color:var(--green)}
.rp-v2-step-arrow{color:#d5d3cc;font-size:12px;margin:0 2px}
.rp-v2-panel{background:#fff;border:1px solid var(--line);border-radius:10px;padding:24px;flex:1}
.rp-v2-panel-title{font:bold 16px 'Noto Sans SC';margin:0 0 4px;display:flex;align-items:center;gap:8px}
.rp-v2-panel-desc{font:12px 'Noto Sans SC';color:var(--muted);margin:0 0 20px}
/* Template Cards */
.rp-v2-tpl-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rp-v2-tpl-card{border:2px solid var(--line);border-radius:8px;padding:16px;cursor:pointer;transition:.2s;position:relative;background:#fff;color:inherit;text-align:left;font:inherit}
.rp-v2-tpl-card:hover{border-color:var(--green);background:#f8fafc}
.rp-v2-tpl-card.selected{border-color:var(--green);background:#f0f5f3}
.rp-v2-tpl-card.selected::after{content:'\2713';position:absolute;top:10px;right:12px;background:var(--green);color:#fff;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px}
.rp-v2-tpl-icon{font-size:24px;margin-bottom:10px}
.rp-v2-tpl-name{font:bold 14px 'Noto Sans SC';margin:0 0 4px}
.rp-v2-tpl-desc{font:11px 'Noto Sans SC';color:var(--muted);margin:0 0 8px;line-height:1.5}
.rp-v2-tpl-tags{display:flex;gap:4px;flex-wrap:wrap}
.rp-v2-tpl-tag{padding:2px 6px;border-radius:3px;font:9px 'DM Mono';background:var(--sage);color:var(--green)}
.rp-v2-tpl-custom{border-style:dashed}
/* AI Config */
.rp-v2-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.rp-v2-config-group{display:flex;flex-direction:column;gap:6px}
.rp-v2-config-group label{font:600 12px 'Noto Sans SC';color:var(--ink)}
.rp-v2-config-group small{font:10px 'Noto Sans SC';color:#98a5b5}
.rp-v2-config-group select,.rp-v2-config-group input[type=text]{padding:8px 12px;border:1px solid var(--line);border-radius:6px;font:12px 'Noto Sans SC';background:#fff;color:var(--ink);transition:.15s}
.rp-v2-config-group select:focus,.rp-v2-config-group input[type=text]:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 2px rgba(44,95,138,.1)}
.rp-v2-config-group textarea{padding:10px 12px;border:1px solid var(--line);border-radius:6px;font:12px 'Noto Sans SC';background:#fff;color:var(--ink);resize:vertical;min-height:70px;transition:.15s}
.rp-v2-config-group textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 2px rgba(44,95,138,.1)}
.rp-v2-data-check{border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin:0 0 14px;background:#fafcfd;font:11px/1.6 'Noto Sans SC';color:var(--muted)}
.rp-v2-data-check.is-blocked{border-color:#f3c6c6;background:#fff7f7;color:#8e3d3d}
.rp-v2-data-check.is-ready{border-color:#b9dec9;background:#f5fbf7;color:#276749}
.rp-v2-data-check strong{color:var(--ink);margin-right:8px}
.rp-v2-data-check ul{display:flex;flex-wrap:wrap;gap:4px 18px;margin:5px 0 0;padding-left:17px}
.rp-v2-publish-status{display:inline-flex;align-items:center;margin-left:8px;padding:2px 7px;border-radius:10px;font:10px 'Noto Sans SC';color:#64748b;background:#f1f5f9;vertical-align:middle}
.rp-v2-publish-status.is-publishable{background:#e8f6ee;color:#23734a}
.rp-v2-publish-status.is-blocked{background:#fff0f0;color:#a23b3b}
.rp-v2-save-status{display:inline-flex;align-items:center;margin-left:5px;padding:2px 7px;border-radius:10px;font:10px 'Noto Sans SC';color:#64748b;background:#f1f5f9;vertical-align:middle}
.rp-v2-save-status.is-saving{background:#fff7e8;color:#9a641d}
.rp-v2-save-status.is-saved{background:#e8f6ee;color:#23734a}
.rp-v2-save-status.is-failed{background:#fff0f0;color:#a23b3b}
.rp-v2-save-status.is-blocked{background:#fff0f0;color:#a23b3b}
.rp-v2-quality-gate{display:none;padding:10px 18px;border-bottom:1px solid var(--line);font:12px 'Noto Sans SC';line-height:1.6}
.rp-v2-quality-gate.is-ready,.rp-v2-quality-gate.is-blocked{display:block}
.rp-v2-quality-gate.is-ready{background:#f1f8f4;color:#23734a}
.rp-v2-quality-gate.is-blocked{background:#fff7ed;color:#8a4b13}
.rp-v2-quality-gate strong{display:block;font-size:12px}
.rp-v2-quality-gate ul{margin:4px 0 0;padding-left:18px}
.rp-v2-content-quality{display:none;padding:9px 18px;border-bottom:1px solid var(--line);font:11px/1.6 'Noto Sans SC';color:var(--muted)}
.rp-v2-content-quality.is-ready{display:block;background:#f5fbf7;color:#276749}
.rp-v2-content-quality.is-blocked{display:block;background:#fff7ed;color:#8a4b13}
.rp-v2-content-quality strong{display:block;color:var(--ink);font-size:12px}
.rp-v2-content-quality span{display:block}
.rp-v2-content-quality ul{margin:4px 0 0;padding-left:18px}
.rp-v2-toggle-row{display:flex;gap:8px;flex-wrap:wrap}
.rp-v2-toggle{padding:6px 14px;border:1px solid var(--line);border-radius:6px;font:11px 'Noto Sans SC';background:#fff;cursor:pointer;transition:.15s}
.rp-v2-toggle.active{background:var(--green);color:#fff;border-color:var(--green)}
.rp-v2-toggle:hover{border-color:var(--green)}
.rp-v2-generate-bar{display:flex;align-items:center;justify-content:space-between;padding-top:16px;border-top:1px solid var(--line);margin-top:8px}
.rp-v2-generate-info{font:11px 'Noto Sans SC';color:var(--muted)}
.rp-v2-generate-info b{color:var(--green)}
.rp-v2-gen-btn{padding:10px 28px;border-radius:8px;font:bold 13px 'Noto Sans SC';border:none;cursor:pointer;transition:.2s;display:inline-flex;align-items:center;gap:6px}
.rp-v2-gen-btn.go{background:var(--green);color:#fff}
.rp-v2-gen-btn.go:hover{background:#2d5a51;transform:translateY(-1px);box-shadow:0 4px 12px rgba(44,95,138,.25)}
.rp-v2-gen-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
/* Report Preview */
.rp-v2-preview-panel{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.rp-v2-preview-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line);background:#fafaf7}
.rp-v2-preview-toolbar-left{display:flex;align-items:center;gap:8px}
.rp-v2-preview-toolbar-left h4{font:bold 13px 'Noto Sans SC';margin:0}
.rp-v2-preview-toolbar-right{display:flex;gap:6px}
.rp-v2-preview-toolbar-right button{padding:5px 12px;border-radius:4px;font:11px 'Noto Sans SC';border:1px solid var(--line);background:#fff;cursor:pointer;transition:.15s}
.rp-v2-preview-toolbar-right button:hover{border-color:var(--green);color:var(--green)}
.rp-v2-preview-toolbar-right button:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.rp-v2-preview-toolbar-right button:disabled:hover{border-color:var(--line);color:inherit}
.rp-v2-preview-body{padding:24px;max-height:600px;overflow-y:auto}
.rp-v2-preview-body.rp-empty-preview{display:flex;align-items:center;justify-content:center;min-height:300px;flex-direction:column;color:var(--muted)}
.rp-v2-preview-body.rp-empty-preview .rp-empty-icon{font-size:40px;color:#d5d0c8;display:block;margin-bottom:10px}
/* Report Content Styles */
.rp-v2-rpt{font:13px/1.8 'Noto Sans SC';color:var(--ink)}
.rp-v2-rpt h2{font:bold 18px 'Playfair Display';margin:24px 0 8px;padding-bottom:6px;border-bottom:2px solid var(--sage)}
.rp-v2-rpt h2:first-child{margin-top:0}
.rp-v2-rpt h3{font:bold 14px 'Noto Sans SC';margin:16px 0 6px;color:var(--green)}
.rp-v2-rpt p{margin:6px 0}
.rp-v2-rpt ul,.rp-v2-rpt ol{margin:8px 0;padding-left:22px}
.rp-v2-rpt li{margin:3px 0}
.rp-v2-rpt table{width:100%;border-collapse:collapse;margin:12px 0;font-size:12px}
.rp-v2-rpt th{background:var(--sage);color:var(--green);padding:8px 10px;text-align:left;font-weight:600;font-size:11px}
.rp-v2-rpt td{padding:7px 10px;border-bottom:1px solid var(--line)}
.rp-v2-rpt tr:hover td{background:#f8fafc}
.rp-v2-rpt .rp-v2-rpt-highlight{background:rgba(59,125,216,.08);border-left:3px solid var(--orange);padding:10px 14px;margin:10px 0;border-radius:0 6px 6px 0}
.rp-v2-rpt .rp-v2-rpt-risk{background:rgba(239,68,68,.06);border-left:3px solid #ef4444;padding:10px 14px;margin:10px 0;border-radius:0 6px 6px 0}
.rp-v2-rpt .rp-v2-rpt-success{background:rgba(44,95,138,.06);border-left:3px solid var(--green);padding:10px 14px;margin:10px 0;border-radius:0 6px 6px 0}
.rp-v2-rpt .rp-v2-rpt-source{font:10px 'DM Mono';color:#98a5b5;margin-top:2px}
.rp-v2-rpt .rp-v2-rpt-meta{font:11px 'DM Mono';color:var(--muted);margin-bottom:16px;padding:8px 12px;background:#f8fafc;border-radius:6px}
.rp-v2-rpt .rp-ai-error-meta{display:grid;grid-template-columns:max-content 1fr;gap:5px 12px;margin:12px 0;padding:10px 12px;background:#fffafa;border:1px solid #f3dddd;border-radius:8px;font-size:11px}
.rp-v2-rpt .rp-ai-error-meta dt{color:#8a6b6b;font-weight:600}
.rp-v2-rpt .rp-ai-error-meta dd{margin:0;color:var(--ink);word-break:break-all}
.rp-v2-rpt .rp-report-citation{display:inline;font:600 11px 'DM Mono',monospace;color:#176b55;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;white-space:nowrap}
.rp-v2-rpt .rp-report-citation:hover{color:#0d4d3d;text-decoration-style:solid}
.rp-citation-detail{display:grid;gap:0;margin:0 0 16px}
.rp-citation-detail div{display:grid;grid-template-columns:minmax(100px,140px) minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.rp-citation-detail dt{color:var(--muted);font-size:12px}
.rp-citation-detail dd{margin:0;overflow-wrap:anywhere;font:12px/1.6 'DM Mono','Noto Sans SC',sans-serif;color:var(--ink)}
.rp-citation-source-link{display:inline-flex;align-items:center;color:#176b55;font-size:12px;font-weight:600}
.rp-citation-no-link{font-size:12px;color:var(--muted)}
.rp-v2-rpt .rp-v2-rpt-section{margin-bottom:20px;padding-bottom:12px}
.rp-v2-rpt .rp-v2-rpt-chart-placeholder{background:#f0f5f3;border:1px dashed #c5d5cf;border-radius:8px;padding:20px;text-align:center;margin:12px 0;color:var(--green);font:12px 'Noto Sans SC'}
.rp-v2-rpt pre.rp-v2-rpt-code{background:#0f172a;color:#e2e8f0;padding:14px 16px;border-radius:8px;overflow:auto;font:12px 'DM Mono','SFMono-Regular',Consolas,monospace;margin:12px 0;white-space:pre}
.rp-v2-rpt pre.rp-v2-rpt-code code{background:none;color:inherit;padding:0;font:inherit}
.rp-v2-rpt code{background:#eef2f6;color:#2c5f8a;padding:1px 6px;border-radius:4px;font:11px 'DM Mono',monospace}
.rp-v2-rpt hr{border:none;border-top:1px solid var(--line);margin:20px 0}
.rp-v2-rpt .rp-v2-rpt-highlight,.rp-v2-rpt .rp-v2-rpt-risk,.rp-v2-rpt .rp-v2-rpt-success{border-radius:0 8px 8px 0}
.rp-v2-rpt table.rp-v2-rpt-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:12px;box-shadow:0 1px 3px rgba(15,23,42,.06)}
.rp-v2-rpt table.rp-v2-rpt-table th{background:var(--sage);color:var(--green);padding:9px 11px;text-align:left;font-weight:600;font-size:11px;border-bottom:2px solid var(--green)}
.rp-v2-rpt table.rp-v2-rpt-table td{padding:8px 11px;border-bottom:1px solid var(--line);vertical-align:top}
.rp-v2-rpt table.rp-v2-rpt-table tr:nth-child(even) td{background:#f8fafc}
.rp-v2-rpt table.rp-v2-rpt-table tr:hover td{background:#eef5f1}
.rp-v2-export-history{margin-top:16px}
.rp-v2-history-empty{padding:12px 0;color:var(--muted);font:11px 'Noto Sans SC';text-align:center}
.rp-v2-history-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font:11px 'Noto Sans SC'}
.rp-v2-history-row:last-child{border-bottom:0}
.rp-v2-history-row strong{display:block;font-size:11px;color:var(--ink)}
.rp-v2-history-row small{display:block;margin-top:2px;color:var(--muted);font-size:10px;line-height:1.4}
.rp-v2-history-retry{border:1px solid var(--line);background:#fff;color:var(--green);border-radius:4px;padding:3px 6px;cursor:pointer}
/* ===== 报告图表（内联 SVG） ===== */
.jay-chart{margin:18px 0;background:#fff;border:1px solid #e6eef6;border-radius:10px;padding:14px 16px;box-shadow:0 4px 16px rgba(30,95,174,.05)}
.jay-chart-svg{width:100%;height:auto;display:block}
.jay-chart-cap{margin-top:10px;display:flex;flex-direction:column;gap:3px}
.jay-chart-cap strong{font-size:13px;color:#1e3147}
.jay-chart-src,.jay-chart-note{font-size:11px}
.jay-chart-src{color:#8a97a6}
.jay-chart-note{color:#c08a2e}
.jay-chart-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.jay-chart-legend-inline{justify-content:center}
.jay-chart-legend-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#3b5066}
.jay-chart-legend-item i{width:11px;height:11px;border-radius:3px;display:inline-block}
.rp-v2-tpl-sel{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:6px;font:12px 'Noto Sans SC';background:#fff;color:var(--ink)}
.rp-v2-tpl-btn{padding:8px 12px;border:1px solid var(--green);color:var(--green);background:transparent;border-radius:6px;cursor:pointer;font:12px 'Noto Sans SC';white-space:nowrap}
.rp-v2-tpl-btn:hover{background:rgba(44,95,138,.08)}
/* Generating Animation */
.rp-v2-generating{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}
.rp-v2-gen-progress{width:200px;height:4px;background:var(--line);border-radius:2px;margin:20px auto 16px;overflow:hidden}
.rp-v2-gen-progress-bar{height:100%;background:var(--green);border-radius:2px;transition:width .3s;width:0}
.rp-v2-gen-steps{text-align:left;max-width:280px;margin:16px auto 0}
.rp-v2-gen-step{display:flex;align-items:center;gap:8px;padding:4px 0;font:12px 'Noto Sans SC';color:var(--muted)}
.rp-v2-gen-step.active{color:var(--ink);font-weight:600}
.rp-v2-gen-step.done{color:var(--green)}
.rp-v2-gen-step-icon{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:10px;background:var(--line);color:var(--muted);flex-shrink:0}
.rp-v2-gen-step.active .rp-v2-gen-step-icon{background:var(--orange);color:#fff;animation:rp-v2-pulse 1s infinite}
.rp-v2-gen-step.done .rp-v2-gen-step-icon{background:var(--green);color:#fff}
@keyframes rp-v2-pulse{0%,100%{opacity:1}50%{opacity:.5}}
/* Right Panel: AI Tools */
.rp-v2-right{display:flex;flex-direction:column;gap:16px}
.rp-v2-ai-tool{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px;transition:.15s}
.rp-v2-ai-tool:hover{border-color:var(--green)}
.rp-v2-ai-tool-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.rp-v2-ai-tool-icon{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;font-size:16px;flex-shrink:0}
.rp-v2-ai-tool-header h4{font:bold 13px 'Noto Sans SC';margin:0}
.rp-v2-ai-tool-header p{font:11px 'Noto Sans SC';color:var(--muted);margin:2px 0 0}
.rp-v2-ai-tool-body{font:12px 'Noto Sans SC';color:var(--ink);line-height:1.7}
.rp-v2-ai-tool-body ul{margin:4px 0;padding-left:16px}
.rp-v2-ai-tool-body li{margin:2px 0}
.rp-v2-ai-tool-btn{display:block;width:100%;padding:8px;border:1px solid var(--green);background:#fff;color:var(--green);border-radius:6px;font:600 11px 'Noto Sans SC';cursor:pointer;text-align:center;margin-top:10px;transition:.15s}
.rp-v2-ai-tool-btn:hover{background:var(--green);color:#fff}
.rp-v2-ai-result{background:#f8fafc;border-radius:6px;padding:12px;margin-top:10px;font:12px 'Noto Sans SC';line-height:1.7;max-height:200px;overflow-y:auto}
.rp-v2-ai-result h5{font:bold 12px 'Noto Sans SC';margin:0 0 6px;color:var(--green)}
.rp-v2-ai-result ul{margin:4px 0;padding-left:16px}
/* Recent Reports */
.rp-v2-recent{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px}
.rp-v2-recent h4{font:bold 13px 'Noto Sans SC';margin:0 0 12px;display:flex;align-items:center;gap:6px}
.rp-v2-recent-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer;transition:.1s}
.rp-v2-recent-item:hover{background:#f8fafc;margin:0 -8px;padding:8px 8px;border-radius:4px}
.rp-v2-recent-item:last-child{border-bottom:none}
.rp-v2-recent-icon{width:32px;height:32px;border-radius:6px;background:var(--sage);display:grid;place-items:center;font-size:14px;color:var(--green);flex-shrink:0}
.rp-v2-recent-info{flex:1;min-width:0}
.rp-v2-recent-action{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:14px;padding:4px 3px;border-radius:4px;line-height:1}
.rp-v2-recent-action:hover{background:var(--sage);color:var(--green)}
.rp-v2-recent-info strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-v2-recent-info small{font:10px 'DM Mono';color:var(--muted)}
.rp-v2-recent-info .rp-v2-recent-meta{display:block;margin-top:3px;font-family:'Noto Sans SC',sans-serif;white-space:normal;overflow-wrap:anywhere}
/* Responsive */
@media(max-width:1200px){.rp-v2-workspace{grid-template-columns:260px 1fr 280px}}
@media(max-width:1000px){.rp-v2-workspace{grid-template-columns:1fr}.rp-v2-pool{position:static;max-height:none}.rp-v2-stats{grid-template-columns:repeat(3,1fr)}.rp-v2-config-grid{grid-template-columns:1fr}.rp-v2-tpl-grid{grid-template-columns:1fr}}
@media(max-width:700px){.rp-v2-stats{grid-template-columns:1fr 1fr}.rp-v2-header{flex-direction:column}}
.rp-core-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:700px){.rp-core-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.rp-core-stats .rp-v2-stat{padding:10px;gap:8px}.rp-core-stats .rp-v2-stat-icon{display:none}.rp-core-stats .rp-v2-stat-num{font-size:18px}.rp-v2-step{padding:7px 5px}.rp-v2-step-text{font-size:10px}.rp-v2-panel{padding:16px}.rp-v2-preview-toolbar{align-items:flex-start;gap:10px}.rp-v2-preview-toolbar-right{flex-wrap:wrap;justify-content:flex-end}}
.add-to-report-btn{border:1px solid var(--green);background:#fff;color:var(--green);padding:6px 12px;border-radius:4px;font-size:11px;cursor:pointer;transition:.15s;white-space:nowrap}
.add-to-report-btn:hover{background:var(--green);color:#fff}

  /* === Product Radar Rebuild === */
 .pr-data-import{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:8px}
 .pr-data-import-copy{min-width:0}
 .pr-data-import-copy .eyebrow{margin:0 0 5px}
 .pr-data-import-copy h2{margin:0 0 5px;font-size:18px}
 .pr-data-import-copy p:not(.eyebrow){margin:0;color:var(--muted);font-size:12px;line-height:1.6}
 .pr-data-status{display:inline-block;margin-top:8px;font:11px 'DM Mono';color:var(--muted)}
 .pr-data-import-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
 .pr-upload-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;background:var(--ink);color:#fff;border-radius:4px;font:12px 'Noto Sans SC';cursor:pointer;white-space:nowrap}
 .pr-upload-btn:hover{opacity:.9}
 .pr-clear-data{padding:7px 12px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--muted);font:12px 'Noto Sans SC';cursor:pointer;white-space:nowrap}
 .pr-clear-data:not(:disabled):hover{border-color:#d77b58;color:#b35332}
 .pr-clear-data:disabled{cursor:not-allowed;opacity:.5}
 .pr-data-import-note{margin:9px 0 0;color:var(--muted);font-size:11px;line-height:1.6;flex:1 1 100%}
 .pr-data-import{flex-wrap:wrap}
 .pr-empty-note{padding:26px 20px;text-align:center;color:var(--muted);font-size:12px;line-height:1.7}
 @media(max-width:700px){.pr-data-import{align-items:flex-start}.pr-data-import-actions{width:100%}.pr-upload-btn,.pr-clear-data{flex:1}.pr-data-import-note{flex-basis:100%}}
.pr-ai-tabs{display:flex;gap:0;margin-bottom:16px;background:#f0eee9;border-radius:8px;padding:3px;width:fit-content}
.pr-ai-tab{padding:8px 20px;border:none;background:none;font:12px 'Noto Sans SC';color:var(--muted);cursor:pointer;border-radius:6px;transition:.15s}
.pr-ai-tab.active{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.pr-ai-item{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid #f0f2f6;font-size:12px;line-height:1.7}
.pr-ai-item:last-child{border-bottom:none}
.pr-ai-item span.pr-ai-text{flex:1}
.pr-ai-jump{font:10px 'DM Mono';color:var(--green);cursor:pointer;white-space:nowrap;padding:2px 8px;border:1px solid var(--green);border-radius:3px;background:none}
.pr-ai-jump:hover{background:var(--green);color:#fff}
.pr-ai-add{font-size:14px;cursor:pointer;color:var(--orange);background:none;border:none;padding:2px 4px}
.pr-ai-add:hover{transform:scale(1.2)}
.pr-tabbar{display:flex;gap:0;border-bottom:2px solid var(--line);margin-bottom:20px}
.pr-tab{padding:12px 22px;border:none;background:none;font:13px 'Noto Sans SC';color:#76837e;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:.15s}
.pr-tab.active{color:var(--ink);font-weight:600;border-bottom-color:var(--orange)}
.pr-tab:hover{color:var(--ink)}
.pr-filter-advanced{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;padding:16px;background:#f5f7fa;border-radius:8px;border:1px solid #ebe9e4}
.pr-filter-group label{display:block;font:600 10px 'DM Mono';color:#87928d;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}
.pr-filter-group input,.pr-filter-group select{width:100%;border:1px solid var(--line);padding:7px 10px;border-radius:4px;font:12px 'Noto Sans SC';background:#fff}
.pr-filter-group .pr-range-row{display:flex;gap:6px;align-items:center}
.pr-filter-group .pr-range-row input{width:45%}
.pr-filter-group .pr-range-row span{color:var(--muted);font-size:11px}
.pr-filter-actions{display:flex;gap:8px;align-items:end;margin-top:8px;grid-column:1/-1}
.pr-save-tpl{font:11px 'Noto Sans SC';color:var(--green);background:none;border:1px solid var(--green);padding:5px 14px;border-radius:4px;cursor:pointer}
.pr-tpl-list{display:flex;gap:6px;flex-wrap:wrap;grid-column:1/-1;margin-top:4px}
.pr-tpl-chip{font:10px 'DM Mono';padding:4px 10px;background:#e8f0eb;color:var(--green);border-radius:12px;cursor:pointer;display:flex;align-items:center;gap:4px}
.pr-tpl-chip .tpl-del{font-size:12px;color:#999;cursor:pointer}
.pr-tpl-chip .tpl-del:hover{color:#e53}
.pr-batch-bar{display:none;align-items:center;gap:12px;padding:10px 16px;background:var(--ink);color:#fff;border-radius:6px;margin-bottom:12px;font-size:12px}
.pr-batch-bar.show{display:flex}
.pr-batch-bar button{background:rgba(255,255,255,.15);border:none;color:#fff;padding:5px 12px;border-radius:4px;font:11px 'Noto Sans SC';cursor:pointer}
.pr-batch-bar button:hover{background:rgba(255,255,255,.25)}
.pr-batch-count{font:600 13px 'DM Mono';color:var(--orange)}
.pr-export-group{display:flex;gap:6px;margin-left:auto}
.pr-export-btn{font:11px 'Noto Sans SC';padding:6px 14px;border-radius:4px;cursor:pointer;border:1px solid}
.pr-export-btn.excel{background:#e8f5e9;color:#2e7d32;border-color:#a5d6a7}
.pr-export-btn.pdf{background:#fff3e0;color:#e65100;border-color:#ffcc80}
.pr-table-wrap table{width:100%;border-collapse:collapse}
.pr-table-wrap th{position:sticky;top:0;background:#faf9f6;z-index:1}
.pr-table-wrap td{vertical-align:middle}
.pr-chk{width:16px;height:16px;accent-color:var(--green);cursor:pointer}
.pr-shop-link{color:var(--green);cursor:pointer;font-size:11px;text-decoration:underline;text-underline-offset:2px}
.pr-shop-link:hover{color:var(--orange)}
.pr-dual-price{line-height:1.5}
.pr-dual-price .pr-local{font-weight:600;font-size:12px}
.pr-dual-price .pr-rmb{font:10px 'DM Mono';color:var(--muted)}
.pr-signal{display:inline-flex;align-items:center;gap:4px}
.pr-signal-dot{width:6px;height:6px;border-radius:50%}
.pr-signal-dot.burst{background:#3b7ab8}
.pr-signal-dot.rise{background:#2c5f8a}
.pr-signal-dot.stable{background:#999}
.pr-signal-dot.decline{background:#e53935}
.pr-time-col{font:10px 'DM Mono';color:#98a5b5;white-space:nowrap}
.pr-modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:100;justify-content:center;align-items:center}
.pr-modal-bg.open{display:flex}
.pr-modal{background:#fff;border-radius:10px;width:680px;max-height:85vh;overflow-y:auto;padding:28px 30px;position:relative}
.pr-modal-close{position:absolute;top:14px;right:16px;background:none;border:none;font-size:20px;cursor:pointer;color:#999}
.pr-modal-close:hover{color:#333}
.pr-modal h3{font:18px 'Playfair Display';margin:0 0 4px}
.pr-modal .pr-m-sub{font:11px 'DM Mono';color:var(--muted);margin-bottom:20px}
.pr-m-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.pr-m-stat{background:#f5f7fa;padding:14px;border-radius:6px;text-align:center}
.pr-m-stat b{display:block;font:20px 'Playfair Display';color:var(--ink)}
.pr-m-stat span{font:10px 'DM Mono';color:var(--muted)}
.pr-m-chart{height:100px;background:#f5f7fa;border-radius:6px;margin-bottom:16px;display:flex;align-items:end;padding:10px 16px;gap:3px}
.pr-m-chart i{flex:1;background:var(--green);border-radius:2px 2px 0 0;min-width:4px}
.pr-m-section{margin-bottom:16px}
.pr-m-section h4{font-size:13px;margin:0 0 8px;color:var(--ink)}
.pr-m-section p{font-size:12px;color:#5e6d80;line-height:1.7;margin:0}
.pr-m-tags{display:flex;gap:6px;flex-wrap:wrap}
.pr-m-tag{font:10px 'DM Mono';padding:3px 8px;border-radius:10px;background:#f0eee9;color:var(--muted)}
.pr-m-tag.warn{background:#fff3e0;color:#e65100}
.pr-m-tag.ok{background:#e8f5e9;color:#2e7d32}
.pr-shop-input-row{display:flex;gap:10px;margin-bottom:16px;align-items:center}
.pr-shop-input-row select{flex:1;border:1px solid var(--line);padding:8px 12px;border-radius:4px;font:12px 'Noto Sans SC'}
.pr-shop-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.pr-shop-stat{background:#f5f7fa;padding:12px;border-radius:6px;text-align:center}
.pr-shop-stat b{font:18px 'Playfair Display';display:block}
.pr-shop-stat span{font:10px 'DM Mono';color:var(--muted)}
@media(max-width:1000px){.pr-filter-advanced{grid-template-columns:repeat(2,1fr)}.pr-m-stats{grid-template-columns:repeat(2,1fr)}.pr-modal{width:95%;padding:20px}}
@media(max-width:700px){.pr-filter-advanced{grid-template-columns:1fr}.pr-tabbar{overflow-x:auto}.pr-tab{white-space:nowrap;padding:10px 14px;font-size:12px}}


/* ===== SHOPS PAGE STYLES ===== */
.sh-ai-tab { padding:6px 16px; border:1px solid #ddd; border-radius:6px; background:transparent; cursor:pointer; font-size:13px; color:var(--ink); transition:all .2s }
.sh-ai-tab.active { background:var(--green); color:#fff; border-color:var(--green) }
.sh-group-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px }
.sh-grp { padding:5px 14px; border:1px solid #ddd; border-radius:16px; background:transparent; cursor:pointer; font-size:12px; color:var(--ink); transition:all .2s }
.sh-grp.active { background:var(--orange); color:#fff; border-color:var(--orange) }
.sh-add-grp { font-size:11px; color:var(--green); background:transparent; border:1px dashed var(--green); border-radius:16px; padding:3px 12px; cursor:pointer; margin-bottom:10px }
.sh-filter-bar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:14px; padding:12px; background:#f5f7fa; border-radius:8px; border:1px solid #e0e4ec }
.sh-filter-bar select, .sh-filter-bar input { padding:6px 10px; border:1px solid #ddd; border-radius:6px; font-size:12px; background:#fff }
.sh-action-bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px }
.sh-batch-bar { display:flex; gap:8px; align-items:center; padding:10px 14px; background:#fff3e0; border:1px solid var(--orange); border-radius:8px; margin-bottom:12px }
.sh-batch-bar button { padding:4px 12px; border:1px solid var(--orange); color:var(--orange); border-radius:4px; background:transparent; cursor:pointer; font-size:12px }
.sh-batch-bar span { font-size:13px; font-weight:600; color:var(--orange); margin-right:8px }
.sh-modal-overlay { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.5); z-index:2000; justify-content:center; align-items:center }
.sh-modal-overlay.show { display:flex }
.sh-modal { background:#fff; border-radius:12px; max-width:800px; width:90%; max-height:85vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,0.3) }
.sh-modal-head { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:1px solid #eee }
.sh-modal-head h3 { margin:0; font-size:16px; color:var(--ink) }
.sh-modal-head button { background:transparent; border:none; font-size:18px; cursor:pointer; color:var(--muted) }
.sh-modal-body { padding:20px }
.sh-add-tab { padding:6px 14px; border:1px solid #ddd; border-radius:6px; background:transparent; cursor:pointer; font-size:12px; color:var(--ink) }
.sh-add-tab.active { background:var(--green); color:#fff; border-color:var(--green) }
.alert-tag { display:inline-block; padding:2px 8px; border-radius:10px; font-size:11px; background:#fff3e0; color:var(--orange); border:1px solid var(--orange) }


/* ===== CONTENT PAGE STYLES ===== */
.ct-ai-panel { background:#f5f7fa; border:1px solid #e0e4ec; border-radius:8px; padding:16px; margin-bottom:18px }
.ct-ai-tab { padding:6px 16px; border:1px solid #ddd; border-radius:6px; background:transparent; cursor:pointer; font-size:13px; color:var(--ink); transition:all .2s }
.ct-ai-tab.active { background:var(--green); color:#fff; border-color:var(--green) }
.ct-main-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid var(--line) }
.ct-main-tab { padding:8px 18px; border:1px solid #ddd; border-radius:20px; background:transparent; cursor:pointer; font-size:13px; color:var(--ink); transition:all .2s }
.ct-main-tab.active { background:var(--ink); color:#fff; border-color:var(--ink) }
.ct-filter-bar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:14px; padding:12px; background:#f5f7fa; border-radius:8px; border:1px solid #e0e4ec }
.ct-filter-bar select, .ct-filter-bar input { padding:6px 10px; border:1px solid #ddd; border-radius:6px; font-size:12px; background:#fff }
.ct-action-bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px }
.ct-batch-bar { display:flex; gap:8px; align-items:center; padding:10px 14px; background:#fff3e0; border:1px solid var(--orange); border-radius:8px; margin-bottom:12px }
.ct-batch-bar button { padding:4px 12px; border:1px solid var(--orange); color:var(--orange); border-radius:4px; background:transparent; cursor:pointer; font-size:12px }
.ct-batch-bar span { font-size:13px; font-weight:600; color:var(--orange); margin-right:8px }
.ct-card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:16px }
.ct-card-new { background:#fff; border:1px solid var(--line); border-radius:8px; padding:16px; position:relative; transition:all .2s }
.ct-card-new:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.08); border-color:#a8b8d0 }
.ct-card-check { position:absolute; top:12px; right:12px }
.ct-card-title { font-size:14px; margin:0 0 6px; line-height:1.4; color:var(--ink) }
.ct-card-title:hover { color:var(--green) }
.ct-card-actions { display:flex; gap:6px; margin-top:10px; padding-top:8px; border-top:1px solid #f0f2f6 }
.ct-card-actions button { background:transparent; border:none; cursor:pointer; font-size:14px; padding:4px; border-radius:4px; transition:background .2s }
.ct-card-actions button:hover { background:#f0f2f6 }
.ct-fav-btn { padding:6px 14px; border:1px solid var(--green); color:var(--green); border-radius:6px; background:transparent; cursor:pointer; font-size:12px }
.ct-fav-panel { background:#f5f7fa; border:1px solid #e0e4ec; border-radius:8px; padding:16px; margin-bottom:14px }
.ct-live-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:16px }
.ct-live-card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:16px; transition:all .2s }
.ct-live-card:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.08) }
.alert-tag-ct { display:inline-block; padding:2px 6px; border-radius:10px; font-size:10px; background:#f0f2f6; color:var(--muted); border:1px solid #ddd }
.ct-modal-overlay { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.5); z-index:2000; justify-content:center; align-items:center }
.ct-modal-overlay.show { display:flex }
.ct-modal { background:#fff; border-radius:12px; max-width:800px; width:90%; max-height:85vh; overflow-y:auto; box-shadow:0 20px 60px rgba(0,0,0,0.3) }
.ct-modal-head { display:flex; justify-content:space-between; align-items:center; padding:16px 20px; border-bottom:1px solid #eee }
.ct-modal-head h3 { margin:0; font-size:16px; color:var(--ink) }
.ct-modal-head button { background:transparent; border:none; font-size:18px; cursor:pointer; color:var(--muted) }
.ct-modal-body { padding:20px }


/* === SaaS 登录/注册增强 === */
.auth-tabs{display:flex;border-bottom:1px solid #e5e7eb;margin-bottom:16px}
.auth-tabs button{flex:1;border:0;background:none;padding:10px;font-family:inherit;font-size:13px;color:#6b7b8d;cursor:pointer;border-bottom:2px solid transparent}
.auth-tabs button.active{color:#1e3a5f;border-bottom-color:#1e3a5f;font-weight:600}
.auth-form .auth-field{display:none}
.auth-form .auth-field.show{display:grid}
.auth-form .auth-field label{display:grid;gap:6px;font-size:11px;margin:14px 0}
.auth-form .auth-field input{border:1px solid #d1d5db;border-radius:8px;padding:11px 14px;font-family:inherit;outline:none;transition:border-color .15s,box-shadow .15s}
.auth-form .auth-field input:focus{border-color:#1e3a5f;box-shadow:0 0 0 3px rgba(30,58,95,.1)}
.auth-error{color:#c0392b;font-size:11px;margin-top:8px;display:none;text-align:center}
.auth-error.show{display:block}
.auth-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:#aaa;font-size:11px}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:#e0e0e0}
.login-button.loading{opacity:.7;pointer-events:none}
.login-button.loading::after{content:'...'}
.user-menu-btn{background:none;border:0;cursor:pointer;padding:0;display:flex;align-items:center;gap:8px;color:#4b5563;font-family:inherit;font-size:12px}
.user-menu-btn:hover{color:#1e3a5f}
.ws-name{display:block;font-size:12px;color:#1f2937;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-tier{font:9px 'DM Mono';color:#1e3a5f;background:#eff6ff;padding:2px 6px;border-radius:4px}
/* === 海洋主题 · 轻点缀（清新浅海蓝） === */
.ocean-top{position:absolute;top:0;left:0;right:0;height:130px;z-index:-1;pointer-events:none;overflow:hidden}
.ocean-top svg{width:100%;height:100%;display:block}
.wave-divider{margin:18px 0 6px;height:22px;color:var(--wave)}
.wave-divider svg{width:100%;height:100%;display:block}
.section-heading h2{position:relative;display:inline-block;padding-bottom:6px}
.section-heading h2::after{content:'';position:absolute;left:0;bottom:0;width:44px;height:4px;border-radius:3px;background:linear-gradient(90deg,var(--sea),var(--sea-deep))}
.section-heading .eyebrow{color:var(--sea-deep)}
.platform-card:hover,.ct-card:hover,.watch-card:hover{border-color:var(--sea)!important;box-shadow:0 6px 18px rgba(30,95,174,.14)}
.login-brand,.login-card{position:relative;z-index:1}
.login-screen::after{content:'';position:absolute;left:0;right:0;bottom:0;height:130px;z-index:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0,64 C240,120 480,8 720,64 C960,120 1200,8 1440,64 L1440,120 L0,120 Z' fill='%23ffffff' opacity='0.10'/%3E%3Cpath d='M0,86 C240,132 480,36 720,86 C960,132 1200,36 1440,86 L1440,120 L0,120 Z' fill='%23ffffff' opacity='0.16'/%3E%3C/svg%3E") bottom/cover no-repeat}

/* === 评测修复：术语表 tooltip === */
.jay-term{border-bottom:1px dotted #3b7ab8;cursor:help;color:#2c5f8a}
#jay-gloss-tip{position:fixed;z-index:9999;max-width:280px;background:#1a2332;color:#fff;
  font-size:12px;line-height:1.5;padding:8px 11px;border-radius:7px;box-shadow:0 6px 20px rgba(0,0,0,.25);
  pointer-events:none;display:none}
#jay-gloss-tip b{color:#7fc0ff}
/* 回到顶部 */
#jay-totop{position:fixed;right:22px;bottom:24px;width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,#3b7ab8,#2c5f8a);color:#fff;border:0;font-size:20px;cursor:pointer;
  box-shadow:0 6px 18px rgba(59,125,216,.4);display:none;align-items:center;justify-content:center;z-index:900}
#jay-totop:hover{transform:translateY(-2px)}
/* 页脚 */
.jay-footer{margin-top:40px;padding:22px 28px;border-top:1px solid var(--line);
  background:#fff;color:var(--muted);font-size:12px;display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center}
.jay-footer b{color:var(--ink)}
.jay-footer a{color:#3b7ab8;text-decoration:none}
.jay-footer .jay-f-sep{flex:1}

/* ===== WAVE2: 趋势箭头配色 + 移动端快捷标签换行 + 铃铛面板 + 引导/FAQ + 数据源 + 模块清理 ===== */
/* 趋势箭头：涨绿跌红 */
.up{color:var(--green)!important}
.down{color:#e53935!important}
.ov-opp-rate.up{color:var(--green)}
.ov-opp-rate.down{color:#e53935}
.signal-up{color:var(--green)!important;font-weight:600}
.signal-down{color:#e53935!important;font-weight:600}
/* 移动端快捷标签换行 */
.hero-chips,.ov-hero-chips{display:flex;flex-wrap:wrap;gap:8px}
.hero-chip,.ov-hero-chip{white-space:nowrap}
/* 铃铛通知面板 */
#bell-panel{position:absolute;top:46px;right:0;width:320px;max-height:420px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px rgba(20,40,80,.18);z-index:1200;display:none;padding:8px}
#bell-panel.show{display:block}
.bp-head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);font-size:13px;font-weight:600}
.bp-item{display:block;padding:9px 10px;border-radius:8px;text-decoration:none;color:inherit;font-size:12.5px;line-height:1.5;border-bottom:1px solid #f0f3f7}
.bp-item:hover{background:#f5f8fc}
.bp-item .bp-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:middle}
.bp-empty{padding:24px;text-align:center;color:var(--muted);font-size:12px}
/* 新手引导浮层 */
#jay-onboard{display:none !important} /* removed */ #jay-onboard{position:fixed;inset:0;background:rgba(15,28,52,.55);z-index:2000;display:flex;align-items:center;justify-content:center}
.jo-card{width:min(560px,92vw);max-height:86vh;overflow:auto;background:#fff;border-radius:16px;padding:26px 28px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.jo-card h2{margin:0 0 4px;font-size:22px}
.jo-card .jo-sub{color:var(--muted);font-size:13px;margin-bottom:16px}
.jo-step{display:flex;gap:12px;padding:12px;margin-bottom:10px;border:1px solid var(--line);border-radius:10px}
.jo-step .jo-num{flex:0 0 28px;height:28px;border-radius:50%;background:var(--sea);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.jo-step h4{margin:0 0 2px;font-size:14px}
.jo-step p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5}
.jo-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}
/* FAQ 弹窗 */
.jf-list{margin:0;padding:0;list-style:none}
.jf-list li{padding:12px 0;border-bottom:1px solid #f0f3f7}
.jf-list b{display:block;font-size:14px;margin-bottom:4px;color:var(--ink)}
.jf-list span{font-size:13px;color:var(--muted);line-height:1.6}
/* 帮助入口按钮 */
.help-entry{cursor:pointer;color:var(--sea);font-size:12px}


/* ===== WAVE3 样式：平台 Logo 字母徽标 + 内容卡片视觉条 ===== */
.pf-logo{flex:0 0 38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;font:700 18px 'Playfair Display',serif;box-shadow:0 2px 6px rgba(20,40,80,.18)}
.pf-card-head{display:flex;align-items:center;gap:10px}
.pf-card-head h3{margin:0}
/* 内容卡片视觉增强 */
.ct-card-new{position:relative;overflow:hidden;border-left:3px solid var(--sea)}
.ct-card-new::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#3b7ab8,#3bd0e0)}
.ct-card-new .ct-platform-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--sea);margin-right:5px;vertical-align:middle}
/* N-05 热门内容缩略图 */
/* N-05 缩略图：视频封面式占位（渐变 + 装饰圆 + 播放按钮 + 角标） */
.ct-thumb{position:relative;height:120px;border-radius:8px 8px 0 0;margin:-16px -16px 12px;overflow:hidden;color:#fff;background:#2c3e50}
.ct-thumb-bg{position:absolute;inset:0;background:var(--ct-grad)}
.ct-thumb-deco{position:absolute;inset:0;opacity:.25;background-image:
  radial-gradient(circle at 80% 20%, rgba(255,255,255,.35) 0%, transparent 35%),
  radial-gradient(circle at 15% 85%, rgba(255,255,255,.25) 0%, transparent 40%),
  radial-gradient(circle at 50% 50%, rgba(255,255,255,.12) 0%, transparent 60%)}
.ct-thumb-deco2{position:absolute;inset:0;opacity:.15;background-image:
  linear-gradient(45deg, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%);
  background-size:14px 14px}
.ct-thumb-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.22);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1.5px solid rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.ct-thumb-play svg{width:16px;height:16px;fill:#fff;margin-left:2px}
.ct-thumb-type{position:absolute;top:8px;left:8px;font-size:10px;line-height:1;padding:4px 7px;border-radius:4px;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);font-weight:600;letter-spacing:.5px;display:inline-flex;align-items:center;gap:4px}
.ct-thumb-type.is-live{background:rgba(229,72,77,.85)}
.ct-thumb-type .dot{width:6px;height:6px;border-radius:50%;background:#fff;display:inline-block}
.ct-thumb-type.is-live .dot{animation:ctPulse 1.4s ease-in-out infinite}
@keyframes ctPulse{0%,100%{opacity:1}50%{opacity:.35}}
.ct-thumb-duration{position:absolute;bottom:8px;right:8px;font-size:10px;line-height:1;padding:3px 6px;border-radius:3px;background:rgba(0,0,0,.55);font-weight:600;font-family:'SF Mono','Menlo',monospace;letter-spacing:.3px}
.ct-thumb-platform{position:absolute;bottom:8px;left:8px;font-size:10px;line-height:1;padding:3px 7px;border-radius:3px;background:rgba(255,255,255,.18);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);font-weight:600;border:1px solid rgba(255,255,255,.25)}
.ct-thumb-engage{position:absolute;top:8px;right:8px;font-size:10px;line-height:1;padding:3px 6px;border-radius:3px;background:rgba(255,255,255,.18);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);font-weight:600;display:inline-flex;align-items:center;gap:3px}
.ct-thumb-engage svg{width:9px;height:9px;fill:#fff}
.ct-live-card .ct-thumb{border-radius:0}
/* 趋势箭头强调 */
.pr-signal-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}
.pr-signal .hot{color:#e53935}

/* === Phase0: 演示数据横幅 + 报告问卷弹窗 + 首页推荐 chip === */
#demo-banner{display:none !important} /* removed v4 */
#demo-banner b{color:#a8761b}
#demo-banner-close{position:absolute;right:12px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#b8924a;font-size:18px;cursor:pointer;line-height:1}
#demo-banner-close:hover{color:#8a6d3b}
.ov-hero-chips button.ov-hero-chip-reco{border-color:#3b7ab8;color:#1e3a5f;background:#eff6ff;font-weight:700}
.ov-hero-chips button.ov-hero-chip-reco:hover{background:#dceefb}
#rp-questionnaire{display:none;position:fixed;inset:0;z-index:10000;background:rgba(20,40,70,.45);align-items:center;justify-content:center;padding:20px}
#rp-questionnaire.show{display:flex}
.rp-q-card{background:#fff;border-radius:14px;max-width:560px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.rp-q-head{background:linear-gradient(135deg,#1e3a5f,#3b7ab8);color:#fff;padding:16px 20px;border-radius:14px 14px 0 0}
.rp-q-head h3{margin:0;font-size:16px}
.rp-q-head p{margin:4px 0 0;font-size:12px;opacity:.92}
.rp-q-body{padding:18px 20px}
.rp-q-row{margin-bottom:14px}
.rp-q-row label{display:block;font-size:13px;color:#1f2d3d;margin-bottom:6px;font-weight:600}
.rp-q-row input,.rp-q-row select,.rp-q-row textarea{width:100%;padding:9px 10px;border:1px solid #d4e4f7;border-radius:8px;font-size:13px;font-family:inherit;color:#1f2d3d;background:#fbfdff}
.rp-q-row textarea{resize:vertical;min-height:56px}
.rp-q-foot{display:flex;gap:10px;padding:14px 20px;border-top:1px solid #eef3f8}
.rp-q-btn{flex:1;padding:11px;border:0;border-radius:9px;font-size:14px;cursor:pointer;font-family:inherit}
.rp-q-skip{background:#eef3f8;color:#52607a}
.rp-q-go{background:linear-gradient(135deg,#3b7ab8,#2c5f8a);color:#fff;font-weight:700}
/* === C1 我的产品适配 === */
.mf-wrap{max-width:1080px;margin:0 auto;padding:8px 0 40px}
.mf-intro{display:flex;gap:16px;align-items:flex-start;background:linear-gradient(135deg,#eff6ff,#f6fbff);border:1px solid #dcebf9;border-radius:14px;padding:18px 20px;margin-bottom:22px}
.mf-intro-icon{font-size:30px;line-height:1}
.mf-intro h3{margin:0 0 4px;font-size:16px;color:var(--ink)}
.mf-intro p{margin:0;font-size:13px;color:var(--muted);line-height:1.7}
.mf-form{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:22px;box-shadow:0 2px 12px rgba(31,95,174,.04)}
.mf-form h4{margin:0 0 16px;font-size:14px;color:var(--ink);display:flex;align-items:center;gap:8px}
.mf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mf-field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;font-weight:600}
.mf-field input,.mf-field select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:#fbfdff;color:var(--ink)}
.mf-field input:focus,.mf-field select:focus{outline:none;border-color:var(--sea);box-shadow:0 0 0 3px rgba(59,159,224,.12)}
.mf-submit{margin-top:18px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.mf-btn-primary{background:linear-gradient(135deg,var(--sea-deep),var(--sea));color:#fff;border:none;padding:12px 28px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgba(31,95,174,.25)}
.mf-btn-primary:hover{filter:brightness(1.05)}
.mf-btn-ghost{background:#fff;border:1px solid var(--line);color:var(--muted);padding:12px 20px;border-radius:10px;font-size:13px;cursor:pointer}
.mf-result{display:none}
.mf-result.show{display:block}
.mf-rank-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:8px}
.mf-rank-head h4{margin:0;font-size:15px;color:var(--ink)}
.mf-rank-head small{color:var(--muted);font-size:12px}
.mf-card{border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:12px;display:flex;gap:16px;align-items:center;background:#fff;transition:.2s}
.mf-card:hover{border-color:var(--sea);box-shadow:0 4px 16px rgba(31,95,174,.08)}
.mf-rank{font:800 22px 'Playfair Display',serif;color:var(--sea-deep);min-width:34px;text-align:center}
.mf-card-body{flex:1;min-width:0}
.mf-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.mf-card-top b{font-size:15px;color:var(--ink)}
.mf-card-top .mf-region{font-size:12px;color:var(--muted);white-space:nowrap}
.mf-score-bar{height:8px;border-radius:6px;background:#eef4fb;margin:8px 0 6px;overflow:hidden}
.mf-score-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--sea-deep),var(--sea))}
.mf-card-reason{font-size:12px;color:var(--muted);line-height:1.6}
.mf-card-risk{font-size:11px;color:#b95532;margin-top:4px}
.mf-ai-box{margin-top:18px;background:linear-gradient(135deg,#f0f7ff,#fafdff);border:1px solid #dcebf9;border-radius:12px;padding:16px 18px;font-size:13px;color:var(--ink);line-height:1.8;display:none}
.mf-ai-box.show{display:block}
.mf-ai-box h5{margin:0 0 8px;font-size:13px;color:var(--sea-deep)}
@media(max-width:720px){.mf-grid{grid-template-columns:1fr}}
/* === E1 定价方案 === */
.prc-wrap{max-width:1080px;margin:0 auto;padding:8px 0 40px}
.prc-hero{text-align:center;padding:24px 0 8px}
.prc-hero h2{margin:0 0 8px;font-size:24px;color:var(--ink)}
.prc-hero p{margin:0;color:var(--muted);font-size:14px}
.prc-billing-notice{max-width:720px;margin:12px auto 0;padding:10px 12px;border:1px solid #b9dfcc;background:#f0fbf5;color:#246b45;font-size:12px;line-height:1.6;text-align:left}
.prc-billing-notice.is-disabled,.prc-billing-notice.is-warning{border-color:#ecd19a;background:#fff9eb;color:#8a5b13}
.prc-billing-notice.is-error{border-color:#efb6b6;background:#fff3f3;color:#9e3030}
.prc-provider-sync{min-height:18px;margin:8px auto 0;color:var(--muted);font-size:11px;line-height:1.6}
.prc-usage-summary{min-height:20px;margin-top:8px;color:var(--muted);font-size:12px}
.prc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0}
.prc-card{border:1px solid var(--line);border-radius:16px;padding:24px 22px;background:#fff;position:relative;display:flex;flex-direction:column}
.prc-card.featured{border-color:var(--sea);box-shadow:0 8px 30px rgba(31,95,174,.12);transform:translateY(-6px)}
.prc-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,var(--sea-deep),var(--sea));color:#fff;font-size:11px;padding:4px 14px;border-radius:20px;white-space:nowrap}
.prc-tier{font-size:15px;font-weight:700;color:var(--ink)}
.prc-price{font:800 30px 'Playfair Display',serif;color:var(--sea-deep);margin:10px 0 2px}
.prc-price small{font-size:13px;color:var(--muted);font-weight:400}
.prc-desc{font-size:12px;color:var(--muted);min-height:32px;margin-bottom:14px}
.prc-feat{list-style:none;padding:0;margin:0 0 18px;flex:1}
.prc-feat li{font-size:12.5px;color:var(--ink);padding:6px 0;border-bottom:1px dashed #eef2f7;display:flex;gap:8px;align-items:flex-start}
.prc-feat li .ck{color:var(--green);font-weight:700;flex-shrink:0}
.prc-feat li.off{color:#aeb8c2}
.prc-feat li.off .ck{color:#cdd5de}
.prc-cta{width:100%;padding:12px;border-radius:10px;border:none;font-size:14px;font-weight:600;cursor:pointer;background:var(--sea-deep);color:#fff;margin-top:auto}
.prc-cta.ghost{background:#fff;border:1px solid var(--line);color:var(--muted)}
.prc-cta:hover{filter:brightness(1.05)}
.prc-cta:disabled{cursor:not-allowed;opacity:.5;filter:none}
.prc-lock{background:#f7f9fc;border:1px solid var(--line);border-radius:14px;padding:20px 24px;margin-top:8px}
.prc-lock h4{margin:0 0 12px;font-size:15px;color:var(--ink)}
.prc-lock-row{display:flex;gap:12px;flex-wrap:wrap}
.prc-lock-item{flex:1;min-width:200px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px;font-size:12.5px;color:var(--muted);line-height:1.7}
.prc-lock-item b{color:var(--ink);display:block;margin-bottom:4px;font-size:13px}
.prc-note{font-size:11px;color:var(--muted);text-align:center;margin-top:18px}
@media(max-width:860px){.prc-grid{grid-template-columns:1fr}.prc-card.featured{transform:none}}

/* === F 操盘手工具箱 === */
.tools-wrap{max-width:1140px;margin:0 auto;padding:10px 22px 46px}
.tools-hero{text-align:center;padding:16px 0 4px}
.tools-hero h2{font:800 26px 'Playfair Display',serif;color:#eff6ff;margin:0 0 6px}
.tools-hero p{color:#a9c4dd;font-size:14px;margin:0}
.tools-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px}
.tools-card{background:linear-gradient(160deg,#16314c,#0f2236);border:1px solid #25405c;border-radius:14px;padding:18px;display:flex;flex-direction:column}
.tools-card h3{font-size:17px;color:#d6e4f5;margin:0 0 4px;display:flex;align-items:center;gap:8px}
.tools-card .t-sub{font-size:12px;color:#8fb0cc;margin:0 0 14px}
.tools-field{margin-bottom:11px}
.tools-field label{display:block;font-size:12.5px;color:#a9c4dd;margin-bottom:4px}
.tools-field input,.tools-field select{width:100%;box-sizing:border-box;background:#0c1d2e;border:1px solid #2c4763;color:#e8edf4;border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit}
.tools-field input:focus,.tools-field select:focus{outline:none;border-color:#3b7ab8}
.tools-res{margin-top:auto;padding-top:12px;border-top:1px dashed #2c4763}
.tools-res .row{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:3px 0;color:#bcd4e8}
.tools-res .row b{color:#eff6ff}
.tools-res .row.hl{font-size:15px;padding-top:8px}
.tools-res .pos{color:#3ddc97}
.tools-res .neg{color:#ff6b6b}
.tools-badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:700;margin-top:8px}
.tools-badge.good{background:rgba(61,220,151,.15);color:#3ddc97}
.tools-badge.warn{background:rgba(255,180,60,.15);color:#ffb43c}
.tools-badge.bad{background:rgba(255,107,107,.15);color:#ff6b6b}
.tools-bar{height:8px;border-radius:6px;background:#0c1d2e;overflow:hidden;margin:4px 0 2px}
.tools-bar > i{display:block;height:100%;background:linear-gradient(90deg,#3b7ab8,#5fb0e8)}
.tools-dim{display:flex;justify-content:space-between;font-size:11.5px;color:#9bb8d2;padding:2px 0}
@media(max-width:900px){.tools-grid{grid-template-columns:1fr}}

/* === A3 数据底座 === */
.ds-wrap{max-width:1140px;margin:0 auto;padding:10px 22px 46px}
.ds-banner{background:linear-gradient(135deg,rgba(59,159,224,.12),rgba(28,95,174,.12));border:1px solid #2a4a6b;border-radius:12px;padding:14px 18px;margin:14px 0 22px;display:flex;gap:12px;align-items:flex-start}
.ds-banner .ic{font-size:22px;line-height:1.2}
.ds-banner p{margin:0;font-size:13px;color:#bcd4e8;line-height:1.65}
.ds-banner b{color:#eff6ff}
.ds-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ds-card{background:linear-gradient(160deg,#16314c,#0f2236);border:1px solid #25405c;border-radius:12px;padding:16px;display:flex;flex-direction:column}
.ds-card h3{font-size:15px;color:#d6e4f5;margin:0 0 10px;display:flex;align-items:center;gap:8px}
.ds-meta{font-size:12px;color:#9bb8d2;margin:3px 0}
.ds-meta b{color:#d6e4f5}
.ds-status{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:700;margin-bottom:8px;align-self:flex-start}
.ds-status.demo{background:rgba(255,180,60,.16);color:#ffb43c}
.ds-status.real{background:rgba(61,220,151,.16);color:#3ddc97}
.ds-toggle-row{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px dashed #2c4763}
.ds-cfg{margin-top:12px;display:none}
.ds-cfg.show{display:block}
.ds-cfg label{display:block;font-size:11.5px;color:#9bb8d2;margin:8px 0 3px}
.ds-cfg input,.ds-cfg select{width:100%;box-sizing:border-box;background:#0c1d2e;border:1px solid #2c4763;color:#e8edf4;border-radius:7px;padding:7px 9px;font-size:12px;font-family:inherit}
.ds-cfg input:focus,.ds-cfg select:focus{outline:none;border-color:#3b7ab8}
.ds-btn{background:rgba(59,159,224,.16);color:#d6e4f5;border:1px solid #3b7ab8;border-radius:7px;padding:6px 12px;font-size:12px;cursor:pointer}
.ds-btn:hover{background:rgba(59,159,224,.28)}
.ds-foot{margin-top:22px;text-align:center}
@media(max-width:900px){.ds-grid{grid-template-columns:1fr}}

/* ===== J1 移动端响应式：sidebar 抽屉 + 汉堡 + 遮罩 ===== */
#jay-hamburger{display:none;position:fixed;top:14px;left:14px;z-index:60;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.92);backdrop-filter:blur(6px);box-shadow:0 4px 16px rgba(26,35,50,.12);font-size:20px;color:var(--sea-deep);cursor:pointer;align-items:center;justify-content:center}
#jay-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,35,.45);z-index:40}
#jay-overlay.show{display:block}
aside.sidebar{overflow-y:auto}
@media(max-width:860px){
  aside.sidebar{transform:translateX(-100%);transition:transform .25s ease;box-shadow:none}
  aside.sidebar.open{transform:none;box-shadow:0 0 50px rgba(0,0,0,.45);z-index:55}
  #jay-hamburger{display:flex}
  main{margin-left:0;padding:60px 16px 24px 56px}
  .ov-data-table{overflow-x:auto}
  .st-country-grid{grid-template-columns:repeat(2,1fr)}
  .st-platform-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:520px){
  main{padding:56px 12px 20px 52px}
  .st-country-grid{grid-template-columns:1fr}
  .st-platform-grid{grid-template-columns:1fr}
}
/* === E2 企服对接弹窗 === */
.ent-modal-overlay{position:fixed;inset:0;background:rgba(15,30,50,.55);display:none;align-items:center;justify-content:center;z-index:200;padding:20px}
.ent-modal{background:#fff;border-radius:14px;max-width:460px;width:100%;padding:26px 28px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.ent-modal h3{margin:0 0 6px;font-size:19px;color:var(--sea-deep)}
.ent-modal .ent-sub{margin:0 0 16px;font-size:13px;color:var(--muted)}
.ent-field{margin-bottom:12px}
.ent-field label{display:block;font-size:12px;color:var(--ink);margin-bottom:5px;font-weight:600}
.ent-field input,.ent-field textarea{width:100%;border:1px solid #d4e4f7;border-radius:8px;padding:9px 11px;font-size:13px;font-family:inherit;box-sizing:border-box;outline:none}
.ent-field input:focus,.ent-field textarea:focus{border-color:var(--sea)}
.ent-btns{display:flex;gap:10px;margin-top:6px}
.ent-submit{flex:1;background:linear-gradient(135deg,#3b7ab8,#2c5f8a);color:#fff;border:0;border-radius:8px;padding:11px;font-size:14px;cursor:pointer;font-family:inherit}
.ent-cancel{background:transparent;border:1px solid #d4e4f7;color:var(--muted);border-radius:8px;padding:11px 16px;font-size:14px;cursor:pointer;font-family:inherit}
.ent-demo-note{font-size:11px;color:#9aa29e;margin:14px 0 0;line-height:1.5}
/* === D1 推送地址配置 === */
.st-push-cfg{margin-top:4px}
.st-push-cfg .st-field{margin-bottom:10px}
.st-push-cfg .st-field label{display:block;font-size:12px;color:var(--ink);margin-bottom:4px;font-weight:600}
.st-push-cfg .st-field input{width:100%;border:1px solid #d4e4f7;border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;box-sizing:border-box;outline:none}
.st-push-cfg .st-field input:focus{border-color:var(--sea)}
.st-push-note{font-size:11px;color:#9aa29e;margin:10px 0 0;line-height:1.5}
/* === H1 合规清单 === */
.pl-comp-card{background:#fff;border:1px solid #e2ecf3;border-radius:10px;padding:14px 16px;margin-bottom:12px}
.pl-comp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.pl-comp-head b{font-size:14px;color:#1a2332}
.pl-comp-lv{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:700}
.pl-comp-lv-high{background:#fde8e8;color:#c0392b}
.pl-comp-lv-mid{background:#fff4e0;color:#d68910}
.pl-comp-lv-low{background:#e8f6ee;color:#27ae60}
.pl-comp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pl-comp-grid>div{background:#f6fafd;border-radius:8px;padding:8px 10px}
.pl-comp-grid span{font-size:11px;color:var(--muted);display:block;margin-bottom:4px;font-weight:600}
.pl-comp-grid p{margin:0;font-size:12px;color:#3c4a43;line-height:1.5}
@media(max-width:760px){.pl-comp-grid{grid-template-columns:repeat(2,1fr)}}
/* === K1 通用空态 === */
.empty-state{text-align:center;padding:36px 16px;color:var(--muted)}
.empty-state .es-icon{font-size:34px;opacity:.5}
.empty-state p{margin:8px 0 0;font-size:13px}
.empty-state small{font-size:12px;color:#9aa29e}
.al-card.empty{border-style:dashed;background:#fafcfe}
/* === D-55 搜索高亮 + 搜索历史 === */
.search{position:relative}
mark.jay-hl{background:#fff3a0;color:#1f2d3d;border-radius:3px;padding:0 2px;font-weight:600}
#search-history{position:absolute;top:44px;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px rgba(20,40,80,.16);z-index:1300;display:none;padding:6px;max-height:330px;overflow:auto}
#search-history.show{display:block}
.jay-sh-head{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;font-size:12px;color:var(--muted)}
.jay-sh-clear{cursor:pointer;color:var(--sea-deep);font-weight:600}
.jay-sh-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13.5px;color:var(--ink)}
.jay-sh-item:hover{background:var(--sea-soft)}
.jay-sh-empty{padding:12px;color:var(--muted);font-size:13px}
/* === D-79 自主对比中心 + D-43 交互式图表 === */
.cmp-center{margin-top:26px;background:linear-gradient(180deg,#f7fbff,#fff);border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:0 4px 18px rgba(30,95,174,.06)}
.cmp-head h3{margin:0 0 4px;font-size:18px}
.cmp-head .t-sub{margin:0 0 14px;color:var(--muted);font-size:12.5px;line-height:1.6}
.cmp-tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.cmp-tab{border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 16px;border-radius:20px;font-size:13px;cursor:pointer;transition:.15s}
.cmp-tab:hover{border-color:var(--sea-deep);color:var(--sea-deep)}
.cmp-tab.active{background:var(--sea-deep);border-color:var(--sea-deep);color:#fff}
.cmp-picker-hint{font-size:12px;color:var(--muted);margin-bottom:8px}
.cmp-chips{display:flex;flex-wrap:wrap;gap:8px;max-height:172px;overflow:auto;padding:4px 2px}
.cmp-chip{border:1px solid var(--line);background:#fff;color:var(--ink);padding:6px 12px;border-radius:8px;font-size:12.5px;cursor:pointer;transition:.12s}
.cmp-chip:hover{border-color:var(--sea);background:var(--sea-soft)}
.cmp-chip.on{background:var(--sea-soft);border-color:var(--sea-deep);color:var(--sea-deep);font-weight:600}
.cmp-selected{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;min-height:20px}
.cmp-sel-empty{color:var(--muted);font-size:12px}
.cmp-sel-item{display:inline-flex;align-items:center;gap:6px;background:var(--sea-deep);color:#fff;padding:5px 6px 5px 12px;border-radius:18px;font-size:12.5px}
.cmp-sel-item button{border:none;background:rgba(255,255,255,.25);color:#fff;width:18px;height:18px;border-radius:50%;cursor:pointer;line-height:1;font-size:12px}
.cmp-actions{display:flex;gap:10px;margin:6px 0 16px}
.cmp-go{background:var(--sea-deep);color:#fff;border:none;padding:9px 22px;border-radius:8px;font-size:13px;cursor:pointer}
.cmp-go:hover{background:#16467f}
.cmp-clear{background:#fff;border:1px solid var(--line);color:var(--muted);padding:9px 18px;border-radius:8px;font-size:13px;cursor:pointer}
.cmp-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.cmp-metric{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.cmp-metric h4{margin:0 0 12px;font-size:13px;color:var(--ink)}
.cmp-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:13px}
.cmp-table th,.cmp-table td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line)}
.cmp-table th{background:#f3f8ff;color:var(--sea-deep);font-weight:600;font-size:12px}
.cmp-table tr:last-child td{border-bottom:none}
.cmp-ai-btn{margin-top:14px;background:linear-gradient(135deg,#1e3a5f,#3b7ab8);color:#fff;border:none;padding:10px 18px;border-radius:8px;font-size:13px;cursor:pointer}
.cmp-ai-btn:hover{opacity:.92}
.cmp-risk{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}
.cmp-risk-low{background:#e8f6ee;color:#2e9e6b}
.cmp-risk-mid{background:#fff5e0;color:#b8860b}
.cmp-risk-high{background:#fdecec;color:#e0556b}
/* 交互式条形图（D-43） */
.jay-bar-chart{display:flex;flex-direction:column;gap:9px}
.jay-bar-row{display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:8px;font-size:12px}
.jay-bar-name{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jay-bar-track{background:#eef3f8;border-radius:6px;height:16px;overflow:hidden}
.jay-bar-fill{display:block;height:100%;border-radius:6px;transition:width .4s ease;cursor:pointer}
.jay-bar-fill:hover{filter:brightness(1.08)}
.jay-bar-val{color:var(--ink);font-weight:600;white-space:nowrap}
.jay-bar-val small{color:var(--muted);font-weight:400;margin-left:2px}
@media(max-width:700px){.cmp-cards{grid-template-columns:1fr}.jay-bar-row{grid-template-columns:72px 1fr auto}}
/* D-46 移动端搜索框可用性 */
@media(max-width:700px){.header-tools{flex-wrap:wrap;row-gap:8px;width:100%}.search{flex:1 1 100%;order:-1}.search input{width:100%!important;box-sizing:border-box}#global-search{width:100%!important}.add-to-report-btn{display:none}}
/* D-79 对比方案本地保存 */
.cmp-save{background:#fff;border:1px solid var(--sea);color:var(--sea-deep);padding:9px 18px;border-radius:8px;font-size:13px;cursor:pointer}
.cmp-save:hover{background:var(--sea-soft)}
.cmp-schemes{margin-top:22px;border-top:1px dashed var(--line);padding-top:16px}
.cmp-schemes-head{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:10px}
.cmp-schemes-list{display:flex;flex-direction:column;gap:8px}
.cmp-scheme-item{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px}
.cmp-scheme-name{flex:1;font-size:13.5px;color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmp-scheme-meta{font-size:12px;color:var(--muted);white-space:nowrap}
.cmp-scheme-load{background:var(--sea-deep);color:#fff;border:none;padding:5px 12px;border-radius:6px;font-size:12px;cursor:pointer}
.cmp-scheme-del{background:#fff;border:1px solid #e2c2c2;color:#c0392b;padding:5px 10px;border-radius:6px;font-size:12px;cursor:pointer;line-height:1}
/* === 样式规范统一（前端优化批次） === */
.jay-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px}
.jay-section-title{font-size:16px;font-weight:700;margin:0 0 14px;display:flex;align-items:center;gap:8px}
.jay-section-title::after{content:'';flex:1;height:2px;background:linear-gradient(90deg,var(--sea),transparent);border-radius:2px}
.jay-muted{color:var(--muted);font-size:13px;line-height:1.6}
.jay-badge{display:inline-block;font:11px 'DM Mono';padding:2px 8px;border-radius:9px;background:var(--sea-soft);color:var(--sea-deep)}
.jay-badge.warn{background:#fbf0e2;color:#b9792f}
.jay-badge.ok{background:#e4f3ea;color:#2c7a4b}
.src-missing{color:#b9792f;font-size:12px}
.jay-fb{display:flex;align-items:center;gap:10px;margin-top:18px;padding:12px 14px;border-top:1px dashed var(--line);font-size:13px;color:var(--muted);flex-wrap:wrap}
.jay-fb button{border:1px solid var(--line);background:#fff;border-radius:14px;padding:4px 12px;cursor:pointer;font-size:13px;color:var(--ink)}
.jay-fb button:hover{border-color:var(--sea);color:var(--sea-deep)}
.jay-fb .jay-fb-done{color:#2c7a4b}
.jay-fb-float{position:fixed;left:18px;bottom:18px;z-index:30;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(30,60,90,.16);padding:10px 14px;display:flex;align-items:center;gap:8px;font-size:13px;max-width:92vw}
.jay-fb-float .jay-fb-q{color:var(--muted)}
.jay-fb-float button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:4px 10px;cursor:pointer;font-size:13px;color:var(--ink)}
.jay-fb-float button:hover{border-color:var(--sea);color:var(--sea-deep)}
.jay-fb-float.done{color:#2c7a4b}
.jay-role-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.jay-seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.jay-seg button{border:0;background:#fff;padding:7px 14px;cursor:pointer;font-size:13px;color:var(--muted)}
.jay-seg button.active{background:var(--sea);color:#fff}

/* === 团队与权限 === */
.st-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.st-role-pill{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;background:#eef3f8;color:#617386}
.st-role-pill.owner{background:#e6f4eb;color:#2c7a4b}.st-role-pill.admin{background:#e7f0ff;color:#2c63a4}.st-role-pill.member{background:#f1f3f5;color:#617386}
.st-workspace-card{background:linear-gradient(180deg,#fbfdff,#fff);border:1px solid #dfeaf4;border-radius:10px;padding:18px 20px}
.st-inline-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.st-muted-inline{font-size:11px;color:var(--muted)}
.st-inline-notice{border:1px solid #e6d5a8;background:#fff9e8;color:#7d6426;border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.6;margin-bottom:16px}
.st-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;margin-top:14px}.st-members-table{width:100%;border-collapse:collapse;min-width:620px;font-size:12px}.st-members-table th,.st-members-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #edf1f5;vertical-align:middle}.st-members-table th{background:#f7fafd;color:var(--muted);font-size:11px;font-weight:600}.st-members-table tr:last-child td{border-bottom:0}.st-members-table small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.st-member-name{font-weight:600;color:var(--ink)}.st-table-empty{text-align:center;color:var(--muted);padding:22px!important}.st-member-select{border:1px solid var(--line);background:#fff;border-radius:5px;padding:5px 7px;font:12px 'Noto Sans SC';color:var(--ink)}.st-role-text{font-size:12px;color:var(--ink)}.st-status-text{font-size:11px}.st-status-text.ok{color:#2c7a4b}.st-status-text.pending{color:#b9792f}.st-status-text.muted{color:var(--muted)}
.legal-page{max-width:900px;margin:0 auto;padding:10px 0 44px}.legal-head{padding:14px 0 18px}.legal-head h2{margin:6px 0;font-size:25px;color:var(--ink)}.legal-head p{margin:0;color:var(--muted);font-size:12px}.legal-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px 28px}.legal-card h3{font-size:15px;margin:0 0 8px;color:var(--ink);padding-top:14px;border-top:1px solid #edf1f5}.legal-card h3:first-child{padding-top:0;border-top:0}.legal-card p{font-size:13px;line-height:1.8;color:#455463;margin:0 0 10px}
.admin-console{max-width:1100px;margin:0 auto;padding:10px 0 44px}.admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.admin-head h2{margin:5px 0;font-size:24px}.admin-head p{margin:0;color:var(--muted);font-size:12px}.admin-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:18px}.admin-metrics article,.admin-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px}.admin-metrics span{display:block;color:var(--muted);font-size:11px}.admin-metrics b{display:block;margin-top:6px;font-size:24px;color:var(--sea-deep)}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-card h3{margin:0 0 12px;font-size:15px}.admin-list{display:flex;flex-direction:column;gap:8px}.admin-row{border:1px solid #edf1f5;border-radius:7px;padding:10px 12px}.admin-row strong{font-size:12px;color:var(--ink)}.admin-row small{display:block;margin-top:4px;font-size:11px;color:var(--muted)}.admin-empty{padding:20px;text-align:center;color:var(--muted);font-size:12px}.admin-evidence-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.admin-evidence{display:inline-flex;padding:3px 7px;border:1px solid var(--line);border-radius:4px;font-size:11px;line-height:1.4}.admin-evidence.is-passed{border-color:#8cc7a5;background:#edf8f1;color:#21633b}.admin-evidence.is-missing{border-color:#e2b0aa;background:#fff1ef;color:#8b2f25}@media(max-width:900px){.admin-metrics{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}}@media(max-width:520px){.admin-metrics{grid-template-columns:1fr}.admin-head{display:block}.admin-head button{margin-top:12px}}
@media(max-width:720px){.st-wrap{display:block}.st-side{width:auto;border-radius:8px 8px 0 0;display:grid;grid-template-columns:repeat(2,1fr);padding:6px}.st-side-btn{padding:10px 12px;border-left:0;border-bottom:2px solid transparent}.st-side-btn.active{border-left:0;border-bottom-color:var(--orange)}.st-main{border-left:1px solid var(--line);border-top:0;border-radius:0 0 8px 8px;padding:20px 16px}.st-form-row{flex-direction:column;gap:12px}.st-section-head{align-items:flex-start}}
