:root{--bg:#17181a;--panel:#1f2124;--panel-2:#26292d;--line:#33373c;--text:#e8e9ea;--muted:#9aa0a6;--accent:#4ade80;--warn:#e0bb3c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Montserrat,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.loading{color:var(--muted);padding:2rem}.screen{max-width:720px;padding-bottom:calc(7.5rem + env(safe-area-inset-bottom));margin:0 auto}.pad{padding:.7rem .9rem 0}.hint{color:var(--muted);margin:.3rem 0 .6rem;font-size:.82rem}.hint-inline{color:var(--muted);font-size:.7rem}.tabs{z-index:20;padding:.5rem .9rem calc(.5rem + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);background:#17181af0;gap:.4rem;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{background:var(--panel);border:1px solid var(--line);letter-spacing:.1em;text-transform:uppercase;max-width:340px;color:var(--muted);border-radius:9px;flex:1;margin:0 auto;padding:.65rem .8rem;font-size:.74rem;font-weight:700}.tab-on{color:var(--accent);border-color:var(--accent);background:var(--panel-2)}.head{padding:.9rem .9rem .2rem}.head-top{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.head h1{letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:1.05rem;font-weight:700}.progress{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem}.actions{flex-wrap:wrap;gap:.4rem;margin-top:.6rem;display:flex}.action{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:6px;padding:.42rem .7rem;font-size:.74rem}.action:hover{color:var(--text);border-color:var(--muted)}.action-on{color:var(--accent);border-color:var(--accent)}select.action{appearance:none;padding-right:1.4rem}.sticky-bar{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#17181af2;padding:.55rem .9rem .5rem;position:sticky;top:0}.search{background:var(--panel);border:1px solid var(--line);border-radius:8px;width:100%;padding:.6rem .75rem}.search:focus{border-color:var(--accent);outline:none}.colors{flex-wrap:wrap;gap:.28rem;margin-top:.5rem;display:flex}.swatch{opacity:.7;border:2px solid #0000;border-radius:6px;min-width:2.1rem;height:1.95rem;padding:0 .38rem;font-size:.7rem;font-weight:700}.swatch-on{opacity:1;border-color:var(--text)}.swatch-clear{color:var(--muted);border:1px solid var(--line);background:0 0;font-weight:500}.filters{scrollbar-width:none;gap:.4rem;margin-top:.5rem;display:flex;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.filter{background:var(--panel);border:1px solid var(--line);white-space:nowrap;border-radius:999px;flex:none;padding:.38rem .68rem;font-size:.75rem}.filter b{color:var(--muted);margin-left:.25rem;font-weight:600}.filter-on{border-color:var(--accent);color:var(--accent)}.filter-on b{color:var(--accent)}.notice{background:var(--panel-2);border-left:3px solid var(--accent);border-radius:4px;margin:.5rem 0 0;padding:.5rem .65rem;font-size:.78rem}.cover-img,.cover-empty{object-fit:cover;background:var(--panel-2);border-radius:6px;flex:none;display:block}.cover-empty{background:radial-gradient(circle at 50% 50%, var(--line) 0 6%, transparent 6%), radial-gradient(circle at 50% 50%, transparent 0 21%, var(--line) 21% 23%, transparent 23%), radial-gradient(circle at 50% 50%, transparent 0 39%, var(--line) 39% 41%, transparent 41%), var(--panel-2)}.cover-edit{cursor:pointer;flex:none;display:block;position:relative}.cover-edit:after{content:"";border:1px dashed var(--muted);opacity:0;border-radius:6px;position:absolute;inset:0}.cover-edit:hover:after{opacity:1}.code{letter-spacing:.02em;font-variant-numeric:tabular-nums;text-align:center;flex:none;min-width:2.6rem;font-size:1.32rem;font-weight:700}.code-empty{color:var(--line);font-weight:400}.row-id{flex-direction:column;flex:1;align-items:flex-start;gap:.16rem;min-width:0;display:flex}.tag{font-variant-numeric:tabular-nums;border-radius:4px;align-self:flex-start;padding:.16rem .4rem;font-size:.74rem;font-weight:700}.tag-conflict{outline:2px solid var(--warn);outline-offset:1px}.row-title{width:100%;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.79rem;overflow:hidden}.row-sub,.row-why{color:#6f767d;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;width:100%;font-size:.68rem;overflow:hidden}.list{flex-direction:column;gap:.45rem;padding:.6rem 0 0;display:flex}.pad .list{padding-top:.55rem}.empty{color:var(--muted);text-align:center;padding:2rem 0}.row{background:var(--panel);border:1px solid var(--line);border-radius:10px;align-items:center;gap:.6rem;padding:.5rem .6rem;display:flex}.row-off{opacity:.45}.row-tap{text-align:left;width:100%}.row-main{text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:.6rem;min-width:0;padding:0;display:flex}.row-bpm{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.78rem}.row-score{color:var(--accent);font-variant-numeric:tabular-nums;text-align:right;flex:none;min-width:2.1rem;font-size:1rem;font-weight:700}.votes{flex:none;gap:.25rem;display:flex}.vote{border:1px solid var(--line);width:2.15rem;height:2.15rem;color:var(--muted);background:0 0;border-radius:7px;font-size:.88rem}.vote-yes{border-color:var(--accent);color:var(--accent)}.vote-no{border-color:var(--warn);color:var(--warn)}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.card-playing{border-color:var(--accent)}.card-head{cursor:pointer;align-items:center;gap:.6rem;padding:.55rem .6rem;display:flex}.card-id{flex-direction:column;flex:1;align-items:flex-start;gap:.16rem;min-width:0;display:flex}.missing{text-align:left;width:100%;color:var(--warn);background:0 0;border:none;padding:.2rem .65rem .5rem;font-size:.72rem;display:block}.conflict-note{color:var(--warn);background:#e0bb3c14;margin:0;padding:.5rem .65rem;font-size:.74rem}.editor,.add{border-top:1px solid var(--line);flex-direction:column;gap:.65rem;padding:.7rem .65rem .85rem;display:flex}.add{background:var(--panel);border:1px solid var(--accent);border-radius:10px;margin:.6rem .9rem 0}.field-row{gap:.5rem;display:flex}.field{flex-direction:column;flex:1;gap:.25rem;display:flex}.field-wide{width:100%}.field-grow{flex:3}.field-narrow{flex:1}.field span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.67rem}.field input{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;width:100%;padding:.5rem .55rem;font-size:.85rem}.field input:focus{border-color:var(--accent);outline:none}.chip-row{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.chip-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;flex:none;width:3.9rem;font-size:.67rem}.chip{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;min-width:2.1rem;padding:.4rem .5rem;font-size:.76rem;font-weight:600}.chip-on{border-color:var(--accent);color:var(--accent)}.editor-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.derived{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.71rem}.play{background:var(--accent);color:#10281a;border:none;border-radius:6px;padding:.45rem .8rem;font-size:.78rem;font-weight:700;text-decoration:none}.play:disabled{background:var(--panel-2);color:var(--muted)}.now{background:var(--panel);border:1px solid var(--accent);border-radius:10px;align-items:center;gap:.7rem;padding:.6rem .65rem;display:flex}.now-id{flex-direction:column;flex:1;align-items:flex-start;gap:.2rem;min-width:0;display:flex}.now-code{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700;line-height:1}.now-title{width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;overflow:hidden}.ghost{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:999px;flex:none;padding:.35rem .6rem;font-size:.71rem}.ghost-warn{border-color:var(--warn);color:var(--warn)}.ramp{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;margin-top:.6rem;display:flex}.ramp-line{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.ramp-line b{color:var(--accent);font-size:.98rem}.ramp-arrow{color:#6f767d;margin:0 .15rem}.ramp-count{color:#6f767d}.ramp-field{align-items:center;gap:.45rem;display:flex}.ramp-field input{width:6.5rem;accent-color:var(--accent)}.ramp-field b{font-variant-numeric:tabular-nums;min-width:2.1rem;font-size:.76rem}.player{left:0;right:0;bottom:calc(3.6rem + env(safe-area-inset-bottom));z-index:15;background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center;gap:.7rem;max-width:720px;margin:0 auto;padding:.5rem .9rem;display:flex;position:fixed}.player-tag{border-radius:5px;flex:none;padding:.28rem .42rem;font-size:.76rem;font-weight:700}.player-id{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.player-title{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:600;overflow:hidden}.player-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.69rem;overflow:hidden}.player-controls{align-items:center;gap:.3rem;display:flex}.player-controls button{border:1px solid var(--line);width:2.3rem;height:2.3rem;color:var(--muted);background:0 0;border-radius:50%;font-size:.68rem}.player-main{border-color:var(--accent)!important;color:var(--accent)!important}.now-actions{flex-direction:column;flex:none;gap:.3rem;display:flex}.ghost-link{text-align:center;text-decoration:none}.vote-link{color:var(--muted);place-items:center;text-decoration:none;display:grid}.vote-link:hover{color:var(--text);border-color:var(--muted)}.swatch{min-width:2.3rem;height:2.1rem}.grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:.6rem;display:grid}.tile{cursor:pointer;flex-direction:column;gap:.2rem;min-width:0;display:flex}.tile-img{aspect-ratio:1;object-fit:cover;background:var(--panel-2);border-radius:7px;width:100%;display:block}.tile:hover .tile-img{outline:2px solid var(--accent);outline-offset:1px}.tile-name{text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:600;overflow:hidden}.tile-sub{color:#6f767d;text-overflow:ellipsis;white-space:nowrap;font-size:.63rem;overflow:hidden}.disc-sides{border:1px solid var(--line);border-radius:9px;overflow:hidden}.disc-head{background:var(--panel-2);text-align:left;border:none;align-items:center;gap:.6rem;width:100%;padding:.5rem .6rem;display:flex}.cut-actions{flex-wrap:wrap;align-items:center;gap:.4rem;padding:.55rem .6rem 0;display:flex}.cut-list{margin:0;padding:.4rem .6rem;list-style:none}.cut-row{align-items:center;gap:.6rem;padding:.2rem 0;display:flex}.cut-row .code{min-width:2.2rem;font-size:1rem}.cut-row .row-title{flex:1}.cut-row .row-sub{flex:none;width:auto}.cut{border:none;border-top:1px dashed var(--line);letter-spacing:.08em;text-transform:uppercase;color:#0000;background:0 0;width:100%;margin:.15rem 0;padding:.18rem 0;font-size:.63rem;display:block}.cut:hover{color:var(--muted)}.cut-on{border-top:2px solid var(--accent);color:var(--accent)}.set-reglages{flex-wrap:wrap;gap:.6rem;margin-bottom:.6rem;display:flex}.set-champ{min-width:9rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;flex-direction:column;flex:1;gap:.15rem;font-size:.72rem;display:flex}.set-champ input{font:inherit;text-transform:none;letter-spacing:0;border:1px solid var(--line);color:inherit;background:0 0;border-radius:6px;padding:.4rem .55rem}.set-vide{color:var(--muted);padding:1rem 0}.set-suivant{margin:.6rem 0}.set-gestes{gap:.6rem;margin-top:.5rem;display:flex}.set-gestes .ghost{flex:1;padding:.8rem .5rem;font-size:1rem}.set-gestes .ghost-on{border-color:var(--accent,#4caf50);color:var(--accent,#4caf50)}.set-liste .row-on{outline:1px solid var(--accent,#4caf50)}.set-journal{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;padding:.6rem 0 1rem;font-size:.75rem;list-style:none}.set-journal .set-erreur{color:var(--warn,#ffb74d)}.set-url{gap:.3rem;display:flex}.set-url input{flex:1;min-width:0}.set-url .ghost{padding:.3rem .6rem}@media (width<=480px){.set-champ{min-width:100%}}
