/*! Violin Tuner 2.0.0 | pitchdetector.com */
.pvt{--b:#2563eb;--b2:#1d4ed8;--v:#7c3aed;--n:#0f172a;--g:#15803d;--a:#b45309;--r:#b91c1c;--l:#e2e8f0;--m:#475569;display:grid;gap:12px;max-width:1080px;margin:0 auto 1.75em;color:var(--n);line-height:1.45;font-size:16px;font-family:inherit}
.pvt *,.pvt *::before,.pvt *::after{box-sizing:border-box}
.pvt [hidden]{display:none!important}
.pvt p,.pvt dl,.pvt dd,.pvt h3{margin:0}
.pvt .pvt-title{margin:0;font-size:clamp(1.35rem,1.1rem + 1vw,1.75rem);line-height:1.2;color:var(--n)}
.pvt .pvt-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.pvt button{font-family:inherit;text-transform:none;letter-spacing:normal;box-shadow:none;line-height:1.2}
.pvt :focus-visible{outline:3px solid var(--v);outline-offset:2px}

/* Card: pegbox + reading */
.pvt-card{position:relative;background:#fff;border:1px solid var(--l);border-radius:20px;padding:12px;box-shadow:0 8px 28px rgba(15,23,42,.08);transition:box-shadow .3s,border-color .3s}
.pvt-card.is-lock{border-color:#86efac;box-shadow:0 0 0 3px rgba(21,128,61,.25),0 8px 28px rgba(15,23,42,.08)}
.pvt-top{display:flex;gap:8px;align-items:center}
.pvt .pvt-top select{flex:1 1 auto;min-width:0;min-height:44px;margin:0;background:#f8fafc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23475569' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 10px center;color:var(--n);border:1px solid #cbd5e1;border-radius:12px;padding:0 30px 0 12px;font:inherit;font-size:.95rem;font-weight:600;-webkit-appearance:none;appearance:none;text-overflow:ellipsis}
.pvt-badge{flex:0 0 auto;font-size:.78rem;font-weight:700;color:#5b21b6;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:999px;padding:5px 10px;white-space:nowrap}
.pvt-main{display:grid;grid-template-columns:148px minmax(0,1fr);grid-template-areas:"head read" "data data";gap:12px;margin-top:10px;align-items:start}
.pvt-head{grid-area:head}.pvt-read{grid-area:read}.pvt .pvt-data{grid-area:data;margin-top:0}
@media (min-width:560px){.pvt-main{grid-template-columns:190px minmax(0,1fr);gap:20px}}
@media (min-width:880px){.pvt-main{grid-template-columns:230px minmax(0,1fr);grid-template-areas:"head read" "head data";grid-template-rows:auto 1fr;gap:14px 28px}.pvt .pvt-data{align-self:end}.pvt-card{padding:18px 22px}}

/* Scroll + pegbox illustration with peg buttons */
.pvt-head{position:relative;border-radius:16px;background:radial-gradient(90% 70% at 50% 30%,#ede9fe 0%,#f8fafc 70%);padding:4px 0 0;overflow:visible}
.pvt-svg{display:block;width:100%;height:auto}
.pvt-shaft line{stroke:#1e1b2e;stroke-width:9;stroke-linecap:round}
.pvt-collar circle{fill:#312e81}
.pvt-curl{fill:none;stroke:#c4b5fd;stroke-width:3;stroke-linecap:round;opacity:.8}
.pvt-cavity{fill:#0b1020;opacity:.9}
.pvt-board{fill:#111827}
.pvt-nut{fill:#e2e8f0}
.pvt-str line{stroke:#cbd5e1;stroke-linecap:round;transition:stroke .2s}
.pvt-str[data-state=target] line{stroke:#60a5fa}
.pvt-str[data-state=tuned] line{stroke:#4ade80}
.pvt.is-sound .pvt-str[data-state=target] .pvt-vib{animation:pvt-vib .07s linear infinite alternate}
@keyframes pvt-vib{from{transform:translateX(-.9px)}to{transform:translateX(.9px)}}
.pvt .pvt-peg{position:absolute;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;margin:0;padding:0;border:2px solid #cbd5e1;background:#fff;color:var(--n);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(15,23,42,.25);transition:border-color .2s,background .2s}
.pvt .pvt-peg:hover,.pvt .pvt-peg:focus{background:#eff6ff;color:var(--n);border-color:var(--b)}
.pvt .pvt-peg[data-state=target]{border-color:var(--b);background:#dbeafe;box-shadow:0 0 0 3px rgba(37,99,235,.25)}
.pvt .pvt-peg[aria-pressed=true]{border-color:var(--v);box-shadow:0 0 0 3px rgba(124,58,237,.3)}
.pvt .pvt-peg[data-state=tuned]{border-color:var(--g);background:#dcfce7}
.pvt-pn{font-size:1.15rem;line-height:1}
.pvt-pn b{font-weight:800}
.pvt-pn small{font-size:.62em;font-weight:700;color:var(--m);margin-left:1px}
.pvt-pk{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;font-size:11px;line-height:18px;text-align:center;font-weight:800;display:none}
.pvt-peg[data-state=tuned] .pvt-pk{display:block;background:var(--g);color:#fff}
.pvt-peg[data-state=tuned] .pvt-pk::before{content:"✓"}

/* Reading */
.pvt-read{display:flex;flex-direction:column;gap:7px;min-width:0;padding-top:2px}
.pvt-notebox{display:flex;align-items:flex-start;justify-content:center;font-weight:800;line-height:.95;color:var(--n);min-height:1em;font-size:clamp(3.6rem,2.6rem + 5vw,5.6rem);letter-spacing:-.02em;transition:color .2s}
.pvt-oct{font-size:.4em;color:var(--v);margin:.18em 0 0 .06em}
.pvt-card[data-state=in] .pvt-notebox{color:var(--g)}
.pvt-card[data-state=close] .pvt-notebox{color:var(--a)}
.pvt-card[data-state=off] .pvt-notebox{color:var(--r)}
.pvt-card[data-state=hold] .pvt-notebox{color:#94a3b8}
.pvt-sub{text-align:center;font-size:.86rem;color:var(--m);min-height:1.3em;overflow-wrap:anywhere}
.pvt-meter{margin-top:2px}
.pvt-track{position:relative;height:34px;border-radius:10px;background:linear-gradient(90deg,#fee2e2 0%,#fef3c7 32%,#f1f5f9 46%,#f1f5f9 54%,#fef3c7 68%,#fee2e2 100%);border:1px solid var(--l);overflow:hidden}
.pvt-track i{position:absolute;bottom:0;width:1px;height:8px;background:#94a3b8;transform:translateX(-.5px)}
.pvt-track i.pvt-t10{height:14px;background:#64748b}
.pvt-zone{position:absolute;top:0;bottom:0;background:rgba(21,128,61,.22);border-left:1px solid rgba(21,128,61,.5);border-right:1px solid rgba(21,128,61,.5)}
.pvt-ptr{position:absolute;top:0;bottom:0;left:50%;width:4px;margin-left:-2px;border-radius:2px;background:#94a3b8;transition:background .2s}
.pvt-card[data-state=in] .pvt-ptr{background:var(--g)}
.pvt-card[data-state=close] .pvt-ptr{background:var(--a)}
.pvt-card[data-state=off] .pvt-ptr{background:var(--r)}
.pvt-card[data-state=hold] .pvt-ptr{background:#64748b}
.pvt-mlab{display:flex;justify-content:space-between;font-size:.72rem;font-weight:700;color:var(--m);text-transform:uppercase;letter-spacing:.04em;margin-top:3px}
.pvt-mlab span:nth-child(2){color:var(--g)}
.pvt-cue{text-align:center;font-weight:800;font-size:1.05rem;min-height:1.4em;color:var(--m)}
.pvt-cue[data-state=in]{color:var(--g)}.pvt-cue[data-state=close]{color:var(--a)}.pvt-cue[data-state=off]{color:var(--r)}
.pvt-lock{height:6px;border-radius:3px;background:#e2e8f0;overflow:hidden}
.pvt-lock span{display:block;height:100%;width:0;background:var(--g);transition:width .12s linear}
.pvt .pvt-go{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:54px;margin:2px 0 0;padding:0 16px;border:0;border-radius:14px;background:linear-gradient(135deg,var(--b),var(--v));color:#fff;font-size:1.08rem;font-weight:800;cursor:pointer;box-shadow:0 6px 16px rgba(37,99,235,.3)}
.pvt .pvt-go:hover,.pvt .pvt-go:focus{background:linear-gradient(135deg,var(--b2),#6d28d9);color:#fff}
.pvt .pvt-go:disabled{opacity:.6;cursor:wait}
.pvt-mic{width:14px;height:20px;border:3px solid #fff;border-radius:8px;position:relative;flex:0 0 auto}
.pvt-mic::after{content:"";position:absolute;left:50%;bottom:-8px;width:3px;height:6px;margin-left:-1.5px;background:#fff}
.pvt-hint{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:flex-start;font-size:.9rem;line-height:1.4;background:#f8fafc;border:1px solid var(--l);border-radius:12px;padding:8px 10px}
.pvt-hint span{flex:1 1 150px;min-width:0}
.pvt-tool{flex:0 0 auto;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#fff;background:var(--v);border-radius:6px;padding:3px 7px;margin-top:1px}
.pvt-hint[data-tool=fine] .pvt-tool{background:var(--b)}
.pvt-hint[data-tool=ok] .pvt-tool{background:var(--g)}

.pvt-data{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.pvt-data div{background:#f8fafc;border:1px solid var(--l);border-radius:12px;padding:6px 8px;text-align:center;min-width:0}
.pvt-data dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--m);font-weight:700}
.pvt-data dd{font-weight:800;font-size:.95rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.pvt-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.pvt-prog{flex:1 1 150px;font-size:.88rem;font-weight:700;color:var(--m)}
@media (max-width:559px){.pvt-prog{flex-basis:100%}.pvt .pvt-auto,.pvt .pvt-stop{flex:1 1 0}.pvt-data dd{font-size:.84rem}}
.pvt .pvt-auto,.pvt .pvt-stop{min-height:44px;margin:0;padding:0 14px;border-radius:12px;border:1px solid #cbd5e1;background:#fff;color:var(--n);font-size:.92rem;font-weight:700;cursor:pointer}
.pvt .pvt-auto[aria-pressed=true]{border-color:var(--b);color:var(--b2);background:#eff6ff}
.pvt .pvt-auto:hover,.pvt .pvt-auto:focus{background:#eff6ff;color:var(--b2)}
.pvt .pvt-stop{background:var(--n);border-color:var(--n);color:#fff}
.pvt .pvt-stop:hover,.pvt .pvt-stop:focus{background:#1e293b;color:#fff}
.pvt-status{font-size:.9rem;color:var(--m);background:#f8fafc;border:1px solid var(--l);border-radius:12px;padding:8px 12px}
.pvt-status[data-kind=error]{color:var(--r);background:#fef2f2;border-color:#fecaca;font-weight:600}

/* Panels: reference tones + tuning fork, settings */
.pvt-panels{display:grid;gap:12px}
@media (min-width:760px){.pvt-panels{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.pvt-panel{background:#fff;border:1px solid var(--l);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}
.pvt .pvt-panel h3{font-size:1.05rem;line-height:1.3;color:var(--n)}
.pvt-small{font-size:.86rem;color:var(--m)}
.pvt-refs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (min-width:1000px){.pvt-refs{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pvt .pvt-ref{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:64px;margin:0;padding:8px 10px;border-radius:12px;border:1px solid #cbd5e1;background:#fff;color:var(--n);cursor:pointer;text-align:left}
.pvt .pvt-ref:hover,.pvt .pvt-ref:focus{background:#eff6ff;color:var(--n);border-color:var(--b)}
.pvt .pvt-ref[data-state=tuned]{border-color:#86efac;background:#f0fdf4}
.pvt-rn{font-weight:800;font-size:1.05rem}
.pvt-rs,.pvt-rh{font-size:.76rem;color:var(--m)}
.pvt-rp{position:absolute;right:10px;top:10px;color:var(--b);font-size:.8rem}
.pvt .pvt-fork{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;margin:0;padding:6px 14px;border-radius:12px;border:2px solid var(--v);background:#fff;color:#5b21b6;font-size:.95rem;font-weight:800;cursor:pointer;text-align:left}
.pvt .pvt-fork:hover,.pvt .pvt-fork:focus{background:#f5f3ff;color:#5b21b6}
.pvt .pvt-fork[aria-pressed=true]{background:var(--v);color:#fff}
.pvt-forkic{flex:0 0 auto;width:14px;height:22px;border:3px solid currentColor;border-top:0;border-radius:0 0 7px 7px;position:relative;margin-bottom:6px}
.pvt-forkic::after{content:"";position:absolute;left:50%;top:100%;width:3px;height:7px;margin-left:-1.5px;background:currentColor}
.pvt .pvt-fork[aria-pressed=true] .pvt-forkic{animation:pvt-vib .06s linear infinite alternate}
.pvt-f{display:flex;flex-direction:column;gap:4px;min-width:0}
@media (min-width:1000px){.pvt-set{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}.pvt-set h3,.pvt-set .pvt-a4f{grid-column:1/-1}}
.pvt-f label,.pvt-fl{font-size:.8rem;font-weight:700;color:var(--m)}
.pvt .pvt-f select{min-height:44px;margin:0;border:1px solid #cbd5e1;border-radius:10px;padding:0 10px;background:#fff;color:var(--n);font:inherit;font-size:.92rem;max-width:100%}
.pvt-chips{display:flex;gap:6px;flex-wrap:wrap}
.pvt .pvt-chips button{min-height:44px;min-width:58px;margin:0;padding:0 12px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:var(--n);font-size:.92rem;font-weight:700;cursor:pointer}
.pvt .pvt-chips button:hover,.pvt .pvt-chips button:focus{background:#eff6ff;color:var(--n)}
.pvt .pvt-chips button[aria-pressed=true]{background:var(--b);border-color:var(--b);color:#fff}
.pvt-step{display:flex;gap:6px;align-items:center}
.pvt .pvt-step button{flex:0 0 48px;min-height:44px;margin:0;padding:0;border-radius:10px;border:1px solid #cbd5e1;background:#fff;color:var(--n);font-size:1.2rem;font-weight:700;cursor:pointer}
.pvt .pvt-step button:hover,.pvt .pvt-step button:focus{background:#eff6ff;color:var(--n)}
.pvt .pvt-step input{flex:1 1 auto;min-width:0;width:100%;min-height:44px;margin:0;border:1px solid #cbd5e1;border-radius:10px;padding:0 10px;font:inherit;font-weight:700;text-align:center;color:var(--n);background:#fff}
.pvt-step span{font-size:.85rem;color:var(--m)}
@media (prefers-reduced-motion:reduce){.pvt *{animation:none!important;transition:none!important}}
