*{margin:0;padding:0;box-sizing:border-box}.screen-root{width:100vw;height:100vh;background:#f1f5f9;color:#334155;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;overflow:hidden}.header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:#1e40af;border-bottom:none;flex-shrink:0}.header-brand{display:flex;align-items:center;gap:12px}.logo{width:40px;height:40px;background:linear-gradient(135deg,#10b981,#059669);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:24px}.header-title{font-size:22px;font-weight:700;color:#fff;letter-spacing:.02em}.header-nav{display:flex;gap:8px}.nav-item{padding:8px 20px;border-radius:8px;font-size:14px;font-weight:500;color:#ffffffb3;cursor:pointer;transition:all .2s}.nav-item:hover{color:#fff;background:#ffffff1a}.nav-item.active{color:#fff;background:#fff3}.header-status{display:flex;align-items:center;gap:16px}.status-badge{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#ffffff26;border-radius:20px;font-size:13px;color:#fff}.status-dot{width:8px;height:8px;background:#10b981;border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.header-time{font-size:15px;font-weight:600;color:#fff;font-variant-numeric:tabular-nums}.dual-core-section{display:flex;gap:20px;padding:12px 32px 8px;flex-shrink:0}.age-group-section{padding:8px 32px 10px;flex-shrink:0}.warning-bar{padding:10px 32px;background:#fffbeb;border-left:3px solid #F59E0B;flex-shrink:0}.warning-scroll{display:flex;gap:32px;overflow:hidden}.warning-item{display:flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap;animation:scroll 20s linear infinite}@keyframes scroll{0%{transform:translate(0)}to{transform:translate(-100%)}}.warning-icon{font-size:16px}.warning-text{color:#334155}.warning-item.info .warning-text{color:#2563eb}.warning-item.warning .warning-text{color:#d97706}.warning-item.danger .warning-text{color:#dc2626}.age-header{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.age-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:#1e293b}.age-subtitle{font-size:13px;color:#64748b}.age-insight-inline{display:flex;align-items:center;gap:8px;margin-left:auto;padding:6px 12px;background:#fffbeb;border:1px solid #FDE68A;border-radius:8px}.age-insight-inline .insight-icon{font-size:14px}.age-insight-inline .insight-text{font-size:12px;color:#92400e}.age-insight-inline .insight-btn{padding:4px 10px;background:#fef3c7;border:1px solid #FDE68A;border-radius:6px;font-size:11px;font-weight:500;color:#d97706;cursor:pointer;white-space:nowrap}.dna-section-panel{flex:1;display:flex;flex-direction:column;min-height:0}.dna-section-panel.dna-panel-top{margin-top:0;padding-top:0;border-top:none}.dna-panel-content{display:flex;gap:60px;align-items:center;justify-content:flex-start;flex:1;min-height:0;padding:0 10px}.dna-chart-panel{position:relative;width:180px;height:180px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#f0fdf4;border-radius:12px}.dna-svg-panel{width:100%;height:100%}.dna-center-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.dna-score-panel{font-size:32px;font-weight:800;color:#059669;line-height:1}.dna-label-panel{font-size:12px;color:#64748b;margin-top:4px}.shortage-panel{flex:1;min-width:220px;display:flex;flex-direction:column;justify-content:center;margin-left:auto}.shortage-panel-title{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:10px}.shortage-panel-list{display:flex;flex-direction:column;gap:6px}.shortage-panel-item{display:grid;grid-template-columns:20px 90px 120px 40px;align-items:center;gap:6px;font-size:12px}.shortage-panel-rank{width:20px;height:20px;background:#e2e8f0;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#64748b;flex-shrink:0}.shortage-panel-rank.top3{background:#fef3c7;color:#d97706}.shortage-panel-name{color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shortage-panel-bar{width:80px;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;flex-shrink:0}.shortage-panel-fill{height:100%;border-radius:4px;transition:width .5s ease}.shortage-panel-count{font-size:12px;font-weight:600;color:#64748b;min-width:40px;text-align:right;flex-shrink:0}.age-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}.age-card{padding:10px;background:#fff;border:1px solid #E2E8F0;border-radius:8px;box-shadow:0 1px 3px #0000000d;cursor:pointer;transition:all .3s;position:relative;overflow:hidden}.age-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:#10b981}.age-card:nth-child(2):before{background:#3b82f6}.age-card:nth-child(3):before{background:#f59e0b}.age-card:nth-child(4):before{background:#8b5cf6}.age-card:hover{transform:translateY(-2px);border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.age-badge{display:inline-block;padding:2px 6px;border-radius:10px;font-size:10px;font-weight:600;margin-bottom:4px}.age-badge.excellent{background:#10b98133;color:#10b981}.age-badge.good{background:#3b82f633;color:#3b82f6}.age-badge.warning{background:#f59e0b33;color:#d97706}.age-badge.danger{background:#8b5cf633;color:#7c3aed}.age-grade{font-size:11px;color:#64748b;margin-bottom:6px}.age-rate{display:flex;align-items:baseline;gap:4px;margin-bottom:4px}.rate-value{font-size:18px;font-weight:800;color:#0f172a}.rate-label{font-size:11px;color:#94a3b8}.age-bar{height:4px;background:#e2e8f0;border-radius:2px;margin-bottom:8px;overflow:hidden}.age-fill{height:100%;border-radius:3px;transition:width 1s ease}.age-nutrients{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}.nutrient-item{display:flex;align-items:center;gap:4px;font-size:10px}.nutrient-dot{width:4px;height:4px;border-radius:50%}.nutrient-name{color:#64748b;width:35px}.nutrient-status{color:#334155;font-weight:500}.age-alert{display:flex;align-items:center;gap:3px;padding:3px 6px;background:#fef2f2;border-radius:4px;font-size:10px;color:#dc2626}.age-insight{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#fffbeb;border-left:3px solid #F59E0B;border-radius:0 8px 8px 0}.insight-icon{font-size:18px}.insight-text{flex:1;font-size:13px;color:#334155}.insight-btn{padding:6px 14px;background:#fef3c7;border:1px solid #FDE68A;border-radius:6px;font-size:12px;font-weight:500;color:#d97706;cursor:pointer;transition:all .2s}.insight-btn:hover{background:#fde68a}.core-card{flex:1;display:flex;align-items:center;gap:16px;padding:16px 20px;background:#fff;border:1px solid #E2E8F0;border-radius:12px;box-shadow:0 1px 3px #0000000d,0 4px 6px #00000005;cursor:pointer;transition:all .3s;position:relative;overflow:hidden}.core-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#10b981,#34d399)}.core-card:nth-child(2):before{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.core-card:hover{transform:translateY(-2px);border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.core-icon{width:48px;height:48px;background:linear-gradient(135deg,#10b981,#059669);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}.core-card:nth-child(2) .core-icon{background:linear-gradient(135deg,#3b82f6,#2563eb)}.core-content{flex:1}.core-label{font-size:14px;color:#64748b;margin-bottom:4px}.core-score{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.score-value{font-size:36px;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums}.score-unit{font-size:16px;color:#94a3b8}.score-grade{padding:4px 12px;background:#10b98126;border-radius:20px;font-size:13px;font-weight:600;color:#059669}.grade-good{background:#3b82f626;color:#2563eb}.core-bar{height:6px;background:#e2e8f0;border-radius:3px;margin-bottom:8px;overflow:hidden}.core-fill{height:100%;background:linear-gradient(90deg,#10b981,#34d399);border-radius:3px;transition:width 1s ease}.fill-satisfaction{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.core-desc{font-size:13px;color:#64748b}.core-arrow{font-size:24px;color:#94a3b8;transition:all .2s}.core-card:hover .core-arrow{color:#3b82f6;transform:translate(4px)}.main-content{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:0 32px 20px;min-height:0}.main-panel{display:flex;flex-direction:column;background:#fff;border:1px solid #E2E8F0;border-radius:12px;box-shadow:0 1px 3px #0000000d,0 4px 6px #00000005;padding:20px;overflow:hidden;min-width:0}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #E2E8F0}.panel-title{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;color:#1e293b}.title-icon{font-size:22px}.panel-action{padding:8px 16px;background:#f0fdf4;border:1px solid #86EFAC;border-radius:8px;font-size:13px;font-weight:500;color:#059669;cursor:pointer;transition:all .2s}.panel-action:hover{background:#dcfce7}.map-container{flex:1;position:relative;min-height:0;display:flex;flex-direction:column}.map-svg{width:100%;flex:1;min-height:0}.district-path{cursor:pointer;transition:all .2s}.district-path:hover{opacity:.8}.school-dot{cursor:pointer;transition:all .2s}.school-dot:hover{r:7}.school-dot.alert{animation:blink 1.5s infinite}.school-dot.pulse{animation:pulse-ring 2s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulse-ring{0%{r:5;opacity:1}to{r:12;opacity:0}}.alert-ring{animation:pulse-ring 2s infinite}.map-legend{position:relative;margin-top:12px;background:#fff;border:1px solid #E2E8F0;border-radius:10px;padding:12px 16px;box-shadow:0 2px 8px #00000014;align-self:flex-end}.legend-title{font-size:13px;font-weight:600;color:#1e293b;margin-bottom:10px}.legend-items{display:flex;gap:16px}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#64748b}.legend-color{width:12px;height:12px;border-radius:3px}.findings-section{margin-top:16px;padding-top:16px;border-top:1px solid rgba(148,163,184,.1)}.findings-title{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:12px}.findings-list{display:flex;flex-direction:column;gap:8px}.finding-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#f8fafc;border-radius:10px;font-size:13px}.finding-item.warning{border-left:3px solid #F59E0B;background:#fffbeb}.finding-item.danger{border-left:3px solid #EF4444;background:#fef2f2}.finding-item.success{border-left:3px solid #10B981;background:#f0fdf4}.finding-item.info{border-left:3px solid #3B82F6;background:#eff6ff}.finding-icon{font-size:16px}.finding-text{color:#334155}.sentiment-stream{margin-bottom:16px}.stream-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.stream-title{font-size:14px;font-weight:600;color:#1e293b}.stream-count{font-size:13px;color:#64748b}.stream-content{display:flex;flex-direction:column;gap:8px}.review-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#f8fafc;border-radius:10px;font-size:13px}.review-item.positive{border-left:3px solid #10B981;background:#f0fdf4}.review-item.neutral{border-left:3px solid #F59E0B;background:#fffbeb}.review-item.negative{border-left:3px solid #EF4444;background:#fef2f2}.review-emoji{font-size:18px}.review-school{font-weight:600;color:#1e293b;min-width:80px}.review-text{flex:1;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-time{font-size:12px;color:#94a3b8}.wordcloud-section{margin-bottom:16px}.section-title{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:12px}.wordcloud{display:flex;flex-wrap:wrap;gap:10px;padding:16px;background:#f8fafc;border-radius:12px}.word-item{padding:6px 14px;border-radius:20px;font-weight:500;transition:all .2s;cursor:pointer}.word-item:hover{transform:scale(1.05)}.word-item.positive{background:#dcfce7;color:#059669}.word-item.negative{background:#fee2e2;color:#dc2626}.action-section{display:flex;gap:20px;padding:0 32px 16px;flex-shrink:0}.action-card{flex:1;display:flex;align-items:center;gap:14px;padding:14px 18px;background:#fff;border:1px solid #E2E8F0;border-radius:10px;box-shadow:0 1px 3px #0000000d;cursor:pointer;transition:all .3s}.action-card:hover{transform:translateY(-2px);border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.action-icon{width:40px;height:40px;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px}.action-content{flex:1}.action-title{font-size:15px;font-weight:600;color:#1e293b;margin-bottom:4px}.action-desc{font-size:12px;color:#64748b;display:flex;gap:6px}.task-badge{padding:2px 6px;border-radius:8px;font-size:10px;font-weight:500}.task-badge.nutrition{background:#dcfce7;color:#059669}.task-badge.sentiment{background:#dbeafe;color:#2563eb}.action-arrow{font-size:18px;color:#94a3b8;transition:all .2s}.action-card:hover .action-arrow{color:#3b82f6;transform:translate(4px)}.footer{padding:12px 32px;background:#fff;border-top:1px solid #E2E8F0;flex-shrink:0}.footer-content{display:flex;align-items:center;justify-content:center;gap:16px;font-size:12px;color:#64748b}.copyright{font-weight:500;color:#475569}.slogan{font-weight:600;color:#2563eb}.tech{color:#94a3b8}.divider{color:#cbd5e1}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:40px}.modal-content{background:#fff;border:1px solid #E2E8F0;border-radius:16px;box-shadow:0 20px 60px #0003;max-height:80vh;overflow-y:auto}.modal-large{width:800px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #E2E8F0}.modal-header h3{font-size:18px;font-weight:600;color:#1e293b}.modal-close{width:32px;height:32px;border-radius:50%;border:none;background:#f1f5f9;color:#64748b;font-size:20px;cursor:pointer;transition:all .2s}.modal-close:hover{background:#fee2e2;color:#dc2626}.modal-body{padding:24px}.dna-section{margin-bottom:24px}.dna-chart{position:relative;width:300px;height:300px;margin:0 auto}.dna-svg{width:100%;height:100%}.dna-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.dna-score{font-size:36px;font-weight:800;color:#059669}.dna-label{font-size:13px;color:#64748b}.shortage-section{margin-top:24px}.shortage-list{display:flex;flex-direction:column;gap:12px}.shortage-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8fafc;border-radius:10px}.shortage-rank{width:24px;height:24px;background:#e2e8f0;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#1e293b}.shortage-name{flex:1;font-size:14px;color:#334155}.shortage-bar{width:120px;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.shortage-fill{height:100%;border-radius:4px}.shortage-count{font-size:14px;font-weight:600;color:#1e293b;min-width:50px;text-align:right}.trend-section{margin-bottom:24px}.trend-chart{height:150px;margin-bottom:16px}.trend-svg{width:100%;height:100%}.trend-prediction{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#eff6ff;border-radius:10px;font-size:14px;color:#334155}.prediction-icon{font-size:18px}.trend-prediction strong{color:#2563eb}.category-list{display:flex;flex-direction:column;gap:12px}.category-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8fafc;border-radius:10px}.category-name{width:80px;font-size:14px;color:#334155}.category-bar{flex:1;height:10px;background:#e2e8f0;border-radius:5px;overflow:hidden}.category-fill{height:100%;background:linear-gradient(90deg,#ef4444,#f87171);border-radius:5px}.category-count{font-size:14px;font-weight:600;color:#1e293b;min-width:60px;text-align:right}.loop-section{margin-top:24px}.loop-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.loop-stats{display:flex;gap:16px}.loop-stat{font-size:13px;color:#64748b}.loop-stat.highlight{color:#059669;font-weight:600}.timeline{display:flex;flex-direction:column;gap:16px}.timeline-item{display:flex;gap:16px}.timeline-marker{display:flex;flex-direction:column;align-items:center;width:24px}.timeline-dot{width:12px;height:12px;border-radius:50%;border:2px solid;background:transparent}.timeline-dot.resolved{background:#10b981;border-color:#10b981}.timeline-dot.processing{background:#3b82f6;border-color:#3b82f6;animation:pulse 2s infinite}.timeline-dot.pending{background:#f59e0b;border-color:#f59e0b}.timeline-line{flex:1;width:2px;background:#94a3b833;margin:4px 0}.timeline-content{flex:1;padding:16px;background:#f8fafc;border-radius:12px}.timeline-time{font-size:12px;color:#94a3b8;margin-bottom:8px}.timeline-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}.timeline-school{font-size:14px;font-weight:600;color:#1e293b}.timeline-issue{padding:2px 10px;border-radius:10px;font-size:11px;font-weight:500}.timeline-issue.warning{background:#fef3c7;color:#d97706}.timeline-issue.normal{background:#dbeafe;color:#2563eb}.timeline-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.action-step{display:flex;align-items:center;gap:10px;font-size:12px}.action-step.done{color:#64748b}.action-step.pending{color:#94a3b8}.step-icon{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px}.action-step.done .step-icon{background:#10b981;color:#fff}.action-step.pending .step-icon{background:#e2e8f0;color:#94a3b8}.step-text{flex:1}.step-time{font-size:11px;color:#94a3b8}.timeline-result{display:flex;align-items:center;gap:12px;padding-top:12px;border-top:1px solid #E2E8F0}.result-badge{padding:4px 12px;border-radius:10px;font-size:12px;font-weight:600}.result-badge.success{background:#dcfce7;color:#059669}.result-badge.pending{background:#dbeafe;color:#2563eb}.result-badge.warning{background:#fef3c7;color:#d97706}.result-time{font-size:12px;color:#64748b}.menu-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.overview-card{display:flex;align-items:center;gap:12px;padding:16px;background:#f8fafc;border-radius:12px}.overview-icon{width:48px;height:48px;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}.overview-info{flex:1}.overview-value{font-size:24px;font-weight:800;color:#1e293b}.overview-label{font-size:13px;color:#64748b}.menu-types-section{margin-bottom:24px}.menu-types-chart{display:flex;flex-direction:column;gap:12px}.type-bar-item{display:flex;align-items:center;gap:12px}.type-info{width:120px;display:flex;flex-direction:column}.type-name{font-size:14px;font-weight:600;color:#1e293b}.type-count{font-size:12px;color:#64748b}.type-bar{flex:1;height:10px;background:#e2e8f0;border-radius:5px;overflow:hidden}.type-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:5px;transition:width .5s ease}.type-percent{width:50px;text-align:right;font-size:14px;font-weight:600;color:#1e293b}.sample-menu-section{margin-bottom:24px}.menu-items-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.menu-item-card{display:flex;flex-direction:column;align-items:center;padding:16px;background:#f8fafc;border-radius:12px;text-align:center}.menu-item-icon{font-size:32px;margin-bottom:8px}.menu-item-name{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:4px}.menu-item-nutrition{font-size:12px;color:#64748b}.menu-nutrition-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px;background:#f0fdf4;border-radius:12px}.nutrition-item{display:flex;flex-direction:column;align-items:center;gap:4px}.nutrition-label{font-size:12px;color:#64748b}.nutrition-value{font-size:16px;font-weight:700;color:#059669}.menu-alerts-section{margin-bottom:16px}.alerts-list{display:flex;flex-direction:column;gap:8px}.alert-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;font-size:13px}.alert-item.info{background:#eff6ff;border-left:3px solid #3B82F6}.alert-item.warning{background:#fffbeb;border-left:3px solid #F59E0B}.alert-school{font-weight:600;color:#1e293b;min-width:100px}.alert-text{color:#64748b}.task-section{margin-bottom:24px}.task-section-header{display:flex;align-items:center;gap:10px;margin-bottom:16px}.task-icon{font-size:20px}.task-count{margin-left:auto;padding:4px 12px;background:#f2f3f5;border-radius:20px;font-size:13px;font-weight:600;color:#64748b}.task-list{display:flex;flex-direction:column;gap:10px}.task-item{display:flex;flex-direction:column;gap:8px;padding:16px;background:#f8fafc;border-radius:12px;border-left:3px solid #E2E8F0;position:relative}.task-item.urgent{border-left-color:#ef4444;background:#fef2f2}.task-item.normal{border-left-color:#3b82f6;background:#eff6ff}.task-item.low{border-left-color:#10b981;background:#f0fdf4}.task-main{display:flex;flex-direction:column;gap:4px}.task-school{font-size:15px;font-weight:600;color:#1e293b}.task-issue{font-size:13px;color:#64748b}.task-meta{display:flex;gap:16px;font-size:12px}.task-deadline{color:#64748b}.task-deadline.urgent{color:#dc2626;font-weight:600}.task-assignee{color:#94a3b8}.task-status-badge{position:absolute;top:16px;right:16px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600}.task-status-badge.urgent{background:#fee2e2;color:#dc2626}.task-status-badge.normal{background:#dbeafe;color:#2563eb}.task-status-badge.low{background:#dcfce7;color:#059669}.school-detail-info{display:flex;flex-direction:column;gap:16px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #E2E8F0}.detail-label{font-size:14px;color:#64748b}.detail-value{font-size:16px;font-weight:600;color:#1e293b}.detail-value.excellent{color:#059669}.detail-value.good{color:#2563eb}.detail-value.normal{color:#d97706}.detail-value.warning{color:#dc2626}.detail-actions{display:flex;gap:12px;margin-top:16px}.detail-btn{flex:1;padding:12px 20px;background:#f2f3f5;border:none;border-radius:10px;font-size:14px;font-weight:600;color:#4e5969;cursor:pointer;transition:all .2s}.detail-btn:hover{background:#e5e6eb}.detail-btn.primary{background:linear-gradient(135deg,#059669,#10b981);color:#fff}.detail-btn.primary:hover{box-shadow:0 4px 12px #05966959}.district-overview{display:flex;gap:24px;margin-bottom:24px}.district-score-card{width:160px;padding:24px;background:#f8fafc;border-radius:16px;text-align:center}.district-score-value{font-size:48px;font-weight:800;margin-bottom:8px}.district-score-label{font-size:14px;color:#64748b}.district-stats{flex:1;display:flex;flex-direction:column;gap:12px;justify-content:center}.district-stat{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f8fafc;border-radius:10px}.stat-label{font-size:14px;color:#64748b}.stat-value{font-size:16px;font-weight:600;color:#1e293b}.stat-value.warning{color:#dc2626}.district-schools-list{margin-top:16px}.schools-table{display:flex;flex-direction:column;gap:8px}.table-header{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;padding:12px 16px;background:#f2f3f5;border-radius:8px;font-size:13px;font-weight:600;color:#64748b}.table-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;padding:12px 16px;background:#f8fafc;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.table-row:hover{background:#eff6ff}.school-name{font-weight:500;color:#1e293b}.school-rate{font-weight:600}.school-rate.excellent{color:#059669}.school-rate.good{color:#2563eb}.school-rate.normal{color:#d97706}.school-rate.warning{color:#dc2626}.school-status{padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600;text-align:center}.status-excellent{background:#dcfce7;color:#059669}.status-good{background:#dbeafe;color:#2563eb}.status-normal{background:#fef3c7;color:#d97706}.status-warning{background:#fee2e2;color:#dc2626}.age-report-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.report-card{padding:20px;background:#f8fafc;border-radius:12px;text-align:center}.report-age-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600;margin-bottom:12px}.report-rate{font-size:28px;font-weight:800;color:#1e293b;margin-bottom:4px}.report-label{font-size:12px;color:#64748b}.age-report-detail{margin-bottom:24px}.age-detail-list{display:flex;flex-direction:column;gap:12px}.age-detail-item{padding:16px;background:#f8fafc;border-radius:12px}.age-detail-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.age-range{font-size:15px;font-weight:600;color:#1e293b}.age-grade{font-size:13px;color:#64748b}.age-rate{margin-left:auto;font-size:18px;font-weight:700}.age-issues{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.age-issue-tag{padding:4px 10px;border-radius:6px;font-size:12px}.age-issue-tag.good{background:#dcfce7;color:#059669}.age-issue-tag.warning{background:#fef3c7;color:#d97706}.age-issue-tag.danger{background:#fee2e2;color:#dc2626}.age-suggestion{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fffbeb;border-left:3px solid #F59E0B;border-radius:0 8px 8px 0}.suggestion-icon{font-size:16px}.suggestion-text{font-size:13px;color:#92400e}.age-intervention{margin-top:24px}.intervention-list{display:flex;flex-direction:column;gap:12px}.intervention-item{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#f0fdf4;border-radius:12px}.intervention-icon{width:40px;height:40px;background:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.intervention-content{flex:1}.intervention-title{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:4px}.intervention-desc{font-size:13px;color:#64748b}.report-preview{background:#fff;border:1px solid #E2E8F0;border-radius:12px;padding:32px;margin-bottom:24px;max-height:500px;overflow-y:auto}.report-actions{display:flex;justify-content:flex-end;gap:12px}.report-btn{padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.report-btn.secondary{background:#f1f5f9;border:1px solid #E2E8F0;color:#64748b}.report-btn.secondary:hover{background:#e2e8f0}.report-btn.primary{background:linear-gradient(135deg,#059669,#10b981);border:none;color:#fff}.report-btn.primary:hover{box-shadow:0 4px 12px #05966959}
