:root{--bg-page:#0e0e14;--bg-header:rgba(12,12,18,0.85);--bg-card:rgba(255,255,255,0.03);--bg-card-hover:rgba(255,255,255,0.05);--bg-modal:#1a1a24;--bg-overlay:rgba(0,0,0,0.7);--bg-input:rgba(255,255,255,0.03);--text-primary:#e0e0e6;--text-heading:#f0f0f5;--text-heading-2:#c8c8d4;--text-heading-3:#d8d8e4;--text-secondary:#8a8a9a;--text-secondary-hover:#c0c0cc;--text-muted:#6a6a7a;--text-faint:#7a7a8e;--text-footer:#4a4a5a;--text-label:#a0a0b0;--text-subtitle:#9a9aae;--text-modal:#e0e0ea;--text-modal-body:#b0b0be;--text-modal-strong:#d0d0dc;--border-subtle:rgba(255,255,255,0.06);--border-faint:rgba(255,255,255,0.04);--border-input:rgba(255,255,255,0.08);--border-medium:rgba(255,255,255,0.1);--border-medium-hover:rgba(255,255,255,0.2);--border-hover:rgba(120,140,190,0.15);--border-modal-footer:#2a2a3a;--accent:#4a6fa5;--accent-hover:#567fb8;--accent-text:#e8ecf2;--accent-focus:#4a6fa5;--accent-input-focus:rgba(100,130,180,0.3);--tag-bg:rgba(100,130,180,0.1);--tag-text:#7a94b8;--tag-active-bg:rgba(74,111,165,0.25);--tag-active-text:#9ab0d0;--btn-other-border:rgba(100,130,180,0.25);--btn-other-border-hover:rgba(100,130,180,0.45);--discord-link:#6b7fa8;--discord-link-hover:#8da4cc;--sub-link-hover:#9a9aaa;--error-bg:rgba(200,60,60,0.15);--error-border:rgba(200,60,60,0.25);--error-text:#e8a0a0}[data-theme=light]{--bg-page:#f5f5f8;--bg-header:rgba(255,255,255,0.9);--bg-card:rgba(0,0,0,0.03);--bg-card-hover:rgba(0,0,0,0.06);--bg-modal:#ffffff;--bg-overlay:rgba(0,0,0,0.4);--bg-input:rgba(0,0,0,0.03);--text-primary:#1a1a2e;--text-heading:#0e0e1a;--text-heading-2:#2a2a3e;--text-heading-3:#1e1e32;--text-secondary:#5a5a6e;--text-secondary-hover:#2a2a3e;--text-muted:#7a7a8e;--text-faint:#6a6a7e;--text-footer:#9a9aaa;--text-label:#4a4a5e;--text-subtitle:#5a5a6e;--text-modal:#1a1a2e;--text-modal-body:#3a3a4e;--text-modal-strong:#1a1a2e;--border-subtle:rgba(0,0,0,0.08);--border-faint:rgba(0,0,0,0.06);--border-input:rgba(0,0,0,0.12);--border-medium:rgba(0,0,0,0.15);--border-medium-hover:rgba(0,0,0,0.25);--border-hover:rgba(60,100,160,0.2);--border-modal-footer:#e0e0e8;--accent:#3a5f95;--accent-hover:#2d4f80;--accent-text:#ffffff;--accent-focus:#3a5f95;--accent-input-focus:rgba(60,100,160,0.3);--tag-bg:rgba(60,100,160,0.1);--tag-text:#4a6a90;--tag-active-bg:rgba(60,100,160,0.45);--tag-active-text:#1e3a66;--btn-other-border:rgba(60,100,160,0.3);--btn-other-border-hover:rgba(60,100,160,0.5);--discord-link:#4a6a90;--discord-link-hover:#2d4f80;--sub-link-hover:#4a4a5e;--error-bg:rgba(200,60,60,0.1);--error-border:rgba(200,60,60,0.2);--error-text:#c04040}*{margin:0;padding:0;box-sizing:border-box}html{font-family:Inter,sans-serif;background:var(--bg-page);color:var(--text-primary);line-height:1.6;scroll-behavior:smooth}header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:var(--bg-header);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);position:-webkit-sticky;position:sticky;top:0;z-index:10}.hamburger{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:.5rem}.hamburger-line{display:block;width:22px;height:2px;background:var(--text-secondary);border-radius:1px;transition:background .2s}.hamburger:hover .hamburger-line{background:var(--text-secondary-hover)}.header-collapse{display:flex;align-items:center;gap:1rem}nav a{margin:0 1rem;text-decoration:none;color:var(--text-secondary);font-weight:500;transition:color .2s}nav a:hover{color:var(--text-secondary-hover)}.theme-toggle{background:none;border:1px solid var(--border-medium);color:var(--text-secondary);cursor:pointer;padding:.35rem;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s;width:32px;height:32px}.theme-toggle:hover{color:var(--text-secondary-hover);border-color:var(--border-medium-hover)}.theme-toggle svg{width:16px;height:16px;fill:currentColor}.hero{text-align:center;padding:3rem 2rem 2rem;line-height:1.2}.hero h1{font-size:2.5rem;font-weight:700;color:var(--text-heading);margin-bottom:.75rem}.hero p{color:var(--text-faint);font-size:1.1rem;max-width:550px;margin:0 auto 2rem}.downloads{padding:3.5rem 2rem;text-align:center}.downloads+.downloads{border-top:1px solid var(--border-faint)}.downloads h2{font-size:1.5rem;font-weight:600;color:var(--text-heading-2);margin-bottom:2rem}.downloads-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem}.card{background:var(--bg-card);border:1px solid var(--border-subtle);padding:2rem 1.75rem;border-radius:12px;width:280px;text-align:center;transition:border-color .2s,background .2s;display:flex;flex-direction:column;align-items:center}.card:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.player-logo{width:72px;height:72px;object-fit:contain;margin-bottom:1rem;opacity:.9}.card h3{font-size:1.1rem;font-weight:600;color:var(--text-heading-3);margin-bottom:.5rem}.player-description{color:var(--text-muted);font-size:.85rem;margin-bottom:.5rem;flex:1 1}.discord-link{display:block;margin-top:.5rem;font-size:.85rem;color:var(--discord-link);text-decoration:none}.discord-link:hover{color:var(--discord-link-hover)}.sub-link{display:block;margin-top:.5rem;font-size:.8rem;color:var(--text-muted);text-decoration:none;transition:color .2s}.sub-link:hover{color:var(--sub-link-hover)}.midi-meta{color:var(--text-muted);font-size:.85rem}.tag{display:inline-block;background-color:var(--tag-bg);color:var(--tag-text);padding:.15rem .5rem;border-radius:3px;font-size:.7rem;margin-top:0}.btn{padding:.65rem 1.4rem;border:none;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:var(--accent);color:var(--accent-text);margin-top:1rem;display:inline-block;text-decoration:none}.btn-primary:hover{background:var(--accent-hover)}.btn-other{background:transparent;color:var(--tag-text);border:1px solid var(--btn-other-border);margin-top:1rem;display:inline-block;text-decoration:none}.btn-other:hover{border-color:var(--btn-other-border-hover);color:var(--tag-active-text)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent-focus);outline-offset:2px}footer{text-align:center;padding:2rem;border-top:1px solid var(--border-faint)}.credits-link,footer{color:var(--text-footer);font-size:.85rem}.credits-link{background:none;border:none;cursor:pointer;text-decoration:underline;padding:0;font-family:inherit}.credits-link:hover{color:var(--text-secondary)}.credits-list{list-style:none;padding:0;margin:.75rem 0 0;color:var(--text-modal-body)}.credits-list li:before{content:"- "}.filters{margin-bottom:2rem}.filter-form{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem}.filter-form .btn{margin-top:0;display:inline-flex;align-items:center}.filter-form .btn,.search-input{height:44px;box-sizing:border-box}.search-input{padding:0 1rem;border:1px solid var(--border-input);border-radius:4px;background-color:var(--bg-input);color:var(--text-primary);font-size:.95rem;width:300px;transition:border-color .2s}.search-input:focus{border-color:var(--accent-input-focus);outline:none}.search-input::placeholder{color:var(--text-footer)}.typeahead{position:relative}.typeahead-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;max-height:260px;overflow-y:auto;background:var(--bg-modal);border:1px solid var(--border-medium);border-radius:4px;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:200;list-style:none;margin:0;padding:.25rem 0}.typeahead-option{padding:.5rem 1rem;cursor:pointer;color:var(--text-primary);font-size:.9rem}.typeahead-option-active,.typeahead-option:hover{background:var(--bg-card-hover)}.custom-select{position:relative}.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0 1rem;border:1px solid var(--border-input);border-radius:4px;background:var(--bg-input);color:var(--text-primary);font-size:.9rem;height:44px;box-sizing:border-box;cursor:pointer;white-space:nowrap;min-width:160px;font-family:inherit}.custom-select-trigger:hover{border-color:var(--border-medium-hover);background:var(--bg-card-hover)}.custom-select-chevron{font-size:.7rem;opacity:.5;flex-shrink:0}.custom-select-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:100%;background:var(--bg-modal);border:1px solid var(--border-medium);border-radius:4px;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:200;list-style:none;margin:0;padding:.25rem 0;overflow:hidden}.custom-select-option{padding:.6rem 1rem;cursor:pointer;color:var(--text-primary);font-size:.9rem;transition:background .1s}.custom-select-option:hover{background:var(--bg-card-hover)}.custom-select-option.is-selected{color:var(--accent);font-weight:500}.tag-list{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem}.tag{text-decoration:none;cursor:pointer;border:none;font-family:inherit}.tag-active{background-color:var(--tag-active-bg);color:var(--tag-active-text)}.tag-clear{background-color:transparent;color:var(--accent);border:1px solid var(--accent);font-size:.7rem;padding:.15rem .5rem;border-radius:3px}.tag-clear:hover{background-color:var(--accent);color:var(--accent-text)}.tag-filter-desktop{display:block}.tag-filter-mobile{display:none;position:relative}@media (max-width:768px){.tag-filter-desktop{display:none}.tag-filter-mobile{display:block;margin-top:1rem}}.tag-dropdown-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;cursor:pointer;text-align:left}.tag-dropdown-arrow{font-size:.65rem;margin-left:.5rem}.tag-dropdown-menu{position:absolute;top:100%;left:0;right:0;background:var(--bg-modal);border:1px solid var(--border);border-radius:4px;margin-top:.25rem;max-height:300px;overflow-y:auto;z-index:100}.tag-dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem 1rem;border:none;background:none;color:var(--text-primary);font-size:.9rem;font-family:inherit;cursor:pointer;text-align:left}.tag-dropdown-item:hover{background:var(--bg-input)}.tag-dropdown-item-active{color:var(--accent);font-weight:500}.tag-dropdown-check{width:1rem;text-align:center;font-size:.8rem}.tag-dropdown-clear{color:var(--accent);border-bottom:1px solid var(--border);font-weight:500}.midi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1.5rem;gap:1.5rem;margin:0 auto;width:100%}.midi-card{background:var(--bg-card);border:1px solid var(--border-subtle);padding:.75rem 1rem;border-radius:4px;text-align:left;transition:border-color .2s;cursor:pointer;display:flex;flex-direction:column;gap:.75rem}.midi-card:hover{border-color:var(--border-hover)}.midi-card h3{margin-bottom:.15rem;color:var(--text-heading-3);font-size:.95rem;overflow-wrap:break-word;word-break:break-word}.midi-card-body{flex:1 1;min-width:0}.midi-card-footer{display:flex;gap:.5rem;justify-content:center;margin-top:auto}.midi-card-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.midi-card-header h3{margin-bottom:0}.midi-card-header .midi-details{margin-top:0}.midi-card .midi-meta{font-size:.8rem;margin:0;line-height:1.4;opacity:.7}.midi-details{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.btn-sm{padding:.35rem .9rem;font-size:.85rem}.btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-medium)}.btn-secondary:hover{border-color:var(--border-medium-hover)}.btn-danger{background:rgba(200,60,60,.15);color:var(--error-text);border:1px solid var(--error-border)}.btn-danger:hover{background:rgba(200,60,60,.25)}.btn:disabled{opacity:.6;cursor:not-allowed}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2rem}.page-info{color:var(--text-muted)}.site-title{text-decoration:none;color:inherit}.site-title-row{gap:.5rem}.discord-link,.site-title-row{display:flex;align-items:center}.discord-link{color:var(--text-secondary);transition:color .2s;position:relative;top:-1px}.discord-link:hover{color:#5865F2}.header-auth,.user-info{display:flex;align-items:center}.user-info{gap:.6rem}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.user-name{color:var(--text-secondary-hover);font-size:.9rem;font-weight:500}.btn-discord{display:inline-block;padding:.5rem 1rem;background:#5865F2;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;text-decoration:none;cursor:pointer;transition:background .2s}.btn-discord:hover{background:#4752c4}.btn-logout{background:transparent;border:1px solid var(--border-medium);color:var(--text-secondary);padding:.35rem .75rem;border-radius:6px;font-size:.8rem;cursor:pointer;transition:color .2s,border-color .2s}.btn-logout:hover{color:var(--text-secondary-hover);border-color:var(--border-medium-hover)}.auth-error-banner{display:flex;justify-content:center;align-items:center;gap:1rem;padding:.75rem 2rem;background:var(--error-bg);border-bottom:1px solid var(--error-border);color:var(--error-text);font-size:.9rem}.error-dismiss{background:none;border:none;color:var(--error-text);font-size:1.2rem;cursor:pointer;padding:0 .25rem}.error-dismiss:hover{color:#fff}.upload-form{max-width:600px;margin:0 auto;text-align:left}.upload-analysis{background:var(--card-bg);border:1px solid var(--border);border-radius:4px;padding:.875rem 1rem;margin-bottom:1.5rem}.upload-analysis-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;opacity:.5;margin:0 0 .5rem}.upload-analysis-grid{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.upload-track-table{width:100%;border-collapse:collapse;margin-top:.4rem;font-size:.85rem}.upload-track-table td,.upload-track-table th{text-align:left;padding:.2rem .6rem .2rem 0;border-bottom:1px solid var(--border);opacity:.9}.upload-track-table th{opacity:.5;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.upload-track-table tr:last-child td{border-bottom:none}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.4rem;color:var(--text-label);font-size:.9rem;font-weight:500}.form-input{width:100%;padding:.75rem 1rem;border:1px solid var(--border-input);border-radius:4px;background-color:var(--bg-input);color:var(--text-primary);font-size:1rem;font-family:inherit;transition:border-color .2s}.form-input:focus{border-color:var(--accent-input-focus);outline:none}.tag-checkboxes{display:flex;flex-wrap:wrap;gap:.5rem}.tag-checkbox{display:flex;align-items:center;gap:.3rem;color:var(--text-secondary);font-size:.85rem;cursor:pointer}.tag-pill-grid{display:flex;flex-wrap:wrap;gap:.4rem}.tag-pill{padding:.3rem .75rem;border-radius:999px;border:1.5px solid var(--border-input);background:transparent;color:var(--text-secondary);font-size:.82rem;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.tag-pill:hover{border-color:var(--accent);color:var(--text-primary)}.tag-pill-selected{background:var(--accent);border-color:var(--accent);color:#fff}.tag-pill:disabled{opacity:.5;cursor:not-allowed}.section-subtitle{font-size:1.2rem;font-weight:600;color:var(--text-subtitle);margin-bottom:1rem}.modal-overlay{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal-content{background:var(--bg-modal);border:1px solid var(--border-medium);border-radius:6px;padding:2rem 2rem 1rem;max-width:550px;width:100%;max-height:85vh;overflow-y:auto;position:relative;text-align:left}.modal-content h2{font-size:1.4rem;color:var(--text-modal);margin-bottom:1rem;padding-right:2rem}.modal-close{position:absolute;top:1rem;right:1.25rem;background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;line-height:1;transition:color .2s}.modal-close:hover{color:var(--text-primary)}.modal-details p{color:var(--text-modal-body);margin-bottom:.5rem;font-size:.95rem}.modal-details strong{color:var(--text-modal-strong)}.modal-details a{color:var(--accent-hover);text-decoration:underline}.modal-notes{color:var(--text-secondary);font-size:.85rem;white-space:pre-line;margin-top:.25rem}.modal-footer-source{margin-top:.75rem;padding-top:.5rem;border-top:1px solid var(--border-modal-footer);color:var(--text-muted);font-size:.8rem;text-align:left}@media (max-width:620px){.card,.midi-card,.search-input{width:100%}.filter-form{flex-direction:column;align-items:stretch}.hamburger{display:flex}.header-collapse{display:none;width:100%;flex-direction:column;align-items:flex-start;gap:.75rem;padding-top:1rem}.header-collapse-open{display:flex}.header-collapse nav{display:flex;flex-direction:column;gap:.25rem}.header-collapse nav a{margin:0;padding:.4rem 0}}.manage-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.manage-filters{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex:1 1}.manage-filter-input,.manage-filter-select,.manage-search{background:var(--bg-input);border:1px solid var(--border-input);border-radius:4px;padding:.5rem .75rem;color:var(--text-primary);font:inherit;font-size:.9rem;outline:none;height:38px;box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none}.manage-filter-input{width:130px}.manage-filter-input::placeholder{color:var(--text-muted)}.manage-filter-select{cursor:pointer;color-scheme:dark;padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236a6a7a' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.manage-filter-select option{background:var(--bg-modal);color:var(--text-primary)}.manage-search-btn{margin-top:0;height:38px;padding:0 1.25rem;flex-shrink:0}.manage-bulk-actions{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.manage-bulk-sep{color:var(--text-muted)}.manage-bulk-btn{background:none;border:none;cursor:pointer;font:inherit;font-size:.875rem;padding:0;text-decoration:underline}.manage-bulk-delete{color:var(--error-text)}.manage-bulk-delete:hover{opacity:.8}.column-picker{position:relative;margin-left:auto}.column-picker-btn{display:flex;align-items:center;gap:.35rem;font-size:.8rem;padding:.4rem .7rem;white-space:nowrap}.column-picker-dropdown{position:absolute;top:100%;right:0;z-index:100;margin-top:.35rem;min-width:160px;background:var(--card-bg,#1e1e2e);border:1px solid var(--border,#2a2a3a);border-radius:6px;padding:.5rem 0;box-shadow:0 4px 16px rgba(0,0,0,.4)}.column-picker-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;cursor:pointer;font-size:.825rem;color:var(--text-primary,#e0e0e8);white-space:nowrap}.column-picker-item:hover{background:var(--hover-bg,#2a2a3a)}.column-picker-item input[type=checkbox]{accent-color:var(--accent,#5865F2)}.manage-source-link{color:var(--accent,#5865F2);text-decoration:none}.manage-source-link:hover{text-decoration:underline}.manage-table-wrap{width:100%;overflow-x:auto}.manage-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem 0}.manage-page-info{color:var(--text-secondary);font-size:.9rem}.manage-table{width:100%;border-collapse:collapse;font-size:.875rem}.manage-table th{color:var(--text-secondary);font-weight:500;font-size:.8rem;border-bottom:1px solid var(--border-medium);white-space:nowrap}.manage-table td,.manage-table th{text-align:left;padding:.5rem .75rem}.manage-table td{border-bottom:1px solid var(--border-faint);color:var(--text-primary);vertical-align:middle;line-height:1.35;font-size:.85rem}.manage-table tbody tr:nth-child(2n){background:var(--bg-card)}.manage-col-tags{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-check-col{width:2.5rem;text-align:center}.manage-checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1.15rem;height:1.15rem;border:1px solid var(--border-medium);border-radius:3px;background:var(--bg-input);cursor:pointer;position:relative;vertical-align:middle;transition:background .15s,border-color .15s}.manage-checkbox:hover{border-color:var(--border-medium-hover)}.manage-checkbox:checked{background:var(--bg-input);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.manage-checkbox:checked:after{content:"";position:absolute;left:3px;top:.5px;width:5px;height:9px;border:solid var(--accent);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}.manage-sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.manage-sortable:hover{color:var(--text-primary)}.sort-arrows{display:inline-flex;flex-direction:column;font-size:.4rem;line-height:.55;vertical-align:middle;margin-left:.25rem;color:var(--border-medium)}.sort-active{color:var(--text-primary)}.manage-row:hover{background:var(--bg-card-hover)}.manage-row-selected,.manage-row-selected:hover{background:var(--tag-active-bg)}.manage-title-link{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;padding:0;text-decoration:underline;text-align:left}.manage-title-link:hover{color:var(--accent-hover)}.text-muted{color:var(--text-muted)}.text-nowrap{white-space:nowrap}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty-state .btn{margin-top:1.5rem}.edit-modal{max-height:90vh;overflow-y:auto}.edit-error,.edit-form .form-group{margin-bottom:1rem}.edit-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);padding:.75rem 1rem;border-radius:4px;font-size:.9rem}.edit-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.edit-actions .btn{margin-top:0}.confirm-dialog{background:var(--bg-modal);border-radius:12px;padding:2rem;max-width:450px;width:90%;color:var(--text-modal)}.confirm-dialog h3{margin-bottom:1rem;color:var(--text-heading)}.confirm-dialog p{color:var(--text-modal-body);line-height:1.5}@media (max-width:768px){.manage-table{font-size:.85rem}.manage-table td,.manage-table th{padding:.5rem .75rem}}.player-controls{gap:.75rem;margin-top:1.25rem}.btn-play,.player-controls{display:flex;align-items:center}.btn-play{width:2.5rem;height:2.5rem;min-width:2.5rem;border-radius:50%;justify-content:center;font-size:1rem;padding:0;flex-shrink:0;background:var(--accent);color:#fff;border:none;cursor:pointer;transition:opacity .15s}.btn-play:hover:not(:disabled){opacity:.85}.btn-play:disabled{opacity:.5;cursor:default}.player-loading-dot{width:10px;height:10px;border:2px solid #fff;border-top-color:transparent;border-radius:50%;display:inline-block;animation:player-spin .75s linear infinite}@keyframes player-spin{to{transform:rotate(1turn)}}.player-progress-bar{flex:1 1;height:6px;background:var(--border-light,#ddd);border-radius:3px;overflow:hidden}.player-progress-bar-seekable{cursor:pointer;height:10px;border-radius:5px;touch-action:none}.player-progress-bar-seekable:hover{height:12px;border-radius:6px}.player-progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .25s linear}.player-time{font-size:.75rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:7.5ch;text-align:right}.btn-card-dl,.btn-play-card{width:5.5rem;padding:.35rem .75rem;font-size:.85rem;margin-top:0;display:flex;align-items:center;justify-content:center}.btn-play-card{min-width:0;padding:.35rem .75rem;background:transparent;border:1px solid var(--border-medium);color:var(--text-body);transition:background .15s,color .15s,border-color .15s}.btn-play-card.playing,.btn-play-card:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.btn-play-card:disabled{opacity:.5;cursor:default}.midi-card-playing{box-shadow:0 0 0 2px var(--accent)}.midi-visualizer{margin-top:.75rem}.viz-track-controls{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}.viz-track-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border-radius:999px;border:1px solid var(--track-color,#888);background:transparent;color:var(--text);font-size:.72rem;cursor:pointer;transition:opacity .15s,background .15s;white-space:nowrap}.viz-track-pill:hover{background:color-mix(in srgb,var(--track-color,#888) 15%,transparent)}.viz-track-muted{opacity:.35;text-decoration:line-through}.viz-track-dot{width:8px;height:8px;border-radius:50%;background:var(--track-color,#888);flex-shrink:0}.viz-canvas-wrap{width:100%;border-radius:6px;overflow:hidden;border:1px solid var(--border-light,rgba(255,255,255,.08))}.viz-canvas-wrap canvas{display:block;width:100%}.view-toggle{display:flex;gap:.25rem;justify-content:flex-end;max-width:1800px;margin:0 auto .75rem;width:100%;padding:0 .25rem}.view-toggle-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid var(--border-light,rgba(255,255,255,.1));border-radius:6px;background:transparent;color:var(--text-muted,#6a6a7a);cursor:pointer;transition:background .15s,color .15s}.view-toggle-btn:hover{background:rgba(255,255,255,.05);color:var(--text)}.view-toggle-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.midi-list-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-bottom:1px solid var(--border-light,rgba(255,255,255,.06));cursor:pointer;transition:background .1s;min-height:44px}.midi-list-row:hover{background:rgba(255,255,255,.03)}.list-row-play{width:1.75rem;height:1.75rem;min-width:1.75rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;padding:0;flex-shrink:0;background:var(--accent);color:#fff;border:none;cursor:pointer;transition:opacity .15s}.list-row-play:hover:not(:disabled){opacity:.85}.list-row-play:disabled{opacity:.5;cursor:default}.list-row-title{flex:1 1;font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;text-align:left}.list-row-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.list-row-meta{color:var(--text-muted,#6a6a7a);font-size:.8rem;white-space:nowrap;flex-shrink:0;width:10rem;overflow:hidden;text-overflow:ellipsis}.list-row-duration{width:3.5rem;text-align:right}.list-row-dl{flex-shrink:0;font-size:.75rem;padding:.25rem .6rem;margin:0}.midi-list-header{display:flex;align-items:center;gap:.75rem;padding:.4rem .75rem;border-bottom:2px solid var(--border-light,rgba(255,255,255,.1));font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted,#6a6a7a)}@media (max-width:768px){.list-row-meta:not(.list-row-duration),.midi-list-header{display:none}}