:root{--bg: #f6f1e7;--card: #fffdf8;--ink: #3d342a;--muted: #8a7d6b;--line: #e8ddcb;--primary: #d97742;--primary-dark: #b95f30;--ok: #3f8c5f;--warn: #c77b2e;--err: #c0392b;--chip-bg: #f0e6d6;--radius: 14px;--shadow: 0 2px 10px rgba(61, 52, 42, .08)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,sans-serif;line-height:1.6}#root{min-height:100vh}.app{max-width:960px;margin:0 auto;padding:12px 12px 40px;min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:14px 4px 10px;gap:12px}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--primary),#e8a55c);color:#fff;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}.brand h1{margin:0;font-size:20px;line-height:1.2}.tagline{margin:0;font-size:12px;color:var(--muted)}.agency-chip{display:flex;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:6px 12px;font-size:13px;color:var(--muted);box-shadow:var(--shadow)}.notice{padding:10px 14px;border-radius:10px;margin:6px 0;font-size:14px;border:1px solid}.notice-info{background:#eef4fb;border-color:#b8d4ef;color:#2c5f8a}.notice-success{background:#eaf5ee;border-color:#b7ddc5;color:var(--ok)}.notice-error{background:#fdeeec;border-color:#eec2bb;color:var(--err)}.notice-warn{background:#fdf3e2;border-color:#ecd9b0;color:var(--warn)}.tabs{display:flex;gap:6px;overflow-x:auto;padding:6px 2px;margin-bottom:12px;scrollbar-width:thin}.tab{flex-shrink:0;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:8px 14px;border-radius:20px;font-size:14px;cursor:pointer;transition:all .15s}.tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.content{flex:1}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:var(--shadow)}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.card-head h2,.card h2{margin:0 0 8px;font-size:18px}.card-foot{margin-top:12px;text-align:right}.stat-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:20px;font-weight:700}.stat-value.money{color:var(--ok)}.stat-value.rep{color:var(--primary-dark)}.stat-value small{font-size:12px;color:var(--muted);font-weight:400}.rep-bar{height:6px;background:#eee3d2;border-radius:3px;overflow:hidden;margin-top:4px}.rep-fill{height:100%;background:linear-gradient(90deg,#e8a55c,var(--primary))}.order-list{display:flex;flex-direction:column;gap:10px}.order-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fffdf8}.order-completed{background:#f3faf4}.order-cancelled{background:#faf7f2;opacity:.75}.order-main{flex:1;min-width:220px}.order-title{display:flex;align-items:center;gap:8px;margin-bottom:4px}.order-meta{display:flex;gap:14px;color:var(--muted);margin-top:6px;flex-wrap:wrap}.order-actions{display:flex;gap:8px;align-items:center;align-self:center}.progress-steps{display:flex;gap:8px;margin:14px 0}.step{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--muted)}.step-num{width:28px;height:28px;border-radius:50%;background:#eee3d2;color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.step.done .step-num{background:var(--ok);color:#fff}.step.current .step-num{background:var(--primary);color:#fff}.step-label{font-size:11px}.event-block{margin-top:6px}.event-narrative{background:#faf3e6;border-radius:10px;padding:12px 14px;margin-bottom:12px}.event-badge{display:inline-block;background:var(--primary);color:#fff;font-size:12px;border-radius:12px;padding:2px 10px;margin-bottom:6px}.event-narrative p{margin:4px 0 0}.settle-block{margin-top:8px;text-align:center}.settle-list{list-style:none;padding:0;max-width:420px;margin:10px auto;text-align:left}.settle-list li{display:flex;justify-content:space-between;padding:6px 10px;border-bottom:1px dashed var(--line)}.settle-summary{background:#faf3e6;border-radius:10px;padding:10px 14px;margin:10px 0}.ok-text{color:var(--ok);font-weight:600}.dim-text{color:var(--muted)}.question-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}.question-card.q-done{border-color:#d8e6d0}.q-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.pill{display:inline-block;font-size:12px;border-radius:12px;padding:2px 10px;background:var(--chip-bg);color:#7a6b58;white-space:nowrap}.pill-ok{background:#dff0e4;color:var(--ok)}.pill-warn{background:#fbead2;color:var(--warn)}.pill-dim{background:#efe9df;color:var(--muted)}.q-stem{font-size:15px;margin:0 0 12px}.tf-row{display:flex;gap:10px}.tf-btn{flex:1;max-width:160px;padding:12px;font-size:16px;font-weight:600;border:2px solid var(--line);background:#fff;border-radius:10px;cursor:pointer;color:var(--ink)}.tf-btn.selected{border-color:var(--primary);background:#fdf1e2;color:var(--primary-dark)}.option-list{display:flex;flex-direction:column;gap:8px}.option{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;text-align:left;color:var(--ink);font-size:14px}.option.selected{border-color:var(--primary);background:#fdf1e2}.opt-letter{font-weight:700;color:var(--primary-dark);min-width:20px}.opt-check{margin-left:auto;color:var(--primary-dark);font-weight:700}.q-actions{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.feedback{margin-top:12px;border-radius:10px;padding:10px 14px;font-size:14px}.fb-right{background:#eaf5ee;border:1px solid #b7ddc5}.fb-wrong{background:#fdeeec;border:1px solid #eec2bb}.fb-head{margin-bottom:4px}.correct-answer{color:var(--err)}.fb-analysis{white-space:pre-wrap;color:#4d4437;font-size:13.5px;margin-top:6px;padding-top:6px;border-top:1px dashed rgba(0,0,0,.1)}.error-text{color:var(--err);font-size:13px}.btn{border:1px solid var(--line);border-radius:10px;padding:8px 16px;font-size:14px;cursor:pointer;background:#fff;color:var(--ink);transition:all .15s;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:#f3e9d8;border-color:#e4d3b6;color:#7a5b34}.btn-ghost{background:transparent;border-color:var(--line);color:var(--muted)}.btn-danger{background:var(--err);border-color:var(--err);color:#fff}.btn.small{padding:4px 10px;font-size:12px}.filter-bar{padding:12px 14px}.filter-row{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.filter-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.filter-group.grow{flex:1}.filter-group.grow input{width:100%;min-width:160px}.filter-label{font-size:12px;color:var(--muted);margin-right:2px}.chip{border:1px solid var(--line);background:#fff;border-radius:14px;padding:4px 12px;font-size:12.5px;cursor:pointer;color:var(--ink)}.chip.on{background:var(--primary);border-color:var(--primary);color:#fff}.chip-dim{opacity:.7}select,input{border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:14px;background:#fff;color:var(--ink);font-family:inherit}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}.question-list{display:flex;flex-direction:column;gap:12px}.q-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.q-item-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}.fav-btn{border:none;background:none;font-size:20px;color:#d9c9ad;cursor:pointer}.fav-btn.on{color:#e8a33d}.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px 0}.progress{height:18px;background:#eee3d2;border-radius:9px;overflow:hidden;margin:10px 0;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,#e8a55c,var(--primary));transition:width .2s}.progress span{position:absolute;right:8px;top:0;font-size:11px;line-height:18px}.oral-item{background:#fffdf8}.oral-answer{margin-top:8px}.oral-extra{margin-top:6px;padding:6px 10px;background:#f6f1e7;border-radius:8px}.self-rate{display:flex;align-items:center;gap:6px;margin-top:10px;flex-wrap:wrap}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.sub-tabs{display:flex;gap:6px;margin-bottom:12px}.sub-tab{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:6px 14px;font-size:13px;cursor:pointer;color:var(--muted)}.sub-tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}.settings-list{margin:6px 0;padding-left:18px}.danger-zone{border-color:#eec2bb}.empty{text-align:center;padding:26px 14px;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:12.5px}.onboarding{max-width:560px;margin:40px auto;text-align:center}.onboarding .row{justify-content:center}.onboarding input{flex:1;min-width:220px;max-width:320px}.onboarding-status{display:flex;flex-direction:column;align-items:center;gap:6px;margin:12px 0}.app-footer{margin-top:24px;padding-top:12px;border-top:1px solid var(--line);font-size:11.5px;color:var(--muted);text-align:center}@media (max-width: 640px){.brand h1{font-size:17px}.order-card{flex-direction:column}.order-actions{align-self:flex-end}.stat-value{font-size:18px}.tab{padding:7px 12px;font-size:13px}.app-header{flex-direction:column;align-items:flex-start}}.empty-order{max-width:560px;margin:48px auto;padding:32px 36px;background:var(--card-bg, #fffdf5);border:1px solid var(--border, #e8dcc8);border-radius:12px;text-align:center}.empty-order h3{margin:0 0 12px;font-size:20px}.empty-order p{margin:0 0 20px;line-height:1.7}.immerse-start,.immerse-summary{max-width:640px;margin:12px auto;text-align:center}.immerse-start h3,.immerse-summary h3{margin-bottom:8px}.immerse-start .notice{text-align:left;margin-bottom:12px}.immerse{max-width:720px;margin:0 auto}.immerse-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}.immerse-top .muted{flex:1;text-align:right}.immerse-progress{height:6px;border-radius:3px;background:var(--border, #e5e7eb);overflow:hidden;margin-bottom:14px}.immerse-bar{height:100%;background:var(--primary, #2563eb);transition:width .3s ease}.immerse-current{box-shadow:0 6px 24px #00000014}.immerse-current .q-actions{justify-content:center;padding:14px 0 4px}@media (max-width: 640px){.immerse-current .option{min-height:44px}.immerse-top{flex-wrap:wrap}}.sub-title{font-size:14px;margin:14px 0 6px}.pill-role{background:#eef3fb;color:#2c4a7c}.pill-count{background:#f2f0e8;color:#6b5f3a}.pill-scene{background:#eaf5ee;color:#2f6b45;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.category-cell{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;background:var(--bg, #fafafa)}.category-cell.is-empty{border-style:dashed;background:transparent}.category-name{font-weight:600;font-size:14px}.category-titles{flex-wrap:wrap}.training-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.training-card{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}.training-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.training-head h3{margin:0;font-size:16px}.scenario-bg{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin:10px 0}.scenario-bg dt{font-size:12px;color:var(--muted)}.scenario-bg dd{margin:2px 0 0;font-size:13px}.scenario-lead{border-left:3px solid var(--accent, #c98b2d)}.scenario-wrong{margin:6px 0;padding-left:18px;font-size:13px;display:flex;flex-direction:column;gap:4px}@media (max-width: 640px){.scenario-run .btn,.scenario-start .btn,.training-card .btn{min-height:44px}.scenario-home .card{padding:12px}}.data-source{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;border-radius:10px;font-size:13px;border:1px solid var(--line, #e3e3e3)}.data-source.ok{background:#f2fbf5;color:#1d6b3a}.data-source.warn{background:#fff6e8;color:#8a5200;border-color:#f0d3a6}.bank-bootstrap{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 16px 0;padding:10px 14px;border-radius:12px;border:1px solid #f0d3a6;background:#fff8ee;color:#6b4200;font-size:13px}.bank-bootstrap.failed{border-color:#e7b4b4;background:#fff2f2;color:#8a1f1f}.bank-bootstrap .progress{flex:1 1 220px;min-width:160px;margin:0}.bank-bootstrap .muted{flex-basis:100%;font-size:12px}.hb-source code{font-size:12px;background:#f5f5f5;padding:1px 4px;border-radius:4px}.hb-warn-line{color:#8a5200}.speech-body{white-space:pre-wrap;line-height:1.7;font-size:14px;margin:8px 0;padding:10px 12px;background:#fafafa;border-radius:10px;max-height:420px;overflow:auto}.speech-en{background:#f4f7fb}.exam-config{margin-bottom:12px}.quota-report{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.exam-head{position:sticky;top:0;z-index:5}.exam-timer{font-size:18px;display:flex;align-items:center;gap:8px}.exam-nav .nav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:4px;margin:8px 0;max-height:200px;overflow:auto}.nav-cell{min-height:30px;border-radius:6px;border:1px solid var(--line, #e3e3e3);background:#fff;font-size:12px;cursor:pointer}.nav-done{background:#e6f6ec;border-color:#b7e2c6;color:#1d6b3a}.nav-todo{background:#fff}.nav-marked{outline:2px solid #f0a742;outline-offset:-2px}.nav-current{border-color:#3b6ef6;font-weight:700}.legend{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid var(--line, #e3e3e3);vertical-align:middle}.exam-question .option{display:flex;gap:8px;text-align:left}.exam-question .option.on{border-color:#3b6ef6;background:#eef3ff}.opt-letter{font-weight:700}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:#fff;border-radius:12px;padding:16px;max-width:420px;display:flex;flex-direction:column;gap:10px}.score-line{display:flex;align-items:baseline;gap:8px}.score{font-size:28px}.type-breakdown,.result-options{display:flex;flex-direction:column;gap:4px}.result-options{list-style:none;padding-left:0;font-size:13px}.opt-correct{color:#1d6b3a;font-weight:600}.rule-details{margin-top:10px;overflow-x:auto}.rule-table{width:100%;border-collapse:collapse;font-size:12px}.rule-table th,.rule-table td{border:1px solid var(--line, #e6e6e6);padding:6px;vertical-align:top;text-align:left}@media (max-width: 640px){.exam-session .btn,.hubei-materials .btn{min-height:44px}.nav-cell{min-height:40px}}.gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--bg)}.gate-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 20px;display:flex;flex-direction:column;gap:10px}.gate-title{margin:0;font-size:20px}.gate-label{font-size:13px;color:var(--muted)}.gate-input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:16px}.gate-input:focus{outline:2px solid var(--primary);outline-offset:1px}.gate-error{margin:0;color:var(--err);font-size:13px}.gate-note{margin:4px 0 0}@media (max-width: 640px){.gate-card .btn{min-height:44px}}.analysis-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.analysis-counts{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 0;padding:0;list-style:none;font-size:12px;color:var(--muted)}.analysis-counts li{background:var(--chip-bg);border-radius:999px;padding:3px 10px}
