:root{--bg: #050308;--panel-bg: rgba(15, 10, 24, .82);--panel-border: rgba(139, 92, 246, .25);--text: #ece7f6;--text-dim: #9a8fb5;--accent: #8b5cf6;--radius: 14px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased}#scene{position:fixed;inset:0;display:block;touch-action:none;cursor:grab}#scene:active{cursor:grabbing}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent}#panel{position:fixed;top:calc(10px + var(--safe-top));right:calc(10px + var(--safe-right));width:min(240px,calc(100vw - 20px - var(--safe-left) - var(--safe-right)));background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:10;overflow:hidden}.panel-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;text-align:left}.panel-title{font-size:13px;font-weight:650;letter-spacing:.02em;flex:1;white-space:nowrap}.panel-count{font-size:11px;color:var(--text-dim);white-space:nowrap}.panel-chevron{font-size:10px;color:var(--text-dim);transition:transform .2s}#panel.open .panel-chevron{transform:rotate(180deg)}.panel-body{display:none;padding:0 10px 10px}#panel.open .panel-body{display:block}.panel-categories{list-style:none;display:flex;flex-direction:column;gap:2px}.panel-category{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border-radius:8px;font-size:12.5px;transition:background .15s,opacity .15s}.panel-category:hover{background:#ffffff0f}.panel-category.active{background:#8b5cf62e}.panel-category.muted{opacity:.45}.cat-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.cat-label{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-count{font-size:11px;color:var(--text-dim);font-variant-numeric:tabular-nums}.panel-bloom{width:100%;margin-top:8px;padding:7px 8px;border-radius:8px;border:1px solid var(--panel-border);font-size:12px;color:var(--accent);transition:color .15s,border-color .15s}.panel-bloom.off{color:var(--text-dim);border-color:#ffffff14}.panel-hint{margin-top:8px;font-size:10.5px;line-height:1.45;color:var(--text-dim)}@media (min-width: 768px){#panel{top:calc(16px + var(--safe-top));right:calc(16px + var(--safe-right));width:260px}}#sheet{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--panel-bg);border:1px solid var(--panel-border);border-bottom:none;border-radius:18px 18px 0 0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:0 16px calc(20px + var(--safe-bottom));transform:translateY(105%);transition:transform .28s cubic-bezier(.32,.72,.22,1);max-height:55vh;overflow-y:auto;overscroll-behavior:contain}#sheet.open{transform:translateY(0)}#sheet.dragging{transition:none}.sheet-handle{position:sticky;top:0;display:flex;justify-content:center;padding:10px 0 14px;touch-action:none;cursor:grab}.sheet-handle span{width:40px;height:4px;border-radius:2px;background:#ffffff40}.sheet-close{position:absolute;top:10px;right:12px;width:30px;height:30px;border-radius:50%;background:#ffffff14;color:var(--text-dim);font-size:13px;line-height:1;display:none;align-items:center;justify-content:center}.sheet-meta{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.sheet-category{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border:1px solid;border-radius:99px}.sheet-status{font-size:11px;padding:3px 9px;border-radius:99px;background:#ffffff14;color:var(--text-dim)}.sheet-status[data-status=done]{background:#34d39926;color:#34d399}.sheet-status[data-status=available]{background:#fbbf2424;color:#fbbf24}.sheet-title{font-size:19px;font-weight:700;letter-spacing:-.01em;margin-bottom:8px}.sheet-description{font-size:14px;line-height:1.55;color:#c9c0dd;margin-bottom:16px}.sheet-complete{display:block;width:100%;padding:10px 14px;margin-bottom:18px;border-radius:10px;border:1px solid rgba(52,211,153,.45);background:#34d3991f;color:#34d399;font-size:13.5px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.sheet-complete:hover{background:#34d39933}.sheet-complete.done{border-color:#ffffff26;background:#ffffff0d;color:var(--text-dim)}.sheet-complete:disabled{border-color:#ffffff1a;background:#ffffff08;color:var(--text-dim);cursor:not-allowed}.sheet-lesson{margin-bottom:18px}.sheet-lesson[hidden]{display:none}.sheet-lesson details{border:1px solid var(--panel-border);border-radius:10px;padding:0 12px;background:#8b5cf60f}.sheet-lesson summary{padding:10px 0;font-size:13.5px;font-weight:600;color:var(--accent);cursor:pointer;list-style:none;user-select:none}.sheet-lesson summary::-webkit-details-marker{display:none}.sheet-lesson summary:after{content:"▾";float:right;font-size:11px;color:var(--text-dim);transition:transform .2s}.sheet-lesson details[open] summary:after{transform:rotate(180deg)}.sheet-lesson h3{font-size:12px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin:14px 0 6px}.sheet-lesson p{font-size:13px;line-height:1.6;color:#c9c0dd;margin-bottom:8px}.sheet-lesson ul{margin:0 0 10px;padding-left:18px}.sheet-lesson li{font-size:13px;line-height:1.55;color:#c9c0dd;margin-bottom:6px}.sheet-lesson details>*:last-child{margin-bottom:14px}.sheet-links{margin-bottom:14px}.sheet-links-label{display:block;font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px}.sheet-links-list{display:flex;flex-wrap:wrap;gap:6px}.link-chip{font-size:12px;padding:5px 11px;border-radius:99px;border:1px solid rgba(255,255,255,.15);background:#ffffff0a;transition:background .15s}.link-chip:hover{background:#ffffff1a}.link-chip.done{color:#34d399}.sheet-detail-link{display:inline-block;margin-top:16px;font-size:13px;color:var(--accent);text-decoration:none}.sheet-detail-link[hidden]{display:none}@media (min-width: 768px){#sheet{left:calc(16px + var(--safe-left));top:calc(16px + var(--safe-top));right:auto;bottom:auto;width:320px;max-height:calc(100vh - 32px - var(--safe-top) - var(--safe-bottom));border-radius:var(--radius);border-bottom:1px solid var(--panel-border);padding:16px 18px 20px;transform:translate(calc(-100% - 24px))}#sheet.open{transform:translate(0)}.sheet-handle{display:none}.sheet-close{display:flex}}
