*{box-sizing:border-box;margin:0;padding:0}:root{--ink:#4a4340;--ink-strong:#2f2b29;--muted:#8a807b;--faint:#aaa19b;--line:rgba(var(--line-rgb), .16);--line-2:rgba(var(--line-rgb), .28);--surface-rgb:255,255,255;--line-rgb:120,104,96;--scroll-rgb:160,140,134;--accent-rgb:201,163,166;--on-accent:#fff;--surface-hi:#fff;--glass:rgba(var(--surface-rgb), .74);--glass-2:rgba(var(--surface-rgb), .88);--glass-3:rgba(var(--surface-rgb), .58);--rose:#c9a3a6;--rose-deep:#b08b8f;--blue:#a8b6c4;--blue-deep:#8b9dae;--danger:#c98b8b;--ok:#9bb49b;--blur:16px;--ease:cubic-bezier(.22, 1, .36, 1);--shadow:0 10px 34px rgba(var(--line-rgb), .13);--shadow-lift:0 18px 46px rgba(var(--line-rgb), .2)}html{scroll-behavior:smooth}body{font-family:-apple-system,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);min-height:100vh;display:flex;flex-direction:column;background:var(--page-bg,#f4f1ee);overflow-x:hidden;-webkit-font-smoothing:antialiased}#main{flex:1 0 auto;width:100%}.footer{flex-shrink:0}.bg-layer{position:fixed;inset:0;background:var(--bg-image, url('/file/bg/54e6dd87af07b0d3.webp')) center/var(--bg-size,cover) no-repeat;z-index:-2}.bg-veil{position:fixed;inset:0;background:linear-gradient(100deg,var(--veil-1,rgba(252,250,248,.72)) 0,var(--veil-2,rgba(252,250,248,.68)) 55%,var(--veil-3,rgba(252,250,248,.52)) 82%,var(--veil-4,rgba(252,250,248,.4)) 100%);z-index:-1}.hidden{display:none!important}.no-scroll{overflow:hidden}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-button{display:none;width:0;height:0}::-webkit-scrollbar-thumb{background:rgba(var(--scroll-rgb),.34);border:3px solid transparent;border-radius:999px;background-clip:padding-box;transition:background .25s var(--ease)}::-webkit-scrollbar-thumb:hover{background:rgba(var(--scroll-rgb),.58);background-clip:padding-box}::-webkit-scrollbar-thumb:active{background:var(--rose-deep);background-clip:padding-box}::-webkit-scrollbar-corner{background:0 0}.modal-box::-webkit-scrollbar,.prose pre::-webkit-scrollbar,textarea::-webkit-scrollbar{width:8px;height:8px}.modal-box::-webkit-scrollbar-button,.prose pre::-webkit-scrollbar-button,textarea::-webkit-scrollbar-button{display:none;width:0;height:0}.modal-box::-webkit-scrollbar-track,.prose pre::-webkit-scrollbar-track,textarea::-webkit-scrollbar-track{background:0 0}.modal-box::-webkit-scrollbar-thumb,.prose pre::-webkit-scrollbar-thumb,textarea::-webkit-scrollbar-thumb{background:rgba(var(--scroll-rgb),.3);border:2px solid transparent;border-radius:999px;background-clip:padding-box}.modal-box::-webkit-scrollbar-thumb:hover,.prose pre::-webkit-scrollbar-thumb:hover,textarea::-webkit-scrollbar-thumb:hover{background:rgba(var(--scroll-rgb),.52);background-clip:padding-box}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:rgba(var(--scroll-rgb),.45) transparent}}.glass{background:var(--glass);backdrop-filter:blur(var(--blur)) saturate(115%);-webkit-backdrop-filter:blur(var(--blur)) saturate(115%);border:1px solid var(--line);box-shadow:var(--shadow)}.card{border-radius:16px;padding:22px;position:relative;overflow:hidden}.card::before{content:'';position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(var(--surface-rgb),.95),transparent)}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:18px;padding:15px 30px;border-width:0 0 1px 0;border-radius:0;background:rgba(var(--surface-rgb),.62);transition:padding .4s var(--ease),background .4s var(--ease),box-shadow .4s var(--ease)}.topbar.shrink{padding:10px 30px;background:rgba(var(--surface-rgb),.82);box-shadow:0 6px 22px rgba(var(--line-rgb),.11)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink-strong)}.brand-logo{width:26px;height:26px;flex-shrink:0;border-radius:50%;display:block;transition:transform .35s var(--ease)}.brand:hover .brand-logo{transform:rotate(-8deg) scale(1.06)}.brand-name{font-weight:600;font-size:17px;letter-spacing:1.5px}.top-nav{display:flex;gap:4px;margin-left:12px}.nav-link{position:relative;padding:8px 15px;border-radius:9px;color:var(--muted);text-decoration:none;font-size:14px;font-weight:500;letter-spacing:.5px;transition:color .28s var(--ease),background .28s var(--ease)}.nav-link:hover{color:var(--ink);background:rgba(var(--surface-rgb),.6)}.nav-link.active{color:var(--ink-strong);background:rgba(var(--surface-rgb),.78)}.nav-link.active::after{content:'';position:absolute;left:15px;right:15px;bottom:4px;height:1.5px;border-radius:2px;background:var(--rose)}.top-right{margin-left:auto;display:flex;align-items:center;gap:9px}.btn-ghost,.btn-primary,.btn-sm{font-family:inherit;font-size:14px;font-weight:500;letter-spacing:.5px;cursor:pointer;border-radius:10px;padding:9px 19px;transition:transform .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease),color .3s var(--ease)}.btn-primary{color:var(--on-accent);border:1px solid transparent;background:var(--rose);box-shadow:0 5px 16px rgba(176,139,143,.26)}.btn-primary:hover{background:var(--rose-deep);transform:translateY(-2px);box-shadow:0 10px 24px rgba(176,139,143,.34)}.btn-primary:active{transform:translateY(0) scale(.985)}.btn-primary.danger{background:var(--danger);box-shadow:0 5px 16px rgba(201,139,139,.26)}.btn-primary.danger:hover{background:#b87b7b}.btn-ghost{color:var(--ink);background:rgba(var(--surface-rgb),.6);border:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.btn-ghost:hover{background:rgba(var(--surface-rgb),.88);border-color:var(--line-2);transform:translateY(-1px)}.btn-sm{padding:6px 13px;font-size:13px;color:var(--muted);background:rgba(var(--surface-rgb),.58);border:1px solid var(--line);text-decoration:none;display:inline-block}.btn-sm:hover{color:var(--ink);background:var(--surface-hi);border-color:var(--line-2)}.btn-sm.danger{color:var(--danger);border-color:rgba(201,139,139,.32)}.btn-sm.danger:hover{color:var(--on-accent);background:var(--danger);border-color:transparent}.link{background:0 0;border:none;padding:0;color:var(--rose-deep);font:inherit;cursor:pointer;border-bottom:1px solid rgba(176,139,143,.4);text-decoration:none}.link:hover{border-bottom-color:var(--rose-deep)}.avatar{width:30px;height:30px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:13px;font-weight:600;color:var(--on-accent);background:var(--rose);overflow:hidden;position:relative}.avatar img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}.avatar-lg{width:46px;height:46px;font-size:19px}.avatar-xl{width:76px;height:76px;font-size:30px}.avatar-edit{display:flex;align-items:center;gap:16px;margin-top:16px;padding:15px 16px;border-radius:13px;background:rgba(var(--surface-rgb),.5);border:1px solid var(--line)}.avatar-edit-side{display:flex;flex-direction:column;gap:4px;min-width:0}.fl-tight{margin:0 0 6px}.avatar-btns{display:flex;gap:7px;flex-wrap:wrap}.avatar-xl.busy{opacity:.5}.notif-box{position:relative;display:flex}.notif-btn{position:relative;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);background:rgba(var(--surface-rgb),.6);border:1px solid var(--line);border-radius:50%;cursor:pointer;transition:color .28s var(--ease),background .28s var(--ease),border-color .28s var(--ease)}.notif-btn:hover{color:var(--ink-strong);background:var(--surface-hi);border-color:var(--line-2)}.notif-btn svg{width:17px;height:17px}.notif-dot{position:absolute;top:5px;right:5px;width:9px;height:9px;border-radius:50%;background:#e05a5a;border:2px solid var(--page-bg,#f4f1ee);animation:dotPulse 2.4s var(--ease) infinite}@keyframes dotPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}.notif-panel{position:absolute;top:calc(100% + 10px);right:0;z-index:60;width:320px;max-height:400px;border-radius:14px;background:rgba(var(--surface-rgb),.96);display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.97);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s}.notif-box.open .notif-panel{opacity:1;visibility:visible;transform:none}.notif-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px 10px;border-bottom:1px solid var(--line)}.notif-title{font-size:13.5px;font-weight:600;color:var(--ink-strong);letter-spacing:.5px}.notif-list{overflow-y:auto;padding:6px}.notif-empty{padding:26px 14px;text-align:center;font-size:13px;color:var(--faint)}.notif-item{display:flex;gap:10px;padding:10px;border-radius:10px;cursor:pointer;text-align:left;width:100%;background:0 0;border:none;font:inherit;transition:background .2s var(--ease)}.notif-item:hover{background:rgba(var(--accent-rgb),.12)}.notif-item.unread{background:rgba(var(--accent-rgb),.09)}.notif-item.unread .notif-from::after{content:'';display:inline-block;width:6px;height:6px;margin-left:6px;border-radius:50%;background:#e05a5a;vertical-align:1px}.notif-main{flex:1;min-width:0}.notif-from{font-size:13px;font-weight:600;color:var(--ink-strong)}.notif-text{margin-top:3px;font-size:12.5px;line-height:1.6;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notif-meta{margin-top:4px;font-size:11.5px;color:var(--faint)}.user-box{position:relative;display:flex;align-items:center;gap:8px;padding:5px 13px 5px 6px;border-radius:999px;background:rgba(var(--surface-rgb),.6);border:1px solid var(--line);cursor:pointer;transition:background .28s var(--ease),border-color .28s var(--ease)}.user-box:hover{background:var(--surface-hi);border-color:var(--line-2)}.user-name{font-size:14px;font-weight:500;color:var(--ink);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{font-size:11px;font-weight:500;padding:2px 9px;border-radius:999px;color:var(--rose-deep);background:rgba(var(--accent-rgb),.16);border:1px solid rgba(var(--accent-rgb),.3)}.user-menu{position:absolute;top:calc(100% + 9px);right:0;min-width:152px;padding:6px;border-radius:13px;background:rgba(var(--surface-rgb),.88);display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.97);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s}.user-box.open .user-menu{opacity:1;visibility:visible;transform:none}.menu-item{text-align:left;font:inherit;font-size:14px;color:var(--ink);background:0 0;border:none;padding:9px 12px;border-radius:8px;cursor:pointer;transition:background .22s var(--ease),color .22s var(--ease)}.menu-item:hover{background:rgba(var(--accent-rgb),.14);color:var(--ink-strong)}#main{max-width:1080px;margin:0 auto;padding:34px 24px 70px}.view{animation:viewIn .5s var(--ease) both}@keyframes viewIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.hero{text-align:left;padding:52px 22px 44px;max-width:calc(100% - var(--side-w) - var(--grid-gap))}.hero-title{font-size:clamp(34px, 6vw, 56px);font-weight:300;letter-spacing:8px;line-height:1.25;color:var(--ink-strong)}.hero-sub{margin-top:18px;color:var(--muted);font-size:15px;line-height:1.9;letter-spacing:.5px;max-width:32em}.hero-stats{margin-top:26px;display:flex;gap:10px;flex-wrap:wrap}.stat-pill{padding:7px 16px;border-radius:999px;font-size:12.5px;color:var(--muted);background:rgba(var(--surface-rgb),.58);border:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.stat-pill b{color:var(--ink-strong);font-size:14px;font-weight:600;margin-right:3px}:root{--side-w:288px;--grid-gap:22px}.home-grid{display:grid;grid-template-columns:1fr var(--side-w);gap:var(--grid-gap);align-items:start}.home-main{min-width:0;display:flex;flex-direction:column;gap:18px}.home-side{display:flex;flex-direction:column;gap:18px;position:sticky;top:86px}.filter-bar{border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}.in,.search-box{width:100%;font-family:inherit;font-size:14px;color:var(--ink);background:rgba(var(--surface-rgb),.7);border:1px solid var(--line);border-radius:10px;padding:11px 14px;transition:border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}.in::placeholder,.search-box::placeholder{color:var(--faint)}.in:focus,.search-box:focus{outline:0;border-color:rgba(var(--accent-rgb),.62);background:var(--surface-hi);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.13)}.tag-cloud,.tag-row{display:flex;flex-wrap:wrap;gap:7px}.tag{font-size:12.5px;padding:5px 12px;border-radius:999px;color:var(--muted);background:rgba(var(--surface-rgb),.6);border:1px solid var(--line);cursor:pointer;transition:all .28s var(--ease)}.tag:hover{color:var(--ink);background:var(--surface-hi);border-color:var(--line-2);transform:translateY(-1px)}.tag.active{color:var(--on-accent);background:var(--rose);border-color:transparent}.post-list{display:flex;flex-direction:column;gap:18px}.post-card{display:block;border-radius:16px;padding:0;overflow:hidden;text-decoration:none;color:inherit;cursor:pointer;transition:transform .45s var(--ease),box-shadow .45s var(--ease),background .45s var(--ease)}.post-card:hover{transform:translateY(-5px);background:var(--glass-2);box-shadow:var(--shadow-lift)}.post-cover{height:180px;overflow:hidden;background:rgba(var(--surface-rgb),.5)}.post-cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease)}.post-card:hover .post-cover img{transform:scale(1.05)}.post-card.pinned{border-left:2px solid var(--rose)}.pin-badge{display:inline-block;vertical-align:2px;margin-right:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;letter-spacing:.5px;color:var(--rose-deep);background:rgba(var(--accent-rgb),.16);border:1px solid rgba(var(--accent-rgb),.3)}.btn-sm.active{color:var(--rose-deep);border-color:rgba(var(--accent-rgb),.45);background:rgba(var(--accent-rgb),.14)}.post-body{padding:20px 22px 22px}.post-title{font-size:19px;font-weight:600;line-height:1.5;color:var(--ink-strong);letter-spacing:.5px;transition:color .3s var(--ease)}.post-card:hover .post-title{color:var(--rose-deep)}.post-meta{margin-top:9px;display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--faint)}.post-summary{margin-top:12px;color:var(--muted);font-size:14px;line-height:1.85}.post-tags{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px}.post-tags .tag{cursor:default;pointer-events:none}.side-card{border-radius:16px}.side-title{font-size:14px;font-weight:600;letter-spacing:1.5px;color:var(--ink-strong);display:flex;align-items:center;gap:9px;margin-bottom:15px}.side-title::before{content:'';width:2px;height:13px;border-radius:2px;background:var(--rose)}.side-title .count{color:var(--faint);font-weight:400;letter-spacing:0}.author-row{display:flex;align-items:center;gap:13px}.author-name{font-size:15px;font-weight:600;color:var(--ink-strong)}.author-role{font-size:12px;color:var(--faint);margin-top:3px;letter-spacing:.5px}.author-bio{margin-top:14px;font-size:13px;line-height:1.9;color:var(--muted);white-space:pre-wrap}.feat-list{display:flex;flex-direction:column;gap:2px}.feat-item{display:flex;align-items:baseline;gap:8px;padding:8px 9px;border-radius:8px;font-size:13px;line-height:1.6;color:var(--ink);text-decoration:none;transition:background .22s var(--ease),color .22s var(--ease)}.feat-item:hover{background:rgba(var(--accent-rgb),.13);color:var(--ink-strong)}.feat-star{flex-shrink:0;color:var(--rose);font-size:11px;line-height:1.9}.feat-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feat-badge{display:inline-block;vertical-align:2px;margin-right:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;letter-spacing:.5px;color:#a5813f;background:rgba(212,168,92,.18);border:1px solid rgba(212,168,92,.38)}.video-badge{display:inline-block;vertical-align:2px;margin-right:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;letter-spacing:.5px;color:#3d6a7a;background:rgba(90,158,185,.18);border:1px solid rgba(90,158,185,.38)}.full-video{margin:18px 0}.full-video video{width:100%;max-height:480px;border-radius:12px;background:#000;display:block}#videoPreview video{width:100%;max-height:320px;border-radius:10px;background:#000;margin-top:10px;display:block}.admin-search{margin:12px 0 14px}.admin-search .in{width:100%}.pager{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:20px;padding:14px 10px}.pg-btn,.pg-num{font:inherit;font-size:13px;min-width:32px;height:32px;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);background:rgba(var(--surface-rgb),.6);border:1px solid var(--line);border-radius:9px;cursor:pointer;transition:color .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}.pg-num{padding:0 6px}.pg-btn:hover:not(:disabled),.pg-num:hover:not(.active){color:var(--ink-strong);background:var(--surface-hi);border-color:var(--line-2);transform:translateY(-1px)}.pg-btn:disabled{opacity:.4;cursor:not-allowed}.pg-num.active{color:var(--on-accent);background:var(--rose);border-color:transparent;font-weight:600}.pg-nums{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.pg-gap{color:var(--faint);padding:0 2px;font-size:13px}.pg-info{width:100%;text-align:center;margin-top:4px;font-size:11.5px;color:var(--faint)}.empty{text-align:center;color:var(--faint);font-size:14px;padding:34px 0}.hint{font-size:12.5px;color:var(--faint)}#view-post{display:flex;flex-direction:column;gap:20px;max-width:800px;margin:0 auto}.post-full{padding:32px 36px 38px}.back-link{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);text-decoration:none;margin-bottom:20px;letter-spacing:.5px;transition:color .28s var(--ease),gap .28s var(--ease)}.back-link:hover{color:var(--rose-deep);gap:11px}.full-title{font-size:clamp(23px, 3.6vw, 31px);font-weight:600;line-height:1.5;color:var(--ink-strong);letter-spacing:1px}.full-meta{margin-top:13px;display:flex;flex-wrap:wrap;gap:15px;font-size:12.5px;color:var(--faint)}.full-meta+.post-tags{margin-top:14px}.full-cover{margin:22px 0 4px;border-radius:12px;overflow:hidden;border:1px solid var(--line)}.full-cover img{width:100%;display:block}.admin-actions{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);display:flex;gap:9px}.prose{margin-top:26px;font-size:15px;line-height:2.05;color:var(--ink)}.prose>*+*{margin-top:17px}.prose h2{font-size:20px;font-weight:600;color:var(--ink-strong);letter-spacing:1px;margin-top:34px;padding-bottom:9px;border-bottom:1px solid var(--line)}.prose h3{font-size:17px;font-weight:600;color:var(--ink-strong);margin-top:27px}.prose a{color:var(--rose-deep);text-decoration:none;border-bottom:1px solid rgba(176,139,143,.38)}.prose a:hover{border-bottom-color:var(--rose-deep)}.prose strong{color:var(--ink-strong);font-weight:600}.prose code{font-family:"Cascadia Code",Consolas,Monaco,monospace;font-size:.88em;padding:2px 7px;border-radius:5px;color:var(--rose-deep);background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.22)}.prose pre{background:rgba(var(--surface-rgb),.72);border:1px solid var(--line);border-radius:11px;padding:16px 18px;overflow-x:auto}.prose pre code{background:0 0;border:none;padding:0;color:#5c5350;font-size:13px;line-height:1.75}.prose blockquote{padding:3px 0 3px 17px;border-left:2px solid var(--rose);color:var(--muted)}.prose ol,.prose ul{padding-left:23px}.prose li+li{margin-top:7px}.prose li::marker{color:var(--rose)}.prose img{max-width:100%;border-radius:10px;display:block;border:1px solid var(--line)}.prose hr{border:none;border-top:1px solid var(--line)}.comments-card{border-radius:16px}.comment-form{display:flex;flex-direction:column;gap:12px;margin-bottom:22px}#commentInput,textarea.in{width:100%;font-family:inherit;font-size:14px;line-height:1.8;color:var(--ink);background:rgba(var(--surface-rgb),.7);border:1px solid var(--line);border-radius:11px;padding:13px 15px;resize:vertical;transition:border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}#commentInput::placeholder{color:var(--faint)}#commentInput:focus{outline:0;border-color:rgba(var(--accent-rgb),.62);background:var(--surface-hi);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.13)}.form-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}.foot-btns{display:flex;gap:9px}.login-tip{font-size:14px;color:var(--muted);padding:6px 0 20px}.comment-list{display:flex;flex-direction:column;gap:11px}.comment{display:flex;gap:13px;padding:15px 16px;border-radius:12px;background:rgba(var(--surface-rgb),.5);border:1px solid var(--line);animation:cIn .5s var(--ease) both;transition:background .3s var(--ease),border-color .3s var(--ease)}.comment:hover{background:rgba(var(--surface-rgb),.8);border-color:var(--line-2)}@keyframes cIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.comment.removing{opacity:0;transform:translateX(22px);transition:opacity .35s var(--ease),transform .35s var(--ease)}.comment.flash{animation:cFlash 4s var(--ease);border-color:rgba(var(--accent-rgb),.55);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.13)}@keyframes cFlash{0%,100%{background:rgba(var(--surface-rgb),.5)}10%,55%{background:rgba(var(--accent-rgb),.24)}}.c-main{flex:1;min-width:0}.c-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.c-name{font-size:14px;font-weight:600;color:var(--ink-strong)}.c-time{font-size:11.5px;color:var(--faint)}.c-del{margin-left:auto}.c-acts{margin-left:auto;display:flex;gap:6px;flex-shrink:0}.c-thread{display:flex;flex-direction:column}.c-replies-wrap{padding-left:42px;margin-top:6px}.c-replies{display:flex;flex-direction:column;gap:8px;margin-top:6px;padding-left:14px;border-left:2px solid rgba(var(--accent-rgb),.3)}.comment.c-reply{padding:12px 14px;background:rgba(var(--surface-rgb),.42)}.c-toggle{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;font:inherit;font-size:12.5px;color:var(--rose-deep);background:0 0;border:none;border-radius:7px;cursor:pointer;transition:background .2s var(--ease)}.c-toggle:hover{background:rgba(var(--accent-rgb),.13)}.c-caret{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;transition:transform .25s var(--ease)}.c-caret.open{transform:rotate(180deg)}.c-arrow{color:var(--faint);font-size:12px}.c-at{color:var(--rose-deep);font-weight:600;font-size:12.5px}.c-at-gone{color:var(--faint);font-weight:400}.reply-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:9px;font-size:12.5px;color:var(--muted);background:rgba(var(--accent-rgb),.12);border:1px solid rgba(var(--accent-rgb),.28)}.reply-bar .link-sm{margin-left:auto}.c-text{margin-top:7px;font-size:14px;line-height:1.8;color:var(--ink);word-break:break-word;white-space:pre-wrap}#view-admin{display:flex;flex-direction:column;gap:18px;max-width:860px;margin:0 auto}.admin-tabs{border-radius:13px;padding:6px;display:flex;flex-wrap:wrap;gap:4px}.admin-tab{flex:1 1 auto;font:inherit;font-size:14px;font-weight:500;letter-spacing:.5px;color:var(--muted);background:0 0;border:none;padding:10px 14px;border-radius:9px;cursor:pointer;white-space:nowrap;transition:color .3s var(--ease),background .3s var(--ease)}.admin-tab:hover{color:var(--ink);background:rgba(var(--surface-rgb),.66)}.admin-tab.active{color:var(--on-accent);background:var(--rose)}.admin-panel{border-radius:16px}#postForm{display:flex;flex-direction:column}.fl{font-size:12.5px;font-weight:600;color:var(--ink-strong);letter-spacing:.5px;margin:17px 0 7px;display:flex;align-items:baseline;gap:9px}.fl:first-of-type{margin-top:4px}.fl-hint{font-size:11.5px;font-weight:400;color:var(--faint);letter-spacing:0}.req{color:var(--danger)}.ta{line-height:1.95;font-size:14.5px;resize:vertical;min-height:300px;font-family:inherit}.ta-sm{line-height:1.8;resize:vertical}.editor-wrap{border:1px solid var(--line);border-radius:12px;background:rgba(var(--surface-rgb),.72);overflow:hidden;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}.editor-wrap.focus{border-color:rgba(var(--accent-rgb),.62);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.13)}.editor-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:7px 9px;background:rgba(var(--surface-rgb),.6);border-bottom:1px solid var(--line)}.tb-group{display:flex;align-items:center;gap:2px}.tb-sep{width:1px;height:18px;background:var(--line);margin:0 6px;flex-shrink:0}.tb-btn{min-width:30px;height:30px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;gap:3px;font-family:inherit;font-size:13.5px;line-height:1;color:var(--muted);background:0 0;border:1px solid transparent;border-radius:7px;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}.tb-btn:hover{background:rgba(var(--accent-rgb),.14);color:var(--ink-strong)}.tb-btn.active{background:rgba(var(--accent-rgb),.2);color:var(--ink-strong);border-color:rgba(var(--accent-rgb),.3)}.tb-btn.tb-wide{min-width:auto;font-size:12.5px}.tb-b{font-weight:700}.tb-u{text-decoration:underline}.tb-i{font-style:italic}.tb-s{text-decoration:line-through}.tb-a{font-weight:600;border-bottom:2px solid var(--rose);line-height:1}.tb-a-bg{border-bottom:none;background:rgba(255,243,196,.9);padding:0 3px;border-radius:3px}.caret{width:0;height:0;flex-shrink:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:4px solid currentColor;opacity:.55}.tb-select{position:relative;display:inline-flex}.tb-menu{position:absolute;top:calc(100% + 5px);left:0;z-index:20;min-width:116px;padding:5px;display:none;flex-direction:column;gap:1px;background:rgba(var(--surface-rgb),.96);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.tb-select.open .tb-menu{display:flex}.tb-item{text-align:left;white-space:nowrap;font:inherit;font-size:13px;color:var(--ink);background:0 0;border:none;padding:7px 10px;border-radius:6px;cursor:pointer;transition:background .18s var(--ease)}.tb-item:hover{background:rgba(var(--accent-rgb),.14)}.tb-swatches{flex-direction:row;flex-wrap:wrap;min-width:0;width:118px;gap:4px}.sw{width:24px;height:24px;padding:0;border:1px solid var(--line-2);border-radius:6px;cursor:pointer;font-size:12px;color:var(--faint);line-height:1;transition:transform .18s var(--ease)}.sw:hover{transform:scale(1.12)}.sw[data-sw=transparent]{background:repeating-linear-gradient(45deg,#fff 0 4px,#eee 4px 8px)}.sw[data-sw="#4a4340"]{background:#4a4340}.sw[data-sw="#c0392b"]{background:#c0392b}.sw[data-sw="#b08b8f"]{background:#b08b8f}.sw[data-sw="#8b9dae"]{background:#8b9dae}.sw[data-sw="#5f7a5f"]{background:#5f7a5f}.sw[data-sw="#8a807b"]{background:#8a807b}.sw[data-sw="#fff3c4"]{background:#fff3c4}.sw[data-sw="#ffe0e0"]{background:#ffe0e0}.sw[data-sw="#e0f0e5"]{background:#e0f0e5}.sw[data-sw="#e3ecf5"]{background:#e3ecf5}.sw[data-sw="#eeeeee"]{background:#eee}.editor-body{min-height:320px;max-height:60vh;overflow-y:auto;padding:16px 18px;font-size:15px;line-height:1.95;color:var(--ink);outline:0}.editor-body.is-empty::before,.editor-body:empty::before{content:attr(data-placeholder);color:var(--faint);pointer-events:none}.editor-body>*+*{margin-top:14px}.editor-body h2{font-size:20px;font-weight:600;color:var(--ink-strong)}.editor-body h3{font-size:17px;font-weight:600;color:var(--ink-strong)}.editor-body h4{font-size:15.5px;font-weight:600;color:var(--ink-strong)}.editor-body blockquote{padding:3px 0 3px 15px;border-left:2px solid var(--rose);color:var(--muted);margin-left:0}.editor-body ol,.editor-body ul{padding-left:24px}.editor-body pre{background:rgba(0,0,0,.05);border:1px solid var(--line);border-radius:9px;padding:12px 14px;overflow-x:auto;font-family:"Cascadia Code",Consolas,monospace;font-size:13px;line-height:1.7}.editor-body code{font-family:"Cascadia Code",Consolas,monospace;font-size:.9em;background:rgba(var(--accent-rgb),.12);padding:1px 5px;border-radius:4px}.editor-body pre code{background:0 0;padding:0}.editor-body img{max-width:100%;border-radius:8px}.editor-body a{color:var(--rose-deep)}.editor-body table{border-collapse:collapse;width:100%}.editor-body td,.editor-body th{border:1px solid var(--line-2);padding:7px 10px}.editor-body th{background:rgba(var(--accent-rgb),.1);font-weight:600}.editor-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 14px;border-top:1px solid var(--line);background:rgba(var(--surface-rgb),.5)}.editor-wrap.fullscreen{position:fixed;inset:16px;z-index:120;border-radius:14px;background:rgba(252,250,248,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;flex-direction:column;box-shadow:var(--shadow-lift)}.editor-wrap.fullscreen .editor-body{flex:1;max-height:none}.cover-row{display:flex;gap:9px}.cover-row .in{flex:1}.cover-row .btn-ghost{flex-shrink:0}.cover-preview{margin-top:12px;border-radius:11px;overflow:hidden;max-height:200px;border:1px solid var(--line)}.cover-preview img{width:100%;object-fit:cover;display:block}.admin-row.row-banned{opacity:.62;border-color:rgba(201,139,139,.35)}.link-sm{font:inherit;font-size:12px;color:var(--rose-deep);background:0 0;border:none;padding:0;cursor:pointer;border-bottom:1px dashed rgba(var(--accent-rgb),.5)}.link-sm:hover{border-bottom-style:solid}.ip-list{margin-top:8px;padding:8px 10px;border-radius:8px;background:rgba(var(--surface-rgb),.5);border:1px solid var(--line);display:flex;flex-direction:column;gap:5px}.ip-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:12px}.ip-addr{font-variant-numeric:tabular-nums;color:var(--ink)}.badge-warn{color:var(--danger);background:rgba(201,139,139,.14);border-color:rgba(201,139,139,.3)}.bl-add{display:flex;gap:9px;margin:0 0 16px;flex-wrap:wrap}.bl-add .in{flex:1;min-width:150px}.bl-add .btn-primary{flex-shrink:0}.backup-stats{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px}.backup-block{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:9px;align-items:flex-start}.backup-h{font-size:14px;font-weight:600;color:var(--ink-strong);letter-spacing:.5px}.backup-block .hint{max-width:620px;line-height:1.8}.theme-row{display:flex;gap:18px;margin-top:16px;flex-wrap:wrap}.theme-preview{width:260px;height:160px;flex-shrink:0;border-radius:12px;border:1px solid var(--line);background:var(--bg-image, url('/file/bg/54e6dd87af07b0d3.webp')) center/cover no-repeat}.theme-side{flex:1;min-width:200px;display:flex;flex-direction:column;gap:12px}.theme-swatch-row{display:flex;align-items:center;gap:8px}.theme-sw{width:26px;height:26px;border-radius:7px;border:1px solid var(--line-2);background:var(--rose)}#themeSwDeep{background:var(--rose-deep)}.theme-btns{display:flex;gap:9px;flex-wrap:wrap}.bw-add{display:flex;gap:9px;margin:14px 0 10px;flex-wrap:wrap}.bw-add .in{flex:1;min-width:200px}.bw-add .btn-primary{flex-shrink:0}.bw-test{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.bw-test .in{flex:1;min-width:200px}.bw-test .hint{flex-shrink:0}.bw-hit{color:var(--danger)}.bw-pass{color:var(--ok)}.bw-list{display:flex;flex-wrap:wrap;gap:8px}.bw-item{display:inline-flex;align-items:center;gap:7px;padding:6px 8px 6px 12px;border-radius:999px;font-size:13px;color:var(--ink);background:rgba(var(--surface-rgb),.6);border:1px solid var(--line)}.bw-del{width:18px;height:18px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:var(--faint);background:0 0;border:none;border-radius:50%;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}.bw-del:hover{background:rgba(201,139,139,.18);color:var(--danger)}.admin-list{display:flex;flex-direction:column;gap:10px}.admin-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;background:rgba(var(--surface-rgb),.5);border:1px solid var(--line);transition:background .3s var(--ease),transform .3s var(--ease),border-color .3s var(--ease)}.admin-row:hover{background:var(--surface-hi);border-color:var(--line-2);transform:translateX(3px)}.admin-row.removing{opacity:0;transform:translateX(22px);transition:opacity .35s var(--ease),transform .35s var(--ease)}.ar-main{flex:1;min-width:0}.ar-title{font-size:14.5px;font-weight:600;color:var(--ink-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ar-sub{margin-top:5px;font-size:12px;color:var(--faint);display:flex;flex-wrap:wrap;gap:12px}.ar-text{margin-top:6px;font-size:13px;line-height:1.7;color:var(--muted);word-break:break-word}.ar-acts{display:flex;gap:7px;flex-shrink:0}.modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(var(--page-rgb,244,241,238),.62);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);opacity:0;transition:opacity .32s var(--ease)}.modal-overlay.show{opacity:1}.modal-box{width:100%;max-width:420px;max-height:88vh;overflow-y:auto;border-radius:18px;padding:28px 28px 24px;background:rgba(var(--surface-rgb),.9);display:flex;flex-direction:column;transform:translateY(18px) scale(.97);transition:transform .38s var(--ease)}.modal-overlay.show .modal-box{transform:none}.modal-title{font-size:18px;font-weight:600;color:var(--ink-strong);letter-spacing:1px}.modal-msg{margin-top:9px;font-size:13px;line-height:1.8;color:var(--muted)}.auth-box .in{margin-top:12px}.auth-box .fl{margin-bottom:0}.auth-box .fl+.in,.auth-box .fl+textarea.in{margin-top:7px}.err{color:var(--danger);font-size:12.5px;min-height:18px;margin-top:11px}.modal-actions{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-actions .btn-ghost:only-child{margin-left:auto}.toast{position:fixed;left:50%;bottom:32px;z-index:200;padding:12px 22px;border-radius:999px;font-size:13.5px;font-weight:500;letter-spacing:.5px;color:var(--ink);background:rgba(var(--surface-rgb),.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:var(--shadow-lift);opacity:0;transform:translate(-50%,16px);pointer-events:none;transition:opacity .4s var(--ease),transform .4s var(--ease)}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.ok{color:#5f7a5f}.toast.err{color:#a86a6a}.footer{text-align:center;padding:16px 20px 18px;font-size:12.5px;color:var(--faint);letter-spacing:.5px;border-top:1px solid var(--line);background:rgba(var(--surface-rgb),.48);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.skeleton{border-radius:16px;height:162px;overflow:hidden;position:relative;background:rgba(var(--surface-rgb),.45)}.skeleton::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(var(--surface-rgb),.8),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}@media (max-width:900px){.home-grid{grid-template-columns:1fr}.home-side{position:static}.hero{max-width:none}.bg-veil{background:linear-gradient(180deg,var(--veil-1,rgba(252,250,248,.74)) 0,var(--veil-3,rgba(252,250,248,.66)) 100%)}}@media (max-width:640px){.topbar{padding:12px 16px;gap:10px;flex-wrap:wrap}.topbar.shrink{padding:9px 16px}.top-nav{margin-left:0}#main{padding:22px 15px 56px}.hero{padding:30px 18px 26px}.hero-title{letter-spacing:4px}.card{padding:18px}.post-full{padding:22px 20px 28px}.post-cover{height:148px}.user-name{max-width:70px}.cover-row{flex-direction:column}.modal-actions{flex-direction:column-reverse;align-items:stretch}.modal-actions .foot-btns{justify-content:stretch}.modal-actions .foot-btns>*{flex:1}.admin-row{flex-direction:column;align-items:stretch}.ar-acts{justify-content:flex-end;flex-wrap:wrap}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{border-width:1.5px}.admin-tabs{padding:5px}.admin-tab{font-size:13px;padding:9px 11px}.notif-panel{position:fixed;top:112px;left:12px;right:12px;width:auto;max-height:calc(100vh - 132px)}.notif-box.open .notif-panel{transform:none}.editor-toolbar{padding:6px;gap:1px}.tb-btn{min-width:28px;height:28px;padding:0 5px;font-size:12.5px}.tb-btn.tb-wide{font-size:11.5px}.tb-sep{margin:0 3px}.editor-body{min-height:220px;max-height:50vh;padding:13px 14px}.tb-menu{max-width:calc(100vw - 40px)}.theme-row{flex-direction:column;gap:14px}.theme-preview{width:100%;height:140px}.backup-block .btn-ghost,.backup-block .btn-primary{width:100%}.bl-add .btn-primary{width:100%}.prose table{display:block;overflow-x:auto;white-space:nowrap}.editor-body table{display:block;overflow-x:auto}.brand-name{font-size:15.5px}.nav-link{padding:7px 11px;font-size:13.5px}.btn-ghost,.btn-primary{padding:8px 14px;font-size:13.5px}}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.footer,.glass,.modal-box,.toast,.topbar{background:rgba(var(--surface-rgb),.95)}.modal-overlay{background:rgba(var(--page-rgb,244,241,238),.95)}}.reveal{opacity:0;transform:translateY(40px) scale(.99);transition:opacity .85s var(--ease),transform .85s var(--ease)}.reveal.in:not(.removing){opacity:1;transform:none}.reveal.reveal-d1{transition-delay:80ms}.reveal.reveal-d2{transition-delay:160ms}.reveal.reveal-d3{transition-delay:240ms}.reveal.reveal-d4{transition-delay:320ms}.reveal.reveal-d5{transition-delay:0.4s}@media (prefers-reduced-motion:reduce){.reveal,.reveal.in{opacity:1;transform:none;transition:none;transition-delay:0s}html{scroll-behavior:auto}}.site-settings-form{display:flex;flex-direction:column}.site-textarea{resize:vertical;min-height:92px;line-height:1.8}.site-settings-form .form-foot{margin-top:20px}@media (max-width:640px){.site-settings-form .form-foot{align-items:stretch;flex-direction:column}.site-settings-form .form-foot .btn-primary{width:100%}}
@media (max-width:640px){.editor-toolbar{flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.tb-group{flex:0 0 auto}.tb-btn{min-width:44px;height:44px;padding:0 9px;font-size:14px}.tb-btn.tb-wide{min-width:52px;font-size:12px}.tb-sep{height:28px;margin:0 5px}.tb-menu{position:fixed;left:16px;right:16px;top:auto;bottom:76px;max-height:45vh;overflow:auto}.tb-swatches{width:auto;max-width:none}.sw{width:34px;height:34px}.editor-foot{flex-direction:column;align-items:stretch}.editor-foot .hint{line-height:1.6}}
/* ===== 背景视频 / 声音按钮 / 主题开关（v34） ===== */
.bg-layer{overflow:hidden}
.bg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;opacity:0;transition:opacity .9s var(--ease)}
.bg-layer.bg-video-ready .bg-video{opacity:1}
.bg-layer.bg-video-failed{background:var(--page-bg,#14161c)}
.bg-sound-btn{position:fixed;left:16px;bottom:16px;z-index:60;display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;border:1px solid var(--line-2);background:var(--glass-2);color:var(--ink);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));box-shadow:var(--shadow);font-family:inherit;font-size:13px;line-height:1;transition:transform .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease)}
.bg-sound-btn:hover{transform:translateY(-2px);background:var(--glass-3)}
.bg-sound-btn.on{border-color:rgba(var(--accent-rgb),.55)}
.bg-sound-ico{font-size:14px;line-height:1}
.theme-check{display:inline-flex;align-items:center;gap:8px;margin:2px 0 4px;font-size:13.5px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none}
.theme-check input{width:16px;height:16px;margin:0;accent-color:var(--rose);cursor:pointer}
#bgSoundHint{display:block;margin:0 0 4px;max-width:34em}
.theme-preview.is-video{position:relative}
.theme-preview.is-video::after{content:"\25B6";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:24px;color:rgba(255,255,255,.9);text-shadow:0 2px 14px rgba(0,0,0,.5);pointer-events:none}
@media (max-width:640px){.bg-sound-btn{left:12px;bottom:12px;padding:7px 12px;font-size:12px}}
@media (prefers-reduced-motion:reduce){.bg-video{transition:none}}
/* ===== 上传限制自检提示（v35） ===== */
.upload-limit-note{display:block;margin:6px 0 0;font-size:12.5px;line-height:1.65;color:var(--muted);word-break:break-word}
.upload-limit-note.warn{color:#d98b6a}
/* ===== 论坛 / 附件（v43） ===== */
#view-forum{padding-top:6px}
.forum-head{margin-bottom:18px}
.forum-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.forum-title{margin:0 0 6px;font-size:22px}
.forum-actions{flex-shrink:0}
.forum-list{margin-top:4px}
.file-list{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 2px}
.file-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;border:1px solid var(--line);background:var(--glass-2);font-size:13px;max-width:100%}
.file-chip-name{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-chip-size{color:var(--muted);flex-shrink:0}
.file-chip-del{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:0 2px}
.file-chip-del:hover{color:var(--danger)}
.post-files{margin:16px 0;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--glass-2)}
.post-files-title{margin:0 0 10px;font-size:14px;color:var(--muted);font-weight:600}
.post-file{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);color:var(--ink);text-decoration:none;flex-wrap:wrap}
.post-file:last-child{border-bottom:0}
.post-file:hover{color:var(--rose-deep)}
.post-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.post-file-size{color:var(--muted);font-size:12.5px;flex-shrink:0}
.site-switch{margin:12px 0 2px;align-items:flex-start}
.site-switch span{line-height:1.6}
#view-admin.user-mode .admin-tabs{display:none}
/* ===== 附件：预览 / 下载 / 打开（v44） ===== */
.post-file-acts{display:inline-flex;gap:6px;flex-shrink:0}
.file-act{font-size:12.5px;line-height:1.5;padding:4px 10px;border-radius:8px;border:1px solid var(--line);background:var(--glass-2);color:var(--ink);cursor:pointer;text-decoration:none;transition:color .2s var(--ease),border-color .2s var(--ease)}
.file-act:hover{color:var(--rose-deep);border-color:rgba(var(--accent-rgb),.5)}
.file-modal{width:min(880px,94vw);max-width:none}
.file-modal-body{margin-top:14px;max-height:62vh;overflow:auto;border-radius:12px;background:rgba(var(--surface-rgb),.35);padding:10px}
.file-preview-img{display:block;max-width:100%;max-height:58vh;margin:0 auto;border-radius:8px}
.file-preview-media{display:block;width:100%;max-height:58vh;border-radius:8px;background:#000}
.file-preview-audio{display:block;width:100%}
.file-preview-frame{width:100%;height:60vh;border:0;border-radius:8px;background:#fff}
.file-preview-text{margin:0;max-height:58vh;overflow:auto;font:12.5px/1.7 Consolas,Menlo,monospace;white-space:pre-wrap;word-break:break-word;color:var(--ink)}
.file-modal-btns{display:inline-flex;gap:8px}
.file-preview-none{padding:28px 8px;text-align:center}
@media (max-width:640px){.post-file-acts{width:100%;justify-content:flex-end;margin-top:6px}}
/* ===== 普通用户上传大小设置（v45） ===== */
.site-upload-size{margin:14px 0 4px;padding-left:26px}
.site-upload-size .fl{margin-top:0}
.site-upload-size .in{max-width:200px}
.site-upload-size .hint{margin-top:6px}
/* ===== 云盘（v47） ===== */
.drive-tabs{display:inline-flex;gap:6px;flex-wrap:wrap}
.drive-tab{padding:7px 14px;border-radius:10px;border:1px solid var(--line);background:var(--glass-2);color:var(--ink);font-size:13.5px;cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease)}
.drive-tab:hover{border-color:rgba(var(--accent-rgb),.45)}
.drive-tab.active{background:var(--rose);color:var(--on-accent,#fff);border-color:transparent}
.drive-panel{padding:6px 18px}
.drive-list{display:flex;flex-direction:column}
.drive-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px dashed var(--line);flex-wrap:wrap}
.drive-row:last-child{border-bottom:0}
.drive-name{flex:1 1 240px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.drive-meta{color:var(--muted);font-size:12.5px;flex:0 0 auto}
.drive-acts{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;flex:0 0 auto}
.drive-sw{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted);cursor:pointer;user-select:none}
.drive-sw input{width:14px;height:14px;accent-color:var(--rose);cursor:pointer}
.drive-badge{font-size:11.5px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.drive-login{padding:26px 8px;text-align:center}
.drive-login .btn-primary{margin-top:10px}
@media (max-width:640px){.drive-meta{flex-basis:100%}.drive-acts{width:100%}}
/* ===== 云盘容量卡片（v48） ===== */
.drive-stat{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px;padding:18px 22px;color:var(--ink)}
.drive-stat-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;flex:0 0 auto;border-radius:12px;background:rgba(var(--accent-rgb),.16);color:var(--rose-deep)}
.drive-stat-body{flex:1;min-width:0}
.drive-stat-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}
.drive-stat-title{font-size:14px;font-weight:600;color:var(--ink-strong);letter-spacing:.5px}
.drive-stat-pct{font-size:12.5px;color:var(--muted)}
.drive-stat-nums{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.drive-stat-nums b{font-size:19px;font-weight:600;color:var(--ink-strong);letter-spacing:.4px}
.drive-stat-lbl{font-size:12px;color:var(--muted)}
.drive-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--faint);margin:0 4px}
.drive-bar{position:relative;height:8px;border-radius:999px;background:rgba(var(--line-rgb),.16);overflow:hidden;margin:10px 0 8px}
.drive-bar i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--rose-deep),var(--rose));transition:width .5s var(--ease)}
.drive-stat-sub{font-size:12.5px;color:var(--muted)}
@media (max-width:640px){.drive-stat{padding:14px 16px;gap:12px}.drive-stat-icon{width:38px;height:38px}.drive-stat-nums b{font-size:16px}}
/* ===== 云盘上传 / 跳转（v49） ===== */
.drive-head-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex-shrink:0}
.drive-jump{white-space:nowrap}
@media (max-width:640px){.drive-head-right{width:100%}.drive-head-right .btn-ghost{flex:1 1 auto}}
/* ===== 云盘重命名/删除（v52） ===== */
.file-act.danger{color:var(--danger);border-color:rgba(201,139,139,.45)}
.file-act.danger:hover{color:#fff;background:var(--danger);border-color:var(--danger)}
/* ===== 云盘智能分类（v54） ===== */
.drive-filters{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0 4px}
.drive-chip{padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:12.5px;cursor:pointer;transition:all .2s var(--ease)}
.drive-chip b{font-weight:600;margin-left:2px;color:var(--ink)}
.drive-chip:hover{border-color:rgba(var(--accent-rgb),.45);color:var(--ink)}
.drive-chip.active{background:rgba(var(--accent-rgb),.16);border-color:rgba(var(--accent-rgb),.5);color:var(--ink)}
.drive-ico{width:26px;height:26px;flex:0 0 auto;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;line-height:1;border:1px solid var(--line);background:var(--glass-2);color:var(--muted)}
.drive-ico.kind-image{color:#7fb0d8;border-color:rgba(127,176,216,.35)}
.drive-ico.kind-video{color:#d89a7f;border-color:rgba(216,154,127,.35)}
.drive-ico.kind-audio{color:#b0a0d8;border-color:rgba(176,160,216,.35)}
.drive-ico.kind-doc{color:#8fc4a8;border-color:rgba(143,196,168,.35)}
.drive-ico.kind-archive{color:#d8c47f;border-color:rgba(216,196,127,.35)}
.drive-ico.kind-code{color:#8fa8c4;border-color:rgba(143,168,196,.35)}
@media (max-width:640px){.drive-filters{gap:6px}.drive-chip{font-size:12px;padding:4px 10px}}
/* ===== 背景音量自定义（v55） ===== */
.bg-sound-toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;font-size:14px;cursor:pointer;line-height:1}
.bg-sound-toggle:hover{background:rgba(var(--line-rgb),.14)}
.bg-sound-ico{display:inline-block;pointer-events:none}
.bg-volume{-webkit-appearance:none;appearance:none;width:76px;height:4px;border-radius:999px;background:rgba(var(--line-rgb),.28);outline:none;cursor:pointer;accent-color:var(--rose)}
.bg-volume::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--rose);border:0;box-shadow:0 0 0 2px rgba(var(--surface-rgb),.9)}
.bg-volume::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:var(--rose)}
.bg-volume-txt{min-width:34px;text-align:right;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
@media (max-width:640px){.bg-volume{width:58px}.bg-sound-btn{left:12px;bottom:12px;padding:5px 10px 5px 5px}}
/* ===== 音乐播放器（v56） ===== */
.music-player{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.mp-fab{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:var(--glass-2);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));transition:transform .25s var(--ease),border-color .25s var(--ease)}
.mp-fab:hover{transform:translateY(-2px);border-color:rgba(var(--accent-rgb),.55)}
.mp-bar{width:min(360px,calc(100vw - 32px));padding:12px 14px;border-radius:16px;border:1px solid var(--line-2);background:var(--glass-2);box-shadow:var(--shadow-lift);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));position:relative}
.mp-info{display:flex;flex-direction:column;gap:2px;margin-bottom:10px;min-width:0}
.mp-title{font-size:13.5px;font-weight:600;color:var(--ink-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp-sub{font-size:11.5px;color:var(--muted)}
.mp-ctrl{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.mp-btn{border:0;background:transparent;color:var(--ink);font-size:15px;line-height:1;padding:6px 8px;border-radius:8px;cursor:pointer}
.mp-btn:hover{background:rgba(var(--line-rgb),.14)}
.mp-play{background:var(--rose);color:var(--on-accent,#fff);width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px}
.mp-play:hover{background:var(--rose-deep)}
.mp-progress-wrap{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.mp-progress{flex:1;min-width:0}
.mp-time{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.mp-vol-wrap{display:flex;align-items:center;gap:6px}
.mp-vol-ico{font-size:12px}
.mp-volume{width:82px}
.mp-progress,.mp-volume{-webkit-appearance:none;appearance:none;height:4px;border-radius:999px;background:rgba(var(--line-rgb),.26);outline:none;cursor:pointer;accent-color:var(--rose)}
.mp-progress::-webkit-slider-thumb,.mp-volume::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:11px;height:11px;border-radius:50%;background:var(--rose);border:0}
.mp-progress::-moz-range-thumb,.mp-volume::-moz-range-thumb{width:11px;height:11px;border:0;border-radius:50%;background:var(--rose)}
.mp-list{position:absolute;left:10px;right:10px;bottom:calc(100% + 8px);max-height:220px;overflow:auto;padding:6px;border-radius:12px;border:1px solid var(--line-2);background:var(--glass-2);box-shadow:var(--shadow-lift);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur))}
.mp-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 8px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-size:13px;text-align:left;cursor:pointer}
.mp-item:hover{background:rgba(var(--line-rgb),.14)}
.mp-item.active{color:var(--rose-deep)}
.mp-item-i{width:18px;flex:0 0 18px;text-align:center;color:var(--muted);font-size:12px}
.mp-item-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-empty{padding:10px;font-size:12.5px;color:var(--muted);text-align:center}
.music-admin-list{margin-top:14px;display:flex;flex-direction:column}
.music-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);flex-wrap:wrap}
.music-row:last-child{border-bottom:0}
.music-name{flex:1 1 200px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.music-meta{font-size:12.5px;color:var(--muted)}
@media (max-width:640px){.music-player{right:12px;bottom:12px}.mp-bar{width:calc(100vw - 24px)}.mp-volume{width:64px}.music-admin-list .music-name{flex-basis:100%}}
/* ===== 播放模式按钮（v58） ===== */
.mp-mode{margin-left:auto;font-size:11.5px;letter-spacing:.5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:transparent}
.mp-mode:hover{color:var(--ink);border-color:rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.12)}
.mp-mode[data-mode="single"],.mp-mode[data-mode="list"]{color:var(--rose-deep);border-color:rgba(var(--accent-rgb),.45)}
/* ===== 云盘文件夹（v59） ===== */
.drive-folder{background:rgba(var(--accent-rgb),.05);border-radius:10px;padding-left:8px;padding-right:8px}
.drive-ico-folder{color:#d8c47f;border-color:rgba(216,196,127,.4);background:rgba(216,196,127,.1)}
.drive-crumb{background:rgba(var(--line-rgb),.06);border-radius:10px;padding-left:8px;padding-right:8px;border-bottom:1px solid var(--line)}
.move-modal{max-width:420px}
.move-list{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow:auto;margin:6px 0 14px}
.move-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--glass-2);color:var(--ink);font-family:inherit;font-size:13.5px;cursor:pointer;text-align:left}
.move-item:hover{border-color:rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.1)}
.move-item.active{border-color:rgba(var(--accent-rgb),.6);color:var(--rose-deep)}
.move-ico{width:24px;height:24px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:#d8c47f;background:rgba(216,196,127,.12);flex:0 0 auto}
.move-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.move-cnt{font-size:12px;color:var(--muted)}
@media (max-width:640px){.drive-folder .drive-meta{flex-basis:auto}}
/* ===== 文件夹顶部工具栏（v60） ===== */
.drive-foldertool{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;margin:2px 0 10px;border:1px solid rgba(var(--accent-rgb),.28);border-radius:14px;background:rgba(var(--accent-rgb),.07)}
.drive-back-btn{border:1px solid var(--line);background:var(--glass-2);color:var(--ink);font-family:inherit;font-size:12.5px;padding:6px 12px;border-radius:999px;cursor:pointer}
.drive-back-btn:hover{border-color:rgba(var(--accent-rgb),.5)}
.drive-foldertool-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 160px}
.drive-foldertool-info b{font-size:14px;font-weight:600;color:var(--ink-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drive-foldertool-info span{font-size:12px;color:var(--muted)}
.drive-foldertool-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.drive-zip-btn{padding:7px 14px;font-size:13px;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.drive-zip-btn::before{content:"↓";font-size:13px;line-height:1}
@media (max-width:640px){.drive-foldertool{padding:10px 12px;gap:8px}.drive-foldertool-info{flex-basis:100%}.drive-foldertool-acts{width:100%}.drive-zip-btn{flex:1 1 auto;justify-content:center}}
.move-owner{font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 7px}
/* ===== 云盘 / 音乐搜索（v65） ===== */
.drive-search-row{display:flex;align-items:center;gap:10px;padding:12px 0 2px}
.drive-search{flex:1 1 auto;min-width:0;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:rgba(var(--surface-rgb),.5);color:var(--ink);font-family:inherit;font-size:13.5px;outline:none}
.drive-search:focus{border-color:rgba(var(--accent-rgb),.55)}
.drive-search-hint{font-size:12.5px;color:var(--muted);white-space:nowrap}
.mp-search{width:100%;margin-bottom:6px;padding:7px 10px;border-radius:9px;border:1px solid var(--line);background:rgba(var(--surface-rgb),.5);color:var(--ink);font-family:inherit;font-size:12.5px;outline:none}
.mp-search:focus{border-color:rgba(var(--accent-rgb),.55)}
.mp-items{display:flex;flex-direction:column;max-height:180px;overflow:auto}
/* ===== 在线音乐库（v67） ===== */
.music-remote{margin-top:22px;padding-top:16px;border-top:1px dashed var(--line)}
.music-remote .backup-h{margin-bottom:6px}
.music-remote .cover-row{margin:10px 0 4px}
/* ===== 音乐分区（v69） ===== */
.music-page{padding:8px 18px}
.music-page-list{display:flex;flex-direction:column}
.music-page-row{display:flex;align-items:center;gap:12px;padding:12px 6px;border-bottom:1px dashed var(--line);cursor:pointer;border-radius:8px}
.music-page-row:last-child{border-bottom:0}
.music-page-row:hover{background:rgba(var(--line-rgb),.1)}
.music-page-row.active{background:rgba(var(--accent-rgb),.1);border-bottom-color:transparent}
.music-page-ico{width:26px;height:26px;flex:0 0 auto;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;background:rgba(var(--accent-rgb),.16);color:var(--rose-deep)}
.music-page-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.music-page-row.active .music-page-name{color:var(--rose-deep);font-weight:600}
.music-page-size{font-size:12.5px;color:var(--muted);flex:0 0 auto}
@media (max-width:640px){.music-page{padding:6px 12px}.music-page-size{display:none}}
/* ===== 播放器底部：列表左、音量右下（v70） ===== */
.mp-bottom{display:flex;align-items:center;gap:8px;margin-top:2px}
.mp-bottom .mp-vol-wrap{margin-left:auto;padding-right:2px}
.mp-bottom .mp-list{left:10px;right:10px}
/* ===== 壁纸参数（v73） ===== */
.bg-dim{position:fixed;inset:0;background:#000;opacity:var(--bg-dim,0);z-index:-1;pointer-events:none;transition:opacity .3s var(--ease)}
.bg-video{filter:blur(var(--bg-blur,0px)) saturate(var(--bg-sat,100%)) brightness(var(--bg-bright,100%));transform:scale(var(--bg-scale,1)) translate(var(--bg-tx,0%),var(--bg-ty,0%));transition:filter .3s var(--ease),transform .3s var(--ease),opacity .9s var(--ease)}
.bg-layer:not(.has-video){filter:blur(var(--bg-blur,0px)) saturate(var(--bg-sat,100%)) brightness(var(--bg-bright,100%));transform:scale(var(--bg-scale,1)) translate(var(--bg-tx,0%),var(--bg-ty,0%));transition:filter .3s var(--ease),transform .3s var(--ease)}
.bg-fx{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
.bg-fx .backup-h{margin-bottom:4px}
.bg-fx-row{display:flex;align-items:center;gap:10px;margin:8px 0;flex-wrap:wrap}
.bg-fx-row label{flex:0 0 68px;font-size:12.5px;color:var(--muted)}
.bg-fx-row input[type=range]{flex:1 1 140px;min-width:120px;accent-color:var(--rose)}
.bg-fx-val{flex:0 0 52px;text-align:right;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.bg-fx-actions{margin-top:10px}
@media (max-width:640px){.bg-fx-row label{flex-basis:56px}}
/* ===== 壁纸加载进度（v75） ===== */
.bg-progress{position:fixed;left:16px;bottom:62px;z-index:61;width:190px;padding:8px 12px;border-radius:12px;border:1px solid var(--line-2);background:var(--glass-2);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));box-shadow:var(--shadow);transition:opacity .35s var(--ease),transform .35s var(--ease)}
.bg-progress.hidden{opacity:0;transform:translateY(6px);pointer-events:none}
.bg-progress-track{height:4px;border-radius:999px;background:rgba(var(--line-rgb),.28);overflow:hidden}
.bg-progress-track > i{display:block;height:100%;width:0;border-radius:999px;background:var(--rose);transition:width .25s var(--ease)}
.bg-progress-txt{display:block;margin-top:6px;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.bg-progress.done .bg-progress-track > i{background:var(--rose-deep)}
@media (max-width:640px){.bg-progress{left:12px;bottom:58px;width:150px;padding:6px 10px}}
/* ===== 首次进站背景提示（v77） ===== */
.bg-firsttip{position:fixed;left:16px;bottom:112px;z-index:62;max-width:300px;display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--line-2);background:var(--glass-2);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));box-shadow:var(--shadow);opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.bg-firsttip.show{opacity:1;transform:none}
.bg-firsttip-ico{color:var(--rose);font-size:12px;line-height:1.6}
.bg-firsttip-txt{flex:1;font-size:12px;line-height:1.5;color:var(--muted)}
.bg-firsttip-x{flex:0 0 auto;border:1px solid var(--line);background:transparent;color:var(--ink);font-family:inherit;font-size:11.5px;padding:3px 8px;border-radius:999px;cursor:pointer}
.bg-firsttip-x:hover{border-color:rgba(var(--accent-rgb),.5)}
@media (max-width:640px){.bg-firsttip{left:12px;bottom:104px;max-width:min(300px,calc(100vw - 24px))}}
/* ===== 动态壁纸播放时降低合成开销（v78） ===== */
html.bg-playing{--blur:9px}
html.bg-playing .topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
/* ===== 列表内直接显示附件（v81） ===== */
.post-file-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.post-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 10px;border-radius:999px;border:1px solid var(--line-2);background:rgba(var(--line-rgb),.08);font-size:12px;color:var(--ink);cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease);line-height:1.2}
.post-chip:hover{border-color:rgba(var(--accent-rgb),.55);background:rgba(var(--accent-rgb),.12);transform:translateY(-1px)}
.post-chip-ico{font-size:11px;line-height:1}
.post-chip-name{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.post-chip-size{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
@media (max-width:640px){.post-chip-name{max-width:130px}}
/* ===== 上传进度卡片（v82） ===== */
.up-card{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:80;width:min(340px,calc(100vw - 32px));padding:10px 14px;border-radius:14px;border:1px solid var(--line-2);background:var(--glass-2);-webkit-backdrop-filter:blur(var(--blur));backdrop-filter:blur(var(--blur));box-shadow:var(--shadow);transition:opacity .35s var(--ease),transform .35s var(--ease)}
.up-card.hidden{opacity:0;transform:translateX(-50%) translateY(10px);pointer-events:none}
.up-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.up-card-name{flex:1;font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.up-card-pct{flex:0 0 auto;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.up-card-track{height:5px;border-radius:999px;background:rgba(var(--line-rgb),.28);overflow:hidden}
.up-card-track > i{display:block;height:100%;width:0;border-radius:999px;background:var(--rose);transition:width .18s linear}
.up-card.done .up-card-track > i{background:var(--rose-deep)}
@media (max-width:640px){.up-card{bottom:18px;width:calc(100vw - 24px)}}
/* ===== 列表内直接播放视频（v84） ===== */
.post-video{position:relative;width:100%;aspect-ratio:16/9;max-height:340px;overflow:hidden;border-radius:14px 14px 0 0;background:#0d0f14}
.post-video-el{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.post-video-badge{position:absolute;right:10px;bottom:10px;padding:3px 9px;border-radius:999px;background:rgba(10,12,16,.66);color:#fff;font-size:11px;letter-spacing:.02em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.post-card:hover .post-video-el{transform:scale(1.02);transition:transform .4s var(--ease)}
@media (max-width:640px){.post-video{max-height:220px}}
@media (hover:none){.post-video-badge{right:8px;bottom:8px}}
/* ===== 刷视频（v86） ===== */
.video-feed{display:flex;flex-direction:column;gap:16px;margin-top:16px}
.video-card{position:relative;width:100%;aspect-ratio:9/16;max-height:78vh;border-radius:16px;overflow:hidden;background:#0b0d12;scroll-snap-align:center}
.video-feed{scroll-snap-type:y proximity}
.video-el{width:100%;height:100%;object-fit:contain;display:block;background:#0b0d12}
.video-overlay{position:absolute;inset:auto 0 0 0;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:14px 16px;background:linear-gradient(180deg,transparent,rgba(6,8,12,.72))}
.video-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.video-title{font-size:14px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.video-author{font-size:12px;color:rgba(255,255,255,.72)}
.video-sound{flex:0 0 auto;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.28);background:rgba(10,12,16,.5);color:#fff;font-size:16px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.video-card.playing{box-shadow:0 18px 50px rgba(0,0,0,.45)}
@media (max-width:640px){.video-card{aspect-ratio:9/16;max-height:70vh;border-radius:12px}}
/* 从列表点附件跳到帖子时，把附件区闪一下 */
.post-files.files-flash{outline:2px solid rgba(var(--accent-rgb),.55);outline-offset:6px;border-radius:10px;animation:filesFlash 2.4s var(--ease)}
@keyframes filesFlash{0%{background:rgba(var(--accent-rgb),.16)}60%{background:rgba(var(--accent-rgb),.08)}100%{background:transparent}}
/* 帖子视频标记 */
.video-tag{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:999px;background:rgba(var(--accent-rgb),.85);color:var(--on-accent);font-size:10.5px;vertical-align:1px}
.video-jump{font-size:11.5px;color:rgba(255,255,255,.66)}
.video-card.video-from-post{cursor:pointer}
.video-card.video-from-post:hover .video-jump{color:#fff}
/* 视频分区：音量条 */
.video-sound-box{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid rgba(255,255,255,.24);background:rgba(10,12,16,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.video-sound{width:28px;height:28px;border-radius:50%;border:0;background:transparent;color:#fff;font-size:15px;cursor:pointer;line-height:1}
.video-volume{width:86px;accent-color:var(--rose);cursor:pointer}
@media (max-width:640px){.video-volume{width:64px}}
/* ===== 会员 / 博主：动态彩色昵称 ===== */
.uname{font-weight:600;background-size:220% 220%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:unameFlow 6s linear infinite}
.uname-member{background-image:linear-gradient(90deg,#ff9a3c,#ffd166,#7ee8a2,#5ee1ff,#b388ff,#ff9a3c)}
.uname-admin{background-image:linear-gradient(90deg,#ff5d8f,#ffd166,#5ee1ff,#b388ff,#ff5d8f)}
@keyframes unameFlow{0%{background-position:0% 50%}100%{background-position:200% 50%}}
@media (prefers-reduced-motion:reduce){.uname{animation:none;background-position:0 50%}}
.badge-member{background:rgba(255,193,94,.18);color:#ffcf7a;border-color:rgba(255,193,94,.45)}
.badge-role{font-size:10.5px;padding:1px 6px}
.badge-admin{background:rgba(255,93,143,.16);color:#ff9bb6;border-color:rgba(255,93,143,.4)}
.music-dl{flex:0 0 auto;border:1px solid var(--line-2);background:transparent;color:var(--ink);font-family:inherit;font-size:11.5px;padding:3px 10px;border-radius:999px;cursor:pointer}
.music-dl:hover{border-color:rgba(var(--accent-rgb),.55);background:rgba(var(--accent-rgb),.12)}
.music-dl.locked{cursor:pointer;border-style:dashed;color:var(--muted)}

/* ===== 云盘文本在线编辑（v43） ===== */
.text-edit-modal{width:min(940px,96vw);max-width:none}
.text-edit-body{margin-top:12px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:rgba(var(--surface-rgb),.5)}
.text-edit-area{display:block;width:100%;min-height:min(60vh,520px);max-height:66vh;padding:14px 16px;border:0;outline:0;resize:vertical;background:0 0;color:var(--ink);font:13px/1.75 Consolas,Menlo,"Cascadia Code",monospace;white-space:pre;overflow:auto;tab-size:4}
.text-edit-area:disabled{opacity:.5}
#textModalHint.dirty{color:var(--danger)}
.file-act.is-off{opacity:.45;cursor:not-allowed;border-style:dashed}

/* ===== 音乐播放器可拖动 ===== */
.mp-bar{touch-action:none}
.mp-fab{touch-action:none}
.mp-info{cursor:grab}
.mp-list{touch-action:pan-y}
.mp-list.list-down{top:calc(100% + 8px);bottom:auto}
.music-player.mp-dragging{z-index:80}
.music-player.mp-dragging .mp-bar{box-shadow:0 24px 60px rgba(var(--line-rgb),.3)}
body.mp-dragging-body,body.mp-dragging-body *{user-select:none!important;-webkit-user-select:none!important;cursor:grabbing!important}
.mp-play svg{display:block;width:14px;height:14px;pointer-events:none}
.mp-play.is-playing{background:var(--rose-deep)}
.mp-fab.mp-drag-handle{cursor:grab}
.music-player.mp-dragging .mp-fab{cursor:grabbing}

/* ===== 博主商城（站内浏览外部站点） ===== */
.mall-bar{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}
.mall-bar .in{flex:1 1 240px;min-width:0}
.mall-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.mall-chip{font:inherit;font-size:12.5px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(var(--surface-rgb),.6);color:var(--ink);cursor:pointer;transition:all .2s var(--ease)}
.mall-chip:hover{background:var(--surface-hi);border-color:var(--line-2);transform:translateY(-1px)}
.mall-chip.active{background:var(--rose);border-color:transparent;color:var(--on-accent)}
.mall-frame-card{border-radius:16px;padding:10px;margin-top:12px}
.mall-frame-head{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;margin-bottom:10px;min-height:18px}
.mall-frame-tip{display:inline-block;margin-top:8px;font-size:11.5px;color:var(--faint)}
.mall-frame{width:100%;height:calc(100vh - 320px);min-height:460px;border:1px solid var(--line);border-radius:12px;background:rgba(var(--surface-rgb),.5);display:block}
@media (max-width:640px){.mall-frame{height:calc(100vh - 380px);min-height:360px}.mall-bar .btn-ghost,.mall-bar .btn-primary{flex:1 1 auto}}

/* ===== 博主网站：浏览区域铺宽 ===== */
body.route-mall #main{max-width:min(1720px, calc(100vw - 20px));padding-left:10px;padding-right:10px}
body.route-mall .mall-frame{height:calc(100vh - 250px);min-height:520px}
@media (max-width:640px){body.route-mall #main{max-width:100%;padding-left:10px;padding-right:10px}body.route-mall .mall-frame{height:calc(100vh - 300px);min-height:420px}}

/* ===== 从云盘选择附件 ===== */
.drive-pick-box{width:min(720px,94vw);max-width:none}
.drive-pick-search{margin-top:10px}
.drive-pick-list{margin-top:10px;max-height:46vh;overflow:auto;display:flex;flex-direction:column;gap:6px}
.drive-pick-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease)}
.drive-pick-row:hover{background:rgba(var(--surface-rgb),.6);border-color:var(--line-2)}
.drive-pick-row.on{background:rgba(var(--accent-rgb),.14);border-color:rgba(var(--accent-rgb),.55)}
.drive-pick-row.added{opacity:.55;cursor:not-allowed}
.drive-pick-row input{pointer-events:none;accent-color:var(--rose)}
.drive-pick-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;color:var(--ink)}
.drive-pick-meta{flex:0 0 auto;font-size:12px;color:var(--faint)}

/* ===== 博主网站：竖向更饱满 + 全屏浏览 ===== */
#view-mall .forum-head{padding:14px 18px}
#view-mall .forum-title{font-size:21px}
#view-mall .forum-head .hint{font-size:12px}
#view-mall .mall-bar{margin-top:10px}
#view-mall .mall-links{margin-top:8px}
.mall-exit{display:none;position:fixed;top:10px;right:10px;z-index:90;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;border:1px solid var(--line-2);background:rgba(var(--surface-rgb),.92);color:var(--ink);font:inherit;font-size:12.5px;cursor:pointer;box-shadow:var(--shadow)}
body.mall-immersive .topbar{display:none}
body.mall-immersive #view-mall .forum-head{display:none}
body.mall-immersive #main{max-width:none;padding:8px}
body.mall-immersive .mall-frame-card{margin:0;padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none}
body.mall-immersive .mall-frame-head{display:none}
body.mall-immersive .mall-frame{height:calc(100vh - 16px)!important;border-radius:10px}
body.mall-immersive .mall-exit{display:inline-flex}

/* ===== 快捷入口：外链标记 ===== */
.mall-chip-out{border-style:dashed}
.mall-out-ico{font-size:11px;opacity:.8}
.mall-chip-proxy{border-style:dotted}

/* ===== 云收款 ===== */
.pay-card{max-width:620px;margin:0 auto;padding:22px}
.pay-quick{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.pay-quick-btn{font:inherit;font-size:12.5px;padding:5px 14px;border-radius:999px;border:1px solid var(--line);background:rgba(var(--surface-rgb),.6);color:var(--ink);cursor:pointer}
.pay-quick-btn:hover{background:var(--surface-hi);border-color:var(--line-2)}
.pay-create{width:100%;margin-top:16px}
.pay-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}
.pay-amount-big{font-size:26px;font-weight:700;color:var(--rose-deep)}
.pay-qr-tabs{display:flex;gap:8px;margin-bottom:10px}
.pay-qr-tab{font:inherit;font-size:12.5px;padding:5px 14px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.pay-qr-tab.active{background:var(--rose);border-color:transparent;color:var(--on-accent)}
.pay-qr-wrap{display:flex;justify-content:center;padding:12px;border-radius:14px;background:rgba(var(--surface-rgb),.55)}
.pay-qr-wrap.hidden{display:none}
.pay-qr-wrap img{width:min(280px,70vw);height:auto;border-radius:10px;background:#fff;padding:8px}
.pay-status{margin-top:14px;text-align:center;font-size:13px;color:var(--muted)}
.pay-status.ok{color:var(--ok)}
.pay-status.warn{color:#c9a24a}
.pay-actions{display:flex;gap:10px;justify-content:center;margin-top:14px;flex-wrap:wrap}
.pay-order-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line);flex-wrap:wrap}
.pay-order-main{flex:1 1 auto;min-width:0}
.pay-order-id{font-size:12px;color:var(--faint)}
.pay-order-amt{font-weight:600;color:var(--rose-deep)}
.pay-badge{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.pay-badge.paid{color:var(--ok);border-color:rgba(155,180,155,.5)}
.pay-badge.pending{color:#c9a24a;border-color:rgba(201,162,74,.5)}
.pay-badge.closed{color:var(--faint)}
.pay-admin-form{display:grid;gap:10px}
.pay-admin-form .row{display:flex;gap:10px;flex-wrap:wrap}
.pay-admin-form .row>*{flex:1 1 180px;min-width:0}
.pay-qr-thumb{width:88px;height:88px;object-fit:contain;border-radius:8px;background:#fff;border:1px solid var(--line)}
.pay-filter{display:flex;gap:8px;margin:12px 0}
.pay-filter button{font:inherit;font-size:12.5px;padding:4px 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.pay-filter button.active{background:var(--rose);border-color:transparent;color:var(--on-accent)}
.nav-label-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:6px 0 12px}

/* ===== 快捷入口可视化编辑 ===== */
.ml-editor{display:grid;gap:8px;margin:6px 0 10px}
.ml-row{display:grid;grid-template-columns:minmax(90px,1fr) minmax(150px,2.2fr) 96px auto;gap:8px;align-items:center}
.ml-row .in{width:100%}
.ml-row .ml-mode{padding:6px 8px}
.ml-row button{padding:4px 10px;line-height:1.2}
.ml-actions{display:flex;gap:8px;margin:0 0 12px}
@media (max-width:720px){.ml-row{grid-template-columns:1fr;gap:6px}.ml-row button{justify-self:start}}

.pay-login-gate{text-align:center;padding:26px 8px}
.pay-login-gate .btn-primary{margin-top:12px}

.pay-login-note{display:inline-block;margin-top:8px;padding:4px 12px;border-radius:999px;font-size:12px;color:#c9a24a;border:1px solid rgba(201,162,74,.45);background:rgba(201,162,74,.08)}

.pay-qr-uri{display:flex;justify-content:center;margin:6px 0 4px}
.pay-qr-uri:empty{display:none}
.pay-qr-uri svg{background:#fff;padding:8px;border-radius:10px}

.pay-notify-log{margin:8px 0 4px;max-height:240px;overflow:auto;border:1px dashed var(--line);border-radius:10px;padding:8px 10px}
.pnl-row{display:grid;grid-template-columns:78px 72px 110px 1fr;gap:8px;font-size:12px;padding:4px 0;border-bottom:1px dashed var(--line)}
.pnl-row:last-child{border-bottom:0}
.pnl-time{color:var(--faint)}
.pnl-amt{color:var(--rose-deep)}
.pnl-res.ok{color:var(--ok)}
.pnl-res.warn{color:#c9a24a}
.pnl-res.bad{color:#d06b6b}
.pnl-text{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== 订单列表 ===== */
#payOrdersList{display:grid;gap:10px}
.ord{display:flex;align-items:center;gap:16px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:rgba(var(--surface-rgb),.45);transition:border-color .18s,background .18s,transform .18s}
.ord:hover{border-color:var(--line-2);background:rgba(var(--surface-rgb),.72);transform:translateY(-1px)}
.ord-amt{min-width:96px;font-size:21px;font-weight:700;letter-spacing:-.02em;color:var(--rose-deep);font-variant-numeric:tabular-nums}
.ord.closed .ord-amt{color:var(--faint);font-weight:600}
.ord-main{flex:1 1 auto;min-width:0}
.ord-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ord-user{font-size:12.5px;color:var(--muted)}
.ord-user.muted{color:var(--faint)}
.ord-badge{font-size:11px;line-height:1;padding:5px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.ord-badge.paid{color:#7fb88a;border-color:rgba(127,184,138,.45);background:rgba(127,184,138,.10)}
.ord-badge.pending{color:#c9a24a;border-color:rgba(201,162,74,.45);background:rgba(201,162,74,.10)}
.ord-badge.closed{color:var(--faint)}
.ord-badge.claim{color:#d08a8a;border-color:rgba(208,138,138,.45);background:rgba(208,138,138,.10)}
.ord-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:11.5px;color:var(--faint)}
.ord-meta code{font-size:11px;letter-spacing:.02em;color:var(--faint);background:transparent;border:0;padding:0}
.ord-note{color:var(--muted);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ord-acts{display:flex;gap:8px;flex:0 0 auto}
.ord-empty{padding:28px 10px;text-align:center;color:var(--faint);font-size:13px}
@media (max-width:680px){.ord{flex-wrap:wrap;gap:10px}.ord-amt{min-width:0;font-size:19px}.ord-acts{width:100%;justify-content:flex-end}}

.drive-badge.drive-dl{color:var(--muted);border-color:var(--line-2)}

/* ===== 多线程下载进度 ===== */
.dl-prog{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:200;width:min(420px,calc(100vw - 32px));
  padding:12px 14px;border-radius:14px;border:1px solid var(--line-2);background:rgba(var(--surface-rgb),.96);
  box-shadow:var(--shadow);backdrop-filter:blur(10px);font-size:12.5px}
.dl-prog.hidden{display:none}
.dl-prog-line{display:flex;justify-content:space-between;gap:10px;color:var(--ink)}
.dl-prog-line span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dl-prog-bar{margin-top:8px;height:6px;border-radius:999px;background:rgba(var(--surface-rgb),.9);border:1px solid var(--line);overflow:hidden}
.dl-prog-bar i{display:block;height:100%;width:0;background:var(--rose);transition:width .2s ease}
.dl-prog-sub{margin-top:6px;color:var(--faint);font-size:11.5px}
.dl-prog.done{opacity:0;transition:opacity .4s ease}

.dl-prog-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.dl-prog-cancel{border:1px solid var(--line-2);background:transparent;color:var(--ink);border-radius:999px;
  font:inherit;font-size:11.5px;padding:3px 10px;cursor:pointer}
.dl-prog-cancel:hover{background:rgba(208,107,107,.12);border-color:rgba(208,107,107,.5);color:#d06b6b}

.v-edit{display:flex;flex-wrap:wrap;gap:8px;align-items:center;width:100%}
.v-edit .in{flex:1 1 160px;min-width:120px}
.v-edit .file-act{flex:0 0 auto}
.music-row.v-editing{background:rgba(var(--surface-rgb),.9)}

/* ===== 视频播放控制条 / 点赞 / 评论 ===== */
.video-card{position:relative}
.v-bigplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:74px;height:74px;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.45);color:#fff;font-size:26px;line-height:1;
  display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5;backdrop-filter:blur(4px)}
.v-bigplay.hidden{display:none}
.v-bar{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;align-items:center;gap:6px;
  padding:8px 10px;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,0));color:#fff}
.v-btn{border:1px solid rgba(255,255,255,.28);background:rgba(0,0,0,.35);color:#fff;border-radius:999px;
  font-size:12px;padding:3px 9px;cursor:pointer;line-height:1.4;text-decoration:none;white-space:nowrap}
.v-btn:hover{background:rgba(255,255,255,.16)}
.v-btn.v-like.on{color:#ff7a9a;border-color:rgba(255,122,154,.7);background:rgba(255,122,154,.15)}
.v-seek{flex:1 1 auto;min-width:80px;accent-color:#ff7a9a;height:4px}
.v-time{font-size:11px;opacity:.85;font-variant-numeric:tabular-nums}
.v-modal{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.v-modal.hidden{display:none}
.v-modal-box{width:min(520px,100%);max-height:78vh;display:flex;flex-direction:column;
  background:rgba(28,24,28,.98);border:1px solid rgba(255,255,255,.12);border-radius:16px;overflow:hidden}
.v-modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.08);color:#fff}
.v-modal-list{flex:1 1 auto;overflow:auto;padding:10px 14px;color:#eee;font-size:13px}
.v-cmt{padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.08)}
.v-cmt-top{display:flex;align-items:center;gap:8px;font-size:12px;opacity:.9}
.v-cmt-time{opacity:.6;font-size:11px}
.v-cmt-body{margin-top:4px;line-height:1.6;word-break:break-word}
.v-modal-form{display:flex;gap:8px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.08)}
.v-modal-form .in{flex:1 1 auto}
.v-modal-form .btn{flex:0 0 auto}

/* 控制条与标题错开 */
.video-card .video-overlay{bottom:54px;padding-bottom:10px}
.video-card .v-bar{background:linear-gradient(to top,rgba(4,6,10,.92),rgba(4,6,10,.55));backdrop-filter:blur(6px)}
@media (max-width:520px){
  .v-bar{gap:4px;padding:6px 8px}
  .v-btn{font-size:11px;padding:2px 7px}
  .v-time{display:none}
}

.video-stats{font-size:12.5px;font-weight:400;color:var(--faint);margin-left:4px}

/* 视频按真实比例显示，去掉大黑边 */
.video-card.ratio-auto{aspect-ratio:auto}
.video-card.ratio-auto .video-el{height:auto;max-height:78vh;object-fit:contain}
.video-card .video-el{background:#0b0d12}

/* 全屏 / 网页全屏 */
.v-full{position:fixed;inset:0;z-index:400;background:#000;display:flex;flex-direction:column}
.v-full.hidden{display:none}
.v-full-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;
  color:#fff;background:linear-gradient(180deg,rgba(0,0,0,.75),transparent)}
.v-full-title{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v-full-acts{display:flex;gap:8px;flex:0 0 auto}
.v-full-body{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:0}
.v-full-body video{width:100%;height:100%;object-fit:contain;background:#000}
.v-full.web-mode{z-index:400}

/* 非全屏时控制条只在鼠标移入视频卡片时出现 */
@media (hover: hover) and (pointer: fine) {
  .video-card .v-bar{opacity:0;transform:translateY(8px);pointer-events:none;
    transition:opacity .18s ease, transform .18s ease}
  .video-card:hover .v-bar,
  .video-card:focus-within .v-bar{opacity:1;transform:none;pointer-events:auto}
  .video-card .video-overlay{transition:opacity .18s ease}
  .video-card:hover .video-overlay,
  .video-card:focus-within .video-overlay{opacity:1}
}
@media (hover: none) {
  .video-card .v-bar{opacity:1;transform:none;pointer-events:auto}
}

/* 标题与音量条同样只在鼠标移入时出现 */
@media (hover: hover) and (pointer: fine) {
  .video-card .video-overlay{opacity:0;pointer-events:none;
    transition:opacity .18s ease}
  .video-card:hover .video-overlay,
  .video-card:focus-within .video-overlay{opacity:1;pointer-events:auto}
}
@media (hover: none) {
  .video-card .video-overlay{opacity:1;pointer-events:auto}
}

/* 控制条 / 标题背景透明，不再压暗画面 */
.video-card .v-bar{background:transparent!important;backdrop-filter:none!important;
  text-shadow:0 1px 3px rgba(0,0,0,.85)}
.video-card .video-overlay{background:none!important;text-shadow:0 1px 3px rgba(0,0,0,.85)}
.video-card .v-btn{background:rgba(0,0,0,.42);border-color:rgba(255,255,255,.22)}
.video-card .video-sound-box{background:rgba(0,0,0,.42)}

.v-sound-hint{position:absolute;left:50%;bottom:64px;transform:translateX(-50%);z-index:8;
  border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.6);color:#fff;border-radius:999px;
  font-size:12px;padding:6px 12px;cursor:pointer;backdrop-filter:blur(4px)}
.v-sound-hint:hover{background:rgba(0,0,0,.75)}

/* 全屏自定义控制条：透明底，不压暗画面 */
.v-full-bar{position:absolute;left:0;right:0;bottom:0;z-index:5;display:flex;align-items:center;gap:8px;
  padding:12px 16px;background:transparent;opacity:0;transform:translateY(10px);
  transition:opacity .2s ease, transform .2s ease;pointer-events:none}
.v-full-bar.show{opacity:1;transform:none;pointer-events:auto}
.v-full-bar .v-seek{padding:0}
.v-full-bar .v-vol{flex:0 0 90px;min-width:70px}
.v-full-bar .v-time{text-shadow:0 1px 3px rgba(0,0,0,.85)}
.v-full .v-btn{text-shadow:0 1px 2px rgba(0,0,0,.7)}
.v-full-body{cursor:pointer}

.video-views{font-size:12px;color:#fff;opacity:.85;text-shadow:0 1px 3px rgba(0,0,0,.8);margin-top:2px}

.ml-rate-label{display:inline-flex;align-items:center;gap:6px;margin-left:8px}
.ml-rate{width:90px;height:28px;padding:2px 8px}
.ml-progress{margin-top:10px;display:flex;align-items:center;gap:10px}
.ml-progress.hidden{display:none}
.ml-progress-bar{flex:1 1 auto;height:8px;border-radius:999px;background:rgba(var(--surface-rgb),.9);
  border:1px solid var(--line);overflow:hidden}
.ml-progress-bar i{display:block;height:100%;width:0;background:var(--rose);transition:width .25s ease}
.ml-progress-text{font-size:12px;color:var(--faint);white-space:nowrap}

.cdn-preheat-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}

.drive-mode{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;
  font-size:12px;border:1px solid var(--line-2);color:var(--faint);white-space:nowrap}
.drive-mode.cdn{color:#ff8fb1;border-color:rgba(255,143,177,.55);background:rgba(255,143,177,.08)}
.drive-mode::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.85}

.drive-mode-tip{margin:10px 0 0;padding:8px 12px;border-radius:10px;font-size:12.5px;line-height:1.7;
  background:rgba(255,143,177,.07);border:1px solid rgba(255,143,177,.25);color:var(--faint)}
.drive-mode-tip b{color:#ff9dbb;font-weight:600}

.cdn-preheat-bar{margin:10px 0 4px;height:10px;border-radius:999px;overflow:hidden;
  background:rgba(var(--surface-rgb),.85);border:1px solid rgba(255,143,177,.35)}
.cdn-preheat-bar.hidden{display:none}
.cdn-preheat-bar i{display:block;height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,#ff8fb1,#ff5c8a);box-shadow:0 0 10px rgba(255,143,177,.6);
  transition:width .4s ease}
#cdnPreheatStatus{font-size:13px;color:var(--ink);font-weight:500}
#cdnPreheatStatus.done{color:#7ed6a5}

.zip-preview-head{padding:10px 14px;font-size:13px;color:var(--faint);border-bottom:1px solid var(--line)}
.zip-preview-head b{color:var(--ink)}
.zip-preview-wrap{max-height:60vh;overflow:auto}
table.zip-preview{width:100%;border-collapse:collapse;font-size:13px}
table.zip-preview th,table.zip-preview td{padding:7px 12px;text-align:left;border-bottom:1px solid var(--line)}
table.zip-preview th{position:sticky;top:0;background:rgba(20,16,24,.96);color:var(--faint);font-weight:500;z-index:1}
table.zip-preview tr:hover td{background:rgba(255,255,255,.03)}
.zip-name{max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zip-size{white-space:nowrap;color:var(--faint)}
.zip-enc{white-space:nowrap;color:#ff9dbb;font-size:12px}

.bg-confirm{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 4px;
  padding:10px 12px;border-radius:12px;border:1px solid rgba(255,143,177,.4);
  background:rgba(255,143,177,.07)}
.bg-confirm.hidden{display:none}
.bg-confirm .hint{flex:1 1 260px;min-width:200px}

.bg-layer[data-fit="contain"]{background-size:contain;background-color:#000}
.bg-layer[data-fit="contain"]::before{content:"";position:absolute;inset:-60px;background:inherit;
  background-size:cover;background-position:center;filter:blur(30px) brightness(.75) saturate(1.15);z-index:-1}
