:root{--surface: #ffffff;--surface-soft: #f7f8fb;--ink: #19202a;--muted: #64748b;--line: #d8dee8;--accent: #0f766e;--accent-strong: #0b5f59;--gold: #b7791f;--header: #151923}*{box-sizing:border-box}body{min-height:100vh;margin:0;color:var(--ink);background:var(--surface-soft);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.container-fluid{width:100%;margin-right:auto;margin-left:auto}.app-main{max-width:1440px;padding:18px 18px 40px}.top-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;justify-content:space-between;gap:28px;margin-bottom:22px;padding:28px;color:#fff;background:#1f2937;border:1px solid #303a49;border-radius:8px}.top-bar-copy{max-width:720px}.eyebrow{margin:0 0 8px;color:#8bd3cb;font-size:.78rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.top-bar h1{margin:0;font-size:4rem;font-weight:750;line-height:1}.top-bar-copy p:last-child{margin:12px 0 0;max-width:580px;color:#d7dde8;font-size:1.05rem}.top-bar-meta{display:grid;align-self:stretch;align-content:space-between;justify-items:end;gap:16px}.content-updated{display:grid;gap:3px;margin:0;color:#cbd5e1;font-size:.78rem;line-height:1.25;text-align:right}.content-updated span{color:#8bd3cb;font-size:.68rem;font-weight:800;text-transform:uppercase}.content-updated time{font-weight:650}.top-bar-actions{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:end;gap:14px}.language-switch{display:inline-flex;gap:4px;padding:4px;background:#ffffff14;border:1px solid rgba(255,255,255,.16);border-radius:999px}.language-option{min-width:42px;min-height:32px;padding:4px 10px;color:#d7dde8;font-size:.82rem;font-weight:800;background:transparent;border:0;border-radius:999px}.language-option:hover,.language-option:focus{color:#fff;outline:none}.language-option.is-active{color:#10201f;background:#8bd3cb}.selection-meter{display:grid;min-width:118px;padding:16px 18px;text-align:center;background:#ffffff14;border:1px solid rgba(255,255,255,.18);border-radius:8px}.selection-meter span{font-size:2rem;font-weight:800;line-height:1}.selection-meter small{color:#cbd5e1;font-weight:650;text-transform:uppercase}.library-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 45px #0f172a14;overflow:hidden}.toolbar{display:grid;grid-template-columns:minmax(320px,1fr) auto;gap:22px;align-items:center;padding:18px;border-bottom:1px solid var(--line)}.search-area label{display:block;margin-bottom:8px;color:#3b4658;font-size:.86rem;font-weight:700}.catalog-status{min-height:20px;margin-top:8px;color:var(--muted);font-size:.86rem}.catalog-status.is-error{color:#b42318;font-weight:700}.mobile-sort-controls{display:none}#myInput{width:100%;min-height:46px;padding:10px 16px 10px 42px;color:var(--ink);background-color:#fff;background-image:url(searchicon.png);background-position:14px center;background-repeat:no-repeat;background-size:18px;border:1px solid #cbd5e1;border-radius:6px;box-shadow:none}.form-control{display:block;width:100%;font:inherit}#myInput:focus{border-color:var(--accent);box-shadow:0 0 0 .2rem #0f766e29;outline:none}.download-area{display:grid;grid-template-columns:auto max-content;align-items:center;justify-content:end;gap:10px;min-width:520px}.download-options{display:grid;grid-template-columns:repeat(4,minmax(78px,1fr))}.btn-group{display:inline-flex;vertical-align:middle}.btn-check{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 12px;color:var(--ink);font:inherit;text-align:center;text-decoration:none;cursor:pointer;user-select:none;background:#fff;border:1px solid transparent;border-radius:4px}.download-options .btn{min-width:0;border-radius:0}#btnradio1+.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}#btnradio4+.btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.download-options .btn-check:not(:first-child)+.btn{margin-left:-1px}.btn-outline-primary{color:var(--accent);border-color:var(--accent)}.btn-check:checked+.btn-outline-primary,.btn-outline-primary:hover{color:#fff;background-color:var(--accent);border-color:var(--accent)}.btn-outline-primary:focus,.download-button:focus{outline:3px solid rgba(15,118,110,.22);outline-offset:2px}.download-button,.download-button:hover,.download-button:focus{min-height:42px;background:var(--gold);border-color:var(--gold);box-shadow:none}.download-button:hover{background:#9f6318;border-color:#9f6318}.mobile-sort-controls label{display:block;margin-bottom:6px;color:#3b4658;font-size:.82rem;font-weight:800}.mobile-sort-row{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px}.mobile-sort-select,.mobile-sort-direction{min-height:40px;color:var(--ink);font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:6px}.mobile-sort-select{width:100%;padding:8px 36px 8px 12px}.mobile-sort-direction{padding:8px 10px;color:#fff;font-weight:750;background:var(--accent);border-color:var(--accent)}.mobile-sort-select:focus,.mobile-sort-direction:focus{outline:3px solid rgba(15,118,110,.2);outline-offset:2px}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:18px;background:#0f172a75}.modal-backdrop[hidden]{display:none}.download-review{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(680px,100%);max-height:min(720px,calc(100vh - 36px));overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 28px 80px #0f172a47}.download-review-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px;border-bottom:1px solid var(--line)}.download-review-eyebrow{margin:0 0 4px;color:var(--accent-strong);font-size:.74rem;font-weight:800;text-transform:uppercase}.download-review h2{margin:0;color:#1f2937;font-size:1.35rem;line-height:1.2}.modal-icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:#475569;font:inherit;font-size:1.4rem;line-height:1;cursor:pointer;background:#f8fafc;border:1px solid var(--line);border-radius:6px}.modal-icon-button:hover,.review-cancel-button:hover{background:#eef2f7}.download-review-list{display:grid;gap:8px;min-height:0;margin:0;padding:12px 18px;overflow-y:auto;list-style:none;counter-reset:download-item}.download-review-item{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:12px;align-items:center;padding:12px;cursor:grab;background:#f8fafc;border:1px solid var(--line);border-radius:8px;counter-increment:download-item;touch-action:none;user-select:none}.download-review-item:active{cursor:grabbing}.download-review-item.is-dragging{position:relative;z-index:2;background:#eef7f6;border-color:#0f766e59;box-shadow:0 14px 30px #0f172a24;opacity:.86;pointer-events:none}.download-review-song{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;min-width:0}.download-review-song:before{content:counter(download-item);display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--accent-strong);font-size:.8rem;font-weight:800;background:#eef7f6;border:1px solid rgba(15,118,110,.2);border-radius:999px}.download-review-name{display:block;min-width:0;color:#1f2937;font-weight:760;overflow-wrap:anywhere}.download-review-meta{display:block;margin-top:2px;color:var(--muted);font-size:.82rem}.review-remove-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;color:#9f1239;font:inherit;font-size:1rem;font-weight:800;line-height:1;cursor:pointer;background:#fff;border:1px solid #fecdd3;border-radius:999px}.review-remove-button:hover{background:#fff1f2;border-color:#fda4af}.download-review-empty{margin:0;padding:28px 18px;color:var(--muted);text-align:center}.download-review-status{margin:0;padding:10px 18px 0;color:var(--muted);font-size:.88rem}.download-review-status.is-error{color:#b42318;font-weight:700}.download-review-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--line)}.review-cancel-button{border-color:#cbd5e1}.review-confirm-button,.review-confirm-button:hover,.review-confirm-button:focus{color:#fff;background:var(--accent);border-color:var(--accent)}.review-confirm-button:disabled{cursor:not-allowed;opacity:.55}.table-shell{width:100%;overflow-x:auto}#myTable,.song-table{width:100%;min-width:720px;margin:0;border-collapse:separate;border-spacing:0;font-size:.95rem}.table{color:var(--ink)}.table-striped tbody tr:nth-of-type(odd){background-color:#fbfcfe}#myTable th,#myTable td{padding:12px;text-align:left;vertical-align:middle;border-color:#e4e9f1}#myTable thead th{color:#f8fafc;background:#273142;border-color:#273142;white-space:nowrap}#myTable tbody tr{border-bottom:1px solid #e4e9f1}#myTable tbody tr:hover{background-color:#eef7f6}#myTable a,#myTable .song-action{color:var(--accent-strong);font-weight:650;text-decoration:none}#myTable .song-action{padding:0;font:inherit;cursor:pointer;background:transparent;border:0}#myTable a:hover,#myTable .song-action:hover{color:#084c47;text-decoration:underline}#myTable .song-action:focus{outline:2px solid rgba(15,118,110,.28);outline-offset:3px}.song-select-cell{width:48px;text-align:center}.song-select,#selectAllSongs{width:18px;height:18px;accent-color:var(--accent)}.sort-button{display:inline-flex;align-items:center;gap:6px;padding:0;color:inherit;font:inherit;font-weight:800;cursor:pointer;background:transparent;border:0}.sort-button:after{content:"";width:0;height:0;border-right:4px solid transparent;border-left:4px solid transparent}th[aria-sort=ascending] .sort-button:after{border-bottom:6px solid currentColor}th[aria-sort=descending] .sort-button:after{border-top:6px solid currentColor}.sort-button:focus{outline:2px solid #8bd3cb;outline-offset:3px}@media(max-width:900px){.top-bar,.toolbar{grid-template-columns:1fr}.top-bar-meta{justify-content:flex-start;min-width:0;width:100%}.content-updated{justify-self:start;text-align:left}.top-bar-actions{justify-content:flex-start}.selection-meter{justify-self:start}.download-area{grid-template-columns:minmax(0,1fr) max-content;justify-content:stretch;min-width:0}}@media(max-width:760px){.mobile-sort-controls{display:block}.table-shell{overflow-x:visible}#myTable,.song-table,#myTable tbody,#myTable tr,#myTable td{display:block;width:100%;min-width:0}#myTable thead{display:none}#myTable tbody{display:grid;gap:10px;padding:10px;background:#eef2f7}#myTable tbody tr{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 18px #0f172a0f}#myTable tbody tr:hover{background-color:#fff}#myTable td{padding:0;border:0;overflow-wrap:anywhere}#myTable td:before{content:none}#myTable .song-select-cell{grid-column:2;grid-row:1;align-self:start;width:auto;padding:0;text-align:right}#myTable .song-select{width:22px;height:22px}#myTable .song-name-cell{grid-column:1;grid-row:1;padding-right:4px;color:#1f2937;font-size:1.05rem;font-weight:750;line-height:1.25}#myTable .song-key-cell{grid-column:1;grid-row:2;display:inline-flex;align-items:center;gap:6px;justify-self:start;width:auto;min-height:24px;padding:3px 8px;color:#273142;font-size:.8rem;font-weight:750;background:#eef7f6;border:1px solid rgba(15,118,110,.2);border-radius:999px}#myTable .song-key-cell:before{content:attr(data-label);color:var(--accent-strong);font-size:.68rem;font-weight:800;text-transform:uppercase}#myTable .song-themes-cell,#myTable .song-authors-cell{grid-column:1 / -1;display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;color:#334155;font-size:.9rem;line-height:1.3}#myTable .song-key-cell.is-empty,#myTable .song-themes-cell.is-empty,#myTable .song-authors-cell.is-empty{display:none}#myTable .song-themes-cell{grid-row:3;padding-top:4px}#myTable .song-authors-cell{grid-row:4}#myTable .song-themes-cell:before,#myTable .song-authors-cell:before{content:attr(data-label);color:var(--muted);font-size:.7rem;font-weight:800;text-transform:uppercase}#myTable .song-action-cell{grid-column:1 / -1;grid-row:5;padding-top:6px}#myTable .song-action{display:flex;align-items:center;justify-content:center;width:100%;min-height:40px;color:#fff;font-weight:750;background:var(--accent);border-radius:6px}#myTable .song-action:hover{color:#fff;text-decoration:none;background:var(--accent-strong)}}@media(max-width:560px){.app-main{padding:8px 8px 24px}.top-bar,.toolbar{padding:14px}.top-bar{gap:12px;margin-bottom:12px}.top-bar h1{font-size:1.9rem}.top-bar-copy p:last-child{margin-top:8px;font-size:.92rem;line-height:1.35}.eyebrow{margin-bottom:4px;font-size:.68rem}.top-bar-meta{display:grid;gap:8px;width:100%}.top-bar-actions{grid-template-columns:minmax(0,1fr) 88px;align-items:stretch;gap:8px;width:100%}.content-updated{font-size:.72rem}.language-switch,.selection-meter{width:100%}.language-option{flex:1 1 50%;min-height:30px;padding:3px 8px}.selection-meter{min-width:0;padding:5px 8px}.selection-meter span{font-size:1.3rem}.selection-meter small{font-size:.64rem}.toolbar{gap:12px}.search-area label{margin-bottom:6px}#myInput{min-height:42px}.catalog-status{min-height:18px;margin-top:6px}.download-area,.download-options,.download-button{width:100%}.download-area{grid-template-columns:1fr;gap:8px}.download-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.download-options .btn{min-width:0;min-height:36px;padding:7px 4px;font-size:.86rem;white-space:nowrap}.download-button{min-height:38px}.modal-backdrop{align-items:end;padding:0}.download-review{width:100%;max-height:calc(100vh - 28px);border-bottom-right-radius:0;border-bottom-left-radius:0}.download-review-header{padding:14px}.download-review h2{font-size:1.12rem}.download-review-list{padding:10px}.download-review-status{padding:8px 10px 0}.download-review-item{grid-template-columns:minmax(0,1fr) 40px;gap:8px;padding:12px}.review-remove-button{width:38px;height:38px}.download-review-actions{display:grid;grid-template-columns:1fr;gap:8px;padding:10px}}
