:root{--bg:#f5f8f3;--surface:#fff;--surface-2:#edf3ea;--text:#1d2b22;--muted:#5d6d62;--border:#d9e3d5;--brand-ink:#0b352f;--brand-gold:#96620f;--accent:#2e7d4f;--accent-strong:#22613c;--accent-soft:#e2f1e6;--chord:#23744a;--chorus-bg:#eef6f0;--danger:#b42318;--danger-soft:#fdecea;--radius:10px;--sheet-size:18px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);margin:0;font-size:16px;line-height:1.5}a{color:var(--accent)}h1{margin:0;font-size:1.75rem;line-height:1.2}code{font-family:var(--mono);background:var(--surface-2);border-radius:4px;padding:.1em .35em;font-size:.88em}.muted{color:var(--muted)}.small{font-size:.875rem}.topbar{z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0}.topbar-inner{align-items:center;gap:12px;max-width:1100px;margin:0 auto;padding:10px 16px;display:flex}.brand{color:var(--text);align-items:center;gap:8px;font-size:1.15rem;font-weight:700;text-decoration:none;display:flex}.brand-logo{width:auto;height:40px;display:block}.brand-name{color:var(--brand-ink);letter-spacing:.01em;font-family:Georgia,Times New Roman,serif;font-size:1.35rem;font-weight:700}.brand-name-gold{color:var(--brand-gold)}.topbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.user-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:.9rem;overflow:hidden}.demo-banner{background:var(--accent-soft);color:var(--text);text-align:center;padding:6px 16px;font-size:.85rem}.btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:38px;padding:8px 14px;font-size:.95rem;font-weight:500;text-decoration:none;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{border-color:var(--muted)}.btn:focus-visible,.segmented button:focus-visible,.editor-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2);border-color:#0000}.btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn-small{min-height:34px;padding:6px 10px;font-size:.875rem}.btn-icon{width:40px;min-width:40px;padding:0;font-size:1.1rem;font-weight:600}.btn.is-on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.page{max-width:820px;margin:0 auto;padding:24px 16px 64px}.notice{border-radius:var(--radius);padding:10px 14px;font-size:.95rem}.notice-error{background:var(--danger-soft);color:var(--danger)}.list-header{flex-direction:column;gap:14px;margin-bottom:18px;display:flex}.search,.field input,.content-input{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:11px 14px}.search:focus,.field input:focus,.content-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.song-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:0;padding:0;list-style:none;overflow:hidden}.song-list:empty{display:none}.song-list li+li{border-top:1px solid var(--border)}.song-item{color:var(--text);align-items:center;gap:12px;padding:13px 16px;text-decoration:none;display:flex}.song-item:hover{background:var(--surface-2)}.song-item-main{flex-direction:column;min-width:0;display:flex}.song-item-title{font-weight:600}.song-item-author{color:var(--muted);font-size:.875rem}.key-badge{color:var(--chord);background:var(--accent-soft);border-radius:6px;flex-shrink:0;margin-left:auto;padding:2px 8px;font-size:.85rem;font-weight:700}.empty{text-align:center;border:1px dashed var(--border);border-radius:var(--radius);padding:40px 16px}.filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filters select{appearance:none;font:inherit;color:var(--text);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235d6d62'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--border);cursor:pointer;border-radius:8px;max-width:100%;min-height:38px;padding:8px 32px 8px 12px;font-size:.9rem}.filters select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.filters select.is-on{border-color:var(--accent);background-color:var(--accent-soft);color:var(--accent-strong);font-weight:600}.link-button{appearance:none;font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.list-count{margin:-6px 0 10px}.section-header{background:var(--surface-2);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-strong);justify-content:space-between;align-items:baseline;padding:10px 16px 6px;font-size:.78rem;font-weight:700;display:flex}.section-count{color:var(--muted);letter-spacing:0;font-weight:600}.song-number{text-align:right;font-variant-numeric:tabular-nums;min-width:34px;color:var(--muted);flex-shrink:0;align-self:flex-start;margin-top:1px;font-size:.85rem;font-weight:600}.song-item-snippet{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.82rem;overflow:hidden}.match-label{color:var(--accent-strong);font-weight:600}.pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:18px 0 0;display:flex}.pager-numbers{align-items:center;gap:4px;display:flex}.pager-num{appearance:none;border:1px solid var(--border);background:var(--surface);min-width:36px;height:36px;color:var(--text);font:inherit;cursor:pointer;border-radius:8px;font-size:.9rem}.pager-num:hover{border-color:var(--accent)}.pager-num.is-on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.pager-gap{color:var(--muted);padding:0 2px}.song-tags{flex-wrap:wrap;gap:4px;display:flex}.song-item-tags{margin-top:5px}.song-head-tags{margin-top:10px}.tag{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 8px;font-size:.74rem;font-weight:500;line-height:1;display:inline-flex}.tag-season{background:var(--surface-2);color:var(--text)}.tag-moment{background:var(--accent-soft);color:var(--accent-strong)}.tag-theme{border:1px solid var(--border);color:var(--muted);background:0 0}.tag-more{background:var(--surface-2);color:var(--muted)}.season-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tag-groups{gap:14px;display:grid}.tag-picker{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;margin:0;padding:10px 12px 12px}.tag-picker legend{color:var(--muted);padding:0 4px;font-size:.85rem;font-weight:600}.tag-hint{font-weight:400}.tag-options{flex-wrap:wrap;gap:6px;display:flex}.tag-option{appearance:none;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:6px 12px;font-size:.85rem;display:inline-flex}.tag-option:hover{border-color:var(--muted)}.tag-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tag-option.is-on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.tag-option.is-on .season-dot{box-shadow:0 0 0 1.5px #fff}.song-head{margin-bottom:16px}.back-link{margin-bottom:8px;font-size:.9rem;text-decoration:none;display:inline-block}.song-title{margin:0;font-size:1.9rem;line-height:1.2}.song-author{color:var(--muted);margin:4px 0 0}.toolbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:5;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:18px;padding:10px 12px;display:flex;position:sticky;top:58px}.tool-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.key-display{flex-direction:column;align-items:center;min-width:64px;line-height:1.15;display:flex}.key-current{color:var(--chord);font-size:1.2rem;font-weight:700}.key-steps{color:var(--muted);font-size:.72rem}.segmented{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{appearance:none;background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border:0;min-height:34px;padding:6px 10px;font-size:.85rem}.segmented button+button{border-left:1px solid var(--border)}.segmented .acc{font-size:1.15rem;line-height:1}.segmented button.is-on{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.credit{margin-top:32px}.sheet{font-size:var(--sheet-size);line-height:1.35}.block{padding:2px 0}.block.chorus{background:var(--chorus-bg);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;margin:6px 0;padding:8px 14px}.line{flex-wrap:wrap;align-items:flex-end;margin:.1em 0;display:flex}.line.with-chords{margin-top:.35em}.word{white-space:pre;align-items:flex-end;display:inline-flex}.piece{flex-direction:column;display:inline-flex}.chord{color:var(--chord);white-space:pre;height:1.4em;padding-right:.35em;font-size:.9em;font-weight:700;line-height:1.4}.lyric{white-space:pre}.chord-name{white-space:nowrap}.chord-name sup{vertical-align:baseline;font-size:.7em;font-weight:700;line-height:0;position:relative;top:-.42em}.chord-name .chord-acc{margin-left:.03em;font-size:.92em;top:-.36em}.chord-ext-acc{font-size:1.2em;line-height:0}.chord-name .chord-ext{letter-spacing:.01em;margin-left:.04em}.chord-name .chord-acc+.chord-ext{margin-left:0}.chord-slash{margin:0 .04em;font-weight:400}.line-empty{height:.9em}.line-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:.6em 0 .15em;font-size:.8em;font-weight:700}.block.chorus .line-label:first-child{margin-top:0}.editor-page{max-width:1100px}.editor{flex-direction:column;gap:16px;display:flex}.fields{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=640px){.fields{grid-template-columns:2fr 1.4fr .8fr}.fields.fields-extra{grid-template-columns:1.2fr .6fr 2fr}}.field{flex-direction:column;gap:4px;display:flex}.field span{color:var(--muted);font-size:.85rem;font-weight:600}.editor-tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.editor-tabs button{appearance:none;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px;font-weight:600}.editor-tabs button.is-on{color:var(--accent);border-bottom-color:var(--accent)}.editor-panes{gap:16px;display:grid}.show-write .pane-preview,.show-preview .pane-write{display:none}@media (width>=900px){.editor-tabs{display:none}.editor-panes{grid-template-columns:1fr 1fr}.show-write .pane-preview,.show-preview .pane-write{display:block}}.pane{min-width:0}.editor-tools{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.tool-group-box{flex-direction:column;gap:5px;display:flex}.tool-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-left:2px;font-size:.7rem;font-weight:700}.tool-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;gap:2px;padding:3px;display:flex}.tool-btn{appearance:none;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;min-height:34px;padding:7px 11px;font-size:.875rem;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.tool-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-strong)}.tool-btn:active:not(:disabled){background:color-mix(in srgb, var(--accent) 22%, var(--surface))}.tool-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tool-btn:disabled{opacity:.4;cursor:default}.tool-icon{color:var(--accent);display:inline-flex}.tool-btn:hover:not(:disabled) .tool-icon{color:inherit}.tool-btn-square{justify-content:center;width:34px;padding:0}.key-stepper{align-items:center}.key-stepper-value{text-align:center;min-width:44px;color:var(--chord);font-size:1rem;font-weight:700}.tip-bubble{z-index:60;color:#f2f6f1;pointer-events:none;visibility:hidden;opacity:0;background:#1d2b22;border-radius:8px;max-width:min(260px,100vw - 16px);padding:8px 11px;font-size:.8rem;line-height:1.4;transition:opacity .12s,transform .12s,visibility 0s linear .12s;position:fixed;top:0;left:0;transform:translateY(-3px);box-shadow:0 6px 18px #0000002e}.tip-bubble.is-visible{visibility:visible;opacity:1;transition:opacity .12s,transform .12s;transform:none}.tip-bubble.is-above{transform:translateY(3px)}.tip-bubble.is-above.is-visible{transform:none}.tip-bubble:before{content:"";left:var(--arrow-x,50%);background:inherit;border-radius:2px;width:10px;height:10px;margin-left:-5px;position:absolute;top:-5px;transform:rotate(45deg)}.tip-bubble.is-above:before{top:auto;bottom:-5px}.tip-bubble b{color:#fff}.content-input{font-family:var(--mono);resize:vertical;tab-size:4;min-height:460px;font-size:.92rem;line-height:1.6}.pane-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;overflow-x:auto}.preview-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px;font-size:.75rem;font-weight:700}.preview-title{margin-bottom:12px;font-size:1.4rem}.help{color:var(--muted);margin-top:10px;font-size:.9rem}.help summary{cursor:pointer;color:var(--accent);font-weight:500}.help ul{margin:8px 0 0;padding-left:1.2em}.help li+li{margin-top:4px}.editor-actions{background:var(--bg);border-top:1px solid var(--border);align-items:center;gap:8px;padding:12px 0;display:flex;position:sticky;bottom:0}.spacer{flex:1}.site-footer{max-width:820px;color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin:0 auto;padding:0 16px 32px;font-size:.8rem;display:flex}.site-footer a{color:var(--accent);font-weight:500}.import-lead{color:var(--muted);max-width:62ch;margin:6px 0 18px}.dropzone{border:2px dashed var(--border);background:var(--surface);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:32px 16px;transition:border-color .15s,background .15s;display:flex}.dropzone.is-dragging{border-color:var(--accent);background:var(--accent-soft)}.dropzone-icon{color:var(--accent)}.dropzone-title{margin:4px 0 0;font-weight:600}.dropzone-or{color:var(--muted);margin:0 0 4px;font-size:.85rem}.dropzone-reading{width:100%;max-width:320px;color:var(--muted);flex-direction:column;gap:10px;display:flex}.progress{background:var(--surface-2);border-radius:999px;width:100%;height:8px;overflow:hidden}.progress-fill{background:var(--accent);transform-origin:0;height:100%;transition:transform .2s ease-out}.formats{flex-wrap:wrap;gap:6px;margin:14px 0 8px;display:flex}.format-chip{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:.8rem}.format-chip b{color:var(--text);font-weight:600}.notice-ok{background:var(--accent-soft);color:var(--accent-strong)}.review-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.review-head p{margin:4px 0 0}.review-toolbar{z-index:5;background:var(--bg);flex-direction:column;gap:10px;margin-bottom:8px;padding:8px 0 10px;display:flex;position:sticky;top:58px}.review-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.review-actions .btn-primary{margin-left:auto}.review-tags{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px}.review-tags p{margin:0}.review-done-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.check{cursor:pointer;align-items:center;gap:8px;font-size:.9rem;display:inline-flex}.check input,.draft-check{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.draft-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.draft{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 12px}.draft.is-selected{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.draft.is-saved{opacity:.7}.draft-main{align-items:flex-start;gap:10px;display:flex}.draft-check{flex-shrink:0;margin-top:9px}.draft-body{flex:1;min-width:0}.draft-title{width:100%;font:inherit;color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;margin-left:-6px;padding:5px 6px;font-size:1rem;font-weight:600}.draft-title:hover:not(:disabled){border-color:var(--border)}.draft-title:focus{border-color:var(--accent);background:var(--surface);outline:none}.draft-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:.78rem;display:flex}.badge{border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:600}.badge-ok{background:var(--accent-soft);color:var(--accent-strong)}.badge-warn{color:#8a5a00;background:#fff3d6}.badge-error{background:var(--danger-soft);color:var(--danger)}.draft-actions{flex-wrap:wrap;gap:2px;margin:6px 0 0 22px;display:flex}.existing-choice{background:#fff3d6;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;font-size:.88rem;display:flex}.existing-choice select,.badge-select{font:inherit;color:var(--text);background:var(--surface);border:1px solid #f0dcae;border-radius:8px;padding:5px 8px;font-size:.85rem}.badge-select{color:#8a5a00;background:#fff3d6;padding:2px 6px;font-size:.72rem;font-weight:600}.draft-section{color:var(--accent-strong);font-weight:600}.draft-discard{color:var(--danger)}.draft-preview{border-top:1px solid var(--border);--sheet-size:15px;max-height:320px;margin:8px 0 0 28px;padding-top:8px;overflow:auto}.show-more{margin:14px auto 0;display:block}@media (width<=600px){.review-actions .btn-primary{width:100%;margin-left:0}.draft-actions,.draft-preview{margin-left:0}.hide-sm{display:none}.topbar-inner{gap:8px}.topbar-actions{gap:4px}.topbar-import{padding:6px 9px}.brand{gap:5px;min-width:0}.brand-logo{height:28px}.brand-name{font-size:1.05rem}}@media (width<=360px){.brand-name{display:none}}.symbol-card{background:#fffaf0;border:1px solid #f0dcae;border-radius:12px;margin:0 0 14px;padding:12px 14px}.symbol-card-head{appearance:none;text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:flex-start;gap:10px;padding:0;font-size:.9rem;display:flex}.symbol-card-toggle{color:var(--muted)}.symbol-list{flex-direction:column;gap:8px;margin:12px 0 8px;padding:0;list-style:none;display:flex}.symbol-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;grid-template-columns:1fr minmax(180px,auto);align-items:start;gap:8px 16px;padding:10px 12px;display:grid}.symbol-info{flex-direction:column;gap:2px;min-width:0;display:flex}.symbol-name{font-weight:700}.symbol-examples{flex-direction:column;gap:2px;margin-top:4px;font-size:.85rem;display:flex}.symbol-example{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.symbol-box{color:#4a3500;background:#f6c453;border-radius:3px;margin:0 1px;padding:0 3px;font-size:.8em}.symbol-choice{flex-direction:column;gap:6px;display:flex}.symbol-choice select,.symbol-custom{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:7px 10px;font-size:.9rem}.symbol-choice select:focus,.symbol-custom:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.symbol-preview{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.symbol-preview b{color:var(--text);font-weight:600}.repair-card{margin-top:16px}.repair-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.repair-head p{margin:0;font-size:.9rem}.repair-actions{gap:8px;margin:6px 0 8px;display:flex}@media (width<=600px){.symbol-row{grid-template-columns:1fr}}.about-logo{width:min(280px,70vw);height:auto;margin:8px auto 20px;display:block}.about-page h1{margin-bottom:8px}.about-lead{color:var(--muted);max-width:60ch;margin:0 0 20px}.about-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:14px;padding:16px 18px}.about-card h2{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:.78rem;font-weight:700}.about-card p{margin:0}.about-card a:not(.btn){overflow-wrap:anywhere}.about-mail{margin-top:12px}@media (width<=600px){.page{padding-top:16px}.song-title{font-size:1.5rem}.toolbar{gap:8px;padding:8px;top:55px}.user-name{display:none}}@media print{.topbar,.toolbar,.demo-banner,.back-link,.site-footer,.credit{display:none!important}body{color:#000;background:#fff}.chord{color:#000}.block.chorus{background:0 0}}.chord-hit{cursor:pointer;border-radius:4px;outline:none;transition:background .12s}.chord-hit:hover,.chord-hit:focus-visible{background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft)}.chord-hit:focus-visible{box-shadow:0 0 0 2px var(--accent)}.hover-hint{margin:-8px 0 14px}.chord-pop{z-index:50;background:var(--surface);width:236px;max-width:calc(100vw - 16px);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:10px 12px 12px;font-size:.9rem;animation:.12s ease-out pop-in;position:fixed;box-shadow:0 12px 32px #0000002e,0 2px 6px #00000014}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}}.pop-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.pop-chord{color:var(--chord);font-size:1.35rem;font-weight:700}.pop-actions{align-items:center;gap:4px;display:flex}.pop-play{appearance:none;background:var(--accent);color:#fff;height:32px;font:inherit;cursor:pointer;border:0;border-radius:16px;align-items:center;gap:6px;padding:0 12px 0 10px;font-size:.82rem;font-weight:600;display:inline-flex}.pop-play:hover{background:var(--accent-strong)}.pop-play:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pop-play svg{fill:currentColor;width:13px;height:13px}.pop-play.is-playing svg{animation:.9s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.35}}.pop-close{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;width:30px;height:30px;font-size:1.4rem;line-height:1}.pop-close:hover{background:var(--surface-2);color:var(--text)}.pop-tabs{border:1px solid var(--border);border-radius:8px;margin-bottom:10px;display:flex;overflow:hidden}.pop-tabs button{appearance:none;background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border:0;flex:1;padding:6px 4px;font-size:.82rem}.pop-tabs button+button{border-left:1px solid var(--border)}.pop-tabs button.is-on{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.pop-body{flex-direction:column;justify-content:center;align-items:center;min-height:150px;display:flex}.pop-nav{color:var(--muted);align-items:center;gap:8px;margin-top:4px;font-size:.78rem;display:flex}.pop-nav button{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;width:30px;height:28px;font-size:1.1rem;line-height:1}.pop-nav button:hover{border-color:var(--muted)}.pop-notes{border-top:1px solid var(--border);color:var(--muted);text-align:center;margin-top:8px;padding-top:8px;font-size:.8rem}.pop-legend{color:var(--muted);text-align:center;align-items:center;gap:6px;margin:8px 0 0;font-size:.75rem;display:flex}.legend-swatch{background:#7a5bd1;border-radius:2px;width:10px;height:10px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.lib-overlay{z-index:40;background:#14231a59;justify-content:flex-end;animation:.15s ease-out lib-fade;display:flex;position:fixed;inset:0}@keyframes lib-fade{0%{opacity:0}}.lib-panel{background:var(--bg);flex-direction:column;width:min(440px,100vw);height:100%;animation:.2s ease-out lib-slide;display:flex;box-shadow:-8px 0 32px #00000026}@keyframes lib-slide{0%{opacity:.6;transform:translate(24px)}}.lib-header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.lib-header h2{margin:0;font-size:1.15rem}.lib-scroll[hidden]{display:none}.lib-scroll{flex-direction:column;flex:1;gap:16px;padding:14px 16px 32px;display:flex;overflow-y:auto}.lib-search input{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:11px 14px}.lib-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.lib-status{margin:-8px 0 0;font-size:.85rem}.lib-status.is-ok{color:var(--accent-strong)}.lib-status.is-ok .chord-name{font-weight:700}.lib-status.is-error{color:var(--danger)}.lib-detail{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px 14px}.lib-detail .pop-body{min-height:170px}.lib-detail .diagram.guitar{max-width:170px}.lib-insert{width:100%;margin-top:12px}.lib-insert .chord-name{font-weight:700}.lib-hint{color:var(--muted);text-align:center;margin:6px 0 0;font-size:.75rem}.lib-section h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:.75rem;font-weight:700}.lib-section-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.lib-section-head h3{margin:0}.lib-chips{flex-wrap:wrap;gap:6px;display:flex}.lib-chip{appearance:none;font:inherit;color:var(--chord);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;min-height:34px;padding:5px 11px;font-size:.95rem;font-weight:700;display:inline-flex}.lib-chip:hover{border-color:var(--accent)}.lib-chip.is-on{background:var(--accent);border-color:var(--accent);color:#fff}.lib-chip.is-invalid{color:var(--danger);background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 35%, transparent);text-underline-offset:3px;cursor:help;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.lib-warning{color:var(--danger);margin:8px 0 0;font-size:.8rem}.lib-roots{grid-template-columns:repeat(6,1fr);gap:5px;margin-bottom:12px;display:grid}.lib-root{appearance:none;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:8px;min-height:38px;font-size:.95rem;font-weight:700}.lib-root.is-black{background:var(--surface-2)}.lib-root:hover{border-color:var(--accent)}.lib-root.is-on{background:var(--accent);border-color:var(--accent);color:#fff}.lib-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;display:grid}.lib-card{appearance:none;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:1px;padding:8px 6px 4px;transition:border-color .12s,box-shadow .12s;display:flex}.lib-card:hover{border-color:var(--accent);box-shadow:0 2px 8px #2e7d4f1f}.lib-card.is-on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.lib-card:focus-visible,.lib-chip:focus-visible,.lib-root:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lib-card-name{color:var(--chord);font-size:1.05rem;font-weight:700}.lib-card-label{color:var(--muted);font-size:.7rem}.lib-card .diagram.guitar{max-width:84px;margin-top:2px}.lib-card .diagram .note-label{display:none}@media (width<=600px){.lib-overlay{align-items:flex-end}.lib-panel{border-radius:16px 16px 0 0;width:100%;height:92vh;animation-name:lib-rise}.lib-header{border-radius:16px 16px 0 0}}@keyframes lib-rise{0%{opacity:.6;transform:translateY(32px)}}.lib-modes{background:var(--surface);border-bottom:1px solid var(--border);gap:4px;padding:8px 16px 0;display:flex}.lib-modes button{appearance:none;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:8px 6px 10px;font-size:.9rem;font-weight:600}.lib-modes button.is-on{color:var(--accent);border-bottom-color:var(--accent)}.lib-modes button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.identifier{flex-direction:column;gap:12px;display:flex}.identifier-intro{color:var(--muted);margin:0;font-size:.9rem}.identifier-input{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;align-items:center;padding:10px 12px 12px;display:flex}.identifier-help{color:var(--muted);text-align:center;margin:8px 0 0;font-size:.75rem}.identifier-actions{justify-content:center;gap:8px;display:flex}.identifier-result{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:110px;padding:14px;display:flex}.identifier-result p{margin:0}.identifier-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.identifier-name{color:var(--chord);font-size:2.4rem;font-weight:700;line-height:1.1}.identifier-none{font-weight:600}.identifier-alts{color:var(--muted);flex-direction:column;align-items:center;gap:6px;margin-top:4px;font-size:.8rem;display:flex}.identifier-alts .lib-chips{justify-content:center}.identifier-buttons{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.identifier-buttons .chord-name{font-weight:700}.beta-pill{color:#8a5a00;text-transform:uppercase;letter-spacing:.04em;vertical-align:1px;background:#fff3d6;border-radius:999px;margin-left:5px;padding:1px 5px;font-size:.62rem;font-weight:700;display:inline-block}.mic{text-align:center;flex-direction:column;align-items:center;gap:10px;width:100%;padding:6px 0;display:flex}.mic-intro,.mic-privacy,.mic-hint,.mic-live,.mic-error{margin:0;font-size:.82rem}.mic-intro{color:var(--text)}.mic-privacy{color:var(--muted);font-size:.72rem}.mic-hint{color:var(--muted);min-height:1.2em}.mic-live{color:var(--accent-strong);font-weight:600}.mic-error{color:var(--danger)}.mic-button{min-width:200px}.mic-button.is-on{border-color:var(--danger);color:var(--danger)}.mic-dot{background:var(--danger);border-radius:50%;width:9px;height:9px;animation:1.1s ease-in-out infinite pulse}.mic-meter{background:var(--surface-2);border-radius:999px;width:100%;max-width:260px;height:8px;overflow:hidden}.mic-meter-fill{background:linear-gradient(90deg, var(--accent) 0%, var(--accent) 70%, #d9a400 90%, var(--danger) 100%);transform-origin:0;height:100%;transition:transform .15s linear}.fret-input{flex-direction:column;align-items:center;width:100%;display:flex}.fret-input-nav{color:var(--muted);align-items:center;gap:10px;margin-bottom:4px;font-size:.8rem;display:flex}.fret-input-nav button{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;width:32px;height:30px;font-size:1.1rem;line-height:1}.fret-input-nav button:disabled{opacity:.35;cursor:default}.fret-input-hint{color:var(--accent-strong);margin:4px 0 0;font-size:.75rem}.diagram.guitar-input{max-width:260px}.diagram.piano-input{max-width:340px}.fret-hit,.key-hit{cursor:pointer;outline:none}.fret-hit rect{fill:#0000}.fret-hit:hover rect{fill:var(--accent-soft)}.fret-hit:focus-visible rect{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5px}.key-hit:focus-visible rect{stroke:var(--accent);stroke-width:2px}.key-hit:hover .white-key:not(.is-on){fill:var(--accent-soft)}.key-hit:hover .black-key:not(.is-on){fill:#3d4a41}.diagram .key-c-label{fill:#8a948d;pointer-events:none;font-size:8px}.diagram{width:100%;height:auto;font-family:var(--font);display:block}.diagram.guitar{max-width:150px}.diagram.bass{max-width:130px}.diagram .string,.diagram .fret{stroke:var(--muted);stroke-width:1px}.diagram .string.thick{stroke-width:1.6px}.diagram .nut{stroke:var(--text);stroke-width:4px;stroke-linecap:round}.diagram .dot{fill:var(--chord)}.diagram .dot-hollow{fill:var(--surface);stroke:var(--chord);stroke-width:1.5px}.diagram .open{fill:none;stroke:var(--text);stroke-width:1.4px}.diagram .muted line{stroke:var(--muted);stroke-width:1.4px;stroke-linecap:round}.diagram .finger{fill:var(--surface);font-size:9.5px;font-weight:700}.diagram .role{fill:var(--chord);font-size:8px;font-weight:700}.diagram .fret-label{fill:var(--muted);font-size:10px;font-weight:600}.diagram .note-label{fill:var(--muted);font-size:9.5px;font-weight:600}.diagram .note-label.is-bass{fill:var(--accent-strong)}.diagram .white-key{fill:#fff;stroke:#9a9087;stroke-width:1px}.diagram .black-key{fill:#2a2520;stroke:#2a2520}.diagram .white-key.is-on,.diagram .black-key.is-on{fill:var(--chord);stroke:var(--accent-strong)}.diagram .white-key.is-bass,.diagram .black-key.is-bass{fill:#7a5bd1;stroke:#5b3fb0}@media print{.chord-pop,.hover-hint{display:none!important}}.topbar-set{gap:6px;position:relative}.set-count{background:var(--accent);color:#fff;border-radius:9px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.72rem;font-weight:700;line-height:1;display:inline-grid}.song-row{align-items:center;display:flex}.song-row .song-item{flex:1;min-width:0}.set-toggle{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--accent);cursor:pointer;border-radius:50%;flex:none;place-items:center;margin-right:12px;transition:background .12s,color .12s,border-color .12s;display:inline-grid}.set-toggle:hover{border-color:var(--accent);background:var(--accent-soft)}.set-toggle.is-on{background:var(--accent);border-color:var(--accent);color:#fff}.set-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.set-page h1{margin-bottom:6px}.set-head p{max-width:62ch;margin:0 0 18px}.set-inline-plus{border:1px solid var(--border);width:18px;height:18px;color:var(--accent);vertical-align:1px;border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;line-height:1;display:inline-grid}.set-options{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:14px;margin-bottom:18px;padding:14px 16px;display:grid}.set-fields{grid-template-columns:1fr}.set-choices{flex-wrap:wrap;gap:12px 24px;display:flex}.set-choice{flex-direction:column;gap:6px;display:flex}.set-choice-label{color:var(--muted);font-size:.82rem}.set-groups{grid-template-columns:minmax(0,1fr);gap:16px;margin:0;padding:0;list-style:none;display:grid}.set-group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--brand-gold);margin:0 0 6px;font-size:.78rem}.set-items{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:0;padding:0;list-style:none;overflow:hidden}.set-items li+li{border-top:1px solid var(--border)}.set-item{align-items:center;gap:12px;padding:10px 12px;display:flex}.set-item.is-missing{color:var(--muted);font-style:italic}.set-num{background:var(--accent-soft);width:26px;height:26px;color:var(--accent-strong);border-radius:50%;flex:none;place-items:center;font-size:.8rem;font-weight:700;display:grid}.set-item-main{flex-direction:column;flex:1;min-width:0;display:flex}.set-item-title{color:var(--text);font-weight:600;text-decoration:none}.set-item-title:hover{text-decoration:underline}.set-item-meta{color:var(--muted);font-size:.82rem}.set-item-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.set-key{align-items:center;gap:2px;display:flex}.set-key-name{text-align:center;min-width:38px;color:var(--chord);font-weight:700}.set-moment{border:1px solid var(--border);background:var(--surface);max-width:170px;color:var(--text);font:inherit;border-radius:8px;padding:5px 8px;font-size:.85rem}.set-move{gap:2px;display:flex}.set-remove{color:var(--muted);font-size:1.1rem}.set-actions{flex-wrap:wrap;gap:10px;margin:20px 0 12px;display:flex}.set-clear{margin-left:auto}.set-ready{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;display:flex}.set-ready-actions{flex-wrap:wrap;gap:6px;display:flex}@media (width>=640px){.set-fields{grid-template-columns:1fr 180px}}@media (width<=600px){.set-item{flex-wrap:wrap;row-gap:8px}.set-item-main{flex-basis:calc(100% - 40px)}.set-item-controls{justify-content:space-between;width:100%;padding-left:38px}.set-moment{flex:1;max-width:none}.set-toggle{margin-right:10px}.set-clear{margin-left:0}.topbar-set{padding:6px 9px}.topbar-set .set-count{min-width:16px;height:16px;padding:0 4px;font-size:.66rem;position:absolute;top:-3px;right:-4px}.set-item{position:relative}.set-item-main{padding-right:34px}.set-remove{position:absolute;top:6px;right:6px}.set-item-controls{flex-wrap:nowrap;gap:6px}.set-moment{min-width:0}.set-key-name{min-width:30px}.set-item-controls .btn-icon{width:32px;min-width:32px}}@media (width<=420px){.hide-xs{display:none}.topbar-new{min-width:36px;padding:4px 10px;font-size:1.1rem}}
