
:root{--primary:#1E3A8A;--primary-light:#EFF6FF;--primary-mid:#3B82F6;--primary-dark:#1E2A5E;--accent:#6366F1;--accent-light:#EEF2FF;--success:#10B981;--success-light:#ECFDF5;--warning:#F59E0B;--warning-light:#FFFBEB;--error:#EF4444;--error-light:#FEF2F2;--text:#111827;--text-secondary:#6B7280;--text-tertiary:#9CA3AF;--bg:#FFFFFF;--bg-secondary:#F9FAFB;--bg-tertiary:#F3F4F6;--border:#E5E7EB;--border-dark:#D1D5DB;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1);--radius:8px;--radius-lg:12px}
*{margin:0;padding:0;box-sizing:border-box}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes fadeIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
body{font-family:-apple-system,'Segoe UI','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;color:var(--text);background:var(--bg-secondary);line-height:1.6;min-height:100vh}

.top-nav{position:sticky;top:0;z-index:100;background:var(--primary);padding:4px 24px;display:flex;align-items:center;box-shadow:var(--shadow-md);min-height:48px}
.top-nav .brand{color:#fff;font-weight:800;font-size:18px;padding:8px 20px 8px 0;border-right:1px solid rgba(255,255,255,.2);margin-right:32px;cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:6px}
.top-nav .nav-info{color:rgba(255,255,255,.7);font-size:13px;flex:1}
.top-nav .nav-actions{display:flex;align-items:center;gap:12px}
.nav-status{font-size:11px;padding:3px 10px;border-radius:20px;font-weight:600}
.nav-status.active{background:rgba(16,185,129,.2);color:#34D399}
.nav-status.draft{background:rgba(255,255,255,.15);color:rgba(255,255,255,.7)}

.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center;padding:40px}
.welcome h2{font-size:28px;color:var(--primary);margin-bottom:12px}
.welcome p{font-size:16px;color:var(--text-secondary);margin-bottom:24px;max-width:500px}
.welcome-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.welcome-features{max-width:520px;margin:24px auto 0;font-size:13px;color:var(--text-secondary);line-height:2}
.ws-list-section{max-width:700px;margin:0 auto;text-align:left}
.ws-list-section h3{font-size:16px;font-weight:600;text-align:center}
.ws-type-cards{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}
.ws-type-card:hover{transform:translateY(-4px)!important;box-shadow:0 12px 40px rgba(0,0,0,.2)!important}
.ws-list-item{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;cursor:pointer;transition:all .15s}
.ws-list-item:hover{border-color:var(--primary-mid);box-shadow:var(--shadow-md)}
.ws-list-item .ws-info{flex:1;min-width:0}
.ws-list-item .ws-name{font-weight:600;font-size:15px;color:var(--primary);margin-bottom:2px}
.ws-list-item .ws-meta{font-size:12px;color:var(--text-secondary);display:flex;gap:16px}
.ws-list-item .ws-status{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500;white-space:nowrap}
.ws-list-item .ws-status.active{background:var(--success-light);color:var(--success)}
.ws-list-item .ws-status.draft{background:var(--bg-tertiary);color:var(--text-secondary)}
.ws-list-item .ws-arrow{color:var(--text-tertiary);font-size:18px;margin-left:8px}

.app-shell{display:none;flex-direction:column;height:calc(100vh - 46px)}
.app-shell.show{display:flex}
.app-header{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--border);background:var(--bg)}
.app-header-left{display:flex;align-items:center;gap:14px}
.app-header-title{font-size:18px;font-weight:700;color:var(--primary)}
.app-header-sub{font-size:13px;color:var(--text-secondary)}
.app-header-right{display:flex;align-items:center;gap:10px}
.app-body{display:flex;flex:1;overflow:hidden}
.app-sidebar{width:210px;background:var(--bg);border-right:1px solid var(--border);padding:12px 0;flex-shrink:0;overflow-y:auto}
.sidebar-item{display:flex;align-items:center;gap:10px;padding:10px 20px;font-size:14px;color:var(--text-secondary);cursor:pointer;transition:all .15s;border-right:3px solid transparent;text-decoration:none}
.sidebar-item:hover{background:var(--bg-secondary);color:var(--text)}
.sidebar-item.active{background:var(--primary-light);color:var(--primary);font-weight:600;border-right-color:var(--primary)}
.sidebar-item .icon{width:18px;text-align:center;font-size:15px}
.sidebar-divider{height:1px;background:var(--border);margin:8px 16px}
.app-main{flex:1;overflow-y:auto;padding:24px;background:var(--bg-secondary)}
.page-content{display:none}
.page-content.active{display:block;width:100%}

.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 15px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s;white-space:nowrap}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}
.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:#4F46E5}
.btn-outline{background:#fff;color:var(--text);border-color:var(--border-dark)}.btn-outline:hover{background:var(--bg-secondary)}
.btn-ai{background:linear-gradient(135deg,var(--primary-mid),var(--accent));color:#fff;font-weight:600;box-shadow:0 2px 8px rgba(99,102,241,.3)}
.btn-ai:hover{box-shadow:0 4px 12px rgba(99,102,241,.4);transform:translateY(-1px)}
.btn-ai:disabled{opacity:.6;transform:none;cursor:wait}
.btn-sm{padding:4px 10px;font-size:12px}
.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669}
.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#DC2626}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}
.mobile-view .btn-outline,#mobile-problems .btn-outline,#mobile-scenario .btn-outline,#mobile-survey .btn-outline{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.25)}.mobile-view .btn-outline:hover,#mobile-problems .btn-outline:hover,#mobile-scenario .btn-outline:hover,#mobile-survey .btn-outline:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.4)}
select option{color:#111;background:#fff}

.card{background:#fff;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:20px;margin-bottom:16px}
.card-title{font-size:16px;font-weight:600;margin-bottom:12px;color:var(--text)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.stat-card{background:#fff;border-radius:var(--radius);border:1px solid var(--border);padding:14px 18px;box-shadow:var(--shadow-sm)}
.stat-value{font-size:26px;font-weight:700;color:var(--primary)}
.stat-label{font-size:12px;color:var(--text-secondary);margin-top:2px}

.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}
.tag-primary{background:var(--primary-light);color:var(--primary)}
.tag-success{background:var(--success-light);color:var(--success)}
.tag-warning{background:var(--warning-light);color:var(--warning)}
.tag-error{background:var(--error-light);color:var(--error)}
.tag-ai{background:var(--accent-light);color:var(--accent)}

.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}

/* 作战地图 — 行动项卡片列表（讲师端复盘类）
   展示方式对齐「小组作战室」的行动项卡片（状态药丸 + 标题 + 字段网格 + 元信息 + 关联问题），
   但沿用讲师端令牌（白底卡片 / --border / --shadow / --primary 等），避免引入作战室移动端配色。 */
.bm-list{display:flex;flex-direction:column;gap:28px}
.bm-item{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-sm);transition:box-shadow .15s,border-color .15s}
.bm-item:hover{box-shadow:var(--shadow-md);border-color:var(--border-dark)}
.bm-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.bm-item-head{display:flex;align-items:center;gap:8px;min-width:0}
.bm-item-title{font-size:17px;font-weight:600;color:var(--text);line-height:1.4;word-break:break-word}
.bm-item-actions{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.bm-item-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px;margin-bottom:10px}
.bm-item-field{min-width:0}
.bm-item-field .lbl{font-size:12px;color:var(--text-tertiary);font-weight:600;margin-bottom:3px;letter-spacing:.02em}
.bm-item-field .val{font-size:15px;color:var(--text);line-height:1.6;white-space:pre-wrap;word-break:break-word}
.bm-item-field .val.empty{color:var(--text-tertiary)}
.bm-item-meta{display:flex;flex-wrap:wrap;gap:6px 18px;padding-top:10px;border-top:1px solid var(--border);font-size:14px;color:var(--text-secondary)}
.bm-item-meta b{color:var(--text-tertiary);font-weight:600;margin-right:4px}
.bm-item-rc{margin-top:8px}
.bm-rc-chip{display:inline-flex;align-items:center;gap:4px;background:var(--primary-light);color:var(--primary);border:1px solid #C7D2FE;border-radius:4px;padding:2px 8px;font-size:11px;cursor:pointer;max-width:100%}
.bm-rc-chip .txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px}
.bm-empty{text-align:center;padding:30px 16px;color:var(--text-tertiary);font-size:13px}
@media(max-width:560px){.bm-item-grid{grid-template-columns:1fr}}

/* 作战地图 — 聚合视图：状态筛选条 + 按小组分组 */
.bm-filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.bm-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px}
.bm-toolbar #bm-add-wrap{margin:0;padding:0;text-align:left}
.bm-filter{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);border-radius:999px;font-size:13px;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family-primary)}
.bm-filter:hover{border-color:var(--primary-light);color:var(--text-primary)}
.bm-filter.active{background:var(--primary);border-color:var(--primary);color:#fff}
.bm-filter-cnt{font-size:11px;font-weight:700;background:rgba(0,0,0,.08);border-radius:999px;padding:0 6px;min-width:18px;text-align:center}
.bm-filter.active .bm-filter-cnt{background:rgba(255,255,255,.25);color:#fff}
.bm-group-sec{margin-bottom:18px}
.bm-group-sec:last-child{margin-bottom:0}
.bm-group-items{display:flex;flex-direction:column;gap:28px}
.bm-group-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:6px;border-bottom:1px dashed var(--border)}
.bm-group-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.bm-group-name{font-size:15px;font-weight:700;color:var(--text-primary)}
.bm-group-count{font-size:12px;color:var(--text-tertiary);margin-left:2px}
.bm-pill{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;white-space:nowrap}
.bm-act-btn{display:inline-flex;align-items:center;gap:4px;font-family:inherit;font-size:13px;font-weight:600;line-height:1;padding:7px 14px;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}
.bm-act-view{background:#fff;color:#1E40AF;border-color:#C7D2FE}
.bm-act-view:hover{background:#EFF4FF;border-color:#1E40AF}
.bm-act-del{background:#fff;color:#DC2626;border-color:#FCA5A5}
.bm-act-del:hover{background:#FEF2F2;border-color:#DC2626}
.bm-act-submit{background:#fff;color:#1E40AF;border-color:#C7D2FE}
.bm-act-submit:hover{background:#EFF4FF;border-color:#1E40AF}
.bm-num{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:6px;background:#EEF2FF;color:#1E40AF;font-size:12px;font-weight:700;margin-right:8px;flex-shrink:0}
/* 作战地图 · 行动项详情弹窗（参考小组作战室「新建行动项」双栏结构，讲师端风格） */
.bm-iv-cols{display:grid;grid-template-columns:0.8fr 1.8fr;gap:24px;align-items:stretch}
.bm-iv-form{min-width:0}
.bm-iv-form .form-group label{font-weight:600;font-size:13px;color:var(--text-secondary)}
.bm-iv-rc{min-width:0;display:flex;flex-direction:column;height:100%;min-height:0;border:1px solid var(--border);border-radius:12px;background:var(--bg-secondary);padding:14px}
.bm-iv-sec-head,.bm-iv-rc-head{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;color:var(--text-secondary);margin-bottom:12px}
.bm-iv-rc-head.empty{color:#EF4444}
.bm-iv-sec-head{padding-bottom:10px;border-bottom:1px solid var(--border)}
.bm-iv-actions{margin-top:20px}
.bm-iv-actions .btn{padding:10px 28px;font-size:15px;font-weight:600;border-radius:9px}
.bm-iv-grp{font-size:12px;font-weight:600;color:#1E40AF;background:#EEF2FF;border:1px solid #C7D2FE;border-radius:999px;padding:2px 10px;white-space:nowrap}
/* 关联根因多选面板（小组作战室 + 讲师端作战地图详情页共用，按问题归总） */
.gr-rc-list{display:block}
.bm-iv-rc-list-wrap{flex:1 1 auto;min-height:0;overflow:auto;margin-top:6px;border:1px solid var(--border,#E2E8F0);border-radius:10px;background:#fff;padding:2px 0}
.gr-rc-empty{padding:18px 12px;text-align:center;color:var(--text-tertiary,#94A3B8);font-size:12px;line-height:1.6}
.gr-rc-group{border-bottom:1px solid var(--border,#E2E8F0)}
.gr-rc-group:last-child{border-bottom:none}
.gr-rc-group.hidden{display:none}
.gr-rc-gh{display:flex;align-items:center;gap:8px;padding:9px 8px;cursor:pointer;user-select:none;font-size:12px;font-weight:700;color:var(--primary,#6366F1)}
.gr-rc-gh input{width:15px;height:15px;accent-color:var(--primary,#6366F1);cursor:pointer;flex-shrink:0}
.gr-rc-gh-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gr-rc-gh-n{font-weight:400;color:var(--text-tertiary,#94A3B8)}
.gr-rc-gh-caret{flex-shrink:0;color:var(--text-tertiary,#94A3B8);transition:transform .15s}
.gr-rc-group.collapsed .gr-rc-gh-caret{transform:rotate(-90deg)}
.gr-rc-group.collapsed .gr-rc-opts{display:none}
.gr-rc-opts{padding:2px 8px 8px 30px}
.gr-rc-opt{display:flex;align-items:flex-start;gap:8px;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:13px;line-height:1.45}
.gr-rc-opt:hover{background:var(--bg-secondary,#F8FAFC)}
.gr-rc-opt input{margin-top:3px;flex-shrink:0;width:15px;height:15px;accent-color:var(--primary,#6366F1);cursor:pointer}
.gr-rc-opt-txt{flex:1;min-width:0;word-break:break-word}
.gr-rc-opt.hidden{display:none}
.bm-iv-rc-count{font-size:12px;font-weight:600;color:var(--primary,#6366F1);background:var(--primary-100,#EEF2FF);padding:2px 8px;border-radius:999px;margin-left:4px}
/* 关联根因 chips（与小组作战室 .gr-rc-chip 共用同一套样式，确保两端视觉一致） */
.gr-rc-chip{display:inline-flex;align-items:center;align-self:flex-start;max-width:100%;font-size:11px;padding:2px 8px;border-radius:4px;background:#ECFDF5;color:#065F46}
.gr-rc-chip.gr-rc-more{background:#F1F5F9;color:#475569}
.bm-iv-rc-chips{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
/* 作战地图 · 新树状视图：提出小组 → 问题 → 接受小组行动项 */
.bm-raise-sec{margin-bottom:22px}
.bm-raise-sec:last-child{margin-bottom:0}
.bm-raise-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;background:var(--bg-secondary);border-radius:10px;cursor:pointer;user-select:none}
.bm-raise-head:hover{background:var(--bg-tertiary)}
.bm-raise-un .bm-raise-head{background:#F1F5F9}
.bm-caret{font-size:18px;color:var(--text-secondary);width:18px;text-align:center;flex-shrink:0;transition:transform .15s;line-height:1}
.bm-raise-sec.collapsed .bm-raise-body{display:none}
.bm-raise-body{margin-top:8px;padding-left:6px;border-left:2px solid var(--border);margin-left:6px}
.bm-problem-sec{margin:14px 0}
.bm-problem-sec:first-child{margin-top:4px}
.bm-problem-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;cursor:pointer;user-select:none;flex-wrap:wrap}
.bm-problem-head:hover .bm-problem-content{color:var(--primary-mid)}
.bm-problem-sec.collapsed .bm-problem-body{display:none}
.bm-problem-sec.collapsed .bm-problem-rc{display:none}
.bm-kpi-badge{font-size:11px;font-weight:700;color:#1E3A8A;background:#EEF2FF;border:1px solid #C7D2FE;border-radius:999px;padding:2px 10px;white-space:nowrap;flex-shrink:0}
.bm-problem-content{font-size:14px;font-weight:600;color:var(--text);line-height:1.4;flex:1;min-width:120px;word-break:break-word}
.bm-problem-count{font-size:12px;color:var(--text-tertiary);margin-left:auto;flex-shrink:0}
.bm-problem-rc{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px 20px}
.bm-rc-inline{font-size:11px;color:#065F46;background:#ECFDF5;border:1px solid #A7F3D0;border-radius:4px;padding:2px 8px;line-height:1.4}
.bm-problem-body{display:flex;flex-direction:column;gap:12px;padding-left:14px;margin-top:6px}
.bm-item-accept{position:relative}
.bm-item-accept-by{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);margin-bottom:8px}
.bm-accept-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.bm-iv-prob{font-size:12px;font-weight:600;color:#1E40AF;background:#EEF2FF;border:1px solid #C7D2FE;border-radius:999px;padding:2px 10px;white-space:nowrap;max-width:420px;overflow:hidden;text-overflow:ellipsis}
.bm-act-ok{background:#fff;color:#065F46;border-color:#A7F3D0}
.bm-act-ok:hover{background:#ECFDF5;border-color:#065F46}
.bm-act-no{background:#fff;color:#991B1B;border-color:#FCA5A5}
.bm-act-no:hover{background:#FEF2F2;border-color:#991B1B}
@media(max-width:720px){.bm-iv-cols{grid-template-columns:1fr;gap:16px}}
th{text-align:left;padding:9px 12px;background:var(--bg-tertiary);font-weight:600;color:var(--text-secondary);border-bottom:2px solid var(--border);font-size:12px;white-space:nowrap}
td{padding:9px 12px;border-bottom:1px solid var(--border)}
tr:hover td{background:var(--bg-secondary)}
tr.row-error td{background:var(--error-light)}
tr.row-warn td{background:var(--warning-light)}
tr.row-selected td{background:#EFF6FF!important}

.upload-zone{border:2px dashed var(--border-dark);border-radius:var(--radius-lg);padding:40px;text-align:center;background:var(--bg-secondary);transition:all .2s;cursor:pointer}
.upload-zone:hover{border-color:var(--primary-mid);background:var(--primary-light)}
.upload-zone .dz-icon{font-size:36px;margin-bottom:10px;color:var(--text-tertiary)}
.upload-zone .dz-title{font-size:16px;font-weight:600;margin-bottom:4px}
.upload-zone .dz-desc{font-size:13px;color:var(--text-secondary)}

.group-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.group-card{background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border);padding:20px;position:relative;overflow:hidden;transition:box-shadow .2s;display:flex;flex-direction:column}
.group-card:hover{box-shadow:var(--shadow-md)}
.gr-enter-wrap{margin-top:auto;padding-top:12px}
.group-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px}
.group-card.g0::before{background:#3B82F6}.group-card.g1::before{background:#10B981}.group-card.g2::before{background:#F59E0B}
.group-card.g3::before{background:#EF4444}.group-card.g4::before{background:#8B5CF6}.group-card.g5::before{background:#EC4899}
.group-card.g6::before{background:#06B6D4}.group-card.g7::before{background:#F97316}.group-card.g8::before{background:#14B8A6}.group-card.g9::before{background:#6366F1}
.group-name{font-size:16px;font-weight:700;margin-bottom:4px;display:flex;align-items:center;gap:8px;cursor:pointer}
.group-name:hover{color:var(--primary-mid)}
.group-name-candidates{font-size:11px;color:var(--text-tertiary);margin-bottom:8px}
.group-members{font-size:13px;color:var(--text-secondary);margin-top:8px}
.group-member{display:flex;align-items:center;gap:8px;padding:3px 0;cursor:grab;user-select:none;border-radius:4px;transition:background .15s}
.group-member:hover{background:var(--bg-secondary)}
.group-member:active{cursor:grabbing}
.group-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;flex-shrink:0}
.group-member-info{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.group-actions{margin-top:10px;display:flex;gap:6px}
.group-member[draggable]{cursor:grab}.group-member[draggable]:active{cursor:grabbing}
.group-card.drag-over{border:2px dashed var(--primary);background:var(--primary-light)}

.preview-stats{display:flex;gap:16px;align-items:center;margin-bottom:12px;font-size:13px}.preview-stats b{font-size:16px}
.config-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:12px}
.config-item-label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}
.config-item-label span:last-child{font-weight:600}
.config-item-bar{height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}
.config-item-bar .fill{height:100%;border-radius:3px;transition:width .3s}

.plan-tabs{display:flex;gap:8px;margin-bottom:16px}
.plan-tab{flex:1;padding:14px;border-radius:var(--radius);cursor:pointer;text-align:center;border:2px solid var(--border);transition:all .2s;background:#fff}
.plan-tab:hover{border-color:var(--primary-mid)}
.plan-tab.selected{border-color:var(--primary);background:var(--primary-light)}
.plan-tab .score{font-size:22px;font-weight:700;color:var(--primary)}
.plan-tab .score-label{font-size:11px;color:var(--text-secondary);margin-top:2px}
.plan-tab .rank-label{font-size:13px;font-weight:600}

.anim-container{position:relative;width:100%;height:360px;background:#0F172A;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:16px}
.anim-container canvas{display:block}
.anim-overlay{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.7);color:#fff;padding:8px 20px;border-radius:20px;font-size:14px}
.anim-progress{position:absolute;bottom:0;left:0;height:3px;background:linear-gradient(90deg,#3B82F6,#8B5CF6);transition:width .3s}

.ai-badge{display:inline-flex;align-items:center;gap:4px;background:var(--accent-light);color:var(--accent);padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600}
.ai-insight-card{background:var(--accent-light);border:1px solid rgba(99,102,241,.2);border-radius:var(--radius);padding:10px 14px;font-size:13px;color:var(--accent);margin-top:8px}

.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:999;display:none}
.modal-overlay.show{display:flex}
.modal{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:24px;width:90%;max-width:480px;max-height:80vh;overflow-y:auto}
.modal h3{margin-bottom:14px;color:var(--primary);font-size:16px}

.loading-overlay{position:fixed;inset:0;background:rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;z-index:1000;display:none}
.loading-overlay.show{display:flex}
.loading-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:28px 40px;text-align:center;max-width:360px}
.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary-mid);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 14px}
@keyframes spin{to{transform:rotate(360deg)}}

.toast{position:fixed;top:60px;right:20px;background:#fff;padding:12px 20px;border-radius:8px;box-shadow:var(--shadow-lg);font-size:14px;z-index:2000;animation:slideIn .3s;display:none;max-width:380px}
.toast.show{display:block}
.toast.success{border-left:4px solid var(--success)}
.toast.error{border-left:4px solid var(--error)}
.toast.warn{border-left:4px solid var(--warning)}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}

.quiz-layout{display:grid;grid-template-columns:1fr 360px;gap:16px}
.quiz-main{min-width:0}.quiz-side{min-width:0}
.quiz-question-stage{text-align:center;padding:40px 24px;background:#0F172A;border-radius:var(--radius-lg);color:#fff;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.quiz-question-num{font-size:14px;color:rgba(255,255,255,.5);margin-bottom:12px}
.quiz-question-text{font-size:26px;font-weight:700;max-width:600px;line-height:1.5;margin-bottom:8px}
.quiz-question-cat{font-size:12px;color:rgba(255,255,255,.5);margin-bottom:20px}
.quiz-countdown{width:100px;height:100px;border-radius:50%;border:4px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;position:relative}
.quiz-countdown .num{font-size:48px;font-weight:800;font-family:monospace}
.quiz-countdown.go .num{color:#34D399}
.quiz-countdown.buzz .num{color:#FBBF24}
.quiz-buzz-result{font-size:18px;font-weight:600;margin-top:8px}
.quiz-buzz-result.win{color:#34D399}.quiz-buzz-result.lose{color:var(--error)}
.quiz-answer-reveal{font-size:16px;margin-top:12px;padding:8px 20px;border-radius:8px}
.quiz-answer-reveal.correct{background:rgba(16,185,129,.15);color:#34D399}
.quiz-answer-reveal.incorrect{background:rgba(239,68,68,.15);color:#F87171}
.quiz-explanation{font-size:13px;color:rgba(255,255,255,.6);max-width:500px;margin:12px auto 0;line-height:1.5}
.quiz-controls{display:flex;gap:10px;align-items:center;margin-top:16px;justify-content:center;flex-wrap:wrap}
.quiz-controls .btn{padding:10px 24px;font-size:15px}

.ranking-list{margin:0}
.ranking-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}
.ranking-row:last-child{border-bottom:none}
.ranking-pos{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}
.ranking-pos.gold{background:#FEF3C7;color:#92400E}.ranking-pos.silver{background:#F1F5F9;color:#64748B}
.ranking-pos.bronze{background:#FEF2F2;color:#991B1B}.ranking-pos.normal{background:var(--bg-tertiary);color:var(--text-secondary)}
.ranking-name{width:120px;font-size:13px;font-weight:600;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ranking-bar-wrap{flex:1;height:28px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden;position:relative}
.ranking-bar-fill{height:100%;border-radius:4px;transition:width .5s;display:flex;align-items:center;padding-left:8px}
.ranking-score{font-size:13px;font-weight:700;color:var(--text);position:absolute;right:8px;top:50%;transform:translateY(-50%)}

.buzz-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:16px}
.buzz-group-btn{padding:14px;border-radius:var(--radius);border:2px solid transparent;cursor:pointer;text-align:center;font-weight:600;font-size:15px;transition:all .15s;position:relative}
.buzz-group-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md)}
.buzz-group-btn:disabled{opacity:.4;cursor:not-allowed}
.buzz-group-btn .light{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%}
.buzz-group-btn .light.on{background:#34D399;box-shadow:0 0 8px #34D399;animation:blink .6s infinite}
@keyframes blink{50%{opacity:.3}}.buzz-group-btn.answered{opacity:.5}

.champion-section{text-align:center;padding:40px;background:#0F172A;border-radius:var(--radius-lg);color:#fff}
.champion-section h2{font-size:32px;margin-bottom:8px}
.champion-name{font-size:40px;font-weight:800;background:linear-gradient(135deg,#F59E0B,#FBBF24);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:12px 0}
.champion-stats{font-size:14px;color:rgba(255,255,255,.6)}
.confetti{position:fixed;pointer-events:none;z-index:3000;animation:fall 2s ease-out forwards}
@keyframes fall{0%{opacity:1;transform:translateY(0) rotate(0)}100%{opacity:0;transform:translateY(100vh) rotate(720deg)}}

.swap-active{background:var(--warning-light)!important;outline:2px solid var(--warning);outline-offset:-2px;animation:pulse .8s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,.4)}50%{box-shadow:0 0 0 6px rgba(245,158,11,0)}}

.empty-state{text-align:center;padding:50px 20px;color:var(--text-tertiary)}.empty-state .icon{font-size:40px;margin-bottom:10px}
.form-group{margin-bottom:12px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:4px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;transition:border .2s;background:#fff}
.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-mid);box-shadow:0 0 0 3px rgba(59,130,246,.1)}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.flex-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.flex-between{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}
.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}
.text-sm{font-size:13px}.text-xs{font-size:11px}.text-center{text-align:center}
.quiz-q-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--border);font-size:13px}
.quiz-q-row:hover{background:var(--bg-secondary)}
.quiz-q-row .q-index{width:30px;text-align:center;font-weight:600;color:var(--text-secondary)}
.quiz-q-row .q-content{flex:1}
.quiz-q-row .q-answer{width:50px;text-align:center;font-weight:600;font-size:12px}
.quiz-q-row .q-actions{width:60px;text-align:right}
.quiz-tab{padding:4px 12px;font-size:13px;cursor:pointer;border-radius:4px;color:var(--text-secondary);transition:all .2s}.quiz-tab:hover{background:var(--bg-secondary)}.quiz-tab.active{background:var(--primary);color:#fff}
.quiz-q-current{background:var(--primary-light)!important;font-weight:600}

/* Mobile View */
.mobile-view{display:none;position:fixed;inset:0;z-index:500;flex-direction:column;overflow:hidden;background:linear-gradient(135deg,#0F172A 0%,#1E3A8A 50%,#0F172A 100%)}
.mobile-view::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(59,130,246,.15),transparent 50%),radial-gradient(circle at 80% 20%,rgba(139,92,246,.1),transparent 50%),radial-gradient(circle at 50% 50%,rgba(6,182,212,.08),transparent 60%);pointer-events:none;z-index:0}
.mobile-view.show{display:flex}
.mobile-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;color:#fff;font-weight:600;font-size:15px;position:relative;z-index:1;backdrop-filter:blur(12px);background:rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.1)}
.mobile-header .score{font-size:22px;font-weight:800;background:linear-gradient(135deg,#60A5FA,#A78BFA);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.mobile-tabs{display:flex;position:relative;z-index:1;background:rgba(0,0,0,.2);margin:0 12px;margin-top:10px;border-radius:12px;padding:3px}
.mobile-tab{flex:1;text-align:center;padding:8px 12px;font-size:13px;font-weight:600;color:rgba(255,255,255,.5);cursor:pointer;transition:all .25s;border-radius:10px;position:relative;z-index:1}
.mobile-tab.active{color:#fff;background:rgba(59,130,246,.35);box-shadow:0 2px 8px rgba(59,130,246,.2)}
.ms-tab{color:rgba(255,255,255,.45);background:transparent;user-select:none}
.ms-tab.active{color:#fff;background:rgba(59,130,246,.4);box-shadow:0 1px 3px rgba(0,0,0,.15)}
.mobile-tab:not(.active):hover{color:rgba(255,255,255,.8);background:rgba(255,255,255,.06)}
.mobile-body{flex:1;display:flex;flex-direction:column;align-items:center;padding:24px 20px 40px 20px;color:#fff;text-align:center;position:relative;z-index:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.mobile-q-num{font-size:12px;opacity:.5;margin-bottom:12px;letter-spacing:1px;text-transform:uppercase}
.mobile-q-text{font-size:21px;font-weight:700;max-width:340px;line-height:1.5;margin-bottom:28px;text-shadow:0 2px 12px rgba(0,0,0,.3)}
.mobile-buzz-btn{width:170px;height:170px;border-radius:50%;background:radial-gradient(circle at 40% 40%,rgba(59,130,246,.3),rgba(15,23,42,.6));border:2px solid rgba(59,130,246,.5);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;color:#fff;transition:all .2s;animation:buzzPulse 2s infinite;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;box-shadow:0 0 40px rgba(59,130,246,.2),inset 0 0 30px rgba(59,130,246,.1);position:relative}
.mobile-buzz-btn::before{content:'';position:absolute;inset:-3px;border-radius:50%;border:1px solid rgba(59,130,246,.3);animation:buzzRing 2s infinite}
.mobile-buzz-btn:hover{transform:scale(1.05);box-shadow:0 0 60px rgba(59,130,246,.4),inset 0 0 40px rgba(59,130,246,.15)}
.mobile-buzz-btn:active{transform:scale(.92);animation:none;background:rgba(59,130,246,.5)!important;box-shadow:0 0 80px rgba(59,130,246,.6),inset 0 0 50px rgba(59,130,246,.3)}
@keyframes buzzPulse{0%,100%{box-shadow:0 0 40px rgba(59,130,246,.2),inset 0 0 30px rgba(59,130,246,.1)}50%{box-shadow:0 0 60px rgba(59,130,246,.5),inset 0 0 40px rgba(59,130,246,.2)}}
@keyframes buzzRing{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.06);opacity:1}}
@keyframes pulse-icon{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
.mobile-answer-row{display:flex;gap:14px;margin:24px 0;justify-content:center;align-items:center;padding:0 12px}
.mobile-answer-btn{flex:1;max-width:180px;height:76px;border-radius:22px;border:2px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;font-size:22px;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.15);-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;backdrop-filter:blur(8px)}
.mobile-answer-btn:active{transform:scale(.92);transition:all .1s ease}
.mobile-answer-btn.yes{background:linear-gradient(135deg,rgba(16,185,129,.18),rgba(16,185,129,.06));color:#34D399;border-color:rgba(52,211,153,.35);backdrop-filter:blur(12px)}
.mobile-answer-btn.yes:active{background:linear-gradient(135deg,rgba(16,185,129,.4),rgba(16,185,129,.25));box-shadow:0 0 40px rgba(52,211,153,.5),0 6px 24px rgba(52,211,153,.3);border-color:rgba(52,211,153,.7)}
.mobile-answer-btn.no{background:linear-gradient(135deg,rgba(239,68,68,.18),rgba(239,68,68,.06));color:#F87171;border-color:rgba(248,113,113,.35);backdrop-filter:blur(12px)}
.mobile-answer-btn.no:active{background:linear-gradient(135deg,rgba(239,68,68,.4),rgba(239,68,68,.25));box-shadow:0 0 40px rgba(248,113,113,.5),0 6px 24px rgba(248,113,113,.3);border-color:rgba(248,113,113,.7)}
.mobile-answer-btn .btn-label{font-size:26px;font-weight:800;line-height:1;position:relative;z-index:2}
.mobile-answer-btn .btn-icon{font-size:26px;line-height:1;opacity:.9;position:relative;z-index:2;transition:transform .2s ease}
.mobile-answer-btn:active .btn-icon{transform:scale(1.3);transition:transform .1s ease}
.mobile-answer-btn.yes::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(52,211,153,.4);transform:translate(-50%,-50%);transition:width .6s,height .6s,opacity .4s;z-index:0}
.mobile-answer-btn.yes:active::after{width:300px;height:300px;opacity:0}
.mobile-answer-btn.no::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(248,113,113,.4);transform:translate(-50%,-50%);transition:width .6s,height .6s,opacity .4s;z-index:0}
.mobile-answer-btn.no:active::after{width:300px;height:300px;opacity:0}
.mobile-countdown{font-size:56px;font-weight:800;font-family:'Courier New',monospace;margin:16px 0;text-shadow:0 0 30px rgba(59,130,246,.5)}
.mobile-result{font-size:18px;font-weight:700;margin:12px 0;padding:8px 20px;border-radius:10px;background:rgba(255,255,255,.08);backdrop-filter:blur(4px)}
.mobile-status{font-size:13px;opacity:.6;margin-top:8px;letter-spacing:.5px}
.mobile-other-buzz{font-size:14px;opacity:.85;padding:12px 24px;border-radius:12px;background:rgba(255,255,255,.08);backdrop-filter:blur(8px)}
.mobile-footer{padding:12px 16px;text-align:center;color:rgba(255,255,255,.3);font-size:11px;position:relative;z-index:1;letter-spacing:.5px}
.msv-sel{background:rgba(59,130,246,.2)!important;border-color:#3B82F6!important;color:#60A5FA!important}
.msv-tags label{font-size:14px;padding:8px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.15);cursor:pointer;color:rgba(255,255,255,.6);transition:all .15s;display:inline-flex;align-items:center;gap:4px}
.open-mobile-btn{margin-left:8px;font-size:12px;padding:3px 10px;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:4px;cursor:pointer}
.open-mobile-btn:hover{background:rgba(255,255,255,.25)}

.scenario-dashboard{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.scenario-card{transition:all .2s ease}
.mobile-pick-btn{display:block;width:100%;padding:14px 16px;border:1px solid rgba(255,255,255,.15);border-radius:12px;background:rgba(255,255,255,.08);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;text-align:center;backdrop-filter:blur(4px)}.mobile-pick-btn:hover{background:rgba(255,255,255,.15);transform:translateY(-1px);border-color:rgba(255,255,255,.25)}.mobile-pick-btn:active{transform:scale(.97);background:rgba(59,130,246,.25);border-color:rgba(59,130,246,.5)}
.scenario-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.1)}
.scenario-detail img{cursor:pointer;transition:transform .2s}
.scenario-detail img:hover{transform:scale(1.05)}
.img-lightbox{display:none;position:fixed;z-index:9999;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.9);flex-direction:column;align-items:center;justify-content:center;padding:20px}
.img-lightbox.show{display:flex}
.img-lightbox img{max-width:92vw;max-height:80vh;border-radius:4px;box-shadow:0 8px 40px rgba(0,0,0,.5)}

@media(max-width:768px){.stats{grid-template-columns:repeat(2,1fr)}.group-grid{grid-template-columns:1fr}.config-grid{grid-template-columns:repeat(2,1fr)}.quiz-layout{grid-template-columns:1fr}}
