.tools-page{padding-block:clamp(20px,3vw,32px)}.tools-page__head{margin-bottom:14px}.tools-page__title{font-size:var(--fs-2xl);font-weight:var(--fw-bold)}.tools-page__sub{margin:4px 0 0;color:var(--color-text-secondary);font-size:var(--fs-sm)}.tools-page__body{background:transparent}.tuner__panel,.metro__panel{background:var(--color-surface);border:1px solid #ebeef5;border-radius:18px;padding:16px 18px}.tuner__panel-title,.metro__panel-title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--color-text-secondary);margin-bottom:10px}.tuner{display:flex;flex-direction:column;gap:12px}.tuner__inst{align-self:flex-end;display:inline-grid;grid-template-columns:repeat(2,minmax(82px,1fr));gap:3px;width:fit-content;margin-top:-48px;margin-bottom:4px;padding:3px;border:1px solid rgba(210,213,222,.9);border-radius:12px;background:#f2f2f7}.tuner__instbtn{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 14px;border-radius:9px;border:0;background:transparent;color:#6e6e73;font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.tuner__instbtn:hover{color:#1f2433}.tuner__instbtn.is-active{background:#fff;color:#1f2433;box-shadow:0 1px 2px #1f243314,0 4px 12px #1f24330f}.tuner__layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:16px;align-items:start}.tuner__main{display:flex;flex-direction:column;gap:10px}.tuner__side{display:flex;flex-direction:column;gap:12px}.gaugebox{background:radial-gradient(circle at 50% 16%,rgba(70,86,122,.22),transparent 34%),linear-gradient(180deg,#1b202b,#141923);border-radius:var(--radius-lg);border:1px solid rgba(126,139,168,.16);padding:18px 16px 14px;box-shadow:inset 0 1px #ffffff09}.gaugebox__topbar{display:flex;justify-content:space-between;align-items:center;min-height:18px;font-size:var(--fs-xs, 12px);color:#6b7689}.gaugebox__unit{color:#5a6478}.gaugebox__chip{font-weight:var(--fw-semibold);color:#9aa6bf}.gaugebox__chip.is-intune{color:#2ec27e}.gaugebox__chip.is-off{color:#f0a93a}.gauge{width:100%;display:block;margin-top:2px;max-height:198px}.gaugebox__readout{display:flex;align-items:center;justify-content:center;gap:14px;min-height:48px}.gaugebox__note{font-size:44px;font-weight:var(--fw-bold);color:#e9edf5;line-height:1}.gaugebox__note.is-intune{color:#2ec27e}.gaugebox__oct{font-size:16px;color:#6b7689;margin-left:2px;vertical-align:super}.gaugebox__cents{font-size:var(--fs-md, 15px);font-weight:var(--fw-bold);color:#5b9dff;border:1px solid #2f3850;border-radius:var(--radius-sm);padding:2px 10px}.gaugebox__cents.is-intune{color:#2ec27e;border-color:#275a44}.gaugebox__freq{text-align:center;font-size:var(--fs-xs, 12px);color:#7c879c;margin-top:4px}.trail{width:100%;height:38px;margin-top:8px;background:#080d1694;border-radius:var(--radius-sm)}.tuner__primary,.metro__primary{align-self:center;width:min(280px,100%);min-height:52px;padding:12px 18px;border-radius:var(--radius-pill);background:var(--color-action);color:#fff;font-size:16px;font-weight:var(--fw-bold);border:none;cursor:pointer;box-shadow:var(--shadow-action);transition:transform var(--dur) var(--ease),filter var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease)}.tuner__primary:hover,.metro__primary:hover{background:var(--color-action-hover);filter:none;box-shadow:var(--shadow-action-hover)}.tuner__primary:focus-visible,.metro__primary:focus-visible{outline:none;box-shadow:0 0 0 4px #1f24331f,var(--shadow-action-hover)}.tuner__primary.is-stop,.metro__primary.is-stop{border:1px solid rgba(255,69,58,.18);background:#fff1f0;color:#ff3b30;box-shadow:none}.tuner__primary.is-stop:hover,.metro__primary.is-stop:hover{background:#ffe7e5}.tuner__error{background:#fff4f4;border:1px solid #ffd2d2;border-radius:var(--radius-sm);padding:8px 12px;color:#c0392b;font-size:var(--fs-sm)}.tuner__select{width:100%;height:40px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--fs-sm);color:var(--color-text);cursor:pointer}.tuner__mode{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;background:#f2f2f7;border:1px solid rgba(210,213,222,.9);border-radius:12px}.tuner__mode button{min-height:32px;padding:7px 12px;border-radius:9px;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:#6e6e73;background:transparent;border:none;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.tuner__mode button.is-active{background:#fff;color:#1f2433;box-shadow:0 1px 2px #1f243314,0 4px 12px #1f24330f}.tuner__mode button:focus-visible{outline:none;box-shadow:0 0 0 3px #1f24331f}.tuner__strings{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tuner__string{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--color-surface-soft);border:1px solid transparent;cursor:pointer;text-align:left;transition:all var(--dur) var(--ease)}.tuner__string:hover{border-color:#c8ccd6}.tuner__string-num{font-size:var(--fs-xs, 12px);color:var(--color-text-muted)}.tuner__string-note{font-size:18px;font-weight:var(--fw-bold);color:var(--color-text)}.tuner__string-freq{font-size:var(--fs-xs, 12px);color:var(--color-text-muted)}.tuner__string.is-selected{background:#fff;border-color:#c8ccd6;padding-left:22px;box-shadow:0 1px 2px #1f24330f,inset 0 0 0 1px #1f24330f}.tuner__string.is-selected:before{content:"";position:absolute;left:10px;top:50%;width:6px;height:6px;border-radius:var(--radius-pill);background:#1f2433;transform:translateY(-50%)}.tuner__string.is-selected .tuner__string-num,.tuner__string.is-selected .tuner__string-freq{color:#6e6e73}.tuner__string.is-selected .tuner__string-note{color:#1f2433}.tuner__string.is-near{background:#fff4e1;border-color:#f0922b}.tuner__string.is-intune{background:#def5e8;border-color:#2ec27e}.tuner__hint{margin-top:8px;font-size:var(--fs-xs, 12px);color:var(--color-text-muted);text-align:center}.metro__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,1fr);gap:16px;align-items:start}.metro__stagewrap{display:flex;flex-direction:column;gap:12px}.metro__stage{background:radial-gradient(circle at 50% 18%,rgba(70,86,122,.18),transparent 34%),linear-gradient(180deg,#1b202b,#141923);border-radius:18px;border:1px solid rgba(126,139,168,.16);padding:22px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:248px;box-shadow:inset 0 1px #ffffff09}.metro__bpm{display:flex;align-items:baseline;gap:6px}.metro__bpm-num{font-size:44px;font-weight:var(--fw-bold);color:#e9edf5;line-height:1}.metro__bpm-unit{font-size:var(--fs-sm);color:#6b7689}.metro__pulse{width:clamp(90px,18vw,130px);aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:clamp(28px,4vw,36px);font-weight:var(--fw-bold);color:#6b7689;background:radial-gradient(circle at 50% 45%,#1d2333,#11151f);box-shadow:inset 0 0 0 1px #30384f}.metro__pulse.is-beat{animation:metro-pulse .2s ease-out}@keyframes metro-pulse{0%{transform:scale(1.06);box-shadow:inset 0 0 0 2px #0a84ff,0 0 0 6px #0a84ff14,0 0 24px #0a84ff2e;color:#e9f3ff}to{transform:scale(1);box-shadow:inset 0 0 0 1px #30384f}}.metro__beats{display:flex;gap:10px;min-height:14px}.metro__dot{width:12px;height:12px;border-radius:50%;background:#2a3147;transition:transform .06s var(--ease),background .06s var(--ease)}.metro__dot.is-on{background:#0a84ff;transform:scale(1.35)}.metro__side{display:flex;flex-direction:column;gap:12px}.metro__panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.metro__panel-head .metro__panel-title{margin-bottom:0}.metro__panel-value{color:#1f2433;font-size:var(--fs-sm);font-weight:var(--fw-bold);white-space:nowrap}.metro__range{flex:1;min-width:0;width:100%;accent-color:#007aff}.metro__speed-control{display:flex;align-items:center;gap:8px}.metro__step,.metro__speed-control button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:50%;border:1px solid var(--color-border);background:#fff;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.metro__step{font-size:18px}.metro__step:hover,.metro__speed-control button:hover{border-color:#c8ccd6;color:var(--color-text);background:#fbfbfd}.metro__sig{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:3px;border:1px solid rgba(210,213,222,.9);border-radius:12px;background:#f2f2f7}.metro__sigbtn{min-height:32px;padding:7px 0;border-radius:9px;background:transparent;font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:#6e6e73;border:1px solid transparent;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.metro__sigbtn:hover{color:var(--color-text)}.metro__sigbtn.is-active{background:#fff;color:#1f2433;border-color:transparent;box-shadow:0 1px 2px #1f243314,0 4px 12px #1f24330f}.metro__sigbtn:focus-visible,.metro__step:focus-visible,.metro__speed-control button:focus-visible,.tuner__instbtn:focus-visible,.tuner__string:focus-visible{outline:none;border-color:var(--color-action);box-shadow:0 0 0 3px #1f24331f}.metro__hint{margin-top:10px;font-size:var(--fs-xs, 12px);color:var(--color-text-muted)}@media (max-width: 900px){.tuner__inst{align-self:flex-start;margin-top:0}.tuner__primary,.metro__primary{width:100%;min-height:48px;border-radius:14px}.tuner__layout,.metro__layout{grid-template-columns:minmax(0,1fr)}}@media (max-width: 560px){.gaugebox__note{font-size:36px}.tuner__strings{grid-template-columns:1fr}}
