:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#ececf4;background:#111117;color-scheme:dark;font-size:15px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:#262632;border:1px solid #373744;border-radius:7px;padding:.65rem .9rem}button:hover{border-color:#858dff}button:disabled{opacity:.5;cursor:default}button.primary{background:#4157ff;border-color:#4157ff;font-weight:650;min-height:46px}input,select,textarea{display:block;width:100%;border:1px solid #373744;background:#1b1b25;border-radius:7px;padding:.7rem;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #6b7aff;outline-offset:1px}textarea{resize:vertical;line-height:1.5;font-family:ui-monospace,monospace}input[type=checkbox]{width:auto;display:inline-block;accent-color:#6171ff;margin:0;flex-shrink:0}label{display:block;color:#bebecd;margin:.9rem 0 .35rem;font-size:.94rem}h1,h2,p{margin-top:0}h1{font-size:1.3rem;margin:0}h2{font-size:1rem;margin-bottom:1rem}.app{max-width:1240px;margin:auto;padding:1.3rem}header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.4rem}.brand{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.logo{color:#8195ff;font-size:1.8rem;font-weight:700}.chip{font-size:.76rem;border:1px solid #3c446e;border-radius:20px;padding:.22rem .65rem;color:#bcc6ff;white-space:nowrap}.hint{font-size:.84rem;color:#9696ab;line-height:1.5;margin:.55rem 0 .8rem}.columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:1rem;align-items:start}.card{background:#16161f;border:1px solid #2c2c3a;border-radius:10px;padding:1.2rem;min-width:0}.card>h2{color:#b4b5cc}.input-row{display:flex;gap:.5rem;align-items:center}.input-row button{white-space:nowrap}.input-row input{flex:1}.pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.lyrics-heading{margin-top:1rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.lyrics-heading label{margin:0}.lyrics-heading select{max-width:205px;font-size:.82rem}.lyrics-heading button{font-size:.82rem}.check{display:flex;align-items:center;gap:.65rem;line-height:1.5;margin:.9rem 0}.results,.advanced{border-top:1px solid #343443;margin-top:1rem;padding-top:1rem}summary{cursor:pointer;color:#bcc6ff;line-height:1.6}.results{margin:.6rem 0}.results div{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.5rem 0;font-size:.82rem}.results button{font-size:.78rem;flex-shrink:0}.existing{margin-top:1rem}.submit-row{display:flex;gap:1rem;align-items:center;padding:1rem 0;min-height:78px}.submit-row button{min-width:220px}.submit-row p{font-size:.9rem;color:#bac4ff;margin:0}.queue{margin-top:.5rem}.queue-heading{display:flex;align-items:center;justify-content:space-between}.queue-heading h2{margin:0}.queue ol{list-style:none;margin:0;padding:0}.queue li{display:flex;align-items:center;gap:.9rem;border-top:1px solid #30303f;padding:.9rem 0}.queue li>div{flex:1;min-width:0;overflow-wrap:anywhere}.queue small{display:block;color:#9696ab;margin-top:.3rem}.job-id{color:#8d8da5;font-size:.82rem}.status{font-size:.8rem;white-space:nowrap;color:#b2b2c5}.status.done{color:#8cdaa1}.status.running{color:#aebcff}.status.error,.status.interrupted{color:#e4b55c}.notice{padding:.8rem;border-radius:7px;background:#30261b;color:#efcc8c}.unlock{max-width:470px;margin:10vh auto;padding:1.5rem;background:#191923;border:1px solid #333342;border-radius:12px}.unlock h2{margin-top:1rem}.unlock p{color:#b6b6c9;line-height:1.5}.unlock button{margin-top:1rem;width:100%}.unlock [role=status]{margin-top:1rem}.warning{overflow-wrap:anywhere}@media (max-width:800px){.columns{grid-template-columns:1fr}.app{padding:1rem}header>.hint{display:none}.options{order:0}.submit-row{flex-direction:column;align-items:stretch}.submit-row button{width:100%}.queue li{flex-wrap:wrap}.queue li>div{min-width:65%}.status{margin-left:2rem}}@media (max-width:480px){input,select,textarea{font-size:16px}.card{padding:.9rem}.pair{grid-template-columns:1fr;gap:0}.song>.input-row{flex-wrap:wrap}.song>.input-row input{flex-basis:100%}.lyrics-heading .input-row{flex-wrap:wrap}.queue li{gap:.55rem}.brand{gap:.5rem}.chip{font-size:.7rem}.results div{flex-wrap:wrap}.queue li>div{min-width:75%}}
