:root{font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#1f2937;background:radial-gradient(circle at 8% 8%,#d1fae5 0,transparent 38%),radial-gradient(circle at 92% 2%,#d1fae5 0,transparent 44%),radial-gradient(circle at 86% 82%,#fef3c7 0,transparent 34%),linear-gradient(155deg,#f0fdf4,#f9fafb 46%,#f3f4f6);--bg-panel: rgba(255, 255, 255, .9);--bg-panel-strong: #ffffff;--line-soft: #d1fae5;--line-strong: #a7f3d0;--text-primary: #1f2937;--text-secondary: #6b7280;--brand-500: #10b981;--brand-600: #059669;--brand-700: #047857;--success-500: #10b981;--warning-500: #f59e0b;--danger-500: #ef4444;--shadow-soft: 0 16px 42px rgba(16, 185, 129, .1);--shadow-float: 0 24px 52px rgba(16, 185, 129, .16)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text-primary);background:transparent}.page{padding:24px 20px 28px}.container{max-width:1280px;margin:0 auto;display:grid;gap:16px}.panel{background:var(--bg-panel);border-radius:18px;border:1px solid #d1fae5;box-shadow:var(--shadow-soft);padding:18px;backdrop-filter:blur(2px)}.controls-panel{display:grid;gap:14px}.preface-panel{display:grid;gap:8px;background:radial-gradient(circle at 18% 20%,rgba(209,250,229,.7),transparent 36%),linear-gradient(160deg,#fff,#f0fdf4 56%,#ecfdf5)}.preface-badge{width:fit-content;border-radius:999px;border:1px solid #a7f3d0;background:#d1fae5;color:#065f46;font-size:12px;padding:4px 12px;letter-spacing:.2px}.preface-title{margin:0;color:#064e3b;font-size:30px;line-height:1.28}.preface-desc{margin:0;color:#6b7280;font-size:14px;line-height:1.6}.hero-controls-panel{overflow:hidden}.controls-panel-condensed .upload-dropzone{min-height:220px}.hero-controls-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px}.hero-main{min-width:0}.upload-dropzone{position:relative;display:block;min-height:320px;border-radius:18px;border:2px dashed #a7f3d0;background:radial-gradient(circle at 12% 18%,rgba(209,250,229,.55),transparent 40%),linear-gradient(145deg,#f9fafb,#f0fdf4 48%,#ecfdf5);cursor:pointer;transition:all .22s ease}.upload-dropzone:hover{border-color:#6ee7b7;box-shadow:var(--shadow-float);transform:translateY(-1px)}.upload-dropzone.is-dragging{border-color:#34d399;background:radial-gradient(circle at 14% 20%,rgba(167,243,208,.65),transparent 42%),linear-gradient(145deg,#ecfdf5,#d1fae5 46%,#a7f3d0)}.upload-dropzone.is-ready{border-color:#10b981}.upload-dropzone.is-error{border-color:#fca5a5}.upload-dropzone.is-loading{pointer-events:none}.upload-input{display:none}.upload-dropzone-inner{position:absolute;inset:0;padding:26px;display:grid;align-content:center;justify-items:center;text-align:center;gap:10px}.upload-icon{width:56px;height:56px;border-radius:14px;border:1px solid #a7f3d0;background:linear-gradient(180deg,#fff,#d1fae5);box-shadow:0 10px 24px #10b98126;position:relative}.upload-icon:before{content:"";position:absolute;inset:14px;border-radius:10px;border:2px solid #10b981;border-top-color:transparent;transform:rotate(45deg)}.upload-title{margin:0;color:#064e3b;font-size:22px;line-height:1.4}.upload-subtitle{margin:0;color:#6b7280;font-size:14px}.upload-action-hint{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.upload-action-chip{border-radius:999px;border:1px solid #a7f3d0;background:#d1fae5;color:#065f46;font-size:12px;padding:5px 12px}.upload-action-chip.muted{border-color:#d1fae5;color:#6b7280;background:#f0fdf4}.upload-loading-line{width:72%;height:4px;border-radius:999px;background:linear-gradient(90deg,#6ee7b7,#10b981,#6ee7b7);background-size:200% 100%;animation:upload-line 1.4s linear infinite}@keyframes upload-line{0%{background-position:0% 50%}to{background-position:100% 50%}}.hero-side{display:grid;gap:12px;align-content:start}.side-card{border-radius:14px;border:1px solid #d1fae5;background:#fff;padding:12px;display:grid;gap:10px}.side-card-title{margin:0;color:#064e3b;font-size:15px}.subject-select,.grade-button{height:48px;border-radius:12px;border:1px solid #a7f3d0;background:#fff;color:#064e3b;font-size:14px;padding:0 12px}.grade-button{border:1px solid #059669;background:linear-gradient(180deg,#10b981,#059669);color:#fff;font-weight:700;cursor:pointer}.grade-button-wide{width:100%}.grade-button:disabled,.subject-select:disabled{opacity:.55;cursor:not-allowed}.meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.meta-stat{border:1px solid #d1fae5;border-radius:10px;background:#f0fdf4;padding:8px;display:grid;gap:4px}.meta-stat small{color:#6b7280;font-size:12px}.meta-stat strong{color:#064e3b;font-size:14px;line-height:1.2;word-break:break-word}.status-text{margin:0;font-size:14px;color:#059669;line-height:1.5}.error-text{margin:0;padding:10px 12px;border-radius:8px;background:#ffe9e9;border:1px solid #f4b8b8;color:#9b2323;font-size:14px}.capability-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.capability-card{border-radius:14px;border:1px solid #d1fae5;background:linear-gradient(180deg,#fff,#f0fdf4);padding:14px}.capability-card h3{margin:0;color:#064e3b;font-size:16px}.capability-card p{margin:8px 0 0;color:#6b7280;font-size:13px;line-height:1.55}.file-overview-panel{display:grid;gap:10px}.file-overview-head h3{margin:0;color:#064e3b}.file-overview-head p{margin:6px 0 0;color:#6b7280;font-size:13px}.file-list{margin:0;padding:0;list-style:none;border-radius:12px;border:1px solid #d1fae5;background:#fff;overflow:hidden}.file-list li{display:flex;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid #ecfdf5;font-size:14px;color:#065f46}.file-list li:last-child{border-bottom:0}.summary-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.summary-item{border-radius:10px;border:1px solid #d1fae5;padding:10px;display:flex;flex-direction:column;gap:6px}.summary-item strong{font-size:18px;color:#064e3b}.summary-item span{color:#6b7280;font-size:13px}.score-summary{background:#d1fae5;border-color:#a7f3d0}.visual-report-panel{display:grid;gap:12px}.visual-report-head h3{margin:0;font-size:18px;color:#064e3b}.visual-report-head p{margin:6px 0 0;color:#6b7280;font-size:13px}.decision-rate-bar{height:12px;border-radius:999px;overflow:hidden;background:#f0fdf4;display:flex}.decision-segment{height:100%}.segment-correct{background:#18a765}.segment-partial{background:#f1ae3a}.segment-wrong{background:#e05252}.decision-rate-labels{display:flex;gap:16px;flex-wrap:wrap;color:#6b7280;font-size:13px}.visual-pages-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px}.visual-page-card{border:1px solid #d1fae5;border-radius:10px;background:#f9fafb;padding:10px;display:grid;gap:8px}.visual-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.visual-page-head h4{margin:0;font-size:14px;color:#064e3b}.visual-page-head p{margin:4px 0 0;font-size:12px;line-height:1.4;color:#6b7280}.visual-page-mini{display:inline-flex;gap:4px}.visual-page-mini span{display:inline-flex;min-width:22px;height:22px;align-items:center;justify-content:center;border-radius:6px;font-size:12px;font-weight:700;color:#fff}.mini-correct{background:#18a765}.mini-partial{background:#e79b20}.mini-wrong{background:#d74e4e}.visual-canvas{position:relative;border-radius:8px;overflow:hidden;border:1px solid #d1fae5;background:#f0fdf4;aspect-ratio:4 / 3}.visual-image{width:100%;height:100%;object-fit:contain;display:block}.visual-noimage{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#6783a2;font-size:13px}.answer-region{position:absolute;border:2px dashed;border-radius:6px;pointer-events:none}.region-correct{border-color:#18a765f2;background:#18a7651f}.region-partial{border-color:#f1ae3af2;background:#f1ae3a1f}.region-wrong{border-color:#e05252f2;background:#e052521f}.score-marker{position:absolute;transform:translate(-50%,-50%);min-width:48px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 8px;color:#fff;font-weight:700;font-size:11px;box-shadow:0 4px 12px #0003;pointer-events:auto}.score-marker em{font-style:normal;opacity:.9;max-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-marker strong{font-size:12px;line-height:1}.marker-correct{background:linear-gradient(180deg,#1cb972,#14915a)}.marker-partial{background:linear-gradient(180deg,#f2b03d,#d38815)}.marker-wrong{background:linear-gradient(180deg,#ea5c5c,#c83f3f)}.insight-panel{display:grid;gap:14px;border-color:#a7f3d0;background:radial-gradient(circle at 92% 2%,rgba(209,250,229,.48),transparent 44%),linear-gradient(180deg,#fff,#f0fdf4)}.insight-head{display:grid;gap:8px}.insight-head h3{margin:0;color:#064e3b;font-size:24px;letter-spacing:.3px}.insight-head p{margin:0;color:#6b7280;font-size:14px;line-height:1.6}.model-chip-row{display:flex;flex-wrap:wrap;gap:8px}.model-chip{border-radius:999px;border:1px solid #a7f3d0;background:linear-gradient(180deg,#f0fdf4,#d1fae5);color:#065f46;font-size:12px;padding:5px 12px;font-weight:700}.focus-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.focus-card{border-radius:12px;border:1px solid #a7f3d0;background:linear-gradient(180deg,#fff,#ecfdf5);padding:12px;display:grid;gap:6px;box-shadow:0 10px 20px #10b98114;position:relative}.focus-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:12px 0 0 12px;background:linear-gradient(180deg,#10b981,#34d399)}.focus-card small{color:#6b7280;font-size:12px}.focus-card strong{color:#064e3b;font-size:26px;line-height:1.25}.focus-card p{margin:0;color:#6b7280;font-size:13px;line-height:1.5}.insight-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.insight-kpi-card{border-radius:12px;border:1px solid #d1fae5;background:#fff;padding:10px;display:grid;gap:4px;box-shadow:0 8px 20px #10b98112}.insight-kpi-card span{color:#6b7280;font-size:12px}.insight-kpi-card strong{color:#064e3b;font-size:24px;line-height:1.2}.insight-kpi-card strong small{margin-left:4px;color:#6b7280;font-size:13px;font-weight:600}.insight-kpi-card p{margin:0;color:#6b7280;font-size:12px;line-height:1.4}.insight-kpi-card.tone-excellent{border-color:#c8ecd9;background:#f5fff9}.insight-kpi-card.tone-normal{border-color:#d1fae5;background:#f0fdf4}.insight-kpi-card.tone-risk{border-color:#f2d7d7;background:#fff8f8}.insight-main-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.insight-block{border-radius:12px;border:1px solid #a7f3d0;background:#fff;padding:14px;display:grid;gap:12px;box-shadow:0 12px 28px #10b98114;position:relative}.insight-block:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;border-radius:12px 12px 0 0;background:linear-gradient(90deg,#10b981,#34d399)}.insight-block-head h4{margin:0;color:#064e3b;font-size:17px}.insight-block-head p{margin:5px 0 0;color:#6b7280;font-size:13px;line-height:1.5}.ability-list,.error-list,.reason-list,.knowledge-list,.challenge-list{display:grid;gap:9px}.ability-item,.reason-item{border-radius:10px;border:1px solid #d1fae5;padding:9px;display:grid;gap:6px}.ability-row,.error-row,.reason-row,.knowledge-row,.challenge-row,.recommendation-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.ability-row span,.error-row span,.reason-row span,.knowledge-row span,.challenge-row span,.ability-row strong,.error-row strong,.reason-row strong,.knowledge-row strong,.challenge-row strong{color:#064e3b;font-size:13px}.ability-track,.error-track,.knowledge-track{height:8px;border-radius:999px;background:#f0fdf4;overflow:hidden}.ability-track i,.error-track i,.knowledge-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#34d399,#10b981)}.ability-item p,.error-item p,.reason-item p,.challenge-item p,.challenge-item small{margin:0;color:#6b7280;font-size:12px;line-height:1.5}.reason-meta{display:flex;flex-wrap:wrap;gap:8px;color:#6b7280;font-size:12px}.reason-priority{border-radius:999px;padding:2px 9px;font-size:12px;border:1px solid transparent}.priority-high{background:#ffeaea;color:#a53737;border-color:#f2bcbc}.priority-medium{background:#fff4df;color:#8d6106;border-color:#f1dba8}.priority-low{background:#e9f8ef;color:#1b7a49;border-color:#bfe7d2}.reason-action{border-radius:8px;background:linear-gradient(180deg,#ecfdf5,#f6faff);border:1px solid #d1fae5;padding:7px 8px;color:#065f46}.knowledge-meta{display:flex;flex-wrap:wrap;gap:8px;color:#6b7280;font-size:12px}.knowledge-level{border-radius:999px;padding:2px 9px;border:1px solid transparent}.level-精通{background:#e6f9ef;color:#187949;border-color:#bde7d0}.level-稳定{background:#d1fae5;color:#065f46;border-color:#a7f3d0}.level-待巩固{background:#fff5df;color:#8f6508;border-color:#f1ddab}.level-高风险{background:#ffeaea;color:#a13636;border-color:#f3c0c0}.prediction-block{align-content:start}.prediction-risk-row{display:flex;justify-content:space-between;align-items:center}.prediction-risk-label{color:#6b7280;font-size:13px}.risk-pill{border-radius:999px;padding:3px 12px;font-size:12px;font-weight:700}.risk-low{color:#197445;background:#e6f7ef}.risk-medium{color:#8d6005;background:#fff3df}.risk-high{color:#a53535;background:#ffe9e9}.prediction-score-box{border-radius:10px;border:1px solid #a7f3d0;background:linear-gradient(180deg,#d1fae5,#f0fdf4);padding:10px;display:grid;gap:5px}.prediction-score-box small{color:#6b7280;font-size:12px}.prediction-score-box strong{color:#064e3b;font-size:30px;line-height:1.2}.prediction-score-box p{margin:0;color:#6b7280;font-size:12px}.prediction-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.prediction-metrics div{border:1px solid #d1fae5;border-radius:10px;background:#f0fdf4;padding:8px;display:grid;gap:3px}.prediction-metrics small{color:#6b7280;font-size:11px}.prediction-metrics strong{color:#064e3b;font-size:14px}.prediction-note{margin:0;border-radius:9px;padding:9px 10px;background:linear-gradient(90deg,#d1fae5,#ecfdf5);border:1px solid #d1fae5;color:#065f46;font-size:13px}.phase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.phase-card{border:1px solid #a7f3d0;border-radius:10px;background:linear-gradient(180deg,#f0fdf4,#f0fdf4);padding:8px;display:grid;gap:3px}.phase-insight{margin:0;border-radius:8px;border:1px solid #d1fae5;background:#ecfdf5;color:#065f46;padding:8px 10px;font-size:13px;line-height:1.5}.phase-card span{color:#6b7280;font-size:12px}.phase-card strong{color:#064e3b;font-size:15px}.trend-mini-bars{border:1px solid #d1fae5;border-radius:10px;background:#f9fafb;min-height:102px;display:flex;align-items:flex-end;gap:4px;padding:8px}.trend-bar{flex:1;min-width:6px;border-radius:5px 5px 2px 2px}.trend-correct{background:linear-gradient(180deg,#3dc27e,#1c975f)}.trend-partial{background:linear-gradient(180deg,#f0ba59,#ce8f1a)}.trend-wrong{background:linear-gradient(180deg,#e56f6f,#c64c4c)}.challenge-item{border:1px solid #d1fae5;border-radius:10px;padding:9px;display:grid;gap:4px}.narrative-block{gap:12px}.parent-plan-block{border-color:#a7f3d0;background:linear-gradient(180deg,#fff,#f0fdf4)}.parent-plan-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.parent-plan-list li{border:1px solid #a7f3d0;border-radius:10px;background:linear-gradient(180deg,#f0fdf4,#ecfdf5);padding:10px}.parent-plan-list p{margin:6px 0 0;color:#6b7280;font-size:13px;line-height:1.5}.plan-goal{margin-top:8px;color:#065f46;font-weight:600}.plan-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}.plan-columns h5{margin:0 0 6px;color:#064e3b;font-size:13px}.plan-columns ul{margin:0;padding-left:18px;display:grid;gap:5px}.plan-columns li{color:#5a7897;font-size:13px;line-height:1.45}.plan-acceptance{margin-top:8px;border-radius:8px;background:#d1fae5;border:1px solid #a7f3d0;padding:8px 10px;color:#065f46;font-weight:600}.recommendation-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.recommendation-list li{border:1px solid #d1fae5;border-radius:10px;background:#f0fdf4;padding:10px}.recommendation-head span{border-radius:999px;border:1px solid #a7f3d0;background:#d1fae5;color:#065f46;font-size:12px;padding:2px 8px}.recommendation-head strong{color:#064e3b;font-size:14px}.recommendation-list p{margin:6px 0 0;color:#6b7280;font-size:13px;line-height:1.5}.empty-tip{margin:0;color:#6b7280;font-size:13px}.filter-panel{display:flex;flex-wrap:wrap;gap:8px}.filter-button{height:36px;border-radius:8px;border:1px solid #a7f3d0;background:#f0fdf4;color:#065f46;padding:0 12px;cursor:pointer}.filter-button-active{border-color:#10b981;background:#d1fae5;color:#064e3b;font-weight:700}.warning-panel{border-color:#f3d5a7;background:#fff9ef;color:#7d5200}.warning-panel p{margin:0;font-size:14px;line-height:1.5}.questions-panel{display:grid;gap:12px}.source-group{border:1px solid #d1fae5;border-radius:12px;padding:12px;background:#f9fafb;display:grid;gap:10px}.source-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.source-header-text h3{margin:0;font-size:16px;color:#064e3b}.source-header-text p{margin:4px 0 0;color:#6b7280;font-size:13px}.source-thumb{width:140px;height:96px;border-radius:8px;object-fit:cover;border:1px solid #d1fae5}.source-thumb-empty{width:140px;height:96px;border-radius:8px;border:1px dashed #a7f3d0;color:#6b7280;display:flex;align-items:center;justify-content:center;font-size:13px}.source-questions{display:grid;gap:10px}.question-card{border:1px solid #d1fae5;border-radius:12px;padding:12px;background:linear-gradient(180deg,#fff,#f9fafb);content-visibility:auto;contain-intrinsic-size:380px}.question-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:12px}.origin-panel{background:#f0fdf4;border:1px solid #d1fae5;border-radius:10px;padding:10px;display:grid;gap:8px}.origin-meta{display:flex;flex-wrap:wrap;gap:6px}.meta-chip{border-radius:999px;border:1px solid #a7f3d0;color:#065f46;background:#d1fae5;font-size:12px;padding:2px 10px}.origin-block{border-radius:8px;background:#fff;border:1px solid #d1fae5;padding:8px}.origin-block h4{margin:0;font-size:13px;color:#064e3b}.origin-block p{margin:6px 0 0;color:#064e3b;line-height:1.55;font-size:14px;white-space:pre-wrap}.answer-block{background:#fefdf7}.grading-panel{border-radius:10px;border:1px solid #d1fae5;background:#fff;padding:10px;display:grid;gap:10px}.grading-top{display:flex;justify-content:space-between;align-items:center}.score-box{display:inline-flex;align-items:baseline;gap:4px}.score-box strong{font-size:28px;color:#064e3b;line-height:1}.score-box small{color:#6b7280;font-size:14px}.decision-tag{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.decision-correct{background:#e4f8ee;color:#157647}.decision-partial{background:#fff4de;color:#8e6102}.decision-wrong{background:#ffe8e8;color:#a02f2f}.grading-list{display:grid;gap:6px}.grading-list p{margin:0;color:#064e3b;font-size:14px;line-height:1.5}.grading-list span{color:#064e3b;font-weight:600}.question-note{border-radius:8px;background:#f0fdf4;padding:8px}.note-warning{background:#fff5e3;border:1px solid #f3d6a8}.more-wrapper{display:flex;justify-content:center;padding-top:6px}.more-button{height:40px;border-radius:10px;border:1px solid #a7f3d0;background:#f0fdf4;color:#065f46;padding:0 18px;font-size:14px;cursor:pointer}.empty-panel{color:#6b7280;font-size:14px}.report-download-panel{display:flex;justify-content:center}.report-download-button{max-width:320px}@media (max-width: 1080px){.focus-cards-grid,.hero-controls-grid,.insight-main-grid{grid-template-columns:1fr}.capability-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.question-layout{grid-template-columns:1fr}}@media (max-width: 920px){.preface-title{font-size:24px}.meta-grid,.prediction-metrics,.plan-columns,.capability-panel{grid-template-columns:1fr}}@media (max-width: 640px){.page,.panel{padding:12px}.upload-dropzone{min-height:260px}.upload-dropzone-inner{padding:18px}.upload-title{font-size:18px}.insight-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.focus-card strong{font-size:20px}.phase-grid{grid-template-columns:1fr}.source-header{flex-direction:column;align-items:flex-start}.source-thumb,.source-thumb-empty{width:100%;height:120px}}
