html,body,#root{color:#e6edf3;background:#0b0f14;width:100%;height:100%;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;overflow:hidden}svg{cursor:grab;touch-action:none;width:100vw;height:100vh;display:block}.link{fill:none;stroke-width:1.8px;opacity:.85;transition:stroke-width .15s,opacity .15s}.link.highlighted{stroke-width:4px;opacity:1}.link.dimmed{opacity:.18}.card{box-sizing:border-box;color:#fff;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;justify-content:center;align-items:center;width:100%;height:100%;padding:8px 30px;line-height:1.2;transition:box-shadow .12s;display:flex;box-shadow:0 2px 6px #00000059}.card:hover{box-shadow:0 4px 12px #00000080}.card .title{-webkit-line-clamp:2;line-clamp:2;word-break:break-word;-webkit-box-orient:vertical;font-size:12px;font-weight:700;display:-webkit-box;overflow:hidden}.card.active,.node.active .card{filter:brightness(1.18);box-shadow:0 6px 18px #0000008c,inset 0 0 0 2px #ffffff40}.card.root{background:linear-gradient(#ff8a1f,#e65100);border:1px solid #ffb74d}.card.thera{background:linear-gradient(#2e7d32,#1b5e20);border:1px solid #66bb6a}.card.maha{background:linear-gradient(#1565c0,#0d47a1);border:1px solid #42a5f5}.card.vajra{background:linear-gradient(#ad1457,#880e4f);border:1px solid #e91e63}.card.common{background:linear-gradient(#6a1b9a,#4a148c);border:1px solid #ba68c8}.card.group{background:linear-gradient(#546e7a,#37474f);border:1px solid #90a4ae}.card.milestone{color:#1a1100;background:linear-gradient(#ffb300,#b08200);border:2px solid #ffd180}.card.milestone .title{color:#1a1100}.card.milestone .yearT{color:#3a2a00;opacity:1;font-weight:600}.card.root .title{font-size:14px}.axis line{stroke:#1a2330;stroke-dasharray:3 5}.axis text{fill:#8aa0b3;font-size:11px}.axis .axis-spine{stroke:#3a4655;stroke-dasharray:none;stroke-width:1.5px}.axis .cn line{stroke:#e0a060;stroke-dasharray:none;opacity:.55}.axis .cn text{fill:#e0a060;font-weight:700}.axis-title{fill:#bcd;font-size:13px;font-weight:700}.legend{z-index:10;background:#0f141ceb;border:1px solid #2a3340;border-radius:10px;max-width:240px;padding:10px 14px;font-size:12px;line-height:1.7;position:fixed;top:12px;left:12px}.legend h3{color:#ffb74d;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;margin:0 0 6px;font-size:13px;display:flex}.legend h3:before{content:"▾";font-size:11px;transition:transform .15s}.legend.collapsed h3{margin:0}.legend.collapsed h3:before{transform:rotate(-90deg)}.legend.collapsed .row{display:none}.legend .row{align-items:center;gap:8px;display:flex}.legend .sw{border:2px solid;border-radius:3px;flex:none;width:14px;height:14px;display:inline-block}.legend .sw.root{background:#e65100;border-color:#ffb74d}.legend .sw.thera{background:#1b5e20;border-color:#66bb6a}.legend .sw.maha{background:#0d47a1;border-color:#42a5f5}.legend .sw.vajra{background:#880e4f;border-color:#e91e63}.legend .sw.common{background:#4a148c;border-color:#ba68c8}.legend .sw.group{background:#37474f;border-color:#90a4ae}.legend .sw.milestone{background:#b08200;border-color:#ffd180}.hint{color:#7a8896;pointer-events:none;background:#0f141cb3;border-radius:6px;padding:6px 10px;font-size:11px;position:fixed;bottom:10px;left:14px}.speaker-indicator{z-index:200;color:#e8f5e9;cursor:pointer;background:linear-gradient(#1b5e20,#144818);border:1px solid #66bb6a;border-radius:22px;align-items:center;gap:8px;max-width:min(360px,100vw - 28px);padding:8px 12px;font-size:12px;font-weight:600;animation:1.6s ease-in-out infinite spk-pulse;display:inline-flex;position:fixed;bottom:14px;right:14px;box-shadow:0 6px 18px #0000008c}.speaker-indicator:hover{filter:brightness(1.12)}.speaker-indicator .speaker-icon{font-size:16px;line-height:1}.speaker-indicator .speaker-label{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.speaker-indicator .speaker-stop{text-align:center;background:#00000059;border-radius:50%;width:18px;height:18px;font-size:14px;font-weight:700;line-height:16px}@keyframes spk-pulse{0%,to{box-shadow:0 6px 18px #0000008c,0 0 #66bb6a8c}50%{box-shadow:0 6px 18px #0000008c,0 0 0 8px #66bb6a00}}#tooltip{box-sizing:border-box;color:#e6edf3;opacity:0;visibility:hidden;z-index:100;pointer-events:none;background:#1a2330;border:1px solid #3a4655;border-radius:10px;max-width:min(420px,100vw - 24px);padding:10px 30px 10px 14px;font-size:12px;line-height:1.55;transition:opacity .12s;position:fixed;top:0;left:0;transform:translate(-50%);box-shadow:0 8px 24px #0009}#tooltip.show{opacity:1;visibility:visible}#tooltip.touch{pointer-events:auto}#tooltip .ttl-title{color:#fff;margin-bottom:4px;font-size:13px;font-weight:700}#tooltip .ttl-meta{color:#ffd180;margin-bottom:6px;font-size:11px}#tooltip .ttl-body{color:#cfd8dc}#tooltip .ttl-close{text-align:center;cursor:pointer;color:#8aa0b3;-webkit-user-select:none;user-select:none;border-radius:6px;width:24px;height:24px;font-size:18px;font-weight:700;line-height:22px;display:none;position:absolute;top:4px;right:6px}#tooltip.touch .ttl-close{display:block}#tooltip .ttl-close:hover,#tooltip .ttl-close:active{color:#fff;background:#2a3340}#tooltip:after{content:"";border-bottom:6px solid #1a2330;border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;position:absolute;top:-6px;left:50%;transform:translate(-50%)}#tooltip.above:after{border-top:6px solid #1a2330;border-bottom:none;top:auto;bottom:-6px}#tooltip.sheet-bottom{border-radius:14px;width:auto;max-width:none;max-height:50vh;padding:18px 30px 12px 14px;inset:auto 8px 8px;transform:none}#tooltip.sheet-bottom:after{display:none}#tooltip.sheet-bottom:before{content:"";background:#4a5566;border-radius:2px;width:36px;height:4px;position:absolute;top:6px;left:50%;transform:translate(-50%)}#tooltip.sheet-side{border-radius:12px;width:320px;max-width:320px;max-height:calc(100vh - 16px);inset:8px 8px 8px auto;transform:none}#tooltip.sheet-side:after{display:none}.intro-overlay{z-index:50;background:#080c12ed;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.intro-card{color:#cfd8dc;background:linear-gradient(#15212e,#0f1923);border:1px solid #2a3340;border-radius:14px;max-width:560px;padding:22px 24px;font-size:14px;line-height:1.55}.intro-card h1{color:#ffd180;text-align:center;margin:0 0 8px;font-size:20px}.intro-card .sub{color:#90a4ae;text-align:center;margin-bottom:14px;font-size:12px}.intro-card .steps{margin:10px 0 14px;padding-left:20px}.intro-card .steps li{margin:4px 0}.intro-card .pills{flex-wrap:wrap;justify-content:center;gap:6px;margin:10px 0 14px;display:flex}.intro-card .pill{color:#fff;border:1px solid;border-radius:14px;padding:4px 10px;font-size:11.5px;font-weight:600}.intro-card .pill.thera{background:#1b5e20;border-color:#66bb6a}.intro-card .pill.maha{background:#0d47a1;border-color:#42a5f5}.intro-card .pill.vajra{background:#880e4f;border-color:#e91e63}.intro-card .start-btn{color:#fff;cursor:pointer;background:linear-gradient(#ff8a1f,#e65100);border:none;border-radius:8px;width:100%;margin-top:6px;padding:10px 18px;font-size:14px;font-weight:700;display:block}@media (width<=720px){.legend{max-width:180px;padding:6px 10px;font-size:11px;top:8px;left:auto;right:8px}.legend h3{font-size:12px}.hint{display:none}}.node-icon{cursor:pointer;opacity:0;pointer-events:none;transition:opacity .14s}.node:hover .node-icon,.node.active .node-icon{opacity:1;pointer-events:auto}.node-icon .glyph{pointer-events:none;fill:none;stroke:#fff;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1.5px #000000b3)}.node-icon .hit{fill:#0000;stroke:none}.node-copy .check-glyph,.node-copy.copied .copy-glyph{display:none}.node-copy.copied .check-glyph{display:block}.node-copy.copied .glyph{stroke:#66bb6a}#modal{z-index:200;display:none;position:fixed;inset:0}#modal.show{display:block}#modal .backdrop{background:#000000b3;position:absolute;inset:0}#modal .card-modal{color:#e6edf3;background:linear-gradient(#15212e,#0f1923);border:1px solid #2a3340;border-radius:12px;width:calc(100% - 32px);max-width:560px;max-height:calc(100vh - 32px);padding:18px 20px 16px;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 14px 44px #000000b3}#modal h3{color:#ffd180;margin:0 0 12px;font-size:15px}#modal label{color:#aab7c4;margin:10px 0 4px;font-size:12px;display:block}#modal input,#modal textarea{box-sizing:border-box;color:#fff;background:#0b0f14;border:1px solid #2a3340;border-radius:8px;outline:none;width:100%;padding:9px 10px;font-family:inherit;font-size:13px;line-height:1.5}#modal input:focus,#modal textarea:focus{border-color:#1565c0}#modal textarea{resize:vertical;min-height:140px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px}#modal .actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}#modal .actions button{cursor:pointer;color:#aab7c4;background:0 0;border:1px solid #2a3340;border-radius:8px;padding:8px 14px;font-family:inherit;font-size:13px}#modal .actions .save{color:#fff;background:linear-gradient(#ff8a1f,#e65100);border-color:#ff8a1f}#modal .hint-text{color:#7a8896;margin-top:6px;font-size:11px}
