@font-face{font-family:'Inter';font-weight:400 700;font-display:swap;src:url(/fonts/inter-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Inter';font-weight:400 700;font-display:swap;src:url(/fonts/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --bg:#111;--panel:#191919;--ctl:#1c1c1c;--ctl-hover:#262626;--line:#2a2a2a;
  --text:#e6e6e6;--dim:#a3a3a3;--muted:#8b8982;--faint:#5c5b57;--inv:#111;--danger:#ff6b5e;
  --r:8px;--r-tile:6px;--r-box:12px;
  --ease:cubic-bezier(.16,1,.3,1);--fast:160ms;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Inter,'SF Pro Text',-apple-system,system-ui,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;padding:0;-webkit-tap-highlight-color:transparent;transition:background var(--fast),color var(--fast),opacity var(--fast),transform var(--fast)}
button:active{transform:scale(.97)}
button:disabled{opacity:.4;cursor:default}
:focus-visible{outline:2px solid var(--text);outline-offset:2px}
h1,h2,h3,p{margin:0}
a{color:inherit}
[hidden]{display:none!important}
svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.wrap{width:100%;margin:0 auto;padding-left:16px;padding-right:16px}
@media(min-width:700px){.wrap{padding-left:24px;padding-right:24px}}

/* header */
.top{position:sticky;top:0;z-index:20;background:#111111f2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.top .bar{min-height:64px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.brand{font-weight:700;font-size:17px;letter-spacing:-.4px;text-decoration:none;white-space:nowrap;margin-right:6px}
.brand span{color:var(--muted);font-weight:500}
.top .spacer{flex:1}
.iconbtn{width:40px;height:40px;border-radius:var(--r);background:var(--ctl);color:var(--dim);display:grid;place-items:center;text-decoration:none}
.iconbtn:hover{background:var(--ctl-hover);color:var(--text)}

/* buttons, fields */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;border-radius:var(--r);font-weight:500;font-size:14px;background:var(--ctl);color:var(--text);text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--ctl-hover)}
.btn.primary{background:#d9d9d9;color:var(--inv)}
.btn.primary:hover{background:#ececec}
.btn.danger{background:transparent;color:var(--danger)}
.btn.danger:hover{background:#ff6b5e14}
.btn.small{min-height:34px;padding:0 10px;font-size:13px}
.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
.field input,.field select,.field textarea{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;font-size:15px;color:var(--text);outline:0;width:100%;transition:border-color var(--fast)}
.field textarea{resize:vertical;min-height:140px;line-height:1.55}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#555}
.field input[type=file]{padding:8px;font-size:13px;color:var(--dim)}
.field input[type=file]::file-selector-button{background:var(--ctl-hover);color:var(--text);border:0;border-radius:6px;padding:7px 12px;margin-right:10px;font:inherit;cursor:pointer}
.check{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}
.check input{width:18px;height:18px;accent-color:#eee}
.error{color:var(--danger);font-size:13px;min-height:1em}

/* sign-in */
.login{min-height:100svh;display:grid;place-items:center;padding:24px 16px}
.login form{width:100%;max-width:340px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-box);padding:32px 24px 28px;display:flex;flex-direction:column;gap:12px;text-align:center}
.login .brand{font-size:22px;margin:0}
.login h1{font-size:14px;font-weight:400;color:var(--muted);margin:0 0 12px}
.login input{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:11px 12px;font-size:15px;color:var(--text);outline:0;width:100%;text-align:left;transition:border-color var(--fast)}
.login input:focus{border-color:#555}
.login input::placeholder{color:var(--faint)}
.login .btn{margin-top:4px}
.login .error:empty{display:none}

/* segmented tabs */
.seg{display:flex;gap:2px;background:var(--ctl);border-radius:999px;padding:3px;overflow-x:auto;scrollbar-width:none;max-width:100%}
.seg::-webkit-scrollbar{display:none}
.seg button{padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--dim);white-space:nowrap;display:flex;gap:6px;align-items:center}
.seg button em{font-style:normal;font-weight:500;color:var(--faint);font-size:12px}
.seg button:hover{color:var(--text)}
.seg button[aria-selected=true]{background:#2e2e2e;color:#fff}
.seg button[aria-selected=true] em{color:var(--muted)}
@media(max-width:699px){.top .seg{order:5;width:100%;margin-bottom:10px}}

/* occasions */
.occ{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-top:4px;padding-bottom:12px}
.occ::-webkit-scrollbar{display:none}
.occ button{flex-shrink:0;display:flex;align-items:center;gap:8px;height:36px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r);font-size:14px;font-weight:500;color:var(--dim);white-space:nowrap}
.occ button em{font-style:normal;font-size:12px;color:var(--faint)}
.occ button:hover{color:var(--text);border-color:#3a3a3a}
.occ button[aria-pressed=true]{color:var(--text);border-color:#5a5a5a;background:var(--ctl)}
.occintro{padding-top:8px;padding-bottom:12px;max-width:none}
.occintro h1{font-size:24px;font-weight:600;letter-spacing:-.5px}
.occintro p{color:var(--dim);font-size:15px;line-height:1.55;max-width:760px;margin-top:6px;white-space:pre-line}
.occintro .period{color:var(--muted);font-size:13px;margin-top:2px}

/* mosaic */
.mosaic{columns:2;column-gap:8px;padding-top:8px;padding-bottom:40px}
@media(min-width:700px){.mosaic{columns:3;column-gap:12px}}
@media(min-width:1000px){.mosaic{columns:4}}
@media(min-width:1400px){.mosaic{columns:5}}
@media(min-width:1800px){.mosaic{columns:6}}
@media(min-width:2300px){.mosaic{columns:7}}
.empty{color:var(--muted);padding:80px 16px;text-align:center}

.tile{break-inside:avoid;margin-bottom:8px;border-radius:var(--r-tile);overflow:hidden;position:relative;background:var(--panel);cursor:pointer;animation:fade .5s var(--ease) both}
.tile video,.tile img{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;background:#000}
.tile img{aspect-ratio:auto}
.tile .ov{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:12px;background:linear-gradient(transparent 55%,#000000b8);opacity:0;transition:opacity .25s}
.tile:hover .ov,.tile:focus-within .ov{opacity:1}
@media(hover:none){.tile .ov{opacity:1}}
.tile .t{font-weight:600;font-size:15px;line-height:1.25;letter-spacing:-.2px;color:#fff;text-shadow:0 1px 8px #0006}
.tile .m{font-size:12px;color:#ffffffb3;margin-top:3px}
.badges{position:absolute;right:8px;top:8px;display:flex;gap:4px}
.many{display:inline-flex;align-items:center;gap:4px;background:#000000a6;color:#fff;font-size:12px;font-weight:600;padding:3px 7px;border-radius:6px}
.many svg{width:13px;height:13px}
.dur{background:#000000a6;color:#fff;font-size:12px;font-weight:600;padding:3px 7px;border-radius:6px;font-variant-numeric:tabular-nums}
.mine{position:absolute;left:8px;top:8px;width:28px;height:28px;border-radius:6px;background:#000000a6;color:#fff;display:grid;place-items:center}
.mine svg{width:15px;height:15px;fill:currentColor}
.textile{padding:16px 16px 12px;border:1px solid #232323}
.textile .k{font-size:12px;color:var(--muted)}
.textile .t{font-size:17px;font-weight:600;line-height:1.3;margin-top:6px;letter-spacing:-.3px;text-shadow:none;color:var(--text)}
.textile p{margin-top:8px;color:var(--dim);font-size:14px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}

.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;background:var(--ctl);border-radius:6px;padding:5px 8px;font-size:12px;color:var(--dim);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.chip b{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.3px}
.acts{display:flex;align-items:center;gap:6px;margin-top:10px}
.act{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:var(--r);font-size:13px;font-weight:600;background:#ffffff1f;color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-variant-numeric:tabular-nums}
.act:hover{background:#ffffff33}
.act svg{width:16px;height:16px}
.act.on{background:#ffffffd9;color:var(--inv)}
.act.on svg{fill:currentColor}
.textile .act{background:var(--ctl);color:var(--dim);backdrop-filter:none}
.textile .act:hover{background:var(--ctl-hover);color:var(--text)}
.textile .act.on{background:#3a3a3a;color:#fff}
.acts .comm{margin-left:auto}

/* viewer */
dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none;color:inherit}
dialog::backdrop{background:#000000b3;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.viewer[open]{position:fixed;inset:0;width:100%;height:100%;display:flex;justify-content:center;align-items:stretch}
.vbox{position:relative;width:100%;background:var(--panel);display:flex;flex-direction:column;overflow-y:auto;animation:pop .3s var(--ease)}
.vmedia{background:#0b0b0b;flex-shrink:0;position:relative}
.slide{position:relative;height:68svh;min-width:0}
/* several files: a grid first, one large on click */
.gridview{padding:12px}
.ggrid{columns:2;column-gap:8px}
.gcell{display:block;width:100%;break-inside:avoid;margin:0 0 8px;position:relative;border-radius:6px;overflow:hidden;background:#000;cursor:pointer;text-align:left}
.gcell:active{transform:none}
.gcell video,.gcell img{display:block;width:100%;height:auto;transition:opacity var(--fast)}
.gcell video{aspect-ratio:9/16;object-fit:cover}
.gcell:hover video,.gcell:hover img{opacity:.85}
.gplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:#000000a6;color:#fff;display:grid;place-items:center;transition:background var(--fast)}
.gplay svg{width:20px;height:20px;fill:#fff;stroke:none;margin-left:3px}
.gcell:hover .gplay{background:#000}
.gdoc{background:#fff;aspect-ratio:3/4}
.gdoc:has(canvas){aspect-ratio:auto}
.gdoc canvas{display:block;width:100%;height:auto}
.gdoc.card{background:var(--ctl);aspect-ratio:4/3;display:grid;place-items:center}
.gdoc .big{font-size:18px;font-weight:700;color:var(--dim)}
.gcap{position:absolute;left:0;right:0;bottom:0;padding:28px 10px 8px;background:linear-gradient(transparent,#000000d0);color:#fff;font-size:12px;display:flex;gap:6px;align-items:baseline;white-space:nowrap;overflow:hidden}
.gcap b{font-size:10px;color:#ffffffa0;letter-spacing:.3px}
.gfull{break-inside:avoid;margin:0 0 8px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#161616}
.gfull .dcap{position:static;padding:10px 12px}
.gfull .dcap a,.gfull .dcap button{margin-right:0;width:30px;height:30px;border-radius:var(--r);display:grid;place-items:center;color:var(--dim)}
.gfull .dcap button:hover{background:var(--ctl-hover);color:var(--text)}
.gfull .dcap{gap:6px;font-size:12px;min-height:44px}
.gfull .dcap span{margin-right:4px}
.gfull .pages{padding:0 8px 8px;gap:8px}
.gfull .page{box-shadow:none}
.gfull .textview,.gfull .tableview{margin:0 8px 8px}
.gfull .textview{max-height:520px;overflow:auto}
.gfull .tableview{max-height:520px}
.gfull .zipview{padding:0 8px 8px}
.gfull .dcard{padding:20px 12px}
.focus{display:none}
.vmedia.focused .gridview{display:none}
.vmedia.focused .focus{display:flex;flex-direction:column}
.gbar{display:flex;align-items:center;gap:8px;padding:10px 64px 10px 12px;border-bottom:1px solid var(--line);background:var(--panel)}
.gbar .spacer{flex:1}
.gcount{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
.stage{min-height:0}
.slide>video,.slide>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
.docslide{display:flex;flex-direction:column}
.docslide .docview{flex:1;min-height:0}
.vbody{padding:18px 20px 0;display:flex;flex-direction:column;gap:14px;flex:1}
.vbody h2{font-size:20px;font-weight:600;letter-spacing:-.4px;line-height:1.3}
.vmeta{font-size:13px;color:var(--muted);margin-top:-8px}
.vtext{white-space:pre-wrap;color:var(--dim);font-size:15px;line-height:1.65}
.vbody .acts{margin-top:0;gap:8px}
.vbody .act{height:40px;padding:0 14px;font-weight:500;font-size:14px;background:var(--ctl);color:var(--text);backdrop-filter:none}
.vbody .act:hover{background:var(--ctl-hover)}
.vbody .act.on{background:#3a3a3a;color:#fff}
.vbody .act b{font-weight:600;color:var(--muted)}
.vbody .act.on b{color:#bbb}
.vclose{position:absolute;top:12px;right:12px;z-index:3;width:40px;height:40px;border-radius:var(--r);display:grid;place-items:center;background:#000000a6;color:#fff}
.vclose:hover{background:#000}
.vclose svg{width:20px;height:20px}
.vnav{position:fixed;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:var(--r);display:none;place-items:center;background:var(--ctl);color:var(--dim)}
.vnav:hover{background:var(--ctl-hover);color:var(--text)}
.vnav:active{transform:translateY(-50%) scale(.96)}
.vnav.prev{left:20px}.vnav.next{right:20px}

.docslide{place-items:stretch;background:#161616;height:78svh}
.docview{overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column}
.dcap{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:12px 16px;background:#161616ee;backdrop-filter:blur(8px);font-size:13px;color:var(--dim);min-height:56px}
.dcap b{font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.3px}
.dcap span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dcap a{width:34px;height:34px;border-radius:var(--r);display:grid;place-items:center;color:var(--dim);margin-right:44px}
.dcap a:hover{background:var(--ctl-hover);color:var(--text)}
.pages{display:flex;flex-direction:column;align-items:center;gap:12px;padding:4px 16px 24px}
.page{width:100%;max-width:880px;background:#fff;border-radius:2px;box-shadow:0 2px 14px #0008}
.pages.landscape .page{max-width:none}
.page canvas{display:block;width:100%;height:auto;border-radius:2px}
.dmsg{color:var(--muted);font-size:14px;padding:24px 0;text-align:center}
.dcard{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px 16px;text-align:center}
.dcard .big{width:88px;height:108px;border-radius:10px;background:var(--ctl);display:grid;place-items:center;font-weight:700;font-size:16px;color:var(--dim)}
.dcard p{color:var(--muted);font-size:14px}
.dcard small{color:var(--muted);font-weight:400}
.textview{margin:0 16px 24px;padding:20px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text)}
.tableview{margin:0 16px 24px;overflow:auto;border:1px solid var(--line);border-radius:var(--r)}
.tableview table{border-collapse:collapse;font-size:13px;min-width:100%}
.tableview th,.tableview td{padding:8px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.tableview th{position:sticky;top:0;background:var(--ctl);font-weight:600}
.zipview{padding:0 16px 24px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.zipview .dmsg{padding:8px 0}
.zipview ul{list-style:none;margin:0 0 8px;padding:0;width:100%;border:1px solid var(--line);border-radius:var(--r)}
.zipview li{display:flex;gap:12px;justify-content:space-between;padding:9px 12px;border-bottom:1px solid #222;font-size:13px}
.zipview li:last-child{border-bottom:0}
.zipview li span{overflow-wrap:anywhere}
.zipview li small{color:var(--muted);white-space:nowrap}
.tile .tpage{width:100%}
.tile .tpage canvas{display:block;width:100%;height:auto}
.comments{display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--line);padding-top:16px;flex:1}
.comments h3{font-size:14px;font-weight:600;color:var(--dim)}
.clist{display:flex;flex-direction:column;gap:16px}
.cm{display:grid;grid-template-columns:32px 1fr;gap:2px 10px}
.ava{grid-row:span 2;width:32px;height:32px;border-radius:50%;background:#2a2a2a;color:var(--dim);display:grid;place-items:center;font-size:12px;font-weight:600}
.cm header{display:flex;gap:8px;align-items:baseline;font-size:13px;min-width:0}
.cm header b{font-weight:600}
.cm header time{color:var(--faint);font-size:12px}
.cm header button{margin-left:auto;color:var(--faint);font-size:12px}
.cm header button:hover{color:var(--danger)}
.cm p{white-space:pre-wrap;font-size:14px;line-height:1.55;color:var(--dim);overflow-wrap:anywhere}
.cnone{color:var(--muted);font-size:14px}
.composer{position:sticky;bottom:0;background:var(--panel);padding:10px 0 16px;display:flex;gap:8px;align-items:flex-end;margin-top:auto}
.composer textarea{flex:1;min-height:42px;max-height:180px;resize:none;border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;font-size:15px;outline:0;background:var(--bg);line-height:1.4}
.composer textarea:focus{border-color:#555}
.send{width:42px;height:42px;border-radius:var(--r);background:#2e2e2e;color:#fff;display:grid;place-items:center;flex-shrink:0}
.send:hover{background:#3a3a3a}

@media(min-width:760px){
  .viewer[open]{align-items:center;padding:24px 76px}
  .vbox{max-height:100%;border:1px solid var(--line);border-radius:var(--r-box)}
  .vbox.textonly{max-width:760px;height:auto}
  .vnav{display:grid}
}
/* Wide screens: the media takes all the room, text and comments go to a column on the right. */
@media(min-width:960px){
  .vbox:not(.textonly){flex-direction:row;height:100%;overflow:hidden}
  .vbox:not(.textonly) .vmedia{flex:1;min-width:0;height:100%}
  .vbox:not(.textonly) .vmedia{display:flex;flex-direction:column}
  .vbox:not(.textonly) .vmedia>.slide{flex:1}
  .vbox:not(.textonly) .gridview{flex:1;overflow-y:auto}
  .vbox:not(.textonly) .focus{flex:1;min-height:0}
  .vbox:not(.textonly) .gbar{padding-right:12px}
  .vbox:not(.textonly) .stage{flex:1}
  .ggrid.many{columns:3}
  .vbox:not(.textonly) .slide{height:100%}
  .vbox:not(.textonly) .vbody{flex:0 0 400px;overflow-y:auto;padding:24px 24px 0;border-left:1px solid var(--line)}
  .vbox:not(.textonly) .vbody h2{padding-right:44px}
}

/* admin */
.tbar{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:16px 0;flex-wrap:wrap}
.occsel{background:var(--ctl);border:1px solid var(--line);border-radius:var(--r);color:var(--text);height:40px;padding:0 12px;font-size:14px;max-width:100%}
.tbar p{color:var(--muted);font-size:14px}
.rows{display:flex;flex-direction:column;gap:6px;padding-bottom:48px}
.row{background:var(--panel);border:1px solid #222;border-radius:10px;padding:10px;display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;align-items:center}
.row .mini{width:56px;height:72px;border-radius:6px;background:var(--ctl);overflow:hidden;display:grid;place-items:center;color:var(--faint)}
.row .mini img,.row .mini video{width:100%;height:100%;object-fit:cover}
.row .info{min-width:0;display:flex;flex-direction:column;gap:4px}
.row .info b{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .meta{font-size:13px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.row .meta .tag{color:var(--dim);background:#2e2e2e;font-size:11px;font-weight:600;padding:2px 7px;border-radius:5px}
.row .meta .k{color:var(--dim)}
.row .meta a.k{text-decoration:underline;text-decoration-color:#555;text-underline-offset:3px}
.row .cnt{display:inline-flex;align-items:center;gap:5px}
.row .cnt svg{width:15px;height:15px}
.row .voters{font-size:12px;color:var(--faint)}
.row .tools{grid-column:1/-1;display:flex;gap:2px;flex-wrap:wrap;justify-content:flex-end}
.icon{width:36px;height:36px;border-radius:var(--r);display:grid;place-items:center;color:var(--muted)}
.icon:hover{background:var(--ctl-hover);color:var(--text)}
.icon.del:hover{color:var(--danger)}
@media(min-width:760px){.row{grid-template-columns:56px minmax(0,1fr) auto}.row .tools{grid-column:auto}}
.row.user,.row.cmt{grid-template-columns:minmax(0,1fr) auto}
.row.user .tools,.row.cmt .tools{grid-column:auto}
.row.cmt p{white-space:pre-wrap;font-size:14px;color:var(--dim);overflow-wrap:anywhere}

.sheet[open]{position:fixed;inset:0;width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center}
.sheet form{background:var(--panel);border:1px solid var(--line);width:100%;max-width:620px;max-height:94svh;overflow-y:auto;border-radius:var(--r-box) var(--r-box) 0 0;padding:22px 16px;display:flex;flex-direction:column;gap:16px;animation:up .3s var(--ease)}
.sheet h2{font-size:19px;font-weight:600;letter-spacing:-.3px}
.sheet .foot{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap;position:sticky;bottom:-22px;background:var(--panel);padding:12px 0 0}
.sheet .foot .error{margin-right:auto}
.cur{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--muted)}
.cur img,.cur video{width:48px;height:64px;object-fit:cover;border-radius:6px;background:var(--ctl)}
.assets{display:flex;flex-wrap:wrap;gap:8px}
.assets:empty{display:none}
.asset{position:relative;width:84px;height:112px;border-radius:6px;overflow:hidden;background:var(--ctl)}
.asset img,.asset video{width:100%;height:100%;object-fit:cover;display:block}
.adoc{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:22px 6px 34px;text-align:center}
.adoc b{font-size:13px;font-weight:700;color:var(--text)}
.adoc span{font-size:10px;line-height:1.3;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;word-break:break-all}
.asset .n{position:absolute;left:4px;top:4px;background:#000000a6;color:#fff;font-size:11px;font-weight:600;padding:1px 6px;border-radius:4px}
.atools{position:absolute;right:4px;bottom:4px;display:flex;gap:4px}
.atools button{width:26px;height:26px;border-radius:6px;background:#000000b3;color:#fff;display:grid;place-items:center}
.atools button:hover{background:#000}
.atools svg{width:14px;height:14px}
.progress{height:4px;border-radius:2px;background:var(--ctl);overflow:hidden}
.progress i{display:block;height:100%;width:0;background:#bbb;transition:width .2s}
.pwrow{display:flex;gap:8px}
.pwrow input{flex:1}
@media(min-width:700px){.sheet[open]{align-items:center}.sheet form{border-radius:var(--r-box);padding:26px}.sheet .foot{bottom:-26px}}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#2e2e2e;color:#fff;border:1px solid #3a3a3a;padding:11px 16px;border-radius:var(--r);font-size:14px;font-weight:500;z-index:100;animation:up .3s var(--ease);max-width:calc(100% - 32px)}

@keyframes fade{from{opacity:0}}
@keyframes pop{from{opacity:0;transform:scale(.98)}}
@keyframes up{from{opacity:0;transform:translateY(16px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
