.setlists-page {
    display: grid;
    gap: 1.1rem;
}

.setlists-assign-dialog {
    max-height: min(90vh, 720px);
    max-width: min(94vw, 620px);
    overflow: auto;
    width: 620px;
}

.setlists-advisor-dialog {
    max-height: min(92vh, 860px);
    max-width: min(96vw, 1120px);
    overflow: auto;
    width: 1120px;
}

.setlists-advisor-shell,
.setlists-advisor-summary,
.setlists-advisor-sections {
    display: grid;
    gap: .85rem;
}

.setlists-advisor-view-tabs,
.setlists-view-switcher {
    align-items: center;
    background: color-mix(in srgb, var(--surface-soft) 94%, transparent);
    border: 1px solid var(--line);
    border-radius: 9px;
    display: inline-flex;
    gap: .25rem;
    padding: .25rem;
}

.setlists-advisor-view-tabs {
    justify-self: start;
}

.setlists-advisor-view-tabs button,
.setlists-view-switcher button {
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 7px;
    color: var(--muted);
    cursor: pointer;
    font: inherit;
    font-size: .74rem;
    font-weight: 850;
    min-height: 32px;
    padding: .38rem .7rem;
}

.setlists-advisor-view-tabs button[aria-selected="true"],
.setlists-view-switcher button[aria-selected="true"] {
    background: color-mix(in srgb, var(--accent) 13%, var(--surface-inset));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 38%, var(--line));
    color: var(--text);
}

.setlists-advisor-view-tabs button:focus-visible,
.setlists-view-switcher button:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--accent) 70%, transparent);
    outline-offset: 2px;
}

.setlists-advisor-comparison {
    display: grid;
    gap: .85rem;
}

.setlists-advisor-comparison-intro {
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.45;
    margin: 0;
}

.setlists-advisor-comparison-section {
    border: 1px solid var(--line);
    border-radius: 10px;
    display: grid;
    gap: .7rem;
    min-width: 0;
    padding: .8rem;
}

.setlists-advisor-comparison-scroll {
    max-width: 100%;
    overflow-x: auto;
    scrollbar-gutter: stable;
}

.setlists-advisor-comparison-scroll table {
    border-collapse: separate;
    border-spacing: 0;
    font-size: .72rem;
    min-width: 100%;
    white-space: nowrap;
}

.setlists-advisor-comparison-songs {
    min-width: 1160px !important;
}

.setlists-advisor-comparison-scroll th,
.setlists-advisor-comparison-scroll td {
    background: var(--surface-soft);
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    padding: .48rem .55rem;
    text-align: left;
    vertical-align: top;
}

.setlists-advisor-comparison-scroll th {
    color: var(--text);
    font-size: .64rem;
    font-weight: 850;
    letter-spacing: .04em;
    position: sticky;
    text-transform: uppercase;
    top: 0;
    z-index: 1;
}

.setlists-advisor-comparison-scroll .is-improved {
    color: var(--success-text, #5eead4);
    font-weight: 850;
}

.setlists-advisor-comparison-scroll .is-review {
    color: var(--warning-text, #facc15);
    font-weight: 850;
}

.setlists-advisor-change {
    font-weight: 850;
}

.setlists-advisor-change.is-added,
.setlists-advisor-change.is-moved {
    color: var(--accent);
}

.setlists-advisor-change.is-removed {
    color: #fb7185;
}

.setlists-advisor-result {
    background: color-mix(in srgb, var(--accent) 7%, var(--surface-soft));
    border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
    border-radius: 10px;
    display: grid;
    gap: .15rem;
    padding: .8rem;
}

.setlists-advisor-result strong,
.setlists-advisor-result span {
    display: block;
}

.setlists-advisor-result span {
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.4;
}

.setlists-advisor-result.is-current {
    border-color: color-mix(in srgb, var(--success-text) 38%, var(--line));
}

.setlists-advisor-result.has-timing-risk {
    border-color: color-mix(in srgb, var(--warning-text, #facc15) 55%, var(--line));
}

.setlists-advisor-metrics {
    display: grid;
    gap: .5rem;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
}

.setlists-advisor-metrics > div {
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 8px;
    display: grid;
    gap: .1rem;
    padding: .6rem;
}

.setlists-advisor-metrics strong {
    color: var(--text);
    font-size: 1rem;
}

.setlists-advisor-metrics span {
    color: var(--muted);
    font-size: .68rem;
    line-height: 1.25;
}

.setlists-advisor-section {
    border: 1px solid var(--line);
    border-radius: 10px;
    display: grid;
    gap: .7rem;
    padding: .8rem;
}

.setlists-advisor-section.has-changes {
    border-color: color-mix(in srgb, var(--accent) 34%, var(--line));
}

.setlists-advisor-section-heading {
    align-items: center;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
}

.setlists-advisor-section-heading > div {
    display: grid;
    gap: .05rem;
}

.setlists-advisor-section-heading span {
    color: var(--accent);
    font-size: .64rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.setlists-advisor-section-heading b {
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    font-size: .68rem;
    padding: .25rem .5rem;
}

.setlists-advisor-order {
    display: grid;
    gap: .35rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.setlists-advisor-order li {
    align-items: center;
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 8px;
    display: grid;
    gap: .6rem;
    grid-template-columns: 28px minmax(0, 1fr);
    padding: .5rem .6rem;
}

.setlists-advisor-order li.is-moving {
    background: color-mix(in srgb, var(--accent) 6%, var(--surface-soft));
    border-color: color-mix(in srgb, var(--accent) 25%, var(--line));
}

.setlists-advisor-order > li > span {
    align-items: center;
    background: var(--surface-inset);
    border-radius: 999px;
    color: var(--text);
    display: inline-flex;
    font-size: .72rem;
    font-weight: 850;
    height: 26px;
    justify-content: center;
    width: 26px;
}

.setlists-advisor-order li > div {
    display: grid;
    gap: .1rem;
    min-width: 0;
}

.setlists-advisor-order strong {
    color: var(--text);
    font-size: .8rem;
}

.setlists-advisor-order small {
    color: var(--muted);
    font-size: .68rem;
}

.setlists-advisor-notes {
    display: grid;
    gap: .25rem;
}

.setlists-advisor-notes p,
.setlists-advisor-empty {
    color: var(--muted);
    font-size: .74rem;
    line-height: 1.4;
    margin: 0;
}

.setlists-advisor-notes p::before {
    color: var(--accent);
    content: "✓";
    font-weight: 900;
    margin-right: .4rem;
}

.setlists-advisor-notes p.is-warning::before {
    color: var(--warning-text);
    content: "!";
}

.setlists-section-timing-fields,
.setlists-add-timing-fields {
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.setlists-section-timing-fields > small,
.setlists-add-timing-fields > small {
    color: var(--muted);
    font-size: .7rem;
    grid-column: 1 / -1;
}

.setlists-section-timing-goal {
    background: color-mix(in srgb, var(--accent) 7%, var(--surface-soft));
    border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
    border-radius: 999px;
    color: var(--muted);
    font-size: .64rem;
    font-weight: 750;
    padding: .2rem .45rem;
    white-space: nowrap;
}

.setlists-section-timing-goal.is-hard-over,
.setlists-section-timing-goal.is-hard_over,
.setlists-section-timing-goal.is-over {
    border-color: color-mix(in srgb, var(--danger-text) 42%, var(--line));
    color: var(--danger-text);
}

.setlists-section-timing-goal.is-under {
    border-color: color-mix(in srgb, var(--warning-text) 42%, var(--line));
    color: var(--warning-text);
}

.setlists-section-timing-goal.is-on-target,
.setlists-section-timing-goal.is-on_target,
.setlists-section-timing-goal.is-within_max {
    border-color: color-mix(in srgb, var(--success-text) 42%, var(--line));
    color: var(--success-text);
}

.setlists-assign-form,
.setlists-assign-heading,
.setlists-current-assignments {
    display: grid;
    gap: .8rem;
}

.setlists-assign-heading {
    gap: .15rem;
    padding-right: 2rem;
}

.setlists-assign-heading h2,
.setlists-assign-heading p {
    margin: 0;
}

.setlists-assign-heading p:not(.eyebrow) {
    color: var(--muted);
    font-size: .9rem;
}

.setlists-assign-form > label > span,
.setlists-current-assignments > strong {
    color: var(--text);
    display: block;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .04em;
    margin-bottom: .4rem;
    text-transform: uppercase;
}

.setlists-assign-form select {
    width: 100%;
}

.setlists-replace-assignment {
    align-items: flex-start;
    background: color-mix(in srgb, var(--warning, #f59e0b) 8%, var(--surface-soft));
    border: 1px solid color-mix(in srgb, var(--warning, #f59e0b) 42%, var(--line));
    border-radius: 9px;
    display: flex;
    gap: .7rem;
    padding: .8rem;
}

.setlists-replace-assignment[hidden] {
    display: none;
}

.setlists-replace-assignment input {
    margin-top: .22rem;
}

.setlists-replace-assignment span,
.setlists-replace-assignment strong,
.setlists-replace-assignment small {
    display: block;
}

.setlists-replace-assignment small {
    color: var(--muted);
    margin-top: .2rem;
}

.setlists-template-review {
    background: color-mix(in srgb, var(--accent) 5%, var(--surface-soft));
    border: 1px solid color-mix(in srgb, var(--accent) 32%, var(--line));
    border-radius: 10px;
    display: grid;
    gap: .85rem;
    padding: .9rem;
}

.setlists-template-review[hidden] {
    display: none;
}

.setlists-template-review-heading span,
.setlists-template-review-heading strong,
.setlists-template-review-heading p {
    display: block;
}

.setlists-template-review-heading span {
    color: var(--accent);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.setlists-template-review-heading strong {
    color: var(--text);
    margin-top: .15rem;
}

.setlists-template-review-heading p,
.setlists-template-review-timing,
.setlists-template-review-unchanged,
.setlists-template-review-loading,
.setlists-template-review-error,
.setlists-template-review-current {
    color: var(--muted);
    font-size: .82rem;
    line-height: 1.45;
    margin: .25rem 0 0;
}

.setlists-template-review-metrics {
    display: grid;
    gap: .45rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.setlists-template-review-metrics > div {
    background: color-mix(in srgb, var(--panel) 80%, transparent);
    border: 1px solid var(--line);
    border-radius: 8px;
    display: grid;
    gap: .1rem;
    padding: .55rem;
}

.setlists-template-review-metrics strong {
    color: var(--text);
    font-size: 1.05rem;
}

.setlists-template-review-metrics span {
    color: var(--muted);
    font-size: .7rem;
    line-height: 1.25;
}

.setlists-template-review-details {
    display: grid;
    gap: .65rem;
}

.setlists-template-review-group strong {
    color: var(--text);
    font-size: .76rem;
}

.setlists-template-review-group ul {
    color: var(--muted);
    display: grid;
    font-size: .78rem;
    gap: .2rem;
    margin: .3rem 0 0;
    padding-left: 1.15rem;
}

.setlists-template-review-timing {
    border-top: 1px solid var(--line);
    margin-top: 0;
    padding-top: .7rem;
}

.setlists-template-review-error {
    color: var(--danger-text, #dc2626);
    margin: 0;
}

.setlists-template-review-current {
    color: var(--text);
    margin: 0;
}

.setlists-assign-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.setlists-assign-empty {
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 9px;
    display: grid;
    gap: .4rem;
    padding: 1rem;
}

.setlists-assign-empty span {
    color: var(--muted);
}

.setlists-assign-empty .btn {
    justify-self: start;
    margin-top: .35rem;
}

.setlists-current-assignments {
    border-top: 1px solid var(--line);
    gap: .35rem;
    margin-top: .25rem;
    padding-top: .8rem;
}

.setlists-current-assignments > strong {
    margin: 0 0 .1rem;
}

.setlists-current-assignments a {
    align-items: center;
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    display: flex;
    gap: .65rem;
    justify-content: space-between;
    padding: .65rem .75rem;
    text-decoration: none;
}

.setlists-current-assignments a:hover,
.setlists-current-assignments a:focus-visible {
    border-color: var(--accent);
}

.setlists-current-assignments a span {
    color: var(--muted);
    font-size: .78rem;
    white-space: nowrap;
}

.setlists-heading {
    align-items: end;
    display: flex;
    gap: 1.25rem;
    justify-content: space-between;
}

.setlists-heading.is-index-heading {
    display: block;
}

.setlists-heading h2 {
    color: var(--text);
    font-size: clamp(1.5rem, 3vw, 2.15rem);
    margin: .1rem 0 0;
}

.setlists-heading p:not(.eyebrow) {
    color: var(--muted);
    margin: .35rem 0 0;
}

.setlists-create-disclosure {
    min-width: min(100%, 390px);
}

.setlists-create-form {
    background: color-mix(in srgb, var(--surface-soft) 95%, transparent);
    min-width: 0;
    padding: .8rem;
}

.setlists-create-form label,
.setlists-library > label,
.setlists-builder-header label {
    color: var(--text);
    display: block;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .035em;
    margin: 0 0 .4rem;
    text-transform: uppercase;
}

.setlists-create-form > div {
    display: flex;
    gap: .55rem;
}

.setlists-create-form input,
.setlists-builder-header input,
.setlists-library input,
.setlists-add-section input,
.setlists-add-section select,
.setlists-add-section textarea {
    min-width: 0;
    width: 100%;
}

.setlists-empty {
    align-items: center;
    display: grid;
    justify-items: center;
    min-height: 270px;
    padding: 2rem;
    text-align: center;
}

.setlists-empty > span {
    color: var(--accent);
    font-size: 3rem;
}

.setlists-empty h3,
.setlists-empty p {
    margin: .25rem 0 0;
}

.setlists-empty p {
    color: var(--muted);
}

.setlists-gig-guidance span {
    color: var(--muted);
    font-size: .74rem;
}

.setlists-gig-guidance {
    align-items: center;
    background: color-mix(in srgb, var(--accent) 6%, var(--surface-soft));
    border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
    border-radius: 10px;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: .75rem .9rem;
}

.setlists-gig-guidance > div {
    display: grid;
    gap: .12rem;
}

.setlists-empty-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: center;
    margin-top: .75rem;
}

.setlists-index {
    display: grid;
    gap: 1rem;
    padding: 1rem;
}

.setlists-workspace-toolbar > .setlists-mobile-add-songs { display: none; }
body.setlists-mobile-sheet-open .bg-tooltip-bubble.bg-tooltip-compact { pointer-events: none; }

.setlists-index-filters {
    align-items: end;
    display: grid;
    gap: .7rem;
    grid-template-columns: minmax(240px, 1fr) minmax(145px, .3fr) minmax(175px, .35fr) auto;
}

.setlists-index-filters label {
    margin: 0;
}

.setlists-index-filters > .setlists-filter-submit {
    align-self: end;
    min-height: 46px;
}

.setlists-filter-toggle {
    display: none;
}

.setlists-advanced-filters {
    display: contents;
}

.setlists-index-filters label > span {
    color: var(--text);
    display: block;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .045em;
    margin-bottom: .38rem;
    text-transform: uppercase;
}

.setlists-index-filters input,
.setlists-index-filters select {
    min-width: 0;
    width: 100%;
}

.setlists-index-results {
    display: grid;
    gap: .7rem;
    transition: opacity .15s ease;
}

.setlists-index-results[aria-busy="true"] {
    opacity: .55;
}

.setlists-index-summary {
    align-items: center;
    border-top: 1px solid var(--line);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding-top: .85rem;
}

.setlists-index-summary strong,
.setlists-index-summary span {
    display: block;
}

.setlists-index-summary strong {
    color: var(--text);
    font-family: "Outfit", sans-serif;
    font-size: 1.05rem;
}

.setlists-index-summary span {
    color: var(--muted);
    font-size: .76rem;
    margin-top: .15rem;
}

.setlists-index-list {
    display: grid;
    gap: .5rem;
}

.setlists-index-row {
    align-items: center;
    background: color-mix(in srgb, var(--surface-soft) 94%, transparent);
    border: 1px solid var(--line);
    border-left: 3px solid color-mix(in srgb, var(--accent) 62%, var(--line));
    border-radius: 9px;
    display: grid;
    gap: .9rem;
    grid-template-columns: minmax(0, 1fr) minmax(150px, auto) auto;
    min-height: 76px;
    padding: .7rem .8rem;
}

.setlists-index-row.is-archived {
    border-left-color: color-mix(in srgb, var(--muted) 58%, var(--line));
}

.setlists-index-row.is-archived > .setlists-index-row-main,
.setlists-index-row.is-archived > .setlists-index-row-meta {
    opacity: .86;
}

.setlists-index-row-main,
.setlists-index-row-main > a {
    min-width: 0;
}

.setlists-index-row-main > a {
    color: var(--text);
    display: inline-block;
    max-width: 100%;
    text-decoration: none;
}

.setlists-index-mobile-showtime,
.setlists-index-open-indicator {
    display: none;
}

.setlists-index-row-main > a:hover strong,
.setlists-index-row-main > a:focus-visible strong {
    color: var(--accent);
}

.setlists-index-row-main strong {
    color: var(--text);
    display: block;
    font-family: "Outfit", sans-serif;
    font-size: 1rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.setlists-index-row-facts {
    color: var(--muted);
    display: flex;
    flex-wrap: wrap;
    font-size: .75rem;
    gap: .25rem .75rem;
    margin-top: .25rem;
}

.setlists-index-row-facts span:not(:last-child)::after {
    color: color-mix(in srgb, var(--muted) 50%, transparent);
    content: "·";
    margin-left: .75rem;
}

.setlists-index-row-meta {
    align-items: flex-end;
    color: var(--muted);
    display: grid;
    font-size: .72rem;
    gap: .3rem;
    justify-items: end;
    white-space: nowrap;
}

.setlists-status-badge {
    background: rgba(20, 184, 166, .08);
    border: 1px solid rgba(20, 184, 166, .34);
    border-radius: 999px;
    color: var(--accent);
    font-size: .68rem;
    font-weight: 800;
    padding: .18rem .45rem;
}

.setlists-status-badge.is-archived {
    background: color-mix(in srgb, var(--muted) 8%, transparent);
    border-color: color-mix(in srgb, var(--muted) 30%, var(--line));
    color: var(--muted);
}

.setlists-status-badge.is-published {
    background: rgba(14, 165, 233, .09);
    border-color: rgba(14, 165, 233, .36);
    color: #38bdf8;
}

.setlists-status-badge.is-completed,
.setlists-status-badge.is-cancelled {
    background: color-mix(in srgb, var(--muted) 8%, transparent);
    border-color: color-mix(in srgb, var(--muted) 30%, var(--line));
    color: var(--muted);
}

.setlists-index-row-actions {
    align-items: center;
    display: flex;
    gap: .45rem;
}

.setlists-action-menu {
    position: relative;
}

.setlists-action-menu[open] {
    z-index: 35;
}

.setlists-action-menu > summary {
    align-items: center;
    appearance: none;
    background: var(--surface-soft);
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--text);
    cursor: pointer;
    display: inline-flex;
    font-weight: 800;
    justify-content: center;
    list-style: none;
    min-height: 38px;
    padding: .4rem .7rem;
    white-space: nowrap;
}

.setlists-action-menu > summary {
    font-size: 1rem;
    letter-spacing: .08em;
    min-width: 40px;
}

.setlists-action-menu > summary::-webkit-details-marker {
    display: none;
}

.setlists-action-menu[open] > summary {
    border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
}

.setlists-action-menu > div {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 9px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, .45);
    display: grid;
    max-height: min(320px, var(--setlists-menu-max-height, calc(100vh - 1rem)));
    min-width: 170px;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: .35rem;
    position: absolute;
    right: 0;
    top: calc(100% + .35rem);
    z-index: 25;
}

.setlists-action-menu.is-dropup > div {
    bottom: calc(100% + .35rem);
    top: auto;
}

.setlists-action-menu form,
.setlists-action-menu form button,
.setlists-action-menu > div > a,
.setlists-action-menu > div > button {
    width: 100%;
}

.setlists-action-menu form button,
.setlists-action-menu > div > a,
.setlists-action-menu > div > button {
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 6px;
    color: var(--text);
    cursor: pointer;
    font-weight: 750;
    padding: .65rem .7rem;
    text-align: left;
    text-decoration: none;
}

.setlists-action-menu form button:hover,
.setlists-action-menu form button:focus-visible,
.setlists-action-menu > div > a:hover,
.setlists-action-menu > div > a:focus-visible,
.setlists-action-menu > div > button:hover,
.setlists-action-menu > div > button:focus-visible {
    background: color-mix(in srgb, var(--accent) 9%, var(--surface-soft));
}

.setlists-action-menu form button.is-danger {
    color: #ff9da8;
}

.setlists-menu-rename[hidden] {
    display: none;
}

.setlists-menu-rename {
    border-bottom: 1px solid var(--line);
    display: grid;
    gap: .35rem;
    margin-bottom: .25rem;
    padding: .35rem .35rem .55rem;
}

.setlists-menu-rename label span {
    color: var(--muted);
    display: block;
    font-size: .68rem;
    font-weight: 750;
    margin-bottom: .25rem;
}

.setlists-menu-rename input {
    min-width: 0;
    width: 100%;
}

.setlists-pagination {
    align-items: center;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    margin-top: .15rem;
}

.setlists-pagination > :last-child {
    justify-self: end;
}

.setlists-pagination > span {
    color: var(--muted);
    font-size: .76rem;
}

.setlists-index-empty {
    min-height: 230px;
}

.setlists-builder-navigation {
    align-items: center;
    display: flex;
    gap: .8rem;
    justify-content: space-between;
}

.setlists-builder {
    display: grid;
    gap: .65rem;
}

.setlists-record-context {
    align-items: center;
    background: color-mix(in srgb, var(--surface-soft) 94%, transparent);
    border: 1px solid var(--line);
    border-left: 4px solid color-mix(in srgb, var(--accent) 68%, var(--line));
    border-radius: 10px;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: .75rem .9rem;
}

.setlists-record-context.is-gig {
    background: color-mix(in srgb, var(--accent) 7%, var(--surface-soft));
    border-color: color-mix(in srgb, var(--accent) 42%, var(--line));
}

.setlists-gig-timing {
    background: color-mix(in srgb, var(--surface-soft) 96%, transparent);
    border: 1px solid var(--line);
    border-left: 4px solid color-mix(in srgb, var(--accent) 55%, var(--line));
    border-radius: 10px;
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: .75rem .9rem;
}

.setlists-gig-timing.is-over,
.setlists-gig-timing.is-incomplete {
    border-left-color: #fb7185;
}

.setlists-gig-timing.is-tight {
    border-left-color: #fbbf24;
}

.setlists-gig-timing.is-on_time {
    border-left-color: var(--accent);
}

.setlists-gig-timing > div {
    display: grid;
    gap: .15rem;
}

.setlists-gig-timing span {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.setlists-gig-timing strong {
    color: var(--text);
    font-size: .88rem;
}

.setlists-publication {
    align-items: end;
    border-left: 4px solid #38bdf8;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(220px, .72fr) minmax(420px, 1.28fr);
    padding: 1rem;
}

.setlists-publication-copy,
.setlists-publication-form,
.setlists-publication-form label,
.setlists-publication-preview {
    display: grid;
    gap: .3rem;
}

.setlists-publication-copy > span,
.setlists-publication-form label > span {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.setlists-publication-copy strong {
    color: var(--text);
    font-size: 1rem;
}

.setlists-publication-copy small,
.setlists-publication-preview span,
.setlists-publication-readonly {
    color: var(--muted);
    font-size: .76rem;
    line-height: 1.35;
}

.setlists-publication-form {
    align-items: end;
    grid-template-columns: minmax(210px, 1fr) minmax(180px, .9fr) auto;
}

.setlists-publication-form select {
    min-height: 42px;
}

.setlists-publication-preview strong {
    color: var(--text);
    font-size: .84rem;
}

.setlists-publication-form .btn {
    min-height: 42px;
    white-space: nowrap;
}

.setlists-flow-status {
    align-items: center;
}

.setlists-flow-steps {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.setlists-flow-steps > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: 9px;
    color: var(--muted);
    font-size: .82rem;
    font-weight: 800;
}

.setlists-flow-steps > span b {
    display: grid;
    place-items: center;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: var(--surface-soft, rgba(127, 127, 127, .14));
    font-size: .7rem;
}

.setlists-flow-steps > span.is-complete {
    border-color: rgba(15, 160, 151, .42);
    color: var(--text);
    background: rgba(15, 160, 151, .09);
}

.setlists-flow-steps > span.is-complete b {
    color: #fff;
    background: var(--teal, #0fa097);
}

.setlists-record-context > div {
    display: grid;
    gap: .15rem;
}

.setlists-record-context strong {
    color: var(--text);
    font-size: .82rem;
}

.setlists-record-context span:not(.setlists-context-badge) {
    color: var(--muted);
    font-size: .76rem;
}

.setlists-context-badge {
    background: color-mix(in srgb, var(--surface-soft) 94%, transparent);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    flex: 0 0 auto;
    font-size: .68rem;
    font-weight: 800;
    padding: .28rem .55rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.setlists-context-badge.is-gig {
    background: color-mix(in srgb, var(--accent) 10%, var(--surface-soft));
    border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
    color: var(--accent);
}

.setlists-builder.is-gig-copy .setlists-builder-header {
    border-color: color-mix(in srgb, var(--accent) 48%, var(--line));
    box-shadow: inset 4px 0 0 color-mix(in srgb, var(--accent) 78%, transparent);
}

.setlists-current-assignments a small {
    color: var(--accent);
    margin-left: auto;
}

.setlists-mobile-only,
.setlists-mobile-sheet-close,
.setlists-library > .setlists-mobile-destination,
.setlists-section .setlists-section-add-songs {
    display: none;
}

.setlists-builder-header {
    align-items: center;
    display: grid;
    gap: .8rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: .85rem 1rem;
}

.setlists-builder-back {
    align-items: center;
    align-self: center;
    background: color-mix(in srgb, var(--surface-soft) 94%, transparent);
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--muted);
    display: inline-flex;
    font-size: .74rem;
    font-weight: 800;
    gap: .25rem;
    min-height: 32px;
    padding: .3rem .6rem;
    text-decoration: none;
    white-space: nowrap;
}

.setlists-builder-back:hover,
.setlists-builder-back:focus-visible {
    color: var(--accent);
}

.setlists-builder-header > .setlists-builder-actions {
    grid-column: 3;
    grid-row: 1;
}

.setlists-builder-header > .setlists-template-name {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

.setlists-builder-header > .setlists-health-disclosure {
    background: transparent;
    border: 0;
    border-radius: 0;
    border-top: 1px solid var(--line);
    grid-column: 1 / -1;
    grid-row: 2;
    min-width: 0;
}

.setlists-health-disclosure > .widget-accordion-toggle {
    min-height: 48px;
    padding: .55rem .2rem .45rem;
}

.setlists-health-disclosure .widget-accordion-title strong {
    color: var(--text);
    font-size: .86rem;
    letter-spacing: .045em;
}

.setlists-health-disclosure .widget-accordion-title span {
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.35;
    opacity: 1;
}

.setlists-health-disclosure .widget-accordion-title .setlists-health-summary-chips {
    align-items: center;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: .3rem .42rem !important;
    margin-top: .25rem;
}

.setlists-health-disclosure .widget-accordion-title .setlists-summary-chip {
    align-items: center;
    background: color-mix(in srgb, var(--surface-soft) 85%, transparent);
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--muted);
    display: inline-flex !important;
    font-size: .68rem;
    font-weight: 750;
    line-height: 1.15;
    margin: 0 !important;
    opacity: 1 !important;
    padding: .2rem .52rem;
    white-space: nowrap;
    width: auto !important;
}

.setlists-health-disclosure .setlists-summary-chip > span {
    color: inherit;
    display: inline;
    font: inherit;
    margin: 0;
    opacity: 1;
}

.setlists-summary-chip.is-primary {
    background: color-mix(in srgb, var(--accent) 10%, var(--surface-soft));
    border-color: color-mix(in srgb, var(--accent) 32%, var(--line));
    color: var(--text);
    font-weight: 850;
}

.setlists-summary-chip.is-warning {
    background: rgba(245, 158, 11, 0.12);
    border-color: rgba(245, 158, 11, 0.35);
    color: #f59e0b;
}

.setlists-summary-chip.is-note {
    background: color-mix(in srgb, var(--accent) 8%, var(--surface-soft));
    border-color: color-mix(in srgb, var(--accent) 26%, var(--line));
    color: var(--muted);
}

.setlists-summary-chip.is-muted {
    opacity: .75;
}

.setlists-summary-chip.is-timing.is-on_target,
.setlists-summary-chip.is-timing.is-on-target {
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(16, 185, 129, 0.35);
    color: #10b981;
}

.setlists-summary-chip.is-timing.is-under {
    background: rgba(245, 158, 11, 0.12);
    border-color: rgba(245, 158, 11, 0.35);
    color: #f59e0b;
}

.setlists-summary-chip.is-timing.is-over,
.setlists-summary-chip.is-timing.is-hard_over,
.setlists-summary-chip.is-timing.is-hard-over {
    background: rgba(244, 63, 94, 0.12);
    border-color: rgba(244, 63, 94, 0.35);
    color: #f43f5e;
}

[data-theme="light"] .setlists-summary-chip {
    background: #f1f5f9;
    border-color: #cbd5e1;
    color: #475569;
}

[data-theme="light"] .setlists-summary-chip.is-primary {
    background: #e0f2fe;
    border-color: #7dd3fc;
    color: #0369a1;
}

[data-theme="light"] .setlists-summary-chip.is-warning {
    background: #fef3c7;
    border-color: #fcd34d;
    color: #b45309;
}

[data-theme="light"] .setlists-summary-chip.is-note {
    background: #ecfeff;
    border-color: #a5f3fc;
    color: #0e7490;
}

[data-theme="light"] .setlists-summary-chip.is-timing.is-on_target,
[data-theme="light"] .setlists-summary-chip.is-timing.is-on-target {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #047857;
}

[data-theme="light"] .setlists-summary-chip.is-timing.is-under {
    background: #fef3c7;
    border-color: #fcd34d;
    color: #b45309;
}

[data-theme="light"] .setlists-summary-chip.is-timing.is-over,
[data-theme="light"] .setlists-summary-chip.is-timing.is-hard_over,
[data-theme="light"] .setlists-summary-chip.is-timing.is-hard-over {
    background: #fee2e2;
    border-color: #fca5a5;
    color: #b91c1c;
}

.setlists-health-disclosure > .widget-accordion-panel > .widget-accordion-panel-inner {
    border-top: 1px solid var(--line);
}

.setlists-health-disclosure .setlists-health {
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: none;
    padding: .7rem .2rem .2rem;
    position: static;
}

.setlists-health-disclosure .setlists-timing-warnings {
    grid-column: 1 / -1;
}

.setlists-health-disclosure .setlists-health-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.setlists-template-name {
    max-width: 100%;
}

.setlists-template-name-form > div {
    align-items: center;
    display: flex;
    gap: .65rem;
}

.setlists-template-name-view {
    align-items: center;
    display: grid;
    gap: .65rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.setlists-template-name-view > div {
    min-width: 0;
}

.setlists-builder-scope b {
    color: inherit;
    font-weight: 800;
}

.setlists-template-name-view span {
    color: var(--accent);
    display: block;
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.setlists-template-name-view strong {
    color: var(--text);
    display: block;
    font-family: "Outfit", sans-serif;
    font-size: 1.3rem;
    line-height: 1.15;
    margin-top: .15rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.setlists-template-name-view .setlists-builder-scope {
    color: var(--muted);
    display: block;
    font-size: .7rem;
    font-weight: 650;
    letter-spacing: 0;
    margin-top: .2rem;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: none;
    white-space: nowrap;
}

.setlists-edit-trigger {
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
    flex: 0 0 auto;
    padding: .25rem;
}

.setlists-edit-trigger:focus-visible {
    outline: 2px solid rgba(34, 211, 238, .65);
    outline-offset: 2px;
}

.setlists-edit-trigger:hover .song-edit-hint,
.setlists-edit-trigger:focus-visible .song-edit-hint {
    background: rgba(34, 211, 238, .16);
    border-color: rgba(34, 211, 238, .42);
    opacity: 1;
}

.setlists-edit-trigger svg,
.setlists-edit-trigger .setlists-settings-icon {
    display: block;
    fill: none;
    height: 16px;
    overflow: visible;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.65;
    transform: rotate(0deg);
    transform-origin: center;
    transition: transform .36s cubic-bezier(.22, .8, .28, 1);
    width: 16px;
}

.setlists-edit-trigger .setlists-settings-icon circle {
    stroke-width: 1.9;
}

.setlists-section.is-settings-open .setlists-edit-trigger .setlists-settings-icon {
    transform: rotate(135deg);
}

.setlists-template-name-view[hidden],
.setlists-template-name-form[hidden],
.setlists-section-name-form[hidden] {
    display: none;
}

.setlists-save-state {
    align-items: center;
    background: rgba(20, 184, 166, .08);
    border: 1px solid rgba(20, 184, 166, .3);
    border-radius: 999px;
    color: var(--muted);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .7rem;
    font-weight: 750;
    gap: .28rem;
    min-height: 26px;
    padding: .18rem .48rem;
    white-space: nowrap;
}

.setlists-save-state span {
    color: var(--accent);
}

.setlists-save-state.is-saving span {
    animation: setlists-pulse .8s ease-in-out infinite alternate;
}

.setlists-save-state.is-dirty {
    background: rgba(250, 204, 21, .07);
    border-color: rgba(250, 204, 21, .32);
    color: #e7d791;
}

.setlists-save-state.is-dirty span {
    color: #facc15;
}

.setlists-save-state.is-error {
    background: rgba(244, 63, 94, .08);
    border-color: rgba(244, 63, 94, .35);
    color: #ff9da8;
}

.setlists-save-state.is-demo {
    background: color-mix(in srgb, #8b5cf6 10%, transparent);
    border-color: color-mix(in srgb, #a78bfa 45%, var(--line));
    color: color-mix(in srgb, #ddd6fe 88%, var(--muted));
}

.setlists-save-state.is-demo span {
    color: #c4b5fd;
}

.setlists-conflict-reload {
    flex: 0 0 auto;
    font-size: .72rem;
    min-height: 28px;
    padding: .25rem .55rem;
}

.setlists-conflict-reload[hidden] {
    display: none;
}

.setlists-planning-coverage {
    align-items: center;
    background: color-mix(in srgb, var(--accent) 7%, var(--surface-soft));
    border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--line));
    border-radius: 9px;
    display: grid;
    gap: .65rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .65rem;
}

.setlists-planning-coverage > div {
    display: grid;
    gap: .12rem;
    min-width: 0;
}

.setlists-planning-coverage span,
.setlists-planning-coverage small {
    color: var(--muted);
    font-size: .7rem;
}

.setlists-planning-coverage strong {
    color: var(--text);
    font-size: .82rem;
}

.setlists-planning-coverage .btn {
    font-size: .72rem;
    justify-self: start;
    min-height: 30px;
    padding: .3rem .55rem;
    width: auto;
}

.setlists-advisor-callout {
    background: color-mix(in srgb, #8b5cf6 8%, var(--surface-soft));
    border: 1px solid color-mix(in srgb, #a78bfa 30%, var(--line));
    border-radius: 9px;
    display: grid;
    gap: .65rem;
    padding: .7rem;
}

.setlists-advisor-callout > div {
    display: grid;
    gap: .12rem;
}

.setlists-advisor-callout span,
.setlists-advisor-callout small {
    color: var(--muted);
    font-size: .7rem;
    line-height: 1.35;
}

.setlists-advisor-callout span {
    color: var(--violet-text, #c4b5fd);
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.setlists-advisor-callout strong {
    color: var(--text);
    font-size: .84rem;
}

.setlists-advisor-callout .btn {
    justify-self: stretch;
    width: 100%;
}

.setlists-workspace-toolbar {
    align-items: center;
    display: flex;
    justify-content: space-between;
    padding: .1rem 0;
}

.btn.setlists-advisor-launch {
    background: #7c3aed;
    border-color: #8b5cf6;
    box-shadow: 0 5px 14px color-mix(in srgb, #7c3aed 30%, transparent);
    color: #fff;
    gap: .35rem;
    min-height: 36px;
    padding: .4rem .7rem;
    white-space: nowrap;
}

.btn.setlists-advisor-launch:hover,
.btn.setlists-advisor-launch:focus-visible {
    background: #6d28d9;
    border-color: #a78bfa;
    color: #fff;
}

.btn.setlists-advisor-launch > span {
    color: #ede9fe;
}

.setlists-workspace-toolbar > strong {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 750;
    overflow: hidden;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.setlists-panel-toggles {
    align-items: center;
    display: flex;
    gap: .4rem;
}

.setlists-panel-toggles .btn {
    font-size: .7rem;
    min-height: 32px;
    padding: .35rem .55rem;
    white-space: nowrap;
}

.setlists-workspace {
    align-items: start;
    display: grid;
    gap: .8rem;
    grid-template-columns: minmax(320px, 360px) minmax(0, 1fr);
    transition: grid-template-columns .2s ease;
}

.setlists-workspace.is-library-collapsed {
    grid-template-columns: 54px minmax(0, 1fr);
}

.setlists-collapsed-panel-trigger {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    color: var(--muted);
    cursor: pointer;
    display: none;
    flex-direction: column;
    gap: .55rem;
    height: 100%;
    justify-content: flex-start;
    min-height: 180px;
    padding: .6rem 0;
    width: 100%;
}

.setlists-collapsed-panel-trigger > span {
    align-items: center;
    background: color-mix(in srgb, var(--accent) 10%, var(--surface-soft));
    border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
    border-radius: 999px;
    color: var(--accent);
    display: inline-flex;
    font-size: 1rem;
    height: 30px;
    justify-content: center;
    width: 30px;
}

.setlists-collapsed-panel-trigger > small {
    font-size: .64rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
    writing-mode: vertical-rl;
}

.setlists-workspace.is-library-collapsed > .setlists-library {
    height: auto;
    min-height: 260px;
    padding: .35rem;
}

.setlists-workspace.is-library-collapsed > .setlists-library > :not(.setlists-collapsed-panel-trigger) {
    display: none;
}

.setlists-workspace.is-library-collapsed > .setlists-library > .setlists-collapsed-panel-trigger {
    display: flex;
}

.setlists-workspace.is-table-view {
    display: block;
}

.setlists-workspace.is-table-view > .setlists-library,
.setlists-workspace.is-table-view > .setlists-canvas {
    display: none;
}

.setlists-library {
    position: sticky;
    top: 1rem;
}

.setlists-table-view {
    display: grid;
    gap: .8rem;
    min-width: 0;
    padding: 1rem;
}

.setlists-table-view[hidden] {
    display: none;
}

.setlists-table-view > header {
    align-items: start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.setlists-table-view > header h3,
.setlists-table-view > header p {
    margin: 0;
}

.setlists-table-view > header p:not(.eyebrow),
.setlists-table-view > header > span {
    color: var(--muted);
    font-size: .74rem;
}

.setlists-table-view > header > span {
    background: color-mix(in srgb, var(--accent) 8%, var(--surface-soft));
    border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
    border-radius: 999px;
    color: var(--accent);
    flex: 0 0 auto;
    font-weight: 800;
    padding: .35rem .6rem;
    white-space: nowrap;
}

.setlists-table-scroll {
    border: 1px solid var(--line);
    border-radius: 9px;
    max-height: min(72vh, 760px);
    max-width: 100%;
    overflow: auto;
    scrollbar-gutter: stable;
}

.setlists-table-scroll table {
    border-collapse: separate;
    border-spacing: 0;
    font-size: .72rem;
    min-width: 1660px;
    width: 100%;
}

.setlists-table-scroll th,
.setlists-table-scroll td {
    background: var(--panel);
    border-bottom: 1px solid var(--line);
    color: var(--muted);
    padding: .52rem .6rem;
    text-align: left;
    vertical-align: top;
    white-space: nowrap;
}

.setlists-table-scroll thead th {
    background: color-mix(in srgb, var(--surface-inset) 96%, var(--panel));
    color: var(--text);
    font-size: .63rem;
    font-weight: 850;
    letter-spacing: .045em;
    position: sticky;
    text-transform: uppercase;
    top: 0;
    z-index: 3;
}

.setlists-table-scroll thead th:first-child,
.setlists-table-scroll tbody td:first-child {
    left: 0;
    position: sticky;
    z-index: 2;
}

.setlists-table-scroll thead th:nth-child(2),
.setlists-table-scroll tbody td:nth-child(2) {
    left: 104px;
    position: sticky;
    z-index: 2;
}

.setlists-table-scroll thead th:nth-child(3),
.setlists-table-scroll tbody td:nth-child(3) {
    box-shadow: 8px 0 12px -12px rgba(0, 0, 0, .8);
    left: 146px;
    position: sticky;
    z-index: 2;
}

.setlists-table-scroll thead th:first-child,
.setlists-table-scroll thead th:nth-child(2),
.setlists-table-scroll thead th:nth-child(3) {
    z-index: 4;
}

.setlists-table-set {
    color: var(--text) !important;
    font-weight: 800;
    min-width: 104px;
    width: 104px;
}

.setlists-table-position {
    color: var(--text) !important;
    font-weight: 850;
    min-width: 42px;
    width: 42px;
}

.setlists-table-song-cell {
    max-width: 190px;
    min-width: 140px;
    width: 165px;
}

.setlists-table-song {
    display: grid;
    gap: .08rem;
    max-width: 100%;
    overflow: hidden;
}

.setlists-table-song strong {
    color: var(--text);
    display: block;
    font-size: .76rem;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.setlists-table-song small {
    color: var(--muted);
    display: block;
    font-size: .66rem;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.setlists-table-momentum {
    color: var(--accent) !important;
    font-weight: 850;
}

.setlists-table-calculated {
    color: #c4b5fd !important;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
}

.setlists-table-planning {
    max-width: 280px;
    min-width: 180px;
    white-space: normal !important;
}

.setlists-table-section-row th {
    background: color-mix(in srgb, var(--accent) 9%, var(--surface-soft));
    border-bottom-color: color-mix(in srgb, var(--accent) 30%, var(--line));
    color: var(--text);
    font-size: .72rem;
    font-weight: 850;
    left: auto !important;
    letter-spacing: .02em;
    position: relative !important;
    text-transform: none;
    z-index: 1 !important;
}

.setlists-table-non-song {
    color: var(--muted);
    font-style: italic;
}

.setlists-library {
    display: grid;
    gap: .75rem;
    grid-template-rows: auto auto auto minmax(0, 1fr);
    height: calc(100vh - 2rem);
    max-height: 760px;
    min-height: 480px;
    overflow: hidden;
    padding: 1rem;
}

.setlists-health {
    max-height: calc(100vh - 2rem);
}

.setlists-library > header {
    display: grid;
    gap: .55rem;
    grid-template-columns: minmax(0, 1fr);
}

.setlists-library-title-row {
    align-items: start;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    min-width: 0;
}

.setlists-library h3,
.setlists-library p,
.setlists-health h3,
.setlists-health p {
    margin: 0;
}

.setlists-library p,
.setlists-library > header > span,
.setlists-library-badges > span {
    color: var(--muted);
    font-size: .78rem;
}

.setlists-library > header > span,
.setlists-library-badges > span {
    background: rgba(20, 184, 166, .08);
    border: 1px solid rgba(20, 184, 166, .34);
    border-radius: 999px;
    color: var(--accent);
    padding: .25rem .5rem;
    white-space: nowrap;
}

.setlists-library-header-actions {
    align-items: center;
    display: flex;
    gap: .45rem;
}

.setlists-library-badges {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    min-width: 0;
}

.setlists-library-badges .setlists-library-ignored {
    background: color-mix(in srgb, var(--danger-text) 8%, transparent);
    border-color: color-mix(in srgb, var(--danger-text) 35%, var(--line));
    color: var(--danger-text);
}

.setlists-library-ignored.is-empty {
    display: none;
}

.setlists-panel-collapse {
    appearance: none;
    background: transparent;
    border: 0;
    border-radius: 6px;
    color: var(--muted);
    cursor: pointer;
    font-size: .7rem;
    font-weight: 800;
    min-height: 28px;
    padding: .25rem .35rem;
}

.setlists-panel-collapse:hover,
.setlists-panel-collapse:focus-visible {
    background: color-mix(in srgb, var(--accent) 8%, var(--surface-soft));
    color: var(--accent);
}

.setlists-health-heading {
    align-items: start;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
}

.setlists-health-heading-actions {
    align-items: center;
    display: flex;
    gap: .35rem;
}

.setlists-song-list {
    align-content: start;
    display: grid;
    gap: .45rem;
    grid-auto-rows: max-content;
    min-height: 0;
    overscroll-behavior: contain;
    overflow-x: hidden;
    overflow-y: auto;
    padding-right: .15rem;
    scrollbar-gutter: stable;
}

.setlists-song,
.setlists-item {
    align-items: center;
    background: color-mix(in srgb, var(--surface-soft) 94%, transparent);
    border: 1px solid var(--line);
    border-radius: 9px;
    display: grid;
    gap: .6rem;
    min-height: 62px;
    padding: .65rem .7rem;
}

.setlists-song {
    align-items: start;
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 56px;
    padding: .55rem .6rem;
    position: relative;
}

.setlists-song > div:not(.setlists-song-actions) {
    min-width: 0;
    padding-right: 4.35rem;
}

.setlists-item {
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    position: relative;
}

.setlists-item.is-sequenced {
    background: linear-gradient(90deg, color-mix(in srgb, #8b5cf6 16%, var(--surface-soft)), var(--surface-soft));
    border-color: color-mix(in srgb, #8b5cf6 55%, var(--line));
    border-left: 4px solid #8b5cf6;
    box-shadow: 0 0 14px color-mix(in srgb, #8b5cf6 18%, transparent);
}

.setlists-item.is-sequenced[data-sequence-rule="required"] {
    border-left-color: #c084fc;
    box-shadow: 0 0 16px color-mix(in srgb, #c084fc 24%, transparent);
}

.setlists-item.is-sequenced.has-sequence-next::after {
    background: #8b5cf6;
    bottom: -.45rem;
    content: "";
    left: 1rem;
    position: absolute;
    top: calc(100% - 1px);
    width: 2px;
    z-index: 2;
}

.setlists-song[draggable="true"],
.setlists-item[draggable="true"] {
    cursor: grab;
}

.setlists-song.is-dragging {
    opacity: .4;
}

.setlists-item.is-dragging {
    display: none;
}

.setlists-song.is-filtered {
    display: none;
}

.setlists-song.is-added {
    background: color-mix(in srgb, var(--surface-soft) 97%, transparent);
}

.setlists-song.is-added > .setlists-drag-handle,
.setlists-song.is-added > div:not(.setlists-song-actions) {
    opacity: .52;
}

.setlists-song.is-added .setlists-drag-handle {
    color: var(--muted);
}

.setlists-song.is-hard-no {
    background: color-mix(in srgb, var(--danger-text) 5%, var(--surface-soft));
    border-color: color-mix(in srgb, var(--danger-text) 28%, var(--line));
}

.setlists-song:has(.setlists-song-actions button:hover),
.setlists-song:has(.setlists-song-actions button:focus-visible) {
    z-index: 5;
}

.setlists-song-actions {
    align-items: center;
    display: flex;
    gap: .3rem;
    position: absolute;
    right: .45rem;
    top: .45rem;
}

.setlists-song-actions [data-setlist-hard-no][aria-pressed="true"] {
    border-color: color-mix(in srgb, var(--danger-text) 42%, var(--line));
    color: var(--danger-text);
}

.setlists-advisor-exclude,
.setlists-song-toggle {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 1px solid var(--line);
    border-radius: 8px;
    color: var(--muted);
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 auto;
    height: 28px;
    justify-content: center;
    padding: 0;
    position: relative;
    width: 28px;
}

.setlists-song-toggle {
    color: var(--accent);
    font-family: "Outfit", sans-serif;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1;
}

.setlists-advisor-exclude svg {
    fill: currentColor;
    height: 16px;
    width: 16px;
}

.setlists-advisor-exclude:hover,
.setlists-advisor-exclude:focus-visible,
.setlists-song-toggle:hover,
.setlists-song-toggle:focus-visible {
    background: color-mix(in srgb, var(--danger-text) 8%, var(--surface-soft));
    border-color: color-mix(in srgb, var(--danger-text) 36%, var(--line));
    color: var(--danger-text);
}

.setlists-song-toggle:hover,
.setlists-song-toggle:focus-visible {
    background: color-mix(in srgb, var(--accent) 9%, var(--surface-soft));
    border-color: color-mix(in srgb, var(--accent) 42%, var(--line));
    color: var(--accent);
}

.setlists-advisor-exclude::after,
.setlists-song-toggle::after {
    background: #060b14;
    border: 1px solid var(--line);
    border-radius: 6px;
    bottom: auto;
    color: var(--text);
    content: attr(data-tooltip);
    font-size: .66rem;
    font-weight: 700;
    right: 0;
    max-width: 180px;
    opacity: 0;
    padding: .35rem .45rem;
    pointer-events: none;
    position: absolute;
    transform: translateY(3px);
    transition: opacity .15s ease, transform .15s ease;
    top: calc(100% + .4rem);
    visibility: hidden;
    white-space: nowrap;
    z-index: 30;
}

.setlists-advisor-exclude:hover::after,
.setlists-advisor-exclude:focus-visible::after,
.setlists-song-toggle:hover::after,
.setlists-song-toggle:focus-visible::after {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
}

.setlists-song strong,
.setlists-item strong {
    color: var(--text);
    display: block;
    font-size: .88rem;
    line-height: 1.2;
}

/* Keep long My Songs titles inside their column without displacing actions. */
.setlists-song > div:not(.setlists-song-actions) > strong {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    max-height: 2.4em;
    overflow: hidden;
    overflow-wrap: anywhere;
}

.setlists-song > div:not(.setlists-song-actions) > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.setlists-song span:not(.setlists-drag-handle),
.setlists-item span:not(.setlists-drag-handle) {
    color: var(--muted);
    display: block;
    font-size: .72rem;
    line-height: 1.3;
    margin-top: .15rem;
}

.setlists-item .setlists-item-duration {
    color: var(--text);
    font-family: "Outfit", sans-serif;
    font-size: .9rem;
    font-weight: 800;
    line-height: 1;
    margin: 0;
    white-space: nowrap;
}

.setlists-item .setlists-sequence-badge {
    align-items: center;
    background: color-mix(in srgb, #8b5cf6 15%, transparent);
    border: 1px solid color-mix(in srgb, #8b5cf6 55%, var(--line));
    border-radius: 999px;
    color: color-mix(in srgb, #c4b5fd 88%, var(--text));
    display: inline-flex;
    font-size: .65rem;
    font-weight: 800;
    gap: .3rem;
    letter-spacing: .025em;
    margin-top: .3rem;
    padding: .2rem .42rem;
    width: max-content;
}

.setlists-item .setlists-sequence-badge b {
    font-size: .78rem;
    line-height: 1;
}

.setlists-item .setlists-sequence-badge small {
    align-items: center;
    background: color-mix(in srgb, #8b5cf6 28%, transparent);
    border-radius: 999px;
    display: inline-flex;
    font-size: .58rem;
    height: 1rem;
    justify-content: center;
    min-width: 1rem;
}

.setlists-transition-trigger {
    color: var(--accent);
    font-size: .95rem;
}

.setlists-item.is-sequenced .setlists-transition-trigger {
    border-color: color-mix(in srgb, #8b5cf6 60%, var(--line));
    color: #a78bfa;
}

.setlists-drag-handle {
    -webkit-touch-callout: none;
    align-items: center;
    align-self: stretch;
    color: var(--accent);
    cursor: grab;
    display: flex;
    font-size: .9rem;
    justify-content: center;
    letter-spacing: -4px;
    min-height: 44px;
    min-width: 44px;
    opacity: .82;
    touch-action: none;
    user-select: none;
}

.setlists-item.is-touch-dragging,
.setlists-section.is-touch-dragging {
    display: none;
}

.setlists-touch-ghost {
    background: color-mix(in srgb, var(--panel) 96%, #071018);
    border: 1px solid rgba(20, 184, 166, .68);
    border-radius: 9px;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .58), 0 0 0 2px rgba(20, 184, 166, .12);
    left: 0;
    margin: 0;
    max-height: 88px;
    opacity: .96;
    overflow: hidden;
    pointer-events: none;
    position: fixed;
    top: 0;
    transform: translate3d(-200vw, -200vh, 0);
    will-change: transform;
    z-index: 70;
}

.setlists-touch-ghost.is-section {
    min-height: 64px;
}

body.setlists-touch-reordering {
    cursor: grabbing;
    user-select: none;
}

.setlists-song .btn,
.setlists-item .btn {
    font-size: .76rem;
    min-height: 32px;
    padding: .3rem .5rem;
}

.setlists-canvas {
    display: grid;
    gap: .75rem;
    min-width: 0;
}

.setlists-section {
    border-left: 3px solid color-mix(in srgb, var(--accent) 42%, var(--line));
    overflow: hidden;
    padding: 0;
    transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.setlists-section.is-section-dragging {
    display: none;
}

.setlists-section-drop-placeholder {
    background: color-mix(in srgb, var(--accent) 6%, var(--surface-soft));
    border: 1px dashed color-mix(in srgb, var(--accent) 72%, var(--line));
    border-left: 3px solid color-mix(in srgb, var(--accent) 78%, var(--line));
    border-radius: 10px;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent);
    min-height: 72px;
    transition: height .18s ease, border-color .18s ease, background .18s ease;
}

.setlists-section[data-accepts-songs="1"].is-target {
    background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--panel)) 0%, var(--panel) 68%);
    border-left-color: var(--accent);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 62%, transparent),
        0 0 26px color-mix(in srgb, var(--accent) 22%, transparent),
        inset 0 0 32px color-mix(in srgb, var(--accent) 5%, transparent),
        0 12px 30px rgba(0, 0, 0, .16);
    transform: translateY(-1px);
}

.setlists-section.is-drop-target {
    background: color-mix(in srgb, var(--accent) 7%, var(--panel));
    border-color: var(--accent);
}

.setlists-section.is-break {
    background: var(--surface-soft);
    border: 1px solid rgba(148, 163, 184, .14);
    border-left-color: color-mix(in srgb, #9ca3af 48%, var(--line));
    border-left-style: solid;
    border-left-width: 3px;
    border-radius: 10px;
    grid-column: 1 / -1;
}

.setlists-section.is-show-note {
    border-left-color: color-mix(in srgb, #a78bfa 65%, var(--line));
}

.setlists-section-heading {
    align-items: center;
    border-bottom: 1px solid var(--line);
    display: flex;
}

.setlists-section.is-break > .setlists-section-heading {
    border-bottom: 0;
}

.setlists-section-order-controls {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: .25rem;
    padding-left: .65rem;
}

.setlists-section-order-controls .btn {
    min-height: 30px;
    padding: .2rem .45rem;
}

.setlists-section-drag-handle {
    color: var(--accent);
    cursor: grab;
    font-size: .92rem;
    letter-spacing: -4px;
    opacity: .78;
    padding: .35rem .25rem;
    touch-action: none;
}

.setlists-section-drag-handle:active {
    cursor: grabbing;
}

.setlists-section-heading > .widget-accordion-toggle {
    flex: 1 1 auto;
    gap: .8rem;
    min-width: 0;
    padding: .75rem .9rem;
    width: auto;
}

.setlists-section-heading > .widget-accordion-toggle .widget-accordion-title,
.setlists-break-summary .widget-accordion-title {
    min-width: 0;
}

.setlists-break-summary {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    gap: .8rem;
    justify-content: space-between;
    min-width: 0;
    padding: .75rem .9rem;
}

.setlists-section-heading > .widget-accordion-toggle .widget-accordion-title > span,
.setlists-break-summary .widget-accordion-title > span {
    color: var(--accent);
    display: block;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .08em;
    margin: 0;
}

.setlists-section-heading > .widget-accordion-toggle .widget-accordion-title > strong,
.setlists-break-summary .widget-accordion-title > strong {
    color: var(--text);
    font-size: 1rem;
    letter-spacing: normal;
    margin: .1rem 0 0;
    text-transform: none;
}

.setlists-section-tail {
    align-items: center;
    display: flex;
    flex: 0 1 auto;
    gap: .7rem;
    justify-content: flex-end;
    min-width: 0;
}

.setlists-section-tail > span:first-child {
    color: var(--muted);
    display: block;
    font-size: .8rem;
    white-space: nowrap;
}

.setlists-section-tail .setlists-section-schedule {
    color: var(--accent);
    font-size: .72rem;
    font-weight: 800;
}

.setlists-section.is-open > .setlists-section-heading > .widget-accordion-toggle .widget-accordion-icon {
    background: rgba(6, 182, 212, .12);
    border-color: rgba(6, 182, 212, .35);
}

.setlists-section-edit {
    flex: 0 0 auto;
    margin-right: .65rem;
    order: 3;
}

.setlists-section-name-form {
    align-items: end;
    background: color-mix(in srgb, var(--accent) 5%, var(--surface-soft));
    border-bottom: 1px solid var(--line);
    display: grid;
    gap: .4rem;
    grid-template-columns: minmax(0, 1fr);
    padding: .7rem .9rem;
}

.setlists-section-settings-panel {
    display: grid;
    grid-template-rows: 0fr;
    opacity: .35;
    transition: grid-template-rows .32s ease, opacity .24s ease;
}

.setlists-section-settings-panel-inner {
    min-height: 0;
    overflow: hidden;
}

.setlists-section.is-settings-open > .setlists-section-settings-panel {
    grid-template-rows: 1fr;
    opacity: 1;
}

.setlists-section-name-form label {
    color: var(--text);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.setlists-section-fields {
    display: grid;
    gap: .55rem;
    grid-template-columns: minmax(0, 1fr);
}

.setlists-section-fields label > span {
    display: block;
    line-height: 1.2;
    margin-bottom: .35rem;
}

.setlists-section-fields input,
.setlists-section-fields textarea {
    min-height: 38px;
    min-width: 0;
    padding: .5rem .65rem;
    width: 100%;
}

.setlists-section-timing-fields {
    grid-column: 1 / -1;
}

.setlists-section-timing-fields label,
.setlists-add-timing-fields label {
    min-width: 0;
}

.setlists-section-timing-fields label > span,
.setlists-add-timing-fields label > span {
    display: block;
    line-height: 1.2;
    margin-bottom: .32rem;
}

.setlists-section-fields textarea,
.setlists-add-section textarea {
    resize: vertical;
}

.setlists-section-notes-field {
    grid-column: 1 / -1;
}

.setlists-show-note-copy {
    background: color-mix(in srgb, #a78bfa 6%, var(--surface-soft));
    border: 1px solid color-mix(in srgb, #a78bfa 22%, var(--line));
    border-radius: 8px;
    color: var(--text);
    font-size: .82rem;
    line-height: 1.5;
    margin: .65rem;
    padding: .7rem .8rem;
    white-space: pre-wrap;
}

.setlists-section-form-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.setlists-section-form-actions .btn {
    font-size: .76rem;
    min-height: 34px;
    padding: .4rem .72rem;
}

.setlists-remove-section {
    margin-left: auto;
}

.setlists-remove-warning {
    color: #ff9da8;
    flex: 1 0 100%;
    font-size: .76rem;
    line-height: 1.35;
    text-align: right;
}

.setlists-remove-warning[hidden] {
    display: none;
}

.setlists-items {
    display: grid;
    gap: .4rem;
    min-height: 68px;
    padding: .55rem;
}

.setlists-section-empty {
    align-items: center;
    border: 1px dashed color-mix(in srgb, var(--accent) 38%, var(--line));
    border-radius: 8px;
    color: var(--muted);
    display: flex;
    font-size: .8rem;
    justify-content: center;
    min-height: 58px;
}

.setlists-drop-placeholder {
    background: color-mix(in srgb, var(--accent) 7%, var(--surface-soft));
    border: 1px dashed color-mix(in srgb, var(--accent) 68%, var(--line));
    border-radius: 9px;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent);
    min-height: 62px;
}

.setlists-drop-placeholder.is-required-link-blocked {
    background: color-mix(in srgb, #fb7185 12%, transparent);
    border-color: #fb7185;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, #fb7185 45%, transparent);
}

.setlists-drop-placeholder.is-song-insertion {
    background: var(--accent);
    border: 0;
    border-radius: 3px;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 15%, transparent);
    height: 4px;
    min-height: 4px;
    margin-block: .3rem;
    pointer-events: none;
}

.setlists-item.is-settling {
    animation: setlists-settle .24s cubic-bezier(.2, .8, .2, 1);
}

.setlists-section.is-section-settling {
    animation: setlists-settle .28s cubic-bezier(.2, .8, .2, 1);
}

.setlists-item-actions {
    display: flex;
    gap: .3rem;
}

.setlists-item-actions .btn {
    height: 32px;
    min-height: 32px;
    min-width: 32px;
    padding: 0 .42rem;
}

.setlists-item-actions [data-setlist-remove] {
    font-size: 0;
    padding: 0;
    width: 32px;
}

.setlists-item-actions [data-setlist-remove]::before {
    content: "×";
    font-size: 1rem;
    line-height: 1;
}

.setlists-item-remove-warning {
    color: #ff9da8;
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.25;
}

.setlists-item-remove-warning[hidden] {
    display: none;
}

.setlists-item-actions [data-setlist-remove][data-confirming="1"] {
    border-color: color-mix(in srgb, var(--danger, #ff405f) 70%, var(--line));
    color: #ff9da8;
    font-size: .68rem;
    padding: 0 .5rem;
    width: auto;
}

.setlists-item-actions [data-setlist-remove][data-confirming="1"]::before {
    content: none;
}

.setlists-add-section {
    display: grid;
    gap: .5rem;
    grid-template-columns: minmax(150px, .35fr) minmax(240px, 1fr);
    padding: .7rem;
}

.setlists-add-section > .setlists-add-timing-fields,
.setlists-add-section > .setlists-add-break-fields,
.setlists-add-section > .setlists-add-show-note-fields,
.setlists-add-section > button {
    grid-column: 1 / -1;
}

.setlists-add-section > button {
    justify-self: start;
}

.setlists-add-show-note-fields {
    display: grid;
    gap: .5rem;
    grid-column: 1 / -1;
    grid-template-columns: minmax(140px, .35fr) minmax(0, 1fr);
}

.setlists-add-show-note-fields[hidden] {
    display: none;
}

.setlists-add-break-fields {
    display: grid;
    gap: .5rem;
    grid-column: 1 / -1;
    grid-template-columns: minmax(180px, 320px);
}

.setlists-add-break-fields[hidden] {
    display: none;
}

.setlists-add-break-fields label,
.setlists-add-show-note-fields label {
    color: var(--text);
    display: grid;
    font-size: .7rem;
    font-weight: 800;
    gap: .3rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.setlists-add-section-disclosure {
    background: transparent;
    border: 0;
    overflow: visible;
}

.setlists-add-section-disclosure.widget-accordion {
    --bg-accent: var(--success-text, #10b981);
    background: color-mix(in srgb, var(--success-text, #10b981) 4%, var(--panel));
    border-color: color-mix(in srgb, var(--success-text, #10b981) 35%, var(--line));
    border-left: 4px solid var(--success-text, #10b981);
}
.setlists-add-section-disclosure > .widget-accordion-toggle .widget-accordion-title strong { color: var(--success-text, #10b981); }

.setlists-add-section-disclosure > .widget-accordion-toggle {
    display: none;
}

.setlists-add-section-disclosure > .widget-accordion-panel {
    display: block;
    opacity: 1;
}

.setlists-add-section-disclosure > .widget-accordion-panel > .widget-accordion-panel-inner {
    overflow: visible;
}

.setlists-health {
    display: grid;
    gap: .8rem;
    padding: 1rem;
}

.setlists-health-metrics {
    display: grid;
    gap: .5rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.setlists-health-metrics > div {
    background: color-mix(in srgb, var(--surface-soft) 94%, transparent);
    border: 1px solid var(--line);
    border-radius: 9px;
    padding: .7rem;
}

.setlists-health-metrics span {
    color: var(--muted);
    display: block;
    font-size: .72rem;
    line-height: 1.35;
}

.setlists-health-metrics strong {
    color: var(--text);
    display: block;
    font-family: "Outfit", sans-serif;
    font-size: 1.35rem;
    margin-top: .15rem;
}

.setlists-timing-warnings {
    display: block;
}

.setlists-timing-warnings:empty {
    display: none;
}

.setlists-warning-summary {
    background: color-mix(in srgb, var(--surface-soft) 95%, transparent);
    border: 1px solid var(--line);
    border-left: 3px solid color-mix(in srgb, var(--accent) 65%, var(--line));
    border-radius: 8px;
    padding: .65rem .7rem;
}

.setlists-warning-summary.is-warning {
    border-left-color: #fbbf24;
}

.setlists-warning-summary.is-error {
    border-left-color: #fb7185;
}

.setlists-warning-summary > strong {
    color: var(--text);
    display: block;
    font-size: .8rem;
    margin-bottom: .35rem;
}

.setlists-warning-summary ul {
    display: grid;
    gap: .3rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.setlists-warning-summary li {
    align-items: baseline;
    display: grid;
    gap: .25rem;
    grid-template-columns: minmax(90px, auto) minmax(0, 1fr);
}

.setlists-warning-summary li b {
    color: var(--text);
    font-size: .72rem;
}

.setlists-warning-summary li span {
    color: var(--muted);
    font-size: .72rem;
    line-height: 1.35;
}

@media (max-width: 620px) {
    .setlists-warning-summary li {
        gap: .08rem;
        grid-template-columns: minmax(0, 1fr);
    }
}

.setlists-transition-dialog .setlists-assign-form > label small,
.setlists-link-choice small {
    color: var(--muted);
    display: block;
    font-size: .76rem;
    margin-top: .25rem;
}

.setlists-link-choice {
    align-items: flex-start;
    background: color-mix(in srgb, var(--accent) 7%, var(--surface-soft));
    border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
    border-radius: 9px;
    display: flex;
    gap: .65rem;
    padding: .75rem;
}

.setlists-link-choice[hidden],
.setlists-transition-dialog [hidden] {
    display: none;
}

.setlists-link-choice input {
    margin-top: .2rem;
}

@keyframes setlists-pulse {
    to { opacity: .35; }
}

@keyframes setlists-settle {
    from { opacity: .7; transform: scale(.985); }
    to { opacity: 1; transform: scale(1); }
}

@media (max-width: 1680px) {
    .setlists-workspace {
        grid-template-columns: minmax(290px, 320px) minmax(0, 1fr);
    }

    .setlists-workspace.is-library-collapsed {
        grid-template-columns: 54px minmax(0, 1fr);
    }

    .setlists-workspace.is-table-view {
        display: block;
    }

    .setlists-library {
        position: static;
    }

    .setlists-health-disclosure .setlists-health {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .setlists-timing-warnings {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

}

@media (max-width: 1100px) and (min-width: 781px) {
    .setlists-workspace {
        grid-template-columns: minmax(290px, 320px) minmax(0, 1fr);
    }

    .setlists-workspace.is-library-collapsed {
        grid-template-columns: 54px minmax(0, 1fr);
    }

    .setlists-library {
        height: min(760px, calc(100vh - 2rem));
        position: static;
    }

    .setlists-health-disclosure .setlists-health {
        grid-template-columns: minmax(0, 1fr);
    }

    .setlists-health-disclosure .setlists-health-metrics,
    .setlists-health-disclosure .setlists-timing-warnings {
        grid-column: 1 / -1;
    }

    .setlists-health-disclosure .setlists-timing-warnings {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 780px) {
    .setlists-workspace-toolbar:has(.setlists-mobile-add-songs) { grid-template-columns: minmax(0, 1fr) auto; }
    .setlists-workspace-toolbar > .setlists-mobile-add-songs { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-height: 44px; }
    .setlists-workspace-toolbar:has(.setlists-mobile-add-songs) .setlists-advisor-launch { grid-column: 1 / -1; justify-self: stretch; }
    body:has(.setlists-page) {
        overflow-x: hidden;
    }

    body:has(.setlists-page):not(:has(.page-heading-compact)) .shell {
        padding-top: .65rem;
    }

    .setlists-page,
    .setlists-page > *,
    .setlists-builder,
    .setlists-builder > *,
    .setlists-builder-header,
    .setlists-template-name-view,
    .setlists-workspace-toolbar,
    .setlists-workspace,
    .setlists-canvas,
    .setlists-section,
    .setlists-section-heading {
        box-sizing: border-box;
        max-width: 100%;
        min-width: 0;
    }

    /* Compact headings use the shared responsive layout, including account badges. */
    body:has(.setlists-page) .page-heading:not(.page-heading-compact) {
        align-items: center;
        display: grid;
        flex-direction: row;
        gap: .65rem;
        grid-template-columns: minmax(0, 1fr) auto;
        margin-bottom: .75rem;
        padding-bottom: .7rem;
    }

    body:has(.setlists-page) .page-heading:not(.page-heading-compact) > div:first-child {
        min-width: 0;
    }

    body:has(.setlists-page) .page-heading:not(.page-heading-compact) .eyebrow {
        font-size: .68rem;
        margin-bottom: .25rem;
    }

    body:has(.setlists-page) .page-heading:not(.page-heading-compact) h1 {
        font-size: 1.45rem;
        line-height: 1.05;
    }

    body:has(.setlists-page) .page-heading:not(.page-heading-compact) .page-heading-right {
        flex-wrap: nowrap !important;
        gap: .35rem !important;
        width: auto !important;
    }

    body:has(.setlists-page) .page-heading:not(.page-heading-compact) .page-heading-right .user-meta,
    body:has(.setlists-page) .page-heading:not(.page-heading-compact) .setup-guide-trigger-label {
        display: none;
    }

    body:has(.setlists-page) .page-heading:not(.page-heading-compact) .setup-guide-trigger {
        height: 40px;
        justify-content: center;
        padding: 0;
        width: 40px;
    }

    body.setlists-mobile-sheet-open {
        overflow: hidden;
    }

    .setlists-advisor-dialog {
        max-width: calc(100vw - 1rem);
        width: calc(100vw - 1rem);
    }

    .setlists-workspace-toolbar {
        align-items: stretch;
        display: grid;
        gap: .45rem;
        grid-template-columns: auto minmax(0, 1fr);
    }

    .setlists-workspace-toolbar > .setlists-advisor-launch {
        justify-self: end;
        max-width: 100%;
    }

    .setlists-workspace-toolbar > strong {
        align-self: center;
        text-align: right;
    }

    .setlists-panel-toggles {
        display: none;
    }

    .setlists-panel-collapse {
        display: none;
    }

    .setlists-table-view > header {
        display: grid;
    }

    .setlists-table-view > header > span {
        justify-self: start;
    }

    /* Setlists Table View on Mobile: Hide redundant SET column, stick # and Song cleanly */
    .setlists-table-scroll thead th:first-child,
    .setlists-table-scroll tbody td.setlists-table-set {
        display: none;
    }

    .setlists-table-scroll thead th:nth-child(2),
    .setlists-table-scroll tbody td:nth-child(2) {
        left: 0;
    }

    .setlists-table-scroll thead th:nth-child(3),
    .setlists-table-scroll tbody td:nth-child(3) {
        left: 42px;
    }

    .setlists-table-song-cell {
        max-width: 145px;
        min-width: 110px;
        width: 130px;
    }

    .setlists-advisor-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .setlists-page {
        gap: .7rem;
        padding-bottom: .75rem;
    }

    .setlists-record-context {
        align-items: stretch;
        display: grid;
        gap: .65rem;
    }

    .setlists-record-context .btn {
        justify-content: center;
    }

    .setlists-context-badge {
        justify-self: start;
    }

    .setlists-create-form > div,
    .setlists-template-name-form > div {
        align-items: stretch;
        flex-direction: column;
    }

    .setlists-heading.is-index-heading {
        display: block;
    }

    .setlists-heading.is-index-heading > div:first-child {
        display: none;
    }

    .setlists-heading.is-index-heading:not(:has(.setlists-create-disclosure)) {
        display: none;
    }

    .setlists-create-disclosure {
        min-width: 0;
        width: 100%;
    }

    .setlists-create-form {
        padding: .7rem;
    }

    .setlists-collection-tabs a {
        padding: .55rem .6rem;
    }

    .setlists-collection-tabs strong {
        font-size: .84rem;
    }

    .setlists-collection-tabs span {
        display: none;
    }

    .setlists-gig-guidance {
        align-items: stretch;
        display: grid;
        gap: .6rem;
    }

    .setlists-gig-guidance .btn {
        width: 100%;
    }

    .setlists-index {
        gap: .65rem;
        padding: .7rem;
    }

    .setlists-index-filters {
        gap: .55rem;
        grid-template-columns: minmax(0, 1fr);
    }

    .setlists-index-search {
        grid-column: auto;
    }

    .setlists-filter-toggle {
        align-items: center;
        appearance: none;
        background: color-mix(in srgb, var(--surface-soft) 96%, transparent);
        border: 1px solid var(--line);
        border-radius: 8px;
        color: var(--text);
        cursor: pointer;
        display: grid;
        gap: .12rem .5rem;
        grid-column: auto;
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 42px;
        padding: .45rem .65rem;
        text-align: left;
    }

    .setlists-filter-toggle > span {
        font-size: .78rem;
        font-weight: 850;
    }

    .setlists-filter-toggle > small {
        color: var(--muted);
        font-size: .66rem;
        grid-column: 1;
    }

    .setlists-filter-toggle > b {
        color: var(--accent);
        font-size: 1rem;
        grid-column: 2;
        grid-row: 1 / 3;
    }

    .setlists-advanced-filters {
        display: none;
    }

    .setlists-advanced-filters.is-open {
        display: grid;
        gap: .55rem;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .setlists-filter-submit {
        display: none;
    }

    .setlists-index-summary {
        padding-top: .65rem;
    }

    .setlists-index-summary > div > span {
        display: none;
    }

    .setlists-index-row {
        gap: .7rem;
        grid-template-columns: minmax(0, 1fr) auto;
        min-height: 62px;
    }

    .setlists-index-row-main > a {
        align-items: center;
        display: flex;
        gap: .65rem;
        justify-content: space-between;
    }

    .setlists-index-open-copy {
        min-width: 0;
    }

    .setlists-index-mobile-showtime {
        color: var(--muted);
        display: block;
        font-size: .75rem;
        margin-top: .18rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .setlists-index-open-indicator {
        color: var(--accent);
        display: inline-block;
        flex: 0 0 auto;
        font-size: 1.55rem;
        font-weight: 500;
        line-height: 1;
    }

    .setlists-index-row-facts,
    .setlists-index-row-meta {
        display: none;
    }

    .setlists-index-row-actions {
        grid-column: 2;
        grid-row: 1;
    }

    .setlists-index-row-actions > .btn {
        display: none;
    }

    .setlists-builder-navigation {
        align-items: stretch;
    }

    .setlists-add-section {
        grid-template-columns: 1fr;
    }

    .setlists-add-show-note-fields {
        grid-template-columns: 1fr;
    }

    .setlists-builder-header {
        align-items: start;
        gap: .55rem;
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .setlists-builder-header > .setlists-builder-actions {
        grid-column: 3;
        grid-row: 1;
    }

    .setlists-builder-header > .setlists-builder-actions > summary {
        font-size: .7rem;
        min-height: 28px;
        min-width: 30px;
        padding: .15rem .3rem;
    }

    .setlists-builder-header > .setlists-builder-actions > div {
        left: auto;
        right: 0;
    }

    .setlists-builder-header > .setlists-template-name {
        align-self: center;
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
    }

    .setlists-template-name-view {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .setlists-template-name-view > div {
        min-width: 0;
    }

    .setlists-save-state {
        max-width: 92px;
    }

    .setlists-builder-back {
        grid-column: 1;
        grid-row: 1;
        padding-right: .55rem;
    }

    .setlists-builder-back span {
        display: none;
    }

    .setlists-desktop-only {
        display: none;
    }

    .setlists-mobile-only {
        display: inline;
    }

    .setlists-workspace {
        display: block;
    }

    .setlists-workspace > .setlists-library {
        display: none;
    }

    .setlists-workspace > .setlists-library.is-mobile-active {
        display: grid;
    }

    .setlists-workspace > .setlists-canvas {
        display: grid;
        padding-bottom: max(.75rem, env(safe-area-inset-bottom));
    }

    .setlists-add-section-disclosure {
        scroll-margin-bottom: max(.75rem, env(safe-area-inset-bottom));
    }

    .setlists-add-section-disclosure {
        background: var(--surface-soft);
        border: 1px solid rgba(148, 163, 184, .14);
        border-left: 4px solid var(--bg-accent, #06b6d4);
        border-radius: 10px;
        overflow: hidden;
    }

    .setlists-add-section-disclosure > .widget-accordion-toggle {
        display: grid;
    }

    .setlists-add-section-disclosure > .widget-accordion-panel {
        display: grid;
        grid-template-rows: 0fr;
        opacity: .35;
    }

    .setlists-add-section-disclosure.is-open > .widget-accordion-panel {
        grid-template-rows: 1fr;
        opacity: 1;
    }

    .setlists-add-section-disclosure > .widget-accordion-panel > .widget-accordion-panel-inner {
        overflow: hidden;
    }

    .setlists-add-section-disclosure .setlists-add-section {
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .setlists-library {
        grid-template-columns: minmax(0, 1fr);
        height: auto;
        max-height: none;
        min-height: 0;
        position: static;
    }

    .setlists-health-disclosure .setlists-health {
        grid-template-columns: minmax(0, 1fr);
        padding: .6rem;
    }

    .setlists-health-disclosure .setlists-health-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .setlists-planning-coverage {
        align-items: stretch;
        grid-template-columns: minmax(0, 1fr);
    }

    .setlists-planning-coverage .btn {
        justify-self: stretch;
        width: 100%;
    }

    .setlists-health-disclosure .setlists-timing-warnings {
        grid-template-columns: minmax(0, 1fr);
    }

    .setlists-library.is-mobile-active {
        background: color-mix(in srgb, var(--panel) 98%, #071018);
        border-color: rgba(20, 184, 166, .48);
        bottom: max(.65rem, env(safe-area-inset-bottom));
        box-shadow: 0 0 0 100vmax rgba(2, 7, 15, .74), 0 24px 70px rgba(0, 0, 0, .65);
        left: .65rem;
        margin: 0;
        max-height: none;
        position: fixed;
        right: .65rem;
        top: calc(68px + .65rem);
        z-index: 40;
    }

    .setlists-library.is-mobile-active {
        grid-template-rows: auto auto auto auto minmax(0, 1fr);
        height: auto;
        min-height: 0;
    }

    .setlists-library > .setlists-mobile-destination {
        background: color-mix(in srgb, var(--accent) 8%, var(--surface-soft));
        border: 1px solid color-mix(in srgb, var(--accent) 42%, var(--line));
        border-radius: 9px;
        display: grid;
        gap: .35rem;
        margin: 0;
        padding: .6rem .7rem;
    }

    .setlists-mobile-destination > span {
        color: var(--accent);
        font-size: .68rem;
        font-weight: 850;
        letter-spacing: .06em;
        text-transform: uppercase;
    }

    .setlists-mobile-destination select {
        min-height: 42px;
    }

    .setlists-mobile-sheet-close {
        align-items: center;
        appearance: none;
        background: rgba(20, 184, 166, .1);
        border: 1px solid rgba(20, 184, 166, .48);
        border-radius: 999px;
        color: var(--accent);
        cursor: pointer;
        display: inline-flex;
        flex: 0 0 auto;
        font-size: 1.25rem;
        height: 38px;
        justify-content: center;
        line-height: 1;
        padding: 0 0 .12rem;
        width: 38px;
    }

    .setlists-mobile-sheet-close:focus-visible {
        outline: 2px solid rgba(34, 211, 238, .72);
        outline-offset: 2px;
    }

    .setlists-song-picker-done {
        font-size: .72rem;
        font-weight: 850;
        padding: 0 .7rem;
        width: auto;
    }

    .setlists-song-list {
        min-height: 260px;
        max-height: 390px;
    }

    .setlists-library.is-mobile-active .setlists-song-list {
        max-height: none;
        min-height: 0;
    }

    .setlists-library .setlists-drag-handle {
        display: none;
    }

    .setlists-library .setlists-song {
        grid-template-columns: minmax(0, 1fr);
    }

    .setlists-library .setlists-song-actions {
        grid-column: 1;
    }
    .setlists-library .setlists-song-actions button { min-width: 44px; min-height: 44px; }

    .setlists-section-empty {
        display: none;
    }

    .setlists-section .setlists-section-add-songs {
        align-items: center;
        display: flex;
        margin: .15rem .55rem .55rem;
        width: calc(100% - 1.1rem);
    }

    .setlists-item {
        align-items: center;
        grid-template-columns: auto minmax(0, 1fr) auto auto;
    }

    .setlists-item-actions {
        grid-column: auto;
    }

    .setlists-item-actions [data-setlist-move],
    .setlists-section-order-controls [data-setlist-section-move] {
        display: none;
    }

    .setlists-item .setlists-item-copy strong,
    .setlists-item .setlists-item-duration {
        font-size: 1rem;
        font-weight: 850;
    }

    .setlists-item .setlists-item-copy strong {
        line-height: 1.12;
    }

    .setlists-item-actions [data-setlist-remove] {
        font-size: 0;
        min-height: 38px;
        min-width: 38px;
        padding: 0;
    }

    .setlists-item-actions [data-setlist-remove]::before {
        content: "×";
        font-size: 1.15rem;
        line-height: 1;
    }

    .setlists-item-actions [data-setlist-remove][data-confirming="1"] {
        font-size: .7rem;
        min-width: 68px;
        padding: 0 .55rem;
    }

    .setlists-item-actions [data-setlist-remove][data-confirming="1"]::before {
        content: none;
    }

    .setlists-section-tail > span:first-child {
        display: block;
        font-size: .7rem;
    }

    .setlists-section-edit {
        margin-right: .45rem;
    }

    .setlists-section-order-controls {
        padding-left: .35rem;
    }

    .setlists-drag-handle,
    .setlists-section-drag-handle {
        align-items: center;
        cursor: grab;
        display: inline-flex;
        justify-content: center;
        min-height: 40px;
        min-width: 28px;
        touch-action: none;
    }

    .setlists-section-fields {
        grid-template-columns: 1fr;
    }

    .setlists-section-timing-fields,
    .setlists-add-timing-fields {
        grid-template-columns: 1fr;
    }

    .setlists-remove-section {
        margin-left: 0;
    }

    .setlists-remove-warning {
        text-align: left;
    }

    .setlists-gig-timing {
        gap: .45rem;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        padding: .65rem;
    }

    .setlists-gig-timing strong {
        font-size: .76rem;
        line-height: 1.2;
    }

    .setlists-gig-timing span {
        font-size: .58rem;
    }

    .setlists-publication {
        align-items: stretch;
        gap: .75rem;
        grid-template-columns: 1fr;
        padding: .75rem;
    }

    .setlists-publication-form {
        align-items: stretch;
        grid-template-columns: 1fr;
    }

    .setlists-publication-form .btn {
        width: 100%;
    }

    .setlists-section-tail {
        align-items: center;
        display: grid;
        gap: .12rem .45rem;
        grid-template-areas:
            "schedule icon"
            "summary icon"
            "goal icon";
        grid-template-columns: minmax(0, 1fr) auto;
        justify-items: end;
        overflow: hidden;
    }

    .setlists-section-tail .setlists-section-schedule {
        color: var(--accent);
        font-size: .68rem;
        font-weight: 800;
        grid-area: schedule;
        white-space: nowrap;
    }

    .setlists-section-tail [data-section-summary] {
        color: var(--text);
        font-size: .78rem;
        font-weight: 800;
        grid-area: summary;
        white-space: nowrap;
    }

    .setlists-section-tail .setlists-section-timing-goal {
        font-size: .62rem;
        grid-area: goal;
        max-width: 175px;
        overflow: hidden;
        padding: .12rem .42rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .setlists-section-tail .widget-accordion-icon {
        align-self: center;
        grid-area: icon;
        margin-left: .15rem;
    }

    .setlists-transition-trigger {
        min-height: 34px;
        min-width: 34px;
        padding: 0;
    }

}

@media (max-width: 480px) {
    .setlists-page {
        gap: .8rem;
    }

    .setlists-heading p:not(.eyebrow) {
        font-size: .88rem;
    }

    .setlists-template-review-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .setlists-index {
        padding: .75rem;
    }

    .setlists-index-filters {
        grid-template-columns: 1fr;
    }

    .setlists-index-filters label:first-child,
    .setlists-index-filters > button {
        grid-column: auto;
    }

    .setlists-index-row {
        align-items: start;
        grid-template-columns: minmax(0, 1fr) auto;
        padding: .7rem;
    }

    .setlists-builder-navigation {
        align-items: stretch;
        display: grid;
        grid-template-columns: 1fr;
    }

    .setlists-back-link {
        justify-content: center;
    }

    .setlists-builder-header,
    .setlists-library,
    .setlists-health {
        padding-left: .75rem;
        padding-right: .75rem;
    }

    .setlists-section-order-controls {
        gap: .15rem;
        padding-left: .25rem;
    }

    .setlists-section-heading > .widget-accordion-toggle {
        gap: .4rem;
        min-width: 0;
        padding-left: .55rem;
        padding-right: .45rem;
    }

    .setlists-break-summary {
        gap: .4rem;
        padding-left: .55rem;
        padding-right: .45rem;
    }

    .setlists-section-heading > .widget-accordion-toggle .widget-accordion-title,
    .setlists-break-summary .widget-accordion-title {
        min-width: 0;
    }

    .setlists-section-heading > .widget-accordion-toggle .widget-accordion-title > strong,
    .setlists-break-summary .widget-accordion-title > strong {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .setlists-section-edit {
        margin-right: .3rem;
    }

    .setlists-song,
    .setlists-item {
        gap: .45rem;
        padding: .6rem;
    }

    .setlists-item-actions {
        flex-wrap: wrap;
    }

    .setlists-add-section .btn {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .setlists-item,
    .setlists-section,
    .setlists-drop-placeholder,
    .setlists-section-drop-placeholder {
        animation: none !important;
        transition: none !important;
    }

    .setlists-section-settings-panel {
        transition: none !important;
    }

    .setlists-edit-trigger .setlists-settings-icon {
        transition: none !important;
    }
}
