/* forum_password */
.forum-password-form{max-width:680px;margin:auto}.forum-password-admin-wrap{display:grid;gap:14px}.forum-password-list{display:grid;gap:8px;padding:14px;border:1px solid var(--line-soft);border-radius:10px;background:var(--panel)}.forum-password-list article{display:grid;gap:6px;padding:10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--bg)}.forum-password-list span{color:var(--text-muted);font-size:var(--font-size-sm)}.forum-password-list form{display:flex}
/* official_notifications */
.official-notifications-nav{position:relative;display:inline-flex;flex:0 0 30px;align-items:center;justify-content:center;box-sizing:border-box;width:30px;height:30px;min-height:30px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text-muted)}.official-notifications-nav svg{width:17px;height:17px;flex:0 0 17px}.official-notifications-nav:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.official-notifications-nav:focus-visible{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}.official-notifications-nav.has-unread:after{content:"";position:absolute;right:3px;top:2px;width:7px;height:7px;border:2px solid var(--panel);border-radius:50%;background:var(--danger)}.official-notifications-row{grid-template-columns:minmax(0,1fr) auto}.official-notifications-row.is-read{opacity:.65}.official-notifications-row.is-unread{box-shadow:inset 3px 0 var(--brand)}.official-notifications-admin-body{padding:14px}.official-notifications-form{display:grid;gap:10px;max-width:720px}@media(max-width:720px){.official-notifications-nav{flex-basis:28px;width:28px;height:28px;min-height:28px;border:0;background:transparent;color:var(--text-subtle)}.official-notifications-nav svg{width:24px;height:24px;flex-basis:24px}.official-notifications-nav:hover{background:var(--bg);color:var(--text)}.official-notifications-row{grid-template-columns:1fr}}
/* post_img_limit */
.post-content img{max-width:min(350px,100%);height:auto}
/* reply_visible */
.reply-visible-editor-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 10px}.reply-visible-editor-button{min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.reply-visible-editor-button:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.reply-visible-editor-button:focus-visible,.reply-visible-action:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.reply-visible-editor-note{color:var(--text-subtle);font-size:var(--font-size-xs)}.reply-visible-content{display:grid;gap:12px}.reply-visible-content>p{margin:0}.reply-visible-card{display:grid;gap:10px;margin:2px 0;padding:14px;border:1px dashed var(--brand);border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--text)}.reply-visible-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.reply-visible-card-head strong{font-size:var(--font-size-md)}.reply-visible-card-head span{color:var(--text-muted);font-size:var(--font-size-xs)}.reply-visible-card-message{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}.reply-visible-action{display:inline-flex;align-items:center;justify-content:center;justify-self:start;min-height:32px;padding:0 10px;border:1px solid var(--brand);border-radius:var(--radius-sm);background:var(--panel);color:var(--brand);font-size:var(--font-size-sm);font-weight:600}.reply-visible-card .reply-visible-action:hover{background:var(--brand);color:var(--inverse-text)}.reply-visible-action.reply-visible-action-disabled{border-color:var(--line);background:var(--bg);color:var(--text-disabled);cursor:not-allowed}.reply-visible-action.reply-visible-action-disabled:hover{background:var(--bg);color:var(--text-disabled)}.reply-visible-admin{display:grid;gap:12px}.reply-visible-admin-warning{margin:0;padding:10px 12px;border:1px solid var(--warning);border-radius:var(--radius-sm);background:var(--warning-soft);color:var(--warning);font-size:var(--font-size-sm);line-height:1.6}.reply-visible-admin-hint{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}.reply-visible-admin-field textarea{min-height:96px;resize:vertical}.reply-visible-admin-example{padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:var(--font-size-sm)}.reply-visible-admin-example strong{display:block;margin-bottom:6px}.reply-visible-admin-example pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.reply-visible-admin-actions{margin:0}@media(max-width:600px){.reply-visible-editor-tools{align-items:flex-start}.reply-visible-editor-note{flex-basis:100%}.reply-visible-card{padding:12px}.reply-visible-card-head{align-items:flex-start;flex-direction:column;gap:3px}.reply-visible-action{width:100%}}
/* site_logo */
.brand{background-image:var(--site-logo-image,none);background-repeat:no-repeat;background-position:left center;background-size:contain;width:var(--site-logo-width,auto);max-width:100%;height:var(--site-logo-height,auto);font-size:var(--site-logo-brand-font-size,var(--font-size-lg))}.brand:before{background-image:var(--site-logo-icon-image,url("index.svg"));display:var(--site-logo-icon-display,inline-block)}.bar{grid-template-rows:var(--site-logo-bar-row,48px)}@media(prefers-color-scheme:dark){.brand{background-image:var(--site-logo-image-dark,var(--site-logo-image,none))}}html[data-site-logo-scheme="light"] .brand{background-image:var(--site-logo-image,none)}html[data-site-logo-scheme="dark"] .brand{background-image:var(--site-logo-image-dark,var(--site-logo-image,none))}@media(max-width:720px){.bar{height:var(--site-logo-bar-height,44px)}.brand{width:var(--site-logo-width-mobile,auto);height:var(--site-logo-height-mobile,auto)}.brand:before{display:none}}.site-logo-row{margin:0 0 18px}.site-logo-row:last-child{margin-bottom:0}.site-logo-field{min-width:0}.site-logo-thumb{position:relative;display:inline-flex;align-items:center;justify-content:center;width:120px;height:78px;padding:6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.site-logo-thumb-dark{border-color:var(--inverse-border);background:var(--inverse)}.site-logo-thumb-empty{color:var(--text-subtle);font-size:var(--font-size-sm)}.site-logo-thumb img{max-width:100%;max-height:100%}.site-logo-clear{position:absolute;top:-9px;right:-9px;display:inline-flex;align-items:center;justify-content:center;width:22px;min-width:22px;min-height:22px;padding:0;border:0;border-radius:50%;background:var(--danger);color:var(--inverse-text);font-size:var(--font-size-sm);line-height:1}.site-logo-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.site-logo-url{flex:1 1 240px;min-width:0;max-width:450px}.site-logo-controls button{flex:0 0 auto;min-width:64px}.site-logo-tip{display:block;margin-top:6px;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
/* user_files */
/*
 * 用户文件中心
 */

.user-files-page .user-files-profile-toolbar{
    margin-bottom:12px;
}

.user-files-page .user-files-panel{
    min-width:0;
}

.user-files-page .user-files-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    margin-bottom:10px;
}

.user-files-page .user-files-heading{
    min-width:0;
    display:flex;
    align-items:center;
    gap:10px;
}

.user-files-page .user-files-heading-icon{
    display:grid;
    place-items:center;
    width:40px;
    height:40px;
    flex:0 0 auto;
    border:1px solid var(--line-soft);
    border-radius:var(--radius-sm);
    background:var(--panel);
    color:var(--brand);
}

.user-files-page .user-files-heading-icon .meta-icon{
    width:19px;
    height:19px;
}

.user-files-page .user-files-heading h1{
    margin:0;
    font-size:var(--font-size-lg);
}

.user-files-page .user-files-heading p{
    margin:3px 0 0;
    color:var(--text-muted);
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-search{
    min-width:280px;
    display:flex;
    align-items:center;
    gap:6px;
}

.user-files-page .user-files-search input{
    min-width:0;
    flex:1;
}

.user-files-page .user-files-search a{
    color:var(--text-muted);
    white-space:nowrap;
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-toolbar{
    margin-bottom:9px;
}

.user-files-page .user-files-filter-tabs{
    margin:0;
}

.user-files-page .user-files-list{
    display:grid;
    gap:7px;
}

.user-files-page .user-files-item{
    min-width:0;
    display:grid;
    grid-template-columns:56px minmax(0,1fr) auto;
    align-items:center;
    gap:11px;
    padding:10px;
    border:1px solid var(--line-soft);
    border-radius:var(--radius-sm);
    background:var(--bg);
    transition:border-color .15s ease,background .15s ease;
}

.user-files-page .user-files-item:hover{
    border-color:var(--line);
    background:var(--panel);
}

.user-files-page .user-files-preview{
    min-width:0;
}

.user-files-page .user-files-thumb,
.user-files-page .user-files-file-icon{
    display:grid;
    place-items:center;
    width:56px;
    height:56px;
    overflow:hidden;
    border-radius:var(--radius-sm);
    background:var(--panel);
    color:var(--text-muted);
}

.user-files-page .user-files-thumb img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.user-files-page .user-files-file-icon{
    font-size:var(--font-size-xxs);
    font-weight:700;
}

.user-files-page .user-files-info{
    min-width:0;
    display:grid;
    gap:3px;
}

.user-files-page .user-files-name{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:var(--font-size-sm);
}

.user-files-page .user-files-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:5px;
    color:var(--text-muted);
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-reference-line{
    min-height:16px;
}

.user-files-page .user-files-reference-count{
    color:var(--brand);
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-reference-count-empty{
    color:var(--text-subtle);
}

.user-files-page .user-files-more{
    margin-top:2px;
    color:var(--text-subtle);
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-more summary{
    cursor:pointer;
    width:max-content;
}

.user-files-recent-mobile-bottom{
    display:none;
}
.user-files-recent-mobile-bottom .user-files-recent-sidebar{
    margin-top:12px;
}
.user-files-recent-notify{margin-top:12px;}
.user-files-recent-notify .user-files-recent-sidebar{padding:10px;}


.user-files-page .user-files-detail-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
    margin-top:7px;
}
.user-files-page .user-files-detail-grid>div:last-child{
    grid-column:1 / -1;
}

.user-files-page .user-files-detail-grid>div{
    min-width:0;
    display:grid;
    gap:2px;
    padding:7px 8px;
    border:1px solid var(--line-soft);
    border-radius:var(--radius-sm);
    background:var(--panel);
}

.user-files-page .user-files-detail-grid span{
    color:var(--text-subtle);
    font-size:var(--font-size-xxs);
}

.user-files-page .user-files-detail-grid strong{
    min-width:0;
    overflow-wrap:anywhere;
    color:var(--text-muted);
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-detail-grid code{
    overflow-wrap:anywhere;
}
@media(max-width:700px){
    .user-files-page .user-files-detail-grid{
        grid-template-columns:1fr;
    }
    .user-files-page .user-files-detail-grid>div:last-child{
        grid-column:auto;
    }
}

.user-files-page .user-files-copy-button{
    flex:0 0 auto;
    min-height:28px;
    padding:4px 9px;
    border:1px solid var(--line-soft);
    border-radius:var(--radius-sm);
    background:var(--bg);
    color:var(--text);
    font-size:var(--font-size-xs);
    cursor:pointer;
}
.user-files-page .user-files-copy-button:hover{border-color:var(--brand);color:var(--brand);}

.user-files-page .user-files-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    white-space:nowrap;
}

.user-files-page .user-files-actions a{
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-actions form{
    margin:0;
}

.user-files-page .user-files-delete{
    padding:4px;
    border:0;
    background:transparent;
    color:var(--danger);
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-empty{
    display:grid;
    justify-items:center;
    gap:5px;
    padding:45px 12px;
    text-align:center;
    color:var(--text-muted);
}

.user-files-page .user-files-empty-icon{
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    margin-bottom:3px;
    border-radius:50%;
    background:var(--panel);
    color:var(--text-subtle);
}

.user-files-page .user-files-empty-icon .meta-icon{
    width:19px;
    height:19px;
}

.user-files-page .user-files-empty strong{
    color:var(--text);
    font-size:var(--font-size-md);
}

.user-files-page .user-files-empty span{
    max-width:420px;
    font-size:var(--font-size-xs);
}


/*
 * 引用位置
 */

.user-files-page .user-files-reference-nav{
    margin-bottom:10px;
}

.user-files-page .user-files-reference-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:10px;
    margin-bottom:9px;
    border:1px solid var(--line-soft);
    border-radius:var(--radius-sm);
    background:var(--bg);
}

.user-files-page .user-files-reference-file{
    min-width:0;
    display:flex;
    align-items:center;
    gap:10px;
}

.user-files-page .user-files-reference-file-icon{
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    flex:0 0 auto;
    overflow:hidden;
    border-radius:var(--radius-sm);
    background:var(--panel);
    color:var(--brand);
}

.user-files-page .user-files-reference-file-icon img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.user-files-page .user-files-reference-file-icon .meta-icon{
    width:18px;
    height:18px;
}

.user-files-page .user-files-reference-file-info{
    min-width:0;
    display:grid;
    gap:2px;
}

.user-files-page .user-files-reference-file-info strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:var(--font-size-sm);
}

.user-files-page .user-files-reference-file-info span{
    color:var(--text-muted);
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-download{
    white-space:nowrap;
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-reference-summary{
    margin:4px 0 8px;
    color:var(--text-muted);
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-reference-summary strong{
    color:var(--text);
}

.user-files-page .user-files-reference-list{
    display:grid;
    gap:7px;
}

.user-files-page .user-files-reference-item{
    min-width:0;
    display:grid;
    grid-template-columns:36px minmax(0,1fr) auto;
    align-items:center;
    gap:10px;
    padding:9px 10px;
    border:1px solid var(--line-soft);
    border-radius:var(--radius-sm);
    background:var(--bg);
}

.user-files-page .user-files-reference-icon{
    display:grid;
    place-items:center;
    width:36px;
    height:36px;
    border-radius:var(--radius-sm);
    background:var(--brand-soft);
    color:var(--brand);
    font-size:var(--font-size-xs);
    font-weight:700;
}

.user-files-page .user-files-reference-body{
    min-width:0;
    display:grid;
    gap:3px;
}

.user-files-page .user-files-reference-top{
    min-width:0;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
}

.user-files-page .user-files-reference-type{
    color:var(--brand);
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-reference-forum{
    color:var(--text-subtle);
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-reference-title{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:var(--font-size-sm);
}

.user-files-page .user-files-reference-title-disabled{
    color:var(--text-muted);
}

.user-files-page .user-files-reference-meta{
    color:var(--text-muted);
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-reference-go{
    white-space:nowrap;
    font-size:var(--font-size-xs);
}

.user-files-page .user-files-reference-go-disabled{
    color:var(--text-disabled);
}

.user-files-page .user-files-back{
    margin-top:11px;
}

.user-files-page .user-files-back a{
    color:var(--text-muted);
    font-size:var(--font-size-xs);
}


/*
 * 文件预览
 */
.user-files-preview-page{
    min-width:0;
}
.user-files-preview-card{
    min-width:0;
    overflow:hidden;
    border:1px solid var(--line-soft);
    border-radius:var(--radius-sm);
    background:var(--bg);
}
.user-files-preview-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:11px 12px;
    border-bottom:1px solid var(--line-soft);
}
.user-files-preview-title{
    min-width:0;
}
.user-files-preview-title strong{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.user-files-preview-title span{
    display:block;
    margin-top:3px;
    color:var(--text-muted);
    font-size:var(--font-size-xs);
}
.user-files-preview-body{
    display:grid;
    place-items:center;
    min-height:280px;
    padding:12px;
}
.user-files-preview-body img{
    display:block;
    max-width:100%;
    max-height:70vh;
    height:auto;
    object-fit:contain;
}
.user-files-preview-body iframe{
    display:block;
    width:100%;
    height:72vh;
    min-height:420px;
    border:0;
    background:#fff;
}
.user-files-preview-body audio{
    width:min(680px,100%);
}
.user-files-preview-body video{
    display:block;
    width:min(100%,960px);
    max-height:72vh;
}
.user-files-preview-code{
    width:100%;
    max-height:70vh;
    overflow:auto;
    margin:0;
    padding:12px;
    box-sizing:border-box;
    border:1px solid var(--line-soft);
    border-radius:var(--radius-sm);
    background:var(--panel);
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
    font-size:12px;
    line-height:1.6;
    text-align:left;
}
.user-files-preview-foot{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:8px;
    flex-wrap:wrap;
    padding:10px 12px;
    border-top:1px solid var(--line-soft);
}
@media(max-width:700px){
    .user-files-preview-head{
        align-items:flex-start;
        flex-direction:column;
    }
    .user-files-preview-body{
        min-height:220px;
        padding:8px;
    }
    .user-files-preview-body iframe{
        height:65vh;
        min-height:320px;
    }
    .user-files-preview-body video{
        max-height:55vh;
    }
    .user-files-preview-foot{
        justify-content:stretch;
    }
    .user-files-preview-foot a,
    .user-files-preview-foot button{
        flex:1 1 auto;
        text-align:center;
    }
}

.user-files-folders{margin:0 0 12px;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);}
.user-files-folders-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
.user-files-folders-head>div{display:grid;gap:2px;min-width:0;}
.user-files-folders-head strong{font-size:var(--font-size-sm);}
.user-files-folders-head span{color:var(--text-muted);font-size:var(--font-size-xxs);}
.user-files-folder-create-form{display:flex;gap:6px;min-width:0;}
.user-files-folder-create-form input{width:150px;min-width:0;padding:6px 8px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);}
.user-files-folder-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;}
.user-files-folder-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;min-width:0;padding:8px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);}
.user-files-folder-card-active{border-color:var(--brand);}
.user-files-folder-main{display:flex;align-items:center;gap:8px;min-width:0;text-decoration:none;}
.user-files-folder-icon,.user-files-recent-folder-icon{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border-radius:var(--radius-sm);background:var(--bg);color:var(--brand);}
.user-files-folder-icon .meta-icon,.user-files-recent-folder-icon .meta-icon{width:17px;height:17px;}
.user-files-folder-copy{display:grid;min-width:0;gap:2px;}
.user-files-folder-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-xs);}
.user-files-folder-copy small{color:var(--text-muted);font-size:var(--font-size-xxs);}
.user-files-folder-actions{display:flex;align-items:flex-start;gap:4px;}
.user-files-folder-actions form{margin:0;}
.user-files-folder-actions button,.user-files-folder-menu summary{padding:3px 5px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);font-size:var(--font-size-xxs);cursor:pointer;}
.user-files-folder-menu{position:relative;}
.user-files-folder-menu summary{list-style:none;}
.user-files-folder-menu summary::-webkit-details-marker{display:none;}
.user-files-folder-menu-body{position:absolute;right:0;z-index:5;display:grid;gap:7px;width:210px;margin-top:4px;padding:8px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);box-shadow:var(--shadow-sm);}
.user-files-folder-menu-body form{display:grid;gap:5px;}
.user-files-folder-menu-body input{min-width:0;padding:6px 7px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);}
.user-files-folder-menu-body button{width:100%;}
.user-files-folders-empty{color:var(--text-muted);font-size:var(--font-size-xs);}
.user-files-current-folder{display:flex;align-items:center;gap:7px;margin:0 0 9px;color:var(--text-muted);font-size:var(--font-size-xs);}
.user-files-current-folder strong{color:var(--text);}
.user-files-upload-folder{margin-bottom:10px;}
.user-files-folder-select{display:flex;align-items:center;gap:8px;font-size:var(--font-size-xs);}
.user-files-folder-select span{color:var(--text-muted);white-space:nowrap;}
.user-files-folder-select select{min-width:180px;padding:6px 8px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);}
.user-files-page .user-files-move-form{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;padding:8px 0 1px;border-top:1px dashed var(--line-soft);}
.user-files-page .user-files-move-form label{display:flex;align-items:center;gap:5px;min-width:0;color:var(--text-muted);font-size:var(--font-size-xxs);}
.user-files-page .user-files-move-form select{max-width:220px;min-width:150px;padding:4px 7px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);}
.user-files-page .user-files-move-form button{padding:4px 8px;font-size:var(--font-size-xxs);}
.user-files-recent-pinned{display:grid;gap:6px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--line-soft);}
.user-files-recent-folder{min-width:0;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);overflow:hidden;}
.user-files-recent-folder>summary{display:flex;align-items:center;gap:5px;min-width:0;padding:6px 7px;cursor:pointer;list-style:none;font-size:var(--font-size-xxs);}
.user-files-recent-folder>summary::-webkit-details-marker{display:none;}
.user-files-recent-folder-icon{display:grid;place-items:center;flex:0 0 auto;width:22px;height:22px;border-radius:var(--radius-sm);background:var(--bg);}
.user-files-recent-folder-icon .meta-icon{width:13px;height:13px;}
.user-files-recent-folder-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.user-files-recent-folder-arrow{margin-left:auto;color:var(--text-subtle);transition:transform .15s ease;}
.user-files-recent-folder[open] .user-files-recent-folder-arrow{transform:rotate(180deg);}
.user-files-recent-folder-body{display:grid;gap:6px;padding:0 7px 7px;}
.user-files-recent-folder-files{display:grid;gap:4px;}
.user-files-recent-folder-file{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0;padding:5px 0;border-top:1px solid var(--line-soft);}
.user-files-recent-folder-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-xxs);}
.user-files-recent-folder-file-actions{display:flex;align-items:center;gap:6px;white-space:nowrap;}
.user-files-recent-folder-file-actions a,.user-files-recent-folder-file-actions button,.user-files-recent-folder-open{padding:0;border:0;background:none;color:var(--brand);font-size:var(--font-size-xxs);cursor:pointer;text-decoration:none;}
.user-files-recent-folder-empty{padding:4px 0;color:var(--text-muted);font-size:var(--font-size-xxs);}
.user-files-recent-folder-open{display:inline-block;padding-top:2px;}
.user-files-head-actions{display:flex;align-items:center;gap:8px;min-width:0;}
.user-files-upload-button{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:var(--font-size-xs);}
.user-files-upload-button .meta-icon{width:15px;height:15px;}
.user-files-upload-card{min-width:0;padding:14px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);}
.user-files-upload-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px;}
.user-files-upload-head h1{margin:0;font-size:var(--font-size-lg);}
.user-files-upload-head p{margin:4px 0 0;color:var(--text-muted);font-size:var(--font-size-xs);}
.user-files-upload-drop{display:grid;justify-items:center;gap:7px;padding:34px 16px;border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--panel);text-align:center;cursor:pointer;}
.user-files-upload-drop input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.user-files-upload-drop strong{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);}
.user-files-upload-drop .meta-icon{width:20px;height:20px;}
.user-files-upload-drop small{max-width:620px;color:var(--text-muted);font-size:var(--font-size-xs);}
.user-files-upload-actions{display:flex;align-items:center;gap:9px;margin-top:10px;}
.user-files-upload-actions button{min-width:96px;}
.user-files-upload-actions span{color:var(--text-muted);font-size:var(--font-size-xs);}
.user-files-upload-result{display:grid;gap:6px;margin-top:10px;padding:9px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);font-size:var(--font-size-xs);}
.user-files-upload-result-item{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:6px 0;border-bottom:1px solid var(--line-soft);}
.user-files-upload-result-item:last-of-type{border-bottom:0;}
.user-files-upload-result-item strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;}
.user-files-upload-result-item button{flex:0 0 auto;padding:3px 7px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);color:var(--brand);font-size:var(--font-size-xxs);cursor:pointer;}
.user-files-upload-result-back{justify-self:start;margin-top:2px;font-size:var(--font-size-xs);}
.user-files-direct-upload-result{display:grid;gap:6px;width:min(100%,520px);margin-top:8px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);font-size:var(--font-size-xs);}
.user-files-direct-upload-title{color:var(--text-muted);}
.user-files-head-actions>input[type="file"]{display:none;}
.user-files-upload-button{border:0;background:none;padding:0;color:inherit;cursor:pointer;font:inherit;}
.user-files-upload-button:disabled{opacity:.55;cursor:wait;}
.user-files-path-row{display:flex;align-items:center;gap:6px;min-width:0;}
.user-files-path-row code{min-width:0;flex:1;overflow-wrap:anywhere;white-space:normal;}
.user-files-path-row button,.user-files-admin-stored button{flex:0 0 auto;padding:3px 7px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);font-size:var(--font-size-xxs);cursor:pointer;}
.user-files-admin-stored{display:flex;align-items:center;gap:6px;min-width:0;margin-top:5px;}
.user-files-admin-stored code{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media(max-width:700px){
    .user-files-head-actions{width:100%;align-items:stretch;flex-direction:column;}
    .user-files-head-actions .user-files-search{min-width:0;width:100%;}
    .user-files-upload-button{justify-content:center;padding:8px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);}
    .user-files-upload-head{flex-direction:column;}
    .user-files-upload-head>a{align-self:flex-start;}
    .user-files-upload-drop{padding:28px 12px;}
    .user-files-path-row{align-items:stretch;flex-direction:column;}
    .user-files-path-row button{width:100%;}
    .user-files-admin-stored{align-items:stretch;flex-direction:column;}
    .user-files-admin-stored code{white-space:normal;overflow-wrap:anywhere;}
    .user-files-admin-stored button{width:100%;}
}


/* 最近文件侧边卡片 */
.user-files-recent-sidebar{min-width:0;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);}
.user-files-recent-sidebar .sidebar-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px;}
.user-files-recent-sidebar .sidebar-card-head strong{font-size:var(--font-size-sm);}
.user-files-recent-sidebar .sidebar-card-head a{color:var(--text-muted);font-size:var(--font-size-xs);}
.user-files-recent-list{display:grid;gap:8px;}
.user-files-recent-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;min-width:0;padding-bottom:8px;border-bottom:1px solid var(--line-soft);}
.user-files-recent-item:last-child{padding-bottom:0;border-bottom:0;}
.user-files-recent-thumb,.user-files-recent-icon{display:grid;place-items:center;width:38px;height:38px;overflow:hidden;border-radius:var(--radius-sm);background:var(--panel);color:var(--text-muted);font-size:9px;font-weight:700;}
.user-files-recent-thumb img{display:block;width:100%;height:100%;object-fit:cover;}
.user-files-recent-main{min-width:0;display:grid;gap:2px;}
.user-files-recent-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-xs);}
.user-files-recent-meta{color:var(--text-muted);font-size:var(--font-size-xxs);}
.user-files-recent-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px;}
.user-files-recent-actions a,.user-files-recent-actions button{padding:0;border:0;background:none;color:var(--brand);font-size:var(--font-size-xxs);cursor:pointer;text-decoration:none;}
.user-files-recent-empty{color:var(--text-muted);font-size:var(--font-size-xs);}

/*
 * 移动端
 *
 * 这里不复制核心 mobile menu。
 * user.menu_links 已经被核心 mobile_menu_content_html()
 * 复用，所以“我的文件”会自动进入移动端菜单。
 */



/* 管理后台增强 */
.user-files-page .user-files-admin-tabs{margin-bottom:14px;}
.user-files-page .user-files-admin-summary-grid,
.user-files-admin-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.user-files-admin-quick-panel,.user-files-admin-settings,.user-files-admin-large-files{margin-bottom:14px;}
.user-files-admin-setting-field{display:grid;gap:5px;margin-top:12px;max-width:760px;}
.user-files-admin-setting-field>span{font-size:var(--font-size-xs);color:var(--text-muted);}
.user-files-admin-setting-field input{width:100%;min-width:0;}
.user-files-admin-setting-field small{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.5;}
.user-files-admin-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px;}
.user-files-admin-quick{display:grid;gap:3px;min-width:0;padding:11px 12px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);text-decoration:none;}
.user-files-admin-quick:hover{background:var(--panel);border-color:var(--line);}
.user-files-admin-quick strong{font-size:var(--font-size-sm);}
.user-files-admin-quick span{color:var(--text-muted);font-size:var(--font-size-xs);}
.user-files-admin-setting-form{display:grid;grid-template-columns:minmax(280px,1.05fr) minmax(320px,1.25fr) auto;align-items:start;gap:14px;padding:12px;}
.user-files-admin-setting-form>.user-files-admin-switch{min-height:52px;padding:8px 0;}
.user-files-admin-setting-form>.user-files-admin-setting-field{margin-top:0;}
.user-files-admin-setting-form>button{align-self:center;white-space:nowrap;}
.user-files-admin-switch{display:flex;align-items:flex-start;gap:9px;min-width:0;flex:1;}
.user-files-admin-switch input{margin-top:3px;flex:0 0 auto;}
.user-files-admin-switch span{display:grid;gap:3px;min-width:0;}
.user-files-admin-switch small{color:var(--text-muted);font-size:var(--font-size-xs);}
.user-files-admin-ranking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;}
.user-files-admin-ranking{min-width:0;}
.user-files-admin-ranking ol{margin:0;padding:0 12px 12px;list-style:none;display:grid;gap:5px;}
.user-files-admin-ranking li{min-width:0;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:var(--font-size-xs);}
.user-files-admin-ranking li:last-child{border-bottom:0;}
.user-files-admin-rank{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--panel);color:var(--text-muted);}
.user-files-admin-rank-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.user-files-admin-ranking li>span:last-child{color:var(--text-muted);white-space:nowrap;}
.user-files-admin-context{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px;padding:9px 11px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);font-size:var(--font-size-xs);}
.user-files-admin-context a{margin-left:auto;}
.user-files-admin-stored{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:8px;
    margin-top:7px;
    padding:8px 9px;
    border:1px solid var(--line-soft);
    border-radius:var(--radius-sm);
    background:var(--panel);
}
.user-files-admin-stored code{
    min-width:0;
    overflow-wrap:anywhere;
    word-break:break-all;
    color:var(--text-muted);
    font-size:11px;
    line-height:1.5;
}
.user-files-admin-stored button{
    min-height:30px;
    padding:5px 10px;
    border:1px solid var(--line-soft);
    border-radius:var(--radius-sm);
    background:var(--bg);
    color:var(--text);
    font-size:var(--font-size-xs);
    white-space:nowrap;
    cursor:pointer;
}
.user-files-admin-stored button:hover{border-color:var(--brand);color:var(--brand);}
@media(max-width:700px){
    .user-files-admin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    .user-files-admin-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:700px){
    .user-files-admin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
    .user-files-admin-summary-grid>div{padding:10px;}
    .user-files-admin-summary-grid strong{font-size:17px;}
    .user-files-admin-quick-grid{grid-template-columns:1fr;padding:9px;}
    .user-files-admin-setting-form{display:flex;align-items:flex-start;flex-direction:column;}
    .user-files-admin-ranking-grid{grid-template-columns:1fr;gap:9px;}
    .user-files-admin-ranking li{grid-template-columns:26px minmax(0,1fr);}
    .user-files-admin-ranking li>span:last-child{grid-column:2;white-space:normal;}
    .user-files-admin-filter-grid,.user-files-admin-user-filters .user-files-admin-filter-grid{grid-template-columns:1fr;}
    .user-files-admin-filter-wide{grid-column:auto;}
    .user-files-admin-context a{width:100%;margin-left:0;}
}


@media (max-width:700px){
    .user-files-folders-head{align-items:stretch;flex-direction:column;}
    .user-files-folder-create-form{width:100%;}
    .user-files-folder-create-form input{flex:1;width:auto;}
    .user-files-folder-list{grid-template-columns:1fr;}
    .user-files-folder-menu-body{position:static;width:auto;margin-top:5px;}
    .user-files-folder-actions{align-items:flex-start;}
    .user-files-folder-select{align-items:flex-start;flex-direction:column;}
    .user-files-folder-select select{width:100%;min-width:0;}
}

@media (max-width: 720px){
    .user-files-recent-mobile-bottom{
        display:block;
    }
}

.sidebar-bio{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.65}
/* video_player */
.bbs-video-wrap{
    margin:16px 0;
}
/* PC端：高度固定400px */
.bbs-video-player{
    width:100%;
    height:400px;
    border-radius:8px;
    background:#000000;
    object-fit:contain;
}
.bbs-video-iframe-wrap{
    position:relative;
    width:100%;
    height:400px;
    margin:16px 0;
    border-radius:8px;
    overflow:hidden;
}
.bbs-video-iframe-wrap iframe{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    border:0;
}
/* YouTube 点击加载占位 */
.bbs-youtube-placeholder{
    position:relative;
    width:100%;
    height:400px;
    margin:16px 0;
    border-radius:8px;
    overflow:hidden;
    background:#000000;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    color:#ffffff;
    cursor:pointer;
    user-select:none;
}
.bbs-youtube-placeholder:focus{
    outline:2px solid #4a9eff;
    outline-offset:-2px;
}
.bbs-youtube-placeholder .bbs-youtube-icon{
    width:64px;
    height:64px;
    border-radius:50%;
    background:rgba(255,255,255,.15);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:28px;
    line-height:1;
}
.bbs-youtube-placeholder .bbs-youtube-text{
    font-size:14px;
    color:#dddddd;
}
.bbs-youtube-placeholder .bbs-youtube-tip{
    font-size:12px;
    color:#999999;
}
.bbs-youtube-placeholder iframe{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    border:0;
    background:#000000;
}
.bbs-youtube-placeholder.is-ready{
    cursor:default;
}
/* 移动端：高度固定350px */
@media(max-width:768px){
    .bbs-video-player{
        width:100%;
        height:350px;
    }
    .bbs-video-iframe-wrap{
        width:100%;
        height:350px;
    }
    .bbs-youtube-placeholder{
        width:100%;
        height:350px;
    }
}

.douyin-video{display:block;width:324px;max-width:100%;height:672px;margin:12px 0;border-radius:var(--radius-sm);overflow:hidden}
.douyin-video.is-ready{position:relative;background:var(--inverse)}
.douyin-video-frame{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;background:var(--inverse)}
.douyin-video-loading{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;height:100%;padding:0 12px;color:var(--text-muted);font-size:var(--font-size-sm)}
.douyin-video-fallback{color:var(--text-muted);font-size:var(--font-size-sm);text-decoration:none;opacity:.6}
.douyin-video-fallback:hover{opacity:1;color:var(--brand)}
.douyin-video.is-ready .douyin-video-loading{display:none}
