/* 中文註解：歌單沿用共用色票與頁首，手機版把作品資訊放到曲名下方，避免整頁橫向捲動。 */
.playlist-content{padding-top:36px;padding-bottom:64px}.playlist-overview{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:30px}.playlist-overview .portal-eyebrow{font-size:9px}.playlist-overview p{font-size:12px;color:var(--site-muted);margin:8px 0 0}.playlist-totals{display:flex;gap:32px;align-items:center;color:var(--site-muted);font-size:11px;white-space:nowrap}.playlist-totals strong{font-size:30px;font-weight:400;color:var(--site-ink);margin-right:7px;font-variant-numeric:tabular-nums}.playlist-tabs{display:flex;gap:5px;border-bottom:1px solid var(--site-line);flex-wrap:wrap}.playlist-tabs>a{padding:15px 19px;border-bottom:2px solid transparent;color:var(--site-muted);font-size:12px}.playlist-tabs>a.selected{border-bottom-color:var(--site-accent);color:var(--site-accent-dark)}.playlist-tabs>a:hover{background:var(--site-soft)}.playlist-tabs span{display:inline-block;font-size:9px;margin-left:6px;color:#89937f}.playlist-list-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.playlist-list-heading .portal-eyebrow{font-size:9px;margin-bottom:8px}.playlist-list-heading h2{font-size:23px;font-weight:500;letter-spacing:1px;margin:0}.playlist-list-heading>span{font-size:11px;color:var(--site-muted)}.playlist-table-wrap{border-top:1px solid var(--site-line)}.playlist-table{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed}.playlist-table th{padding:14px 18px;background:#e9ece3;color:var(--site-muted);font-size:10px;letter-spacing:1px;font-weight:500}.playlist-table th:first-child{width:65px}.playlist-table th:nth-child(2){width:48px;text-align:center;padding-left:6px;padding-right:6px;white-space:nowrap}.playlist-table th:nth-child(3){width:35%}.playlist-table th:last-child{width:135px}.playlist-table td{padding:18px;border-bottom:1px solid var(--site-line);font-size:12px;overflow-wrap:anywhere}.playlist-table tbody tr:hover{background:#eceee5}.playlist-table .track-number{font-size:10px;color:#96a08b;font-variant-numeric:tabular-nums}.track-title{font-weight:500;letter-spacing:.3px}.track-category{display:inline-block;border:1px solid var(--site-line);color:#74856b!important;background:#e7ebdf;font-size:9px;padding:3px 9px;white-space:nowrap;letter-spacing:.5px}.track-category.game{background:#eee9df;color:#907a5c!important;border-color:#e0d7c7}.track-category.anime{background:#e4e9e8;color:#6b8380!important;border-color:#d5dfdc}.track-category.doujin{background:#eae5ec;color:#8d7a94!important;border-color:#ded5e1}.track-category.jpop{background:#ece8e1;color:#8d826e!important;border-color:#ded8cc}.playlist-note{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:#8b957e;line-height:1.8;margin-top:25px}.playlist-note>span:last-child{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:800px){.playlist-tabs>a{padding:13px 12px}.playlist-tabs{gap:0}.playlist-totals{gap:20px}.playlist-table th:nth-child(2){width:48px;padding-left:6px;padding-right:6px}.playlist-table th:nth-child(3){width:34%}.playlist-table th:first-child{width:48px}.playlist-table th:last-child{width:110px}.playlist-table th,.playlist-table td{padding:16px 11px}.playlist-note{flex-direction:column;gap:8px}}
@media(max-width:520px){.playlist-content{padding-top:25px}.playlist-overview{align-items:flex-start;flex-direction:column;gap:16px;padding-bottom:22px}.playlist-totals strong{font-size:25px}.playlist-tabs>a{flex-basis:33.333%;padding:11px 5px;text-align:center;font-size:11px}.playlist-tabs span{margin-left:3px}.playlist-list-heading h2{font-size:21px}.playlist-table thead{display:none}.playlist-table,.playlist-table tbody{display:block;width:100%}.playlist-table tr{display:grid;grid-template-columns:24px 32px minmax(0,1fr) 78px;gap:4px 10px;padding:17px 0;border-bottom:1px solid var(--site-line)}.playlist-table td{display:block;padding:0;border:0}.playlist-table .track-number{grid-column:1;grid-row:1/3;padding-top:3px}.playlist-table .track-proficiency{grid-column:2;grid-row:1/3;padding-top:1px}.playlist-table .track-title{grid-column:3;grid-row:1;font-size:12px}.playlist-table td:last-child{grid-column:4;grid-row:1/3;text-align:right;padding-top:1px}.track-category{font-size:8px;padding:3px 6px}.playlist-note{font-size:9px}}

/* 中文註解：熟練度位於編號與曲名之間；沒有設定時保持真正空白，不顯示預設等級。 */
.playlist-table td.track-proficiency{text-align:center;padding-left:6px;padding-right:6px}.proficiency-badge{display:inline-block;min-width:25px;padding:2px 5px;font-size:10px;line-height:1.7;border:1px solid var(--site-line);color:var(--site-muted);background:var(--site-soft)}.proficiency-badge.high{color:#4e6b4d;background:#e4ebdd;border-color:#d1ddc8}.proficiency-badge.medium{color:#8b7653;background:#eee8dc;border-color:#e0d6c3}.proficiency-badge.low{color:#95695e;background:#eee3de;border-color:#dfd0c7}
/* 中文註解：Excel 式欄位選單；手機保留表頭並橫向捲動，確保三欄皆可篩選。 */
.playlist-filter-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 16px;font-size:12px;color:var(--site-muted)}.playlist-filter-tools button,.column-filter button{font:inherit;color:var(--site-accent-dark);cursor:pointer}.playlist-filter-tools button{border:1px solid var(--site-line);background:var(--site-surface);padding:7px 10px}.playlist-filter-tools small{font-size:10px}.excel-table-wrap{overflow:visible}.playlist-table.excel-table th:nth-child(1){width:76px}.playlist-table.excel-table th:nth-child(2){width:130px;text-align:left;padding:14px 10px}.playlist-table.excel-table th:nth-child(3){width:84px}.playlist-table.excel-table th:nth-child(4){width:32%}.playlist-table.excel-table th:last-child{width:auto}.column-filter{position:relative;letter-spacing:0}.column-filter summary{cursor:pointer;list-style:none;white-space:nowrap}.column-filter summary::-webkit-details-marker{display:none}.column-filter summary span[aria-hidden]{font-size:8px;margin-left:4px}.column-filter-menu{position:absolute;top:28px;left:0;z-index:20;width:235px;padding:12px;border:1px solid var(--site-line);background:var(--site-surface);box-shadow:0 8px 22px #29332126;text-align:left;font-size:12px;font-weight:400}.column-filter-menu>strong{display:block;padding:4px 6px 8px}.column-filter-menu>button{display:block;width:100%;padding:8px 6px;text-align:left;border:0;background:transparent}.column-filter button:hover{background:var(--site-soft)}.column-filter input[type=search]{width:100%;box-sizing:border-box;padding:8px;border:1px solid var(--site-line);margin:8px 0}.filter-selection-actions,.filter-menu-actions{display:flex;gap:6px;justify-content:space-between;padding:8px 0}.filter-selection-actions button,.filter-menu-actions button{background:var(--site-soft);border:1px solid var(--site-line);padding:6px}.filter-options{max-height:210px;overflow:auto;border-top:1px solid var(--site-line);border-bottom:1px solid var(--site-line)}.filter-options label{display:flex;gap:9px;align-items:center;padding:7px 6px;cursor:pointer}.filter-options label[hidden],.excel-table tr[hidden]{display:none!important}.filter-options input{accent-color:var(--site-accent)}.is-filtered summary{color:var(--site-accent-dark);font-weight:700}.is-filtered summary:after{content:'•';margin-left:4px}.excel-table [data-filter-empty] td{text-align:center;padding:25px}.column-filter :focus-visible{outline:2px solid var(--site-accent);outline-offset:2px}
@media(max-width:800px){.excel-table-wrap{overflow:auto;padding-bottom:240px;margin-bottom:-220px}.playlist-table.excel-table{display:table;min-width:760px;table-layout:fixed}.playlist-table.excel-table thead{display:table-header-group}.playlist-table.excel-table tbody{display:table-row-group}.playlist-table.excel-table tr{display:table-row}.playlist-table.excel-table td{display:table-cell;padding:16px 11px;border-bottom:1px solid var(--site-line);text-align:left}.playlist-table.excel-table .track-title{font-size:12px}.playlist-table.excel-table .track-proficiency{text-align:center}}
/* 中文註解：窄螢幕選單固定在畫面內，避免被橫向捲動容器裁切。 */
@media(max-width:800px){.excel-table-wrap{padding-bottom:0;margin-bottom:0}.column-filter-menu{position:fixed;left:50%;top:15vh;transform:translateX(-50%);max-height:70vh;overflow:auto;width:min(280px,85vw)}}
/* 中文註解：所有欄位都有選單，右側選單向左展開以保持在畫面內。 */
.playlist-page .playlist-list-heading{margin-top:28px}.excel-table th:nth-last-child(-n+2) .column-filter-menu{left:auto;right:0}
@media(max-width:800px){.excel-table th:nth-last-child(-n+2) .column-filter-menu{left:50%;right:auto}}
/* 中文註解：熟練度分頁保留獨立列；排序按鈕直接使用欄位標題，不再顯示篩選選單。 */
.proficiency-tabs{margin-top:12px}.table-sort-button{border:0;background:transparent;padding:0;color:inherit;font:inherit;cursor:pointer;text-align:inherit;white-space:normal}.table-sort-button:hover{color:var(--site-accent-dark)}.table-sort-button [data-sort-indicator]{font-size:11px}.click-sort-table th[aria-sort=ascending],.click-sort-table th[aria-sort=descending]{color:var(--site-accent-dark)}
/* 中文註解：排序按鈕融入表頭底色；熟練度標題與方向符號保持單行。 */
.click-sort-table .table-sort-button{background:inherit;box-shadow:none;border:0;border-radius:0}.click-sort-table th[data-filter-column=proficiency]{width:90px;white-space:nowrap}.click-sort-table th[data-filter-column=proficiency] .table-sort-button{white-space:nowrap}
/* 中文註解：歌手與作品獨立成欄，各自排序；窄畫面可左右滑動查看六欄。 */
.playlist-table.click-sort-table th[data-filter-column=title]{width:28%}.playlist-table.click-sort-table th[data-filter-column=artist]{width:21%}.playlist-table.click-sort-table th[data-filter-column=work]{width:auto}.playlist-table .track-artist,.playlist-table .track-work{color:var(--site-muted);line-height:1.8}@media(max-width:800px){.playlist-table.click-sort-table{min-width:940px}}
/* 中文註解：配信平台放在歌單最後兩欄，〇或留白置中，標題維持單行。 */
.playlist-table.click-sort-table th[data-filter-column=dam]{width:70px;white-space:nowrap}.playlist-table.click-sort-table th[data-filter-column=joysound]{width:110px;white-space:nowrap}.playlist-table.click-sort-table th[data-filter-column=work]{width:auto}.playlist-table .track-availability{text-align:center;white-space:nowrap}.playlist-table.click-sort-table th[data-filter-column=dam] button,.playlist-table.click-sort-table th[data-filter-column=joysound] button{white-space:nowrap}@media(max-width:1100px){.playlist-table-wrap:has(.click-sort-table){overflow-x:auto}.playlist-table.click-sort-table{min-width:1100px}}
/* 中文註解：作品名稱只顯示一行，超出省略；完整名稱保留在 title 提示。 */
.playlist-table .track-work-text{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.8}
.playlist-table .song-copy-button{display:inline-block;max-width:100%;padding:0;border:0;border-bottom:1px dotted var(--site-line);border-radius:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:copy;box-shadow:none}.playlist-table .song-copy-button:hover{color:var(--site-accent-dark);border-bottom-color:currentColor;background:transparent}.playlist-table .song-copy-button:focus-visible{outline:2px solid var(--site-accent);outline-offset:4px}.playlist-copy-status{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:1000;max-width:calc(100vw - 32px);width:max-content;padding:12px 18px;border:1px solid var(--site-line);border-radius:10px;background:var(--site-surface);color:var(--site-ink);box-shadow:0 8px 30px #0002;font-size:13px;line-height:1.6;overflow-wrap:anywhere;pointer-events:none}.playlist-copy-status[hidden]{display:none}.playlist-copy-status.is-error{border-color:#b66c67}
.playlist-overview>div:first-child{flex:1;min-width:0}.playlist-proficiency-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 20px;margin-top:12px}.playlist-overview .playlist-proficiency-guide p{display:flex;align-items:baseline;gap:8px;margin:0;font-size:12px;line-height:1.5}.playlist-proficiency-guide .proficiency-badge{flex-shrink:0;min-width:24px;text-align:center}.playlist-proficiency-guide p>span:last-child{min-width:0}

@media(max-width:800px){.playlist-proficiency-guide{grid-template-columns:1fr;gap:4px}}

/* Keep the wide song table inside a viewport-sized scrolling region. */
@media(max-width:1080px){
  .playlist-page{width:100%;max-width:100%;overflow-x:clip}
  .playlist-page .playlist-content{min-width:0}
  .playlist-page .playlist-table-wrap{
    display:block;
    width:100%;
    min-width:0;
    max-width:100%;
    contain:inline-size;
    overflow-x:auto;
    overscroll-behavior-x:contain;
  }
}

/* Size every column to its full, single-line content. */
.playlist-page .playlist-table-wrap{
  position:relative;
  display:block;
  width:100%;
  min-width:0;
  max-width:100%;
  contain:inline-size;
  overflow-x:auto;
  overscroll-behavior-x:contain;
}
.playlist-page .playlist-table.excel-table.click-sort-table{
  table-layout:auto;
  width:max-content;
  min-width:100%;
  max-width:none;
}
.playlist-page .playlist-table.excel-table.click-sort-table th[data-filter-column]{
  width:auto;
  min-width:0;
  text-align:center;
  white-space:nowrap;
}
.playlist-page .playlist-table.click-sort-table td{
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
}
.playlist-page .click-sort-table .table-sort-button{white-space:nowrap;text-align:center}
.playlist-page .click-sort-table .sr-only{left:0;top:0}
.playlist-page .playlist-table .song-copy-button{
  max-width:none;
  white-space:nowrap;
  overflow-wrap:normal;
}
.playlist-page .playlist-table .track-work-text{
  overflow:visible;
  text-overflow:clip;
  white-space:nowrap;
}
