:root{color-scheme:dark;--bg:#0d141b;--card:#15202b;--edge:#31404d;--muted:#a5b2c0;--ink:#f3f6f8;--accent:#75d5c4;--warn:#f2c17b;--danger:#fba2a2}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.45}button,select,textarea,input{font:inherit}button,select{color:var(--ink);background:#21313e;border:1px solid #435566;border-radius:10px;padding:9px 12px}button{cursor:pointer;font-weight:650}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:not(:disabled):active{transform:translateY(1px)}button:not(.secondary,.subtle){background:var(--accent);border-color:var(--accent);color:#0e2528}.subtle{background:transparent}.shell{max-width:1200px;margin:0 auto;padding:18px 16px 36px}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.eyebrow{font-size:10px;letter-spacing:.15em;font-weight:750;color:var(--accent)}h1{font-size:26px;line-height:1.05;margin:7px 0 4px;letter-spacing:-.04em}h2{margin:0;font-size:15px}p{margin:0;color:var(--muted)}.version{font-size:11px;opacity:.8}.summary-bar{border:1px solid var(--edge);background:#17252d;border-radius:12px;padding:12px 13px;color:var(--accent);font-size:12px;margin-bottom:12px}.layout{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel{padding:15px;background:var(--card);border:1px solid var(--edge);border-radius:15px;min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.file{font-weight:650;color:var(--accent);cursor:pointer;border:1px solid var(--edge);border-radius:10px;padding:8px 12px;white-space:nowrap}.file input{display:none}.control-row{display:flex;gap:8px;margin-bottom:9px}.control-row label,.panel-title label{display:flex;flex:1;align-items:center;gap:7px;color:var(--muted);font-size:12px;min-width:0}.panel-title label{justify-content:flex-end}.control-row select{min-width:0;max-width:100%;flex:1}.panel-title select{max-width:175px}.control-row select,.panel-title select{font-size:12px;padding:9px}textarea{display:block;resize:vertical;width:100%;height:300px;color:#e6eff4;background:#0b151d;border:1px solid #354657;border-radius:10px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.65;white-space:pre;tab-size:2}#output{color:#d2dedf}.inline{display:flex;justify-content:space-between;gap:6px;margin-top:8px;color:var(--muted);font-size:11px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.report{margin-top:12px}.pill{color:var(--accent);border:1px solid #375c58;padding:4px 8px;border-radius:999px;font-size:11px}.pill.fail{color:var(--danger);border-color:#854f4f}.pill.warn{color:var(--warn);border-color:#76603d}.messages{display:grid;gap:7px}.msg{border-left:3px solid var(--accent);background:#10212a;border-radius:5px;padding:9px 10px;color:#dae3e9;font-size:12px}.msg.warning{border-left-color:var(--warn)}.msg.error{border-left-color:var(--danger)}details{border-top:1px solid var(--edge);margin-top:13px;padding-top:12px}summary{cursor:pointer;font-weight:650;user-select:none}.small,.hint{font-size:12px;color:var(--muted);font-weight:400}.hint{padding-top:10px}.timingRows{display:grid;gap:6px;margin-top:12px;max-height:300px;overflow:auto}.timingRow{display:grid;grid-template-columns:minmax(0,1fr) 88px 88px;align-items:center;gap:8px}.timingRow span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.timingRow input{background:#0b151d;color:var(--ink);border:1px solid #4e5e6a;border-radius:7px;padding:8px;min-width:0;width:100%}.timingRow input.invalid{border-color:var(--danger)}.json{font-size:11px;line-height:1.5;max-height:340px;overflow:auto;background:#08131c;padding:12px;border:1px solid var(--edge);border-radius:8px}.test-list{margin-top:9px;font-size:12px}.pass{color:var(--accent)}.failtext{color:var(--danger)}footer{font-size:11px;color:var(--muted);margin-top:18px;text-align:center}@media(max-width:720px){.shell{padding:14px 11px 40px}h1{font-size:23px}.layout{grid-template-columns:1fr}.panel{padding:12px}.top{margin-bottom:12px}textarea{height:205px}.control-row{flex-wrap:wrap}.control-row label{flex:1 1 145px}.panel-title select{max-width:170px}.report{margin-top:10px}}

.picker-hint { margin: 0 0 10px; font-size: .78rem; line-height: 1.4; }

.batch-results{overflow-x:auto;margin-top:12px}.batch-table{border-collapse:collapse;width:100%;min-width:480px;font-size:11px}.batch-table th,.batch-table td{padding:8px 6px;border-bottom:1px solid var(--edge);text-align:left;vertical-align:top}.batch-table th{color:var(--muted)}.batch-table td:nth-child(1){font-family:monospace;color:var(--accent);white-space:nowrap}.batch-table td:nth-child(2){white-space:nowrap}.batch-table td:nth-child(3){max-width:370px}.actions button{white-space:normal;min-height:38px}

/* v0.6.0 reusable song renderer / iPhone-first preview. */
/* v0.6.0 preview controls and host layout */
.preview-panel{margin-top:12px}
.preview-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#0a141d;border:1px solid var(--edge);border-radius:12px;padding:4px;gap:4px;margin-bottom:12px}
.preview-tab{background:transparent;border:0;padding:10px 8px;border-radius:9px;min-height:42px;color:var(--muted)}
.preview-tab.active{background:#304756;color:var(--ink);box-shadow:inset 0 0 0 1px #537780}
.preview-window{max-height:420px;min-height:230px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#f8f8f4;color:#1d2931;border:1px solid #cad0cd;border-radius:13px;position:relative}
/* Adjacent chord/lyric segments preserve chord anchoring at UTF-16 offsets. */
.preview-transport{border-top:1px solid var(--edge);margin-top:12px;padding-top:12px}
.transport-row{display:flex;align-items:center;gap:9px}
.transport-row input[type=range]{min-width:0;flex:1;accent-color:var(--accent);touch-action:pan-y;height:30px}
.time-display{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.transport-options{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:11px}
.audio-file{display:inline-flex;align-items:center;color:var(--accent);border:1px solid var(--edge);border-radius:9px;padding:8px 12px;font-weight:650;cursor:pointer}
.audio-file input{display:none}
.autoswitch{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);margin-left:auto}
.autoswitch input{accent-color:var(--accent)}
.preview-transport .hint{padding-top:10px}
@media(max-width:720px){.preview-window{min-height:270px;max-height:390px}.preview-panel{margin-top:10px}}
