
@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+SC:wght@100..900&family=Noto+Sans+TC:wght@100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');


.abcjs-title{
	font-family: 'Libre Baskerville', 'Noto Sans SC', 'Noto Sans TC', sans-serif;
    font-weight: bold;
}

/* subtitle */
.abcjs-text{
	font-family: 'Libre Baskerville', 'Noto Sans SC', 'Noto Sans TC', sans-serif;
    font-weight: normal;
    font-size: large;
}

/* subtitle */
.abcjs-composer{
	font-family: 'Libre Baskerville', 'Noto Sans SC', 'Noto Sans TC', sans-serif;
    font-weight: normal;
    font-style: normal;
    font-size: medium;
}


.abcjs-lyric{
	font-family: 'Poppins', 'Noto Sans SC', 'Noto Sans TC', sans-serif;
    font-weight: normal;
    font-size: large;
}

.abcjs-chord {
    font-family: 'Montserrat', sans-serif;
    font-weight: bold;
    font-size: larger;
}

.abcjs-tempo {
    font-family: 'Montserrat', sans-serif;
}

.abcjs-part {
    font-family: 'Poppins', sans-serif;
    font-weight: bold;
    font-size: larger;
    color: #0065bf;
}

.structure {
    font-family: 'Poppins', sans-serif;
    font-weight: bold;
    color: #0065bf;
}

/* Basic styling for transpose buttons */
button {
    font-family: 'Poppins', 'Noto Sans SC', 'Noto Sans TC', sans-serif;
    font-size: 15px;
    padding: 5px 10px;
    margin: 5px;
    border: 1px solid #000;
    border-radius: 5px;
    background: none;
    color: #000;
    cursor: pointer;
    transition: color 0.3s, border-color 0.3s;
    display: inline-block;
}

button:hover {
    color: #555;
    border-color: #555;
}
#transpose-up,
#transpose-down,
#transpose-to-c,
#reset-transpose,
#transpose-up-octave,
#transpose-down-octave {
    /* Specific button styles can be added here if needed */
}



/* Some basic CSS to make the Audio controls in abcjs presentable. */

/* Basic styling for Audio controls in abcjs */
.abcjs-inline-audio {
    height: 26px;
    padding: 0 5px;
    border-radius: 3px;
    background-color: #ffffff00;
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

.abcjs-inline-audio.abcjs-disabled {
    opacity: 0.5;
}

.abcjs-inline-audio .abcjs-btn {
    display: block;
    width: 28px;
    height: 34px;
    margin-right: 2px;
    padding: 7px 4px;
    background: none !important;
    border: 1px solid transparent;
    box-sizing: border-box;
    line-height: 1;
}

.abcjs-btn g {
    fill: #666666;
    stroke: #666666;
}

.abcjs-inline-audio .abcjs-btn:hover g {
    fill: #666666;
    stroke: #666666;
}

.abcjs-inline-audio .abcjs-midi-selection.abcjs-pushed,
.abcjs-inline-audio .abcjs-midi-loop.abcjs-pushed,
.abcjs-inline-audio .abcjs-midi-reset.abcjs-pushed {
    border: 1px solid #666666;
    background-color: #666666;
    box-sizing: border-box;
}

.abcjs-inline-audio .abcjs-midi-start .abcjs-pause-svg,
.abcjs-inline-audio .abcjs-midi-start .abcjs-loading-svg {
    display: none;
}

.abcjs-inline-audio .abcjs-midi-start.abcjs-pushed .abcjs-play-svg,
.abcjs-inline-audio .abcjs-midi-start.abcjs-loading .abcjs-play-svg {
    display: none;
}

.abcjs-inline-audio .abcjs-midi-start.abcjs-pushed .abcjs-pause-svg {
    display: block;
}

.abcjs-inline-audio .abcjs-midi-progress-background {
    background-color: #cccccc;
    height: 10px;
    border-radius: 5px;
    border: 2px solid #cccccc;
    margin: 0 8px 0 15px;
    position: relative;
    flex: 1;
    padding: 0;
    box-sizing: border-box;
}

.abcjs-inline-audio .abcjs-midi-progress-indicator {
    width: 20px;
    margin-left: -10px;
    height: 14px;
    background-color: #666666;
    position: absolute;
    display: inline-block;
    border-radius: 6px;
    top: -4px;
    left: 0;
    box-sizing: border-box;
}

.abcjs-inline-audio .abcjs-midi-clock {
    margin: 1px 2px 0 4px;
    display: inline-block;
    font-family: sans-serif;
    font-size: 16px;
    color: #666666;
    box-sizing: border-box;
}

.abcjs-inline-audio .abcjs-tempo-wrapper {
    font-size: 10px;
    color: #666666;
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

.abcjs-inline-audio .abcjs-midi-tempo {
    border-radius: 2px;
    border: none;
    margin: 0 2px 0 4px;
    width: 42px;
    padding-left: 2px;
    box-sizing: border-box;
}

.abcjs-inline-audio .abcjs-loading .abcjs-loading-svg {
    display: inherit;
}

.abcjs-inline-audio .abcjs-loading {
    outline: none;
    animation: abcjs-spin 1s infinite linear;
}

.abcjs-inline-audio .abcjs-loading-svg circle {
    stroke: #666666;
}

@keyframes abcjs-spin {
    from {transform: rotate(0deg);}
    to {transform: rotate(360deg);}
}

/* Large control styling for touch devices */
.abcjs-large .abcjs-inline-audio {
    height: 52px;
}

.abcjs-large .abcjs-btn {
    width: 56px;
    height: 52px;
    font-size: 28px;
    padding: 6px 8px;
}

.abcjs-large .abcjs-midi-progress-background {
    height: 20px;
    border: 4px solid #666666;
}

.abcjs-large .abcjs-midi-progress-indicator {
    height: 28px;
    top: -8px;
    width: 40px;
}

.abcjs-large .abcjs-midi-clock {
    font-size: 32px;
    margin: -1px 10px 0 10px;
}

.abcjs-large .abcjs-midi-tempo {
	font-family: SF Pro Text, sans-serif;
    font-size: 32px;
    width: 20px;
}

.abcjs-large .abcjs-tempo-wrapper {
	font-family: SF Pro Text, sans-serif;
    font-size: 32px;
}

.abcjs-css-warning {
    display: none;
}
