:root{--bg:#14161a;--panel:#1d2026;--text:#e8e6e1;--muted:#9a978e;--accent:#e0a458;--good:#7bc47f;--bad:#e06c5c}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,sans-serif;line-height:1.5}#app{flex-direction:column;max-width:1100px;min-height:100vh;margin:0 auto;padding:1.5rem;display:flex}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.topbar h1{letter-spacing:.02em;margin:0;font-size:1.2rem}.topbar-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.statusline{min-height:1.3em;color:var(--muted);align-items:baseline;gap:1.2rem;margin:.35rem 0 .8rem;font-size:.85rem;display:flex}button.ghost,.file-btn{color:var(--text);background:0 0;border:1px solid #3a3e46;font-weight:500}.file-btn{cursor:pointer;border-radius:6px;padding:.45rem .9rem;font-size:.9rem;display:inline-block}button.ghost:hover,.file-btn:hover{border-color:var(--accent)}#controls{background:var(--panel);border-radius:10px;flex-direction:column;gap:.7rem;margin-bottom:1rem;padding:1rem 1.2rem;display:flex}.control-group{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.control-group.sliders label{color:var(--muted);align-items:center;gap:.5rem;font-size:.9rem;display:flex}.status{color:var(--muted);font-size:.85rem}button{background:var(--accent);color:#14161a;cursor:pointer;border:none;border-radius:6px;padding:.45rem .9rem;font-size:.9rem;font-weight:600}button:disabled{opacity:.35;cursor:default}button#stop{color:var(--text);background:#4a4e57}input[type=file]{color:var(--muted);font-size:.85rem}input[type=range]{accent-color:var(--accent)}.summary-grid{gap:1.5rem;padding:.4rem 0 .2rem;display:flex}.stat{flex-direction:column;display:flex}.stat span:last-child{font-size:1.3rem;font-weight:700}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.75rem}#score-wrap{background:#fdfdfa;border-radius:10px;flex:1;min-height:300px;padding:1rem;position:relative;overflow:hidden}#playhead-line{background:var(--accent);width:2px;box-shadow:0 0 10px var(--accent);pointer-events:none;z-index:5;position:absolute;left:0}#playhead-line[hidden]{display:none}#measure-highlight{pointer-events:none;z-index:4;background:#93c5fd38;border-radius:3px;position:absolute;top:0;left:0}#measure-highlight[hidden]{display:none}#score{width:100%}.modal{z-index:100;background:#0a0c0fb8;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal[hidden]{display:none}.modal-card{background:var(--panel);border-radius:12px;width:min(560px,94vw);max-height:88vh;padding:1.4rem 1.6rem;overflow-y:auto;box-shadow:0 18px 60px #00000080}.modal-head{justify-content:space-between;align-items:center;margin-bottom:.4rem;display:flex}.modal-head h2{margin:0;font-size:1.15rem}.modal-foot{border-top:1px solid #2c3038;justify-content:flex-end;padding-top:.9rem;display:flex}.modal-card section{border-top:1px solid #2c3038;padding:.9rem 0}.modal-card section:first-of-type{border-top:none}.modal-card h3{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 .5rem;font-size:.8rem}.setting-row{flex-wrap:wrap;align-items:center;gap:.7rem;margin:.55rem 0;display:flex}.setting-row>label{min-width:6.5rem;font-size:.9rem}.setting-row .val{text-align:right;font-variant-numeric:tabular-nums;min-width:2.2rem}.setting-row .unit{color:var(--muted);font-size:.85rem}.check{cursor:pointer;align-items:center;gap:.5rem;font-size:.9rem;display:flex}select{background:var(--bg);color:var(--text);border:1px solid #3a3e46;border-radius:6px;max-width:100%;padding:.35rem .5rem;font-size:.9rem}.fineprint{color:var(--muted);margin:.4rem 0 0;font-size:.8rem}input[type=number]{background:var(--bg);width:3.2rem;color:var(--text);border:1px solid #3a3e46;border-radius:6px;padding:.25rem .4rem;font-size:.9rem}#countin-overlay{z-index:50;pointer-events:none;background:#14161ab8;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#countin-overlay[hidden]{display:none}#countin-beat{color:var(--accent);font-size:7rem;font-weight:800;line-height:1}#countin-label{color:var(--muted);margin-top:.6rem;font-size:1.1rem}.modal-card.wide{width:min(680px,94vw)}#debug-log{white-space:pre;-webkit-user-select:text;user-select:text;background:#14171c;border:1px solid #2c3038;border-radius:6px;max-height:16rem;padding:.6rem .8rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;line-height:1.5;overflow:auto}#user-chip{color:var(--muted);align-items:center;gap:.5rem;font-size:.85rem;display:inline-flex}#user-chip[hidden]{display:none}#user-avatar{border-radius:50%;width:24px;height:24px}#user-chip .ghost{padding:.25rem .6rem;font-size:.8rem}.lib-section{margin-bottom:1.2rem}.lib-section:last-child{margin-bottom:0}.lib-head{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.3rem;display:flex}.lib-head h3{margin:0;font-size:1rem}.lib-head .ghost{padding:.25rem .6rem;font-size:.8rem}.lib-row{border-top:1px solid #2a2e36;flex-wrap:wrap;align-items:center;gap:.7rem;padding:.4rem 0;display:flex}.lib-load{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:.95rem;font-weight:600}.lib-load:hover{color:var(--accent);text-decoration:underline}.lib-row select{background:var(--panel);color:var(--text);border:1px solid #3a3e46;border-radius:6px;padding:.25rem .4rem;font-size:.8rem}.lib-row .ghost{padding:.25rem .6rem;font-size:.8rem}.lib-error{color:var(--bad);font-size:.9rem}
