:root{--bg: #11151c;--panel: #1a2029;--panel-soft: #222a36;--border: #2e3744;--text: #e8edf4;--text-dim: #93a1b3;--accent: #3a9bff;--bone: #e9e2d0;--muscle: #e0584e;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);overflow:hidden}.app{display:flex;height:100%}.app.side-right{flex-direction:row-reverse}.app.side-right .sidebar{border-right:none;border-left:1px solid var(--border)}.viewer{flex:1;min-width:0;position:relative}.viewer canvas{display:block}.viewer-loader{color:var(--text-dim);font-size:14px;white-space:nowrap}.sidebar{width:320px;flex-shrink:0;height:100%;display:flex;flex-direction:column;gap:14px;padding:20px 18px;background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;z-index:10}.sidebar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.sidebar-header h1{font-size:22px;letter-spacing:.5px}.side-toggle{flex-shrink:0;background:var(--panel-soft);border:1px solid var(--border);color:var(--text-dim);font-size:11px;font-weight:600;padding:5px 9px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}.side-toggle:hover{color:var(--accent);border-color:var(--accent)}.tagline{font-size:12px;color:var(--text-dim);margin-top:2px}.panel{background:var(--panel-soft);border:1px solid var(--border);border-radius:10px;padding:14px}.panel h2{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--text-dim);margin-bottom:10px}.segmented{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.segmented button{flex:1;padding:8px 0;background:transparent;border:none;color:var(--text-dim);font-size:13px;cursor:pointer;transition:background .15s,color .15s}.segmented button.active{background:var(--accent);color:#04121f;font-weight:600}.segmented.views{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border)}.toggle{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:13.5px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{accent-color:var(--accent);width:15px;height:15px}.hint{font-size:12px;color:var(--text-dim);line-height:1.5;margin-top:9px}.full-slider{width:100%;accent-color:var(--accent)}.slider-label{display:block;font-size:11.5px;color:var(--text-dim);margin:8px 0 2px}.slider-label:first-of-type{margin-top:0}.anno{transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;pointer-events:none;-webkit-user-select:none;user-select:none}.anno-label{background:#11151ceb;border:1px solid var(--accent);color:var(--accent);font-size:12px;font-weight:600;white-space:nowrap;padding:3px 9px;border-radius:6px;box-shadow:0 2px 8px #0006}.anno-line{width:1px;height:28px;background:var(--accent)}.anno-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:-4px;box-shadow:0 0 6px var(--accent)}.list-panel{display:flex;flex-direction:column;min-height:140px}.list-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.list-head h2{margin-bottom:0}.sort-select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:11.5px;padding:4px 6px;cursor:pointer}.sort-select:focus{outline:1px solid var(--accent)}.structure-list{list-style:none;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;padding-right:2px}.structure-list button{width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);font-size:13px;padding:6px 9px;cursor:pointer;transition:background .12s,border-color .12s;display:flex;align-items:center;justify-content:space-between;gap:8px}.structure-list button:hover{background:#ffffff0d}.structure-list button.active{background:#3a9bff29;border-color:var(--accent);color:var(--accent);font-weight:600}.search-row{position:relative;display:flex;align-items:center}.search-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:13px;padding:9px 30px 9px 11px;font-family:inherit}.search-input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.search-input::-webkit-search-cancel-button{display:none}.search-clear{position:absolute;right:8px;background:transparent;border:none;color:var(--text-dim);font-size:12px;cursor:pointer;padding:2px 4px}.search-clear:hover{color:var(--text)}.tree,.tree-groups,.tree-leaves{list-style:none}.tree{max-height:340px;overflow-y:auto;padding-right:2px}.tree-groups{margin-left:6px;border-left:1px solid var(--border);padding-left:6px}.tree-leaves{margin-left:14px}.tree-region,.tree-group,.tree-leaf{width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text);cursor:pointer;padding:6px 8px;display:flex;align-items:center;gap:7px;transition:background .12s,border-color .12s}.tree-region{font-size:13px;font-weight:600}.tree-group{font-size:12.5px;color:var(--text)}.tree-leaf{font-size:12.5px;color:var(--text-dim)}.tree-region:hover,.tree-group:hover,.tree-leaf:hover{background:#ffffff0d}.tree-leaf.active,.tree-group:has(.active){background:#3a9bff29;border-color:var(--accent);color:var(--accent);font-weight:600}.caret{font-size:9px;color:var(--text-dim);width:9px;flex-shrink:0}.tree-count{margin-left:auto;font-size:10.5px;color:var(--text-dim);background:#ffffff0f;padding:1px 6px;border-radius:999px}.exercises{margin-top:14px}.exercises h3{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin-bottom:8px}.exercises ul{list-style:none;display:flex;flex-direction:column;gap:7px}.exercises li{background:var(--bg);border:1px solid var(--border);border-left:2px solid var(--muscle);border-radius:6px;padding:7px 9px}.exercise-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:10px}.exercise-card{width:100%;display:flex;gap:10px;align-items:center;text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px;cursor:pointer;transition:border-color .12s,background .12s}.exercise-card:hover{border-color:var(--text-dim)}.exercise-card.active{border-color:var(--accent);background:#3a9bff1a}.exercise-card img{width:84px;height:49px;border-radius:5px;flex-shrink:0;object-fit:cover}.exercise-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.exercise-name{font-size:13.5px;font-weight:600;color:var(--text)}.exercise-cue{font-size:11px;color:var(--text-dim);line-height:1.35}.worked{padding:8px 4px 2px;display:flex;flex-direction:column;gap:6px}.worked-row{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.worked-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;padding:2px 7px;border-radius:999px}.worked-tag.primary{background:#ff4d4d33;color:#ff7a7a}.worked-tag.secondary{background:#ff9a8a2e;color:#ffb3a6}.worked-chip{font-size:11px;color:var(--text);background:#ffffff0f;border-radius:5px;padding:2px 7px}.ex-name{display:block;font-size:13px;font-weight:600}.ex-note{display:block;font-size:11.5px;color:var(--text-dim);margin-top:2px;line-height:1.4}.selection-panel{flex:1;display:flex;flex-direction:column}.selection-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.structure-name{font-size:17px;font-weight:600}.badge{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;padding:3px 8px;border-radius:999px}.badge.skeleton{background:#e9e2d026;color:var(--bone)}.badge.muscular{background:#e0584e2e;color:var(--muscle)}.badge.organ{background:#c97b6a33;color:#e6a08f}.description{font-size:13.5px;line-height:1.55;color:var(--text)}.description p{margin-bottom:10px}.placeholder{color:var(--text-dim);font-size:13px;line-height:1.55}.placeholder code{font-size:11.5px;background:#ffffff12;padding:1px 5px;border-radius:4px}.sidebar-footer{font-size:11.5px;color:var(--text-dim);text-align:center;display:flex;flex-direction:column;gap:6px}.sidebar-footer .credit{font-size:10.5px;opacity:.85}.sidebar-footer a{color:var(--accent);text-decoration:none}.sidebar-footer a:hover{text-decoration:underline}@media (max-width: 720px){.app,.app.side-right{flex-direction:column-reverse}.sidebar{width:100%;height:42%;border-right:none;border-top:1px solid var(--border)}}
