.login[data-v-0c8add45]{max-width:320px;margin:16vh auto 0;padding:0 20px;display:flex;flex-direction:column;gap:12px;text-align:center}.login h1[data-v-0c8add45]{margin:0;font-size:26px}.sub[data-v-0c8add45]{margin:0 0 12px;color:#667085;font-size:14px}.login input[data-v-0c8add45]{padding:12px 14px;border:1px solid #d0d5dd;border-radius:10px;font-size:16px;box-sizing:border-box}.login input[data-v-0c8add45]:focus{outline:2px solid #4f6bed33;border-color:#4f6bed}.login button[data-v-0c8add45]{padding:12px;border:0;border-radius:10px;background:#4f6bed;color:#fff;font-size:16px;cursor:pointer}.login button[data-v-0c8add45]:disabled{opacity:.6}.err[data-v-0c8add45]{color:#d92d20;font-size:14px;margin:4px 0 0}.app-header{position:relative}.user-bar{position:absolute;top:10px;right:14px;display:flex;align-items:center;gap:8px}.user-bar span{font-size:13px;color:#667085}.user-bar button{font-size:12px;padding:4px 10px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;color:#475467;cursor:pointer}*{margin:0;padding:0;box-sizing:border-box}:root{--brand: #4f7cff;--brand-weak: #e8eeff;--ok: #22a55b;--warn: #e6a23c;--bad: #e05252;--text: #23272e;--text-weak: #8a919c;--line: #e8eaef;--bg: #f3f5f9}html,body{height:100%}body{font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}#app{min-height:100%}.app{max-width:480px;margin:0 auto;min-height:100vh;background:#fff;display:flex;flex-direction:column}.app-header{padding:16px 20px 12px;border-bottom:1px solid var(--line)}.app-header h1{font-size:20px;letter-spacing:1px}.app-header p{font-size:12px;color:var(--text-weak);margin-top:2px}.tabbar{display:flex;border-top:1px solid var(--line);background:#fff}.tabbar button{flex:1;padding:12px 0;border:none;background:none;font-size:14px;color:var(--text-weak);cursor:pointer}.tabbar button.active{color:var(--brand);font-weight:600}.tab-body{flex:1;padding:16px 20px 24px}.card{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:14px;background:#fff}.card h2{font-size:15px;margin-bottom:10px}.card .hint{font-size:12px;color:var(--text-weak)}.expr{font-size:26px;font-weight:700;text-align:center;padding:18px 0;letter-spacing:2px;font-variant-numeric:tabular-nums}input[type=text]{width:100%;padding:12px;font-size:18px;border:1px solid var(--line);border-radius:10px;outline:none}input[type=text]:focus{border-color:var(--brand)}.btn{display:inline-block;width:100%;padding:12px;margin-top:10px;border:none;border-radius:10px;background:var(--brand);color:#fff;font-size:16px;cursor:pointer}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:var(--brand-weak);color:var(--brand)}.btn.danger{background:#fff;color:var(--bad);border:1px solid var(--bad);width:auto;padding:6px 12px;font-size:13px;margin-top:0}.result-ok{color:var(--ok);font-weight:600}.result-bad{color:var(--bad);font-weight:600}.diag-item{margin-top:8px;padding:10px 12px;border-radius:8px;background:#fff7ed;font-size:13px;line-height:1.6}.diag-item .tag{display:inline-block;background:var(--warn);color:#fff;border-radius:6px;padding:1px 8px;font-size:12px;margin-right:6px}.lesion-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.lesion-row:last-child{border-bottom:none}.lesion-info{flex:1}.lesion-info .name{font-size:15px;font-weight:600}.lesion-info .meta{font-size:12px;color:var(--text-weak);margin-top:2px}.stage-bar{display:flex;gap:3px;margin-top:6px}.stage-bar span{width:22px;height:6px;border-radius:3px;background:var(--line)}.stage-bar span.done{background:var(--ok)}select{padding:10px;font-size:15px;border:1px solid var(--line);border-radius:10px;width:100%;outline:none}.empty{text-align:center;color:var(--text-weak);font-size:14px;padding:30px 0}.badge{display:inline-block;font-size:12px;border-radius:6px;padding:1px 8px}.badge.ok{background:#e6f6ec;color:var(--ok)}.badge.warn{background:#fff1de;color:var(--warn)}.feedback{margin-top:12px;padding:12px 14px;border-radius:10px;font-size:14px;line-height:1.7}.feedback.ok{background:#e6f6ec}.feedback.bad{background:#fdeeee}.muted{color:var(--text-weak)}.beian{text-align:center;font-size:11px;color:var(--text-weak);padding:12px 0 8px}.beian .ver{margin-right:10px;font-weight:600}.frac{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;line-height:1.1;margin:0 2px;font-size:.85em}.frac .num{border-bottom:1.5px solid currentColor;padding:0 4px}.frac .den{padding:0 4px}.print-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#23272e99;z-index:100;overflow:auto;padding:16px}.print-toolbar{max-width:210mm;margin:0 auto 12px;background:#fff;border-radius:12px;padding:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.print-toolbar .toolbar-btn{width:auto;margin-top:0;padding:8px 14px;font-size:14px}.print-toolbar .hint{flex-basis:100%;font-size:12px;color:var(--text-weak)}.print-sheet{width:min(210mm,100%);margin:0 auto;background:#fff;border-radius:8px;padding:14mm;box-shadow:0 4px 24px #00000040;color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}.sheet-head{text-align:center;border-bottom:2px solid #000;padding-bottom:8px}.sheet-head h3{font-size:20px;letter-spacing:2px}.sheet-head p{font-size:12px;color:#444;margin-top:4px}.fill-row{display:flex;justify-content:space-between;font-size:13px;margin:12px 0}.sheet-qs{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}.sheet-q{display:flex;align-items:baseline;gap:6px;padding:14px 2px 4px;border-bottom:1px dashed #999;break-inside:avoid;font-size:18px;font-variant-numeric:tabular-nums}.sheet-q .q-no{font-size:14px;color:#444}.sheet-q .blank{flex:1}.sheet-foot{margin-top:16px;font-size:12px;color:#666;text-align:center}.answer-page{page-break-before:always;break-before:page;margin-top:24px}.answer-page h3{font-size:16px;border-bottom:2px solid #000;padding-bottom:6px;margin-bottom:10px}.answer-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;row-gap:8px;font-size:15px;font-variant-numeric:tabular-nums}.answer-item .frac{font-size:.8em}@page{size:A4;margin:14mm}@media print{#app{display:none!important}.print-overlay{position:static;background:none;padding:0;overflow:visible}.no-print{display:none!important}.print-sheet{width:100%;padding:0;box-shadow:none;border-radius:0}.print-sheet .answer-page{margin-top:0}}
