:root{--bg:#0b0c0f;--bg2:#111318;--panel:#15181e;--panel2:#1c2027;--line:#23272f;--line2:#2f343d;--text:#f3f1ec;--muted:#9aa0ab;--dim:#6b717c;--accent:#fdcd2f;--accent2:#f5a700;--ink:#17120a;--soft:#fdcd2f1f;--grad:linear-gradient(135deg, #ffe07a, #fdcd2f 45%, #f5a700);--ok:#3ecf7a;--bad:#ff5a5a;--body:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:15px/1.45 var(--body);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--accent);color:var(--ink)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line2);background:var(--panel2);border-radius:999px;padding:8px 16px;font-weight:500;transition:border-color .2s,background .2s,transform .15s}button:hover:not(:disabled){border-color:#4a505b}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--grad);color:var(--ink);border-color:#ffe07a99;font-weight:700;box-shadow:0 8px 26px -12px #fdcd2f99,inset 0 1px #fff6}button.primary:hover:not(:disabled){border-color:#ffe07a}button.ghost{background:0 0}input,select,textarea{background:var(--bg2);border:1px solid var(--line2);border-radius:12px;padding:7px 11px}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px}.muted{color:var(--muted)}.small{font-size:13px}.center{place-items:center;min-height:100vh;padding:16px;display:grid}.card{background:linear-gradient(180deg, #ffffff0a, #ffffff03), var(--panel);border:1px solid var(--line);border-radius:22px;padding:28px}.login{flex-direction:column;gap:10px;width:100%;max-width:380px;display:flex}.logo{align-items:center;gap:10px;display:flex}.logo img{height:26px;display:block}.logo small{color:var(--accent);font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;background:var(--soft);border:1px solid #fdcd2f59;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:500}.logo.big{flex-direction:column;justify-content:center;gap:12px;margin-bottom:8px}.logo.big img{height:40px}.center{background:radial-gradient(circle at 50% 0,#fdcd2f24,#0000 55%)}.app{max-width:1400px;margin:0 auto;padding:0 16px 40px}.top{z-index:2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);background:#0b0c0fdb;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 0;display:flex;position:sticky;top:0}.tabs{gap:6px;display:flex}.tabs button.on{background:var(--grad);color:var(--ink);border-color:#ffe07a99;font-weight:700}.spacer{flex:1}.band{font-weight:700}.notice{color:#d6dae1;border:1px solid var(--line2);cursor:pointer;background:#ffffff0a;border-radius:14px;margin:12px 0;padding:10px 14px}.notice.bad{color:#ffc4c4;background:#ff5a5a1a;border-color:#ff5a5a59}.notice.ok{color:#b9f3cf;background:#3ecf7a1a;border-color:#3ecf7a59}.notice.info{color:#ffe7a3;background:#fdcd2f14;border-color:#fdcd2f4d}.sources{grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;display:grid}@media (width<=800px){.sources,.work{grid-template-columns:1fr!important}}.drop{border:2px dashed var(--line2);text-align:center;cursor:pointer;border-radius:22px;flex-direction:column;justify-content:center;gap:6px;min-height:180px;padding:30px 20px;display:flex}.drop:hover,.drop.over{border-color:var(--accent);background:var(--soft)}.dropBig{font-size:18px;font-weight:700}.paste{flex-direction:column;gap:8px;display:flex}.paste textarea{resize:vertical;min-height:140px;font-family:var(--mono);flex:1;font-size:13px}.paste button{align-self:flex-end}.work{margin-top:16px}.list{max-height:42vh;overflow:auto}.impEdit{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:14px;display:grid}@media (width<=1100px){.impEdit{grid-template-columns:1fr}}.impEdit .bodyIn{min-height:480px}.impEdit .sideBody{max-height:640px}.paneTitle{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:40%;font-weight:700;overflow:hidden}.edRow{flex:1;min-height:0;display:flex}.edRow .bodyIn{flex:1;min-width:0}.palette{border-left:1px solid var(--line);flex-direction:column;flex:none;gap:6px;width:150px;max-height:640px;padding:8px;display:flex;overflow:auto}.palLabel{color:var(--accent);font-family:var(--mono);text-transform:uppercase;letter-spacing:1.5px;margin-top:4px;font-size:10px}.palGrid{grid-template-columns:1fr 1fr;gap:5px;display:grid}.palette .chordBtn{font-family:var(--mono);color:var(--accent);text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:10px;padding:6px 4px;font-weight:700;overflow:hidden}.palette .chordBtn.dia{color:var(--text);border-style:dashed}.palette .chordBtn:hover:not(:disabled),.palette .secBtn:hover:not(:disabled){border-color:var(--accent)}.palette .secBtn{border-radius:10px;padding:5px 4px;font-size:12px}.palInput{width:100%;padding:6px 8px;font-size:13px}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--line);padding:6px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--line);vertical-align:top;padding:6px}tr{cursor:pointer}tr.sel td{background:#fdcd2f14}tr.off td{opacity:.45}td.warn{color:var(--accent)}.cell{width:120px;padding:5px 8px}.cell.wide{width:190px}.cell.num{width:56px}.src{color:var(--muted);margin-top:2px;font-size:12px}.src.warn{color:var(--accent)}.tag{background:var(--bg2);border:1px solid var(--line2);font-size:12px;font-family:var(--mono);border-radius:999px;padding:2px 9px;display:inline-block}.tag.ok{color:var(--ok);border-color:#1f5a37}.tag.bad{color:var(--bad);text-overflow:ellipsis;white-space:nowrap;border-color:#6b2227;max-width:220px;overflow:hidden}.dup{padding:4px 6px;font-size:13px}.actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.check{align-items:center;gap:8px;display:flex}.preview{background:var(--panel);border:1px solid var(--line);border-radius:18px;max-height:calc(100vh - 90px);padding:16px;position:sticky;top:70px;overflow:auto}.pvHead{align-items:baseline;gap:10px;margin-bottom:10px;font-size:18px;display:flex}.song{font-size:17px}.sec{margin-bottom:16px}.sec.chorus{border-left:3px solid var(--accent);padding-left:10px}.secLabel{color:var(--accent);font-family:var(--mono);letter-spacing:2px;text-transform:uppercase;margin-bottom:5px;font-size:11px}.line{flex-wrap:wrap;align-items:flex-end;display:flex}.seg{white-space:pre;flex-direction:column;display:inline-flex}.ch{color:var(--accent);font-family:var(--mono);padding-right:4px;font-size:14px;font-weight:700}.gap{height:10px}.comment{color:var(--muted);font-style:italic}details{margin-top:12px}summary{color:var(--muted);cursor:pointer}.src-edit{width:100%;min-height:300px;font-family:var(--mono);margin-top:8px;font-size:13px}.help{color:var(--muted);max-width:760px;margin-top:24px}.help h3{color:var(--text)}.search{width:100%;margin-bottom:10px}.pad{padding:12px}.repo{grid-template-columns:270px minmax(0,1fr);gap:16px;margin-top:14px;display:grid}.songList{flex-direction:column;align-self:start;gap:8px;max-height:calc(100vh - 90px);display:flex;position:sticky;top:70px}.songList .items{border:1px solid var(--line);background:var(--panel);border-radius:16px;overflow:auto}.songList .item{border-bottom:1px solid var(--line);cursor:pointer;padding:8px 10px}.songList .item:hover{background:var(--panel2)}.songList .item.sel{box-shadow:inset 3px 0 0 var(--accent);background:#fdcd2f17}.songList .t{font-weight:600}.songList .sub{color:var(--muted);font-size:12px}.editor{flex-direction:column;gap:10px;display:flex}.edHead{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.titleIn{letter-spacing:-.3px;flex:2;min-width:220px;font-size:22px;font-weight:800}.artistIn{flex:1;min-width:160px}.meta{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.meta label{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.meta .num,.toolbar .num{width:76px}.transpose{align-items:center;gap:6px;margin-left:6px;display:flex}.toolbar{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chips button{padding:5px 10px}.chordBtn{color:var(--accent);border-color:#fdcd2f66;font-weight:700}.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}@media (width<=1100px){.split,.repo{grid-template-columns:1fr}.songList{max-height:300px;position:static}}.pane{border:1px solid var(--line);background:var(--panel);border-radius:18px;flex-direction:column;min-height:560px;display:flex;overflow:hidden}.paneHead{border-bottom:1px solid var(--line);color:var(--muted);background:var(--bg2);align-items:center;gap:6px;padding:8px 12px;font-size:13px;display:flex}button.mini{padding:3px 9px;font-size:13px}button.mini.on{background:var(--grad);color:var(--ink);border-color:#ffe07a99;font-weight:700}button.danger{color:#ffc4c4;background:#ff5a5a14;border-color:#ff5a5a73}.bodyIn{background:var(--bg);min-height:520px;font-family:var(--mono);resize:vertical;border:0;border-radius:0;flex:1;padding:12px;line-height:1.5}.sideBody{flex:1;max-height:calc(100vh - 260px);padding:14px;overflow:auto}.warnList{color:var(--accent);border-top:1px solid var(--line);padding:6px 10px;font-size:12px}.warnTag{color:var(--accent);border-color:#fdcd2f66}.row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.songImg{background:#fff;border-radius:6px;max-width:100%;margin:6px 0;display:block}.help-panel h3{color:var(--accent);margin:16px 0 6px;font-size:15px;font-weight:700}.help-panel h3:first-child{margin-top:0}.help-panel p{color:var(--text);margin:6px 0;font-size:14px}.ex{background:var(--bg);border:1px solid var(--line);white-space:pre-wrap;border-radius:8px;margin:6px 0;padding:8px 10px;font-size:13px}.history table td{font-size:13px}.revPreview{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.codeIn{letter-spacing:6px;text-align:center;font-size:24px}button.linkBtn{color:var(--accent);background:0 0;border:0;padding:4px}.modalBack{z-index:50;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{flex-direction:column;gap:14px;width:100%;max-width:640px;display:flex}.modalHead{justify-content:space-between;align-items:center;display:flex}.modalHead h2{margin:0;font-size:20px}.fld{flex-direction:column;gap:6px;display:flex}.fld span{color:var(--muted);font-size:13px}.bandCols{grid-template-columns:1fr 1fr;gap:12px;display:grid}.bandBox{background:var(--panel2);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.bandBox h3{margin:0;font-size:15px}.bandBox p{margin:0}.bandBox .codeIn{letter-spacing:6px;text-align:center;font-size:20px;font-weight:700}@media (width<=640px){.bandCols{grid-template-columns:1fr}}.list th{background:var(--bg);z-index:1;position:sticky;top:0}.newSl{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:6px;padding:10px;display:flex}.songList .item.past .t{color:var(--muted)}.accent{color:var(--accent)}.slGrid{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:14px;display:grid}@media (width<=1100px){.slGrid{grid-template-columns:1fr}}.sets{flex-direction:column;gap:12px;display:flex}.setCard{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden}.setCard.target{border-color:#fdcd2f73}.setHead{background:var(--bg2);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 12px;display:flex}.setName{font-family:var(--mono);letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);background:0 0;border-color:#0000;width:180px;font-size:13px}.setName:hover:not(:disabled){border-color:var(--line2)}.entries{flex-direction:column;gap:4px;padding:6px;display:flex}.entry{border:1px solid var(--line);background:var(--panel2);border-radius:12px;align-items:center;gap:10px;padding:7px 10px;display:flex}.entry[draggable=true]{cursor:grab}.entry.dragging{opacity:.4}.entry.over{box-shadow:inset 0 3px 0 var(--accent)}.entry .grip{color:var(--dim);font-size:14px}.entry .num{color:var(--dim);font-family:var(--mono);text-align:right;width:20px;font-size:12px}.eMain{flex:1;min-width:0}.eTitle{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.entry .sub,.pick .sub{color:var(--muted);font-size:12px}.entry .dur{font-family:var(--mono);color:var(--muted);font-size:12px}.eBtns{opacity:.35;gap:4px;transition:opacity .15s;display:flex}.entry:hover .eBtns{opacity:1}.eBtns button.mini{padding:2px 8px}.dropEnd{border:1px dashed var(--line2);text-align:center;color:var(--dim);border-radius:12px;min-height:34px;padding:8px;font-size:12px}.dropEnd.over{border-color:var(--accent);background:var(--soft);color:var(--accent)}.addSet{align-self:flex-start}.pickerPane{border:1px solid var(--line);background:var(--panel);border-radius:18px;position:sticky;top:70px;overflow:hidden}.pickerBody{padding:10px}.pickList{flex-direction:column;gap:4px;max-height:calc(100vh - 230px);display:flex;overflow:auto}.pick{cursor:pointer;border:1px solid #0000;border-radius:10px;padding:7px 10px}.pick:hover{background:var(--panel2);border-color:var(--line2)}.pick .t{font-weight:600}.pick.used .t{color:var(--muted)}
