
:root{color-scheme:dark;--bg:#0d1117;--panel:#161b22;--panel2:#1c222b;--line:#30363d;--text:#f0f3f6;--muted:#8b949e;--accent:#39d98a;--blue:#58a6ff;--danger:#ff6b70}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 Inter,system-ui,sans-serif}.app{width:min(1180px,calc(100% - 32px));margin:auto;padding:28px 0 48px}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,label:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.topbar,.brand,.file-strip,.transport,.controls,.mark-row,.events-head,.exports,.shortcuts{display:flex;align-items:center}.topbar,.file-strip,.mark-row,.events-head{justify-content:space-between}.topbar{gap:20px;margin-bottom:22px}.brand{gap:12px}.logo{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--accent);color:#07130d;font-weight:900}h1{margin:0;font-size:18px}.subtitle,.meta,.hint,.privacy,.count,.timeline,.shortcuts{color:var(--muted)}.subtitle{margin:2px 0 0;font-size:12px}.privacy{font-size:12px}.privacy:before{content:"●";color:var(--accent);margin-right:6px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px}.dropzone{min-height:260px;display:grid;place-items:center;text-align:center;padding:32px;border-style:dashed;transition:.18s}.dropzone.dragging{border-color:var(--accent);background:#12231b}.drop-icon{width:54px;height:54px;display:grid;place-items:center;margin:0 auto 14px;border-radius:50%;background:var(--panel2);color:var(--accent);font-size:24px}.dropzone h2{margin:0 0 5px;font-size:18px}.dropzone p{margin:0 0 18px;color:var(--muted)}
.btn,.file-btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 13px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);cursor:pointer;user-select:none}.btn:hover:not(:disabled),.file-btn:hover{border-color:#596575;background:#252d37}.btn:disabled{opacity:.4;cursor:not-allowed}.primary{background:var(--accent);border-color:var(--accent);color:#07130d;font-weight:750}.danger{color:var(--danger)}.file-btn input{display:none}
[hidden]{display:none!important}.file-strip{gap:14px;padding:13px 15px;margin-bottom:12px}.file-info{min-width:0}.filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.meta{font-size:12px}.file-actions,.exports{display:flex;gap:7px;flex-shrink:0}
.transport{display:grid;grid-template-columns:auto 1fr auto;gap:16px;padding:12px 15px;margin-bottom:12px}.controls{gap:8px}.play{min-width:108px;background:var(--blue);border-color:var(--blue);color:#07111f;font-weight:750}.readout{text-align:center;font:18px ui-monospace,monospace}.readout span{color:var(--muted)}select{min-height:34px;padding:5px 9px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--text)}.click-track{display:flex;align-items:center;gap:6px;margin-left:5px;color:var(--muted);white-space:nowrap;cursor:pointer}.click-track input{accent-color:var(--accent)}
.wave-panel{padding:15px;margin-bottom:12px;overflow:hidden}#waveform{position:relative;min-height:180px}#pitchOverlay{position:absolute;inset:0;z-index:6;width:100%;height:180px;pointer-events:none}.pitch-readout{position:absolute;top:8px;right:8px;z-index:7;min-width:98px;padding:5px 8px;border:1px solid #765f2b;border-radius:6px;background:#161b22dc;color:#ffd166;text-align:center;font:700 11px ui-monospace,monospace;pointer-events:none}#waveform ::part(marker){overflow:visible!important;cursor:pointer!important}#waveform ::part(region-content){display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border:1px solid #0b7148;border-radius:5px;background:var(--accent);color:#07130d;box-shadow:0 2px 7px #0009;transform:translate(-50%,4px);pointer-events:none;font:750 11px/1 ui-monospace,monospace}.timeline{display:flex;justify-content:space-between;font-size:11px;margin-top:7px}.zoom{display:flex;align-items:center;gap:9px;margin-top:10px;flex-wrap:wrap}.zoom>input[type="range"]{width:min(360px,55vw);accent-color:var(--accent)}.pitch-toggle{display:flex;align-items:center;gap:6px;margin-left:auto;color:var(--muted);white-space:nowrap;cursor:pointer}.pitch-toggle input{accent-color:#ffd166}.pitch-status{min-width:68px;font-size:11px}
.mark-row{gap:14px;padding:14px 15px;margin-bottom:12px}kbd{display:inline-block;min-width:24px;padding:2px 6px;border:1px solid #4b5563;border-bottom-width:2px;border-radius:5px;background:var(--panel2);color:var(--text);text-align:center;font:11px ui-monospace,monospace}.mark{min-width:190px;min-height:46px;font-size:15px}
.events{overflow:hidden}.events-head{gap:12px;padding:14px 15px;border-bottom:1px solid var(--line)}.events-title{display:flex;align-items:baseline;gap:8px}.events-title h2{margin:0;font-size:15px}.count{font-size:12px}.empty{padding:38px 20px;color:var(--muted);text-align:center}.event-list{max-height:355px;overflow:auto}.event-row{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:12px;min-height:51px;padding:7px 15px;border-bottom:1px solid var(--line)}.event-row.selected{background:#17241f;box-shadow:inset 3px 0 var(--accent)}.event-id{color:var(--muted);font-weight:650}.event-time{width:150px;padding:7px 9px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font:14px ui-monospace,monospace}.event-time:hover,.event-time:focus{border-color:var(--line);background:var(--bg)}.tools{display:flex;gap:5px}.icon{min-width:34px;min-height:32px;padding:5px 8px}
.shortcuts{flex-wrap:wrap;gap:13px 20px;margin-top:14px;font-size:12px}.shortcuts span{display:flex;align-items:center;gap:6px}.toast{position:fixed;right:22px;bottom:22px;padding:10px 14px;border:1px solid #365847;border-radius:8px;background:#14251d;color:#bbf7d0;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}
@media(max-width:760px){.app{width:calc(100% - 20px);padding-top:16px}.privacy,.hint{display:none}.transport{grid-template-columns:1fr}.controls{justify-content:center}.mark{width:100%}.events-head{align-items:flex-start;flex-direction:column}.exports{width:100%;overflow:auto}.event-row{grid-template-columns:58px minmax(0,1fr) auto;padding-inline:10px}.event-time{width:100%}}
