:root{
  --p:#b64a95; --s:#554595;
  --grad:linear-gradient(134deg,#554595,#b64a95 60%);
  --grad-x:linear-gradient(110deg,#554595,#b64a95 45%,#e07bbf 70%,#554595);
  --ink:#211a1f; --ink2:#5a4f59; --ink3:#8e828c; --line:#ddd0da; --bg:#fbf7fa; --white:#fff;
  --glass:rgba(255,255,255,.58); --glass-strong:rgba(255,255,255,.82); --glass-line:rgba(255,255,255,.85);
  --sh-sm:0 1px 2px rgba(85,69,149,.06),0 3px 10px -2px rgba(85,69,149,.08);
  --sh-md:0 10px 28px -10px rgba(85,69,149,.22),0 2px 6px rgba(33,26,31,.05);
  --sh-lg:0 28px 60px -20px rgba(85,69,149,.38),0 10px 24px -12px rgba(182,74,149,.28);
  --ease:cubic-bezier(.2,.8,.2,1); --spring:cubic-bezier(.34,1.56,.64,1);
  --side:264px; --pv:384px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 14px/1.45 Figtree,system-ui,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input{font:inherit;color:inherit}
h1,h2,h3{font-family:Syne,Figtree,sans-serif;margin:0;letter-spacing:-.01em}
.i{width:18px;height:18px;flex:none}
:focus-visible{outline:2px solid var(--p);outline-offset:2px}
::selection{background:rgba(182,74,149,.2)}

.bg{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.blob{position:absolute;border-radius:50%;filter:blur(80px);will-change:transform}
.b1{width:520px;height:520px;left:-140px;top:-160px;background:#e6a3cf;opacity:.55;animation:drift1 32s ease-in-out infinite alternate}
.b2{width:600px;height:600px;right:-200px;top:8%;background:#a99be0;opacity:.45;animation:drift2 38s ease-in-out infinite alternate}
.b3{width:460px;height:460px;left:32%;bottom:-220px;background:#f2bfdc;opacity:.55;animation:drift3 30s ease-in-out infinite alternate}
.b4{width:300px;height:300px;left:58%;top:28%;background:#c8bdf2;opacity:.35;animation:drift1 44s ease-in-out infinite alternate-reverse}
@keyframes drift1{to{transform:translate3d(140px,90px,0) scale(1.12)}}
@keyframes drift2{to{transform:translate3d(-160px,120px,0) scale(.9)}}
@keyframes drift3{to{transform:translate3d(-120px,-110px,0) scale(1.15)}}
.grain{position:absolute;inset:0;opacity:.07;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}


.app{position:relative;z-index:1;height:100dvh;display:grid;grid-template-columns:var(--side) minmax(0,1fr);gap:18px;padding:16px 18px 16px 16px;transition:padding .5s var(--ease)}
@media (min-width:1280px){.app.pv-open{padding-right:calc(var(--pv) + 34px)}}

.glass{background:var(--glass);backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);border:1px solid var(--glass-line);box-shadow:var(--sh-md)}

.side{display:flex;flex-direction:column;border-radius:26px;padding:18px 12px 14px;min-height:0;position:relative}
.brand{display:flex;align-items:center;gap:11px;padding:2px 8px 18px}
.logo{width:38px;height:38px;border-radius:12px;background:var(--grad);display:grid;place-items:center;color:#fff;box-shadow:0 8px 20px -6px rgba(182,74,149,.7);position:relative;overflow:hidden}
.logo::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);animation:shine 5s ease-in-out infinite 1.5s}
@keyframes shine{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.brand h1{font-size:19px;font-weight:800;line-height:1}
.brand small{display:block;font-size:11.5px;color:var(--ink3);font-weight:500;margin-top:3px;font-family:Figtree}
.nav{position:relative;display:flex;flex-direction:column;gap:2px}
.nav .ind{position:absolute;left:0;right:0;top:0;height:40px;border-radius:13px;background:#fff;box-shadow:var(--sh-sm),inset 0 0 0 1px rgba(182,74,149,.12);transition:transform .5s var(--spring),height .3s,opacity .3s;pointer-events:none}
.nav .ind::before{content:"";position:absolute;left:-1px;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--grad)}
.nitem{position:relative;z-index:1;display:flex;align-items:center;gap:11px;height:40px;padding:0 12px;border-radius:13px;color:var(--ink2);font-weight:600;font-size:14px;transition:color .25s,background .25s}
.nitem:hover{color:var(--ink);background:rgba(255,255,255,.45)}
.nitem.on{color:var(--p);background:none}
.nitem .c{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--ink3);min-width:20px;text-align:right}
.nitem.on .c{color:var(--p)}
.nitem.over{color:#c0344d;background:rgba(224,69,95,.1);transform:scale(1.03)}
.stitle{display:flex;align-items:center;justify-content:space-between;margin:20px 12px 8px;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink3)}
.folders{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;overflow-y:auto;min-height:0;flex:1;scrollbar-width:none}
.folder{position:relative;width:100%;display:flex;align-items:center;gap:11px;height:40px;padding:0 12px;border-radius:13px;color:var(--ink2);font-weight:500;transition:background .25s,color .25s,transform .35s var(--spring),box-shadow .3s}
.folder .fi{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:rgba(85,69,149,.08);color:var(--s);transition:transform .35s var(--spring),background .3s,color .3s}
.folder .fi .i{width:16px;height:16px}
.folder span.n{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.folder .c{font-size:11.5px;font-weight:700;color:var(--ink3)}
.folder:hover{background:rgba(255,255,255,.55);color:var(--ink)}
.folder.on{background:#fff;color:var(--ink);box-shadow:var(--sh-sm)}
.folder.on .fi{background:var(--grad);color:#fff}
body.items-drag .folder{box-shadow:inset 0 0 0 1.5px rgba(182,74,149,.22)}
body.items-drag .folder .fi,body.filedrag .folder .fi{animation:wig 1.6s ease-in-out infinite}
.folder.over{background:linear-gradient(134deg,rgba(85,69,149,.14),rgba(182,74,149,.2));color:var(--ink);transform:scale(1.04) translateX(4px);box-shadow:inset 0 0 0 2px var(--p),0 10px 24px -10px rgba(182,74,149,.6)!important}
.folder.over .fi{background:var(--grad);color:#fff;transform:scale(1.15) rotate(-8deg);animation:none}
.folder.pulse{animation:fpulse .7s var(--ease)}
@keyframes fpulse{0%{box-shadow:0 0 0 0 rgba(182,74,149,.55)}100%{box-shadow:0 0 0 14px rgba(182,74,149,0)}}
@keyframes wig{0%,100%{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}
.storage{margin-top:12px;padding:14px;border-radius:18px;background:rgba(255,255,255,.62);border:1px solid #fff}
.storage .top{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;font-weight:700}
.storage .top span{color:var(--ink3);font-weight:600}
.gauge{position:relative;height:8px;border-radius:8px;background:rgba(85,69,149,.1);margin:10px 0 8px;overflow:hidden}
.gauge i{position:absolute;inset:0;border-radius:8px;background:var(--grad-x);background-size:220% 100%;transform-origin:left;transform:scaleX(0);transition:transform 1.4s var(--ease);animation:flow 4s linear infinite}
.gauge i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:sweep 2.6s ease-in-out infinite}
@keyframes flow{to{background-position:-220% 0}}
@keyframes sweep{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.storage p{margin:0;font-size:12px;color:var(--ink2)}

.main{display:flex;flex-direction:column;min-width:0;min-height:0}
.top{display:flex;align-items:center;gap:12px;padding-bottom:14px}
.icon-btn.menu-btn{display:none}
.icon-btn{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:var(--ink2);transition:background .2s,color .2s,transform .2s}
.icon-btn:hover{background:rgba(255,255,255,.7);color:var(--ink)}
.search{flex:1;max-width:680px;display:flex;align-items:center;gap:10px;height:54px;padding:0 10px 0 18px;border-radius:19px;transition:box-shadow .35s var(--ease),transform .35s var(--ease),background .3s}
.search:focus-within{background:var(--glass-strong);transform:translateY(-1px);box-shadow:0 0 0 4px rgba(182,74,149,.13),var(--sh-lg)}
.search>.i{color:var(--ink3);transition:color .3s}
.search:focus-within>.i{color:var(--p)}
.search input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:15px;height:100%}
.search input::placeholder{color:var(--ink3)}
.search kbd{font:600 12px Figtree;color:var(--ink3);border:1px solid var(--line);background:#fff;border-radius:7px;padding:2px 8px;box-shadow:0 1px 0 var(--line)}
.search .clr{width:30px;height:30px;border-radius:9px;display:none;place-items:center;color:var(--ink3)}
.search .clr:hover{background:rgba(85,69,149,.08);color:var(--ink)}
.search.has .clr{display:grid}.search.has kbd{display:none}
.btn-grad{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:9px;height:50px;padding:0 22px;border-radius:17px;background:var(--grad-x);background-size:220% 100%;color:#fff;font-weight:700;font-size:14.5px;box-shadow:0 12px 26px -10px rgba(182,74,149,.75),inset 0 1px 0 rgba(255,255,255,.3);transition:transform .3s var(--spring),box-shadow .3s,background-position .8s var(--ease)}
.btn-grad:hover{transform:translateY(-2px);background-position:-60% 0;box-shadow:0 18px 32px -12px rgba(182,74,149,.85),inset 0 1px 0 rgba(255,255,255,.3)}
.btn-grad:active{transform:translateY(0) scale(.98)}
.btn-grad .i{width:19px;height:19px}
.btn-grad.sm{height:40px;padding:0 16px;border-radius:13px;font-size:13.5px}
.me{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:13px;background:var(--grad);border:2px solid #fff;box-shadow:var(--sh-md);margin-left:auto;flex:none}

.titlebar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:2px 4px 12px}
.titlebar h2{font-size:28px;font-weight:800;line-height:1.1;display:flex;align-items:center;gap:8px;min-width:0}
.titlebar h2 .crumb{color:var(--ink3);font-weight:700;cursor:pointer;transition:color .2s}
.titlebar h2 .crumb:hover{color:var(--p)}
.titlebar h2 .sep{color:var(--line);font-weight:400}
.titlebar h2 .cur{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.titlebar p{margin:0;color:var(--ink2);font-size:13px;white-space:nowrap}
.titlebar p b{color:var(--ink);font-variant-numeric:tabular-nums}

.toolbar{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px 10px 16px;border-radius:20px;margin-bottom:10px}
.people{display:flex;align-items:center;gap:12px;min-width:0;flex:1}
.people .lbl{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);white-space:nowrap}
.avatars{display:flex;align-items:center;padding:10px 10px 8px 2px}
.pav{--c:#999;position:relative;flex:none;width:36px;height:36px;border-radius:50%;border:2px solid #fff;background:var(--c);color:#fff;font-weight:700;font-size:11.5px;display:grid;place-items:center;margin-left:-6px;z-index:var(--z,1);box-shadow:0 3px 8px -2px rgba(33,26,31,.25);transition:transform .45s var(--spring),margin .45s var(--ease),opacity .3s,filter .3s,box-shadow .3s}
.pav:first-child{margin-left:0}
.avatars:hover .pav:not(:first-child),.avatars:focus-within .pav:not(:first-child){margin-left:5px}
.pav:hover{transform:translateY(-3px) scale(1.08);z-index:20}
.pav .n{position:absolute;top:-7px;right:-8px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#fff;color:var(--ink);font-size:10.5px;font-weight:800;display:grid;place-items:center;z-index:2;box-shadow:0 2px 6px rgba(33,26,31,.18);transition:background .3s,color .3s,transform .3s var(--spring);font-variant-numeric:tabular-nums}
.pav .tip{position:absolute;top:calc(100% + 9px);left:50%;transform:translate(-50%,-4px);background:var(--ink);color:#fff;font-size:11.5px;font-weight:600;padding:5px 9px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s,transform .25s var(--ease);z-index:20}
.pav:hover .tip{opacity:1;transform:translate(-50%,0)}
.avatars.filtering .pav:not(.on){opacity:.42;filter:saturate(.35)}
.avatars.filtering .pav:not(.on):hover{opacity:.85;filter:none}
.pav.on{transform:translateY(-2px);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--c),0 10px 18px -6px var(--c)}
.pav.on .n{background:var(--c);color:#fff;transform:scale(1.08)}
.pav.zero{opacity:.3}
.pav.pop{animation:pop .55s var(--spring)}
.pav.pop::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--c);animation:ring .6s ease-out forwards;pointer-events:none}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.3)}100%{transform:translateY(-2px) scale(1)}}
@keyframes ring{to{transform:scale(1.9);opacity:0}}
.pchips{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}
.pchip{flex:none;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 4px 0 4px;border-radius:15px;background:color-mix(in srgb,var(--c) 11%,#fff);border:1px solid color-mix(in srgb,var(--c) 28%,#fff);font-size:12.5px;font-weight:600;animation:chipIn .4s var(--spring)}
.pchip .mini{width:22px;height:22px;border-radius:50%;background:var(--c);color:#fff;font-size:9.5px;font-weight:800;display:grid;place-items:center}
.pchip button{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:var(--ink3)}
.pchip button:hover{background:rgba(33,26,31,.08);color:var(--ink)}
.pchip button .i{width:13px;height:13px}
@keyframes chipIn{from{opacity:0;transform:scale(.6) translateX(-8px)}to{opacity:1;transform:none}}
.psum{font-size:12.5px;color:var(--ink2);white-space:nowrap}
.psum b{color:var(--ink);font-variant-numeric:tabular-nums}
.linkbtn{font-size:12.5px;font-weight:700;color:var(--p);padding:4px 8px;border-radius:8px}
.linkbtn:hover{background:rgba(182,74,149,.08)}
.tools{display:flex;align-items:center;gap:8px}
.sort{position:relative;display:flex;align-items:center;height:40px;border-radius:13px;background:rgba(255,255,255,.7);border:1px solid rgba(221,208,218,.7)}
.sort>button{height:100%;display:flex;align-items:center;gap:7px;padding:0 10px 0 12px;font-size:13px;color:var(--ink2);border-radius:12px}
.sort>button b{color:var(--ink);font-weight:700}
.sort>button:hover{background:#fff}
.sort .dir{padding:0 10px;border-left:1px solid rgba(221,208,218,.7);border-radius:0 12px 12px 0;color:var(--p)}
.sort .dir .i{transition:transform .5s var(--spring)}
.sort .dir.asc .i{transform:rotate(180deg)}
.sort .i.chev{width:15px;height:15px;color:var(--ink3)}
.seg{position:relative;display:flex;padding:3px;border-radius:13px;background:rgba(85,69,149,.08)}
.seg .pill{position:absolute;top:3px;left:3px;width:38px;height:34px;border-radius:10px;background:#fff;box-shadow:var(--sh-sm);transition:transform .5s var(--spring)}
.seg[data-v=list] .pill{transform:translateX(38px)}
.seg button{position:relative;z-index:1;width:38px;height:34px;display:grid;place-items:center;color:var(--ink3);transition:color .3s}
.seg button.on{color:var(--p)}

.pmenu,.ctx{position:fixed;z-index:85;min-width:224px;padding:6px;border-radius:16px;background:rgba(255,255,255,.9);backdrop-filter:blur(22px) saturate(1.6);-webkit-backdrop-filter:blur(22px) saturate(1.6);border:1px solid #fff;box-shadow:var(--sh-lg);opacity:0;transform:scale(.95) translateY(-6px);transform-origin:top left;pointer-events:none;transition:opacity .16s,transform .22s var(--ease)}
.pmenu{position:absolute;top:calc(100% + 8px);right:0;transform-origin:top right;min-width:210px}
.pmenu.on,.ctx.on{opacity:1;transform:none;pointer-events:auto}
.mi{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:0 10px;border-radius:10px;font-size:13.5px;font-weight:500;color:var(--ink);text-align:left;transition:background .15s,color .15s}
.mi .i{width:17px;height:17px;color:var(--ink3);transition:color .15s}
.mi:hover,.mi:focus-visible{background:rgba(182,74,149,.09);color:var(--p);outline:0}
.mi:hover .i{color:var(--p)}
.mi .k{margin-left:auto;font-size:11.5px;color:var(--ink3)}
.mi.on{color:var(--p);font-weight:700}
.mi.on::after{content:"";margin-left:auto;width:7px;height:7px;border-radius:50%;background:var(--grad)}
.mi.danger{color:#c0344d}.mi.danger .i{color:#c0344d}.mi.danger:hover{background:rgba(224,69,95,.09)}
.mi[disabled]{opacity:.45;pointer-events:none}
.mhead{padding:8px 10px 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);display:flex;align-items:center;gap:6px}
.mhead button{display:grid;place-items:center;width:22px;height:22px;border-radius:6px}
.mhead button:hover{background:rgba(85,69,149,.08)}
.msep{height:1px;background:rgba(221,208,218,.7);margin:5px 6px}

.scroller{position:relative;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 4px 130px;margin:0 -4px;scrollbar-width:thin;scrollbar-color:rgba(85,69,149,.25) transparent}
.ghead{position:sticky;top:0;z-index:6;display:flex;align-items:center;gap:10px;margin:2px -4px 0;padding:11px 12px;font-size:15px;font-weight:700;border-radius:14px;background:rgba(251,247,250,.72);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4)}
.ghead .gdot{width:8px;height:8px;border-radius:50%;background:var(--grad);box-shadow:0 0 0 4px rgba(182,74,149,.13)}
.ghead em{font-style:normal;font:700 11.5px Figtree;color:var(--p);background:rgba(182,74,149,.1);padding:2px 8px;border-radius:9px}
.ghead i{margin-left:auto;font:500 12px Figtree;font-style:normal;color:var(--ink3)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(192px,1fr));gap:16px;padding:8px 2px 22px}
.card{position:relative;border-radius:22px;padding:8px;background:rgba(255,255,255,.74);border:1px solid rgba(255,255,255,.95);box-shadow:var(--sh-sm);user-select:none;-webkit-user-select:none;cursor:default;transform:perspective(900px) translateY(var(--ty,0)) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .3s var(--ease),box-shadow .35s var(--ease),background .3s;outline:0}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.55),rgba(182,74,149,.1) 40%,transparent 70%);opacity:0;transition:opacity .35s;mix-blend-mode:soft-light}
.card::after,.row::after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;pointer-events:none;background:radial-gradient(160px circle at var(--mx,50%) var(--my,50%),rgba(182,74,149,.85),rgba(85,69,149,.4) 40%,transparent 70%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .35s}
.card:hover{--ty:-6px;background:rgba(255,255,255,.95);box-shadow:var(--sh-lg)}
.card:hover::before,.card:hover::after,.row:hover::after{opacity:1}
.card:focus-visible{box-shadow:0 0 0 3px rgba(182,74,149,.35),var(--sh-md)}
.card.sel{background:#fff;box-shadow:0 0 0 2px var(--p),0 18px 34px -16px rgba(182,74,149,.6)}
.card.dragging,.row.dragging{opacity:.35;transform:scale(.96)}
.fresh{animation:fresh 2.6s ease-out}
@keyframes fresh{0%{box-shadow:0 0 0 0 rgba(182,74,149,.7),var(--sh-lg)}100%{box-shadow:0 0 0 18px rgba(182,74,149,0),var(--sh-sm)}}
.thumb{--t:#888;position:relative;aspect-ratio:4/3;border-radius:16px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(150deg,color-mix(in srgb,var(--t) 9%,#fff),color-mix(in srgb,var(--t) 26%,#fff))}
.thumb>*{transition:transform .6s var(--ease)}
.card:hover .thumb>:not(.ext):not(.dur){transform:scale(1.06)}
.thumb .ext{position:absolute;left:9px;bottom:9px;z-index:1;font:800 10px Figtree;letter-spacing:.06em;color:var(--t);background:rgba(255,255,255,.88);padding:3px 7px;border-radius:7px;box-shadow:0 2px 6px rgba(33,26,31,.08)}
.tdoc .paper{position:relative;width:44%;aspect-ratio:.76;background:#fff;border-radius:7px;box-shadow:0 12px 24px -10px color-mix(in srgb,var(--t) 70%,transparent),0 2px 4px rgba(33,26,31,.08);transform:rotate(-4deg);padding:14% 13%;display:flex;flex-direction:column;gap:9%}
.card:hover .tdoc .paper{transform:rotate(0) translateY(-4px) scale(1.06)}
.paper i{display:block;height:5%;min-height:3px;border-radius:3px;background:rgba(33,26,31,.1)}
.paper i:first-child{height:9%;width:60%;background:var(--t)}
.paper i:nth-child(3){width:80%}.paper i:last-child{width:55%}
.paper.sheet{background-image:linear-gradient(rgba(37,162,106,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(37,162,106,.18) 1px,transparent 1px);background-size:100% 18%,25% 100%;background-color:#fff}
.paper.sheet i{opacity:0}.paper.sheet i:first-child{opacity:1;width:100%}
.paper.slide{width:62%;aspect-ratio:1.5;padding:9% 10%;gap:12%}
.paper.slide i:nth-child(n+4){display:none}
.tico .glyph{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;color:var(--t);background:rgba(255,255,255,.7);box-shadow:0 12px 24px -12px var(--t),inset 0 0 0 1px rgba(255,255,255,.9)}
.tico .glyph .i{width:30px;height:30px}
.timg{background:linear-gradient(165deg,hsl(var(--h) 72% 80%),hsl(calc(var(--h) + 55) 58% 60%))}
.timg .sun{position:absolute;width:26%;aspect-ratio:1;border-radius:50%;right:16%;top:16%;background:radial-gradient(circle,hsl(calc(var(--h) + 30) 100% 94%),hsl(calc(var(--h) + 30) 95% 82%));box-shadow:0 0 30px hsl(calc(var(--h) + 30) 100% 90%)}
.timg .mount{position:absolute;left:0;right:0;bottom:0;width:100%;height:58%}
.tvid{background:radial-gradient(circle at 30% 20%,hsl(var(--h) 60% 42%),#1d1630 70%)}
.tvid .play{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.18);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.35)}
.tvid .play .i{width:20px;height:20px;margin-left:3px}
.tvid .ext{color:#8a4fd8}
.tvid .dur{position:absolute;right:9px;bottom:9px;font:700 10.5px Figtree;color:#fff;background:rgba(0,0,0,.45);padding:3px 7px;border-radius:7px}
.check{position:absolute;top:15px;left:15px;z-index:3;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;color:#fff;border:1.5px solid rgba(255,255,255,.95);background:rgba(33,26,31,.12);backdrop-filter:blur(6px);opacity:0;transform:scale(.8);transition:opacity .2s,transform .3s var(--spring),background .25s}
.check .i{width:14px;height:14px;stroke-width:3;opacity:0;transform:scale(.3);transition:transform .35s var(--spring),opacity .2s}
.card:hover .check,body.selecting .card .check,.card.sel .check{opacity:1;transform:none}
.sel .check{background:var(--grad);border-color:transparent;box-shadow:0 4px 10px -2px rgba(182,74,149,.6)}
.sel .check .i{opacity:1;transform:none}
.star{position:absolute;top:14px;right:14px;z-index:3;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;color:var(--ink2);background:rgba(255,255,255,.75);backdrop-filter:blur(6px);opacity:0;transition:opacity .2s,transform .3s var(--spring),color .2s}
.star .i{width:16px;height:16px}
.card:hover .star,.star.on{opacity:1}
.star:hover{transform:scale(1.12)}
.star.on{color:#d99a1b}.star.on .i{fill:currentColor}
.star.pop{animation:spop .5s var(--spring)}
@keyframes spop{40%{transform:scale(1.45) rotate(-14deg)}}
.meta{padding:10px 6px 4px}
.meta .name{font-weight:650;font-weight:600;font-size:13.8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.meta .sub{display:flex;align-items:center;gap:6px;margin-top:5px;font-size:12px;color:var(--ink2);white-space:nowrap;overflow:hidden}
.meta .sub .sep{width:3px;height:3px;border-radius:50%;background:var(--line);flex:none}
.av{flex:none;width:20px;height:20px;border-radius:50%;display:inline-grid;place-items:center;background:var(--c);color:#fff;font-size:8.5px;font-weight:800;border:1.5px solid #fff;box-shadow:0 1px 3px rgba(33,26,31,.2)}
mark{background:linear-gradient(transparent 55%,rgba(182,74,149,.28) 55%);color:inherit;border-radius:2px}

.lhead,.row{display:grid;grid-template-columns:28px 38px minmax(0,2.6fr) minmax(0,1.5fr) 132px 76px minmax(0,1.3fr) 34px;gap:12px;align-items:center}
.lhead{height:34px;padding:0 11px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3)}
.lhead button{display:flex;align-items:center;gap:4px;text-transform:inherit;letter-spacing:inherit;font-weight:inherit;color:inherit;transition:color .2s}
.lhead button:hover,.lhead button.on{color:var(--p)}
.lhead button .i{width:13px;height:13px;transition:transform .4s var(--spring)}
.lhead button.asc .i{transform:rotate(180deg)}
.rows{display:flex;flex-direction:column;gap:5px;padding:6px 0 20px}
.row{position:relative;min-height:58px;padding:0 10px;border-radius:15px;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.75);user-select:none;-webkit-user-select:none;transition:background .2s,box-shadow .3s,transform .3s var(--ease);outline:0}
.row::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),rgba(182,74,149,.09),transparent 60%);opacity:0;transition:opacity .3s}
.row:hover{background:rgba(255,255,255,.94);box-shadow:var(--sh-md);transform:translateY(-1px)}
.row:hover::before{opacity:1}
.row:focus-visible{box-shadow:0 0 0 3px rgba(182,74,149,.3)}
.row.sel{background:color-mix(in srgb,#b64a95 8%,#fff);box-shadow:inset 0 0 0 1.5px rgba(182,74,149,.55)}
.row .check{position:static;opacity:1;transform:none;border-color:var(--line);background:#fff;backdrop-filter:none}
.row.sel .check{background:var(--grad);border-color:transparent}
.row .star{position:static;opacity:0;background:none}
.row:hover .star,.row .star.on{opacity:1}
.ficon{--t:#888;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--t);background:color-mix(in srgb,var(--t) 13%,#fff);transition:transform .35s var(--spring)}
.row:hover .ficon{transform:scale(1.08) rotate(-4deg)}
.rname{min-width:0}
.rname b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rname small{display:none;font-size:12px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rby{display:flex;align-items:center;gap:8px;min-width:0;color:var(--ink2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rdate,.rsize{font-size:13px;color:var(--ink2);white-space:nowrap;font-variant-numeric:tabular-nums}
.rfolder{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:12.5px;color:var(--ink2)}
.rfolder span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rfolder .i{width:15px;height:15px;color:var(--s);opacity:.7}

.empty{display:grid;place-items:center;text-align:center;padding:70px 20px;color:var(--ink2)}
.empty .art{width:150px;height:120px;margin-bottom:18px;animation:float 5s ease-in-out infinite}
.empty h3{font-size:20px;color:var(--ink);margin-bottom:6px}
.empty p{margin:0 0 16px;max-width:340px}
@keyframes float{50%{transform:translateY(-8px)}}

.abar{position:fixed;left:50%;bottom:22px;z-index:60;display:flex;align-items:center;gap:2px;padding:6px;border-radius:19px;background:rgba(33,26,31,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:#fff;box-shadow:0 24px 50px -14px rgba(33,26,31,.55),inset 0 1px 0 rgba(255,255,255,.08);transform:translate(-50%,170%);opacity:0;transition:transform .55s var(--spring),opacity .3s;max-width:calc(100vw - 24px)}
.abar.on{transform:translate(-50%,0);opacity:1}
.abar .cnt{display:flex;align-items:center;gap:8px;padding:0 12px 0 6px;font-size:13px;font-weight:600;white-space:nowrap}
.abar .cnt b{min-width:26px;height:26px;padding:0 7px;border-radius:9px;background:var(--grad);display:grid;place-items:center;font-variant-numeric:tabular-nums}
.abar .ab{position:relative;overflow:hidden;display:flex;align-items:center;gap:7px;height:40px;padding:0 12px;border-radius:13px;font-size:13px;font-weight:600;white-space:nowrap;transition:background .2s}
.abar .ab:hover{background:rgba(255,255,255,.12)}
.abar .ab.danger:hover{background:rgba(224,69,95,.3)}
.abar .vsep{width:1px;height:22px;background:rgba(255,255,255,.15);margin:0 4px}

.preview{position:fixed;z-index:50;top:16px;right:16px;bottom:16px;width:var(--pv);border-radius:28px;display:flex;flex-direction:column;background:rgba(255,255,255,.76);transform:translateX(calc(100% + 30px));transition:transform .55s var(--ease),box-shadow .4s;overflow:hidden}
.preview.open{transform:none;box-shadow:var(--sh-lg)}
.pv-head{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 4px 22px}
.pv-head span{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink3)}
.pv-body{flex:1;overflow-y:auto;padding:8px 22px 24px;scrollbar-width:thin}
.pv-in{animation:pvin .55s var(--ease) both}
@keyframes pvin{from{opacity:0;transform:translateY(14px)}}
.pv-thumb .thumb{aspect-ratio:16/10;border-radius:20px;box-shadow:var(--sh-md)}
.pv-thumb .paper{width:34%}.pv-thumb .paper.slide{width:52%}
.pv-name{font-size:20px;font-weight:700;line-height:1.25;margin:18px 0 8px;word-break:break-word}
.tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{--t:var(--p);font-size:12px;font-weight:700;padding:4px 10px;border-radius:9px;color:var(--t);background:color-mix(in srgb,var(--t) 12%,#fff)}
.tag.ghost{--t:var(--ink2)}
.pv-actions{display:flex;gap:8px;margin:18px 0 6px}
.btn-soft{position:relative;overflow:hidden;width:40px;height:40px;border-radius:13px;display:grid;place-items:center;color:var(--ink2);background:#fff;border:1px solid rgba(221,208,218,.8);transition:color .2s,transform .3s var(--spring),box-shadow .3s}
.btn-soft:hover{color:var(--p);transform:translateY(-2px);box-shadow:var(--sh-md)}
.btn-soft.on{color:#d99a1b}.btn-soft.on .i{fill:currentColor}
.pv-actions .btn-grad{flex:1;justify-content:center}
.dl{margin:16px 0 0;display:grid;grid-template-columns:auto 1fr;gap:0}
.dl dt,.dl dd{padding:10px 0;border-bottom:1px solid rgba(221,208,218,.6);font-size:13px}
.dl dt{color:var(--ink3);padding-right:16px;white-space:nowrap}
.dl dd{margin:0;color:var(--ink);font-weight:500;text-align:right;display:flex;justify-content:flex-end;align-items:center;gap:7px;min-width:0}
.dl dd .chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 7px;border-radius:9px;background:rgba(85,69,149,.08);color:var(--s);font-weight:600;transition:background .2s}
.dl dd button.chip:hover{background:rgba(85,69,149,.16)}
.dl dd .chip .i{width:14px;height:14px}
.pv-h{font-size:14px;margin:24px 0 12px;display:flex;align-items:center;gap:8px}
.tl{list-style:none;margin:0;padding:0;position:relative}
.tl::before{content:"";position:absolute;left:13px;top:8px;bottom:8px;width:2px;border-radius:2px;background:linear-gradient(#b64a95,rgba(85,69,149,.15))}
.tl li{position:relative;display:flex;gap:12px;padding:0 0 14px}
.tl .av{width:28px;height:28px;font-size:9.5px;border-width:2px;position:relative;z-index:1}
.tl p{margin:0;font-size:13px;line-height:1.4}
.tl p b{font-weight:700}
.tl time{display:block;font-size:11.5px;color:var(--ink3);margin-top:2px}

.drop{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 48%,rgba(182,74,149,.2),rgba(251,247,250,.78) 62%);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);transition:opacity .3s}
.drop.on{opacity:1}
.drop svg.frame{position:absolute;inset:14px;width:calc(100% - 28px);height:calc(100% - 28px);overflow:visible}
.drop svg.frame rect{x:2px;y:2px;width:calc(100% - 4px);height:calc(100% - 4px);fill:none;stroke:url(#dg);stroke-width:3;stroke-dasharray:16 12;animation:dash 1.2s linear infinite}
@keyframes dash{to{stroke-dashoffset:-56}}
.dcore{position:relative;display:grid;justify-items:center;text-align:center;transform:scale(.9) translateY(10px);transition:transform .6s var(--spring)}
.drop.on .dcore{transform:none}
.halo{position:absolute;top:-80px;width:360px;height:360px;border-radius:50%;background:conic-gradient(from 0deg,#554595,#b64a95,#f3a8d6,#8e7be0,#554595);filter:blur(46px);opacity:.55;animation:spin 7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.orb{position:relative;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--grad);box-shadow:0 30px 60px -20px rgba(182,74,149,.9),inset 0 2px 0 rgba(255,255,255,.35);animation:breathe 2.4s ease-in-out infinite}
.orb::before,.orb::after{content:"";position:absolute;inset:-14px;border-radius:50%;border:2px solid rgba(182,74,149,.45);animation:wave 2.4s ease-out infinite}
.orb::after{animation-delay:1.2s}
.orb .i{width:56px;height:56px;stroke-width:1.6;animation:bob 2.4s ease-in-out infinite}
@keyframes breathe{50%{transform:scale(1.07)}}
@keyframes wave{from{transform:scale(.85);opacity:1}to{transform:scale(1.7);opacity:0}}
@keyframes bob{50%{transform:translateY(-5px)}}
.dcore h2{position:relative;margin-top:30px;font-size:clamp(26px,5vw,40px);font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.dcore p{position:relative;margin:8px 0 0;color:var(--ink2);font-size:15px;padding:0 20px}
.dcore p b{color:var(--p)}
.sparks i{position:absolute;left:50%;top:60px;width:8px;height:8px;border-radius:50%;background:var(--grad);opacity:0;animation:rise 2.6s ease-out infinite;animation-delay:var(--d)}
@keyframes rise{0%{opacity:0;transform:translate(var(--x),40px) scale(.4)}25%{opacity:1}100%{opacity:0;transform:translate(calc(var(--x) * 1.6),-120px) scale(1)}}
@media (min-width:901px){.drop{left:calc(var(--side) + 26px)}}

.ups{position:fixed;right:22px;bottom:22px;z-index:70;width:360px;border-radius:22px;background:rgba(255,255,255,.88);overflow:hidden;transform:translateY(calc(100% + 40px));opacity:0;transition:transform .55s var(--spring),opacity .3s}
.ups.on{transform:none;opacity:1}
.ups-h{display:flex;align-items:center;gap:12px;padding:13px 10px 13px 16px}
.ups-h .ring{width:30px;height:30px;flex:none;transform:rotate(-90deg)}
.ups-h .ring circle{fill:none;stroke-width:3.5}
.ups-h .ring .bgc{stroke:rgba(85,69,149,.12)}
.ups-h .ring .fg{stroke:url(#rg);stroke-linecap:round;stroke-dasharray:75.4;stroke-dashoffset:75.4;transition:stroke-dashoffset .3s}
.ups-h b{flex:1;font-size:13.5px}
.ups-h .icon-btn{width:32px;height:32px;border-radius:10px}
.ups-h .icon-btn .i{width:16px;height:16px;transition:transform .4s var(--spring)}
.ups.min .tog .i{transform:rotate(180deg)}
.ups-list{max-height:260px;overflow-y:auto;padding:0 10px 10px;display:flex;flex-direction:column;gap:4px;transition:max-height .4s var(--ease)}
.ups.min .ups-list{max-height:0;padding-bottom:0}
.up{display:grid;grid-template-columns:38px minmax(0,1fr) 26px;gap:10px;align-items:center;padding:8px;border-radius:14px;background:rgba(255,255,255,.7);animation:chipIn .45s var(--spring)}
.up-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.up-bar{position:relative;height:5px;border-radius:5px;background:rgba(85,69,149,.1);margin:6px 0 4px;overflow:hidden}
.up-bar i{position:absolute;inset:0;border-radius:5px;background:var(--grad-x);background-size:220% 100%;transform-origin:left;transform:scaleX(0);animation:flow 1.6s linear infinite}
.up-bar i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);animation:sweep 1.1s linear infinite}
.up-sub{font-size:11.5px;color:var(--ink3);font-variant-numeric:tabular-nums}
.up-ok{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#25a26a;transform:scale(0);transition:transform .45s var(--spring)}
.up-ok .i{width:14px;height:14px;stroke-width:3}
.up.done .up-ok{transform:scale(1)}
.up.done .up-bar i{animation:none;background:#25a26a}
.up.done .up-bar i::after{display:none}

.toasts{position:fixed;left:22px;bottom:22px;z-index:75;display:flex;flex-direction:column;gap:8px;align-items:flex-start;pointer-events:none}
.toast{pointer-events:auto;position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;padding:12px 10px 12px 14px;border-radius:15px;background:rgba(33,26,31,.92);backdrop-filter:blur(14px);color:#fff;font-size:13.5px;box-shadow:0 20px 40px -14px rgba(33,26,31,.55);max-width:min(440px,calc(100vw - 44px));animation:toastIn .55s var(--spring)}
.toast .ti{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--grad);flex:none}
.toast .ti .i{width:15px;height:15px}
.toast span{flex:1}
.toast button{font-weight:700;color:#f6b6df;padding:6px 10px;border-radius:9px;white-space:nowrap}
.toast button:hover{background:rgba(255,255,255,.1)}
.toast button.x{color:rgba(255,255,255,.5);padding:6px}
.toast::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--grad-x);transform-origin:left;animation:tbar 5.5s linear forwards}
.toast.out{animation:toastOut .35s var(--ease) forwards}
@keyframes toastIn{from{opacity:0;transform:translateX(-30px) scale(.9)}}
@keyframes toastOut{to{opacity:0;transform:translateX(-20px) scale(.95)}}
@keyframes tbar{to{transform:scaleX(0)}}

.ripple{position:absolute;border-radius:50%;background:currentColor;opacity:.28;transform:scale(0);pointer-events:none;animation:rip .65s ease-out forwards}
.btn-grad .ripple{background:#fff}
@keyframes rip{to{transform:scale(1);opacity:0}}
#ghost{position:fixed;top:-300px;left:-300px;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 10px;border-radius:14px;background:#fff;box-shadow:0 10px 30px rgba(85,69,149,.3);font-weight:700;font-size:13px;color:var(--ink);max-width:260px}
#ghost .gi{width:30px;height:30px;border-radius:9px;background:var(--grad);color:#fff;display:grid;place-items:center;font-size:12px}
#ghost span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scrim{display:none}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

@media (max-width:1100px){.people .pchips{display:none}}
@media (max-width:900px){
  .app{grid-template-columns:minmax(0,1fr);padding:10px 10px 0}
  .side{position:fixed;z-index:80;top:10px;left:10px;bottom:10px;width:min(290px,84vw);background:rgba(255,255,255,.9);transform:translateX(calc(-100% - 20px));transition:transform .5s var(--ease)}
  .side.open{transform:none;box-shadow:var(--sh-lg)}
  .scrim{display:block;position:fixed;inset:0;z-index:79;background:rgba(33,26,31,.25);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .3s}
  .scrim.on{opacity:1;pointer-events:auto}
  .icon-btn.menu-btn{display:grid}
  .me{display:none}
  .preview{top:10px;left:10px;right:10px;bottom:10px;width:auto}
  .lhead{display:none}
  .row{grid-template-columns:24px 38px minmax(0,1fr) 30px;gap:10px}
  .rby,.rdate,.rsize,.rfolder{display:none}
  .rname small{display:block}
}
@media (max-width:640px){
  .top{gap:8px;padding-bottom:10px}
  .search{height:46px;border-radius:16px;padding:0 6px 0 14px}
  .search kbd{display:none}
  .btn-grad.up-btn{width:46px;height:46px;padding:0;justify-content:center;border-radius:15px}
  .btn-grad.up-btn span{display:none}
  .titlebar{padding-bottom:8px}
  .titlebar h2{font-size:22px}
  .titlebar p{display:none}
  .toolbar{padding:8px 10px;gap:8px;border-radius:18px}
  .people{flex-basis:100%;gap:8px}
  .people .lbl{display:none}
  .avatars{overflow-x:auto;scrollbar-width:none;flex:1;min-width:0;padding:8px 8px 8px 4px}
  .avatars .pav:not(:first-child){margin-left:6px}
  .pav .tip{display:none}
  .psum{display:none}
  .tools{flex:1;justify-content:space-between}
  .sort>button .lab{display:none}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .card{border-radius:18px;padding:6px}
  .thumb{border-radius:13px}
  .meta{padding:8px 4px 2px}
  .meta .sub .sz,.meta .sub .sep{display:none}
  .check{top:12px;left:12px}.star{top:11px;right:11px}
  .abar{bottom:12px}
  .abar .ab span,.abar .cnt span{display:none}
  .abar .ab{padding:0 11px}
  .ups{left:10px;right:10px;bottom:10px;width:auto}
  .toasts{left:10px;right:10px;bottom:70px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .blob{animation:none}
}

/* ===== Application additions (beyond the mockup) ===== */
a{color:inherit}
.nitem{text-decoration:none}
.nitem[hidden]{display:none}
.nitem.over{color:var(--p);background:rgba(182,74,149,.1);transform:scale(1.03)}
.nitem[data-view="trash"].over{color:#c0344d;background:rgba(224,69,95,.1)}
.nitem.deny,.folder.deny,.crumb.deny{background:rgba(224,69,95,.08)!important;color:#c0344d!important;box-shadow:inset 0 0 0 1.5px rgba(224,69,95,.45)!important;cursor:no-drop}
.nitem.pulse{animation:fpulse .7s var(--ease)}
.icon-btn.sm{width:32px;height:32px;border-radius:10px}
.icon-btn.sm .i{width:16px;height:16px}
.icon-btn.xs{width:24px;height:24px;border-radius:8px;color:var(--ink3)}
.icon-btn.xs .i{width:15px;height:15px}
.icon-btn.danger:hover{color:#c0344d;background:rgba(224,69,95,.1)}
.icon-btn:disabled{opacity:.35;pointer-events:none}

/* Sidebar tree */
.treebox{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;margin:0 -6px;padding:0 6px 6px;scrollbar-width:thin;scrollbar-color:rgba(85,69,149,.2) transparent}
.treebox .stitle{position:sticky;top:0;z-index:2;margin:16px 6px 6px;padding:4px 0}
.treebox .stitle .icon-btn{opacity:.8}
.tree ul{list-style:none;margin:0;padding:0}
.tree .folder{height:36px;gap:7px;padding:0 6px 0 calc(4px + var(--d,0) * 14px);cursor:pointer;user-select:none;-webkit-user-select:none;outline:0}
.tree .folder:focus-visible{box-shadow:inset 0 0 0 2px rgba(182,74,149,.45)}
.tree .folder .fi{width:24px;height:24px;border-radius:8px}
.tree .folder .fi .i{width:14px;height:14px}
.tree .folder span.n{font-size:13.5px}
.tw{width:20px;height:20px;border-radius:6px;display:grid;place-items:center;color:var(--ink3);flex:none;transition:background .2s}
.tw .i{width:14px;height:14px;transition:transform .35s var(--spring)}
.tw:hover{background:rgba(85,69,149,.1);color:var(--ink)}
.tw:disabled{opacity:0;pointer-events:none}
.tn.open>.tnode .tw .i{transform:rotate(90deg)}
.tkids{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease)}
.tkids>ul{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:1px}
.tn.open>.tkids{grid-template-rows:1fr}
.tree>ul{display:flex;flex-direction:column;gap:1px}
.tsh{display:inline-grid;place-items:center;color:var(--s);opacity:.6;flex:none}
.tsh .i{width:13px;height:13px}
.tadd{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;color:var(--ink3);opacity:0;flex:none;transition:opacity .2s,background .2s}
.tadd .i{width:14px;height:14px}
.tnode:hover .tadd,.tnode:focus-within .tadd{opacity:1}
.tadd:hover{background:rgba(182,74,149,.12);color:var(--p)}
.tempty{margin:4px 12px;font-size:12.5px;color:var(--ink3)}
.whoami{display:none}

/* Top bar */
.upwrap,.mewrap{position:relative;display:flex;flex:none}
.mewrap{margin-left:auto}
.me{cursor:pointer;margin-left:0;transition:transform .3s var(--spring)}
.me:hover{transform:scale(1.06)}
.upwrap .up-btn{border-radius:17px 0 0 17px;padding-right:18px}
.upwrap .up-more{width:40px;padding:0;justify-content:center;border-radius:0 17px 17px 0;border-left:1px solid rgba(255,255,255,.25);background-position:-80% 0}
.upwrap .up-more .i{width:16px;height:16px}
.upwrap .pmenu,.mewrap .pmenu{top:calc(100% + 8px);right:0}
.mwho{gap:10px;text-transform:none;letter-spacing:0;padding:8px 10px 10px}
.mwho .av{width:34px;height:34px;font-size:12px}
.mwho b{display:block;font-size:13.5px;color:var(--ink);font-weight:700}
.mwho small{display:block;font-size:12px;color:var(--ink3);font-weight:500}

/* Title bar */
.titlebar h2{font-size:26px;flex:1;min-width:0}
.titlebar h2 .crumb:first-child{flex:none}
#tInfo{flex:none;flex-wrap:nowrap}
input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.sh-search input,.search input{outline:0}
@media (min-width:1280px){
  body.pv-open .ups{right:calc(var(--pv) + 34px)}
  body.pv-open .abar{left:calc(50% - var(--pv) / 2 - 10px)}
}
body.selecting .ups{bottom:84px}
body.pv-open .tcount{display:none}
.titlebar h2 a.crumb{flex:0 3 auto;min-width:2.5em}
.titlebar h2 .cur{flex:0 1 auto;min-width:3em}
@media (max-width:1200px){.tcount{display:none}}
.titlebar h2 .crumb{text-decoration:none;border-radius:10px;padding:2px 6px;margin:-2px -6px;transition:color .2s,background .2s,transform .3s var(--spring)}
.titlebar h2 .crumb.over{color:var(--p);background:rgba(182,74,149,.12);transform:scale(1.05)}
.titlebar h2 .crumb.more{font:inherit;color:var(--ink3)}
.titlebar h2 .tsh{margin-left:8px;vertical-align:middle}
.titlebar h2 .tsh .i{width:18px;height:18px}
.titlebar h2 a.crumb{white-space:nowrap;max-width:26vw;overflow:hidden;text-overflow:ellipsis}
#tInfo{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.tcount{margin-right:6px}
.btn-line{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;border-radius:12px;background:rgba(255,255,255,.75);border:1px solid rgba(221,208,218,.85);font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;transition:background .2s,color .2s,transform .3s var(--spring),box-shadow .3s}
.btn-line .i{width:16px;height:16px;color:var(--ink3)}
.btn-line:hover{background:#fff;color:var(--p);transform:translateY(-1px);box-shadow:var(--sh-sm)}
.btn-line:hover .i{color:var(--p)}
.btn-line.danger,.btn-line.danger .i{color:#c0344d}
.btn-line.danger:hover{background:rgba(224,69,95,.08)}
.btn-danger{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:13px;background:#c0344d;color:#fff;font-weight:700;font-size:13.5px;box-shadow:0 10px 22px -10px rgba(192,52,77,.8);transition:transform .3s var(--spring),background .2s}
.btn-danger:hover{background:#a82a41;transform:translateY(-1px)}
.btn-grad:disabled,.btn-danger:disabled{opacity:.55;pointer-events:none}
.btn-grad.busy::after{content:"";width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .8s linear infinite}
a.btn-grad{text-decoration:none}
.ro{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--s);background:rgba(85,69,149,.09);padding:6px 10px;border-radius:10px}
.ro .i{width:15px;height:15px}

/* Folder cards */
.fgrid{grid-template-columns:repeat(auto-fill,minmax(226px,1fr));gap:12px;padding-bottom:16px}
.fcard{display:flex;align-items:center;gap:12px;padding:10px 38px 10px 10px;border-radius:18px;cursor:default}
.fcard .fbig{position:relative;flex:none;width:48px;height:48px;border-radius:15px;display:grid;place-items:center;color:#fff;background:var(--grad);box-shadow:0 10px 20px -10px rgba(182,74,149,.8);transition:transform .45s var(--spring)}
.fcard .fbig .i{width:24px;height:24px}
.fcard:hover .fbig{transform:rotate(-6deg) scale(1.06)}
.fcard .meta{padding:0;flex:1;min-width:0}
.fcard .meta .sub{margin-top:3px}
.fcard .meta .sub .sz{min-width:0;overflow:hidden;text-overflow:ellipsis}
.fcard .check{top:4px;left:4px;width:20px;height:20px;border-radius:7px}
.fcard .check .i{width:12px;height:12px}
.fcard .star{top:50%;right:8px;margin-top:-15px}
.fcard .sbadge{right:-5px;bottom:-5px}
.card.over,.row.over{background:#fff;box-shadow:0 0 0 2px var(--p),0 16px 34px -14px rgba(182,74,149,.7)!important;--ty:-4px}
.card.over .fbig{transform:scale(1.12) rotate(-8deg)}
.card.deny,.row.deny{box-shadow:0 0 0 2px rgba(224,69,95,.6)!important;cursor:no-drop}
body.items-drag [data-drop].card:not(.dragging),body.items-drag [data-drop].row:not(.dragging){box-shadow:inset 0 0 0 1.5px rgba(182,74,149,.3),var(--sh-sm)}

/* Thumbnails */
.thumb img.real{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#fff;opacity:0;transition:opacity .45s var(--ease),transform .6s var(--ease)}
.thumb.loaded img.real{opacity:1}
.card:hover .thumb img.real{transform:scale(1.05)}
.thumb .ext{z-index:2}
.sbadge{position:absolute;right:9px;bottom:9px;z-index:2;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;color:var(--s);background:rgba(255,255,255,.9);box-shadow:0 2px 6px rgba(33,26,31,.12)}
.sbadge .i{width:14px;height:14px}
.tfold{background:linear-gradient(150deg,rgba(85,69,149,.08),rgba(182,74,149,.2))}
.rsh{display:inline-grid;vertical-align:-2px;margin-left:6px;color:var(--s);opacity:.65}
.rsh .i{width:14px;height:14px}
.frow .ficon{background:var(--grad);color:#fff}
.row .rfolder span:only-child{color:var(--ink2)}
.meta .name input.ren,.rname input.ren{width:100%;font:inherit;font-weight:600;padding:3px 7px;margin:-4px -8px;border:1.5px solid var(--p);border-radius:8px;outline:0;background:#fff;box-shadow:0 0 0 4px rgba(182,74,149,.13)}
.ghead i:empty{display:none}

/* Loading skeleton */
.skel .sk{border-radius:22px;background:linear-gradient(100deg,rgba(255,255,255,.5) 30%,rgba(255,255,255,.95) 50%,rgba(255,255,255,.5) 70%);background-size:300% 100%;animation:shim 1.3s linear infinite;border:1px solid rgba(255,255,255,.9)}
.grid.skel .sk{aspect-ratio:1/1.02}
.rows.skel .sk{height:58px;border-radius:15px}
@keyframes shim{from{background-position:100% 0}to{background-position:-100% 0}}

/* Toasts / uploads */
.toast.err .ti{background:#c0344d}
.toast .ti .i{color:#fff}
.up{grid-template-columns:38px minmax(0,1fr) 30px}
.up-act{display:grid;place-items:center}
.upx{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;color:var(--ink3);transition:background .2s,color .2s}
.upx:hover{background:rgba(85,69,149,.1);color:var(--ink)}
.upx .i{width:15px;height:15px}
.up.error .up-bar i{animation:none;background:#c0344d}
.up.error .up-bar i::after{display:none}
.up.error .up-sub .pct{color:#c0344d;font-weight:600}
.up.cancel{opacity:.5}
.up.cancel .up-bar i{animation:none;background:var(--ink3)}
.ups-h .icon-btn .i{width:16px;height:16px}
.drop.deny .orb{background:linear-gradient(134deg,#8e828c,#c0344d)}
.drop.deny .dcore h2{background:linear-gradient(134deg,#5a4f59,#c0344d);-webkit-background-clip:text;background-clip:text}
.drop.deny .halo{opacity:.2}

/* Preview */
.pv-head{padding:14px 12px 4px 22px}
.pv-nav{display:flex;gap:2px}
.pv-nav .icon-btn{width:36px;height:36px;border-radius:11px}
.pv-media{border-radius:20px;overflow:hidden;background:rgba(33,26,31,.06);box-shadow:var(--sh-md);display:grid;place-items:center}
.pv-img img{display:block;max-width:100%;max-height:52vh;object-fit:contain;background:repeating-conic-gradient(#f3eef2 0 25%,#fff 0 50%) 0 0/16px 16px}
.pv-img.broken{min-height:140px}
.pv-img.broken img{display:none}
.pv-img.broken::after{content:"Aperçu indisponible";color:var(--ink3);font-size:13px}
.pv-pdf iframe{width:100%;height:56vh;border:0;background:#fff}
.pv-video video{display:block;width:100%;max-height:52vh;background:#000}
.pv-audio{width:100%;margin-top:12px}
.pv-text{place-items:stretch;background:#fff}
.pv-text pre{margin:0;max-height:46vh;overflow:auto;padding:14px 16px;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);white-space:pre-wrap;word-break:break-word}
.tag{display:inline-flex;align-items:center;gap:5px}
.tag .i{width:13px;height:13px}
.pv-actions .btn-grad{min-width:0}
.dl dd .chip{max-width:100%;overflow:hidden}
.dl dd .chip:not(.i){white-space:nowrap;text-overflow:ellipsis}
.pv-access{display:flex;flex-wrap:wrap;gap:6px}
.pv-access .pchip{padding-right:10px;animation:none}
.pv-access .pchip.inh{opacity:.65}
.pchip .mini .i{width:12px;height:12px}
.tl-load p{color:var(--ink3)}

/* Modals */
.mwrap{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px}
.mscrim{position:absolute;inset:0;background:rgba(33,26,31,.28);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .25s}
.modal{position:relative;width:min(540px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;border-radius:26px;padding:22px 22px 18px;background:rgba(255,255,255,.9);box-shadow:var(--sh-lg);opacity:0;transform:translateY(16px) scale(.96);transition:opacity .25s,transform .4s var(--spring)}
.mwrap.on .mscrim{opacity:1}
.mwrap.on .modal{opacity:1;transform:none}
.modal.small{width:min(440px,100%)}
.modal.share{width:min(580px,100%)}
.modal.shake{animation:shake .4s}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.mtitle{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700;margin-bottom:6px}
.mtitle .i{width:22px;height:22px;color:var(--p)}
.mtext{margin:0 0 14px;color:var(--ink2)}
.mfoot{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:18px}
.mhint{flex:1;font-size:12.5px;color:var(--ink3);min-width:0}
.field{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:12px 0 0;position:relative}
.field>.i{width:16px;height:16px;color:var(--ink3)}
.field>span{font-size:12.5px;font-weight:700;color:var(--ink2)}
.field>span em{font-style:normal;font-weight:500;color:var(--ink3);margin-left:6px}
.field input,.field select,.field .pw-wrap{flex-basis:100%}
.pw-wrap{position:relative;display:flex;min-width:0}
.pw-wrap input{flex:1;width:100%;padding-right:46px}
.pw-eye{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:10px;background:transparent;color:var(--ink3);display:grid;place-items:center;cursor:pointer;transition:background .2s,color .2s}
.pw-eye:hover{background:rgba(182,74,149,.09);color:var(--p)}
.pw-eye:focus-visible{outline:2px solid var(--p);outline-offset:1px}
.pw-eye .i{width:18px;height:18px}
input:where(:not([type=checkbox]):not([type=color]):not([type=file]):not(.ren)),select{height:44px;padding:0 14px;border-radius:13px;border:1px solid var(--line);background:rgba(255,255,255,.95);color:var(--ink);font-size:14px;outline:0;transition:border-color .2s,box-shadow .2s;min-width:0}
.search input{height:100%;padding:0;border:0;background:none;border-radius:0}
.search input:focus{box-shadow:none}
input:where(:not(.ren)):focus,select:focus{border-color:var(--p);box-shadow:0 0 0 4px rgba(182,74,149,.13)}
input[readonly]{background:rgba(85,69,149,.05);color:var(--ink2)}
select{cursor:pointer;appearance:none;-webkit-appearance:none;padding-right:34px;background:rgba(255,255,255,.95) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238e828c' stroke-width='2.2' stroke-linecap='round'><path d='m6 9 6 6 6-6'/></svg>") no-repeat right 12px center}
.copyrow{display:flex;gap:8px;margin-top:12px}
.copyrow input{flex:1}
.copyrow .btn-grad{flex:none}
.ferr{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:rgba(224,69,95,.09);color:#a82a41;font-size:13px;font-weight:600}
.fok{margin:0 0 4px;padding:10px 12px;border-radius:12px;background:rgba(85,69,149,.08);color:var(--s);font-size:13px;font-weight:600}
.linkbtn{white-space:nowrap}

/* Share dialog */
.sh-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.sh-head>div{flex:1;min-width:0}
.sh-head .mtitle{margin:0;font-size:19px}
.sh-name{margin:2px 0 0;color:var(--ink2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-add{position:relative;display:flex;gap:8px}
.sh-search{flex:1;display:flex;align-items:center;gap:8px;height:46px;padding:0 6px 0 14px;border-radius:14px;border:1px solid var(--line);background:#fff;transition:box-shadow .2s,border-color .2s}
.sh-search:focus-within{border-color:var(--p);box-shadow:0 0 0 4px rgba(182,74,149,.13)}
.sh-search>.i{color:var(--ink3);width:17px;height:17px}
.sh-search input{flex:1;border:0!important;box-shadow:none!important;background:none!important;padding:0!important;height:100%!important}
.modal.move .sh-search{margin:10px 0 8px}
.sh-add select{width:150px;height:46px;border-radius:14px}
.sh-results{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:5;padding:6px;border-radius:16px;background:rgba(255,255,255,.97);border:1px solid #fff;box-shadow:var(--sh-lg);display:none;max-height:300px;overflow-y:auto}
.sh-results.on{display:block;animation:pvin .25s var(--ease)}
.sh-opt{display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border-radius:11px;text-align:left}
.sh-opt>span:not(.av){flex:1;min-width:0}
.sh-opt b{display:block;font-weight:600;font-size:13.5px}
.sh-opt small{display:block;font-size:12px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-opt>.i{color:var(--ink3);width:16px;height:16px}
.sh-opt:hover,.sh-opt.act{background:rgba(182,74,149,.09)}
.sh-opt:hover>.i,.sh-opt.act>.i{color:var(--p)}
.sh-none{margin:8px 10px;color:var(--ink3);font-size:13px}
.sh-h{display:flex;align-items:center;gap:7px;margin:20px 0 8px;font:700 11.5px Figtree;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.sh-h .i{width:15px;height:15px}
.sh-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:260px;overflow-y:auto}
.sh-row{display:flex;align-items:center;gap:11px;min-height:52px;padding:4px 6px;border-radius:13px;animation:chipIn .35s var(--spring)}
.sh-row:hover{background:rgba(255,255,255,.7)}
.sh-row .av,.sh-lrow .lico{width:34px;height:34px;font-size:11px;flex:none}
.av .i{width:15px;height:15px}
.gav{border-radius:11px}
.sh-who{flex:1;min-width:0}
.sh-who b{display:block;font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-who small{display:block;font-size:12px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-row select{height:36px;width:150px;border-radius:11px;font-size:13px}
.sh-role{font-size:13px;color:var(--ink3);font-weight:600;padding-right:8px}
.sh-row.inh{opacity:.6}
.sh-row.inh .av{filter:saturate(.3)}
.sh-row.own .sh-role{color:var(--p)}
.sh-empty{padding:10px;color:var(--ink3)}
.sh-link{padding:12px;border-radius:16px;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.9)}
.sh-lrow{display:flex;align-items:center;gap:11px}
.sh-lrow .lico{border-radius:11px;display:grid;place-items:center;background:rgba(85,69,149,.09);color:var(--s)}
.sh-lrow.on .lico{background:var(--grad);color:#fff}
.sh-lrow .lico .i{width:17px;height:17px}
.sh-opts{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
.sh-opts .field{margin-top:12px}
.sh-opts .linkbtn{position:absolute;right:6px;bottom:8px}
.sh-opts .field:has(.linkbtn) .pw-eye{right:70px}
.sh-opts .field:has(.linkbtn) .pw-wrap input{padding-right:110px}

/* Move dialog */
.mvlist{max-height:min(52vh,420px);overflow-y:auto;margin:0 -6px;padding:2px 6px;display:flex;flex-direction:column;gap:1px}
.mvopt{display:flex;align-items:center;gap:9px;min-height:38px;padding:0 10px 0 calc(10px + var(--d,0) * 18px);border-radius:11px;text-align:left;font-size:13.5px;font-weight:500;transition:background .15s}
.mvopt span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mvopt .i{width:17px;height:17px;color:var(--s);flex:none}
.mvopt:hover{background:rgba(182,74,149,.08)}
.mvopt.on{background:var(--grad);color:#fff}
.mvopt.on .i{color:#fff}
.mvopt.dis{opacity:.38;cursor:not-allowed}
.mvopt em{font-style:normal;font-size:11.5px;color:var(--ink3)}
.mvopt.on em{color:rgba(255,255,255,.8)}
.mvsec{margin:10px 10px 4px;font:700 11px Figtree;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}

/* Switch */
.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--ink2)}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch span{position:relative;width:38px;height:22px;border-radius:11px;background:rgba(85,69,149,.18);transition:background .25s;flex:none}
.switch span::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(33,26,31,.3);transition:transform .35s var(--spring)}
.switch input:checked+span{background:var(--grad)}
.switch input:checked+span::after{transform:translateX(16px)}
.switch input:focus-visible+span{outline:2px solid var(--p);outline-offset:2px}
.switch input:disabled+span{opacity:.5}
.switch em{font-style:normal}

/* Auth screens */
body.authing .app,body.authing .preview,body.authing .abar,body.authing .ups{display:none}
.auth{position:relative;z-index:5;min-height:100dvh;display:grid;place-items:center;padding:20px 16px;overflow-y:auto}
body.authing{overflow:auto}
.auth[hidden],[hidden]{display:none!important}
.auth-card{width:min(430px,100%);border-radius:30px;padding:30px 30px 26px;background:rgba(255,255,255,.66);animation:pvin .7s var(--ease) both}
.auth-card .brand{padding:0 0 26px}
.auth-card .logo{width:46px;height:46px;border-radius:14px}
.auth-card .logo .i{width:22px;height:22px}
.auth-card .brand h1{font-size:22px}
.auth-t{font-size:26px;font-weight:800}
.auth-s{margin:6px 0 4px;color:var(--ink2)}
.auth-f .field{margin-top:14px}
.auth-f .btn-grad,.auth-card>.btn-grad{width:100%;justify-content:center;margin-top:20px}
.auth-card>.btn-grad{margin-top:22px}
.auth-f .btn-grad .i{transition:transform .3s var(--spring)}
.auth-f .btn-grad:hover .i{transform:translateX(4px)}
.auth-foot{margin:18px 0 0;font-size:12.5px;color:var(--ink3);text-align:center}
.pwm{height:5px;border-radius:5px;background:rgba(85,69,149,.1);margin-top:8px;overflow:hidden}
.pwm i{display:block;height:100%;border-radius:5px;background:var(--grad);transform-origin:left;transform:scaleX(0);transition:transform .4s var(--ease),background .3s}
.pwm i[data-s="1"]{background:#c0344d}.pwm i[data-s="2"]{background:#d9822b}

/* Administration */
body.admin-mode .toolbar{display:none}
.adm-tabs{display:flex;align-items:center;gap:6px;margin-bottom:14px}
.adm-tabs button[role=tab]{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border-radius:13px;font-weight:700;color:var(--ink2);transition:background .2s,color .2s}
.adm-tabs button[role=tab] .i{width:17px;height:17px}
.adm-tabs button[role=tab]:hover{background:rgba(255,255,255,.6);color:var(--ink)}
.adm-tabs button[role=tab].on{background:#fff;color:var(--p);box-shadow:var(--sh-sm)}
.adm-sp{flex:1}
.adm-load{padding:40px;text-align:center;color:var(--ink3)}
.ulist{display:flex;flex-direction:column;gap:5px}
.uhead,.urow{display:grid;grid-template-columns:42px minmax(0,2.2fr) 160px 120px 84px 172px 142px;gap:12px;align-items:center}
.uhead{padding:0 12px;height:30px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3)}
.urow{min-height:64px;padding:8px 12px;border-radius:16px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.85);transition:background .2s,box-shadow .3s,opacity .3s}
.urow:hover{background:rgba(255,255,255,.95);box-shadow:var(--sh-md)}
.urow.off{opacity:.6}
.av.lg{width:40px;height:40px;font-size:13px;border-width:2px}
.uname{min-width:0}
.uname b{display:block;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uname b em{font-style:normal;font-weight:500;color:var(--ink3)}
.uname small{display:block;color:var(--ink3);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.urole select{height:38px;width:100%;font-size:13px;border-radius:11px}
.useen,.usize{font-size:13px;color:var(--ink2);font-variant-numeric:tabular-nums}
.umore{display:flex;gap:2px;justify-content:flex-end}
.glist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.gcard{position:relative;border-radius:22px;padding:16px;overflow:hidden}
.gcard::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--c)}
.gtop{display:flex;align-items:center;gap:10px}
.gcolor{position:relative;width:40px;height:40px;border-radius:13px;background:var(--c);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none;box-shadow:0 8px 18px -8px var(--c)}
.gcolor input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.gcolor .i{width:19px;height:19px}
input.gname{flex:1;height:40px;font-weight:700;font-size:15px;background:transparent;border-color:transparent}
input.gname:hover{border-color:var(--line);background:#fff}
.gcount{margin:8px 0 10px;font-size:12.5px;color:var(--ink3)}
.gmem{display:flex;flex-wrap:wrap;gap:6px;min-height:8px}
.gmem .pchip{padding-left:4px;padding-right:2px}
.gadd{margin-top:12px;width:100%;height:40px;font-size:13px}

@media (max-width:1180px){
  .uhead,.urow{grid-template-columns:42px minmax(0,2fr) 150px 110px 172px 142px}
  .uhead span:nth-child(5),.usize{display:none}
}
@media (max-width:900px){
  .whoami{display:flex;align-items:center;gap:10px;margin-top:10px;padding:8px 6px 0 8px;border-top:1px solid rgba(221,208,218,.6)}
  .whoami>span:not(.av){flex:1;min-width:0}
  .whoami b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .whoami small{display:block;font-size:11.5px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mewrap{display:none}
  .side{overflow:hidden}
  .uhead{display:none}
  .urow{grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"av name more" "av role act";row-gap:8px}
  .urow>.av{grid-area:av;align-self:start}
  .uname{grid-area:name}.umore{grid-area:more}.urole{grid-area:role}.uact{grid-area:act}
  .useen,.usize{display:none}
  .tadd{opacity:1}
}
@media (max-width:640px){
  .upwrap .up-btn{width:46px;height:46px;padding:0;justify-content:center;border-radius:15px 0 0 15px}
  .upwrap .up-more{height:46px;width:30px;border-radius:0 15px 15px 0}
  .titlebar{flex-wrap:wrap;align-items:center}
  .titlebar h2{font-size:21px;flex:1 1 100%}
  .titlebar h2 a.crumb{max-width:42vw}
  .titlebar p{display:flex}
  #tInfo{justify-content:flex-start}
  #tInfo:empty{display:none}
  .tcount{display:none}
  .btn-line{height:34px;padding:0 11px;font-size:12.5px}
  .fgrid{grid-template-columns:minmax(0,1fr);gap:8px}
  .fcard{padding:8px 44px 8px 8px}
  .fcard .fbig{width:42px;height:42px;border-radius:13px}
  .fcard .meta .sub .sz,.fcard .meta .sub .sep{display:inline}
  .modal{border-radius:24px;padding:18px 16px 14px}
  .mwrap{align-items:end;padding:10px}
  .sh-add{flex-wrap:wrap}
  .sh-add select{width:100%}
  .sh-row select{width:118px}
  .sh-opts{grid-template-columns:1fr}
  .mfoot{flex-wrap:wrap}
  .mhint{flex-basis:100%}
  .preview{border-radius:24px}
  .pv-body{padding:8px 16px 20px}
  .adm-tabs button[role=tab]{padding:0 12px}
  .glist{grid-template-columns:minmax(0,1fr)}
  .auth-card{padding:24px 20px 20px;border-radius:26px}
  .dl dd{flex-wrap:wrap}
  .copyrow{flex-wrap:wrap}
  .copyrow .btn-grad{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .skel .sk{animation:none}
}

/* Pending (invited, not yet registered) accounts */
.av.pending,.pchip.pending .mini{opacity:.55;filter:saturate(.45)}
.pmention{font-style:normal;font-weight:600;font-size:11px;color:var(--s);background:rgba(85,69,149,.09);padding:1px 7px;border-radius:7px;margin-left:7px;white-space:nowrap;vertical-align:1px}
.pchip .pmention{margin-left:2px;margin-right:2px}
.urow.pending{background:rgba(255,255,255,.45);border-style:dashed;border-color:rgba(85,69,149,.25)}
.uact .pend{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--s);background:rgba(85,69,149,.09);padding:4px 9px;border-radius:9px;white-space:nowrap}
.uact .pend .i{width:14px;height:14px}
.uact .exp{display:block;margin-top:4px;font-size:11.5px;color:var(--ink3)}
.uact .exp.ko{color:#c0344d;font-weight:700}
.mstat{display:flex;gap:9px;align-items:flex-start;margin:0 0 4px;padding:10px 12px;border-radius:12px;font-size:13px;font-weight:600}
.mstat .i{width:17px;height:17px;flex:none;margin-top:1px}
.mstat.ok{background:rgba(37,162,106,.1);color:#1d7a51}
.mstat.ko{background:rgba(224,69,95,.09);color:#a82a41}

/* Notifications */
.bellwrap{position:relative;flex:none;margin-left:auto}
.bellwrap+.mewrap{margin-left:0}
.icon-btn.bell{position:relative;width:46px;height:46px;border-radius:15px;background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--glass-line);box-shadow:var(--sh-sm)}
.icon-btn.bell>.i{width:20px;height:20px;transform-origin:50% 4px}
.icon-btn.bell[aria-expanded=true]{background:#fff;color:var(--p)}
.icon-btn.bell.ring>.i{animation:bellRing .9s var(--ease)}
@keyframes bellRing{15%{transform:rotate(16deg)}30%{transform:rotate(-14deg)}45%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}75%{transform:rotate(3deg)}}
.icon-btn.bell.unread{color:#fff;background:var(--grad);border-color:transparent;box-shadow:0 8px 22px -8px rgba(182,74,149,.75)}
.icon-btn.bell.unread::before{content:"";position:absolute;inset:-3px;border-radius:18px;border:2px solid rgba(182,74,149,.55);animation:bellHalo 2.4s ease-out infinite;pointer-events:none}
.icon-btn.bell.unread:not(.ring)>.i{animation:bellNudge 6s var(--ease) 1.5s infinite}
.icon-btn.bell.unread[aria-expanded=true]{background:#fff;color:var(--p)}
.icon-btn.bell.unread .bdg{background:#fff;color:var(--p);border-color:rgba(182,74,149,.3)}
@keyframes bellHalo{0%{transform:scale(.92);opacity:.9}100%{transform:scale(1.28);opacity:0}}
@keyframes bellNudge{0%,88%,100%{transform:none}91%{transform:rotate(12deg)}94%{transform:rotate(-10deg)}97%{transform:rotate(5deg)}}
@media (prefers-reduced-motion:reduce){.icon-btn.bell.unread::before,.icon-btn.bell.unread>.i{animation:none}}
.bdg{position:absolute;top:-5px;right:-6px;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--grad);color:#fff;font:800 11px/20px Figtree;text-align:center;border:2px solid #fff;box-shadow:0 4px 10px -3px rgba(182,74,149,.7);font-variant-numeric:tabular-nums}
.bdg.pop{animation:pop .55s var(--spring)}
.npanel{position:fixed;z-index:86;top:72px;right:16px;width:min(430px,calc(100vw - 32px));max-height:min(640px,calc(100dvh - 92px));display:flex;flex-direction:column;border-radius:24px;background:rgba(255,255,255,.86);box-shadow:var(--sh-lg);opacity:0;transform:translateY(-8px) scale(.97);transform-origin:top right;pointer-events:none;transition:opacity .18s,transform .3s var(--ease)}
.npanel.on{opacity:1;transform:none;pointer-events:auto}
.nhead{display:flex;align-items:center;gap:8px;padding:16px 12px 8px 20px}
.nhead h3{flex:1;font-size:19px;font-weight:800}
.ntabs{display:flex;gap:4px;padding:2px 14px 10px;border-bottom:1px solid rgba(221,208,218,.6);overflow-x:auto;scrollbar-width:none}
.ntabs button{flex:none;height:32px;padding:0 12px;border-radius:10px;font-size:12.5px;font-weight:700;color:var(--ink2);transition:background .2s,color .2s}
.ntabs button:hover{background:rgba(255,255,255,.8);color:var(--ink)}
.ntabs button.on{background:#fff;color:var(--p);box-shadow:var(--sh-sm)}
.nlist{flex:1;min-height:120px;overflow-y:auto;padding:4px 10px 12px;scrollbar-width:thin}
.nday{position:sticky;top:0;z-index:1;margin:0;padding:10px 10px 6px;font:700 11px Figtree;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);background:linear-gradient(rgba(250,246,249,.97) 70%,rgba(250,246,249,0))}
.nrow{position:relative;display:flex;align-items:flex-start;gap:11px;width:100%;padding:10px;border-radius:14px;text-align:left;font-size:13px;line-height:1.4;color:var(--ink2);transition:background .2s}
button.nrow:hover{background:rgba(255,255,255,.85)}
.nrow.unread{background:linear-gradient(100deg,rgba(182,74,149,.1),rgba(85,69,149,.06))}
.nrow.unread::before{content:"";position:absolute;left:3px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:var(--grad)}
.nrow .av{width:32px;height:32px;font-size:10.5px;margin-top:1px}
.ntext{flex:1;min-width:0;word-break:break-word}
.ntext b{color:var(--ink);font-weight:700}
.ntext b.gone{text-decoration:line-through;color:var(--ink3);font-weight:600}
.ntext time{display:block;margin-top:2px;font-size:11.5px;color:var(--ink3)}
.nico{flex:none;width:28px;height:28px;border-radius:9px;display:grid;place-items:center;color:var(--s);background:rgba(85,69,149,.08)}
.nico .i{width:15px;height:15px}
.nrow.dead{cursor:default}
.nmore{padding:14px;text-align:center;font-size:12.5px;color:var(--ink3)}
.nempty{display:grid;justify-items:center;text-align:center;padding:40px 24px;color:var(--ink2)}
.nempty .nart{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;color:#fff;background:var(--grad);box-shadow:0 14px 28px -12px rgba(182,74,149,.8);margin-bottom:14px;animation:float 5s ease-in-out infinite}
.nempty .nart .i{width:28px;height:28px}
.nempty b{font-size:15px;color:var(--ink)}
.nempty p{margin:6px 0 0;font-size:13px;max-width:280px}
@media (max-width:640px){
  .icon-btn.bell{width:46px;height:46px}
  .npanel{inset:8px;top:8px;width:auto;max-height:none;border-radius:24px;transform-origin:top center}
  .nhead .linkbtn{font-size:12px}
}
.search{min-width:0}
.nhead h3{min-width:0}
.nhead .linkbtn{flex:none}
@media (max-width:640px){
  .top{gap:6px}
  .nhead{padding:14px 8px 6px 16px;gap:4px}
  .nhead h3{font-size:17px}
  .nhead .linkbtn{padding:4px 6px}
  .icon-btn.bell{width:42px;height:46px;border-radius:14px}
}
.nhead,.ntabs{flex:none}

/* Photo avatars */
.av,.mini,.me,.pav{position:relative}
img.avi{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover;background:var(--c,#ddd)}
.pav img.avi,.me img.avi{z-index:0}
.pav .n,.pav .tip{z-index:2}
.gav img.avi{border-radius:inherit}
.whoami .wprof{flex:1;min-width:0;display:flex;align-items:center;gap:10px;text-align:left;border-radius:12px;padding:4px;margin:-4px}
.whoami .wprof:hover{background:rgba(255,255,255,.7)}
.whoami .wprof>span:not(.av){flex:1;min-width:0}

/* Profile & crop */
.av.xl{width:112px;height:112px;font-size:34px;border-width:3px;box-shadow:var(--sh-md)}
.pf-photo{display:flex;align-items:center;gap:20px;padding:6px 0 4px;border-radius:20px;transition:background .2s}
.pf-photo.over{background:rgba(182,74,149,.08);box-shadow:inset 0 0 0 2px var(--p)}
.pf-av{position:relative;flex:none;border-radius:50%;cursor:pointer;outline:0;transition:transform .35s var(--spring)}
.pf-av:hover,.pf-av:focus-visible{transform:scale(1.04)}
.pf-av:focus-visible .av{box-shadow:0 0 0 4px rgba(182,74,149,.35)}
.pf-cam{position:absolute;right:2px;bottom:2px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--grad);border:3px solid #fff;box-shadow:var(--sh-md)}
.pf-cam .i{width:16px;height:16px}
.pf-avbtns{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.pf-name .mfoot,.pf-pw .mfoot{margin-top:12px}
.crop{position:relative;width:min(280px,70vw);aspect-ratio:1;margin:6px auto 12px;border-radius:24px;overflow:hidden;background:repeating-conic-gradient(#f3eef2 0 25%,#fff 0 50%) 0 0/18px 18px;touch-action:none}
.crop canvas{display:block;width:100%;height:100%;cursor:grab}
.crop canvas.grab{cursor:grabbing}
.crop-ring{position:absolute;inset:0;pointer-events:none;border-radius:50%;box-shadow:0 0 0 999px rgba(33,26,31,.45),inset 0 0 0 2px rgba(255,255,255,.9)}
.crop-zoom{display:flex;align-items:center;gap:10px;color:var(--ink3);max-width:300px;margin:0 auto}
.crop-zoom input{flex:1;accent-color:var(--p);height:auto;padding:0;border:0;background:none}
@media (max-width:640px){.pf-photo{flex-direction:column}.pf-avbtns{align-items:center}}
.rolelab{font-size:13px;font-weight:600;color:var(--ink2)}
.rolelab.r-admin,.rolelab.r-manager{color:var(--s)}
.ustate{font-size:12.5px;font-weight:600;color:var(--ink2)}
.pmention.resp{background:rgba(217,154,27,.14);color:#9a6a0c}
.gmgr .i{width:13px;height:13px}
.gmgr.on{color:#d99a1b!important}
.gmgr.on .i{fill:currentColor}
.gcard.ro .gname{flex:1;font-size:15px;padding:0 6px}
.gcard.ro .gcolor{cursor:default}
.gpick{border:0;padding:0;min-width:0}
.gpick legend{display:flex;align-items:center;gap:8px;padding:0;margin-bottom:6px;font-size:12.5px;font-weight:700;color:var(--ink2)}
.gpick legend .i{width:16px;height:16px;color:var(--ink3)}
.gpick legend em{font-style:normal;font-weight:500;color:var(--ink3)}
.gopt{display:inline-flex;align-items:center;gap:8px;margin:0 6px 6px 0;padding:6px 12px 6px 8px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s}
.gopt input{accent-color:var(--p)}
.gopt:has(input:checked){border-color:var(--c);background:color-mix(in srgb,var(--c) 10%,#fff)}
.gdot2{width:9px;height:9px;border-radius:50%;background:var(--c)}
.gopt input{flex:none;width:16px;height:16px;margin:0}
.snd{display:flex;flex-direction:column;gap:8px;padding:6px 10px}
.snd .switch{font-size:13px;color:var(--ink)}
.snd-row{display:flex;gap:6px;align-items:center}
.snd-row select{flex:1;height:36px;font-size:13px;border-radius:11px;min-width:0}
.snd-row .btn-line{height:36px;padding:0 11px}
.snd-row .btn-line .i{width:13px;height:13px}
.modal .snd{padding:0}
#meMenu{min-width:290px}
.spw-tools{display:flex;gap:8px;margin-top:10px}
.chk{display:flex;gap:10px;align-items:flex-start;margin-top:12px;font-size:13px;color:var(--ink);cursor:pointer}
.chk input{flex:none;width:16px;height:16px;margin:2px 0 0;accent-color:var(--p)}
.chk em{font-style:normal;color:var(--ink3)}
.modal .pwm{margin-top:8px}
.uact .exp.mustchg{display:flex;align-items:center;gap:5px;color:#9a6a0c;font-weight:700}
.uact .exp.mustchg .i{width:12px;height:12px}
.mstat span{flex:1}
.toast.whole{cursor:pointer}
.toast.persist::after{display:none}

/* Quotas */
.storage.warn .gauge i{background:linear-gradient(90deg,#d9822b,#e8a33d);animation:none}
.storage.full .gauge i{background:linear-gradient(90deg,#c0344d,#e0455f);animation:none}
.storage.full #stPct{color:#c0344d}.storage.warn #stPct{color:#b0661a}
.qbar{position:relative;display:block;height:7px;border-radius:7px;background:rgba(85,69,149,.1);overflow:hidden;min-width:60px}
.qbar i{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:7px;background:#25a26a;transition:width 1s var(--ease)}
.qbar i.in{width:var(--w)}
.qbar.warn i{background:#d9822b}.qbar.full i{background:#c0344d}
.qpct{font-size:12px;font-weight:700;color:#1d7a51;font-variant-numeric:tabular-nums;min-width:42px;text-align:right}
.qpct.warn{color:#b0661a}.qpct.full{color:#c0344d}.qpct:not(.ok):not(.warn):not(.full){color:var(--ink3)}
.qval{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:10px;font-weight:600;font-size:13px;color:var(--ink);transition:background .2s}
.qval:hover{background:rgba(182,74,149,.09);color:var(--p)}
.qval .i{width:13px;height:13px;color:var(--ink3)}
.qval small{color:var(--ink3);font-weight:500}
.qval.sm{flex-wrap:wrap;gap:2px 5px;padding:4px 6px;margin:-4px -6px;text-align:left;max-width:100%}
.qval.sm .qbar{flex-basis:100%;height:5px;margin-top:3px}
.usize .qval.sm{font-size:12.5px}
.gquota{margin:-4px 0 10px}
.qin{display:inline-flex;gap:6px;align-items:center;min-width:0}
.qin input{width:96px;height:38px;flex:none}
.qin select{height:38px;width:110px;flex:none}
.qin input:disabled{opacity:.45}
.qedit{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.st-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;margin-bottom:14px}
.st-card{border-radius:22px;padding:18px 18px 16px;margin-bottom:14px}
.st-grid .st-card{margin-bottom:0}
.st-card h3{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:700;margin-bottom:12px}
.st-card h3 .i{color:var(--p)}
.st-card h3 em{font:500 12.5px Figtree;color:var(--ink3);font-style:normal}
.big-gauge{position:relative;height:22px;border-radius:12px;background:rgba(85,69,149,.1);overflow:visible}
.big-gauge i{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:12px;background:var(--grad-x);background-size:220% 100%;animation:flow 4s linear infinite;transition:width 1.4s var(--ease)}
.big-gauge i.in{width:var(--w)}
.big-gauge.warn i{background:linear-gradient(90deg,#d9822b,#e8a33d)}.big-gauge.full i{background:linear-gradient(90deg,#c0344d,#e0455f)}
.big-gauge .mark{position:absolute;top:-5px;bottom:-5px;left:var(--x);width:3px;border-radius:2px;background:var(--ink)}
.st-figs{display:flex;flex-wrap:wrap;gap:10px 26px;margin:14px 0 4px}
.st-figs div{display:flex;flex-direction:column}
.st-figs b{font:800 20px Syne,Figtree;color:var(--ink)}
.st-figs b.warn{color:#b0661a}.st-figs b.full{color:#c0344d}
.st-figs span{font-size:12px;color:var(--ink3)}
.st-form{display:flex;flex-wrap:wrap;gap:4px 22px;align-items:flex-end}
.st-form .field{flex-direction:column;align-items:flex-start;flex-wrap:nowrap}
.st-form .mfoot{margin-top:12px;margin-left:auto}
.donut{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.donut svg{width:150px;height:150px;flex:none}
.donut circle{animation:arcIn 1s var(--ease) both}
@keyframes arcIn{from{stroke-dasharray:0 var(--c)}}
.dn-v{font:800 15px Syne,Figtree;fill:var(--ink)}.dn-l{font:500 11px Figtree;fill:var(--ink3)}
.legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;flex:1;min-width:160px}
.legend li{display:flex;align-items:center;gap:8px;font-size:13px}
.legend i{width:10px;height:10px;border-radius:3px;background:var(--c);flex:none}
.legend span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legend b{font-variant-numeric:tabular-nums}
.st-none{color:var(--ink3)}
.qtable{display:flex;flex-direction:column;gap:4px}
.qhead,.qrow{display:grid;grid-template-columns:36px minmax(0,1.6fr) 90px minmax(120px,1fr) 270px;gap:12px;align-items:center}
.qhead{padding:0 10px;height:28px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3)}
.qhead button{display:flex;align-items:center;gap:4px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}
.qhead button.on,.qhead button:hover{color:var(--p)}
.qhead button .i{width:12px;height:12px;transition:transform .3s var(--spring)}
.qhead button.asc .i{transform:rotate(180deg)}
.qrow{min-height:54px;padding:6px 10px;border-radius:14px;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.85)}
.qrow .av{width:34px;height:34px;font-size:11px}
.qname{min-width:0}.qname b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qname small{display:block;font-size:12px;color:var(--ink3)}
.qused{font-size:13px;font-variant-numeric:tabular-nums}
.qfill{display:flex;align-items:center;gap:8px}.qfill .qbar{flex:1}
.qcell{display:flex;justify-content:flex-end}
.up.nospace .up-bar i{background:#c0344d;animation:none}
@media (max-width:900px){
  .st-grid{grid-template-columns:minmax(0,1fr)}
  .qhead{display:none}
  .qrow{grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"av name cell" "av fill fill"}
  .qrow>.av{grid-area:av}.qname{grid-area:name}.qcell{grid-area:cell}.qfill{grid-area:fill}.qused{display:none}
}
.av.sysav{background:linear-gradient(134deg,#d9822b,#e8a33d);color:#fff;border-color:#fff}
.av.sysav.quota_full{background:linear-gradient(134deg,#c0344d,#e0455f)}
.av.sysav .i{width:15px;height:15px}
.qedit{flex-wrap:nowrap}
.qedit .qin input{width:78px}.qedit .qin select{width:100px}
.usize .qedit{position:relative;z-index:3;background:#fff;border-radius:12px;padding:4px;box-shadow:var(--sh-md);flex-wrap:wrap;width:230px}
