/* Pitch to MIDI Converter 2.0.0 | pitchdetector.com */
.ptm{--ptm-blue:#2563eb;--ptm-blue2:#1d4ed8;--ptm-violet:#7c3aed;--ptm-navy:#0f172a;--ptm-ink:#0f172a;--ptm-muted:#475569;--ptm-line:#e2e8f0;--ptm-tint:#eff6ff;
	max-width:1000px;margin:0 auto 1.75em;color:var(--ptm-ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;box-sizing:border-box}
.ptm *,.ptm *::before,.ptm *::after{box-sizing:border-box}
.ptm [hidden]{display:none!important}
.ptm p,.ptm h2,.ptm fieldset,.ptm legend,.ptm table,.ptm output{margin:0}
.ptm button,.ptm .ptm-btn{text-transform:none;letter-spacing:normal;box-shadow:none;font:inherit;line-height:1.2}
.ptm select,.ptm input{font:inherit}
.ptm :focus-visible{outline:3px solid #a78bfa;outline-offset:2px}
.ptm-daw{background:linear-gradient(160deg,#0f172a 0%,#131c38 60%,#1e1b4b 100%);color:#e2e8f0;border-radius:20px;padding:16px 16px 12px;box-shadow:0 16px 36px -20px rgba(15,23,42,.75)}
.ptm.is-over .ptm-daw{outline:3px dashed #a5b4fc;outline-offset:3px}
.ptm .ptm-title{margin:0 0 2px;font-size:1.45rem;line-height:1.25;font-weight:800;color:#fff;letter-spacing:-.01em}
.ptm .ptm-sub{margin:0 0 12px;color:#c7d2fe;font-size:.95rem}
.ptm-src{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:10px}
.ptm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 14px;border-radius:12px;border:1px solid rgba(199,210,254,.45);background:rgba(255,255,255,.06);color:#fff;font-weight:700;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}
.ptm-btn:hover,.ptm-btn:focus{background:rgba(255,255,255,.14);color:#fff;border-color:#a5b4fc}
.ptm-btn:disabled,.ptm-btn.is-disabled{opacity:.45;cursor:not-allowed}
.ptm-big{min-height:56px;font-size:1.02rem;border-radius:14px}
.ptm-rec{background:var(--ptm-blue);border-color:var(--ptm-blue)}
.ptm-rec:hover,.ptm-rec:focus{background:var(--ptm-blue2);border-color:var(--ptm-blue2)}
.ptm-rec.is-on,.ptm-rec.is-on:hover,.ptm-rec.is-on:focus{background:#b91c1c;border-color:#b91c1c}
.ptm-dot{width:14px;height:14px;border-radius:50%;background:#fff;flex:0 0 14px}
.ptm-rec.is-on .ptm-dot{border-radius:3px;animation:ptm-pulse 1s infinite}
@keyframes ptm-pulse{50%{box-shadow:0 0 0 6px rgba(255,255,255,.25)}}
.ptm-file{position:relative;overflow:hidden}
.ptm-file input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.ptm-file:focus-within{outline:3px solid #a78bfa;outline-offset:2px}
.ptm-opts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:8px;font-size:.86rem;color:#c7d2fe}
.ptm-chk{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;cursor:pointer;color:inherit;white-space:nowrap}
.ptm-chk input{width:20px;height:20px;margin:0;accent-color:#8b5cf6}
.ptm .ptm-status{margin:6px 0 0;min-height:1.5em;font-size:.9rem;color:#c7d2fe}
.ptm-status[data-kind=error]{color:#fecaca;font-weight:600}
.ptm-status[data-kind=error]::before{content:"⚠ "}
.ptm-status[data-kind=warn]{color:#fde68a}
.ptm-status[data-kind=warn]::before{content:"! "}
.ptm-status[data-kind=ok]{color:#bbf7d0}
.ptm-status[data-kind=ok]::before{content:"✓ "}
.ptm-status[data-kind=rec]{color:#fecaca}
.ptm-status[data-kind=rec]::before{content:"● "}
.ptm-progress{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:.88rem;color:#c7d2fe}
.ptm-progress progress{flex:1;height:10px;accent-color:#a78bfa}
.ptm-cancel{min-height:44px;padding:0 12px;border-radius:10px;border:1px solid rgba(199,210,254,.5);background:transparent;color:#fff;cursor:pointer}
.ptm-cancel:hover,.ptm-cancel:focus{background:rgba(255,255,255,.1);color:#fff}
.ptm-transport{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 8px}
.ptm-play{min-width:104px;background:#15803d;border-color:#15803d}
.ptm-play:hover,.ptm-play:focus{background:#166534;border-color:#166534}
.ptm-play.is-on,.ptm-play.is-on:hover{background:#b45309;border-color:#b45309}
.ptm-sq{min-width:44px;padding:0 10px}
.ptm-clock{font:700 1.05rem/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#fff;background:#0b1120;border:1px solid #273449;border-radius:10px;padding:12px 10px;min-width:84px;text-align:center}
.ptm-meter{width:70px;height:10px;border-radius:99px;background:rgba(255,255,255,.14);overflow:hidden}
.ptm-meter span{display:block;height:100%;width:0;background:linear-gradient(90deg,#34d399,#fbbf24,#ef4444)}
.ptm-info{flex:1 1 180px;font-size:.86rem;color:#c7d2fe;min-width:0}
.ptm-tools{display:flex;gap:6px;margin-left:auto}
.ptm-roll{position:relative;border-radius:12px;overflow:hidden;border:1px solid #273449;background:#0f172a}
.ptm-roll canvas{display:block;width:100%;height:320px;touch-action:pan-y;cursor:default}
.ptm-roll canvas:focus-visible{outline:3px solid #a78bfa;outline-offset:-3px}
.ptm-empty{position:absolute;inset:22px 0 0 46px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:16px;text-align:center;color:#cbd5e1;font-size:.95rem;pointer-events:none}
.ptm-empty strong{color:#fff;font-size:1.05rem}
.ptm-scroll{display:block;width:100%;height:44px;margin:6px 0 0;accent-color:#8b5cf6;background:transparent}
.ptm-insp{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:10px;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid #273449}
.ptm-selinfo{flex:1 1 100%;font-size:.88rem;color:#e2e8f0}
.ptm-insp.is-off .ptm-selinfo{color:#94a3b8}
.ptm-insp .ptm-btn{min-height:44px;padding:0 11px;font-size:.88rem;font-weight:600}
.ptm-del{border-color:#f87171!important;color:#fecaca!important}
.ptm .ptm-keys{margin:8px 0 0;font-size:.8rem;color:#94a3b8}
.ptm-panel{margin-top:14px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.ptm-set{border:1px solid var(--ptm-line);border-radius:14px;background:#fff;padding:10px 12px 12px;min-width:0}
.ptm-set legend{padding:0 6px;font-weight:800;font-size:.92rem;color:var(--ptm-navy)}
.ptm-set label{display:block;margin:6px 0 0;font-size:.84rem;font-weight:600;color:var(--ptm-muted)}
.ptm-set select,.ptm-set input[type=number],.ptm-set input[type=text]{display:block;width:100%;min-height:44px;margin-top:3px;padding:0 10px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:var(--ptm-ink)}
.ptm-row{display:flex;gap:6px;align-items:stretch;margin-top:3px}
.ptm-row input[type=number]{margin-top:0;flex:1;min-width:0;text-align:center}
.ptm-lt{min-height:44px;min-width:44px;padding:0 10px;border-radius:10px;border:1px solid #cbd5e1;background:#f8fafc;color:var(--ptm-navy);font-weight:700;cursor:pointer}
.ptm-lt:hover,.ptm-lt:focus{background:var(--ptm-tint);color:var(--ptm-blue2);border-color:#93c5fd}
.ptm-note{display:block;margin-top:3px;font-size:.78rem;color:#64748b;font-weight:400}
.ptm-export{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;padding:12px;border-radius:16px;background:var(--ptm-tint);border:1px solid #bfdbfe}
.ptm-primary{min-height:52px;padding:0 20px;border-radius:12px;border:0;background:linear-gradient(135deg,var(--ptm-blue),var(--ptm-violet));color:#fff;font-weight:800;font-size:1rem;cursor:pointer}
.ptm-primary:hover,.ptm-primary:focus{background:linear-gradient(135deg,var(--ptm-blue2),#6d28d9);color:#fff}
.ptm-primary:disabled{opacity:.5;cursor:not-allowed}
.ptm-sec{min-height:44px;padding:0 14px;border-radius:10px;border:1px solid #93c5fd;background:#fff;color:var(--ptm-blue2);font-weight:700;cursor:pointer}
.ptm-sec:hover,.ptm-sec:focus{background:#dbeafe;color:var(--ptm-blue2)}
.ptm-sec:disabled{opacity:.5;cursor:not-allowed}
.ptm-msg{flex:1 1 200px;font-size:.88rem;color:#15803d;font-weight:600}
.ptm-list{margin-top:12px;border:1px solid var(--ptm-line);border-radius:14px;background:#fff}
.ptm-list summary{min-height:44px;display:flex;align-items:center;padding:0 14px;font-weight:700;cursor:pointer;color:var(--ptm-navy)}
.ptm-tw{max-height:320px;overflow:auto;border-top:1px solid var(--ptm-line)}
.ptm-list table{width:100%;border-collapse:collapse;font-size:.85rem}
.ptm-list th,.ptm-list td{padding:6px 10px;border-bottom:1px solid #f1f5f9;text-align:left;white-space:nowrap}
.ptm-list th{position:sticky;top:0;background:#f8fafc;color:var(--ptm-muted);font-weight:700}
.ptm-f2m{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:12px;padding:10px 14px;border:1px dashed #c4b5fd;border-radius:14px;background:#faf5ff;font-size:.92rem}
.ptm-f2m label{font-weight:800;color:var(--ptm-navy);margin:0}
.ptm-f2m input{width:110px;min-height:44px;padding:0 10px;border:1px solid #cbd5e1;border-radius:10px;text-align:right}
.ptm-f2m output{font-weight:600;color:#5b21b6}
.ptm-f2m a{color:var(--ptm-blue2);font-weight:600}
.ptm .ptm-privacy{margin-top:8px;font-size:.82rem;color:#64748b}
@media (max-width:860px){.ptm-panel{grid-template-columns:1fr 1fr}}
@media (max-width:560px){
	.ptm-daw{padding:14px 12px 10px;border-radius:16px}
	.ptm .ptm-title{font-size:1.25rem}
	.ptm .ptm-sub{font-size:.88rem;margin-bottom:10px}
	.ptm .ptm-keys,.ptm .ptm-hint{display:none}
	.ptm-src{grid-template-columns:1fr 1fr}
	.ptm-src .ptm-rec{grid-column:1/-1}
	.ptm-roll canvas{height:260px}
	.ptm-tools{margin-left:0}
	.ptm-info{flex-basis:100%;order:9}
	.ptm-panel{grid-template-columns:1fr}
	.ptm-primary{flex:1 1 100%}
}
