body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}#root,body,html{height:100%}body{background:linear-gradient(180deg,#f1fffb,#e7fbf6);color:#163f3a;font-family:Noto Sans CJK SC,Noto Sans SC,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;margin:0}.app{align-items:center;display:flex;flex-direction:column;min-height:100%;padding:24px}.app-header{margin-bottom:16px;text-align:center}.app-header h1{color:#0e3c36;font-size:28px;font-weight:800;margin:0}.app-header .sub{color:#3a5a58;font-size:14px;margin-top:6px}.card{background:#fff;border-radius:20px;box-shadow:0 10px 30px #163f3a14;max-width:1080px;padding:24px;width:100%}.progress-wrap{margin-bottom:16px}.progress-top{color:#1b5e57;display:flex;font-size:14px;justify-content:space-between;margin-bottom:8px}.progress-bar{background:#e8f7f4;border-radius:999px;height:10px;overflow:hidden}.progress-inner{background:linear-gradient(90deg,#a1efe6,#4fd1c5 60%,#2b7a78);height:100%;transition:width .24s ease;width:0}.section-title{color:#0e3c36;font-size:20px;font-weight:700;margin:6px 0 18px}.section-title.center{text-align:center}.q-list{grid-gap:18px;display:grid;gap:18px}.q-item{background:#fcfffe;border:1px solid #eaf6f3;border-radius:14px;padding:16px}.q-text{align-items:baseline;color:#153f3a;display:flex;font-size:16px;gap:8px;margin-bottom:12px}.q-id{color:#2b7a78;font-weight:700;min-width:24px}.likert{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(5,minmax(0,1fr))}.likert-option{align-items:center;background:#fff;border:1px solid #0000;border-radius:12px;display:flex;flex-direction:column;gap:8px;padding:10px 6px;transition:all .16s ease;-webkit-user-select:none;user-select:none}.likert-option input{display:none}.likert-option .dot{background:radial-gradient(circle at 30% 30%,#e8f7f4 0,#c8f1ea 100%);border-radius:999px;box-shadow:inset 0 0 0 2px #cfeee8,0 4px 10px #0000000f;height:32px;transition:transform .14s ease,box-shadow .14s ease;width:32px}.likert-option .lbl{color:#3a5a58;font-size:12px}.likert-option:hover{background:#f7fffd;border-color:#dbf5f0}.likert-option.active{background:#f2fffd;border-color:#a6efe6}.likert-option.active .dot{background:radial-gradient(circle at 30% 30%,#bff5ec 0,#63e1d4 100%);box-shadow:inset 0 0 0 3px #7ee8db,0 6px 14px #2b7a7833;transform:scale(1.12)}.likert-option.active .lbl{color:#0e3c36;font-weight:700}.nav{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.nav.center{justify-content:center}.btn{-webkit-appearance:none;appearance:none;border:none;border-radius:12px;cursor:pointer;font-size:14px;font-weight:700;padding:12px 18px;transition:all .16s ease}.btn.primary{background:linear-gradient(90deg,#2bb5a9,#2b7a78);box-shadow:0 8px 18px #2b7a7838;color:#fff}.btn.primary:hover{transform:translateY(-1px)}.btn.primary:disabled{cursor:not-allowed;opacity:.5}.btn.ghost{background:#ecfffb;border:1px solid #c8efe8;color:#2b7a78}.btn.ghost:hover{background:#f7fffd}.summary-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(2,1fr);margin-bottom:16px}.sum-card{background:#f6fffd;border:1px solid #dbf5f0;border-radius:14px;padding:14px}.sum-top{align-items:center;display:flex;justify-content:space-between}.sum-name{color:#0e3c36;font-weight:800}.sum-score{color:#2b7a78;font-size:24px;font-weight:800;margin:6px 0}.sum-brief{color:#3a5a58;font-size:12px}.tag{border-radius:999px;font-size:12px;font-weight:700;padding:4px 8px}.tag-high{background:#e5fff7;border:1px solid #b9f5e5;color:#0b6b5e}.tag-mid{background:#f1fff5;border:1px solid #c6f1d1;color:#2e6b3a}.tag-low{background:#fff4f1;border:1px solid #ffd8cf;color:#8f2a2a}.charts-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr 1fr;margin:6px 0 16px}.chart-card{background:#fff;border:1px solid #e8f7f4;border-radius:14px;padding:12px}.chart-title{color:#0e3c36;font-weight:800;margin-bottom:8px}.chart-title.sm{font-size:14px;font-weight:700}.profile{margin:8px 0 14px}.profile-title{color:#0e3c36;font-size:16px;font-weight:800;margin-bottom:8px}.profile-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.profile-card{background:#f7fffd;border:1px solid #dbf5f0;border-radius:12px;padding:12px}.profile-subtitle{color:#2b7a78;font-weight:800;margin-bottom:6px}.bullet{margin:0;padding-left:18px}.bullet li{color:#194d46;margin:6px 0}.detail{grid-gap:14px;display:grid;gap:14px}.detail-card{background:#fff;border:1px solid #eaf6f3;border-radius:14px;padding:14px}.detail-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.detail-name{color:#0e3c36;font-size:16px;font-weight:800}.detail-score .num{color:#2b7a78;font-size:18px;font-weight:800;margin-left:8px}.detail-brief{color:#3a5a58;font-size:13px;margin-bottom:8px}.subchart{margin:6px 0 10px}.advice{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.advice-title{color:#0e3c36;font-weight:800;margin-bottom:6px}.footer{color:#6b8f8c;font-size:12px;margin:20px 0 8px;text-align:center}@media (max-width:980px){.charts-grid{grid-template-columns:1fr}}@media (max-width:840px){.profile-grid,.summary-grid{grid-template-columns:1fr}}@media (max-width:520px){.likert{gap:8px}.likert-option .lbl{font-size:11px}.q-text{font-size:15px}.btn{padding:11px 16px}}.pdf-export-wrapper{position:relative}.pdf-section{background:#fff;break-inside:avoid;padding:20px 0;page-break-inside:avoid}.pdf-section:not(:first-child){border-top:2px solid #f0f0f0;margin-top:24px;padding-top:24px}.pdf-exporting .nav{display:none!important}.pdf-exporting .chart-card,.pdf-exporting .detail-card{break-inside:avoid;page-break-inside:avoid}.pdf-exporting .subchart{min-height:240px}.pdf-exporting .recharts-wrapper{margin:0 auto}