:root{color-scheme:light;--bg: #f4f6f8;--panel: #ffffff;--text: #1a2332;--muted: #5a6a7a;--border: #d8e0e8;--banner: #e8f0f6;--banner-border: #9bb8cc;--accent: #3d7a9c;--emergency-bg: #eef4f8;--emergency-border: #6a8fa8;--warn-soft: #f5f0e6;font-family:Segoe UI,system-ui,-apple-system,PingFang SC,Noto Sans SC,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:grid;grid-template-rows:auto auto auto 1fr;height:100vh;min-height:100vh}.top-nav{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;padding:.75rem 1.25rem;background:var(--panel);border-bottom:1px solid var(--border)}.top-nav .brand{font-weight:650;margin-right:auto}.capability-banner{margin:0;padding:.65rem 1.25rem;background:var(--banner);border-bottom:1px solid var(--banner-border);color:#2a4050;font-size:.92rem}.main-layout{display:grid;grid-template-columns:280px 1fr 320px;gap:0;min-height:0}@media (max-width: 960px){.app-shell{height:auto}.main-layout{grid-template-columns:1fr;height:auto}}.side-panel{background:var(--panel);border-right:1px solid var(--border);padding:1rem;overflow:auto}.side-panel.right{border-right:none;border-left:1px solid var(--border)}.viewport{position:relative;display:flex;flex-direction:column;background:#dfe8ef;min-height:420px;min-width:0}.body-scene{position:relative;flex:1 1 auto;min-height:280px}.viewport canvas{display:block}.panel-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .75rem}.layer-row,.control-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.6rem;font-size:.95rem}.disease-list{list-style:none;padding:0;margin:0 0 1rem}.disease-list li{margin-bottom:.4rem}.disease-list button,.btn{width:100%;text-align:left;padding:.55rem .7rem;border:1px solid var(--border);border-radius:8px;background:#fafcfd;cursor:pointer;color:var(--text)}.disease-list button.active,.btn:hover{border-color:var(--accent);background:#eef6fb}.input{width:100%;padding:.55rem .7rem;border:1px solid var(--border);border-radius:8px;margin-bottom:.75rem;font:inherit}.risk-card{border:1px solid var(--border);border-radius:8px;padding:.65rem .75rem;margin-bottom:.55rem;background:#fafbfc;font-size:.9rem}.risk-card .meta{color:var(--muted);font-size:.8rem;margin-top:.35rem}.disclaimer-tag{display:inline-block;font-size:.75rem;color:#6a5a40;background:var(--warn-soft);border:1px solid #e0d4bc;border-radius:4px;padding:.1rem .4rem;margin-top:.35rem}.emergency-card{border:2px solid var(--emergency-border);background:var(--emergency-bg);border-radius:10px;padding:.85rem 1rem;margin-bottom:.85rem;color:#243848}.emergency-card strong{display:block;margin-bottom:.35rem}.page{padding:1.5rem;max-width:720px}.muted{color:var(--muted);font-size:.9rem}.skin-slider{width:100%}.ai-draft-banner{margin:0;padding:.55rem 1.25rem;background:#f3ebe0;border-bottom:2px solid #c4a574;color:#4a3a28;font-weight:650;font-size:.95rem;text-align:center}.preview-block{background:#1e2430;color:#e8eef4;padding:.85rem 1rem;border-radius:8px;overflow:auto;font-size:.8rem;line-height:1.4}.nav-meta{margin-left:.25rem;font-size:.85rem}.demo-hint{margin:0 0 .75rem;font-size:.82rem;color:var(--muted);line-height:1.45}.expert-hint{line-height:1.45}.expert-callout{background:#eef5f9;border:1px solid var(--banner-border);border-radius:8px;padding:.85rem 1rem;margin:.75rem 0 1.25rem;color:#2a4050;font-size:.92rem}.disease-group{margin-bottom:.85rem}.disease-group-title{margin:0 0 .4rem;font-size:.78rem;font-weight:650;color:var(--muted);letter-spacing:.02em}.disease-list li{display:grid;grid-template-columns:1fr auto;gap:.35rem;align-items:stretch}.disease-detail-link{display:inline-flex;align-items:center;padding:0 .45rem;font-size:.78rem;border:1px solid var(--border);border-radius:8px;color:var(--accent);background:#fafcfd}.disease-detail-link:hover{background:#eef6fb;text-decoration:none}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:-.25rem 0 .85rem}.chip{border:1px solid var(--border);background:#f7fafc;color:var(--text);border-radius:999px;padding:.25rem .65rem;font:inherit;font-size:.82rem;cursor:pointer}.chip:hover,.chip.active{border-color:var(--accent);background:#eef6fb;color:#2a4a5c}.viewport-demo-strip{position:absolute;z-index:2;left:12px;top:12px;right:12px;max-width:560px;background:#ffffffeb;border:1px solid var(--border);border-radius:8px;padding:.55rem .75rem;font-size:.82rem;color:#3a4a58;line-height:1.45;pointer-events:none}.viewport-demo-strip a{pointer-events:auto}.viewport-demo-strip strong{display:block;margin-bottom:.2rem;color:var(--text);font-size:.85rem}.viewport-disease-card{position:absolute;left:12px;bottom:12px;right:12px;max-width:min(420px,calc(100% - 148px));background:#ffffffeb;border:1px solid var(--border);border-radius:8px;padding:.65rem .8rem;font-size:.9rem;z-index:2;pointer-events:none}.orbit-dock{position:absolute;z-index:3;right:12px;bottom:12px;display:flex;flex-direction:column;align-items:center;gap:8px;width:112px;-webkit-user-select:none;user-select:none;touch-action:none}.orbit-reset,.orbit-zoom-btn{font:inherit;color:var(--text);background:#fffffff0;border:1px solid var(--border);border-radius:8px;cursor:pointer}.orbit-reset{width:100%;padding:.4rem .5rem;font-size:.82rem;font-weight:650}.orbit-caption{font-size:.75rem;line-height:1;color:var(--muted)}.orbit-reset:hover,.orbit-zoom-btn:hover,.orbit-pad:hover{border-color:var(--accent);background:#eef6fb}.orbit-reset:focus-visible,.orbit-zoom-btn:focus-visible,.orbit-pad:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.orbit-pad{position:relative;width:84px;height:84px;border-radius:50%;border:1px solid var(--border);background:#fffffff0;box-shadow:inset 0 0 0 1px #fff6;touch-action:none;cursor:grab}.orbit-pad:active{cursor:grabbing}.orbit-pad-cross{position:absolute;top:18px;right:18px;bottom:18px;left:18px;border-radius:50%;pointer-events:none;background:linear-gradient(var(--border),var(--border)) center / 1px 100% no-repeat,linear-gradient(var(--border),var(--border)) center / 100% 1px no-repeat}.orbit-knob{position:absolute;left:50%;top:50%;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:var(--accent);box-shadow:0 1px 3px #1a233240;pointer-events:none}.orbit-zoom{display:flex;gap:6px;width:100%}.orbit-zoom-btn{flex:1;padding:.2rem 0;font-size:1rem;line-height:1.2}@media (max-width: 960px){.orbit-dock{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;width:auto;max-width:calc(100% - 16px);bottom:8px;right:8px}.orbit-reset{width:auto;padding:.35rem .55rem}.orbit-pad{width:64px;height:64px}.orbit-zoom{width:auto}.orbit-zoom-btn{width:36px;flex:none}}.file-map{width:100%;border-collapse:collapse;font-size:.9rem;margin-bottom:1.25rem}.file-map th,.file-map td{border:1px solid var(--border);padding:.45rem .6rem;text-align:left;vertical-align:top}.file-map th{background:#eef3f7;font-weight:650}.missing-mesh-banner{margin:.5rem .75rem;padding:.5rem .75rem;background:var(--warn-soft);border:1px solid #c9b896;border-radius:6px;font-size:.85rem;color:#4a4030}.missing-mesh-tag{display:inline-block;margin-top:.15rem;padding:.1rem .4rem;border-radius:4px;background:#f0e6d4;color:#6a5530;font-size:.75rem;font-weight:600}.layer-block .layer-row{display:flex;justify-content:space-between;align-items:center}
