*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(56,189,248,.18),transparent 28%),radial-gradient(circle at bottom right,rgba(244,63,94,.18),transparent 24%),#07111d;color:#f5f7ff;font-family:Inter,Segoe UI,sans-serif}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,#3b82f624,#f43f5e14 45%,#0f766e14);pointer-events:none}#app{position:relative;z-index:1;max-width:1500px;margin:auto;padding:28px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px;padding:18px 22px;background:#0b111dbd;border:1px solid rgba(148,163,184,.18);border-radius:18px;box-shadow:0 18px 45px #080f1a73;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}h1{color:#f7fbff;font-size:clamp(2rem,2.2vw,2.8rem);letter-spacing:.06em;margin:0 0 8px;text-transform:uppercase;font-weight:800}h2{font-size:20px;margin:0 0 10px}h3{margin:0 0 12px}p{line-height:1.5}.topbar p,.subtitle,.hint,.small-note,.disclaimer,.insight-note,.notice,.metric-label,.model-select-wrap span{color:#aab5cc}.status{color:#a7f3d0;border:1px solid rgba(110,231,183,.35);background:#10b98114;border-radius:20px;padding:9px 14px;font-size:13px;white-space:nowrap;box-shadow:inset 0 0 18px #6ee7b714}.dashboard{display:grid;grid-template-columns:380px minmax(0,1fr);gap:22px;align-items:start}.panel{background:#0c121fcc;border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:24px;min-width:0;box-shadow:0 18px 40px #0206176b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.patient-panel{position:relative}.subtitle{font-size:14px;margin:0 0 22px}#patient-form{display:flex;flex-direction:column;gap:16px}.form-section{background:#0d1322;border:1px solid #2d3d59;border-radius:12px;overflow:hidden}.form-section summary{list-style:none;cursor:pointer;padding:14px 16px;font-size:15px;font-weight:700;color:#edf3ff;background:#ffffff05;border-bottom:1px solid #2d3d59}.form-section summary::-webkit-details-marker{display:none}.form-section[open] summary{border-bottom-color:#ffffff14}.form-section-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;padding:14px 16px 16px}.field-group{display:flex;flex-direction:column;gap:6px}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}label{display:block;color:#d5dced;font-size:13px;margin-top:6px}.field-unit{color:#94a3b8;font-size:11px;white-space:nowrap}input,select{display:block;width:100%;margin-top:7px;padding:12px;background:#0b1020;color:#fff;border:1px solid #3b4660;border-radius:8px;font-size:15px}input:focus,select:focus{outline:2px solid #ff647c;outline-offset:1px}button{width:100%;margin-top:12px;border:0;border-radius:10px;padding:14px;color:#fff;background:linear-gradient(135deg,#f43f5e,#ef4444 35%,#7c3aed);font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 12px 20px #ef44443d;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}button:hover:not(:disabled){background:linear-gradient(135deg,#fb7185,#ef4444 25%,#8b5cf6);transform:translateY(-1px);box-shadow:0 18px 25px #ef444442}button:disabled{opacity:.7;cursor:wait}.secondary-button{background:#1e293be6;border:1px solid rgba(148,163,184,.28)}.secondary-button:hover:not(:disabled){background:#334155f2}.form-actions{display:grid;grid-template-columns:1fr 2fr;gap:12px;margin-top:4px}#patient-result{margin-top:22px;overflow-wrap:anywhere;line-height:1.6;font-size:14px}.result-box{border:1px solid #303b53;border-radius:12px;background:#0d1322;padding:14px}.result-box.loading{border-color:#5366b4}.result-box.success{border-color:#446b5e}.result-box.error{border-color:#7b3d4f;color:#ffb7c3}.result-box.neutral{border-color:#3b4660;color:#dfe7ff}#patient-result h3{color:#82e5b0}.notice{color:#ffd58a;font-size:12px}.heart-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.heart-heading .subtitle{margin-bottom:0}.live-dot{color:#82e5b0;font-size:12px;white-space:nowrap}#heart-view{position:relative;width:100%;height:560px;overflow:hidden;border:1px solid rgba(148,163,184,.2);border-radius:16px;background:radial-gradient(circle at 50% 45%,#60a5fa24,#090e18d1 52%),#0b1220;box-shadow:inset 0 0 30px #3b82f614}#heart-view canvas{display:block;width:100%;height:100%}#heart-view>.css2d-renderer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#loading{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);color:#cbd5e1;text-align:center;pointer-events:none}#loading.error{color:#ff8999}.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}.anatomy-legend{display:flex;flex-wrap:wrap;gap:8px 12px}.toggle-labels{width:auto;min-width:130px;margin-top:0;padding:10px 14px}.vessel-note,.anatomy-note{margin-top:12px;padding:12px 14px;border:1px solid #2d3d59;border-radius:10px;background:#0d1322;color:#ccd7f2;font-size:13px}.vessel-note p,.anatomy-note p{margin:0}.vessel-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.legend-row{display:inline-flex;align-items:center;gap:8px;color:#dfe7ff;font-size:12px}.legend-swatch{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid rgba(255,255,255,.3)}.legend-swatch.normal{background:#4ade80}.legend-swatch.stenotic{background:#ef4444}.legend-swatch.unknown{background:#94a3b8}.annotation-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4}.annotation-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.annotation-point{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--point-color, #7dd3fc);box-shadow:0 0 12px var(--point-color, #7dd3fc),0 0 18px #fff3;transform:translate(-50%,-50%)}.anatomy-label{position:absolute;display:block;pointer-events:none;-webkit-user-select:none;user-select:none;transform:translate(-50%,-50%);filter:drop-shadow(0 0 12px rgba(125,211,252,.2))}.anatomy-label-badge{display:inline-flex;align-items:center;gap:8px;background:#0a0f1ad1;border:1px solid rgba(255,255,255,.14);border-left:3px solid var(--label-color, #7dd3fc);border-radius:999px;padding:5px 10px 5px 8px;color:#f8fafc;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;box-shadow:0 10px 22px #02061780,inset 0 0 8px #94a3b814}.label-dot{width:7px;height:7px;border-radius:50%;background:var(--label-color, #7dd3fc);box-shadow:0 0 10px var(--label-color, #7dd3fc),0 0 16px #fff3}.insights-panel{margin-top:22px}.insights-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.insights-header h2{margin:0}.model-select-wrap{display:inline-flex;align-items:center;gap:10px;color:#dfe7ff;font-size:13px}.model-select-wrap select{width:170px;margin-top:0}.metrics-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr);gap:18px}.metrics-column,.importance-column{background:#0d1322;border:1px solid #2d3d59;border-radius:12px;padding:16px}.metrics-column h3,.importance-column h3{margin:0 0 14px;color:#edf3ff;font-size:18px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.metric-card{background:#101b2b;border:1px solid #33415f;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px}.metric-card strong{color:#fff;font-size:18px}.metric-card.matrix-card{grid-column:1 / -1}.matrix-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.matrix-cell{background:#0b1020;border:1px solid #3b4660;border-radius:6px;padding:8px 10px;text-align:center;color:#edf3ff;font-weight:700}.risk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:12px}.risk-card{background:#101b2b;border:1px solid #33415f;border-radius:12px;padding:12px}.risk-card.normal{border-color:#2f775b}.risk-card.stenotic{border-color:#7d3030}.risk-card h3{margin:0 0 10px;color:#edf3ff;font-size:16px}.prediction-label{margin:0;color:#9fb0ca;font-size:11px;text-transform:uppercase}.prediction-value{margin:8px 0 10px;font-size:19px;font-weight:700;color:#fff}.prediction-probability{margin:0 0 10px;font-size:13px;color:#dfe7ff}.confidence-list{margin:0;padding-left:18px;color:#edf3ff;font-size:12px}.confidence-list li{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px}.importance-chart{display:flex;flex-direction:column;gap:12px}.importance-item{display:flex;flex-direction:column;gap:6px}.importance-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#edf3ff}.importance-bar{width:100%;height:10px;background:#101b2b;border-radius:999px;overflow:hidden;border:1px solid #33415f}.importance-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff647c,#8ea8ff)}.notice-box{background:#0d1322;border:1px solid #2d3d59;border-radius:10px;padding:12px;color:#dfe7ff}.notice-box.error{border-color:#7b3d4f;color:#ffb7c3}.insight-note,.small-note,.disclaimer,.hint{font-size:12px;color:#aab5cc}.hint{text-align:center;font-size:13px;margin:12px 0 0}.disclaimer-banner{margin:22px 0 0;text-align:center;color:#dbeafe;font-size:12px;line-height:1.6;padding:14px 18px;background:#0f172aa6;border:1px solid rgba(148,163,184,.18);border-radius:12px;box-shadow:0 12px 28px #0f172a42}@media(max-width:850px){#app{padding:16px}.dashboard,.metrics-layout,.form-section-body{grid-template-columns:1fr}#heart-view{height:450px}}@media(max-width:480px){.topbar,.insights-header{align-items:flex-start;flex-direction:column}.panel{padding:16px}#heart-view{height:350px}.model-select-wrap{width:100%;justify-content:space-between}}
