:root{color-scheme:light;--ink:#18333e;--muted:#64767d;--line:#e0e7e7;--paper:#fff;--bg:#f4f7f6;--teal:#246757;--green:#23725c;--red:#bc4f54;--amber:#996516;--font:system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.7}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #529585;outline-offset:3px}button{touch-action:manipulation}[hidden]{display:none!important}.skip-link{position:absolute;top:-80px;left:15px;background:white;padding:10px;z-index:10}.skip-link:focus{top:10px}.site-header{max-width:1400px;margin:auto;display:flex;align-items:center;justify-content:space-between;min-height:86px;padding:18px 32px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;font-size:17px;font-weight:750;letter-spacing:1.4px}.brand b{font-size:11px;letter-spacing:2px;font-weight:500;margin-left:5px}.header-meta{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px}.version{margin-left:14px;border-left:1px solid #ccd6d5;padding-left:18px;letter-spacing:1.2px}.local-dot{width:6px;height:6px;background:#53917c;border-radius:50%}main{max-width:1400px;margin:auto;padding:0 32px}.intro{display:flex;justify-content:space-between;gap:40px;align-items:center;padding:45px 0 30px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--teal);margin:0 0 10px}h1{font-size:clamp(26px,3vw,38px);line-height:1.35;margin:0 0 13px;font-weight:650;letter-spacing:-.8px}.subtitle{max-width:740px;margin:0;color:var(--muted);font-size:14px;line-height:1.9}.protocol-badge{min-width:216px;text-align:left;border-left:1px solid #cbd9d5;padding-left:28px}.protocol-badge>span{font-size:10px;letter-spacing:2px;color:var(--muted)}.protocol-badge strong{display:block;white-space:nowrap;font-size:20px;font-weight:500;line-height:1.8}.protocol-badge b{font-size:30px;font-weight:500}.protocol-badge i{font-size:19px;font-style:normal;color:#a7b6b1;margin:0 12px}.protocol-badge small{font-size:11px;color:var(--muted)}.research-notice{font-size:12px;line-height:1.9;border-top:1px solid #e8ddc7;border-bottom:1px solid #e8ddc7;padding:13px 0;color:#7b6339;margin-bottom:26px}.research-notice strong{font-weight:650}.load-status{font-size:12px;color:var(--muted);margin:14px 0}.load-status.ready{display:none}.load-status.error{color:var(--red);padding:20px;background:white}.calculator-tabs{display:flex;gap:8px;margin-bottom:20px}.calculator-tabs button{background:transparent;border:1px solid transparent;display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:7px;color:var(--muted)}.calculator-tabs button[aria-selected=true]{background:#e4efeb;border-color:#c4d8d0;color:#1c5648}.calculator-tabs b{font-size:17px;line-height:1}.calculator-tabs span{font-size:13px}.calculator-tabs small{font-size:10px;opacity:.8;margin-left:6px}.workspace{display:grid;grid-template-columns:388px minmax(0,1fr);gap:22px;align-items:start}.card{background:white;border:1px solid var(--line);border-radius:11px;box-shadow:0 4px 20px #18333e04}.input-card{padding:24px}.section-kicker{font-size:10px;color:#7c8b8d;letter-spacing:1.3px}.card-title{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.card-title h2{font-size:18px;line-height:1.4;margin:2px 0 4px;font-weight:600}.card-title p{margin:0;font-size:11px;color:var(--muted)}.quiet-button{border:0;background:none;padding:5px 0 5px 10px;color:var(--teal);font-size:11px;white-space:nowrap}.input-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 14px}.field{display:flex;flex-direction:column;min-width:0}.field label{font-size:12px;font-weight:600;margin-bottom:4px}.field .english{display:block;font-size:9px;font-weight:400;color:var(--muted);line-height:1.5;letter-spacing:.1px}.input-wrap{position:relative}.field input,.field select{width:100%;min-height:42px;padding:10px 11px;border:1px solid #d7e0df;background:#fcfdfd;border-radius:6px;color:var(--ink);font-size:13px}.field input{padding-right:45px}.unit{position:absolute;right:10px;top:11px;font-size:10px;color:#768987;pointer-events:none}.field .hint{font-size:10px;line-height:1.65;color:#728180;margin:6px 0 0}.field input:invalid:not(:placeholder-shown){border-color:#b8c6c2}.input-note{font-size:10px;line-height:1.85;color:var(--muted);border-top:1px solid var(--line);padding-top:15px;margin:20px 0 14px}.predict-button{width:100%;border:0;border-radius:6px;background:#205c4d;color:white;min-height:46px;font-size:13px;font-weight:600;letter-spacing:.3px;display:flex;align-items:center;justify-content:center;gap:12px;transition:background .15s}.predict-button:hover{background:#164638}.predict-button .arrow{font-size:18px;font-weight:400}.reset-button{border:0;background:none;font-size:11px;color:var(--muted);display:block;margin:12px auto 0}.form-error{font-size:12px;color:#a63740;margin:10px 0;line-height:1.7}.empty-result{min-height:618px;display:flex;align-items:center;justify-content:center;text-align:center;padding:40px}.empty-icon{display:block;color:#719a8d;width:76px;height:76px;margin:0 auto 22px}.empty-result h2{font-size:21px;font-weight:500;margin:0 0 12px}.empty-result p{font-size:12px;color:var(--muted);max-width:400px;margin:0 auto;line-height:1.9}.empty-steps{display:flex;justify-content:center;gap:20px;color:#5c7970;font-size:10px;margin-top:25px}.empty-steps span+span:before{content:'→';color:#9aafa7;margin-right:20px}.results{display:grid;gap:16px}.result-summary{padding:22px 24px}.result-header{display:flex;justify-content:space-between;gap:15px;align-items:center}.result-header h2{font-size:18px;margin:3px 0 0;font-weight:600}.risk-badge{font-size:15px;font-weight:650;padding:6px 14px;border-radius:5px;white-space:nowrap}.risk-Low{color:#216c54;background:#e6f1eb}.risk-Intermediate{color:#89601c;background:#faf1dd}.risk-High{color:#a74048;background:#f9e9ea}.risk-info{font-size:11px;color:var(--muted);margin:14px 0 16px;display:flex;flex-wrap:wrap;gap:5px 17px}.risk-info strong{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.probability-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;border-top:1px solid var(--line);padding-top:18px}.probability-card{padding-right:8px}.probability-card+.probability-card{padding-left:18px;border-left:1px solid var(--line)}.probability-card .prob-label{font-size:11px;color:var(--muted)}.probability-card .prob-number{font-size:29px;line-height:1.6;letter-spacing:-1px;font-variant-numeric:tabular-nums}.prob-number small{font-size:15px;letter-spacing:0}.probability-card .prob-support{font-size:9px;color:var(--muted)}.probability-card:last-child .prob-support{color:#9b6a22}.time-note{margin:15px 0 0;color:var(--muted);font-size:10px;line-height:1.8}.warning-list{margin:0;padding:13px 20px 13px 34px;background:#fff9ec;border:1px solid #ebdfc4;border-radius:8px;color:#8b612b;font-size:11px}.plot-card{padding:20px 24px}.plot-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.plot-heading h3{font-size:14px;margin:0;font-weight:600}.plot-heading span{font-size:10px;color:var(--muted)}.plot-heading strong{font-weight:500;color:var(--teal)}.curve-svg{width:100%;height:auto;display:block;margin:12px 0 0;overflow:visible}.chart-footnote{font-size:10px;color:var(--muted);margin:5px 0 0;line-height:1.85}.support-row{display:flex;gap:18px;font-size:10px;color:var(--muted);padding-top:9px;border-top:1px solid #eef1f0;flex-wrap:wrap}.support-row b{font-weight:500;color:#48655c}.shap-legend{display:flex;gap:13px;font-size:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.legend-marker{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:5px}.legend-positive{background:var(--red)}.legend-negative{background:#3d7c96}.shap-svg{width:100%;height:auto;display:block;margin:10px 0}.shap-additivity{font-size:10px;color:var(--muted);border-top:1px solid #eef1f0;padding-top:11px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.result-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:var(--muted);padding:0 3px}.action-button{padding:7px 12px;background:white;border:1px solid #d9e3df;border-radius:5px;color:#345b4c;font-size:11px}.action-button+.action-button{margin-left:7px}.methods-section{margin:52px 0 36px;border-top:1px solid #dbe3e0;padding-top:30px}.methods-section h2{font-size:22px;font-weight:550;margin:0 0 24px}.method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.method-grid article{position:relative;padding-left:28px}.method-grid .number{font-size:10px;position:absolute;left:0;top:3px;color:#7b9589}.method-grid h3{font-size:13px;font-weight:600;margin:0 0 8px}.method-grid p{font-size:11px;color:var(--muted);line-height:1.95;margin:0}.technical{margin-top:26px;border-top:1px solid var(--line);padding-top:15px}.technical summary{font-size:12px;color:var(--teal);cursor:pointer}.technical p{font-size:11px;line-height:1.85;color:var(--muted)}.technical table{margin-top:15px;border-collapse:collapse;width:100%;font-size:11px}.technical td,.technical th{padding:9px 10px;text-align:left;border-bottom:1px solid var(--line)}.technical th{font-weight:600;background:#edf2ef}.technical code{overflow-wrap:anywhere;font-size:10px}footer{max-width:1400px;margin:0 auto;padding:22px 32px 32px;border-top:1px solid var(--line);font-size:10px;color:#82908c;display:flex;justify-content:space-between;gap:20px}.fatal{margin:40px;color:#a63f45}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){.intro{padding-top:52px}.workspace{grid-template-columns:410px minmax(0,1fr)}}
@media(max-width:1000px){.workspace{grid-template-columns:330px minmax(0,1fr)}.input-card,.result-summary,.plot-card{padding:20px}.input-grid{gap:14px 10px}.protocol-badge{min-width:190px}.probability-card .prob-number{font-size:25px}.probability-grid{gap:8px}.probability-card+.probability-card{padding-left:10px}.result-actions{align-items:flex-start}}
@media(max-width:780px){.site-header{min-height:72px;padding:16px 20px}.brand{font-size:15px}.brand b{display:none}.header-meta{font-size:10px}.version{margin-left:4px;padding-left:10px}main{padding:0 20px}.intro{padding:30px 0 23px;gap:20px}.protocol-badge{min-width:130px;padding-left:17px}.protocol-badge strong{font-size:15px}.protocol-badge b{font-size:23px}.protocol-badge i{margin:0 5px}.protocol-badge small{font-size:8px}.subtitle{font-size:12px}.eyebrow{font-size:8px;letter-spacing:1px}.research-notice{font-size:11px}.workspace{grid-template-columns:1fr}.empty-result{min-height:290px}.input-grid{grid-template-columns:1fr 1fr;gap:18px}.input-card{padding:24px}.input-note{margin-top:17px}.field label{font-size:13px}.field .english{font-size:10px}.field .hint{font-size:11px}.field input,.field select{font-size:15px;min-height:44px}.predict-button{min-height:49px}.method-grid{grid-template-columns:1fr;gap:22px}.method-grid p{font-size:12px}.methods-section{margin-top:36px}.result-actions{flex-wrap:wrap}.technical{overflow:auto}footer{padding:22px 20px;flex-direction:column;gap:5px}.calculator-tabs{margin-bottom:15px}.calculator-tabs button{padding:11px 13px}.calculator-tabs small{margin-left:0}}
@media(max-width:440px){.intro{display:block}.protocol-badge{display:none}.header-meta .version{display:none}.input-card,.result-summary,.plot-card{padding:19px}.input-grid{gap:16px 12px}.probability-card .prob-number{font-size:25px}.probability-card .prob-support{font-size:8px}.probability-grid{gap:5px}.probability-card+.probability-card{padding-left:9px}.plot-heading span{font-size:8px}.result-header h2{font-size:16px}.risk-badge{font-size:13px}.calculator-tabs button{gap:7px}.calculator-tabs span{font-size:12px}}
.field label{min-height:36px;line-height:1.5;display:flex;align-items:flex-end}.plot-heading{flex-wrap:wrap;gap:5px 12px}.result-header{flex-wrap:wrap}.probability-card .prob-support{line-height:1.6}
@media print{body{background:white;color:black;font-size:11px}.site-header{min-height:auto}.intro,.calculator-tabs,.methods-section,footer,.quiet-button,.reset-button,.predict-button,.result-actions,.input-note,.skip-link,.load-status{display:none!important}main{padding:0}.workspace{display:block}.input-card{border:0;box-shadow:none;padding:0 0 15px}.input-grid{grid-template-columns:repeat(4,1fr);gap:8px}.field .hint,.field .english{display:none}.field input,.field select{border:0;background:none;padding:0;min-height:20px;font-size:10px;appearance:none}.unit{top:0}.card{box-shadow:none;border-color:#ccc;break-inside:avoid}.research-notice{font-size:9px;margin:10px 0}.results{gap:12px}.plot-card{padding:15px}.curve-svg{max-height:240px}.shap-svg{max-height:260px}.chart-footnote{font-size:8px}.result-summary{padding:15px}.probability-card .prob-number{font-size:24px}header:after{content:'Research use only · PCNSL';font-size:9px}.header-meta{display:none}}
