/* MARKETPLACE SOUND — дизайн-система «Midnight Pulse 2.0»: графитовая ночь, фиолетово-бирюзовый пульс, волна как фирменный элемент. */
:root{
 --bg:#070A14;--bg2:#0A0F1F;--panel:#0D1326;--card:#121A30;--card2:#18213D;--line:#1F2944;--line2:#2B365A;
 --tx:#F3F5FF;--tx2:#A7AFCB;--tx3:#6D7697;--violet:#8B5CF6;--cyan:#00D9FF;--blue:#4263FF;--pink:#F472B6;--green:#34D399;--amber:#FBBF24;--red:#FB7185;
 --grad:linear-gradient(135deg,#8B5CF6,#4263FF);--grad2:linear-gradient(135deg,#8B5CF6 0%,#00D9FF 100%);--ac:#8B5CF6;
 --r:18px;--r2:14px;--r3:10px;--sh:0 18px 40px -18px rgba(0,0,0,.75);--glow:0 0 0 1px rgba(139,92,246,.4),0 12px 32px -12px rgba(139,92,246,.55);
 --fb:"Unbounded","Arial Black",system-ui,sans-serif;--ft:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;--fm:ui-monospace,"SF Mono","Cascadia Mono",Consolas,monospace;
 --ease:cubic-bezier(.2,.8,.2,1);--sbw:250px;--tbh:64px;--mph:86px;--tab:0px;--safe-b:env(safe-area-inset-bottom,0px);color-scheme:dark}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-padding-top:80px}
body{font:400 15px/1.5 var(--ft);color:var(--tx);background:radial-gradient(1100px 600px at 85% -10%,rgba(139,92,246,.13),transparent 60%),radial-gradient(900px 500px at -10% 30%,rgba(0,217,255,.05),transparent 60%),var(--bg);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
img{display:block;max-width:100%}svg.i{flex:none;display:block}
p>svg.i,small>svg.i,span>svg.i,.link>svg.i,.box>svg.i,li>svg.i,td>svg.i,label>svg.i,.lead>svg.i{display:inline-block;vertical-align:-.16em}.row>svg.i,.btn>svg.i,.chip>svg.i,.note>svg.i,.ib>svg.i,.pill>svg.i{display:block}[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:8px}
::selection{background:rgba(139,92,246,.45)}
h1{font:600 clamp(1.5rem,3.4vw,2.4rem)/1.12 var(--fb);letter-spacing:-.02em}h2{font:600 clamp(1.05rem,2vw,1.35rem)/1.2 var(--fb);letter-spacing:-.01em}h3{font:700 1.02rem/1.3 var(--ft)}
.mono{font-family:var(--fm);font-variant-numeric:tabular-nums;font-size:.82em}
.muted{color:var(--tx3)}.lead{color:var(--tx2);font-size:1.02rem}.note{display:flex;gap:.45rem;align-items:flex-start;color:var(--tx3);font-size:.8rem;margin-top:.7rem}.note svg{margin-top:2px}
.hint{color:var(--tx3);font-size:.8rem;margin:-.3rem 0 .5rem}.err{color:var(--red);font-size:.86rem;min-height:1.2em}.req{color:var(--red)}.ok{color:var(--green)}.no{color:var(--tx3)}
.row{display:flex;align-items:center}.gap{gap:.6rem}.between{justify-content:space-between}.end{justify-content:flex-end}.center{justify-content:center}.wrap{flex-wrap:wrap}.pad{padding:1rem}
.center-col{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem}.link{color:var(--cyan);font-size:.82rem}.skip{position:absolute;left:-999px;top:0;z-index:999;background:var(--violet);padding:.6rem 1rem;border-radius:8px}.skip:focus{left:8px;top:8px}

/* ---------- кнопки ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:44px;padding:0 1.25rem;border-radius:99px;background:var(--grad);color:#fff;font-weight:700;font-size:.92rem;white-space:nowrap;box-shadow:0 0 0 1px rgba(0,217,255,.25),0 10px 24px -12px var(--violet);transition:transform .2s var(--ease),box-shadow .2s,opacity .2s,background .2s}
.btn:hover{transform:translateY(-1px);box-shadow:0 0 0 1px rgba(0,217,255,.6),0 12px 30px -10px rgba(0,217,255,.45)}.btn:active{transform:none}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn.ghost{background:rgba(255,255,255,.04);box-shadow:inset 0 0 0 1px var(--line2);color:var(--tx)}.btn.ghost:hover{background:rgba(255,255,255,.08)}
.btn.danger{background:linear-gradient(135deg,#F43F5E,#BE123C)}.btn.sm{height:36px;padding:0 1rem;font-size:.84rem}.btn.xs{height:30px;padding:0 .8rem;font-size:.78rem}.btn.block{width:100%}.btn.big{height:52px;padding:0 1.6rem;font-size:1rem}
.ib{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--tx2);position:relative;transition:background .15s,color .15s,transform .15s}.ib:focus-visible{background:rgba(255,255,255,.07);color:var(--tx)}@media (hover:hover){.ib:hover{background:rgba(255,255,255,.07);color:var(--tx)}}.ib:active{transform:scale(.94)}.ib.sm{width:34px;height:34px}.ib.big{width:52px;height:52px}.ib:disabled{opacity:.35;pointer-events:none}
.ib.on,.lk.on{color:var(--pink)}.lk.on svg{fill:var(--pink)}.ib.on.one::after{content:"1";position:absolute;font:800 9px var(--ft);right:6px;top:6px;color:var(--cyan)}
.badge{position:absolute;top:3px;right:2px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--pink);color:#fff;font:800 10px/17px var(--ft);text-align:center}
.chip{display:inline-flex;align-items:center;gap:.35rem;height:34px;padding:0 .95rem;border-radius:99px;border:1px solid var(--line2);background:rgba(18,26,48,.6);color:var(--tx2);font-size:.84rem;font-weight:600;white-space:nowrap;transition:all .15s}
.chip:hover{color:var(--tx);border-color:var(--violet)}.chip.on,.chip[aria-pressed=true]{background:var(--grad);border-color:transparent;color:#fff}.chip.xs{height:24px;padding:0 .6rem;font-size:.72rem}.chip{max-width:100%}.chip.tall{white-space:normal;height:auto;min-height:34px;padding:.45rem .95rem;line-height:1.3;text-align:left}
.chips{display:flex;gap:.45rem;overflow-x:auto;scrollbar-width:none;padding:.15rem 0}.chips.wrap{flex-wrap:wrap;overflow:visible}
.bdg{display:inline-block;vertical-align:middle;margin-left:.35rem;padding:0 .4rem;border-radius:5px;font:800 .62rem/1.35rem var(--ft);text-transform:uppercase;letter-spacing:.04em;background:rgba(255,255,255,.08);color:var(--tx2)}
.bdg.e{background:rgba(251,113,133,.15);color:var(--red)}.bdg.d{background:rgba(0,217,255,.1);color:var(--cyan)}.bdg.st{background:rgba(251,191,36,.12);color:var(--amber)}.bdg.abs{position:absolute;left:.5rem;top:.5rem;margin:0}
.tabs{display:flex;flex-shrink:0;gap:.3rem;border-bottom:1px solid var(--line);margin:1rem 0 1.2rem;overflow-x:auto;scrollbar-width:none}
.tabs a{position:relative;padding:.75rem .95rem;color:var(--tx3);font-weight:700;font-size:.9rem;white-space:nowrap}.tabs a:hover{color:var(--tx)}.tabs a.on{color:var(--tx)}.tabs a.on::after{content:"";position:absolute;left:.6rem;right:.6rem;bottom:-1px;height:2px;border-radius:2px;background:var(--grad2)}
.tabs .cnt{margin-left:.4rem;font-size:.72rem;color:var(--tx3)}
.seg{display:flex;padding:4px;border-radius:99px;background:var(--card);border:1px solid var(--line);margin:1rem 0}.seg button{flex:1;height:36px;border-radius:99px;color:var(--tx3);font-weight:700;font-size:.84rem}.seg button[aria-selected=true]{background:var(--card2);color:var(--tx);box-shadow:0 0 0 1px var(--line2)}

/* ---------- формы ---------- */
.form{display:flex;flex-direction:column;gap:.8rem}.fl{display:flex;flex-direction:column;gap:.35rem;font-size:.84rem;font-weight:700;color:var(--tx2)}
.fl input,.fl select,.fl textarea,.inp{width:100%;min-height:46px;padding:.7rem .95rem;border-radius:12px;border:1px solid var(--line2);background:var(--bg2);color:var(--tx);font-size:.95rem;font-weight:500;transition:border-color .15s,box-shadow .15s}
.fl textarea{resize:vertical;min-height:90px}.fl input:focus,.fl select:focus,.fl textarea:focus,.inp:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,217,255,.18)}
.fl input[aria-invalid=true]{border-color:var(--red)}.pw{position:relative;display:block}.pw input{padding-right:3rem}.pw .eye{position:absolute;right:5px;top:50%;transform:translateY(-50%)}
.lbl{font-weight:700;color:var(--tx2);font-size:.86rem}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem}
.sw{position:relative;display:inline-flex;align-items:center;gap:.5rem;font-size:.84rem;color:var(--tx2);cursor:pointer;user-select:none}.sw input{position:absolute;opacity:0;width:1px;height:1px}.sw i{width:36px;height:20px;border-radius:20px;background:var(--line2);position:relative;transition:background .2s;flex:none}
.sw i::after{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .2s var(--ease)}.sw input:checked+i{background:var(--violet)}.sw input:checked+i::after{transform:translateX(16px)}.sw input:focus-visible+i{outline:2px solid var(--cyan);outline-offset:2px}
input[type=range]{-webkit-appearance:none;appearance:none;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--cyan) var(--v,100%),var(--line2) var(--v,100%));cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(0,217,255,.18)}input[type=range]::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:#fff}

/* ---------- каркас ---------- */
#sb{position:fixed;left:0;top:0;bottom:calc(var(--mph) + var(--safe-b));width:var(--sbw);display:flex;flex-direction:column;gap:.4rem;padding:1rem .8rem;background:linear-gradient(180deg,rgba(13,19,38,.92),rgba(10,15,31,.92));border-right:1px solid var(--line);overflow-y:auto;scrollbar-width:thin;z-index:30}
.logo{display:flex;align-items:center;gap:.65rem;padding:.3rem .5rem .8rem;font:600 .74rem/1.15 var(--fb);letter-spacing:.12em}.logo b{display:block;font-weight:600;background:var(--grad2);-webkit-background-clip:text;background-clip:text;color:transparent}
.sbnav,.sbuser{display:flex;flex-direction:column;gap:2px}.sbnav a,.sbuser a{display:flex;align-items:center;gap:.8rem;padding:.6rem .75rem;border-radius:12px;color:var(--tx2);font-weight:600;font-size:.9rem;transition:background .15s,color .15s}
.sbnav a:hover,.sbuser a:hover{background:rgba(255,255,255,.05);color:var(--tx)}.sbnav a.on,.sbuser a.on{background:linear-gradient(90deg,rgba(139,92,246,.22),rgba(66,99,255,.06));color:#fff;box-shadow:inset 2px 0 0 var(--violet)}
#sb hr{border:0;border-top:1px solid var(--line);margin:.45rem .4rem}.sbh{padding:.8rem .75rem .3rem;font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--tx3)}
.sb-cta{margin:.6rem .2rem;padding:1rem;border-radius:var(--r2);background:linear-gradient(160deg,rgba(139,92,246,.2),var(--card) 70%);border:1px solid rgba(139,92,246,.35);display:flex;flex-direction:column;gap:.55rem}.sb-cta p{font-size:.8rem;color:var(--tx2)}
.sbfoot{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding-top:.6rem}.sbfoot a{display:flex;align-items:center;gap:.55rem;padding:.4rem .75rem;color:var(--tx3);font-size:.8rem;border-radius:8px}.sbfoot a:hover{color:var(--tx)}
#tb{position:sticky;top:0;z-index:25;display:flex;align-items:center;gap:.8rem;height:var(--tbh);padding:0 1.4rem 0 calc(var(--sbw) + 1.4rem);background:rgba(7,10,20,.78);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);border-bottom:1px solid rgba(31,41,68,.7)}
.hist{display:flex;gap:.2rem}.tb-acc .btn svg{display:none}.tb-r{display:flex;align-items:center;gap:.25rem;margin-left:auto}.avbtn{width:38px;height:38px;border-radius:50%;overflow:hidden;background:var(--grad);display:grid;place-items:center;font:700 .95rem var(--fb);box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--line2)}.avbtn img{width:100%;height:100%;object-fit:cover}
.gs{position:relative;flex:1;max-width:560px}.gs input{width:100%;height:42px;padding:0 2.6rem 0 2.6rem;border-radius:99px;border:1px solid var(--line2);background:var(--card);font-size:.9rem;transition:border-color .15s,box-shadow .15s,background .15s}
.gs input:focus{outline:none;border-color:var(--cyan);background:var(--bg2);box-shadow:0 0 0 3px rgba(0,217,255,.15)}.gs-i{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--tx3);pointer-events:none}.gs kbd{position:absolute;right:.8rem;top:50%;transform:translateY(-50%);font:700 .7rem var(--fm);color:var(--tx3);border:1px solid var(--line2);border-radius:5px;padding:0 .35rem}
.gs-drop{position:absolute;left:0;right:0;top:calc(100% + 6px);max-height:min(70vh,560px);overflow-y:auto;padding:.5rem;border-radius:var(--r2);background:rgba(13,19,38,.98);border:1px solid var(--line2);box-shadow:var(--sh);z-index:60}
.gs-it{display:flex;align-items:center;gap:.7rem;padding:.45rem .55rem;border-radius:10px}.gs-it:hover,.gs-it.sel,.gs-it a.sel{background:rgba(255,255,255,.06)}.gs-it img{width:40px;height:40px;border-radius:8px;object-fit:cover}.gs-it img.r{border-radius:50%}
.gs-it b,.gs-it small{display:block;line-height:1.25}.gs-it small{color:var(--tx3);font-size:.76rem}.gs-it.tr a{flex:1;min-width:0}.gs-sec{display:flex;justify-content:space-between;align-items:center;padding:.3rem .55rem;color:var(--tx3)}.gs-tags{display:flex;gap:.35rem;flex-wrap:wrap;padding:.3rem .5rem .5rem}
.gs-all{display:flex;align-items:center;justify-content:center;gap:.3rem;padding:.6rem;margin-top:.3rem;border-top:1px solid var(--line);color:var(--cyan);font-weight:700;font-size:.84rem}
#view{display:block;min-height:calc(100vh - var(--tbh));padding:1.4rem 1.6rem calc(var(--mph) + 3rem + var(--safe-b)) calc(var(--sbw) + 1.6rem);outline:none;view-transition-name:main}
::view-transition-old(main){animation:vt-out .14s ease-in both}::view-transition-new(main){animation:vt-in .26s var(--ease) both}@keyframes vt-out{to{opacity:0;transform:translateY(-6px)}}@keyframes vt-in{from{opacity:0;transform:translateY(10px)}}
.mob-only{display:none!important}#tabbar{display:none}
#offline{position:fixed;left:50%;top:calc(var(--tbh) + 8px);transform:translateX(-50%);z-index:70;display:flex;gap:.5rem;align-items:center;padding:.5rem 1rem;border-radius:99px;background:#3B1D10;color:var(--amber);border:1px solid rgba(251,191,36,.4);font-size:.82rem;font-weight:700}

/* ---------- страницы: заголовки, секции, полки ---------- */
.phead{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:.3rem 0 1.3rem}.phead .sub{color:var(--tx2);margin-top:.45rem;max-width:62ch}.pact{display:flex;gap:.5rem;flex-wrap:wrap}
.sec{margin:0 0 2.2rem}.sh{display:flex;align-items:center;gap:.8rem;margin-bottom:.9rem}.sh h2{flex:1}.sh .more{display:flex;align-items:center;gap:.2rem;color:var(--tx3);font-weight:700;font-size:.84rem}.sh .more:hover{color:var(--cyan)}.sh .nav2{display:flex;gap:.2rem}
.shelf{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(150px,17vw,200px);gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.2rem .1rem .6rem;scroll-padding:0 .1rem}.shelf>*{scroll-snap-align:start}.shelf::-webkit-scrollbar{display:none}
.shelf.beat{grid-auto-columns:clamp(220px,22vw,260px)}.shelf.artist{grid-auto-columns:clamp(130px,13vw,160px)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1.1rem 1rem}.grid>*,.shelf>*{min-width:0}.grid.beats{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.grid.artists{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.grid.tiles{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
/* карточки */
.tcard,.bcard,.pcard{position:relative;display:flex;flex-direction:column;gap:.2rem;min-width:0}
.cv{position:relative;aspect-ratio:1;border-radius:var(--r2);overflow:hidden;background:var(--card2);box-shadow:0 10px 26px -16px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.04)}.cv img,.cvi{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.tcard:hover .cv img,.bcard:hover .cv img,.pcard:hover .cv img{transform:scale(1.05)}
.tcard .t,.bcard .t,.pcard b{margin-top:.5rem;font-weight:700;font-size:.93rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tcard .a,.bcard .a{color:var(--tx3);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcard small{color:var(--tx3);font-size:.8rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.al{color:inherit}.al:hover{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.why{display:flex;gap:.3rem;align-items:center;color:var(--violet);font-size:.74rem;font-weight:700;margin-top:.15rem;line-height:1.25}.why svg{flex:none}
.pbtn{position:absolute;right:.6rem;bottom:.6rem;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--grad2);color:#fff;box-shadow:0 10px 24px -6px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.15);opacity:0;transform:translateY(8px) scale(.9);transition:opacity .2s,transform .25s var(--ease)}
.pbtn svg{margin-left:2px}.tcard:hover .pbtn,.pbtn:focus-visible,.tcard.now .pbtn{opacity:1;transform:none}
.tcard.now .cv{box-shadow:0 0 0 2px var(--cyan),0 0 26px rgba(0,217,255,.35)}.rank{position:absolute;left:.6rem;top:.3rem;font:700 2.3rem/1 var(--fb);letter-spacing:-.05em;color:#fff;text-shadow:0 4px 16px rgba(0,0,0,.8)}
@media (hover:none){.pbtn{opacity:1;transform:none;width:42px;height:42px}}
.bcard{padding:.7rem;border-radius:var(--r);background:linear-gradient(170deg,var(--card),var(--panel));border:1px solid var(--line);transition:border-color .2s,transform .25s var(--ease),box-shadow .25s}.bcard:hover{border-color:rgba(139,92,246,.6);transform:translateY(-3px);box-shadow:var(--glow)}
.bcard .tags{position:absolute;left:.5rem;bottom:.5rem;display:flex;gap:.3rem}.bcard .tags b{padding:.1rem .45rem;border-radius:6px;background:rgba(7,10,20,.75);backdrop-filter:blur(6px);font:700 .7rem var(--fm)}
.bcard .sold{position:absolute;left:0;right:0;top:.8rem;margin:auto;width:max-content;padding:.2rem .6rem;border-radius:6px;background:rgba(244,63,94,.9);font-size:.72rem;font-weight:800}
.pv{position:absolute;right:.6rem;bottom:.6rem;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:rgba(7,10,20,.65);backdrop-filter:blur(6px);color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.15)}.pv svg.i{margin-left:2px;position:relative}
.pv .ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.pv .ring circle{fill:none;stroke:var(--cyan);stroke-width:3;stroke-linecap:round;stroke-dasharray:126;stroke-dashoffset:126;transition:stroke-dashoffset .1s linear}.pv.on{background:var(--grad2)}
.bwf{color:var(--violet);opacity:.7;margin:.5rem 0 .1rem}.bwf svg{width:100%;height:30px}.buy{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.55rem}.price{font-weight:800;color:var(--tx)}
.acard{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.3rem;padding:.4rem;border-radius:var(--r2);transition:background .2s}.acard:hover{background:rgba(255,255,255,.03)}.acard .av{width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--card2);box-shadow:0 12px 30px -16px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.06)}.acard .av img{width:100%;height:100%;object-fit:cover}
.acard b{margin-top:.4rem;display:flex;align-items:center;gap:.3rem;font-size:.9rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acard small{color:var(--tx3);font-size:.76rem}.ver{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:var(--cyan);color:#06121F}
.gtile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;height:120px;padding:.9rem 1rem;border-radius:var(--r);overflow:hidden;background:var(--card);border:1px solid var(--line);transition:transform .3s var(--ease),border-color .2s,box-shadow .3s}
.gtile::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 85% 0,color-mix(in srgb,var(--gc) 40%,transparent),transparent 65%)}.gtile .bg{position:absolute;inset:0;color:var(--gc);opacity:.55;transition:opacity .3s,transform .7s var(--ease)}.gtile .bg svg{width:100%;height:100%}
.gtile:hover{transform:translateY(-3px);border-color:var(--gc);box-shadow:0 14px 34px -14px var(--gc)}.gtile:hover .bg{opacity:.9;transform:scale(1.06)}.gtile b{position:relative;font:600 1rem var(--fb)}.gtile small{position:relative;color:var(--tx2);font-size:.78rem}
/* списки треков */
.tlist{display:flex;flex-direction:column}.trow{display:grid;grid-template-columns:28px 46px minmax(0,1fr) 150px 120px 40px 56px 40px;align-items:center;gap:.7rem;padding:.4rem .5rem;border-radius:12px;transition:background .15s}
.trow:hover{background:rgba(255,255,255,.04)}.trow.now{background:linear-gradient(90deg,rgba(139,92,246,.16),transparent)}.trow .tn{text-align:center;color:var(--tx3);font-size:.85rem;position:relative}.trow .tn .eq{display:none}.trow.now .tn b{display:none}.trow.now .tn .eq{display:inline-flex}
.tcv{position:relative;width:46px;height:46px;border-radius:9px;overflow:hidden;background:var(--card2)}.tcv img{width:100%;height:100%;object-fit:cover}.tcv .po{position:absolute;inset:0;display:grid;place-items:center;background:rgba(7,10,20,.55);color:#fff;opacity:0;transition:opacity .15s}.trow:hover .tcv .po,.tcv:focus-visible .po,.qrow:hover .po{opacity:1}
.tm{min-width:0}.tt{font-weight:700;font-size:.93rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline}.tt:hover{text-decoration:underline;text-underline-offset:3px}.trow.now .tt{color:var(--cyan)}.ta{color:var(--tx3);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tg{display:flex;gap:.4rem;align-items:center;color:var(--tx3);font-size:.78rem;min-width:0;overflow:hidden}.twf{color:var(--tx3);opacity:.7}.trow.now .twf{color:var(--cyan);opacity:1}.td{color:var(--tx3);text-align:right}.drag{color:var(--tx3);cursor:grab;touch-action:none;display:grid;place-items:center}
.eq{display:inline-flex;gap:2px;align-items:flex-end;height:14px}.eq s{display:block;width:3px;height:100%;background:var(--cyan);border-radius:2px;transform-origin:bottom;animation:eq 1s ease-in-out infinite}.eq s:nth-child(2){animation-delay:-.4s}.eq s:nth-child(3){animation-delay:-.7s}
html:not(.playing) .eq s{animation-play-state:paused;transform:scaleY(.35)}@keyframes eq{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}
/* пустые состояния и скелетоны */
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.6rem;padding:2.2rem 1rem;border:1px dashed var(--line2);border-radius:var(--r);color:var(--tx2);background:rgba(13,19,38,.45)}.empty svg{color:var(--tx3)}.empty p{max-width:52ch;font-size:.9rem;color:var(--tx3)}.empty.big{border:0;background:none;padding:4rem 1rem}
.sk,.skel-page .sk{background:linear-gradient(90deg,var(--card) 0%,var(--card2) 50%,var(--card) 100%);background-size:200% 100%;animation:sk 1.2s linear infinite;border-radius:var(--r2)}@keyframes sk{to{background-position:-200% 0}}
.skel-page .h1{height:42px;width:min(380px,70%);margin:.4rem 0 1.6rem}.sk-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-bottom:2rem}.sk.card{aspect-ratio:1}

/* ---------- главная ---------- */
.hero{position:relative;overflow:hidden;border-radius:26px;padding:clamp(1.4rem,3.5vw,2.6rem);margin-bottom:2rem;background:radial-gradient(800px 380px at 90% 10%,rgba(139,92,246,.35),transparent 60%),radial-gradient(500px 300px at 10% 110%,rgba(0,217,255,.18),transparent 60%),linear-gradient(160deg,#10163A,#0B0F22 70%);border:1px solid rgba(139,92,246,.25)}
.hero canvas{position:absolute;inset:auto 0 0 0;width:100%;height:60%;opacity:.55;pointer-events:none}.hero-in{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:2rem;align-items:center}
.hero h1{font-size:clamp(1.6rem,4vw,2.9rem);background:linear-gradient(120deg,#fff,#D8CCFF 55%,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{color:var(--tx2);margin:.8rem 0 1.2rem;max-width:52ch}.hero .chips{margin-top:1.1rem}
.cont{display:flex;gap:1rem;align-items:center;padding:1rem;border-radius:var(--r);background:rgba(7,10,20,.55);backdrop-filter:blur(10px);border:1px solid var(--line2)}.cont img{width:86px;height:86px;border-radius:14px;object-fit:cover}.cont small{color:var(--tx3);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.cont b{display:block;font-size:1.05rem}.cont .bar2{height:4px;border-radius:4px;background:var(--line2);margin-top:.55rem;overflow:hidden}.cont .bar2 i{display:block;height:100%;background:var(--grad2)}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:2.2rem}.stat{padding:1rem 1.1rem;border-radius:var(--r2);background:var(--card);border:1px solid var(--line)}.stat b{display:block;font:600 1.5rem var(--fb)}.stat small{color:var(--tx3);font-size:.78rem}
.chart-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:0 1.4rem}
.scen{position:relative;display:flex;flex-direction:column;gap:.35rem;padding:1rem;border-radius:var(--r);background:linear-gradient(160deg,rgba(0,217,255,.08),var(--card) 55%);border:1px solid var(--line);min-height:128px;transition:border-color .2s,transform .25s var(--ease)}.scen:hover{border-color:var(--cyan);transform:translateY(-3px)}.scen b{font:600 .98rem var(--fb);overflow-wrap:anywhere;hyphens:auto}.scen p{color:var(--tx3);font-size:.8rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.scen small{margin-top:auto;color:var(--cyan);font-weight:700;font-size:.74rem}
.banner{display:flex;align-items:center;gap:1.2rem;padding:1.3rem 1.4rem;border-radius:var(--r);background:linear-gradient(120deg,rgba(139,92,246,.22),rgba(66,99,255,.12) 50%,rgba(0,217,255,.1));border:1px solid rgba(139,92,246,.35);margin-bottom:2rem}.banner p{color:var(--tx2);font-size:.9rem}.banner .grow{flex:1}

/* ---------- страница трека и артиста ---------- */
.thero{display:grid;grid-template-columns:minmax(200px,300px) minmax(0,1fr);gap:2rem;align-items:end;margin-bottom:1.6rem}.thero .cv{border-radius:22px;box-shadow:0 30px 60px -24px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.06)}
.kicker{font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3)}.thero h1{margin:.4rem 0 .5rem;font-size:clamp(1.7rem,4.5vw,3.2rem)}.byline{color:var(--tx2);font-weight:700}.metaline{display:flex;flex-wrap:wrap;gap:.4rem .9rem;color:var(--tx3);font-size:.84rem;margin:.7rem 0 1.1rem}.metaline span{display:inline-flex;gap:.35rem;align-items:center}
.wave-box{height:92px;margin:.4rem 0 .2rem;border-radius:14px;background:linear-gradient(180deg,rgba(18,26,48,.6),rgba(13,19,38,.3));padding:8px 10px;border:1px solid var(--line)}.wave-box canvas{display:block;width:100%;height:100%;cursor:pointer;touch-action:none}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:2rem}.cols>*{min-width:0}.box{padding:1.2rem;border-radius:var(--r);background:var(--card);border:1px solid var(--line);margin-bottom:1.2rem}.box h3{margin-bottom:.8rem}.kv{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;font-size:.86rem}.kv dt{color:var(--tx3)}.kv dd{color:var(--tx)}
.ahero{position:relative;border-radius:26px;overflow:hidden;padding:clamp(1.4rem,4vw,2.6rem);margin-bottom:1.6rem;background:linear-gradient(160deg,#141B3B,#0B0F22);border:1px solid var(--line2);min-height:260px;display:flex;align-items:flex-end;gap:1.6rem}
.ahero .bgimg{position:absolute;inset:0;background-size:cover;background-position:center;filter:blur(40px) saturate(1.3);opacity:.45;transform:scale(1.2)}.ahero .av{position:relative;width:clamp(120px,18vw,190px);aspect-ratio:1;border-radius:50%;overflow:hidden;box-shadow:0 20px 50px -18px rgba(0,0,0,.9),0 0 0 4px rgba(255,255,255,.08);flex:none}.ahero .av img{width:100%;height:100%;object-fit:cover}.ahero .info{position:relative}
/* Sound DNA */
.dna{display:grid;grid-template-columns:260px minmax(0,1fr);gap:1.2rem;align-items:center}.radar{width:100%;max-width:280px}.radar .g{fill:none;stroke:var(--line2);stroke-width:1}.radar .v{fill:rgba(139,92,246,.28);stroke:url(#dg);stroke-width:2.5}.radar text{fill:var(--tx3);font:600 9.5px var(--ft)}
.dna-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.fact{padding:.75rem .85rem;border-radius:12px;background:var(--bg2);border:1px solid var(--line)}.fact.wide{grid-column:1/-1}.fact small{display:block;color:var(--tx3);font-size:.72rem;font-weight:700}.fact b{font:600 1.15rem var(--fb)}.fact b i{font:700 .7rem var(--ft);color:var(--tx3);font-style:normal}.fact span{display:block;color:var(--tx3);font-size:.74rem;margin-top:.1rem}.dna .note{grid-column:1/-1}
/* лицензии */
.lic-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line);background:var(--card)}.lic{width:100%;border-collapse:collapse;font-size:.86rem;min-width:560px}.lic th,.lic td{padding:.65rem .8rem;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle}
.lic tbody th,.lic tfoot th{text-align:left;color:var(--tx3);font-weight:600;white-space:nowrap}.lic thead th{font:600 .95rem var(--fb);padding:1rem .8rem}.lic thead th small{display:block;font:700 .66rem var(--ft);color:var(--amber);text-transform:uppercase;letter-spacing:.06em;margin-top:.2rem}.lic thead th.ex{background:linear-gradient(180deg,rgba(251,191,36,.08),transparent)}
.lic td.use{text-align:left;font-size:.8rem;color:var(--tx2)}.lic td.use div{margin:.15rem 0}.lic tfoot td{padding:.9rem .6rem;border:0}.lic .ok svg,.lic .no{margin:auto}

/* ---------- плеер: мини-панель ---------- */
#mp{position:fixed;left:0;right:0;bottom:0;z-index:40;height:calc(var(--mph) + var(--safe-b));padding:0 1.2rem var(--safe-b);display:grid;grid-template-columns:minmax(220px,1fr) minmax(320px,1.6fr) minmax(220px,1fr);align-items:center;gap:1rem;
 background:linear-gradient(180deg,rgba(13,19,38,.94),rgba(9,13,27,.98));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--line);box-shadow:0 -10px 40px -20px rgba(0,0,0,.8);transform:translateY(0);transition:transform .35s var(--ease)}
html:not(.has-player) #mp{transform:translateY(110%)}html:not(.has-player) #view{padding-bottom:3rem}html:not(.has-player) #sb{bottom:0}
#mp::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--ac),transparent);opacity:.8}
.mp-prog{display:none}.mp-l{display:flex;align-items:center;gap:.8rem;min-width:0}.mp-cv{width:56px;height:56px;border-radius:12px;overflow:hidden;flex:none;box-shadow:0 8px 20px -8px rgba(0,0,0,.8)}.mp-cv img{width:100%;height:100%;object-fit:cover}
.mp-tx{min-width:0}.mp-t{display:block;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.mp-a{color:var(--tx3);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp-c{display:flex;flex-direction:column;align-items:center;gap:.25rem}.mp-btns{display:flex;align-items:center;gap:.4rem}.pp{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#0B0F22;box-shadow:0 8px 22px -8px rgba(255,255,255,.4);transition:transform .15s}.pp:hover{transform:scale(1.06)}.pp:active{transform:scale(.95)}.pp svg{margin-left:1px}
html.playing .pp svg{margin-left:0}html.buffering .pp{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(0,217,255,.18)}}.pp.mob{display:none}.mob.ib{display:none}
.mp-seek{display:flex;align-items:center;gap:.6rem;width:100%;max-width:640px}.mp-seek .mono{color:var(--tx3);min-width:3.2em;text-align:center}
.bar{position:relative;flex:1;height:22px;cursor:pointer;touch-action:none;--p:0}.bar::before{content:"";position:absolute;left:0;right:0;top:9px;height:4px;border-radius:4px;background:var(--line2)}
.bar .fill{position:absolute;left:0;top:9px;height:4px;width:calc(var(--p)*100%);border-radius:4px;background:var(--grad2)}.bar .knob{position:absolute;top:4px;left:calc(var(--p)*100%);width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(0,217,255,.2);transform:scale(0);transition:transform .15s}
.bar:hover .knob,.bar.drag .knob,.bar:focus-visible .knob{transform:scale(1)}.bar.drag::before,.bar.drag .fill,.bar:hover::before,.bar:hover .fill{top:8px;height:6px}
.bar .tip{position:absolute;bottom:22px;transform:translateX(-50%);padding:.15rem .4rem;border-radius:6px;background:var(--card2);font:700 .7rem var(--fm);opacity:0;pointer-events:none;transition:opacity .15s;white-space:nowrap}.bar:hover .tip,.bar.drag .tip{opacity:1}
.mp-r{display:flex;align-items:center;justify-content:flex-end;gap:.15rem}.vol{display:flex;align-items:center;gap:.3rem}.vol input{width:100px}
/* очередь (боковая панель) */
#qp{position:fixed;right:12px;top:calc(var(--tbh) + 10px);bottom:calc(var(--mph) + var(--safe-b) + 10px);width:min(400px,calc(100vw - 24px));z-index:45;display:flex;flex-direction:column;border-radius:var(--r);background:rgba(13,19,38,.97);backdrop-filter:blur(18px);border:1px solid var(--line2);box-shadow:var(--sh);animation:qp-in .25s var(--ease)}
@keyframes qp-in{from{opacity:0;transform:translateX(20px)}}.qp-h{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem .5rem}.qp-body{flex:1;overflow-y:auto;padding:0 .5rem .8rem}
.qhead{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:.4rem .5rem .7rem;color:var(--tx3);font-size:.8rem}.qhead span{display:inline-flex;align-items:center;gap:.4rem}
.qrow{display:grid;grid-template-columns:26px 44px minmax(0,1fr) auto 34px;align-items:center;gap:.6rem;padding:.35rem .4rem;border-radius:10px;background:transparent;transition:background .15s}.qrow:hover{background:rgba(255,255,255,.04)}.qrow.now{background:rgba(139,92,246,.18)}.qrow.now .tt{color:var(--cyan)}.qrow.past{opacity:.55}
.qrow .tcv{width:44px;height:44px}.qrow b.tt{display:block;font-size:.88rem}.qrow.dragging{position:relative;z-index:2;background:var(--card2);box-shadow:var(--sh)}

/* ---------- плеер: полноэкранный ---------- */
#fp{position:fixed;inset:0;z-index:80;overflow:hidden;background:#05070F}.fp-bg{position:absolute;inset:-10%;background-size:cover;background-position:center;filter:blur(70px) saturate(1.4) brightness(.55);transform:scale(1.1);transition:background-image .5s}
#fp::after{content:"";position:absolute;inset:0;background:radial-gradient(900px 600px at 30% 20%,color-mix(in srgb,var(--ac) 30%,transparent),transparent 70%),linear-gradient(180deg,rgba(5,7,15,.25),rgba(5,7,15,.85));pointer-events:none}
.fp-in{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;padding:calc(.6rem + env(safe-area-inset-top,0px)) clamp(1rem,4vw,3rem) calc(1rem + var(--safe-b));max-width:1300px;margin:0 auto}
.fp-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.fp-src{text-align:center;min-width:0}.fp-src small{display:block;font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--tx3)}.fp-src b{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.fp-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:center}.fp-left{display:flex;justify-content:center}.fp-cv{position:relative;width:min(100%,520px,58vh);aspect-ratio:1}
.fp-cv img{width:100%;height:100%;object-fit:cover;border-radius:22px;box-shadow:0 40px 80px -30px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.08),0 0 90px -20px color-mix(in srgb,var(--ac) 70%,transparent)}.fp-cv .viz{position:absolute;left:0;right:0;bottom:0;height:40%;width:100%;border-radius:0 0 22px 22px;pointer-events:none}
.fp-right{display:flex;flex-direction:column;gap:.6rem;min-height:0;max-height:100%}.fp-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.fp-t{font:600 clamp(1.4rem,3vw,2.2rem)/1.15 var(--fb)}.fp-a{color:var(--tx2);font-weight:700;margin-top:.3rem}
.fp-wave{height:70px;margin-top:.4rem}.fp-wave canvas,.wave-box canvas{display:block;width:100%;height:100%;cursor:pointer;touch-action:none}.fp-times{display:flex;justify-content:space-between;color:var(--tx3)}
.fp-ctl{display:flex;align-items:center;justify-content:center;gap:clamp(.4rem,2vw,1.4rem);margin:.3rem 0}.pp.xl{width:70px;height:70px}.fp-vol{justify-content:center}.fp-vol input{width:160px}
.fp-tabs{margin:.5rem 0 .4rem;border-color:rgba(255,255,255,.08)}.fp-pane{flex:1;min-height:120px;overflow-y:auto;padding-right:.3rem}.lyrics{white-space:pre-wrap;font-size:1.05rem;line-height:1.7;color:var(--tx2);padding:.4rem}
html.fp-open{overflow:hidden}html.fp-open #mp{visibility:hidden}

/* ---------- окна, меню, тосты ---------- */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1rem}.mo-bg{position:absolute;inset:0;background:rgba(3,5,12,.7);backdrop-filter:blur(4px);opacity:0;transition:opacity .2s}
.mo-panel{position:relative;width:min(480px,100%);max-height:calc(100vh - 2rem);overflow-y:auto;border-radius:22px;background:linear-gradient(180deg,#121A33,#0D1326);border:1px solid var(--line2);box-shadow:var(--sh);padding:1.2rem 1.4rem 1.4rem;transform:translateY(16px) scale(.98);opacity:0;transition:transform .25s var(--ease),opacity .2s}
.mo-panel.wide{width:min(860px,100%)}.modal.in .mo-bg{opacity:1}.modal.in .mo-panel{transform:none;opacity:1}.mo-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.6rem}.mo-head h2{font-size:1.15rem}.mo-x{margin-right:-.5rem}
html.mo-open{overflow:hidden}.code{font:700 1.4rem var(--fm);letter-spacing:.12em;padding:.9rem 1.2rem;border-radius:14px;background:var(--bg2);border:1px dashed var(--violet);color:var(--cyan);user-select:all}
.menu{position:fixed;z-index:120;min-width:230px;max-width:320px;padding:.4rem;border-radius:14px;background:rgba(18,26,51,.98);backdrop-filter:blur(16px);border:1px solid var(--line2);box-shadow:var(--sh);opacity:0;transform:translateY(-4px);transition:opacity .15s,transform .15s}.menu.in{opacity:1;transform:none}
.menu button{display:flex;align-items:center;gap:.7rem;width:100%;padding:.6rem .7rem;border-radius:9px;text-align:left;font-size:.88rem;font-weight:600;color:var(--tx)}.menu button:hover,.menu button:focus-visible{background:rgba(255,255,255,.07);outline:none}.menu button span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu button small{color:var(--tx3)}.menu button:disabled{opacity:.45}.menu button.danger{color:var(--red)}.menu hr{border:0;border-top:1px solid var(--line);margin:.3rem}.menu svg{color:var(--tx3)}
.menu.sheet{left:0;right:0;bottom:0;top:auto;max-width:none;border-radius:20px 20px 0 0;padding:.8rem .6rem calc(.8rem + var(--safe-b));transform:translateY(100%)}.menu.sheet.in{transform:none}
#toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--mph) + var(--safe-b) + 14px);z-index:130;display:flex;flex-direction:column;gap:.5rem;align-items:center;pointer-events:none;width:min(520px,calc(100vw - 24px))}
.toast{pointer-events:auto;display:flex;align-items:center;gap:.6rem;padding:.7rem 1rem;border-radius:14px;background:rgba(24,33,61,.98);border:1px solid var(--line2);box-shadow:var(--sh);font-size:.88rem;font-weight:600;opacity:0;transform:translateY(10px);transition:opacity .2s,transform .25s var(--ease);max-width:100%}
.toast.in{opacity:1;transform:none}html.mo-open #toasts,html.fp-open #toasts{top:calc(12px + env(safe-area-inset-top,0px));bottom:auto}.toast svg{color:var(--green)}.toast.err svg{color:var(--red)}.toast.info svg{color:var(--cyan)}.toast button{margin-left:.4rem;color:var(--cyan);font-weight:800;white-space:nowrap}
.mnav{display:flex;flex-direction:column;gap:2px}.mnav a{display:flex;align-items:center;gap:.8rem;padding:.75rem .5rem;border-radius:10px;font-weight:700}.mnav a:hover{background:rgba(255,255,255,.05)}.mnav hr{border:0;border-top:1px solid var(--line);margin:.4rem 0}

/* ---------- вход и онбординг ---------- */
.auth .mo-panel{padding-top:1rem}.au-brand{display:flex;align-items:center;gap:.6rem;font:600 .8rem var(--fb);letter-spacing:.12em;color:var(--tx2)}.au-brand svg{color:var(--violet)}.au-why{margin-top:.6rem;color:var(--cyan);font-weight:700;font-size:.9rem}
.roles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem}.rcard{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;text-align:left;padding:.9rem;border-radius:14px;background:var(--bg2);border:1px solid var(--line2);transition:border-color .15s,background .15s,transform .2s var(--ease)}
.rcard:hover{border-color:var(--violet);transform:translateY(-2px)}.rcard.on{border-color:var(--cyan);background:linear-gradient(160deg,rgba(0,217,255,.12),var(--bg2));box-shadow:0 0 0 1px var(--cyan)}.rcard svg{color:var(--violet)}.rcard b{font-size:.92rem}.rcard small{color:var(--tx3);font-size:.76rem;line-height:1.35}.rcard ul{list-style:none;font-size:.72rem;color:var(--tx2);margin-top:.2rem}.rcard li::before{content:"· "}
.ob{display:flex;flex-direction:column;gap:.9rem}.ob-prog{height:5px;border-radius:5px;background:var(--line2);overflow:hidden}.ob-prog i{display:block;height:100%;background:var(--grad2);transition:width .3s var(--ease)}.ob h3{font:600 1.15rem var(--fb)}.ob-body{min-height:160px}
.steps-info{list-style:none;display:flex;flex-direction:column;gap:.6rem}.steps-info li{display:flex;gap:.6rem;color:var(--tx2);font-size:.9rem}.steps-info svg{color:var(--green);margin-top:3px}

/* ---------- маркет, корзина, заказы ---------- */
.filters{position:relative;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.8rem;border-radius:var(--r);background:var(--card);border:1px solid var(--line);margin-bottom:1.2rem}.filters select,.filters input{height:38px;min-height:38px;padding:0 .75rem;border-radius:10px;border:1px solid var(--line2);background:var(--bg2);font-size:.84rem;font-weight:600;color:var(--tx)}
.filters .grow{flex:1}.cart-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto;gap:1rem;align-items:center;padding:.8rem;border-radius:var(--r2);background:var(--card);border:1px solid var(--line);margin-bottom:.6rem}.cart-row img{width:64px;height:64px;border-radius:10px;object-fit:cover}
.sum{position:sticky;top:calc(var(--tbh) + 1rem)}.sum .tot{display:flex;justify-content:space-between;font:600 1.3rem var(--fb);margin:.6rem 0 1rem}.status{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:99px;font-size:.74rem;font-weight:800;background:rgba(255,255,255,.07)}
.status.paid,.status.published,.status.accepted{background:rgba(52,211,153,.14);color:var(--green)}.status.awaiting_payment,.status.review,.status.new{background:rgba(251,191,36,.13);color:var(--amber)}.status.refunded,.status.cancelled,.status.rejected,.status.suspended{background:rgba(251,113,133,.13);color:var(--red)}.status.changes,.status.draft{background:rgba(0,217,255,.1);color:var(--cyan)}
.timeline{list-style:none;border-left:2px solid var(--line2);margin:.6rem 0 0 .4rem;padding-left:1rem;display:flex;flex-direction:column;gap:.7rem}.timeline li{position:relative;font-size:.86rem}.timeline li::before{content:"";position:absolute;left:-1.42rem;top:.35rem;width:10px;height:10px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 3px var(--bg)}.timeline small{color:var(--tx3)}
.cert{position:relative;padding:clamp(1.2rem,4vw,2.4rem);border-radius:24px;background:radial-gradient(600px 300px at 100% 0,rgba(139,92,246,.25),transparent 60%),linear-gradient(160deg,#141B3B,#0B0F22);border:1px solid rgba(139,92,246,.4);overflow:hidden}.cert .seal{position:absolute;right:1.4rem;top:1.4rem;width:86px;height:86px;border-radius:50%;display:grid;place-items:center;text-align:center;border:2px dashed var(--cyan);color:var(--cyan);font:700 .62rem/1.2 var(--fb);transform:rotate(-12deg)}
.cert.bad{border-color:rgba(251,113,133,.5)}.cert.bad .seal{border-color:var(--red);color:var(--red)}

/* ---------- студия и админка ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin-bottom:1.4rem}.kpi{padding:1rem;border-radius:var(--r2);background:var(--card);border:1px solid var(--line)}.kpi small{display:block;color:var(--tx3);font-size:.76rem;font-weight:700}.kpi b{font:600 1.45rem var(--fb)}.kpi i{font-style:normal;font-size:.76rem;font-weight:800;margin-left:.35rem}.kpi i.up{color:var(--green)}.kpi i.down{color:var(--red)}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;text-align:center;padding:2rem 1rem;border-radius:var(--r);border:2px dashed var(--line2);background:rgba(13,19,38,.5);cursor:pointer;transition:border-color .15s,background .15s}.drop:hover,.drop.over{border-color:var(--cyan);background:rgba(0,217,255,.06)}.drop svg{color:var(--violet)}.drop small{color:var(--tx3)}
.upl{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;padding:.8rem 1rem;border-radius:var(--r2);background:var(--card);border:1px solid var(--line);margin-top:.6rem}.upl .pb{height:6px;border-radius:6px;background:var(--line2);overflow:hidden;margin-top:.35rem}.upl .pb i{display:block;height:100%;background:var(--grad2);transition:width .2s}.upl small{color:var(--tx3);font-size:.76rem}
.check{list-style:none;display:flex;flex-direction:column;gap:.45rem}.check li{display:flex;gap:.5rem;align-items:center;font-size:.86rem;color:var(--tx2)}.check li.ok svg{color:var(--green)}.check li.no svg{color:var(--tx3)}
.tbl{width:100%;border-collapse:collapse;font-size:.86rem}.tbl th{text-align:left;color:var(--tx3);font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;padding:.5rem .6rem;border-bottom:1px solid var(--line)}.tbl td{padding:.6rem;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tr:hover td{background:rgba(255,255,255,.02)}.tbl-wrap{overflow-x:auto;border-radius:var(--r2);border:1px solid var(--line);background:var(--card)}
.chart-svg{width:100%;height:220px}.chart-svg .ax{stroke:var(--line);stroke-width:1}.chart-svg text{fill:var(--tx3);font:600 10px var(--ft)}.legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:var(--tx2)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.35rem;vertical-align:-1px}
.offer-ed{padding:1rem;border-radius:var(--r2);background:var(--bg2);border:1px solid var(--line2);margin-bottom:.7rem}.offer-ed .grid2{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.modq{display:grid;grid-template-columns:96px minmax(0,1fr);gap:1rem;padding:1rem;border-radius:var(--r);background:var(--card);border:1px solid var(--line);margin-bottom:.8rem}.modq img{width:96px;height:96px;border-radius:12px;object-fit:cover}

/* ---------- сообщество, комнаты, помощник ---------- */
.ntf{display:flex;gap:.8rem;align-items:flex-start;padding:.85rem 1rem;border-radius:var(--r2);border:1px solid var(--line);background:var(--card);margin-bottom:.5rem}.ntf.unread{border-color:rgba(139,92,246,.5);background:linear-gradient(90deg,rgba(139,92,246,.12),var(--card))}.ntf .ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--card2);color:var(--violet);flex:none}.ntf small{color:var(--tx3);font-size:.76rem}.ntf p{color:var(--tx2);font-size:.86rem}
.cmt{display:flex;gap:.7rem;padding:.7rem 0;border-bottom:1px solid var(--line)}.cmt .av{width:34px;height:34px;border-radius:50%;background:var(--grad);display:grid;place-items:center;font-weight:800;flex:none;overflow:hidden}.cmt .av img{width:100%;height:100%;object-fit:cover}.cmt b{font-size:.86rem}.cmt small{color:var(--tx3);font-size:.74rem}.cmt p{font-size:.9rem;margin:.15rem 0}.cmt .at{color:var(--pink);font:700 .76rem var(--fm);cursor:pointer}.cmt.hidden{opacity:.5}
.room{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.4rem}.chat{display:flex;flex-direction:column;height:min(70vh,640px);border-radius:var(--r);background:var(--card);border:1px solid var(--line)}.chat-log{flex:1;overflow-y:auto;padding:.8rem;display:flex;flex-direction:column;gap:.5rem}
.msg{max-width:85%;padding:.5rem .75rem;border-radius:14px;background:var(--card2);font-size:.88rem}.msg b{display:block;font-size:.74rem;color:var(--violet)}.msg.me{align-self:flex-end;background:rgba(139,92,246,.25)}.chat form{display:flex;gap:.5rem;padding:.6rem;border-top:1px solid var(--line)}.chat form input{flex:1}
.react-fly{position:fixed;z-index:150;font-size:2rem;pointer-events:none;animation:fly 1.6s ease-out forwards}@keyframes fly{to{transform:translateY(-220px) scale(1.4);opacity:0}}
.ai-log{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.bubble{padding:1rem 1.1rem;border-radius:18px;background:var(--card);border:1px solid var(--line);max-width:860px}.bubble.me{align-self:flex-end;background:rgba(139,92,246,.18);border-color:rgba(139,92,246,.35)}.bubble .src{display:block;color:var(--tx3);font-size:.72rem;margin-top:.5rem}
.ai-form{position:sticky;bottom:calc(var(--mph) + var(--safe-b) + 10px);display:flex;gap:.5rem;padding:.6rem;border-radius:99px;background:rgba(13,19,38,.95);border:1px solid var(--line2);box-shadow:var(--sh)}.ai-form input{flex:1;border:0;background:none;padding:0 .8rem;font-size:.95rem}.ai-form input:focus{outline:none}
/* аудиолаборатория */
.lab-wave{position:relative;height:160px;border-radius:var(--r2);background:var(--bg2);border:1px solid var(--line2);overflow:hidden;touch-action:none}.lab-wave canvas{width:100%;height:100%;display:block}.lab-sel{position:absolute;top:0;bottom:0;background:rgba(0,217,255,.12);border-left:2px solid var(--cyan);border-right:2px solid var(--cyan);pointer-events:none}.lab-head{position:absolute;top:0;bottom:0;width:2px;background:#fff;pointer-events:none}
.tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.6rem;margin:1rem 0}.tool{display:flex;flex-direction:column;gap:.35rem;padding:.9rem;border-radius:var(--r2);background:var(--card);border:1px solid var(--line);text-align:left}.tool:hover{border-color:var(--violet)}.tool small{color:var(--tx3);font-size:.76rem}
.prose{max-width:76ch}.prose h2{margin:1.8rem 0 .6rem}.prose h3{margin:1.2rem 0 .4rem}.prose p,.prose li{color:var(--tx2);margin:.4rem 0}.prose ul{padding-left:1.2rem}.prose table{margin:.8rem 0}
.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .55rem;border-radius:99px;font-size:.72rem;font-weight:800}.pill.ok{background:rgba(52,211,153,.14);color:var(--green)}.pill.part{background:rgba(251,191,36,.13);color:var(--amber)}.pill.need{background:rgba(0,217,255,.1);color:var(--cyan)}.pill.bad{background:rgba(251,113,133,.13);color:var(--red)}

/* ---------- адаптив ---------- */
@media (max-width:1280px){.cols{grid-template-columns:minmax(0,1fr) 320px}.trow{grid-template-columns:28px 46px minmax(0,1fr) 130px 40px 56px 40px}.twf{display:none}}
@media (max-width:1100px){#mp{grid-template-columns:minmax(200px,1fr) minmax(280px,1.4fr) auto}.vol input{width:70px}.mp-sleep,.mp-room{display:none}}
@media (max-width:1023px){
 :root{--sbw:0px;--mph:64px;--tab:62px;--tbh:58px}#sb{display:none}.desk-only{display:none!important}.mob-only{display:grid!important}
 #tb{padding:0 .6rem;gap:.4rem}.gs{max-width:none}.gs input{height:40px}
 #view{padding:1rem 1rem calc(var(--mph) + var(--tab) + 2.2rem + var(--safe-b)) 1rem}
 #tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:41;height:calc(var(--tab) + var(--safe-b));padding-bottom:var(--safe-b);background:rgba(9,13,27,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line)}
 #tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--tx3);font-size:.66rem;font-weight:700}#tabbar a.on{color:#fff}#tabbar a.on svg{color:var(--cyan)}
 #mp{left:8px;right:8px;bottom:calc(var(--tab) + var(--safe-b) + 6px);height:var(--mph);padding:0 .4rem 0 .5rem;grid-template-columns:minmax(0,1fr) auto auto;gap:.2rem;border-radius:16px;border:1px solid var(--line2);box-shadow:0 12px 34px -12px rgba(0,0,0,.9)}
 html:not(.has-player) #mp{transform:translateY(calc(100% + 90px))}#mp::before{display:none}
 .mp-c,.mp-r,.mp-like{display:none!important}.pp.mob{display:grid;width:42px;height:42px}.mob.ib{display:inline-grid}.mp-cv{width:46px;height:46px;border-radius:10px}
 .mp-prog{display:block;position:absolute;left:12px;right:12px;bottom:3px;height:2px;border-radius:2px;background:rgba(255,255,255,.1);overflow:hidden}.mp-prog i{display:block;height:100%;background:var(--grad2);transform-origin:left;transform:scaleX(0)}
 #toasts{bottom:calc(var(--mph) + var(--tab) + var(--safe-b) + 16px)}#qp{top:auto;bottom:calc(var(--mph) + var(--tab) + var(--safe-b) + 14px);height:min(70vh,560px)}html:not(.has-player) #toasts{bottom:calc(var(--tab) + var(--safe-b) + 14px)}
 .fp-main{display:flex;flex-direction:column;align-items:stretch;gap:1rem;overflow-y:auto;overscroll-behavior:contain}.fp-left{flex:none}.fp-cv{width:min(80vw,42vh,420px);height:min(80vw,42vh,420px);flex:none}.fp-right{max-height:none}.fp-vol{display:none}.fp-pane{min-height:220px}
 .hero-in{grid-template-columns:minmax(0,1fr)}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cols{grid-template-columns:minmax(0,1fr)}.room{grid-template-columns:minmax(0,1fr)}.dna{grid-template-columns:1fr;justify-items:center}.dna-facts{width:100%}
 .roles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
 .trow{grid-template-columns:46px minmax(0,1fr) 36px 36px;gap:.6rem;padding:.35rem .25rem}.trow .tn,.trow .tg,.trow .td,.trow .drag{display:none}
 .thero{grid-template-columns:1fr;gap:1.2rem}.thero .cv{width:min(72vw,300px);margin:0 auto}.thero>div:last-child{text-align:center}.metaline{justify-content:center}.thero .pact,.thero .row.gap{justify-content:center}
 .ahero{flex-direction:column;align-items:center;text-align:center;min-height:0}.shelf{grid-auto-columns:42vw;gap:.8rem}.shelf.beat{grid-auto-columns:66vw}.shelf.artist{grid-auto-columns:30vw}.sh .nav2{display:none}
 .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem .8rem}.grid.beats{grid-template-columns:1fr}.grid.artists{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
 .chart-list{grid-template-columns:1fr}.phead{margin-bottom:1rem}.modal{place-items:end center;padding:0}.mo-panel,.mo-panel.wide{width:100%;max-height:92vh;border-radius:22px 22px 0 0;padding-bottom:calc(1.4rem + var(--safe-b));transform:translateY(40px)}
 .cart-row{grid-template-columns:56px minmax(0,1fr);}.cart-row img{width:56px;height:56px}.cart-row>:nth-child(n+3){grid-column:2}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.gtile{height:96px}
 .hero{border-radius:20px;padding:1.1rem 1.1rem 1.2rem}.hero h1{font-size:1.55rem}.hero p{font-size:.9rem;margin:.5rem 0 .9rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
 .hero .btn.big{height:40px;padding:0 .9rem;font-size:.84rem}.hero .row.gap{gap:.4rem}.hero .stats{display:none}.hero-in{gap:1rem}.cont{padding:.7rem}.cont img{width:64px;height:64px}.banner{flex-direction:column;align-items:flex-start}
 .hero .chips.wrap{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-1.1rem;padding-right:1.1rem}.hero .chips.wrap::-webkit-scrollbar{display:none}.thero .ib.big{width:44px;height:44px}.thero .btn.big{height:48px;padding:0 1.2rem}
 .filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:.6rem}.filters>*{flex:none}.filters .grow{display:none}.filters::-webkit-scrollbar{display:none}
 .tb-acc .btn{width:40px;height:40px;padding:0}.tb-acc .btn span{display:none}.tb-acc .btn svg{display:block}.stat{padding:.8rem}.stat b{font-size:1.25rem}
}
@media (max-width:420px){.roles{grid-template-columns:1fr}.rcard ul{display:none}.stats .stat b{font-size:1.2rem}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}::view-transition-group(*){animation:none!important}}
@media print{#sb,#tb,#mp,#tabbar,#fp,#qp,#toasts,.no-print{display:none!important}#view{padding:0}body{background:#fff;color:#000}.cert{background:#fff;color:#000;border:2px solid #000}.cert *{color:#000!important}}

/* много вкладок (админ-панель): на широком экране — перенос строк вместо скрытой прокрутки */
@media (min-width:900px){.tabs{flex-wrap:wrap;row-gap:0}}
