:root{
  --bg:#fbf8f2;--surface:#fff;--surface-2:#f4eee3;--ink:#1f1a14;--muted:#6b6258;--line:#e6ddcf;
  --brass:#a8740f;--brass-soft:#f3e3bf;--brass-ink:#6e4c08;--ok:#2e7d4f;--sharp:#c0392b;--flat:#2b6cb0;
  --shadow:0 1px 2px rgba(40,30,10,.06),0 8px 24px rgba(40,30,10,.07);
  --radius:16px;--font:"Figtree",system-ui,sans-serif;--head:"Fraunces",Georgia,serif;
  --music:"Noto Music","Segoe UI Symbol","Apple Symbols",serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#15120e;--surface:#201b15;--surface-2:#2a231b;--ink:#f3ece1;--muted:#b3a794;--line:#3a3128;
  --brass:#e0a83a;--brass-soft:#3d2f16;--brass-ink:#f0c46a;--ok:#5cc28a;--sharp:#ef6f5e;--flat:#6aa8ef;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);color-scheme:dark;
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 var(--font)}
a{color:var(--brass-ink)}
img,svg{max-width:100%}
.wrap{max-width:980px;margin:0 auto;padding:0 16px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
h1,h2,h3{font-family:var(--head);line-height:1.2;letter-spacing:-.01em}
h1{font-size:clamp(1.8rem,5vw,2.6rem);margin:.2em 0 .3em}
h2{font-size:1.5rem;margin:1.6em 0 .5em}
h3{font-size:1.15rem;margin:1.2em 0 .4em}
.lead{font-size:1.1rem;color:var(--muted);max-width:60ch;margin:0 0 1.2rem}

/* cabecera */
.site-head{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.site-head .wrap{display:flex;align-items:center;gap:18px;min-height:60px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.logo{display:flex;align-items:center;gap:8px;font:800 1.3rem var(--head);color:var(--ink);text-decoration:none}
.logo svg{width:28px;height:28px}
.tools-nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}
.tools-nav::-webkit-scrollbar{display:none}
.tools-nav a{white-space:nowrap;padding:6px 11px;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:600;font-size:.95rem}
.tools-nav a:hover{background:var(--surface-2);color:var(--ink)}
.tools-nav a[aria-current]{background:var(--brass-soft);color:var(--brass-ink)}

main{padding:20px 0 40px}
.hero{padding-top:8px}

/* tarjetas */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.tool{margin:0 0 24px}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field>span,.field>label{font-size:.85rem;font-weight:700;color:var(--muted)}
select,input[type=number],input[type=text]{font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);max-width:100%}
input[type=range]{width:100%;accent-color:var(--brass)}
.btn{font:700 1rem var(--font);border:0;border-radius:12px;padding:12px 20px;cursor:pointer;background:var(--brass);color:#fff;display:inline-flex;align-items:center;gap:8px;justify-content:center;text-decoration:none}
@media (prefers-color-scheme:dark){.btn{color:#1b1409}}
.btn:hover{filter:brightness(1.07)}
.btn.sec{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}
.btn.small{padding:7px 12px;font-size:.9rem;border-radius:10px}
.btn[aria-pressed=true]{background:var(--brass-ink);color:var(--surface)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.hint{font-size:.9rem;color:var(--muted)}
.msg{padding:10px 14px;border-radius:10px;background:var(--surface-2);font-size:.95rem}
.msg.err{background:#fdecea;color:#8a1f13}
@media (prefers-color-scheme:dark){.msg.err{background:#3b1d19;color:#ffb4a8}}

/* afinador */
.tuner{text-align:center}
.tuner-note{font:800 clamp(3.5rem,14vw,6rem)/1 var(--head);margin:6px 0 0;min-height:1em}
.tuner-note small{font-size:.4em;color:var(--muted);font-weight:700}
.tuner-sub{color:var(--muted);min-height:1.6em}
.tuner-cents{font:800 1.6rem var(--font);min-height:1.4em}
.gauge{width:100%;max-width:420px;height:auto;display:block;margin:0 auto}
.in-tune{color:var(--ok)}.is-sharp{color:var(--sharp)}.is-flat{color:var(--flat)}
.hist-info{margin-top:12px;text-align:left}
.hist-info strong{color:var(--brass-ink)}

/* metrónomo */
.bpm{font:800 clamp(3.5rem,16vw,6.5rem)/1 var(--head);text-align:center;margin:0}
.bpm-label{text-align:center;color:var(--muted);margin:0 0 10px}
.beats{display:flex;justify-content:center;gap:10px;margin:14px 0;flex-wrap:wrap}
.beat{width:22px;height:22px;border-radius:50%;background:var(--surface-2);border:2px solid var(--line);transition:transform .05s}
.beat.acc{border-color:var(--brass)}
.beat.on{background:var(--brass);transform:scale(1.25)}
.center-row{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:10px 0}
.era-list{display:grid;gap:8px;margin-top:10px}
.era-item{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface)}
.era-item p{margin:0}
.era-item .n{font-size:.88rem;color:var(--muted)}
details.panel{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-top:14px;background:var(--surface-2)}
details.panel summary{cursor:pointer;font-weight:700}

/* radiografía */
canvas{display:block;width:100%;border-radius:12px;background:var(--surface-2)}
.score{font:800 3.2rem/1 var(--head);color:var(--brass-ink)}
.notes-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin:12px 0}
.nm{border-radius:12px;padding:8px;text-align:center;border:1px solid var(--line);background:var(--surface)}
.nm b{display:block;font-size:1.15rem}
.nm span{font-size:.85rem}
.tips{padding-left:1.2em}
.tips li{margin:.4em 0}
.history-list{list-style:none;padding:0;margin:0}
.history-list li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:.95rem}

/* digitaciones y tablas */
.fing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:14px}
.fing{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:8px;text-align:center;cursor:pointer;font:inherit;color:inherit}
.fing:hover,.fing[aria-pressed=true]{border-color:var(--brass);box-shadow:0 0 0 2px var(--brass-soft)}
.fing .nn{font-weight:800}
.fing .ff{font:800 1.1rem var(--font);color:var(--brass-ink)}
.fing .alt{font-size:.8rem;color:var(--muted)}
.fing svg{height:100px;width:auto}
.fing .tend{font-size:.78rem;font-weight:700}
.staff text{font-family:var(--music)}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{padding:9px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:var(--surface-2);font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
td.num{white-space:nowrap;font-weight:800;font-variant-numeric:tabular-nums}
.badge{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.badge.conf{background:#e3f3e9;color:#1d5c38}
@media (prefers-color-scheme:dark){.badge.conf{background:#1c3a29;color:#8fdcae}}

/* transpositor */
.tr-out{font:800 1.6rem var(--head);margin:.4em 0}
.tr-seq{font:700 1.2rem var(--font);color:var(--brass-ink);word-spacing:.3em}

/* contenido */
.content{max-width:760px}
.content p,.content li{max-width:70ch}
.promo{display:flex;gap:16px;align-items:center;background:var(--brass-soft);border-radius:var(--radius);padding:18px 20px;margin:28px 0}
.promo p{margin:0}
.promo .btn{flex:none}
@media (max-width:600px){.promo{flex-direction:column;align-items:flex-start}}
.faq details{border-bottom:1px solid var(--line);padding:10px 0}
.faq summary{cursor:pointer;font-weight:700}
.tool-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;padding:0;list-style:none}
.tool-links a{display:block;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-decoration:none;color:var(--ink)}
.tool-links a b{display:block;color:var(--brass-ink)}
.tool-links a span{font-size:.9rem;color:var(--muted)}

.site-foot{border-top:1px solid var(--line);background:var(--surface);padding:24px 0;font-size:.92rem;color:var(--muted)}
.site-foot nav{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0}
.site-foot a{color:var(--muted)}

@media print{.site-head,.site-foot,.promo,.no-print,ins{display:none!important}body{background:#fff}.card{box-shadow:none}}

/* selector de idioma */
.lang-switch{display:flex;gap:2px;margin-left:auto}
.lang-switch a{font:700 .8rem var(--font);padding:5px 7px;border-radius:8px;color:var(--muted);text-decoration:none}
.lang-switch a[aria-current]{background:var(--ink);color:var(--surface)}
@media (max-width:640px){.site-head .wrap{gap:8px}.tools-nav{order:3;flex-basis:100%}}

/* afinador: panel oscuro tipo instrumento */
.tuner-panel{background:#12161b;color:#e9eef3;border-radius:28px;padding:12px;box-shadow:0 10px 40px rgba(0,0,0,.25);max-width:560px;margin:0 auto 14px}
.tp-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.tp-btn{background:#2a3139;color:#fff;border:0;border-radius:20px;min-height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;cursor:pointer;font:700 .85rem var(--font)}
.tp-btn .tp-ico{font-size:1.6rem;line-height:1}
.tp-btn:hover{background:#343d47}
.tp-main{background:#3b7d4a}.tp-main:hover{background:#44905a}
.tp-main.on{background:#9b3434}
.tp-btn[aria-pressed=true]{background:#a8740f}
.tp-screen{background:#262e37;border-radius:24px;margin-top:10px;padding:10px 14px 14px}
.tp-head{display:flex;justify-content:space-between;align-items:center}
.tp-link{background:none;border:0;color:#fff;font:600 1.25rem var(--font);cursor:pointer;padding:4px 2px}
.tp-gear{background:none;border:0;color:#9fb3c8;font-size:1.9rem;line-height:1;cursor:pointer;padding:2px 6px;border-radius:10px}
.tp-gear[aria-expanded=true]{color:#fff;background:#34404c}
.tp-settings{background:#1b2128;border-radius:14px;padding:10px 12px;margin:6px 0}
.tp-settings .field>span{color:#9fb3c8}
.tp-settings select,.tp-settings input{background:#12161b;color:#fff;border-color:#3a4652}
.tp-det{color:#7fa8dc;text-align:center;font:600 1.25rem var(--font);margin:6px 0 -8px;min-height:1.5em}
.tp-det sub{font-size:.7em}
.tp-gauge-wrap{position:relative;color:#e9eef3}
.tp-gauge{display:block;width:100%;height:auto}
.tp-gauge-wrap.sharp,.tp-gauge-wrap.flat{color:#ff4d4d}
.tp-gauge-wrap.ok{color:#8fe36d}
.tp-cents{position:absolute;right:2%;bottom:4%;background:#33475e;border:1px solid #6d8fb5;color:#9cc2f2;font:600 clamp(1.3rem,6vw,2rem)/1.2 var(--font);padding:2px 10px;border-radius:6px;font-variant-numeric:tabular-nums}
.tp-note{font:500 clamp(4.5rem,24vw,8.5rem)/1 var(--font);text-align:center;margin:4px 0 10px;color:#fff;letter-spacing:-.02em;min-height:1em}
.tp-note .acc{font-size:.55em;vertical-align:.55em;margin-left:.04em}
.tp-note sub{font-size:.28em;vertical-align:baseline;color:#9fb3c8;margin-left:.08em}
.tp-note.ok{color:#8fe36d}
.tp-strip{display:block;width:100%;border-radius:14px;background:#2b3440}
.tp-sub{text-align:center;color:#9fb3c8;margin:10px 0 0;font-size:.95rem;min-height:1.4em}
.tuner-panel .msg{margin-top:10px}
.tuner-panel .hist-info{background:#1b2128;color:#e9eef3}
.tuner-panel .hist-info a,.tuner-panel .hist-info strong{color:#f0c46a}
