:root{color-scheme:light;--paper:#f5f3ed;--panel:#fffefa;--ink:#243e35;--text:#34433c;--muted:#707b73;--line:#e3e5db;--accent:#c5a072;--light:#edf1e9;--warning:#876329}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--text);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:14px;line-height:1.65}a{color:var(--ink);text-underline-offset:3px}button,input,select{font:inherit}button,summary,select{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #b08b4c;outline-offset:3px}button{transition:background .16s,transform .16s}button:active{transform:translateY(1px)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h2{font-size:17px;color:var(--ink);font-weight:650}h3{font-size:16px;font-weight:650;color:var(--ink)}.topbar{max-width:1424px;padding:21px 48px;margin:auto;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:23px;font-weight:700;letter-spacing:2px}.brand small{font-size:12px;letter-spacing:1px;color:var(--muted);font-weight:400;margin-left:18px}.health{font-size:12px;display:flex;gap:8px;align-items:center}.health:before{content:"";width:7px;height:7px;background:var(--accent);border-radius:50%}.health.ready:before{background:#57856c}.health.unavailable:before{background:#c47a62}main{max-width:1328px;margin:auto;padding:44px 32px 0}.intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:650;color:#7a806a;margin-bottom:11px}h1{font-size:clamp(25px,2.8vw,36px);font-weight:600;letter-spacing:1px;line-height:1.5;color:var(--ink)}.subtitle{color:var(--muted);margin-top:10px;font-size:13px}.intro-note{display:grid;gap:6px;font-size:11px;letter-spacing:1px;color:var(--muted);border-left:1px solid #d6d6c9;padding-left:26px;flex-shrink:0}.mobile-break{display:none}.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);align-items:start;gap:24px}.panel{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:15px;box-shadow:0 4px 20px #243e3503}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.small-tag{font-size:10px;letter-spacing:.4px;color:#6c796c;background:var(--light);padding:3px 8px;border-radius:5px;flex-shrink:0}.input-panel{padding:24px}.input-panel fieldset{border:0;margin:0;padding:0;min-width:0}.dropzone{position:relative;border:1.5px dashed #bdc9b6;background:#f7f9f3;border-radius:10px;text-align:center;display:flex;flex-direction:column;gap:5px;align-items:center;padding:21px 12px;cursor:pointer;overflow:hidden}.dropzone:hover,.dropzone.dragging{border-color:var(--ink);background:#ecf2e7}.dropzone:focus-within{outline:3px solid var(--accent);outline-offset:2px}.dropzone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.dropzone strong{font-size:13px;word-break:break-all;line-height:1.5}.dropzone>span:last-of-type{font-size:10px;color:var(--muted)}.upload-symbol{color:#617b62;font-size:27px;width:38px;height:38px;line-height:31px;border:1px solid #cbd4c4;border-radius:50%;margin-bottom:5px}.help{font-size:11px;line-height:1.8;color:var(--muted);margin-top:9px}.text-button{border:0;padding:7px 0;background:none;color:#4d6e50;font-size:12px;text-align:left;text-decoration:underline;text-underline-offset:4px}.sample-credit{font-size:10px;color:var(--muted);padding:9px 0;line-height:1.8}.divider{height:1px;background:var(--line);margin:17px 0 20px}label{display:block;font-size:12px;font-weight:550}input:not([type=file]),select{display:block;width:100%;border:1px solid #dce1d6;border-radius:7px;margin-top:7px;height:39px;padding:8px 10px;background:#fffefa;color:var(--text);font-size:12px;min-width:0}input::placeholder{color:#90978c;font-size:11px}.field-row{margin-top:15px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hints{margin-top:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.hints summary{font-size:12px;color:var(--ink)}.hints summary span{float:right;font-size:10px;color:var(--muted)}.hints label{margin-top:12px}.hints .field-row label{margin-top:0}.key-label{margin-top:20px}.key-label span{font-size:9px;font-weight:400;color:var(--muted);float:right;padding-top:3px}.primary-button{width:100%;border:1px solid var(--ink);border-radius:8px;background:var(--ink);color:white;margin-top:21px;padding:12px 16px;font-size:13px;display:flex;justify-content:space-between;align-items:center;letter-spacing:.5px}.primary-button:hover{background:#395747}.privacy-note{font-size:10px;color:var(--muted);text-align:center;margin-top:13px}.output-column{min-width:0}.player-panel{margin-bottom:18px}.player-panel .section-heading{margin-bottom:10px}audio{width:100%;height:38px;display:block}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;color:var(--muted)}.empty-state{min-height:478px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px}.empty-state h2{font-size:21px;font-weight:550;margin-bottom:12px}.empty-state>p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.9}.empty-state .secondary-button{margin-top:24px}.secondary-button{background:transparent;border:1px solid #cad3c3;border-radius:7px;color:var(--ink);padding:8px 13px;font-size:11px;white-space:nowrap}.secondary-button:hover{background:var(--light)}.string-art{position:relative;width:150px;height:98px;display:flex;justify-content:center;gap:16px;transform:rotate(-14deg);margin-bottom:31px}.string-art span{height:100%;width:1px;background:linear-gradient(transparent,#c6cfbd 30%,#c6cfbd 70%,transparent)}.string-art i{position:absolute;width:25px;height:25px;background:var(--accent);border-radius:50%;left:71px;top:37px;box-shadow:0 0 0 8px #c5a07215}.job-panel{margin-bottom:18px}.job-panel p{font-size:12px;margin-top:8px}.job-panel.error{border-color:#d9bcae;background:#fff9f4}.progress-track{height:3px;background:var(--line);overflow:hidden;border-radius:3px;margin:10px 0 15px}.progress-track span{display:block;width:28%;height:100%;background:#769475;animation:progress 1.8s infinite ease-in-out}.job-panel.done .progress-track span{animation:none;width:100%}.job-panel.error .progress-track span{animation:none;width:100%;background:#b98568}@keyframes progress{0%{transform:translateX(-100%)}100%{transform:translateX(460%)}}.result-heading{display:flex;justify-content:space-between;align-items:center;margin:27px 0 18px;gap:10px}.result-heading .eyebrow{margin-bottom:3px;font-size:10px}.result-heading h2{font-size:21px;font-weight:600}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.metric{padding:13px 14px;border:1px solid var(--line);background:#eeefe7;border-radius:10px;min-width:0}.metric small{font-size:10px;color:var(--muted)}.metric strong{display:block;font-size:23px;color:var(--ink);line-height:1.6;font-weight:500;overflow-wrap:anywhere}.metric span{font-size:9px;color:var(--muted);display:block}.metric strong.compact{font-size:19px}#results>.panel{margin-bottom:16px}.timeline-panel .section-heading{margin-bottom:4px}.timeline-scroll{overflow:auto;margin:14px 0 0;padding-bottom:7px}.timeline-scroll #timeline{min-width:540px}.timeline-row{position:relative;margin:5px 0 8px;padding-top:20px;height:63px}.timeline-label{position:absolute;top:0;font-size:10px;color:var(--muted)}.timeline-track{height:34px;position:relative;border-radius:5px;background:#f0f1ea;overflow:hidden}.chord-segment{position:absolute;height:100%;border:1px solid var(--panel);border-radius:4px;background:#dfe7d8;color:#3e5c45;font-size:10px;padding:0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-row.arranged .chord-segment{background:#e8decb;color:#715c3d}.chord-segment.current{background:var(--ink)!important;color:white!important}.playhead{position:absolute;top:0;bottom:0;width:2px;background:#bd775b;pointer-events:none;z-index:2}.timeline-ticks{display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.pulse-track{position:relative;height:19px;margin-top:25px;background:#f6f7f1}.pulse-label{position:absolute;top:-18px;font-size:9px;color:var(--muted)}.pulse{position:absolute;top:6px;height:8px;width:2px;background:#9eb099}.active-chord{font-size:12px;margin-top:10px;color:var(--ink);min-height:21px}.fingerings{display:flex;gap:14px;flex-wrap:wrap;margin:15px 0}.fingering{background:#f7f7f0;border-radius:10px;width:135px;text-align:center;padding:12px 8px;border:1px solid #e9eade}.fingering h4{margin:0;font-size:19px;color:var(--ink)}.fingering p{font-size:9px;color:var(--muted)}.fingering svg{width:112px;height:136px;display:block;margin:auto}.fret-values{font-family:monospace;letter-spacing:3px;font-size:11px;color:var(--ink)}.barre-tag{font-size:9px;color:var(--warning)}.strums{display:flex;gap:10px;margin:10px 0 5px;flex-wrap:wrap}.strum{padding:10px 14px;background:var(--light);border-radius:6px;text-align:center;min-width:60px}.strum b{font-size:23px;color:var(--ink);display:block;line-height:1.5}.strum small{display:block;font-size:9px;color:var(--muted)}.bar-list{display:flex;gap:7px;overflow:auto;margin-top:15px;padding-bottom:4px}.bar-button{padding:7px 11px;border:1px solid var(--line);border-radius:5px;white-space:nowrap;background:transparent;color:var(--text);font-size:10px}.bar-button small{display:block;color:var(--muted);font-size:9px}.table-scroll{overflow:auto;max-height:350px}table{width:100%;border-collapse:collapse;text-align:left;font-size:11px}th{color:var(--muted);font-size:10px;font-weight:500;white-space:nowrap;background:var(--panel);position:sticky;top:0}td,th{padding:10px 9px;border-bottom:1px solid #edf0e7}td:first-child{font-variant-numeric:tabular-nums;white-space:nowrap}td:nth-child(2),td:nth-child(3),td:nth-child(4){font-weight:600;white-space:nowrap}td .text-button{font-size:10px;padding:0}tr.current td{background:#edf2e6}.review-panel{background:#faf8f0;border-color:#e6dfce}.review-panel ul{padding-left:17px;margin:0;font-size:11px;color:#786c52}.review-panel li{padding:5px 0}.review-panel li small{display:block;font-size:9px;color:#9a8c73}.provenance summary{font-size:12px}.provenance pre{font-size:10px;overflow:auto;max-height:340px;padding:14px;background:#f3f4ed;line-height:1.6;border-radius:6px}footer{display:flex;justify-content:space-between;gap:30px;border-top:1px solid var(--line);margin-top:40px;padding:25px 0 35px;color:var(--muted);font-size:10px}footer>span{letter-spacing:1.5px;white-space:nowrap}footer p{text-align:right}.noscript{padding:20px;text-align:center;color:#9b3c24}
@media(max-width:1100px){.workspace{grid-template-columns:305px minmax(0,1fr);gap:18px}.input-panel,.panel{padding:20px}.intro-note{display:none}.metric{padding:10px}.metric strong{font-size:21px}.metrics{gap:7px}}
@media(max-width:780px){.topbar{padding:17px 20px}.brand{font-size:21px}.brand small{display:block;margin:0;font-size:10px}.health{font-size:10px}main{padding:26px 16px 0}.intro{margin-bottom:23px}.subtitle{font-size:12px;line-height:1.9}.workspace{grid-template-columns:1fr;gap:20px}.input-panel{padding:22px}.dropzone{padding:19px 10px}.input-panel .divider{margin:13px 0}.empty-state{min-height:330px}.intro h1{font-size:28px}.metrics{grid-template-columns:repeat(2,1fr)}.metric{padding:12px 16px}.metric strong{font-size:23px}.result-heading h2{font-size:18px}.result-heading .secondary-button{padding:7px 9px}.fingerings{gap:10px}.fingering{width:calc((100% - 20px)/3);min-width:110px}.section-heading{gap:5px}.section-heading h3{font-size:15px}footer{flex-direction:column;gap:12px;margin-top:25px}footer p{text-align:left}.player-panel{margin-bottom:15px}.small-tag{font-size:9px}.timeline-scroll #timeline{min-width:550px}}
@media(max-width:400px){.mobile-break{display:block}.fingering{width:calc((100% - 10px)/2)}.key-label span{font-size:8px}.topbar{padding:15px}.brand{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.guitar-preview{background:#f1f5ec;border-color:#d5dfcc}.guitar-preview .section-heading{margin-bottom:4px}.preview-controls{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin:16px 0}.preview-controls label{font-size:11px;min-width:100px}.preview-controls select{background:var(--panel);margin-top:5px}.preview-play{height:39px;background:var(--ink);color:#fff;border-color:var(--ink);padding:8px 17px}.preview-play:hover{background:#3d5d49}.preview-controls .text-button{height:39px;font-size:11px;white-space:nowrap}.guitar-preview audio{margin-top:13px}.guitar-preview .help{color:#5d705b}@media(max-width:480px){.preview-controls{gap:10px}.preview-controls label{width:calc(50% - 5px)}.preview-play{flex:1}.preview-controls .text-button{padding-left:12px;padding-right:12px}}
