#musicDialog.library-dialog {
  width: min(96vw, 1680px);
  max-width: 96vw;
  height: 94dvh;
  max-height: 94dvh;
  padding: 0;
  overflow: hidden;
  background: var(--panel);
  border-color: var(--line);
  border-top-color: var(--accent);
}
#musicDialog.library-dialog[open] {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}
.library-dialog .library-header {
  margin: 0;
  padding: 12px 16px;
  align-items: center;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line);
  position: relative;
  z-index: 3;
}
.library-brand, .library-header-actions, .library-view-head, .library-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
}
.library-brand-mark {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: var(--accent);
  color: #fff;
  font-size: 18px;
}
.library-brand small, #libraryInspector small {
  color: var(--accent);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
}
.library-brand h2 { margin: 0; font-size: 20px; }
.library-header-actions { flex-wrap: wrap; }
#librarySearch { width: min(210px, 100%); }
.library-dialog button, .library-tools summary { font-size: 13px; }
.library-tools { position: relative; }
.library-tools summary {
  list-style: none;
  cursor: pointer;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 5px 9px;
}
.library-tools summary::-webkit-details-marker { display: none; }
.library-tools-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  min-width: 192px;
  display: grid;
  gap: 4px;
  padding: 6px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 8px 20px #22194422;
}
.library-tools-menu button { text-align: left; white-space: nowrap; }
.library-workspace {
  display: grid;
  grid-template-columns: 154px minmax(0, 1fr);
  min-height: 0;
}
.library-rail {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 4px;
  padding: 10px 7px;
  overflow: auto;
  background: var(--bg);
  border-right: 1px solid var(--line);
}
.library-rail button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  text-align: left;
  border-color: transparent;
  background: transparent;
  padding: 6px;
}
.library-rail button[aria-pressed=true] { background: var(--soft); color: var(--accent); font-weight: 700; }
.library-rail-group { display: grid; gap: 4px; }
.library-rail-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.library-rail .library-rail-toggle { justify-content: center; inline-size: 28px; padding-inline: 0; }
.library-rail-toggle[aria-expanded=true] span { transform: rotate(90deg); }
.library-rail-submenu {
  display: flex;
  flex-direction: column;
  margin-inline-start: 12px;
  padding-inline-start: 5px;
  border-inline-start: 1px solid var(--line);
}
.library-count { color: var(--muted); font-size: 11px; }
.library-content { min-width: 0; overflow: auto; padding: 12px 14px; }
.library-content h3, .library-content h4, .library-content p { margin: 0; }
.library-view-head { flex-wrap: wrap; margin-bottom: 8px; }
.library-view-head > :first-child { margin-right: auto; }
.library-collection-content { margin-top: 12px; }
.library-collection-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}
.library-collection-head > :first-child { min-width: 0; margin-right: 0; }
.library-collection-head h3 {
  margin-right: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.library-breadcrumbs { margin: 0; padding: 0; list-style: none; overflow-wrap: anywhere; }
.library-breadcrumbs li { display: inline; }
.library-breadcrumb-separator { margin-inline: 3px; color: var(--muted); }
.library-breadcrumbs [aria-current=location] { font-weight: 650; }
.library-collection-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.library-new-folder { min-inline-size: 16ch; }
.library-catalogue { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; align-items: start; }
.library-catalogue.has-inspector { grid-template-columns: minmax(0, 1fr) 202px; }
.library-table-panel { min-width: 0; }
.library-toolbar { flex-wrap: wrap; margin-bottom: 7px; }
.library-toolbar button, .library-view-head button { padding: 4px 8px; }
.library-toolbar button[aria-pressed=true] { background: var(--soft); border-color: var(--accent); color: var(--accent); }
.library-bulk {
  padding: 5px 7px;
  background: var(--soft);
  border-radius: 6px;
}
#librarySelectionCount {
  min-inline-size: 14ch;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.library-toolbar button:disabled, .library-collection-actions button:disabled, .library-order-actions button:disabled, .library-picker button:disabled, .saved-workout-actions button:disabled {
  color: var(--muted);
  background: var(--bg);
  border-color: var(--line);
  opacity: .65;
  cursor: not-allowed;
}
.library-toolbar [data-lib-action=toggle-filters] { min-inline-size: 15ch; }
.library-chip { background: var(--soft); color: var(--accent); padding: 3px 7px; border-radius: 6px; font-size: 12px; }
.library-chip button { padding: 0 3px; border: 0; background: transparent; }
.library-table-scroll, .library-index-scroll {
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 7px;
}
.library-table-scroll { max-height: min(520px, 61dvh); }
.library-index-scroll { max-height: 176px; }
.library-table, .library-index {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  font-size: 13px;
}
.library-table { min-width: 870px; }
.library-table th, .library-table td, .library-index th, .library-index td {
  height: 28px;
  padding: 3px 7px;
  line-height: 1.3;
  text-align: left;
  border-bottom: 1px solid var(--line);
}
.library-table thead, .library-index thead { position: sticky; top: 0; z-index: 1; background: var(--bg); }
.library-table tbody tr:last-child td, .library-index tbody tr:last-child td { border-bottom: 0; }
.library-table tbody tr:hover, .library-index tbody tr:hover, .library-current { background: var(--soft); }
.library-table th:first-child, .library-table td:first-child { width: 52px; }
.library-table th[data-sort-column=name] { min-width: 162px; }
.library-table th[data-sort-column=folder] { min-width: 88px; }
.library-table th input, .library-table td > input:not([type=checkbox]) { width: 100%; min-width: 62px; padding: 3px 5px; }
.library-table input[type=checkbox] { width: 15px; height: 15px; margin: 0; vertical-align: middle; }
.library-table small { display: block; font-size: 11px; }
:is(.library-dialog,.library-picker) button.library-link {
  display: inline;
  background: none;
  border: 0;
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 2px;
  padding: 0;
  overflow-wrap: anywhere;
  text-align: left;
  font-weight: 400;
}
.library-dialog button.library-track-name { color: var(--text); font-weight: 650; }
.library-order-actions { white-space: nowrap; }
.library-order-actions button, .library-index td button:not(.library-link) { padding: 1px 5px; }
.library-duration { font-variant-numeric: tabular-nums; white-space: nowrap; }
#libraryResults { color: var(--muted); font-size: 12px; margin-top: 5px; }
#libraryInspector {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 9px;
  overflow-wrap: anywhere;
}
#libraryInspector dl { display: grid; gap: 5px; margin: 8px 0; }
#libraryInspector dt { color: var(--muted); font-size: 11px; }
#libraryInspector dd { margin: 0; font-size: 13px; }
#libraryInspector .library-toolbar { margin: 0; }
.library-workout-tables, .library-import-options {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 10px;
}
.library-workout-tables h4, .library-import-options h4 { margin-bottom: 6px; }
.library-import-options > section {
  padding: 10px;
  display: grid;
  gap: 7px;
  align-content: start;
  justify-items: start;
  min-width: 0;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 7px;
}
.library-file-button { display: grid; gap: 4px; min-width: 0; max-width: 100%; }
.library-file-button input { max-width: 100%; }
#musicDialog #importPlaylists {
  width: 100%;
  height: min(124px, 18dvh);
  overflow: auto;
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 6px;
}
#importPlaylists label { display: flex; align-items: center; gap: 6px; }
#importPlaylists input { margin: 0; }
#importReview { height: min(220px, 32dvh); max-height: none; scrollbar-gutter: stable; }
.library-content .library-empty { padding: 8px; }
.library-import-options button:disabled {
  color: var(--muted);
  background: var(--bg);
  border-color: var(--line);
  opacity: .65;
  cursor: not-allowed;
}
.library-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
  justify-content: space-between;
  align-items: center;
  padding: 6px 14px;
  border-top: 1px solid var(--line);
  background: var(--bg);
  color: var(--muted);
  font-size: 12px;
}
.library-footer p { margin: 0; overflow-wrap: anywhere; }
.library-footer audio { width: 100%; height: 34px; }
.library-dialog .danger { color: #a52020; }
.library-selections li { padding: 4px; }
@media (max-width: 1050px) {
  .library-catalogue.has-inspector { grid-template-columns: minmax(0, 1fr); }
  #libraryInspector { grid-row: 1; }
  #libraryInspector dl { grid-template-columns: repeat(auto-fit,minmax(100px,1fr)); }
}
@media (max-width: 680px) {
  #musicDialog.library-dialog { width: 98vw; max-width: 98vw; }
  .library-workspace { grid-template-columns: minmax(0,1fr); grid-template-rows: auto minmax(0,1fr); }
  .library-rail { flex-direction: row; flex-wrap: wrap; border-right: 0; border-bottom: 1px solid var(--line); padding: 5px; }
  .library-rail-group { display: contents; }
  .library-rail-submenu { flex: 1 0 calc(100% - 12px); flex-direction: row; flex-wrap: wrap; }
  .library-content { padding: 8px; }
  .library-collection-head { grid-template-columns: minmax(0, 1fr); }
  .library-dialog .library-header { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 7px; padding: 9px; }
  .library-header-actions { display: contents; }
  .library-header .dialogactions { grid-column: 2 / -1; grid-row: 1; justify-self: end; }
  #librarySearch { grid-column: 1; grid-row: 2; width: 100%; }
  .library-header .library-tools { grid-column: 3; grid-row: 2; }
  .library-workout-tables, .library-import-options { grid-template-columns: minmax(0,1fr); }
}
@media (pointer: coarse) {
  .library-dialog button:not(.library-link):not(.library-sort), .library-tools summary { min-height: 36px; }
  .library-dialog input:not([type=checkbox]), .library-dialog select { font-size: 16px; }
}

.library-subdialog{width:min(850px,94vw);max-width:94vw;max-height:88dvh;padding:22px;overflow:auto}.library-subdialog form>label{display:block;margin:12px 0}.library-subdialog label>input:not([type=checkbox]),.library-subdialog label>select{display:block;width:100%;box-sizing:border-box}.library-subdialog input[type=checkbox]{width:auto}.library-subdialog [role=alert]{color:#a52020}.picker-results{max-height:38dvh;overflow:auto;margin:12px 0}.picker-item{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-bottom:1px solid #d6dfe3;padding:8px}.picker-item>span,.picker-item>strong{flex:1;min-width:160px;overflow-wrap:anywhere}.picker-item small{display:block;color:#52646e}.picker-basket{max-height:18dvh;overflow:auto}.picker-basket li{margin:6px 0}.library-subdialog .tabs{display:flex;gap:8px}
.library-table .library-sort{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:2px 0;background:transparent;border:0;border-radius:3px;text-align:left;font-weight:650}
.library-table .library-sort [data-sort-icon]{color:var(--muted);flex-shrink:0}.library-table th[aria-sort=ascending] .library-sort,.library-table th[aria-sort=descending] .library-sort{color:var(--accent)}
.library-table th[aria-sort=ascending] [data-sort-icon],.library-table th[aria-sort=descending] [data-sort-icon]{color:var(--accent)}
.library-subdialog{--edge:var(--repeat);background:color-mix(in srgb,var(--repeat) 12%,var(--panel));border-color:var(--line);border-top-color:var(--accent)}
.library-subdialog:has(.library-decision-form){width:min(520px,calc(100vw - 28px))}.library-decision-form .library-prompt-message{white-space:pre-line;overflow-wrap:anywhere;line-height:1.6}
.library-decision-form label{display:grid;gap:8px}.library-decision-form .dialogfooter{flex-wrap:wrap}.library-dialog-error{padding:12px;border:1px solid #d9a7a7;background:#fff5f5;border-radius:7px;white-space:pre-line;overflow-wrap:anywhere}
.library-subdialog .library-danger-button{background:#a52020;border-color:#a52020;color:#fff}.library-subdialog .library-danger-button:hover{background:#861a1a;border-color:#861a1a}

.playlist-subheading{margin-top:18px;margin-bottom:8px}

.saved-workouts-dialog .saved-workout-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 11rem) auto;
}
.saved-workout-row > strong, .saved-workout-row > small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.saved-workout-actions { display: flex; flex-wrap: wrap; gap: 6px; }
@media (max-width: 760px) {
  .saved-workouts-dialog .saved-workout-row { grid-template-columns: minmax(0, 1fr) minmax(0, 11rem); }
  .saved-workout-actions { grid-column: 1 / -1; }
}

.library-draft-toolbar { background: var(--soft); border-radius: 7px; padding: 7px; }
.library-draft-toolbar + .help { margin-bottom: 8px; }
.library-workout-tables .library-order-actions button + button { margin-left: 3px; }
.library-subdialog.library-picker {
  width: min(980px, 96vw);
  max-width: 96vw;
  padding: 0;
  background: var(--panel);
}
.library-picker .dialogheading {
  margin: 0;
  padding: 12px 15px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.library-picker .library-brand h2 { font-size: 19px; }
.library-picker-workspace {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr) minmax(200px, 31%);
}
.library-picker-source, .library-picker-selection { min-width: 0; padding: 10px; }
.library-picker-source > label { display: grid; gap: 4px; }
.library-picker .picker-results { margin: 8px 0 0; height: 44dvh; max-height: none; scrollbar-gutter: stable; }
.library-picker .picker-results > .library-breadcrumbs { padding: 6px 8px; }
.library-picker .picker-results td { overflow-wrap: anywhere; }
.library-picker .picker-results small { display: block; color: var(--muted); }
.library-picker .picker-results td label { display: flex; align-items: center; gap: 4px; }
.library-picker .picker-results td:last-child { width: 1%; }
.library-picker-selection { background: var(--bg); border-left: 1px solid var(--line); }
.library-picker .picker-basket { margin: 0; padding-left: 23px; height: 44dvh; max-height: none; scrollbar-gutter: stable; }
.library-picker .picker-empty { list-style: none; }
.library-picker .picker-basket li { overflow-wrap: anywhere; padding-bottom: 6px; border-bottom: 1px solid var(--line); }
.library-picker .picker-basket .library-order-actions { margin-top: 4px; }
.library-picker-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  padding: 9px 14px;
  border-top: 1px solid var(--line);
}
.library-picker-footer p { flex: 1 0 100%; margin: 0; }
@media (max-width: 650px) {
  .library-picker-workspace { grid-template-columns: minmax(0, 1fr); }
  .library-picker .library-rail { flex-direction: row; flex-wrap: wrap; border: 0; border-bottom: 1px solid var(--line); }
  .library-picker-selection { border-left: 0; border-top: 1px solid var(--line); }
  .library-picker .picker-results { height: 29dvh; }
  .library-picker .picker-basket { height: 20dvh; }
}
