*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--forest-dark:#030a10;--forest-deep:#0a1a12;--forest-mid:#1a2e1a;--glow-green:#7fff7f;--text-primary:#e8f5e8;--text-secondary:#a8c8a8;--accent:#4ade80}body{background:var(--forest-dark);color:var(--text-primary);min-height:100vh;font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;overflow-x:hidden}#root{min-height:100vh}button{cursor:pointer;border:none;outline:none;font-family:inherit}button:active{transform:scale(.97)}.setname-overlay{z-index:100;background:linear-gradient(#030a10 0%,#0a1a0a 100%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.setname-card{text-align:center;background:linear-gradient(135deg,#0a2010 0%,#0d2818 100%);border:1px solid #4ade8033;border-radius:24px;width:90%;max-width:420px;padding:40px 32px;box-shadow:0 0 60px #4ade801a}.setname-title{color:var(--glow-green);text-shadow:0 0 20px #7fff7f80;margin-bottom:8px;font-size:28px}.setname-subtitle{color:var(--text-secondary);margin-bottom:28px;font-size:15px}.avatar-picker{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:24px;display:flex}.avatar-btn{background:#ffffff0d;border:2px solid #0000;border-radius:50%;width:56px;height:56px;font-size:28px;transition:all .2s}.avatar-btn.selected{border-color:var(--glow-green);background:#4ade8026;box-shadow:0 0 20px #4ade804d}.name-input{color:#fff;background:#ffffff12;border:1px solid #ffffff1a;border-radius:14px;width:100%;margin-bottom:20px;padding:14px 18px;font-size:16px;transition:border-color .2s}.name-input:focus{border-color:var(--glow-green);outline:none}.confirm-btn{color:#fff;background:linear-gradient(135deg,#1a5c2a 0%,#2d8a4e 100%);border-radius:14px;width:100%;padding:16px;font-size:17px;font-weight:600;transition:all .2s}.confirm-btn.ready{box-shadow:0 4px 20px #4ade804d}.confirm-btn.disabled{opacity:.4}.app-header{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#030a10d9;border-bottom:1px solid #4ade801a;justify-content:space-between;align-items:center;padding:12px 20px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:10px;display:flex}.header-avatar{font-size:26px}.header-name{color:var(--glow-green);font-size:17px;font-weight:600}.header-right{gap:8px;display:flex}.header-btn{color:var(--text-primary);background:#ffffff0f;border-radius:10px;padding:8px 14px;font-size:14px;transition:background .2s}.header-btn:hover{background:#4ade8026}.app-container{z-index:1;max-width:680px;margin:0 auto;padding-bottom:40px;position:relative}.app-main{padding:20px 18px}.welcome-section{text-align:center;padding:32px 0 24px}.detective-avatar-large{margin-bottom:12px;font-size:64px}.welcome-title{color:var(--glow-green);text-shadow:0 0 16px #7fff7f66;margin-bottom:10px;font-size:24px}.encouragement{color:var(--text-secondary);margin-bottom:20px;font-size:14px;line-height:1.5}.stats-bar{justify-content:center;gap:16px;display:flex}.stat-item{text-align:center;background:#4ade8012;border-radius:14px;min-width:80px;padding:12px 20px}.stat-value{color:var(--glow-green);font-size:26px;font-weight:700;display:block}.stat-label{color:var(--text-secondary);font-size:12px}.section-title{color:var(--text-secondary);margin:28px 0 16px;padding-left:4px;font-size:18px}.cases-list{flex-direction:column;gap:14px;display:flex}.case-card{text-align:left;cursor:pointer;background:linear-gradient(135deg,#0d2015 0%,#112818 100%);border:1px solid #4ade801f;border-radius:18px;width:100%;padding:20px;transition:all .2s;display:block}.case-card:hover{border-color:#4ade8059;transform:translateY(-2px);box-shadow:0 4px 24px #4ade801a}.case-card.solved{opacity:.7;border-color:#4ade8033}.case-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.case-icon{font-size:20px}.case-difficulty{font-size:12px;font-weight:600}.case-title{color:var(--text-primary);margin-bottom:6px;font-size:17px;font-weight:600}.case-desc{color:var(--text-secondary);font-size:13px;line-height:1.4}.scene-topbar{align-items:center;gap:12px;margin-bottom:16px;display:flex}.back-btn{color:var(--text-primary);background:#ffffff0f;border-radius:10px;padding:8px 14px;font-size:14px;transition:background .2s}.back-btn:hover{background:#4ade8026}.scene-title{text-align:center;color:var(--glow-green);flex:1;font-size:17px;font-weight:600}.progress-indicator{color:var(--text-secondary);gap:8px;font-size:12px;display:flex}.progress-indicator .done{color:var(--glow-green)}.story-banner{background:linear-gradient(135deg,#0a1f10 0%,#0f2a18 100%);border-left:3px solid #4ade804d;border-radius:14px;margin-bottom:16px;padding:16px}.story-banner p{color:var(--text-secondary);font-size:14px;line-height:1.7}.tab-bar{gap:8px;margin-bottom:16px;display:flex}.tab-btn{color:var(--text-secondary);background:#ffffff0a;border-radius:12px;flex:1;padding:12px;font-size:14px;transition:all .2s}.tab-btn.active{color:var(--glow-green);background:#4ade8026;font-weight:600}.evidence-list,.witness-list{flex-direction:column;gap:12px;display:flex}.evidence-card,.witness-card{cursor:pointer;background:#ffffff08;border:1px solid #ffffff0f;border-radius:14px;align-items:flex-start;gap:14px;padding:16px;transition:all .2s;display:flex}.evidence-card:not(.examined):hover,.witness-card:not(.interviewed):hover{background:#4ade800d;border-color:#4ade804d}.evidence-card.examined,.witness-card.interviewed{border-color:#4ade8033}.evidence-icon,.witness-avatar{flex-shrink:0;font-size:28px}.evidence-info,.witness-info{flex:1}.evidence-info h4,.witness-info h4{margin-bottom:6px;font-size:15px}.evidence-desc,.witness-statement{color:var(--text-secondary);margin-bottom:8px;font-size:13px;font-style:italic;line-height:1.5}.witness-hint{color:#4ade80b3;font-size:12px;line-height:1.4}.evidence-unknown,.witness-unknown{color:#ffffff40;font-size:13px;font-style:italic}.examined-badge,.interviewed-badge{color:var(--glow-green);flex-shrink:0;font-size:11px}.solve-section{text-align:center;margin-top:28px}.solve-hint{color:var(--text-secondary);margin-bottom:14px;font-size:13px}.solve-btn{border-radius:14px;padding:16px 40px;font-size:16px;font-weight:600;transition:all .2s}.solve-btn.ready{color:#fff;background:linear-gradient(135deg,#1a5c2a 0%,#2d8a4e 100%);box-shadow:0 4px 24px #4ade804d}.solve-btn.disabled{color:var(--text-secondary);opacity:.5;background:#ffffff0f}.solve-topbar{align-items:center;gap:12px;margin-bottom:20px;display:flex}.solve-prompt{background:linear-gradient(135deg,#0a1f10 0%,#0f2a18 100%);border-left:3px solid #4ade804d;border-radius:16px;margin-bottom:20px;padding:20px}.solve-prompt h3{color:var(--glow-green);margin-bottom:10px;font-size:16px}.case-question{color:var(--text-secondary);margin-bottom:10px;font-size:14px;line-height:1.5}.case-hint{color:#4ade80b3;font-size:13px;line-height:1.5}.answer-options{flex-direction:column;gap:10px;display:flex}.answer-option{text-align:left;width:100%;color:var(--text-primary);background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;padding:16px 18px;font-size:14px;line-height:1.5;transition:all .2s}.answer-option:not(.selected):hover{background:#4ade800d;border-color:#4ade804d}.answer-option.selected{border-color:var(--glow-green);color:var(--glow-green);background:#4ade801f}.submit-section{text-align:center;margin-top:24px}.submit-btn{border-radius:14px;padding:16px 40px;font-size:16px;font-weight:600}.submit-btn.ready{color:#fff;background:linear-gradient(135deg,#1a5c2a 0%,#2d8a4e 100%);box-shadow:0 4px 24px #4ade804d}.submit-btn.disabled{color:var(--text-secondary);opacity:.5;background:#ffffff0f}.solve-result{justify-content:center;align-items:center;min-height:70vh;display:flex}.result-card{text-align:center;border-radius:24px;width:90%;max-width:480px;padding:36px 32px;animation:.5s fadeIn}.result-card.correct{background:linear-gradient(135deg,#0a2010 0%,#112818 100%);border:1px solid #4ade804d}.result-card.wrong{background:linear-gradient(135deg,#1a0a0a 0%,#281111 100%);border:1px solid #f871714d}.result-icon{margin-bottom:16px;font-size:64px}.result-title{margin-bottom:16px;font-size:24px}.result-card.correct .result-title{color:var(--glow-green)}.result-card.wrong .result-title{color:#f87171}.result-message{color:var(--text-secondary);margin-bottom:12px;font-size:14px;line-height:1.6}.result-correct-answer{color:var(--glow-green);background:#4ade8014;border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:13px}.result-explanation{color:var(--text-secondary);margin-bottom:20px;font-size:13px;line-height:1.6}.result-encouragement{color:var(--text-secondary);background:#ffffff0a;border-radius:12px;margin-bottom:24px;padding:14px;font-size:13px}.home-btn{color:#fff;background:linear-gradient(135deg,#1a5c2a 0%,#2d8a4e 100%);border-radius:12px;padding:14px 32px;font-size:15px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.parent-topbar{align-items:center;gap:12px;margin-bottom:20px;display:flex}.profile-card{background:linear-gradient(135deg,#0a2010 0%,#112818 100%);border:1px solid #4ade8026;border-radius:16px;align-items:center;gap:16px;margin-bottom:20px;padding:20px;display:flex}.profile-avatar{font-size:48px}.profile-info h3{color:var(--glow-green);margin-bottom:4px;font-size:18px}.profile-date{color:var(--text-secondary);font-size:12px}.data-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;display:grid}.data-card{text-align:center;background:#ffffff08;border:1px solid #ffffff0f;border-radius:14px;padding:18px}.data-card.primary{background:#4ade8012;border-color:#4ade8026;grid-column:1/-1}.data-value{color:var(--glow-green);font-size:32px;font-weight:700}.data-label{color:var(--text-secondary);margin-top:4px;font-size:13px}.data-sub{color:var(--text-secondary);margin-top:6px;font-size:11px}.weak-topics-card,.wrong-records,.progress-overview{background:#ffffff08;border:1px solid #ffffff0f;border-radius:14px;margin-bottom:16px;padding:18px}.weak-topics-card h3,.wrong-records h3,.progress-overview h3{margin-bottom:14px;font-size:15px}.weak-topics-card h3{color:#fbbf24}.wrong-records h3{color:#f87171}.weak-topics-list{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.weak-topic-tag{color:#fbbf24;background:#fbbf241f;border-radius:20px;padding:4px 12px;font-size:12px}.weak-topics-tip{color:var(--text-secondary);font-size:12px;line-height:1.5}.wrong-record-item{background:#f871710d;border-radius:10px;margin-bottom:10px;padding:14px}.wrong-case-name{margin-bottom:8px;font-size:14px;font-weight:600}.wrong-detail{color:var(--text-secondary);margin-bottom:4px;font-size:12px;line-height:1.4}.wrong-answer{color:#f87171}.correct-answer{color:var(--glow-green)}.wrong-time{color:#ffffff4d;margin-top:6px;font-size:11px}.cases-progress{flex-direction:column;gap:8px;display:flex}.case-progress-item{background:#ffffff08;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.case-progress-item.solved{background:#4ade8012}.case-progress-item.wrong{background:#f8717112}.case-progress-icon{font-size:16px}.case-progress-name{flex:1}.case-progress-diff{color:var(--text-secondary);font-size:11px}.reset-btn{color:#f87171;background:#f871711a;border:1px solid #f8717133;border-radius:12px;width:100%;padding:14px;font-size:14px}.detective-note-overlay{z-index:200;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.detective-note{background:#0a2010;border:1px solid #4ade8033;border-radius:20px;width:100%;max-width:500px;padding:28px}.note-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.note-header h2{color:var(--glow-green);font-size:18px}.close-btn{width:32px;height:32px;color:var(--text-secondary);background:#ffffff0f;border-radius:50%;font-size:16px}.note-textarea{color:#fff;resize:none;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;width:100%;height:240px;padding:14px;font-size:14px;line-height:1.6}.note-textarea:focus{border-color:var(--glow-green);outline:none}.note-tip{color:var(--text-secondary);margin-top:12px;font-size:12px;line-height:1.5}@media (width<=480px){.data-grid{grid-template-columns:1fr 1fr}.stats-bar{gap:8px}.stat-item{min-width:0;padding:10px 14px}.stat-value{font-size:22px}}
