/* ---------- file uploads ---------- */
.composer { flex-wrap: wrap; position: relative; }
.composer .attach-btn { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 8px; color: #b5bac1; background: #383a40; }
.composer .attach-btn:hover { color: #f2f3f5; }
.composer.dragging::after { content: "Drop files to upload"; position: absolute; inset: 0 16px 24px; display: grid; place-items: center; border: 2px dashed #5865f2; border-radius: 8px; background: rgba(30,31,34,.92); color: #fff; font-weight: 600; z-index: 2; }
.pending { flex: 1 0 100%; display: flex; gap: 8px; overflow-x: auto; padding: 8px 0; order: -1; }
.pending:empty { display: none; }
.pend { position: relative; flex: none; width: 120px; background: #2b2d31; border-radius: 8px; padding: 8px; font-size: 12px; color: #dbdee1; }
.pend .pthumb { width: 100%; height: 72px; border-radius: 6px; background: #1e1f22; display: grid; place-items: center; overflow: hidden; margin-bottom: 6px; }
.pend .pthumb img, .pend .pthumb video { width: 100%; height: 100%; object-fit: cover; display: block; }
.pend .pname { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pend .pbar { height: 3px; background: #1e1f22; border-radius: 2px; margin-top: 6px; overflow: hidden; }
.pend .pbar i { display: block; height: 100%; width: 0; background: #5865f2; transition: width .1s; }
.pend.err .pbar i { background: #f23f43; width: 100% !important; }
.pend .pdel { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 50%; background: rgba(0,0,0,.65); color: #fff; font-size: 12px; line-height: 22px; text-align: center; }
.atts { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin-top: 4px; max-width: 100%; }
.atts img, .atts video { display: block; max-width: min(420px, 100%); max-height: 340px; border-radius: 8px; background: #1e1f22; cursor: pointer; }
.atts video { cursor: default; }
.atts audio { width: min(360px, 100%); }
.att-file { display: flex; align-items: center; gap: 10px; max-width: min(360px, 100%); padding: 10px 12px; background: #2b2d31; border: 1px solid #1e1f22; border-radius: 8px; color: #00a8fc; text-decoration: none; }
.att-file small { display: block; color: #949ba4; }
.att-file span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lightbox { position: fixed; inset: 0; z-index: 999; background: rgba(0,0,0,.88); display: grid; place-items: center; padding: 16px; }
.lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; }

/* ---------- email verification ---------- */
.vf-title { margin: 0 0 8px; font-size: 22px; color: var(--d-head, #f2f3f5); }
.vf-note { margin: 0 0 16px; color: #b5bac1; font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.vf-note b { color: #f2f3f5; }
.vf-code { font-size: 24px; letter-spacing: 6px; text-align: center; font-variant-numeric: tabular-nums; }
.vf-links { display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: center; margin: 14px 0; }
.vf-link { background: none; color: #00a8fc; font-size: 14px; padding: 4px 0; }
.vf-link:hover:not(:disabled) { text-decoration: underline; }
.vf-link:disabled { color: #6d6f78; cursor: not-allowed; }
#vfEmailForm { margin-top: 8px; }
