.text-truncate {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.text-secondary {color:#6c757d!important;}
.position-relative {position:relative!important;}
.text-left {text-align:left!important;}
.shadow-none {box-shadow:none!important;}
.p-0 {padding:0!important;}
.mb-1,.my-1 {margin-bottom:.25rem!important;}
.ml-1,.mx-1 {margin-left:.25rem!important;}
.flex-grow-1 {-ms-flex-positive:1!important;flex-grow:1!important;}
.pb-1, .py-1 {padding-bottom:.25rem!important;}
.pt-1, .py-1 {padding-top:.25rem!important;}
.mr-1, .mx-1 {margin-right:.25rem!important;}
.mt-1, .my-1 {margin-top: .25rem!important;}
.mr-2, .mx-2 {margin-right:.5rem!important;}
.ml-2, .mx-2 {margin-left: .5rem!important;}
.p-3 {padding: 1rem!important;}
.pb-3, .py-3 {padding-bottom:1rem!important;}
.mr-3, .mx-3 {margin-right:1rem!important;}
.w-100 {width:100%!important;}
.mb-2, .my-2 {margin-bottom:.5rem!important;}
.ml-3, .mx-3 {margin-left:1rem!important;}
.pl-4, .px-4 {padding-left:1.5rem!important;}
.pr-4, .px-4 {padding-right:1.5rem!important;}
.shadow-sm {box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important;}
.small,small {font-size:80%;font-weight:400;}
.cursor-pointer {cursor:pointer;}
.text-muted {color:#6c757d!important;}
.rounded-pill {border-radius:50rem!important;}
.d-flex {display:-ms-flexbox!important;display:flex!important;}
.font-weight-bold {font-weight:700!important;}
.align-items-center {-ms-flex-align:center!important;align-items:center!important;}
.border-0 {border:0!important;}
.flex-shrink-1 {-ms-flex-negative:1!important;flex-shrink:1!important;}
.text-nowrap {white-space:nowrap!important;}
.player-controls-area.btn {display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;}
.btn-link {font-weight:400;color:#007bff;text-decoration:none;}
@media (min-width:768px).mr-md-3,.mx-md-3 {margin-right:1rem!important;}
.justify-content-start {-ms-flex-pack:start!important;justify-content:flex-start!important;}
.player-controls-area.btn:not(:disabled):not(.disabled) {cursor:pointer;}
button,select {text-transform:none;}
.font-smaller {font-size:.9rem;}
.flex-.d-flex {-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important;}
.rounded {border-radius: .25rem!important;}
.font-weight-bolder {font-weight: bolder!important;}

/*------------------------*/
.AudioPlayer {float: left;width: calc(100% - 20px);padding: 10px;box-shadow: 0 0 20px 0 rgba(0,0,0,.1);/*margin-top:10px;*/}
.custom-player-wrapper {overflow:hidden;background-color:#fff}
.player-cover-box {border-radius:16px;overflow:hidden;position:relative;cursor:pointer;box-shadow:0 8px 20px #0000001a;flex-shrink:0}
.player-cover-img {width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.4,0,.2,1)}
.player-cover-box:hover .player-cover-img {transform:scale(1.05)}
.player-play-overlay {position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;background:transparent;border:5px solid rgba(255,255,255,.7);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#ffffffe6;font-size:1.5rem;transition:all .3s ease;z-index:2}
.player-play-overlay i.fa-play {margin-left:4px}
.player-cover-box:hover .player-play-overlay {background:#ffffff26;border-color:#fff;transform:translate(-50%,-50%) scale(1.05)}
.song-title-styled {font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif;font-weight:800;color:#1a1a1a;line-height:1.2}
.song-author-styled {color:#333;font-weight:500}
.current-lyric-styled {font-size:.95rem;color:#0abaed!important;letter-spacing:1px;transition:opacity .2s ease-out,transform .2s ease-out;transform:translateY(0);opacity:1;display:block;min-height:22px}
.current-lyric-styled.lyric-switching {opacity:0;transform:translateY(6px)}
.btn-primary-blue,.btn-ui-white {padding:.4rem 1.25rem!important;font-size:.9rem}
.btn-primary-blue {background:linear-gradient(135deg,#36d1dc,#5b86e5)!important;border:none!important;color:#fff!important;transition:all .3s cubic-bezier(.4,0,.2,1)}
.btn-primary-blue:active {transform:translateY(1px);box-shadow:0 2px 8px #6495ED!important;transition:all .1s}
.btn-primary-green {padding:.4rem 1.25rem!important;font-size:.9rem}
.btn-primary-green {background:linear-gradient(135deg,#228B22,#32CD32)!important;border:none!important;color:#fff!important;transition:all .3s cubic-bezier(.4,0,.2,1)}
.btn-primary-green:active {transform:translateY(1px);box-shadow:0 2px 8px #6495ED!important;transition:all .1s}
.btn-primary-orange {padding:.4rem 1.25rem!important;font-size:.9rem}
.btn-primary-orange {background:#fa4826!important;border:none!important;color:#fff!important;transition:all .3s cubic-bezier(.4,0,.2,1)}
.btn-primary-orange:active {transform:translateY(1px);box-shadow:0 2px 8px #6495ED!important;transition:all .1s}
.btn-primary-deep {padding:.4rem 1.25rem!important;font-size:.9rem}
.btn-primary-deep {background:#0f95bc!important;border:none!important;color:#fff!important;transition:all .3s cubic-bezier(.4,0,.2,1)}
.btn-primary-deep:active {transform:translateY(1px);box-shadow:0 2px 8px #6495ED!important;transition:all .1s}
.btn-ui-white {background-color:#fff!important;border:1px solid #eef0f2!important;color:#555!important;transition:all .3s ease}
.btn-ui-white:hover {color:#1a1a1a!important;border-color:#d1d5db!important;background-color:#f8f9fa!important;box-shadow:0 4px 12px #0000000a!important}
.player-progress-bar {height:4px;border-radius:2px;cursor:pointer;background-color:#f0f0f0;position:relative}
.player-progress-fill {height:100%;background:linear-gradient(90deg,#4894e9,#3fa6fc);border-radius:2px;position:absolute;top:0;left:0;pointer-events:none}
.player-progress-handle {width:10px;height:10px;background-color:#4894e9;border-radius:50%;position:absolute;top:-3px;left:0;transform:translate(-50%);box-shadow:0 0 6px #ff4d6d66;opacity:0;transition:opacity .2s ease;pointer-events:none}
.custom-player-layout {position:relative;display:flex;flex-wrap:wrap}
.player-text-info {min-width:0}
.player-notice-toast {position:absolute;top:15px;left:50%;transform:translate(-50%);padding:6px 20px;color:#fff;font-size:.85rem;font-weight:500;border-radius:50px;z-index:100;display:none;white-space:nowrap;cursor:pointer;background:#000000a6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 15px #00000026}
@media(max-width:767.98px) {.custom-player-layout {align-items:flex-start}
.player-cover-box {width:80px;height:80px;flex:0 0 80px;margin:0 1rem 0 0;border-radius:12px}
.player-text-info {flex:1}
.player-controls-area {width:100%;margin-top:1rem}
.song-title-styled {font-size:1.25rem}
.player-play-overlay {width:34px;height:34px;border-width:3px;font-size:.9rem}
.player-play-overlay i.fa-play {margin-left:2px}
.action-btn-group {width:100%;overflow-x:auto}
.action-btn-group::-webkit-scrollbar {display:none}
.action-btn-group .btn {padding-left:.8rem!important;padding-right:.8rem!important;font-size:.8rem}
.action-btn-group .btn i {font-size:.9rem!important}
}
@media(min-width:768px) {.custom-player-layout {padding-left:calc(160px + 1.5rem);min-height:160px;flex-direction:column;justify-content:flex-start}
.player-cover-box {position:absolute;left:0;top:0;width:160px;height:160px;margin:0}
.player-text-info {width:100%}
.player-controls-area {width:100%;margin-top:auto;padding-top:.5rem}
.song-title-styled {font-size:1.5rem}
}
.volume-slider-container {position:absolute;bottom:100%;left:50%;transform:translate(-50%);width:32px;height:100px;padding:12px 0;background:#ffffffd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,0,0,.05);border-radius:12px;box-shadow:0 8px 24px #0000001f;display:flex;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:all .25s cubic-bezier(.4,0,.2,1);z-index:999}
.volume-control-wrapper:hover .volume-slider-container {opacity:1;visibility:visible;bottom:calc(100% + 8px)}
.player-volume-bar {width:4px;height:100%;border-radius:2px;background-color:#e5e7eb;position:relative}
.player-volume-fill {width:100%;background:#5b86e5;border-radius:2px;position:absolute;bottom:0;left:0;pointer-events:none}
.player-volume-handle {width:12px;height:12px;background-color:#fff;border:2px solid #5B86E5;border-radius:50%;position:absolute;left:50%;transform:translate(-50%,50%);box-shadow:0 2px 6px #5b86e566;opacity:0;transition:opacity .2s ease;pointer-events:none}
.volume-slider-container:hover .player-volume-handle {opacity:1}
#btn-loop-mode {position:relative;opacity:.5;transition:all .2s ease;cursor:pointer;text-decoration:none!important;color:#555}
#btn-loop-mode:hover {opacity:.8;text-decoration:none!important}
#btn-loop-mode:not(.active-loop):after {content:"";position:absolute;top:50%;left:50%;width:20px;height:2px;background-color:#555;transform:translate(-50%,-50%) rotate(-45deg);border:1px solid #ffffff;border-radius:2px;pointer-events:none}
#btn-loop-mode.active-loop {opacity:1;text-decoration:none!important}
#btn-loop-mode.active-loop:hover {opacity:.8;text-decoration:none!important}
.player-progress-buffered {height:100%;background-color:#cbcbcb;border-radius:2px;position:absolute;top:0;left:0;pointer-events:none;transition:width .3s ease;z-index:1}
.player-progress-fill {z-index:2}
.player-progress-handle {z-index:3}

@media (min-width: 768px){
.ml-md-3, .mx-md-3 {
    margin-left: 1rem!important;
}
}

.text-secondary {
    color: #6c757d!important;
}
.play_list li.active {
    background: #ffedf0;
}
.play_list li.active .name a {
    color:#e62143;
    font-weight:bold;
}
.rotate {
    animation: coverRotate 12s linear infinite;
}
@keyframes coverRotate {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.state {
    position: absolute;
    bottom: 8px;
    left: 0;
    width: 100%;
    text-align: center;
    color: #fff;
    background: rgba(0,0,0,0.5);
    padding: 4px 0;
}


