:root{--paper:#f4f1ea;--paper-deep:#ece7db;--surface:#fffdf8;--ink:#1c2531;--ink-soft:#39424d;--muted:#736c60;--line:#d9d2c3;--line-strong:#b9b09e;--accent:#0f6b62;--accent-dark:#0a4f49;--accent-soft:#e2efeb;--warm:#b4623a;--warm-soft:#f6e7dd;--danger:#a83f3f;--shadow:0 12px 30px #231f180f;--radius:10px;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(180deg, #fffdf899, #f4f1ea00 420px), var(--paper);min-width:320px;margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{letter-spacing:.01em;font-family:Noto Serif SC,Songti SC,SimSun,serif;font-weight:600}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f4f1eaf0;justify-content:space-between;align-items:center;gap:18px;padding:16px 34px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand-mark{width:42px;height:42px;color:var(--surface);background:var(--ink);letter-spacing:.08em;border-radius:8px;place-items:center;font-family:Noto Serif SC,Songti SC,serif;font-size:12px;display:grid}.brand strong{letter-spacing:.02em;font-family:Noto Serif SC,Songti SC,serif;font-size:18px;display:block}.brand span{color:var(--muted);margin-top:2px;font-size:12px;display:block}.topbar-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.top-chip{color:var(--ink-soft);border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:5px;padding:5px 9px;font-size:11.5px;display:inline-flex}.status-pill{background:var(--accent-soft);color:var(--accent-dark);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:11.5px;display:inline-flex}.status-pill i{background:var(--accent);border-radius:50%;width:6px;height:6px}.status-pill.error{color:var(--danger);background:#f7e3e3}.status-pill.loading,.status-pill.running{background:var(--warm-soft);color:var(--warm)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.workspace{grid-template-columns:minmax(420px,500px) minmax(0,1fr);align-items:start;gap:28px;width:100%;max-width:1640px;margin:0 auto;padding:28px 34px 40px;display:grid}.left-rail{scrollbar-width:thin;flex-direction:column;gap:16px;max-height:calc(100vh - 108px);padding-right:4px;display:flex;position:sticky;top:88px;overflow-y:auto}.result-column{min-width:0}.case-panel,.editor-panel,.run-panel,.fan-wrap,.path-panel,.step-panel,.selected-path,.technical-panel,.empty-state,.result-summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-heading{justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px 12px;display:flex}.panel-heading.compact{padding:16px 18px 10px}.eyebrow{letter-spacing:.18em;color:var(--muted);margin-bottom:4px;font-size:10px;display:block}.panel-heading h2{font-size:18px}.panel-heading h3{font-size:16px}.panel-meta{color:var(--muted);white-space:nowrap;padding-top:4px;font-size:11.5px}.icon-quiet{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:6px;place-items:center;width:30px;height:30px;display:grid}.icon-quiet:hover{color:var(--ink);border-color:var(--line-strong)}.case-picker{grid-template-columns:1fr 1fr;gap:8px;padding:0 18px;display:grid}.case-card{text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:8px;flex-direction:column;gap:3px;padding:10px 11px;transition:border-color .15s,background .15s;display:flex}.case-card:hover{border-color:var(--line-strong);background:#fbf9f3}.case-card.active{border-color:var(--accent);background:var(--accent-soft)}.case-title{color:var(--ink);font-size:12.5px;font-weight:600}.case-subtitle{color:var(--muted);font-size:10.5px;line-height:1.4}.case-note{color:var(--muted);padding:10px 18px 14px;font-size:11px;line-height:1.55}.gender-toggle{border:1px solid var(--line);border-radius:7px;display:inline-flex;overflow:hidden}.gender-toggle button{color:var(--muted);background:0 0;border:0;padding:5px 10px;font-size:11.5px}.gender-toggle button.active{background:var(--ink);color:var(--surface)}.timeline{flex-direction:column;padding:2px 18px 4px;display:flex}.timeline-row{grid-template-columns:34px minmax(0,1fr);gap:10px;display:grid}.timeline-index{flex-direction:column;align-items:center;padding-top:12px;display:flex}.timeline-index span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.timeline-index i{background:var(--line);flex:1;width:1px;margin-top:6px}.timeline-row:last-child .timeline-index i{display:none}.visit-card{border-bottom:1px dashed #b9b09e8c;padding:10px 0 14px}.timeline-row:last-child .visit-card{border-bottom:0}.visit-meta{align-items:center;gap:9px;margin-bottom:8px;display:flex}.visit-meta strong{font-size:12.5px;font-weight:600}.visit-age{color:var(--muted);font-size:11px}.visit-meta .icon-quiet{width:26px;height:26px;margin-left:auto}.visit-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:10.5px;display:flex}.field.full{grid-column:1/-1}.field small{color:var(--line-strong)}.number-field{border:1px solid var(--line);background:#fffefb;border-radius:6px;align-items:center;padding:0 8px;display:flex}.number-field input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;padding:6px 0;font-size:12px}.number-field em{color:var(--muted);font-size:10px;font-style:normal}.number-field:focus-within{border-color:var(--accent)}.chip-row{flex-wrap:wrap;gap:5px;margin-bottom:5px;display:flex}.chip{border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);border-radius:999px;align-items:center;gap:4px;padding:3px 7px;font-size:10.5px;display:inline-flex}.chip.removable{background:#fffefb}.chip.removable span{color:var(--line-strong)}.chip em{color:var(--muted);font-size:9.5px;font-style:normal}.editor-actions{align-items:center;gap:10px;padding:8px 18px 0;display:flex}.ghost-button{border:1px dashed var(--line-strong);color:var(--ink-soft);background:0 0;border-radius:7px;align-items:center;gap:6px;padding:6px 10px;font-size:11.5px;display:inline-flex}.ghost-button:hover{border-color:var(--accent);color:var(--accent-dark)}.editor-hint{color:var(--muted);align-items:center;gap:4px;font-size:10.5px;display:inline-flex}.editor-note{color:var(--muted);padding:8px 18px 14px;font-size:10.5px;line-height:1.5}.run-panel{flex-direction:column;gap:9px;padding:12px 14px 14px;display:flex}.mode-switch{background:var(--paper);border:1px solid var(--line);border-radius:7px;grid-template-columns:1fr 1fr;gap:4px;padding:3px;display:grid}.mode-switch button{color:var(--muted);background:0 0;border:0;border-radius:5px;padding:7px 6px;font-size:11.5px}.mode-switch button.active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 3px #00000014}.sample-control{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.sample-control select{border:1px solid var(--line);color:var(--ink);background:#fffefb;border-radius:6px;padding:4px 7px;font-size:11.5px}.primary-button{background:var(--ink);color:var(--surface);letter-spacing:.02em;border:0;border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:10px 14px;font-size:12.5px;display:inline-flex}.primary-button:hover:not(:disabled){background:var(--accent-dark)}.progress-track{background:var(--paper-deep);border-radius:999px;height:4px;overflow:hidden}.progress-track i{background:var(--accent);height:100%;transition:width .2s;display:block}.error-banner{color:var(--danger);background:#f7e3e3;border-radius:6px;align-items:center;gap:6px;padding:7px 9px;font-size:11px;display:flex}.empty-state{flex-direction:column;justify-content:center;align-items:flex-start;gap:14px;min-height:520px;padding:44px 40px;display:flex}.empty-icon{background:var(--accent-soft);width:52px;height:52px;color:var(--accent-dark);border-radius:50%;place-items:center;display:grid}.empty-state h2{font-size:24px}.empty-state>p{max-width:560px;color:var(--muted);font-size:13px;line-height:1.75}.empty-points{color:var(--ink-soft);flex-wrap:wrap;gap:14px;font-size:11.5px;display:flex}.empty-points span{align-items:center;gap:4px;display:inline-flex}.empty-diagram{color:var(--muted);align-items:center;gap:10px;margin-top:18px;font-size:11px;display:flex}.empty-diagram i{background:var(--line-strong);width:46px;height:1px;position:relative}.empty-diagram i:after{content:"";border:3px solid #0000;border-left-color:var(--line-strong);position:absolute;top:-3px;right:0}.result-stack{flex-direction:column;gap:16px;display:flex}.result-summary{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;padding:16px 20px;display:flex}.result-summary h2{font-size:20px}.summary-stats{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:16px;font-size:11px;display:flex}.summary-stats strong{color:var(--ink);margin-right:2px;font-family:Noto Serif SC,serif;font-size:17px}.summary-mode{background:var(--accent-soft);color:var(--accent-dark);border-radius:999px;padding:3px 8px}.fan-wrap{padding:16px 18px 12px}.fan-legend{color:var(--muted);flex-wrap:wrap;gap:16px;margin-bottom:4px;font-size:10.5px;display:flex}.fan-legend span{align-items:center;gap:5px;display:inline-flex}.legend-line{background:var(--accent);border-radius:2px;width:24px;height:3px;display:inline-block}.legend-dot{background:var(--warm);border-radius:50%;width:8px;height:8px;display:inline-block}.trajectory-fan{width:100%;height:auto;display:block}.fan-step-label{fill:var(--ink);font-family:Noto Serif SC,serif;font-size:12px}.fan-step-sub{fill:var(--muted);font-size:9.5px}.fan-guide{stroke:var(--line);stroke-dasharray:3 5}.fan-path{cursor:pointer;outline:none}.fan-path:hover polyline{stroke-opacity:.9}.fan-path:focus-visible polyline{stroke-opacity:1}.fan-node-label{fill:var(--ink-soft);font-family:Inter,sans-serif;font-size:9px}.fan-share-label{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:9.5px}.fan-caption{color:var(--muted);margin-top:2px;font-size:10px;line-height:1.55}.path-panel{padding-bottom:8px}.path-table{flex-direction:column;padding:0 12px 10px;display:flex}.path-row{text-align:left;width:100%;color:var(--ink-soft);background:0 0;border:0;border-bottom:1px solid #d9d2c38c;grid-template-columns:28px minmax(0,1fr) 142px 38px 78px;align-items:center;gap:8px;padding:8px 6px;font-size:11px;display:grid}.path-row:last-child{border-bottom:0}.path-row:not(.path-head):hover{background:var(--paper)}.path-row.selected{background:var(--accent-soft);border-radius:6px}.path-head{letter-spacing:.1em;color:var(--muted);padding:6px;font-size:9.5px}.path-rank{font-variant-numeric:tabular-nums;color:var(--muted)}.path-sequence{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}.path-step{white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.path-step i{border-radius:50%;width:6px;height:6px}.path-step em{color:var(--line-strong);margin-left:2px;font-style:normal}.path-intervals{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.path-count{text-align:right;font-variant-numeric:tabular-nums}.path-share{font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:center;height:16px;font-size:10px;display:flex;position:relative}.path-share i{background:var(--warm-soft);border-radius:3px;max-width:calc(100% - 40px);height:6px;position:absolute;top:5px;left:0}.step-panel{padding-bottom:14px}.step-tabs{border:1px solid var(--line);border-radius:6px;display:inline-flex;overflow:hidden}.step-tabs button{color:var(--muted);background:0 0;border:0;padding:5px 10px;font-size:10.5px}.step-tabs button.active{background:var(--ink);color:var(--surface)}.step-grid{grid-template-columns:1fr 1.2fr 1fr;gap:18px;padding:4px 18px 0;display:grid}.step-block h4{color:var(--ink);margin-bottom:9px;font-size:12px}.bar-list,.rank-list{flex-direction:column;gap:6px;display:flex}.bar-row{color:var(--muted);grid-template-columns:72px minmax(0,1fr) 42px;align-items:center;gap:6px;font-size:10px;display:grid}.bar-row div,.rank-bar{background:var(--paper-deep);border-radius:3px;height:6px;overflow:hidden}.bar-row i,.rank-bar i{background:var(--warm);border-radius:3px;height:100%;display:block}.bar-row em{text-align:right;font-variant-numeric:tabular-nums;font-style:normal}.rank-row{color:var(--ink-soft);grid-template-columns:16px minmax(0,1fr) 48px 38px;align-items:center;gap:5px;font-size:10px;display:grid}.rank-index{color:var(--line-strong);font-variant-numeric:tabular-nums}.rank-label{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;display:inline-flex;overflow:hidden}.rank-label i{border-radius:50%;flex:none;width:6px;height:6px}.rank-row em{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;font-style:normal}.step-note{color:var(--muted);margin-top:10px;font-size:10px;line-height:1.5}.muted{color:var(--muted);font-size:10.5px}.selected-path{padding:14px 18px}.selected-content{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.selected-content strong{font-family:Noto Serif SC,serif;font-size:13px}.selected-content span{color:var(--muted);font-size:11px}.selected-content em{color:var(--accent-dark);margin-left:auto;font-size:11px;font-style:normal}.technical-panel{overflow:hidden}.technical-toggle{width:100%;color:var(--ink-soft);background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;padding:13px 18px;font-size:11.5px;display:flex}.technical-toggle span{align-items:center;gap:6px;display:inline-flex}.chevron{transition:transform .2s}.technical-panel.open .chevron{transform:rotate(180deg)}.technical-body{border-top:1px solid var(--line);padding:4px 18px 16px}.technical-body dl{flex-direction:column;margin:0;display:flex}.technical-body dl div{border-bottom:1px dashed #d9d2c399;grid-template-columns:90px minmax(0,1fr);gap:10px;padding:6px 0;font-size:10.5px;display:grid}.technical-body dt{color:var(--muted)}.technical-body dd{color:var(--ink-soft);margin:0}.technical-note{color:var(--muted);margin-top:10px;font-size:10px;line-height:1.6}.technical-note strong{color:var(--ink-soft);margin-bottom:4px;display:block}.technical-note p+p{margin-top:6px}.diagnosis-picker{border:1px solid var(--line);background:#fffefb;border-radius:6px;align-items:center;gap:6px;padding:0 8px;display:flex;position:relative}.diagnosis-picker>svg{color:var(--muted);flex:none}.diagnosis-picker input{background:0 0;border:0;outline:0;width:100%;padding:6px 0;font-size:11.5px}.diagnosis-picker:focus-within{border-color:var(--accent)}.diagnosis-menu{z-index:30;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;max-height:240px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.diagnosis-menu button{text-align:left;background:0 0;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:7px 8px;display:flex}.diagnosis-menu button:hover{background:var(--accent-soft)}.diagnosis-menu span{flex-direction:column;gap:1px;display:flex}.diagnosis-menu strong{color:var(--ink);font-size:11px;font-weight:500}.diagnosis-menu small{color:var(--muted);font-size:9.5px}.diagnosis-menu em{color:var(--muted);font-size:9.5px;font-style:normal}.diagnosis-menu p{color:var(--muted);padding:8px;font-size:11px}.diagnosis-value{border:1px solid var(--line);background:#fffefb;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:5px 7px;display:flex}.diagnosis-value div{flex-direction:column;gap:1px;min-width:0;display:flex}.diagnosis-value strong{white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:500;overflow:hidden}.diagnosis-value span{color:var(--muted);font-size:9.5px}footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:16px;margin-top:auto;padding:18px 34px 24px;font-size:10.5px;display:flex}footer span{color:var(--ink-soft);font-weight:600}@media (max-width:1180px){.workspace{grid-template-columns:1fr}.left-rail{max-height:none;position:static;overflow:visible}.case-picker{grid-template-columns:repeat(3,1fr)}.step-grid{grid-template-columns:1fr 1fr}.step-grid .step-block:last-child{grid-column:1/-1}}@media (max-width:760px){.topbar{flex-direction:column;align-items:flex-start;padding:12px 16px}.workspace{padding:16px}.case-picker{grid-template-columns:1fr 1fr}.visit-grid{grid-template-columns:1fr}.result-summary{flex-direction:column;align-items:flex-start}.path-row{grid-template-columns:24px minmax(0,1fr) 40px 70px}.path-intervals{display:none}.step-grid{grid-template-columns:1fr}.step-tabs{flex-wrap:wrap}.empty-state{min-height:420px;padding:30px 22px}footer{flex-direction:column;padding:14px 16px 20px}}.consent-backdrop,.model-card-backdrop{z-index:80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1c25318c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.consent-card{border:1px solid var(--line);background:var(--surface);border-radius:18px;grid-template-columns:1.05fr .95fr;width:min(1080px,100%);max-height:calc(100vh - 48px);display:grid;overflow:auto;box-shadow:0 40px 100px #14120e4d}.consent-visual{color:#f6f2e8;background:radial-gradient(circle at 18% 12%,#0f6b628c,#0000 38%),radial-gradient(circle at 88% 82%,#b4623a61,#0000 34%),#1c2531;flex-direction:column;justify-content:space-between;gap:24px;padding:46px 42px;display:flex}.consent-mark{color:#f6f2e8;border:1px solid #f6f2e847;border-radius:10px;place-items:center;width:46px;height:46px;display:grid}.consent-visual .eyebrow{color:#f6f2e89e;margin-top:18px}.consent-visual h1{color:#fffdf6;letter-spacing:.01em;font-size:clamp(30px,3.2vw,44px);line-height:1.28}.consent-visual>p{color:#f6f2e8c2;max-width:430px;font-size:13px;line-height:1.85}.consent-visual-foot{color:#f6f2e8c7;flex-wrap:wrap;gap:14px;font-size:11.5px;display:flex}.consent-visual-foot span{align-items:center;gap:5px;display:inline-flex}.consent-body{flex-direction:column;justify-content:center;gap:18px;padding:42px 38px;display:flex}.consent-points{flex-direction:column;gap:18px;display:flex}.consent-point{grid-template-columns:38px minmax(0,1fr);align-items:start;gap:12px;display:grid}.consent-icon{background:var(--accent-soft);width:38px;height:38px;color:var(--accent-dark);border-radius:9px;place-items:center;display:grid}.consent-point h3{margin-bottom:4px;font-size:14px}.consent-point p{color:var(--muted);font-size:11.5px;line-height:1.65}.consent-check{border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);cursor:pointer;border-radius:8px;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:9px;padding:12px 13px;font-size:11px;line-height:1.6;display:grid}.consent-check input{accent-color:var(--accent);margin-top:3px}.consent-button{width:100%;padding:12px 16px;font-size:13px}.consent-foot{color:var(--muted);font-size:10px;line-height:1.55}.model-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;width:min(780px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:0 40px 100px #14120e4d}.model-card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 26px 14px;display:flex}.model-card-head h2{font-size:22px}.model-card-grid{grid-template-columns:1fr 1fr;gap:18px 24px;padding:22px 26px;display:grid}.model-card-grid h3{color:var(--accent-dark);margin-bottom:6px;font-size:12.5px}.model-card-grid p{color:var(--muted);font-size:11px;line-height:1.7}.model-card-note{background:var(--paper);border:1px solid var(--line);border-radius:8px;margin:0 26px 24px;padding:12px 14px}.model-card-note strong{margin-bottom:4px;font-size:11px;display:block}.model-card-note p{color:var(--muted);font-size:10.5px;line-height:1.65}.reading-guide{position:relative;overflow:hidden}.reading-guide-head{align-items:flex-start;gap:10px;padding:15px 18px 6px;display:flex}.reading-icon{background:var(--warm-soft);width:30px;height:30px;color:var(--warm);border-radius:7px;flex:none;place-items:center;display:grid}.reading-guide h3{font-size:15px}.reading-steps{grid-template-columns:repeat(3,1fr);gap:16px;padding:6px 18px 16px;display:grid}.reading-steps>div{border-top:1px solid var(--line);padding-top:10px}.reading-steps strong{color:var(--warm);margin-bottom:6px;font-family:Noto Serif SC,Songti SC,serif;font-size:16px;display:block}.reading-steps p{color:var(--muted);font-size:10.5px;line-height:1.65}.reading-steps b{color:var(--ink-soft)}.result-disclaimer{background:var(--paper);border:1px dashed var(--line-strong);color:var(--muted);border-radius:8px;align-items:flex-start;gap:8px;padding:10px 14px;font-size:10.5px;line-height:1.6;display:flex}.result-disclaimer svg{color:var(--accent);flex:none;margin-top:2px}.top-chip-button{cursor:pointer}.top-chip-button:hover{border-color:var(--accent);color:var(--accent-dark)}.technical-panel,.reading-guide{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}@media (max-width:900px){.consent-card{grid-template-columns:1fr}.consent-visual{gap:14px;padding:30px 26px}.consent-visual>p{font-size:12px}.consent-body{padding:26px 24px}.model-card-grid{grid-template-columns:1fr}.reading-steps{grid-template-columns:1fr;gap:10px}}@media (max-width:520px){.consent-backdrop,.model-card-backdrop{padding:10px}.consent-card{border-radius:12px;max-height:calc(100vh - 20px)}.consent-visual h1{font-size:26px}.consent-visual-foot{gap:8px;font-size:10.5px}.consent-body{padding:20px 18px}.model-card-head,.model-card-grid{padding-left:18px;padding-right:18px}.model-card-note{margin-left:18px;margin-right:18px}}
