:root{--bg: #000000;--bg-soft: #070707;--fg: #f0f0f0;--fg-dim: rgba(240, 240, 240, .45);--fg-dimmer: rgba(240, 240, 240, .22);--rule: rgba(255, 255, 255, .08);--accent: #ffffff;--deck-1: #00e5ff;--deck-2: #ff2bd6;--deck-3: #ffe600;--deck-4: #ffffff;--mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sans: ui-sans-serif, system-ui, -apple-system, "SF Pro Text", "Inter", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:13px;letter-spacing:.02em;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision;overflow:hidden}.app{height:100vh;width:100vw;display:flex;flex-direction:column;background:var(--bg)}.mono{font-family:var(--mono);letter-spacing:0}.dim{color:var(--fg-dim)}.dropzone{flex:1;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative}.dropzone:before{content:"";position:absolute;top:32px;right:32px;bottom:32px;left:32px;border:1px dashed rgba(255,255,255,.15);pointer-events:none;transition:border-color .12s ease}.dropzone.hover:before{border-color:var(--accent)}.dropzone-inner{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}.brand{font-family:var(--mono);font-size:48px;letter-spacing:-.04em;text-transform:lowercase;color:var(--fg)}.brand.small{font-size:14px;letter-spacing:0}.tagline{font-family:var(--mono);color:var(--fg-dim);text-transform:lowercase;letter-spacing:.12em;font-size:11px}.instruction{margin-top:28px;color:var(--fg);font-family:var(--mono);font-size:13px}.or{color:var(--fg-dimmer);font-family:var(--mono);font-size:11px}.ghost{background:transparent;color:var(--fg);border:1px solid rgba(255,255,255,.25);padding:8px 16px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:lowercase;cursor:pointer;transition:border-color .12s ease,background .12s ease}.ghost:hover{border-color:var(--fg);background:#ffffff0a}.ghost.small{padding:4px 10px;font-size:11px}.error{margin-top:16px;color:#ff5e6d;font-family:var(--mono);font-size:12px;max-width:480px}.header{height:44px;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 16px;gap:12px;flex-shrink:0}.header-left,.header-center,.header-right{display:flex;align-items:center;gap:10px}.header-center{justify-content:center;font-family:var(--mono);font-size:12px}.header-right{justify-content:flex-end;font-size:11px}.playhead-tc{color:var(--accent);font-size:13px}.timeline-wrap{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column;min-height:0}.timeline-grid{flex:1;display:flex;min-height:0}.timeline-rail{flex-shrink:0;background:var(--bg);border-right:1px solid var(--rule);overflow:hidden;display:flex;flex-direction:column}.rail-cell{display:flex;align-items:center;padding:0 14px;border-bottom:1px solid var(--rule)}.rail-tag{font-family:var(--mono);font-size:9px;text-transform:lowercase;letter-spacing:.14em;color:var(--fg-dim)}.rail-deck-row{padding:10px 14px;display:flex;flex-direction:column;gap:3px;background:#ffffff03;overflow:hidden}.rail-deck-name{font-size:11px;text-transform:lowercase;letter-spacing:.1em;margin-bottom:2px}.rail-track-title{font-size:12px;color:var(--fg);letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-track-artist{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-track-meta{font-size:10px}.rail-track-empty{font-size:10px;margin-top:6px}.timeline-scroll{flex:1;overflow-x:auto;overflow-y:hidden;cursor:crosshair;position:relative}.timeline-scroll::-webkit-scrollbar{height:8px}.timeline-scroll::-webkit-scrollbar-track{background:var(--bg)}.timeline-scroll::-webkit-scrollbar-thumb{background:#ffffff26}.timeline-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.axis-label{fill:var(--fg-dim);font-size:9px;letter-spacing:.06em}.marker{font-size:10px;font-family:var(--mono)}.playhead-label{fill:var(--accent);font-size:10px}.zoom-ctrl{position:absolute;top:10px;right:14px;display:flex;align-items:center;gap:4px;background:#000000bf;border:1px solid var(--rule);padding:4px 8px;z-index:2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.zoom-ctrl .dim{font-size:10px;letter-spacing:.12em;text-transform:lowercase;margin-right:4px}.zoom-btn{background:transparent;color:var(--fg-dim);border:1px solid transparent;padding:2px 8px;font-family:var(--mono);font-size:11px;cursor:pointer;letter-spacing:.02em}.zoom-btn:hover{color:var(--fg);border-color:var(--rule)}.zoom-btn.active{color:var(--accent);border-color:var(--fg-dim)}.detail-panel{border-top:1px solid var(--rule);background:var(--bg-soft);display:grid;grid-template-columns:220px 1fr 280px;gap:0;height:200px;flex-shrink:0}.detail-col{padding:14px 16px;border-right:1px solid var(--rule);overflow:hidden}.detail-col:last-child{border-right:none}.detail-col.grow{overflow:auto}.detail-title{font-family:var(--mono);font-size:10px;text-transform:lowercase;letter-spacing:.14em;color:var(--fg-dim);margin-bottom:6px}.detail-title.mt{margin-top:14px}.detail-val.big{font-size:28px;letter-spacing:0}.detail-sub{font-size:10px}.detail-bar{height:6px;background:#ffffff0f;position:relative;margin-top:4px}.detail-bar-fill{height:100%;background:var(--accent)}.deck-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.deck-cell{border:1px solid;border-color:#fff3;padding:8px 10px;min-height:110px;background:#ffffff05}.deck-cell-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.deck-tag{font-family:var(--mono);font-size:10px;text-transform:lowercase;letter-spacing:.1em}.deck-tag-mini{font-size:9px;margin-left:6px;letter-spacing:.08em}.deck-cell-title{font-family:var(--mono);font-size:12px;text-transform:lowercase;letter-spacing:.02em;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-cell-sub{font-size:10px;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-cell-meta{font-size:10px}.deck-cell-empty{font-family:var(--mono);font-size:10px;margin-top:12px;text-align:center}.event-list{list-style:none;margin:0;padding:0;font-family:var(--mono);font-size:11px}.event-list li{display:flex;align-items:center;gap:8px;padding:2px 0;border-bottom:1px solid rgba(255,255,255,.04)}.event-kind{color:var(--fg);font-size:11px;text-transform:lowercase}
