/* avatar_library */
.avatar-library-logo-settings{margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line-soft)}.avatar-library-logo-preview{display:flex;align-items:center;justify-content:center;min-height:96px;margin-bottom:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.avatar-library-logo-preview img{display:block;max-width:240px;max-height:96px;width:auto;height:auto}.avatar-library-logo-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.avatar-library-logo-actions form{margin:0}.avatar-library-logo-actions button{width:auto}.avatar-library-logo-editor{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.avatar-library-logo-editor-head strong,.avatar-library-logo-editor-head small{display:block}.avatar-library-logo-editor-head small{margin-top:3px;color:var(--text-muted)}.avatar-library-logo-editor canvas{display:block;width:min(320px,100%);height:auto;margin:12px auto;border-radius:var(--radius);background:var(--bg);cursor:grab;touch-action:none}.avatar-library-logo-editor canvas.dragging{cursor:grabbing}.avatar-library-logo-zoom{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;margin:10px 0}.avatar-library-logo-zoom input{padding:0}.avatar-library-config{display:none!important}.avatar-library-upload-panel{margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}.avatar-library-upload-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.avatar-library-upload-head strong,.avatar-library-upload-head small{display:block}.avatar-library-upload-head small{margin-top:3px;color:var(--text-muted)}.avatar-library-upload-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.avatar-library-upload-button{width:auto;display:inline-flex;align-items:center;justify-content:center}.avatar-library-status{min-height:0;margin-top:10px;color:var(--text-muted)}.avatar-library-status.error{color:var(--danger)}.avatar-library-crop-modal{z-index:1200}.avatar-library-crop-dialog{width:min(420px,calc(100vw - 24px))}.avatar-library-crop-dialog canvas{display:block;width:min(320px,100%);height:auto;margin:0 auto;border-radius:var(--radius);background:var(--bg);cursor:grab;touch-action:none}.avatar-library-crop-dialog canvas.dragging{cursor:grabbing}.avatar-library-crop-zoom{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;margin-top:14px}.avatar-library-crop-zoom input{padding:0}.avatar-library-admin-editor{margin-top:18px;padding-top:18px;border-top:1px solid var(--line-soft)}.avatar-library-admin-editor-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.avatar-library-admin-editor-head h3{margin:0}.avatar-library-admin-editor-head small{color:var(--text-muted)}.avatar-library-admin-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:14px}.avatar-library-admin-item{min-width:0;border:1px solid var(--line);border-radius:var(--radius);padding:8px;background:var(--bg)}.avatar-library-admin-item>img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:calc(var(--radius) - 2px);background:var(--line-soft)}.avatar-library-admin-item>div{margin-top:7px}.avatar-library-admin-item strong,.avatar-library-admin-item small{display:block}.avatar-library-admin-item small{margin-top:3px;color:var(--text-muted);word-break:break-word}.avatar-library-admin-item-actions{display:flex;gap:6px;flex-wrap:wrap}.avatar-library-admin-item-actions form{margin:0}.avatar-library-admin-item-actions button{width:auto}@media(max-width:900px){.avatar-library-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.avatar-library-upload-head{align-items:stretch;flex-direction:column}.avatar-library-upload-actions{width:100%}.avatar-library-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.avatar-library-admin-editor-head{align-items:flex-start;flex-direction:column}}
/* back_to_top */
.back-to-top-button{position:fixed;right:max(20px,calc((100vw - 1100px)/2 - 48px));bottom:calc(20px + env(safe-area-inset-bottom));z-index:30;display:grid;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--text-muted);box-shadow:0 4px 14px var(--shadow-medium);transition:background var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal),transform var(--transition-normal)}.back-to-top-button:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.back-to-top-button:focus-visible{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}.back-to-top-button:active{transform:translateY(1px)}.back-to-top-button[hidden]{display:none}body:has([data-back-to-top-layout][data-top-fixed="1"]) .top{position:sticky;top:0;z-index:35;box-shadow:0 3px 10px var(--shadow-base)}body:has([data-back-to-top-layout][data-top-fixed="1"]) .forum-more-region{position:sticky;top:var(--btt-top-h,48px);z-index:34}@media(min-width:721px){body:has([data-back-to-top-layout][data-sidebar-fixed="1"]) .sidebar{position:sticky;top:calc(var(--btt-top-h,0px) + 12px)}html.back-to-top-sidebar-tall body:has([data-back-to-top-layout][data-sidebar-fixed="1"]) .sidebar{position:static;top:auto}}@media(max-width:720px){.back-to-top-button{right:12px;bottom:calc(12px + env(safe-area-inset-bottom))}}
/* batch_accounts */
.batch-accounts-admin{--batch-accounts-space:12px;display:grid;gap:var(--batch-accounts-space);min-width:0}
.batch-accounts-body{display:grid;gap:var(--batch-accounts-space);min-width:0;padding:var(--batch-accounts-space)}
.batch-accounts-body .batch-accounts-card{box-shadow:none}
.batch-accounts-share-page{margin:var(--batch-accounts-space) 0}
.batch-accounts-form{display:grid;gap:var(--batch-accounts-space);margin:0}
.batch-accounts-inline-form{margin:0}

.batch-accounts-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 1px 2px var(--shadow-base)}
.batch-accounts-card-head{display:flex;align-items:flex-start;flex-wrap:wrap;gap:var(--batch-accounts-space);padding:var(--batch-accounts-space);border-bottom:1px solid var(--line-soft);background:linear-gradient(180deg,var(--panel),var(--bg))}
.batch-accounts-card-title{display:grid;gap:2px;flex:1 1 auto;min-width:0}
.batch-accounts-card-title h3{margin:0;color:var(--text);font-size:var(--font-size-md);font-weight:700;line-height:1.35}
.batch-accounts-card-title p{margin:0;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.5}
.batch-accounts-card-body{display:grid;gap:var(--batch-accounts-space);padding:var(--batch-accounts-space)}
.batch-accounts-card-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--batch-accounts-space);padding:var(--batch-accounts-space);border-top:1px solid var(--line-soft);background:var(--bg)}
.batch-accounts-foot-note{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.5}
.batch-accounts-step{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:var(--brand-soft);color:var(--brand);font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;line-height:1}

.batch-accounts-fields{display:grid;gap:var(--batch-accounts-space);min-width:0}
.batch-accounts-fields-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.batch-accounts-field{display:grid;gap:6px;min-width:0}
.batch-accounts-field-label{display:grid;gap:1px;color:var(--text);font-size:var(--font-size-sm);font-weight:600;line-height:1.4}
.batch-accounts-field-help{color:var(--text-subtle);font-size:var(--font-size-xs);font-weight:400;line-height:1.45}
.batch-accounts-field input,.batch-accounts-field select{box-sizing:border-box;width:100%;max-width:none;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text);font-family:inherit;font-size:var(--font-size-sm);line-height:1.4;transition:border-color var(--transition-normal),background-color var(--transition-normal),box-shadow var(--transition-normal)}
.batch-accounts-field input:hover,.batch-accounts-field select:hover{border-color:var(--text-subtle)}
.batch-accounts-field input:focus,.batch-accounts-field select:focus{outline:0;border-color:var(--brand);background:var(--panel);box-shadow:0 0 0 3px var(--focus-halo)}

.batch-accounts-range{display:flex;align-items:center;flex-wrap:wrap;gap:var(--batch-accounts-space);padding:var(--batch-accounts-space);border:1px dashed var(--line);border-radius:8px;background:var(--bg)}
.batch-accounts-range-label{color:var(--text-subtle);font-size:var(--font-size-sm)}
.batch-accounts-range-chip{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:0 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-sm);font-weight:700;transition:background-color var(--transition-normal),color var(--transition-normal)}
.batch-accounts-range-chip b{font-family:var(--font-mono);font-size:var(--font-size-md)}
.batch-accounts-range-chip.is-over{background:var(--danger-soft);color:var(--danger)}
.batch-accounts-range-note{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.5}

.batch-accounts-submit{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--batch-accounts-space);padding:var(--batch-accounts-space);border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,var(--brand-soft),var(--panel))}
.batch-accounts-submit-note{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.5}

.batch-accounts-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;min-height:34px;padding:0 14px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--text);font-family:inherit;font-size:var(--font-size-sm);font-weight:700;line-height:1;white-space:nowrap;text-decoration:none;cursor:pointer;transition:border-color var(--transition-normal),background-color var(--transition-normal),color var(--transition-normal),box-shadow var(--transition-normal),opacity var(--transition-normal)}
.batch-accounts-btn:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.batch-accounts-btn:focus-visible{outline:0;box-shadow:0 0 0 3px var(--focus-halo)}
.batch-accounts-btn:active{opacity:.75}
.batch-accounts-btn-sm{min-height:30px;padding:0 11px;font-size:var(--font-size-xs)}
.batch-accounts-btn-lg{min-height:40px;padding:0 20px;font-size:var(--font-size-md)}
.batch-accounts-btn-primary{border-color:var(--brand);background:var(--brand);color:var(--inverse-text)}
.batch-accounts-btn-primary:hover{border-color:var(--brand-hover);background:var(--brand-hover);color:var(--inverse-text)}
.batch-accounts-btn-danger{border-color:var(--danger);background:var(--panel);color:var(--danger)}
.batch-accounts-btn-danger:hover{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}
.batch-accounts-btn-ghost{background:var(--panel);color:var(--text-muted)}

.batch-accounts-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--batch-accounts-space);min-width:0}
.batch-accounts-search{display:flex;align-items:center;flex-wrap:wrap;gap:var(--batch-accounts-space);min-width:0;margin:0}
.batch-accounts-select-wrap{display:inline-flex;min-width:0;margin:0}
.batch-accounts-select{box-sizing:border-box;height:34px;max-width:100%;padding:0 30px 0 12px;border:1px solid var(--line);border-radius:7px;background-color:var(--panel);color:var(--text);font-family:inherit;font-size:var(--font-size-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}
.batch-accounts-select:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-halo)}
.batch-accounts-select-sm{height:30px;font-size:var(--font-size-xs)}
.batch-accounts-search-input{display:flex;align-items:center;height:34px;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:var(--panel);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}
.batch-accounts-search-input:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-halo)}
.batch-accounts-search-input input{flex:1 1 auto;min-width:120px;height:100%;padding:0 12px;border:0;background:transparent;color:var(--text);font-family:inherit;font-size:var(--font-size-sm)}
.batch-accounts-search-input input:focus{outline:0}
.batch-accounts-search-submit{height:100%;padding:0 14px;border:0;border-left:1px solid var(--line-soft);border-radius:0;background:var(--bg);color:var(--text);font-family:inherit;font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:background-color var(--transition-normal),color var(--transition-normal)}
.batch-accounts-search-submit:hover{background:var(--brand-soft);color:var(--brand)}
.batch-accounts-toolbar-tools{display:flex;align-items:center;flex-wrap:wrap;gap:var(--batch-accounts-space)}

.batch-accounts-bulk{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--batch-accounts-space)}
.batch-accounts-bulk-all{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:var(--font-size-sm);cursor:pointer}
.batch-accounts-bulk-all input{width:15px;height:15px;margin:0;cursor:pointer;accent-color:var(--brand)}

.batch-accounts-list{list-style:none;margin:0;padding:0}
.batch-accounts-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--batch-accounts-space);padding:var(--batch-accounts-space);border-bottom:1px solid var(--line-soft);transition:background-color var(--transition-normal)}
.batch-accounts-list-item:last-child{border-bottom:0}
.batch-accounts-list-item:hover{background:var(--bg)}
.batch-accounts-empty{padding:24px var(--batch-accounts-space);color:var(--text-subtle);font-size:var(--font-size-sm);text-align:center}
.batch-accounts-account-body,.batch-accounts-batch-body,.batch-accounts-share-body{display:grid;gap:7px;min-width:0}
.batch-accounts-account-line{display:flex;align-items:center;flex-wrap:wrap;gap:var(--batch-accounts-space);min-width:0}
.batch-accounts-uid{display:inline-flex;flex:0 0 auto;align-items:center;min-height:22px;padding:0 9px;border-radius:6px;background:var(--brand-soft);color:var(--brand);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;letter-spacing:.3px}
.batch-accounts-username{min-width:0;overflow:hidden;color:var(--text);font-size:var(--font-size-md);font-weight:700;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}
.batch-accounts-batch-name,.batch-accounts-share-scope{color:var(--text);font-size:var(--font-size-md);font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.batch-accounts-secret{flex:0 0 auto;padding:2px 9px;border:1px dashed var(--line);border-radius:6px;background:var(--bg);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--font-size-sm);letter-spacing:1px}
.batch-accounts-account-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-width:0}
.batch-accounts-meta{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.4}
.batch-accounts-flag,.batch-accounts-pill{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;border-radius:999px;font-size:var(--font-size-xs);font-weight:700;line-height:1}
.batch-accounts-flag-on,.batch-accounts-pill-on{background:var(--success-soft);color:var(--success)}
.batch-accounts-flag-off{background:var(--line-soft);color:var(--text-subtle)}
.batch-accounts-flag-warn,.batch-accounts-pill-warn{background:var(--warning-soft);color:var(--warning)}
.batch-accounts-pill-brand{background:var(--brand-soft);color:var(--brand)}
.batch-accounts-pill-danger{background:var(--danger-soft);color:var(--danger)}
.batch-accounts-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--batch-accounts-space)}
.batch-accounts-check{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--line);border-radius:7px;background:var(--panel);cursor:pointer;transition:border-color var(--transition-normal),background-color var(--transition-normal)}
.batch-accounts-check:hover{border-color:var(--brand);background:var(--brand-soft)}
.batch-accounts-checkbox{width:15px;height:15px;margin:0;cursor:pointer;accent-color:var(--brand)}

.batch-accounts-share-top{display:flex;align-items:center;flex-wrap:wrap;gap:var(--batch-accounts-space);min-width:0}
.batch-accounts-share-link{color:var(--text-subtle);font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.5;word-break:break-all}

.batch-accounts-copybar{display:flex;align-items:stretch;gap:var(--batch-accounts-space)}
.batch-accounts-copybox{flex:1 1 auto;min-width:0;min-height:64px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.6;white-space:pre;overflow:auto;resize:vertical}
.batch-accounts-copybar .batch-accounts-btn{align-self:flex-start}
.batch-accounts-pagination{display:flex;justify-content:center}

@media(max-width:720px){
.batch-accounts-fields-2{grid-template-columns:minmax(0,1fr)}
.batch-accounts-list-item{grid-template-columns:minmax(0,1fr);align-items:flex-start}
.batch-accounts-actions{justify-content:flex-start;width:100%}
.batch-accounts-actions .batch-accounts-btn{flex:1 1 90px;justify-content:center}
.batch-accounts-check{flex:0 0 34px;width:34px;height:34px}
.batch-accounts-copybar{flex-direction:column}
.batch-accounts-copybar .batch-accounts-btn{width:100%;justify-content:center}
.batch-accounts-search{width:100%}
.batch-accounts-select-wrap,.batch-accounts-select{width:100%}
.batch-accounts-search-input{width:100%}
.batch-accounts-search-input input{min-width:0}
.batch-accounts-toolbar,.batch-accounts-toolbar-tools{width:100%}
.batch-accounts-toolbar-tools .batch-accounts-btn,.batch-accounts-toolbar-tools .batch-accounts-inline-form{flex:1 1 120px}
.batch-accounts-toolbar-tools .batch-accounts-inline-form .batch-accounts-btn{width:100%}
.batch-accounts-bulk{width:100%;justify-content:space-between}
.batch-accounts-select-sm{flex:1 1 auto;width:auto}
.batch-accounts-submit{flex-direction:column;align-items:stretch}
.batch-accounts-submit .batch-accounts-btn{width:100%}
.batch-accounts-username{white-space:normal;overflow-wrap:anywhere}
}
/* batch_management */
.batch-management-trash-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;padding:14px}.batch-management-trash-row .admin-row-check{width:38px;height:22px;margin:0}.batch-management-trash-main{gap:9px}.batch-management-trash-title{display:flex;align-items:center;gap:7px;min-width:0}.batch-management-trash-title strong{min-width:0;overflow:hidden;color:var(--text);font-size:var(--font-size-md);line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.batch-management-trash-type{display:inline-flex;align-items:center;flex:0 0 auto;min-height:22px;padding:0 7px;border:1px solid var(--brand-soft);border-radius:5px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xs);font-weight:700;line-height:1}.batch-management-trash-id{flex:0 0 auto;color:var(--text-subtle);font-family:var(--font-mono);font-size:var(--font-size-xs)}.batch-management-trash-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.4}.batch-management-trash-meta time:before{content:"·";margin-right:7px;color:var(--text-subtle)}.batch-management-trash-details summary{width:max-content;max-width:100%;color:var(--text-muted);font-size:var(--font-size-xs);cursor:pointer}.batch-management-trash-details summary:hover{color:var(--brand)}.batch-management-trash-details .admin-trash-data{max-height:320px;margin:9px 0 0;padding:10px;overflow:auto;border:1px solid var(--line-soft);border-radius:6px;background:var(--bg);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.batch-management-trash-ops{align-self:start;margin:0}.batch-management-trash-ops .post-action-form{margin:0}.batch-management-trash-ops button{min-height:32px;margin:0;white-space:nowrap}@media(max-width:720px){.batch-management-trash-row{grid-template-columns:minmax(0,1fr);gap:10px;padding:12px}.batch-management-trash-title{align-items:flex-start;flex-wrap:wrap;gap:6px}.batch-management-trash-title strong{flex:1 1 130px;white-space:normal;overflow-wrap:anywhere}.batch-management-trash-id{margin-top:3px}.batch-management-trash-ops{display:flex!important;grid-column:1!important;align-items:center;gap:8px!important;width:100%;margin:2px 0 0!important;overflow:visible!important}.batch-management-trash-ops .post-action-form{flex:1 1 96px}.batch-management-trash-ops button{width:100%;justify-content:center}.batch-management-trash-ops .admin-row-check{flex:0 0 38px}.batch-management-trash-details .admin-trash-data{max-height:240px;padding:9px}}
/* bing_wallpaper */
.bing-wallpaper-settings{max-width:none}.bing-wallpaper-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:stretch;gap:12px}.bing-wallpaper-field{display:flex;flex-direction:column;justify-content:flex-start;gap:10px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.bing-wallpaper-field-title{color:var(--text);font-size:12px;font-weight:700}.bing-wallpaper-field .grid{display:grid;align-content:start;gap:5px;min-width:0}.bing-wallpaper-field input:not([type=checkbox]),.bing-wallpaper-field select{width:100%;max-width:none}.bing-wallpaper-field input[type=checkbox]{width:38px;max-width:38px;height:22px}.bing-wallpaper-actions{display:flex;gap:8px;margin-top:14px}.bing-wallpaper-settings .bing-wallpaper-actions button{margin:0}.bing-wallpaper-record{min-height:0;padding:13px 14px}.bing-wallpaper-record-main{display:grid;gap:8px;min-width:0}.bing-wallpaper-date{display:inline-flex;align-items:center;width:max-content;max-width:100%;color:var(--text);font-size:14px;font-weight:700;line-height:1.35}.bing-wallpaper-date:hover{color:var(--brand)}.bing-wallpaper-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.bing-wallpaper-meta span{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid var(--line-soft);border-radius:6px;background:var(--bg);color:var(--text-muted);font-size:12px;line-height:1;white-space:nowrap}.bing-wallpaper-picker{display:grid;gap:16px}.bing-wallpaper-picker-section{display:grid;gap:8px}.bing-wallpaper-picker-section h3{font-size:var(--font-size-md)}.bing-wallpaper-picker-options,.bing-wallpaper-picker-history{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.bing-wallpaper-choice{display:grid;gap:6px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);cursor:pointer}.bing-wallpaper-choice:hover,.bing-wallpaper-choice.is-active{border-color:var(--brand);background:var(--brand-soft)}.bing-wallpaper-choice-preview{display:block;aspect-ratio:16/10;border-radius:4px;background-color:var(--bg);background-position:center;background-size:cover}.bing-wallpaper-choice-label{overflow:hidden;font-size:var(--font-size-sm);line-height:1.3;text-align:left;text-overflow:ellipsis;white-space:nowrap}.bing-wallpaper-choice-form{margin:0}.bing-wallpaper-choice-form button{width:100%;min-height:0}.bing-wallpaper-blur-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.bing-wallpaper-blur-form label{display:grid;gap:5px;color:var(--text-muted);font-size:var(--font-size-sm)}.bing-wallpaper-blur-form input{width:100%;padding:0}.bing-wallpaper-blur-form button{margin:0}.bing-wallpaper-picker-empty{padding:12px;border:1px dashed var(--line);border-radius:6px;color:var(--text-muted);font-size:var(--font-size-sm)}.bing-wallpaper-desktop-button{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text-muted);cursor:pointer}.bing-wallpaper-desktop-button:hover,.bing-wallpaper-desktop-button[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.bing-wallpaper-desktop-button:focus-visible{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}.bing-wallpaper-desktop-button svg{width:17px;height:17px}body.bing-wallpaper-desktop-active main.wrap,body.bing-wallpaper-desktop-active .footer{display:none}@media(max-width:720px){.bing-wallpaper-fields{grid-template-columns:1fr}.bing-wallpaper-record{padding:12px}.bing-wallpaper-meta span{max-width:100%;white-space:normal;line-height:1.35;padding-top:4px;padding-bottom:4px}.bing-wallpaper-picker-options,.bing-wallpaper-picker-history{grid-template-columns:repeat(2,minmax(0,1fr))}.bing-wallpaper-blur-form{grid-template-columns:1fr}.bing-wallpaper-blur-form button{justify-self:start}.bing-wallpaper-desktop-button{flex:0 0 28px;width:28px;height:28px;border:0;background:transparent;color:var(--text-subtle)!important}.bing-wallpaper-desktop-button svg{width:24px;height:24px}.bing-wallpaper-desktop-button:hover,.bing-wallpaper-desktop-button[aria-pressed="true"]{background:var(--bg);color:var(--text)!important}}
/* dark_mode */
/* ===== 暗黑模式 CSS 变量 ===== */
html[data-dark-mode-theme="dark"] {
    --bg:#0f121a;
    --panel:#171b27;
    --line:#262b3b;
    --line-soft:#1e2332;
    --text:#e2e5ed;
    --text-muted:#9399ab;
    --text-subtle:#636a80;
    --text-disabled:#4a5066;
    --brand:#586779;
    --brand-hover:#6b7c90;
    --brand-soft:#1f2937;
    --success:#2ab86e;
    --success-soft:#19211d;
    --danger:#f47278;
    --danger-soft:#241b20;
    --warning:#f6a04e;
    --warning-soft:#252019;
    --info:#6aaeff;
    --info-soft:#19212a;
    --inverse:#0b0f14;
    --inverse-border:#2b313b;
    --inverse-text:#f1f5f9;
    --color-dark-rgb:15,18,26;
    --backdrop:rgba(var(--color-dark-rgb),.48);
    --shadow-base:rgba(0,0,0,.38);
    --shadow-medium:rgba(0,0,0,.52);
    --focus-ring:rgba(52,217,132,.25);
    --radius:6px;
    --radius-sm:4px
}

/* ===== 平滑过渡 ===== */
[data-dark-mode-theme] body,
[data-dark-mode-theme] html,
[data-dark-mode-theme] .box,
[data-dark-mode-theme] .card,
[data-dark-mode-theme] .list,
[data-dark-mode-theme] .top,
[data-dark-mode-theme] .main-panel,
[data-dark-mode-theme] .home-shell,
[data-dark-mode-theme] .footer,
[data-dark-mode-theme] .tab,
[data-dark-mode-theme] .post-item,
[data-dark-mode-theme] .search-form,
[data-dark-mode-theme] .search-field,
[data-dark-mode-theme] a,
[data-dark-mode-theme] input,
[data-dark-mode-theme] textarea,
[data-dark-mode-theme] select,
[data-dark-mode-theme] button,
[data-dark-mode-theme] .brand,
[data-dark-mode-theme] .forum-link,
[data-dark-mode-theme] .post-title,
[data-dark-mode-theme] .btn,
[data-dark-mode-theme] .user-header,
[data-dark-mode-theme] .user-bio,
[data-dark-mode-theme] .forum-more-region,
[data-dark-mode-theme] .dark-mode-toggle-btn,
[data-dark-mode-theme] .dark-mode-menu {
    transition:background-color var(--transition-normal),color var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal)
}

/* ===== 搜索框适配 ===== */
[data-dark-mode-theme="dark"] .search-form {
    background:var(--panel)
}
[data-dark-mode-theme="dark"] .search-input {
    color:var(--text)
}
[data-dark-mode-theme="dark"] .search-input::placeholder {
    color:var(--text-subtle)
}
[data-dark-mode-theme="dark"] .search-field {
    background:var(--bg);
    color:var(--text-muted);
    border-color:var(--line-soft)
}

/* ===== 表单元素适配 ===== */
[data-dark-mode-theme="dark"] input:not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="checkbox"]):not(.search-input):not(.search-field),
[data-dark-mode-theme="dark"] textarea,
[data-dark-mode-theme="dark"] select {
    background:var(--bg);
    color:var(--text);
    border-color:var(--line)
}
[data-dark-mode-theme="dark"] input:focus:not([type="submit"]):not([type="button"]):not([type="hidden"]):not([type="checkbox"]),
[data-dark-mode-theme="dark"] textarea:focus,
[data-dark-mode-theme="dark"] select:focus {
    border-color:var(--brand);
    box-shadow:0 0 0 3px var(--focus-ring);
    background:var(--panel)
}
[data-dark-mode-theme="dark"] input::placeholder,
[data-dark-mode-theme="dark"] textarea::placeholder {
    color:var(--text-subtle)
}

/* ===== 复选框适配 ===== */
html[data-dark-mode-theme="dark"] input[type="checkbox"] {
    border-color:var(--line);
    background-color:var(--line-soft);
    background-image:radial-gradient(circle,var(--panel) 0 7px,transparent 7.5px)
}
html[data-dark-mode-theme="dark"] input[type="checkbox"]:checked {
    border-color:var(--brand);
    background-color:var(--brand)
}
html[data-dark-mode-theme="dark"] input[type="checkbox"]:hover {
    border-color:var(--brand)
}
html[data-dark-mode-theme="dark"] input[type="checkbox"]:disabled {
    border-color:var(--line-soft);
    background-color:var(--line-soft)
}
html[data-dark-mode-theme="dark"] input[type="checkbox"]:focus-visible {
    box-shadow:0 0 0 3px var(--focus-ring)
}

/* ===== 选中文字高亮 ===== */
[data-dark-mode-theme="dark"] ::selection {
    background:var(--brand-soft);
    color:var(--text)
}

/* ===== 分隔线 ===== */
[data-dark-mode-theme="dark"] hr {
    border-color:var(--line)
}

/* ===== 深色提示弹窗 ===== */
html[data-dark-mode-theme="dark"] .toast,
html[data-dark-mode-theme="dark"] .paste-image-upload-toast {
    color:var(--text)
}

/* ===== 图片微调 ===== */
[data-dark-mode-theme="dark"] img:not([src$=".svg"]):not([src*=".svg?"]) {
    filter:brightness(.92)
}

/* ===== 代码块 ===== */
[data-dark-mode-theme="dark"] pre,
[data-dark-mode-theme="dark"] code {
    background:var(--line-soft);
    border-color:var(--line)
}

/* ===== 表格 ===== */
[data-dark-mode-theme="dark"] table {
    border-color:var(--line)
}
[data-dark-mode-theme="dark"] th,
[data-dark-mode-theme="dark"] td {
    border-color:var(--line-soft)
}
[data-dark-mode-theme="dark"] th {
    background:var(--line-soft)
}

/* ===== 滚动条 ===== */
[data-dark-mode-theme="dark"] ::-webkit-scrollbar {
    width:8px;
    height:8px
}
[data-dark-mode-theme="dark"] ::-webkit-scrollbar-track {
    background:var(--bg)
}
[data-dark-mode-theme="dark"] ::-webkit-scrollbar-thumb {
    background:var(--line);
    border-radius:4px
}
[data-dark-mode-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background:var(--text-subtle)
}

/* ===== 顶部主题选择器 ===== */
.dark-mode-control {
    position:relative;
    display:flex;
    align-items:center;
    flex:0 0 30px;
    height:30px
}
.dark-mode-toggle-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:30px;
    height:30px;
    min-height:30px;
    box-sizing:border-box;
    padding:0;
    border:1px solid var(--line);
    border-radius:var(--radius-sm);
    background:var(--panel);
    color:var(--text-muted);
    cursor:pointer;
    outline:none;
    position:relative;
    -webkit-tap-highlight-color:transparent;
    flex-shrink:0
}
.dark-mode-toggle-btn:hover {
    border-color:var(--brand);
    background:var(--brand-soft);
    color:var(--brand)
}
.dark-mode-toggle-btn:focus-visible {
    box-shadow:0 0 0 3px var(--focus-ring);
    border-color:var(--brand)
}
.dark-mode-toggle-btn svg {
    width:17px;
    height:17px
}
.dark-mode-toggle-btn svg:not(.dark-mode-icon-active) {
    display:none
}
.dark-mode-menu {
    position:absolute;
    z-index:110;
    top:calc(100% + 7px);
    right:0;
    display:none;
    width:132px;
    padding:4px;
    border:1px solid var(--line);
    border-radius:var(--radius-sm);
    background:var(--panel);
    box-shadow:0 8px 20px var(--shadow-base)
}
.dark-mode-menu.open {
    display:grid;
    gap:2px
}
.dark-mode-option {
    display:flex;
    align-items:center;
    gap:8px;
    width:100%;
    min-height:30px;
    padding:0 7px;
    border:0;
    border-radius:var(--radius-sm);
    background:transparent;
    color:var(--text-muted);
    font:inherit;
    font-size:var(--font-size-sm);
    text-align:left;
    cursor:pointer
}
.dark-mode-option:hover,
.dark-mode-option.active {
    background:var(--brand-soft);
    color:var(--brand)
}
.dark-mode-option:focus-visible {
    outline:2px solid var(--brand);
    outline-offset:-2px
}
.dark-mode-option svg {
    flex:0 0 16px;
    width:16px;
    height:16px
}

@media(max-width:720px) {
    .dark-mode-control {
        width:28px;
        height:28px;
        flex-basis:28px
    }
    .dark-mode-toggle-btn {
        width:28px;
        height:28px;
        min-height:28px;
        border:0;
        background:transparent;
        color:var(--text-subtle)!important
    }
    .dark-mode-toggle-btn svg {
        width:24px;
        height:24px
    }
    .dark-mode-toggle-btn:hover {
        background:var(--bg);
        color:var(--text)!important
    }
    .dark-mode-menu {
        top:calc(100% + 5px)
    }
}
/* forum_level */
/* ============================================================
 * forum_level 现代化 UI（v2.4.0）
 * 设计语言与核心一致：白色卡片 + 绿色品牌 + 圆角 + 浅阴影；
 * 颜色/字号全部走系统变量，身份徽章允许少量系统色渐变。
 * ============================================================ *//* ---------- 1. 通用布局与卡片 ---------- */
:root{--forum-level-fs-body:13px;--forum-level-fs-title:15px;--forum-level-fs-close:22px}
.feature-links a.has-feature-icon:before,.quick-forum-links a.has-feature-icon:before{display:none}
.feature-links a>.meta-icon,.quick-forum-links a>.meta-icon{width:15px;height:15px;flex:0 0 15px;margin-right:8px;color:var(--text-subtle)}
.mobile-menu-link>.meta-icon{width:15px;height:15px;flex:0 0 15px;margin-right:7px;color:var(--text-subtle)}
.forum-level-page{display:grid;gap:14px}
.forum-level-report-center{display:grid;gap:14px;max-width:980px;margin:0 auto}
.forum-level-report-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}
.forum-level-report-head h2{margin:0 0 5px;font-size:var(--font-size-xl)}
.forum-level-report-head p{margin:0;color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-report-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow:auto}
.forum-level-report-tabs a{padding:10px 14px;color:var(--text-muted);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent}
.forum-level-report-tabs a:hover,.forum-level-report-tabs a.is-active{color:var(--brand);border-bottom-color:var(--brand)}
.forum-level-report-list{display:grid;gap:10px}
.forum-level-report-case{display:grid;gap:8px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 2px 8px var(--shadow-base)}
.forum-level-report-case header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--text-muted);font-size:var(--font-size-xs)}
.forum-level-report-case header strong{color:var(--text);font-size:var(--font-size-sm)}
.forum-level-report-case header time{margin-left:auto}
.forum-level-report-case h3{margin:0;font-size:var(--font-size-md);word-break:break-word}
.forum-level-report-case p{margin:0;color:var(--text-muted);line-height:1.6;word-break:break-word}
.forum-level-report-status{padding:2px 8px;border-radius:999px;border:1px solid var(--line);font-size:var(--font-size-xs)}
.forum-level-report-status.status-0{color:var(--warning);border-color:var(--warning);background:var(--warning-soft)}
.forum-level-report-status.status-1{color:var(--info);border-color:var(--info);background:var(--info-soft)}
.forum-level-report-status.status-2{color:var(--success);border-color:var(--success);background:var(--success-soft)}
.forum-level-report-status.status-3,.forum-level-report-status.status-4{color:var(--text-muted);background:var(--line-soft)}
.forum-level-report-timeline{display:grid;gap:5px;margin:2px 0 0;padding:8px 0 0 18px;border-top:1px solid var(--line-soft);color:var(--text-muted);font-size:var(--font-size-xs)}
.forum-level-report-timeline li{display:flex;gap:8px;line-height:1.5}
.forum-level-report-timeline time{color:var(--text-subtle);white-space:nowrap}
.forum-level-report-inline-form{display:grid;gap:7px;padding-top:8px;border-top:1px solid var(--line-soft)}
.forum-level-report-inline-form textarea{min-height:70px}
.forum-level-ticket-report-link{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--info);border-radius:var(--radius);background:var(--info-soft);color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-ticket-report-link a{color:var(--brand);text-decoration:none;font-weight:600}
.forum-level-report-dup{display:inline-block;margin-left:6px;color:var(--warning);font-size:var(--font-size-xs)}
.forum-level-report-reason small{display:block;margin-top:4px;color:var(--text-subtle)}
@media (max-width:640px){.forum-level-report-head{display:grid}.forum-level-report-head .forum-level-submit{width:100%}.forum-level-report-case header time{margin-left:0}.forum-level-report-timeline li{display:grid;gap:1px}}
.forum-level-summary,.forum-level-calendar,.forum-level-ledger{padding:18px}
.forum-level-summary{position:relative;overflow:visible}
.forum-level-summary::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--brand),var(--info))}
.forum-level-summary-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.forum-level-summary-user{font-size:var(--font-size-md);font-weight:600;color:var(--text)}
.forum-level-summary-user:hover{color:var(--brand)}
.forum-level-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.forum-level-stats-inline{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}
.forum-level-stat{position:relative;display:flex;flex-direction:column;gap:3px;padding:10px 12px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 4px 14px var(--shadow-base);overflow:hidden}
.forum-level-stat::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--brand),var(--info))}
.forum-level-stat:nth-child(4n+2)::before{background:linear-gradient(90deg,var(--info),var(--brand))}
.forum-level-stat:nth-child(4n+3)::before{background:linear-gradient(90deg,var(--warning),var(--danger))}
.forum-level-stat:nth-child(4n+4)::before{background:linear-gradient(90deg,var(--danger),var(--warning))}
.forum-level-stat b{font-size:var(--font-size-xl);font-weight:700;line-height:1.1;color:var(--text);font-variant-numeric:tabular-nums}
.forum-level-stat span{font-size:var(--font-size-sm);color:var(--text-muted)}/* ---------- 2. 徽章与身份 ---------- */
.forum-level-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.5;vertical-align:middle;white-space:nowrap;box-shadow:0 1px 2px var(--shadow-base)}
.forum-level-badge-lv{color:var(--brand);font-weight:700;font-variant-numeric:tabular-nums}
.forum-level-badge-name{color:var(--text-muted)}
.forum-level-badge-lg{padding:4px 14px;font-size:var(--font-size-md);border-color:var(--brand);background:var(--brand-soft)}
.forum-level-badge-lg .forum-level-badge-lv{color:var(--brand)}
.post-meta .forum-level-chip{padding:2px 10px;font-size:var(--font-size-xs);line-height:1.5}
.forum-level-chip{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:var(--text-muted);border:1px solid var(--line);border-radius:999px;padding:2px 10px;background:var(--bg)}
.forum-level-chip.is-special{color:var(--brand);border-color:var(--brand);background:var(--brand-soft);font-weight:600}
/* #（用户反馈）：去掉特殊组徽章前的小圆点，与勋章徽章保持一致、避免悬停时像多出一个图标。 */
.forum-level-chip.is-special{}
.forum-level-chip-inline{margin-left:4px}
.forum-level-chip-x{border:none;background:none;color:var(--text-subtle);cursor:pointer;font-size:var(--font-size-md);line-height:1;padding:0 2px;min-height:0;display:inline-flex;align-items:center}
.forum-level-chip-x:hover{color:var(--danger);background:none}
.forum-level-chips{display:flex;flex-wrap:wrap;gap:6px}
.forum-level-tag{display:inline-block;font-size:var(--font-size-xxs);border:1px solid var(--line);border-radius:999px;padding:2px 8px;margin-right:4px;color:var(--text-muted);background:var(--bg);white-space:nowrap}
.forum-level-tag.is-level{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}
.forum-level-tag.is-admin{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}
.forum-level-tag.is-manage{color:var(--warning);border-color:var(--warning);background:var(--warning-soft)}
.forum-level-tag.is-special{color:var(--info);border-color:var(--info);background:var(--info-soft)}
.forum-level-tag.is-entry{color:var(--success);border-color:var(--success);background:var(--success-soft);cursor:help}
.forum-level-tag.is-plain{color:var(--text-subtle)}/* ---------- 3. 等级进度 ---------- */
.forum-level-progress{margin-top:16px;display:flex;flex-direction:column;gap:8px}
.forum-level-progress-info{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:var(--font-size-xs);color:var(--text-muted)}
.forum-level-progress-info b{color:var(--text);font-weight:600}
.forum-level-progress-pct{color:var(--brand);font-weight:700;font-variant-numeric:tabular-nums}
.forum-level-progress-track{height:10px;border-radius:999px;background:var(--line-soft);overflow:hidden}
.forum-level-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand),var(--info));min-width:2px;transition:width .4s ease}/* ---------- 4. 签到日历 ---------- */
.forum-level-cal-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.forum-level-cal-title{font-size:var(--font-size-md);font-weight:700;color:var(--text)}
.forum-level-cal-streak{font-size:var(--font-size-xs);color:var(--warning);background:var(--warning-soft);border-radius:999px;padding:2px 10px;font-weight:600}
.forum-level-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.forum-level-cal-week{text-align:center;font-size:var(--font-size-xxs);color:var(--text-subtle);font-weight:600;padding:2px 0}
.forum-level-cal-cell{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;border:1px solid var(--line-soft);border-radius:var(--radius);font-size:var(--font-size-sm);color:var(--text-muted);background:var(--panel)}
.forum-level-cal-cell.is-empty{border-color:transparent;background:transparent}
.forum-level-cal-cell.is-signed{background:var(--brand-soft);border-color:var(--brand);color:var(--brand);font-weight:600}
.forum-level-cal-cell.is-signed::after{content:"✓";position:absolute;top:1px;right:3px;font-size:var(--font-size-xxs);color:var(--brand);font-weight:700}
.forum-level-cal-cell.is-today{outline:2px solid var(--focus-ring);outline-offset:-2px}/* ---------- 5. 流水列表 ---------- */
.forum-level-ledger-title,.forum-level-fieldset-title{font-size:var(--font-size-md);font-weight:700;color:var(--text);margin:0 0 12px}
.forum-level-ledger-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.forum-level-ledger-head .forum-level-ledger-title{margin:0}
.forum-level-log-recent{max-height:360px;overflow-y:auto}
.forum-level-log-back{margin-bottom:10px}
.forum-level-tabbar{display:inline-flex;flex-wrap:wrap;gap:4px;padding:3px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);margin-bottom:12px;max-width:100%}
.forum-level-tab{display:inline-flex;align-items:center;padding:3px 14px;border-radius:calc(var(--radius) - 2px);color:var(--text-muted);font-size:var(--font-size-xs);text-decoration:none;line-height:1.6;white-space:nowrap;transition:background var(--transition-normal),color var(--transition-normal)}
.forum-level-tab:hover{background:var(--line-soft);color:var(--text)}
.forum-level-tab.is-active{background:var(--brand);color:var(--inverse-text);font-weight:600;box-shadow:0 2px 6px var(--focus-halo)}
.forum-level-log-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.forum-level-log-item{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);font-size:var(--font-size-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}
.forum-level-log-item:hover{border-color:var(--line);box-shadow:0 2px 8px var(--shadow-base)}
.forum-level-log-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.forum-level-log-reason{color:var(--text-muted);word-break:break-word}
.forum-level-log-side{display:flex;flex-direction:column;align-items:flex-end;gap:3px;white-space:nowrap}
.forum-level-log-delta{display:inline-flex;align-items:center;font-weight:700;font-variant-numeric:tabular-nums}
.forum-level-log-delta.is-gain{color:var(--success)}
.forum-level-log-delta.is-lose{color:var(--danger)}
.forum-level-log-time{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.forum-level-log-ref{color:var(--brand);font-size:var(--font-size-xs);font-weight:600}
.forum-level-log-ref:hover{text-decoration:underline}
.forum-level-log-cat{display:inline-flex;align-items:center;font-size:var(--font-size-xxs);color:var(--text-muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px;background:var(--bg);white-space:nowrap}/* ---------- 6. 个人主页积分明细行 ---------- */
.forum-level-pd{display:grid;grid-template-columns:36px minmax(0,1fr) 96px;align-items:center;gap:12px;min-height:58px;padding:11px 2px;transition:background var(--transition-normal)}
.forum-level-pd-main{display:flex;flex-direction:column;gap:5px;min-width:0}
.forum-level-pd-reason{font-size:var(--font-size-sm);color:var(--text)}
.forum-level-pd-meta{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
.forum-level-pd-topic{flex:0 1 auto;max-width:100%;font-size:var(--font-size-xs);color:var(--brand);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.forum-level-pd-topic:hover{text-decoration:underline}
.forum-level-pd-time{font-size:var(--font-size-xs);color:var(--text-subtle)}
.forum-level-pd-side{display:flex;align-items:center;justify-content:flex-end}
.forum-level-pd-value{display:flex;align-items:center;justify-content:flex-end;gap:4px;width:96px;min-height:28px;font-variant-numeric:tabular-nums}
.forum-level-pd-value b{font-size:var(--font-size-md)}
.forum-level-pd-value small{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.forum-level-pd.positive .forum-level-pd-value b{color:var(--success)}
.forum-level-pd.negative .forum-level-pd-value b{color:var(--danger)}
@media (max-width:720px){.forum-level-pd{grid-template-columns:36px minmax(0,1fr) 84px}.forum-level-pd-value{width:84px}.forum-level-pd-topic{max-width:calc(100% - 100px)}}/* ---------- 7. 侧栏卡片：签到 / 等级权限 ---------- */
.forum-level-signin-card .forum-level-signin-wrap{padding:16px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.forum-level-signin-title{font-size:var(--font-size-md);font-weight:700;color:var(--text);display:flex;align-items:center;gap:6px}
.forum-level-signin-title::before{content:"";width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--info));flex:none}
.forum-level-signin-preview{font-size:var(--font-size-xs);color:var(--brand);background:var(--brand-soft);border-radius:999px;padding:3px 10px;font-weight:600}
.forum-level-signin-form{margin-left:0;width:100%}
.forum-level-signin-btn{width:100%;justify-content:center;background:linear-gradient(135deg,var(--brand,#1f883d),var(--brand-hover,#1a7f37));color:#fff;box-shadow:0 4px 10px var(--focus-halo)}
.forum-level-signin-btn:hover{background:linear-gradient(135deg,var(--brand-hover),var(--brand));color:var(--inverse-text)}
.forum-level-signin-done,.forum-level-signin-off{margin-left:0;font-size:var(--font-size-sm);color:var(--text-subtle);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px 12px;width:100%;text-align:center}
.forum-level-signin-more{font-size:var(--font-size-xs);color:var(--brand);font-weight:600}
.forum-level-mini-card{padding:14px}
.forum-level-mini-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.forum-level-mini-bar{height:8px;border-radius:999px;background:var(--line-soft);overflow:hidden}
.forum-level-mini-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--info));border-radius:999px}
.forum-level-mini-progress{margin-top:6px;font-size:var(--font-size-xs);color:var(--text-muted)}
.forum-level-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0 4px}
.forum-level-mini-stats>div{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.forum-level-mini-stats b{font-size:var(--font-size-md);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.forum-level-mini-stats span{font-size:var(--font-size-xxs);color:var(--text-muted)}
.forum-level-mini-groups{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 2px}
.forum-level-mini-glabel{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.forum-level-mini-gtag{font-size:var(--font-size-xxs);color:var(--text-muted);border:1px solid var(--line);border-radius:999px;padding:2px 8px}
.forum-level-mini-gmore{font-size:var(--font-size-xxs);color:var(--text-subtle);background:var(--bg);border:1px dashed var(--line);border-radius:999px;padding:2px 8px;cursor:default}
.forum-level-signin-more:hover{text-decoration:underline}
.forum-level-perm-card .forum-level-perm-wrap{padding:16px}
.forum-level-perm-title{font-size:var(--font-size-md);font-weight:700;color:var(--text);margin-bottom:10px}
.forum-level-perm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.forum-level-perm-item{display:flex;flex-direction:column;gap:3px;font-size:var(--font-size-sm)}
.forum-level-perm-tier{color:var(--brand);font-weight:700;font-variant-numeric:tabular-nums}
.forum-level-perm-text{color:var(--text-muted);line-height:1.5}/* ---------- 8. 积分规则卡 ---------- */
.forum-level-profile-rules{margin-top:14px}
.forum-level-rules-head h2{font-size:var(--font-size-lg);color:var(--text);margin:0 0 4px}
.forum-level-rules-head p{font-size:var(--font-size-xs);color:var(--text-subtle);margin:0 0 12px}
.forum-level-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.forum-level-rule-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);font-size:var(--font-size-sm);transition:border-color var(--transition-normal)}
.forum-level-rule-card:hover{border-color:var(--line)}
.forum-level-rule-card span{color:var(--text-muted)}
.forum-level-rule-value{font-weight:700;font-variant-numeric:tabular-nums}
.forum-level-rule-value.positive{color:var(--success)}
.forum-level-rule-value.negative{color:var(--danger)}
.forum-level-rule-value.disabled{color:var(--text-subtle);font-weight:500}
.forum-level-rule-notes{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0 4px;font-size:var(--font-size-sm)}
.forum-level-rule-notes dt{color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-rule-notes dd{margin:2px 0 0;color:var(--text);font-weight:600}
.forum-level-rule-hint{font-size:var(--font-size-xs);color:var(--text-subtle)}
.forum-level-extra-note{margin-top:10px;font-size:var(--font-size-sm);color:var(--text-muted);line-height:1.6;border-left:3px solid var(--brand-soft);padding-left:10px}/* ---------- 9. 权限提示页 ---------- */
.forum-level-deny-card{padding:18px;max-width:520px;margin:0 auto}
.forum-level-deny{display:flex;flex-direction:column;align-items:center;gap:10px;padding:38px 16px;text-align:center}
.forum-level-deny-icon{display:flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;background:var(--warning-soft);color:var(--warning);flex:none;box-shadow:0 6px 16px var(--shadow-base)}
.forum-level-deny-icon svg{width:28px;height:28px}
.forum-level-deny-title{margin:6px 0 0;font-size:var(--font-size-xl);color:var(--text)}
.forum-level-deny-msg{margin:4px 0 0;font-size:var(--font-size-md);color:var(--text-muted);line-height:1.7;max-width:480px}
.forum-level-deny-groups{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:4px}
.forum-level-deny-hint{margin:4px 0 0;font-size:var(--font-size-xs);color:var(--text-subtle)}
.forum-level-deny-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:16px}
.forum-level-deny-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text-muted);padding:0 18px;font-size:var(--font-size-sm);cursor:pointer;text-decoration:none;font-family:inherit;transition:border-color var(--transition-normal),color var(--transition-normal),box-shadow var(--transition-normal)}
.forum-level-deny-btn:hover{border-color:var(--brand);color:var(--brand);box-shadow:0 2px 8px var(--shadow-base)}
.forum-level-deny-btn.is-primary{background:var(--brand);border-color:var(--brand);color:var(--inverse-text);box-shadow:0 4px 10px var(--focus-halo)}
.forum-level-deny-btn.is-primary:hover{background:var(--brand-hover);border-color:var(--brand-hover);color:var(--inverse-text)}/* ---------- 10. 后台：看板 ---------- */
.forum-level-panel-body{display:flex;flex-direction:column;gap:16px}
.forum-level-admin-nav{margin:0 0 14px;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:10px 14px;background:var(--bg);border:1px solid var(--line-soft);border-radius:var(--radius)}
.forum-level-switch,.forum-level-toggle,.fl-switch{min-width:44px;height:24px}
.forum-level-switch input[type="checkbox"],.forum-level-toggle input[type="checkbox"]{width:44px;height:24px}
.forum-level-profile-card{margin:0 0 12px;padding:10px 12px;background:var(--panel,#fff);border:1px solid var(--line-soft);border-radius:12px}
.forum-level-profile-chips{display:flex;flex-wrap:wrap;gap:6px}
.forum-level-idchip{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:12px;line-height:1.6;background:rgba(120,120,140,.12);color:inherit}
.forum-level-idchip.is-group{background:rgba(59,130,246,.14)}
.forum-level-idchip.is-level{background:rgba(34,197,94,.16)}
.forum-level-idchip.is-special{background:rgba(234,179,8,.18)}
.forum-level-idchip.is-title{background:rgba(168,85,247,.16)}
.forum-level-profile-meta{margin-top:6px;font-size:12px;color:var(--muted,#6b7280)}
.forum-level-diff-row{font-size:12.5px;line-height:1.55;padding:1px 6px;border-radius:4px;white-space:pre-wrap;word-break:break-word}
.forum-level-diff-row.is-add{background:rgba(34,197,94,.14)}
.forum-level-diff-row.is-del{background:rgba(239,68,68,.12);text-decoration:line-through;opacity:.75}
.forum-level-diff-legend{display:flex;gap:8px;margin-bottom:6px}/* ---------- 11. 公告模块（顶部滚动条 / 公告区 / 详情页 / 列表） ---------- */
.forum-level-topbar{overflow:hidden;background:var(--bg,#fff);border-bottom:1px solid var(--line-soft);padding:8px 0}
.forum-level-topbar-track{display:inline-flex;align-items:center;flex-wrap:nowrap;padding:0 22px;white-space:nowrap;animation:forum-level-topbar-scroll 42s linear infinite;will-change:transform}
.forum-level-topbar:hover .forum-level-topbar-track{animation-play-state:paused}
@keyframes forum-level-topbar-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.forum-level-topbar-item{display:inline-flex;align-items:center;font-size:13px;color:var(--text,#1f2937);line-height:1.7}
.forum-level-topbar-link{color:inherit;text-decoration:none;border-bottom:1px dashed currentColor;transition:color .15s,border-color .15s}
.forum-level-topbar-link:hover{color:var(--brand,#e5484d);border-bottom-style:solid}
.forum-level-topbar-item b{font-weight:700}
.forum-level-topbar-item.is-red{color:var(--danger,#e5484d)}
.forum-level-topbar-item.is-orange{color:var(--warning,#d46b08)}
.forum-level-topbar-item.is-green{color:var(--success,#2f9e44)}
.forum-level-topbar-item.is-blue{color:var(--info,#3b82f6)}
.forum-level-topbar-sep{color:var(--line-strong,#c9cdd4);font-size:11px;margin:0 17px}
.forum-level-ann-area{margin:0 0 14px;background:var(--bg,#fff);border:1px solid var(--line-soft);border-radius:12px;overflow:hidden}
.forum-level-ann-area-head{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;background:linear-gradient(90deg,var(--brand-soft,rgba(59,130,246,.1)),transparent);border-bottom:1px solid var(--line-soft)}
.forum-level-ann-area-title{font-weight:700;font-size:13.5px;color:var(--text,#1f2937)}
.forum-level-ann-area-more{font-size:12px;color:var(--link-color,#3b82f6);text-decoration:none}
.forum-level-ann-area-list{list-style:none;margin:0;padding:4px 0}
.forum-level-ann-area-item+.forum-level-ann-area-item{border-top:1px dashed var(--line-soft)}
.forum-level-ann-area-link{display:flex;align-items:center;gap:10px;padding:9px 14px;color:var(--text,#1f2937);text-decoration:none}
.forum-level-ann-area-link:hover{background:var(--hover,#f5f6f8)}
.forum-level-ann-badge{flex:none;display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:11px;line-height:1.7;font-weight:700;color:#fff;background:linear-gradient(135deg,#e5484d,#c8333a)}
.forum-level-ann-area-title-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px}
.forum-level-ann-area-meta{flex:none;font-size:11.5px;color:var(--muted,#6b7280)}
.forum-level-ann-badge-title{display:inline-block;vertical-align:middle;margin-right:8px}
.forum-level-ann-detail-body{font-size:14px;line-height:1.8;word-break:break-word}
.forum-level-ann-detail-body img{max-width:100%;border-radius:8px}
/* v4.8.0 公告署名印章 / 审批标注（右对齐横排，联合发布多印章不换行错位） */
.forum-level-ann-sign{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin:18px 0 4px}
.forum-level-ann-sign-label{font-size:12px;color:var(--text-subtle,#9ca3af)}
.forum-level-ann-sign-seals{display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.forum-level-seal{display:inline-block;user-select:none;line-height:0}
.forum-level-seal .forum-level-seal-ring{width:96px;height:96px;display:block}
.forum-level-seal-ring-text{fill:var(--seal-color,#d64541);letter-spacing:1.1px;font-weight:600}
.forum-level-seal-star{fill:var(--seal-color,#d64541)}
.forum-level-seal-sub{fill:var(--seal-color,#d64541);opacity:.85;letter-spacing:1px}
.forum-level-seal-name{fill:var(--seal-color,#d64541);font-weight:700;letter-spacing:.5px}
.forum-level-seal .forum-level-seal-ring,.forum-level-seal text{color:var(--seal-color,#d64541)}
.forum-level-seal{display:inline-block;opacity:.92;filter:saturate(1.05);transform:rotate(-8deg);transform-origin:center}
.forum-level-ann-post-sign .forum-level-seal{transform:rotate(-8deg) scale(.9)}
.forum-level-seal-sub{fill:var(--text-subtle,#9ca3af);letter-spacing:1px}
.forum-level-ann-approval{font-size:12px;color:var(--text-subtle,#9ca3af);text-align:right;margin:4px 0 0;line-height:1.7}
.forum-level-ann-approval.is-approved{color:var(--success,#2f9e44)}
.forum-level-ann-approval.is-pending{color:var(--warning,#d46b08)}
.forum-level-ann-post-sign{margin:20px 0 8px;padding-top:14px;border-top:1px dashed var(--line-soft,#e5e7eb)}
.forum-level-ann-post-sign .forum-level-ann-sign{margin-top:10px}
.forum-level-ann-post-sign .forum-level-ann-approval{color:#9ca3af;font-size:12px;text-align:center}
.forum-level-ann-chain{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 4px;font-size:12px;color:var(--text-subtle,#9ca3af)}
.forum-level-ann-chain-label{color:var(--text-muted,#6b7280);flex:0 0 auto}
.forum-level-ann-chain-item{background:var(--bg-soft,#f3f4f6);border-radius:999px;padding:2px 10px;border:1px solid var(--line-soft,#e5e7eb)}
.forum-level-ann-post-sign .forum-level-seal .forum-level-seal-ring{width:110px;height:110px}
.forum-level-ann-approval-card{padding:14px}
.fl-ann-approval-body{max-height:220px;overflow:auto;margin-bottom:10px;border:1px dashed var(--line-soft,#e5e7eb);border-radius:8px;padding:10px}
.fl-ann-approval-ops{gap:10px;margin-top:8px}
.fl-ann-approval-ops.is-locked{align-items:center;flex-wrap:wrap;padding:8px 10px;border:1px dashed var(--line-soft,#e3e8ef);border-radius:8px;background:var(--bg-soft,#f7f9fc)}
.fl-ann-approval-ops.is-locked .forum-level-hint{margin:0;flex:1 1 240px;min-width:0}
.forum-level-ann-detail-action{margin-top:16px}
.forum-level-ann-list{list-style:none;margin:0;padding:0}
.forum-level-ann-list-item+.forum-level-ann-list-item{border-top:1px dashed var(--line-soft)}
.forum-level-ann-list-item a{display:flex;align-items:center;gap:10px;padding:12px 14px;color:var(--text,#1f2937);text-decoration:none}
.forum-level-ann-list-item a:hover{background:var(--hover,#f5f6f8)}
.forum-level-ann-list-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.forum-level-ann-list-meta{flex:none;font-size:12px;color:var(--muted,#6b7280)}
.forum-level-ann-color-dot{display:inline-block;width:10px;height:10px;border-radius:999px;vertical-align:middle;margin-right:4px}
.forum-level-ann-color-dot.is-red{background:var(--danger,#e5484d)}
.forum-level-ann-color-dot.is-orange{background:var(--warning,#d46b08)}
.forum-level-ann-color-dot.is-green{background:var(--success,#2f9e44)}
.forum-level-ann-color-dot.is-blue{background:var(--info,#3b82f6)}
.forum-level-input-wide{width:280px;flex:none}
@media (max-width:720px){.forum-level-input-wide{width:100%;flex:1 1 100%}.forum-level-ann-area-link{flex-wrap:wrap}.forum-level-ann-area-meta{width:100%;padding-left:46px}.forum-level-ann-list-item a{flex-wrap:wrap}.forum-level-ann-list-meta{width:100%;padding-left:44px}}
@media (prefers-reduced-motion:reduce){.forum-level-topbar-track{animation:none}}.forum-level-diff-legend span{font-size:11px}
.forum-level-edit-diff-wrap{max-height:420px;overflow:auto}
.forum-level-nav-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 16px 0 0;border-right:1px solid var(--line-soft)}
.forum-level-nav-group:last-child{border-right:0;padding-right:0}
.forum-level-nav-group-title{font-size:var(--font-size-xxs);color:var(--text-subtle);font-weight:600;letter-spacing:.05em;white-space:nowrap;margin-right:2px}
.forum-level-nav-link{display:inline-flex;align-items:center;padding:4px 13px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm);text-decoration:none;line-height:1.4;transition:border-color var(--transition-normal),color var(--transition-normal),background var(--transition-normal),box-shadow var(--transition-normal)}
.forum-level-nav-link:hover{border-color:var(--brand);color:var(--brand)}
.forum-level-nav-link.is-active{border-color:var(--brand);background:var(--brand);color:var(--inverse-text);font-weight:600;box-shadow:0 2px 8px var(--brand-soft)}
@media(max-width:720px){.forum-level-admin-nav{padding:10px}.forum-level-nav-group{border-right:0;padding-right:0;width:100%}.forum-level-nav-group-title{width:100%}}
.forum-level-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 4px 14px var(--shadow-base);padding:16px}
.forum-level-dash-block{overflow:hidden}
.forum-level-block-title{font-size:var(--font-size-md);font-weight:700;color:var(--text);margin:0 0 12px;display:flex;align-items:center;gap:8px}
.forum-level-block-title::before{content:"";width:4px;height:14px;border-radius:2px;background:linear-gradient(180deg,var(--brand),var(--info));flex:none}
.forum-level-block-link{float:right;font-size:var(--font-size-xs);color:var(--brand);font-weight:600}
.forum-level-block-link:hover{text-decoration:underline}
.forum-level-dash-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.forum-level-warn{padding:12px 14px;border:1px solid var(--warning);background:var(--warning-soft);border-radius:var(--radius);font-size:var(--font-size-sm);color:var(--warning);line-height:1.6;margin-bottom:0}
/* —— 封禁申诉页：封禁信息警示卡 —— */
.forum-level-ban-info{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--danger);background:var(--danger-soft);border-radius:var(--radius);font-size:var(--font-size-sm);color:var(--text);line-height:1.6;margin:0 0 12px}
.forum-level-ban-info b{color:var(--danger);font-size:var(--font-size-md)}
.forum-level-danger{padding:12px 14px;border:1px solid var(--danger);border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);font-size:var(--font-size-sm);line-height:1.6;margin:10px 0}/* 分布条 */
.forum-level-bars{display:flex;flex-direction:column;gap:10px}
.forum-level-bar-row{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:12px}
.forum-level-bar-label{min-width:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.forum-level-bar-bound{font-size:var(--font-size-xxs);color:var(--info);border:1px solid var(--info);border-radius:999px;padding:0 6px;white-space:nowrap}
.forum-level-bar-track{height:10px;border-radius:999px;background:var(--line-soft);overflow:hidden}
.forum-level-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand),var(--info));min-width:2px;transition:width .4s ease}
.forum-level-bar-value{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
/* 排行榜 */
.forum-level-rank-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft)}
.forum-level-rank-item:last-child{border-bottom:none}
.forum-level-rank-no{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--bg);border:1px solid var(--line);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:700;flex:none}
.forum-level-rank-no.rank-1{background:var(--warning-soft);border-color:var(--warning);color:var(--warning)}
.forum-level-rank-no.rank-2{background:var(--info-soft);border-color:var(--info);color:var(--info)}
.forum-level-rank-no.rank-3{background:var(--success-soft);border-color:var(--success);color:var(--success)}
.forum-level-rank-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.forum-level-rank-name:hover{color:var(--brand)}
.forum-level-rank-val{font-size:var(--font-size-sm);color:var(--brand);font-variant-numeric:tabular-nums;white-space:nowrap}/* 最新动态 */
.forum-level-feed{display:flex;flex-direction:column;gap:10px}
.forum-level-feed-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:12px 14px;display:flex;flex-direction:column;gap:7px;transition:box-shadow var(--transition-normal),border-color var(--transition-normal)}
.forum-level-feed-item:hover{border-color:var(--line);box-shadow:0 2px 8px var(--shadow-base)}
.forum-level-feed-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.forum-level-feed-user{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}
.forum-level-feed-user:hover{color:var(--brand)}
.forum-level-feed-head .forum-level-log-delta{margin-left:auto}
.forum-level-feed-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:var(--font-size-xs);color:var(--text-muted)}
.forum-level-feed-meta span{word-break:break-word}
.forum-level-feed-time{margin-left:auto;color:var(--text-subtle);white-space:nowrap}/* ---------- 11. 后台：设置表单 ---------- */
.forum-level-form{margin:0}
.forum-level-details{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);margin-bottom:12px;overflow:hidden;box-shadow:0 2px 8px var(--shadow-base)}
.forum-level-details>summary{cursor:pointer;padding:14px 16px;font-size:var(--font-size-md);font-weight:700;color:var(--text);list-style:none;display:flex;align-items:center;gap:8px;user-select:none;transition:background var(--transition-normal)}
.forum-level-details>summary::before{content:"";border:solid var(--text-subtle);border-width:0 2px 2px 0;display:inline-block;padding:3px;transform:rotate(45deg);transition:transform .15s ease;flex:none}
.forum-level-details[open]>summary::before{transform:rotate(225deg)}
.forum-level-details>summary:hover{background:var(--bg);color:var(--brand)}
.forum-level-details-body{padding:6px 16px 16px;border-top:1px solid var(--line-soft)}
.forum-level-rows{display:flex;flex-direction:column;gap:10px}
.forum-level-row{display:flex;gap:12px;flex-wrap:wrap}
.forum-level-cell{display:flex;flex-direction:column;gap:5px;font-size:var(--font-size-xs);color:var(--text-muted);flex:1;min-width:130px}
.forum-level-cell-narrow{flex:0 0 120px}
.forum-level-cell-wide{flex:3;min-width:200px}
.forum-level-cell input,.forum-level-cell-select{padding:8px 10px;min-height:36px}
.forum-level-checks{display:flex;flex-direction:column;gap:10px;margin:10px 0}
.forum-level-checks>*{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--panel)}
.forum-level-hint{font-size:var(--font-size-xs);color:var(--text-subtle);margin:8px 0;line-height:1.6}
.forum-level-sub-title{font-size:var(--font-size-sm);font-weight:700;color:var(--text);margin:16px 0 6px}
.forum-level-fieldset{padding:14px 0;border-top:1px solid var(--line-soft)}
.forum-level-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:10px 0}
.forum-level-setting-card{display:flex;flex-direction:column;gap:8px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.forum-level-setting-card-wide{grid-column:span 2}
.forum-level-setting-card-title{color:var(--text);font-size:var(--font-size-sm);font-weight:700}
.forum-level-notifications{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);margin:10px 0}
.forum-level-notifications-head{display:grid;gap:3px}
.forum-level-notifications-head strong{color:var(--text);font-size:var(--font-size-md)}
.forum-level-notifications-head span{color:var(--text-subtle);font-size:var(--font-size-sm)}
.forum-level-notification-option{display:inline-flex;align-items:center;gap:6px;color:var(--text);font-size:var(--font-size-sm);cursor:pointer}
.forum-level-notification-options{display:flex;flex-wrap:wrap;gap:8px 16px}
.forum-level-form-actions{margin-top:14px}
.forum-level-form-actions-sticky{position:sticky;bottom:0;padding:10px 0;background:var(--panel);border-top:1px solid var(--line-soft);margin-top:6px}
.forum-level-submit{box-shadow:0 2px 6px var(--focus-halo)}
.forum-level-level-bind{display:flex;align-items:flex-end;padding-bottom:8px}/* ---------- 12. 后台：用户管理 ---------- */
.forum-level-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.forum-level-filter{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg)}
.forum-level-filter-count{margin-left:auto;align-self:center;color:var(--text-subtle);font-size:var(--font-size-xs);white-space:nowrap}
.forum-level-toolbar-users{border:0;padding:0;background:transparent}
.forum-level-user-list{display:flex;flex-direction:column;gap:8px}
.forum-level-user-item{display:flex;flex-direction:column;gap:7px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);text-decoration:none;transition:border-color var(--transition-normal),box-shadow var(--transition-normal),background var(--transition-normal)}
.forum-level-user-item:hover{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 2px 8px var(--shadow-base)}
.forum-level-user-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.forum-level-user-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}
.forum-level-user-nick{font-size:var(--font-size-xs);color:var(--brand);background:var(--success-soft);border-radius:4px;padding:1px 7px}
.forum-level-user-sp{font-size:var(--font-size-xs);color:var(--brand);font-weight:600}
.forum-level-user-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:var(--font-size-xs);color:var(--text-muted)}
.forum-level-user-meta b{color:var(--text);font-variant-numeric:tabular-nums}
.forum-level-uid{font-size:var(--font-size-xs);color:var(--text-subtle)}
.forum-level-detail-top{margin-bottom:6px}
.forum-level-back{font-size:var(--font-size-sm);color:var(--brand);font-weight:600}
.forum-level-back:hover{text-decoration:underline}
.forum-level-detail-hero{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,var(--brand-soft),var(--panel) 65%);box-shadow:0 6px 18px var(--shadow-base)}
.forum-level-detail-id{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.forum-level-detail-name{font-size:var(--font-size-lg);font-weight:700;color:var(--text)}
.forum-level-grant{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-top:12px}
.forum-level-note{font-size:var(--font-size-xs);color:var(--text-subtle);margin-top:8px;line-height:1.6}
.forum-level-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:38px 16px;text-align:center;color:var(--text-muted)}
.forum-level-empty::before{content:"";width:44px;height:44px;border-radius:12px;border:1px dashed var(--line,#dbe2ea);background:var(--bg,#f7f9fc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23bcc7d4' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13h4l1.5 3h7L17 13h4'/%3E%3Cpath d='M5 4h14l2 8v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-6z'/%3E%3C/svg%3E")}
.forum-level-empty b{font-size:var(--font-size-md);color:var(--text-subtle);font-weight:600}/* ---------- 13. 后台：权限矩阵与模块 ---------- */
.forum-level-table-wrap{overflow-x:auto}
.forum-level-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.forum-level-table th,.forum-level-table td{padding:9px 12px;border-bottom:1px solid var(--line-soft);text-align:left;white-space:nowrap}
.forum-level-table th{background:var(--bg);color:var(--text-subtle);font-size:var(--font-size-xs);font-weight:600}
.forum-level-table tbody tr{transition:background var(--transition-normal)}
.forum-level-table tbody tr:hover{background:var(--bg)}
.forum-level-table tbody tr:last-child td{border-bottom:none}
.forum-level-perm-select{padding:5px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);font-size:var(--font-size-xs);min-width:74px;cursor:pointer}
.forum-level-perm-select.is-allow{border-color:var(--success);color:var(--success);background:var(--success-soft);font-weight:600}
.forum-level-perm-select.is-deny{border-color:var(--danger);color:var(--danger);background:var(--danger-soft);font-weight:600}
.forum-level-perm-select.is-default{color:var(--text-subtle)}
.forum-level-module-list{display:flex;flex-direction:column;gap:8px}
.forum-level-module-item{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);transition:border-color var(--transition-normal)}
.forum-level-module-item:hover{border-color:var(--brand)}
.forum-level-module-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.forum-level-module-key{font-size:var(--font-size-xs);color:var(--brand);font-family:var(--font-mono);border:1px dashed var(--brand);border-radius:var(--radius-sm);padding:1px 8px;background:var(--brand-soft)}
.forum-level-module-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}
.forum-level-module-side{display:flex;align-items:center;gap:10px}
/* ---------- 13b. 用户组体系与组权限编辑器 ---------- */
.forum-level-section-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:14px 0 6px;padding-top:12px;border-top:1px dashed var(--line-soft)}
.forum-level-section-title b{font-size:var(--font-size-sm);color:var(--text);font-weight:700}
.forum-level-section-title span{font-size:var(--font-size-xs);color:var(--text-subtle)}
.forum-level-cell-name{font-weight:600;color:var(--text)}
.forum-level-empty-cell{text-align:center;color:var(--text-subtle);padding:18px 12px}
.forum-level-editor-details{border-radius:var(--radius);background:var(--bg);border:1px dashed var(--line);transition:border-color var(--transition-normal)}
.forum-level-editor-details[open]{border-color:var(--brand);background:var(--panel)}
.forum-level-editor-summary{display:flex;align-items:center;gap:6px;cursor:pointer;padding:6px 10px;font-size:var(--font-size-sm);color:var(--brand);user-select:none;list-style:none}
.forum-level-editor-summary::-webkit-details-marker{display:none}
.forum-level-editor-summary::before{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--brand);transition:transform var(--transition-normal)}
.forum-level-editor-details[open] .forum-level-editor-summary::before{transform:rotate(180deg)}
.forum-level-editor-summary:hover{color:var(--brand-hover)}
.forum-level-editor-block{padding:12px 14px;border-top:1px solid var(--line-soft);display:flex;flex-direction:column;gap:8px}
.forum-level-editor-block:first-of-type{border-top:none}
.forum-level-editor-title{font-size:var(--font-size-sm);font-weight:700;color:var(--text)}
.forum-level-cap-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 0}
.forum-level-cap-item+.forum-level-cap-item{border-top:1px dashed var(--line-soft)}
.forum-level-cap-title{font-size:var(--font-size-xs);font-weight:600;color:var(--text-muted);margin:4px 0}
.forum-level-cap-title-sub{display:block;margin-top:2px;font-weight:400;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.forum-level-cap-modtag{margin-left:6px;font-style:normal;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.forum-level-cap-desc{font-size:var(--font-size-xs);color:var(--text-subtle);flex:1;min-width:180px}
.forum-level-cap-checks{display:flex;gap:8px 14px;flex-wrap:wrap}
.forum-level-check{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-sm);color:var(--text);cursor:pointer}
/* #29 公告后台 UI 修复：开关/输入宽度、标签对齐与字体 */
.forum-level-form .forum-level-admin input[type="checkbox"],.forum-level-notification-option input[type="checkbox"],.forum-level-check input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:44px;height:24px;flex:0 0 44px;margin:0;border:none;border-radius:12px;background:var(--line,#cbd5e1);position:relative;cursor:pointer;transition:background .15s}
.forum-level-check input[type="checkbox"]::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.28);transition:left .15s}
.forum-level-check input[type="checkbox"]:checked{background:var(--brand,#e5484d)}
.forum-level-check input[type="checkbox"]:checked::after{left:22px}
.forum-level-check input[type="checkbox"]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}
.forum-level-form .forum-level-check input[type="radio"]{width:18px;height:18px;flex:0 0 18px;margin:0;accent-color:var(--brand,#e5484d)}
.forum-level-form .forum-level-cap-checks{margin:8px 0 14px}
.forum-level-form .forum-level-cap-label{flex-basis:100%;font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary,#374151)}
.forum-level-form input[type="text"],.forum-level-form input[type="datetime-local"],.forum-level-form select,.forum-level-form textarea{min-width:0;width:100%;box-sizing:border-box}
.forum-level-form .forum-level-cell-inline{flex:0 0 auto;min-width:230px}
.forum-level-form .forum-level-row .forum-level-check{flex:0 0 auto;white-space:nowrap;padding:4px 8px}
.forum-level-table .forum-level-stage-note{display:block;font-size:11px;color:var(--text-muted,#9ca3af);margin-top:2px}
@media(max-width:720px){.forum-level-form .forum-level-cell-inline{flex-basis:100%;min-width:0}.forum-level-form .forum-level-cap-checks .forum-level-check{flex-wrap:wrap}}
.forum-level-check input{accent-color:var(--brand)}
.forum-level-submit-sm{width:auto;padding:4px 10px;font-size:var(--font-size-xs)}
.forum-level-table td .forum-level-chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.forum-level-table td .forum-level-chips .forum-level-submit-sm{padding:3px 8px}
.forum-level-tag.is-type-independent{color:#6b7280;border-color:#d1d5db}
.forum-level-tag.is-type-hierarchy{color:#2563eb;border-color:#bfdbfe;background:#eff6ff}
.forum-level-module-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.forum-level-module-edit{display:flex;flex-direction:column;gap:8px;width:100%;padding:10px 12px;border-top:1px dashed var(--line-soft);margin-top:8px}
.forum-level-perm-table{min-width:320px}
.forum-level-adjust .forum-level-row{gap:10px}
.forum-level-adjust-preview{padding:9px 12px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--bg);font-size:var(--font-size-sm);color:var(--text-muted);line-height:1.8}
.forum-level-preview-level{color:var(--brand);font-weight:600;margin-left:6px}
.forum-level-perm-table{min-width:320px}
/* ---------- 13c. 功能模块权限：折叠卡片与权限点 ---------- */
.forum-level-module-list{display:flex;flex-direction:column;gap:10px}
.forum-level-module-details{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden;transition:border-color var(--transition-normal)}
.forum-level-module-details[open]{border-color:var(--brand)}
.forum-level-module-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;cursor:pointer;list-style:none;user-select:none}
.forum-level-module-summary::-webkit-details-marker{display:none}
.forum-level-module-summary::before{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--text-subtle);transition:transform var(--transition-normal)}
.forum-level-module-details[open] .forum-level-module-summary::before{transform:rotate(180deg)}
.forum-level-module-summary:hover{background:var(--bg)}
.forum-level-module-key{font-size:var(--font-size-xs);color:var(--brand);font-family:var(--font-mono);border:1px dashed var(--brand);border-radius:var(--radius-sm);padding:1px 8px;background:var(--brand-soft)}
.forum-level-module-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}
.forum-level-module-desc{font-size:var(--font-size-xs);color:var(--text-subtle);flex:1;min-width:180px}
.forum-level-module-state{font-size:var(--font-size-xs);padding:1px 10px;border-radius:999px;background:var(--line-soft);color:var(--text-muted)}
.forum-level-module-state.is-on{background:var(--success-soft);color:var(--success);font-weight:600}
.forum-level-module-body{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-top:1px dashed var(--line-soft)}
.forum-level-module-tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.forum-level-module-perm{padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg)}
.forum-level-module-perm-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.forum-level-module-perm-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}
.forum-level-module-perm-desc{font-size:var(--font-size-xs);color:var(--text-subtle);flex:1;min-width:160px}
.forum-level-module-perm-state{font-size:var(--font-size-xs)}
/* ---------- 13d. 工单系统（前台） ---------- */
.forum-level-ticket-actions{display:flex;gap:10px;margin:10px 0}
.forum-level-btn-primary{display:inline-block;padding:7px 18px;border-radius:var(--radius);background:var(--brand);color:#fff;font-size:var(--font-size-sm);text-decoration:none;border:none;cursor:pointer}
.forum-level-btn-primary:hover{background:var(--brand-hover)}
.forum-level-ticket-list{display:grid;gap:10px}
.forum-level-ticket-item{padding:12px 14px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);transition:border-color var(--transition-normal)}
.forum-level-ticket-item:hover{border-color:var(--brand)}
.forum-level-ticket-item-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.forum-level-ticket-cat{font-size:var(--font-size-xs);padding:1px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand)}
.forum-level-ticket-title{font-weight:600;color:var(--text);text-decoration:none}
.forum-level-ticket-title:hover{color:var(--brand)}
.forum-level-ticket-status{font-size:var(--font-size-xs);padding:1px 8px;border-radius:999px;background:var(--line-soft);color:var(--text-muted)}
.forum-level-ticket-status-0{background:var(--warning-soft);color:var(--warning)}
.forum-level-ticket-status-1{background:var(--info-soft);color:var(--info)}
.forum-level-ticket-status-2{background:var(--success-soft);color:var(--success);font-weight:600}
.forum-level-ticket-status-3{background:var(--line-soft);color:var(--text-muted)}
.forum-level-ticket-meta{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:6px}
.forum-level-ticket-urgency-low{color:var(--text-muted)}
.forum-level-ticket-urgency-mid{color:var(--warning);font-weight:600}
.forum-level-ticket-urgency-high{color:var(--danger);font-weight:600}
.forum-level-ticket-filters{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.forum-level-ticket-filter{display:inline-block;padding:4px 12px;border:1px solid var(--line-soft);border-radius:999px;font-size:var(--font-size-sm);color:var(--text-muted);text-decoration:none}
.forum-level-ticket-filter.is-active,.forum-level-ticket-filter:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}
.forum-level-ticket-staff-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;padding:10px 12px;border:1px dashed var(--info);border-radius:var(--radius);background:var(--info-soft)}
.forum-level-ticket-staff-note{font-size:var(--font-size-xs);color:var(--text-muted)}
.forum-level-ticket-view-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.forum-level-ticket-view-title{margin:10px 0 4px;font-size:var(--font-size-md);color:var(--text)}
.forum-level-ticket-view-content{margin-top:10px;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg);word-break:break-word;white-space:pre-wrap;line-height:1.7}
.forum-level-ticket-messages{display:grid;gap:10px;margin-top:10px}
.forum-level-ticket-message{padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.forum-level-ticket-message.is-staff{background:var(--info-soft);border-color:var(--info)}
.forum-level-ticket-message.is-user{background:var(--bg)}
.forum-level-ticket-message-head{display:flex;justify-content:space-between;gap:8px;font-size:var(--font-size-xs);color:var(--text-muted);margin-bottom:4px}
.forum-level-ticket-message-user{font-weight:600;color:var(--text);display:inline-flex;align-items:center;gap:6px}
.forum-level-ticket-message-group{font-weight:400;font-size:var(--font-size-xxs);color:var(--text-subtle);padding:1px 7px;border:1px solid var(--line-soft);border-radius:999px;background:var(--bg)}
.forum-level-ticket-message-badge{margin-left:6px;font-weight:600;font-size:var(--font-size-xxs);color:var(--brand);padding:1px 7px;border:1px solid var(--brand);border-radius:999px;background:var(--success-soft)}
.forum-level-ticket-message-content img{max-width:100%;height:auto;border-radius:6px;margin:4px 0}
.forum-level-ticket-message-content{word-break:break-word;white-space:pre-wrap;line-height:1.6}
/* 工单流转记录（时间线中的居中系统提示）与顶部状态条 */
.forum-level-ticket-flow{display:flex;align-items:center;justify-content:center;gap:8px;margin:2px auto;padding:3px 12px;font-size:var(--font-size-xs);color:var(--text-subtle)}
.forum-level-ticket-flow span{background:var(--bg);border:1px solid var(--line-soft);border-radius:999px;padding:3px 12px}
.forum-level-ticket-flow time{color:var(--text-disabled)}
.forum-level-ticket-flow-banner{display:flex;align-items:center;gap:8px;margin:10px 0 4px;padding:8px 14px;border-radius:var(--radius);border:1px solid var(--line-soft);background:var(--bg);font-size:var(--font-size-sm);font-weight:600}
.forum-level-ticket-flow-dot{width:8px;height:8px;border-radius:50%;background:var(--text-subtle);flex:0 0 auto}
.forum-level-ticket-flow-s0{border-color:var(--warning);background:var(--warning-soft);color:var(--warning)}
.forum-level-ticket-flow-s0 .forum-level-ticket-flow-dot{background:var(--warning)}
.forum-level-ticket-flow-s1{border-color:var(--info);background:var(--info-soft);color:var(--info)}
.forum-level-ticket-flow-s1 .forum-level-ticket-flow-dot{background:var(--info);animation:forum-level-flow-pulse 1.6s ease-in-out infinite}
.forum-level-ticket-flow-s2{border-color:var(--success);background:var(--success-soft);color:var(--success)}
.forum-level-ticket-flow-s2 .forum-level-ticket-flow-dot{background:var(--success)}
.forum-level-ticket-flow-s3,.forum-level-ticket-flow-s4{color:var(--text-muted)}
@keyframes forum-level-flow-pulse{0%,100%{box-shadow:0 0 0 0 var(--info-soft)}50%{box-shadow:0 0 0 4px transparent}}
.forum-level-ticket-reply{margin-top:12px;display:grid;gap:8px}
.forum-level-ticket-reply textarea{min-height:80px}
.forum-level-ticket-reply-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.forum-level-ticket-reply-hint{font-size:var(--font-size-xxs);color:var(--text-subtle)}
/* 后台工单设置：分类列表 + 权限速览 + 折叠说明 */
.forum-level-cat-list{display:flex;flex-direction:column;gap:8px;margin:8px 0}
.forum-level-cat-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.forum-level-cat-row.is-new{border-top:1px dashed var(--line-soft);padding-top:10px}
.forum-level-cat-key{min-width:96px;font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--brand);background:var(--brand-soft);border:1px dashed var(--brand);border-radius:var(--radius-sm);padding:3px 10px;text-align:center}
.forum-level-cat-input{flex:1;min-height:32px;border:1px solid var(--line);border-radius:var(--radius);padding:0 10px;font-size:var(--font-size-sm);background:var(--bg);color:var(--text);font-family:inherit}
.forum-level-cat-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px var(--focus-halo)}
.forum-level-permview{display:flex;flex-direction:column;border:1px solid var(--line-soft);border-radius:var(--radius);overflow:hidden;margin:8px 0}
.forum-level-permview-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-top:1px solid var(--line-soft)}
.forum-level-permview-row:first-child{border-top:0}
.forum-level-permview-name{min-width:96px;font-weight:600;font-size:var(--font-size-sm);color:var(--text)}
.forum-level-permview-groups{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.forum-level-usage{margin-top:10px;border-top:1px solid var(--line-soft);padding-top:8px}
.forum-level-usage>summary{cursor:pointer;font-size:var(--font-size-sm);font-weight:600;color:var(--text-muted)}
.forum-level-usage-list{margin:8px 0 0;padding-left:18px;font-size:var(--font-size-xs);color:var(--text-subtle);line-height:1.8}
.forum-level-ticket-staff-ops{margin-top:12px;padding:10px 12px;border:1px dashed var(--danger);border-radius:var(--radius);background:var(--danger-soft);display:flex;flex-direction:column;gap:8px}
.forum-level-ticket-staff-ops-title{font-size:var(--font-size-sm);font-weight:600;color:var(--danger)}
.forum-level-ticket-staff-ops.is-owner{border-style:solid;border-color:var(--line-soft);background:var(--panel)}
.forum-level-ticket-staff-ops.is-owner .forum-level-ticket-staff-ops-title{color:var(--text-muted);font-weight:600}
.forum-level-ticket-op{padding:5px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);font-size:var(--font-size-sm);cursor:pointer}
.forum-level-ticket-op.is-resolve{color:var(--success);border-color:var(--success)}
.forum-level-ticket-op.is-close{color:var(--danger);border-color:var(--danger)}
.forum-level-ticket-op.is-transfer{color:var(--info);border-color:var(--info)}
.forum-level-ticket-transfer{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.forum-level-ticket-transfer select{padding:5px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-ticket-back{margin-top:14px;font-size:var(--font-size-sm);color:var(--text-muted)}
.forum-level-ticket-back a{color:var(--brand);text-decoration:none}/* ---------- 14. 滚动容器与响应式 ---------- */
/* v4.13：原仅 overflow-y，宽表格（如用户组权限矩阵）会撑破容器；改为双向滚动。 */
.forum-level-scroll{max-height:360px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.forum-level-scroll::-webkit-scrollbar{width:6px;height:6px}
.forum-level-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.forum-level-scroll-x{overflow-x:auto;scrollbar-width:thin}
.forum-level-scroll-x::-webkit-scrollbar{height:6px}
.forum-level-scroll-x::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.forum-level-stats-nowrap{display:flex;flex-wrap:nowrap;gap:10px}
.forum-level-stats-nowrap .forum-level-stat{flex:0 0 auto;min-width:118px}
@media (max-width:720px){.forum-level-bar-row{grid-template-columns:110px 1fr}.forum-level-bar-value{grid-column:1/-1;text-align:right}}
@media (max-width:640px){.forum-level-cell{min-width:100%}.forum-level-deny-actions{flex-direction:column}.forum-level-deny-btn{width:100%}}
@media (prefers-reduced-motion:reduce){.forum-level-progress-fill,.forum-level-cal-cell,.forum-level-details>summary::before,.forum-level-stat,.forum-level-log-item,.forum-level-user-item{transition:none}}/* ---------- 15. 功能模块卡片与权限弹窗 ---------- */
.forum-level-module-list{display:flex;flex-direction:column;gap:12px}
.forum-level-module-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);overflow:hidden}
.forum-level-module-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px 10px;border-bottom:1px solid var(--line-soft)}
.forum-level-module-card-titles{display:flex;flex-direction:column;gap:3px;min-width:0}
.forum-level-module-key{font-size:var(--font-size-xxs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--info)}
.forum-level-module-label{font-size:var(--font-size-md);font-weight:700;color:var(--text)}
.forum-level-module-desc{font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.5}
.forum-level-module-state{flex:none;font-size:var(--font-size-xxs);font-weight:600;border-radius:999px;padding:2px 10px;background:var(--line-soft);color:var(--text-muted)}
.forum-level-module-state.is-on{background:var(--success-soft);color:var(--success)}
.forum-level-module-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 18px;padding:10px 14px;font-size:var(--font-size-xs)}
.forum-level-module-summary-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.forum-level-module-summary-row .forum-level-module-perm-label{color:var(--text-muted);white-space:nowrap}
.forum-level-module-perm-state{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;min-width:0}
.forum-level-module-card-foot{padding:0 14px 12px;display:flex;justify-content:flex-end}
.forum-level-note.is-soft{color:var(--text-subtle);font-style:italic}
.forum-level-modal{position:fixed;inset:0;z-index:1000;display:none}
.forum-level-modal.is-open{display:block}
.forum-level-modal-mask{position:absolute;inset:0;background:rgba(16,24,32,.55);backdrop-filter:blur(2px)}
.forum-level-modal-panel{position:relative;max-width:680px;margin:4vh auto 0;background:var(--panel);border-radius:var(--radius);box-shadow:0 24px 60px rgba(0,0,0,.28);display:flex;flex-direction:column;max-height:92vh}
.forum-level-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 12px;border-bottom:1px solid var(--line)}
.forum-level-modal-title{font-size:var(--font-size-lg);color:var(--text)}
.forum-level-modal-sub{display:block;margin-top:3px;font-size:var(--font-size-xs);color:var(--text-muted);font-weight:400}
.forum-level-modal-x{flex:none;border:0;background:none;font-size:var(--forum-level-fs-close);line-height:1;color:var(--text-muted);cursor:pointer;padding:0 4px}
.forum-level-modal-x:hover{color:var(--danger)}
.forum-level-modal-body{padding:14px 18px 16px;display:flex;flex-direction:column;gap:12px}
.forum-level-modal-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.forum-level-modal-tools .forum-level-cell{flex:1;min-width:200px}
.forum-level-modal-base{border:1px solid var(--brand-soft);border-radius:var(--radius);background:var(--brand-soft);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.forum-level-modal-base-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.forum-level-modal-base-tag{font-size:var(--font-size-xxs);font-weight:700;color:var(--brand);border:1px solid var(--brand);border-radius:999px;padding:1px 8px;background:var(--panel)}
.forum-level-modal-base-state,.forum-level-modal-op-summary .forum-level-module-perm-state{display:flex;flex-wrap:wrap;gap:4px}
.forum-level-modal-op{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.forum-level-modal-op summary{list-style:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;cursor:pointer;font-size:var(--font-size-sm)}
.forum-level-modal-op summary::-webkit-details-marker{display:none}
.forum-level-modal-op summary::before{content:"▸";color:var(--text-subtle);transition:transform var(--transition-normal)}
.forum-level-modal-op[open] summary::before{transform:rotate(90deg)}
.forum-level-modal-op summary .forum-level-module-perm-label{font-weight:600;color:var(--text)}
.forum-level-modal-op summary .forum-level-module-perm-desc{flex:1;min-width:160px;color:var(--text-muted);font-size:var(--font-size-xs)}
.forum-level-modal-op-body{padding:4px 12px 12px;border-top:1px dashed var(--line)}
.forum-level-modal-op-hint{font-size:var(--font-size-xxs);color:var(--info);margin:6px 0 8px}
.forum-level-modal-op .forum-level-check.is-warn{outline:1px dashed var(--warning);outline-offset:2px;border-radius:var(--radius);background:var(--warning-soft)}
.forum-level-modal-warnbar{margin:0;padding:8px 12px;border-radius:var(--radius);background:var(--warning-soft);border:1px solid var(--warning);color:var(--warning);font-size:var(--font-size-sm);line-height:1.5}
.forum-level-modal-foot{padding-top:4px;display:flex;justify-content:flex-end;border-top:1px solid var(--line);margin-top:2px;padding-top:12px}/* ---------- 15b. 招聘入职（招募卡片 / 详情 / 申请表单） ---------- */
.fl-rec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:14px}
.fl-rec-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.fl-rec-card.is-closed{opacity:.72}
.fl-rec-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fl-rec-state{flex:none;font-size:var(--font-size-xxs);font-weight:700;border-radius:999px;padding:2px 10px;line-height:1.6}
.fl-rec-open{background:var(--success-soft,#e6f6ec);color:var(--success,#12a150);border:1px solid var(--success,#12a150)}
.fl-rec-closed{background:var(--bg);color:var(--text-muted);border:1px solid var(--line)}
.fl-rec-state.is-pending{background:var(--warning-soft);color:var(--warning);border:1px solid var(--warning)}
.fl-rec-state.is-approved{background:var(--success-soft,#e6f6ec);color:var(--success,#12a150);border:1px solid var(--success,#12a150)}
.fl-rec-state.is-rejected{background:var(--danger-soft,#fdeaea);color:var(--danger,#e5484d);border:1px solid var(--danger,#e5484d)}
.fl-rec-org{font-size:var(--font-size-sm);font-weight:600;color:var(--brand)}
.fl-rec-meta{font-size:var(--font-size-xs);color:var(--text-muted)}
.fl-rec-title{font-size:17px;color:var(--text);margin:0;line-height:1.5}
.fl-rec-title a{color:var(--text);text-decoration:none}
.fl-rec-title a:hover{color:var(--brand)}
.fl-rec-desc{font-size:var(--font-size-sm);color:var(--text-muted);line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fl-rec-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}
.fl-rec-target{font-size:var(--font-size-xs);color:var(--text-muted)}
.fl-rec-req,.fl-rec-no-req{font-size:var(--font-size-xs);color:var(--text-muted)}
.fl-rec-tabs{display:flex;gap:8px;margin:10px 0 4px;border-bottom:1px solid var(--line);padding-bottom:0}
.fl-rec-tabs a{font-size:var(--font-size-sm);color:var(--text-muted);text-decoration:none;padding:7px 14px;border-bottom:2px solid transparent}
.fl-rec-tabs a.is-active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}
.fl-rec-mylink{font-size:var(--font-size-sm);margin:8px 0 0}
.fl-rec-mylink a{color:var(--brand);text-decoration:none}
.fl-rec-detail .fl-rec-detail-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.fl-rec-detail .fl-rec-title{font-size:var(--font-size-lg)}
.fl-rec-desc-block{font-size:var(--font-size-sm);color:var(--text);line-height:1.7;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:10px 0}
.fl-rec-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:6px 0;font-size:var(--font-size-sm)}
.fl-rec-meta-label{flex:none;color:var(--text-muted);font-size:var(--font-size-xs)}
.fl-rec-form{margin-top:16px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.fl-rec-field{display:flex;flex-direction:column;gap:5px}
.fl-rec-field-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}
.fl-rec-required{color:var(--danger)}
.fl-rec-input{width:100%;box-sizing:border-box;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.fl-rec-radio,.fl-rec-check{display:inline-flex;align-items:center;gap:5px;margin-right:14px;font-size:var(--font-size-sm);color:var(--text)}
.fl-rec-app-state{border-radius:var(--radius);padding:10px 14px;margin-top:12px;font-size:var(--font-size-sm)}
.fl-rec-app-state.is-pending{background:var(--warning-soft);color:var(--warning);border:1px solid var(--warning)}
.fl-rec-app-state.is-approved{background:var(--success-soft,#e6f6ec);color:var(--success,#12a150);border:1px solid var(--success,#12a150)}
.fl-rec-app-state.is-rejected{background:var(--danger-soft,#fdeaea);color:var(--danger,#e5484d);border:1px solid var(--danger,#e5484d)}
.fl-rec-app-block{margin-top:12px;padding:10px 14px;border-radius:var(--radius);background:var(--bg);border:1px dashed var(--line);color:var(--text-muted);font-size:var(--font-size-sm)}
.fl-rec-login-tip{font-size:var(--font-size-sm);margin-top:12px}
.fl-rec-login-tip a{color:var(--brand)}
.fl-rec-back{margin-top:14px;font-size:var(--font-size-sm)}
.fl-rec-back a{color:var(--brand);text-decoration:none}
.fl-rec-ans{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0}
.fl-rec-handler-note{font-size:var(--font-size-xs);color:var(--text-muted);border-left:3px solid var(--line);padding-left:8px}
/* ---------- 15c. 人事工作台（前台，拥有人事权成员） ---------- */
.fl-wb-page{max-width:960px;margin:0 auto}
.fl-wb-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.fl-wb-head-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fl-wb-sel{display:inline-flex;align-items:center;gap:8px;font-size:var(--font-size-sm);color:var(--text-muted)}
.fl-wb-sel>span{white-space:nowrap}
.fl-wb-sel select{min-width:200px;width:auto}
/* 成员列表「操作」列：一行放下「选择操作 + 备注 + 执行」，空间不足时表格横向滚动而不是纵向堆成三行 */
.fl-wb-card .forum-level-cell-ops{white-space:nowrap}
.fl-wb-card .forum-level-cell-ops .forum-level-inline{flex-wrap:nowrap;margin:0}
.fl-wb-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-top:10px}
.fl-wb-title{font-size:var(--font-size-base);font-weight:700;color:var(--text);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--line-soft,#f3f4f6)}
.fl-wb-note{font-size:var(--font-size-xs);color:var(--text-muted);margin-top:10px;line-height:1.6}
.fl-wb-badges{display:flex;flex-wrap:wrap;gap:5px}
.fl-wb-hr-tag{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--info-soft,#eff6ff);color:var(--info,#1d4ed8);border:1px solid var(--info-border,#bfdbfe);font-size:var(--font-size-xxs);font-weight:600}
.fl-wb-badge{display:inline-block;min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:9px;background:var(--danger,#e5484d);color:#fff;font-size:11px;font-weight:700;margin-left:6px;padding:0 5px}
.fl-wb-grade{width:130px;padding:4px 6px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-xs)}
.fl-wb-card .forum-level-inline{margin-bottom:4px}
/* 开关组件防挤压：含开关的窄单元格与行内标签不换行、不被 flex 压缩 */
.forum-level-row .forum-level-cell-narrow .forum-level-check,
.fl-wb-card .forum-level-check,
.forum-level-form .forum-level-check{flex:0 0 auto;white-space:nowrap;min-width:max-content}
.forum-level-cell-narrow input[type="checkbox"],.forum-level-cell input[type="checkbox"]{flex:0 0 44px}
/* ---------- 15d. 招募帖（同步发布为论坛主题的标记与信息条） ---------- */
.forum-level-hr-topic-badge{background:var(--brand,#e5484d);color:#fff;margin-left:8px}
.forum-level-hr-topic-bar{position:relative;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:16px 0;padding:16px 20px;background:#fff;border:1px solid var(--border,#e5e7eb);border-left:4px solid #16a34a;border-radius:12px;box-shadow:0 1px 4px rgba(0,0,0,.04);font-size:var(--font-size-sm)}
.forum-level-hr-topic-bar-icon{flex:0 0 auto;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#ecfdf5;font-size:20px;line-height:1}
.forum-level-hr-topic-bar-body{flex:1;min-width:220px;display:flex;flex-direction:column;gap:4px}
.forum-level-hr-topic-bar-body b{color:#16a34a;font-size:15px;letter-spacing:.2px}
.forum-level-hr-topic-bar-body span{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;color:var(--text-muted,#6b7280);font-size:var(--font-size-xs)}
.forum-level-hr-topic-bar-btn{flex:0 0 auto;padding:8px 20px;border-radius:999px;background:linear-gradient(135deg,#22c55e,#15803d);color:#fff!important;font-size:var(--font-size-sm);font-weight:600;text-decoration:none;box-shadow:0 2px 6px rgba(22,163,74,.25);transition:transform .15s ease,box-shadow .15s ease}
.forum-level-hr-topic-bar-btn:hover{color:#fff!important;transform:translateY(-1px);box-shadow:0 4px 10px rgba(22,163,74,.32);opacity:1}
.fl-rec-topic-link{display:inline-block;padding:3px 12px;border-radius:999px;border:1px solid var(--info-border,#bfdbfe);background:#fff;color:var(--info,#1d4ed8);font-size:var(--font-size-xs);text-decoration:none}
.fl-rec-topic-link:hover{background:var(--info-soft,#eff6ff)}
/* v4.11 层级特殊组视觉：大组/等级行区分、等级缩进与标记、单操作下拉 */
.forum-level-special-parent{background:var(--brand-soft,#fdf2f2)}
.forum-level-special-parent-name{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.forum-level-special-parent-tag{font-style:normal;font-size:var(--font-size-xxs);font-weight:700;color:#fff;background:var(--brand,#e5484d);border-radius:999px;padding:1px 9px;line-height:1.7}
.forum-level-special-child{background:var(--panel-soft,#fafafa)}
.forum-level-special-child-name{position:relative;display:inline-flex;align-items:center;gap:8px;padding-left:26px;color:var(--text,#111)}
.forum-level-special-child-name::before{content:"└";position:absolute;left:2px;color:var(--text-subtle,#9ca3af)}
.forum-level-special-grade{font-style:normal;font-size:var(--font-size-xxs);font-weight:600;color:var(--brand,#e5484d);border:1px solid var(--brand,#e5484d);border-radius:999px;padding:0 9px;line-height:1.7;background:#fff}
.fl-wb-grade{max-width:200px;padding:5px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text);font-size:var(--font-size-xs);box-sizing:border-box}
.fl-wb-grade:focus{outline:none;border-color:var(--brand)}/* ---------- 16. 用户组样式徽章与悬停信息卡 ---------- */
.fl-tip{position:relative;cursor:help}
.fl-tip::after{content:attr(data-tip);position:absolute;left:50%;top:calc(100% + 7px);transform:translateX(-50%);z-index:1200;max-width:300px;width:max-content;background:var(--inverse);color:var(--inverse-text);font-size:var(--font-size-sm);line-height:1.55;padding:7px 11px;border-radius:8px;box-shadow:var(--shadow-medium);opacity:0;pointer-events:none;transition:opacity .18s ease;text-align:center;white-space:normal;font-weight:400}
/* 去掉 CSS 回退提示框的三角箭头（视觉上像多余图标；JS 浮层本就无箭头）。 */
.fl-tip:hover::after,.fl-tip:hover::before{opacity:1}
@media (max-width:640px){.fl-tip::after{max-width:240px}}
/* 头像右下角叠加勋章：其悬停说明在帖子列表最左列时，居中气泡的左半会越出列表左边缘被裁掉；
 * 改为与徽章左侧对齐、向右展开（右边界再按内容收窄），确保完整落在列表内容区内。CSS 回退态与 JS 浮层未就绪时均生效。 */
.forum-level-utitle-avatar .fl-tip::after{left:0;right:auto;transform:none;top:calc(100% + 6px)}
/* JS 就绪后由浮层接管（fixed 定位，body 层级，永不被容器 overflow 裁切）；同时关闭 CSS 伪元素提示，避免双重气泡。 */
html.forum-level-tip-js .fl-tip::after,html.forum-level-tip-js .fl-tip::before{content:none;display:none}
.forum-level-tip-pop{position:fixed;z-index:2000;max-width:min(320px,86vw);width:max-content;background:var(--inverse);color:var(--inverse-text);font-size:var(--font-size-sm);line-height:1.55;padding:7px 11px;border-radius:8px;box-shadow:var(--shadow-medium);pointer-events:none;opacity:0;transform:translateY(2px);transition:opacity .16s ease,transform .16s ease;text-align:center;white-space:normal;font-weight:400}
.forum-level-tip-pop.is-show{opacity:1;transform:translateY(0)}
/* 特殊组徽章样式（等级组配置了自定义标识时，等级徽章亦复用同一配色）。 */
.forum-level-chip.fl-special-gold,.forum-level-badge.fl-special-gold{background:linear-gradient(135deg,#f2b93b,#f6d16a);color:#5c4300;border-color:transparent;font-weight:700}
.forum-level-chip.fl-special-blue,.forum-level-badge.fl-special-blue{background:linear-gradient(135deg,#2f80ed,#56a5ff);color:#fff;border-color:transparent}
.forum-level-chip.fl-special-purple,.forum-level-badge.fl-special-purple{background:linear-gradient(135deg,#7a5af8,#9b7bfa);color:#fff;border-color:transparent}
.forum-level-chip.fl-special-cyan,.forum-level-badge.fl-special-cyan{background:linear-gradient(135deg,#00b8d4,#33d6e8);color:#fff;border-color:transparent}
.forum-level-chip.fl-special-red,.forum-level-badge.fl-special-red{background:linear-gradient(135deg,#e5484d,#ff7a6e);color:#fff;border-color:transparent}
.forum-level-chip.fl-special-green,.forum-level-badge.fl-special-green{background:linear-gradient(135deg,#12b76a,#3fd69a);color:#fff;border-color:transparent}
.forum-level-chip.fl-special-rainbow,.forum-level-badge.fl-special-rainbow{background:linear-gradient(135deg,#f04438,#f79009,#fdb022,#12b76a,#1570ef,#7a5af8);color:#fff;border-color:transparent;font-weight:700}
.forum-level-chip.fl-special-grey,.forum-level-badge.fl-special-grey{background:var(--line-soft);color:var(--text-muted);border-color:transparent}
.forum-level-chip.fl-special-tier_blue,.forum-level-badge.fl-special-tier_blue{background:#e6f4ff;color:#0b57a4;border-color:#b8dbff;font-weight:600}
.forum-level-chip.fl-special-tier_green,.forum-level-badge.fl-special-tier_green{background:#e8f7ec;color:#116b32;border-color:#bfe6c9;font-weight:600}
.forum-level-chip.fl-special-tier_orange,.forum-level-badge.fl-special-tier_orange{background:#fff4e0;color:#9a5b00;border-color:#ffdfae;font-weight:600}
.forum-level-chip.fl-special-tier_purple,.forum-level-badge.fl-special-tier_purple{background:#f3e9ff;color:#6b21b6;border-color:#ddc7ff;font-weight:600}
/* 勋章徽章：与其它徽章同排；图标图片按统一高度缩放，任意尺寸都协调显示 */
.forum-level-title-badge{display:inline-flex;align-items:center;gap:4px;font-weight:600}
.forum-level-title-badge.is-title-default{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.forum-level-title-icon{height:16px;width:auto;max-width:40px;object-fit:contain;vertical-align:middle;border-radius:3px;display:inline-block}
.forum-level-title-row{margin-top:4px}
/* 勋章胶囊：左角标 + 右文字，规格与用户组/TAG 徽章一致 */
.forum-level-title-capsule{display:inline-flex;align-items:center;gap:5px;padding:2px 10px 2px 3px;height:24px;box-sizing:border-box;line-height:1;vertical-align:middle}
.forum-level-title-capsule-name{font-size:12px;font-weight:600;white-space:nowrap}
.forum-level-utitle-cap-lead{width:18px;height:18px;font-size:10px}
.forum-level-utitle-cap-lead.forum-level-utitle{display:inline-flex;align-items:center;justify-content:center;border-radius:5px;background:var(--fl-ut-bg,#78909c);color:#fff}
.forum-level-utitle-cap-lead.forum-level-utitle-img{object-fit:cover;border-radius:5px}
.forum-level-title-capsule.is-vip{box-shadow:0 0 0 1px #e60023 inset}
/* UID 徽章胶囊：默认白底灰字，样式档支持渐变/发光/流光 */
.fl-uid-badge{display:inline-flex;align-items:center;gap:3px;height:22px;padding:0 9px 0 5px;border-radius:8px;background:var(--fl-uid-bg,#fff);border:1px solid var(--fl-uid-border,#e5e7eb);box-sizing:border-box;vertical-align:middle;position:relative;overflow:hidden}
.fl-uid-badge .user-uid-icon{display:inline-flex;color:var(--fl-uid-text,#6b7280)}
.fl-uid-badge .user-uid-icon svg{width:12px;height:12px}
.fl-uid-badge .fl-uid-text{font-size:12px;font-weight:600;color:var(--fl-uid-text,#6b7280);white-space:nowrap;line-height:1;letter-spacing:.2px}
.fl-uid-effect-gradient{background:linear-gradient(120deg,var(--fl-uid-a),var(--fl-uid-b),var(--fl-uid-c));border-color:transparent}
.fl-uid-effect-gradient .fl-uid-text,.fl-uid-effect-gradient .user-uid-icon{color:var(--fl-uid-text,#fff)}
.fl-uid-effect-gradient::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,var(--fl-uid-a),var(--fl-uid-b),var(--fl-uid-c));background-size:200% 100%;animation:fl-uid-shift var(--fl-uid-speed,30s) linear infinite;z-index:-1}
.fl-uid-effect-glow{box-shadow:0 0 8px var(--fl-uid-a)}
.fl-uid-effect-glow::after{content:"";position:absolute;inset:-2px;border-radius:inherit;background:radial-gradient(circle,var(--fl-uid-b),transparent 70%);opacity:.4;filter:blur(6px);z-index:-1;animation:fl-uid-pulse var(--fl-uid-speed,30s) ease-in-out infinite}
.fl-uid-effect-shine::after{content:"";position:absolute;top:0;left:-40%;width:24%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.7),transparent);transform:skewX(-18deg);animation:fl-uid-shine calc(var(--fl-uid-speed,30s) * 1.6) ease-in-out infinite}
@keyframes fl-uid-shift{0%{background-position:0 0}100%{background-position:200% 0}}
@keyframes fl-uid-pulse{0%,100%{opacity:.25}50%{opacity:.55}}
@keyframes fl-uid-shine{0%{left:-40%}60%,100%{left:130%}}
/* 楼主标识 */
.forum-level-chip.is-owner{background:var(--brand-soft,#e8f5ee);color:var(--brand,#1f883d);border:1px solid var(--brand-border,#b7dfc8);font-weight:700}
.forum-level-title-list{display:inline-flex;gap:4px;flex-wrap:wrap;vertical-align:middle;margin-left:6px}
/* 徽章动效（fl-fx-*，可与任意配色自由组合；尊重 prefers-reduced-motion）
   v4.8.0 增强：shimmer 改为斜向高光扫过（纯色背景上可见）；glow/neon 改用品牌色光晕，
   提高小徽章上的可见度；shine 加宽加亮。 */
.fl-fx-shimmer{position:relative;overflow:hidden}
.fl-fx-shimmer::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.5) 50%,transparent 68%);background-size:250% 100%;animation:forum-level-fx-shimmer 2.2s linear infinite;pointer-events:none}
.fl-fx-glow{animation:forum-level-fx-glow 1.6s ease-in-out infinite}
.fl-fx-shine{position:relative;overflow:hidden}
.fl-fx-shine::after{content:"";position:absolute;top:0;left:-150%;width:60%;height:100%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.85),transparent);transform:skewX(-18deg);animation:forum-level-fx-shine 2.2s ease-in-out infinite;pointer-events:none}
.fl-fx-neon{animation:forum-level-fx-neon 1.5s ease-in-out infinite}
.fl-fx-rainbow{background:linear-gradient(90deg,#f04438,#f79009,#fdb022,#12b76a,#1570ef,#7a5af8,#f04438)!important;background-size:300% 100%!important;color:#fff!important;border-color:transparent!important;animation:forum-level-fx-rainbow 4s linear infinite;text-shadow:0 1px 2px rgba(0,0,0,.25)}
/* v4.8.0：新增 6 种动效（streak / rainbowtext / breathe / sparkle / outline / liquid） */
.fl-fx-streak{position:relative;overflow:hidden}
.fl-fx-streak::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 42%,rgba(255,255,255,.6) 50%,transparent 58%);background-size:220% 100%;animation:forum-level-fx-streak 2.4s linear infinite;pointer-events:none}
.fl-fx-rainbowtext{background:linear-gradient(90deg,#f04438,#f79009,#fdb022,#12b76a,#1570ef,#7a5af8,#f04438)!important;background-size:300% 100%!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;border-color:transparent!important;animation:forum-level-fx-rainbowtext 4s linear infinite}
.fl-fx-breathe{animation:forum-level-fx-breathe 2.4s ease-in-out infinite}
.fl-fx-sparkle{position:relative;overflow:hidden}
.fl-fx-sparkle::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.7) 48%,transparent 58%);background-size:260% 100%;animation:forum-level-fx-sparkle-sweep 3.2s ease-in-out infinite;pointer-events:none}
.fl-fx-sparkle::after{content:"✦";position:absolute;top:12%;right:14%;font-size:9px;color:rgba(255,255,255,.95);text-shadow:0 0 6px rgba(255,255,255,.9);animation:forum-level-fx-sparkle-tw 1.4s ease-in-out infinite;pointer-events:none;line-height:1}
.fl-fx-outline{animation:forum-level-fx-outline 3s linear infinite;text-shadow:0 0 5px rgba(255,255,255,.45)}
.fl-fx-liquid{background:linear-gradient(120deg,#7a5af8,#2f80ed,#12b76a,#f79009,#7a5af8)!important;background-size:320% 320%!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;border-color:transparent!important;animation:forum-level-fx-liquid 7s ease-in-out infinite}
@keyframes forum-level-fx-shimmer{0%{background-position:150% 0}100%{background-position:-150% 0}}
@keyframes forum-level-fx-glow{0%,100%{box-shadow:0 0 3px var(--brand),0 0 1px rgba(255,255,255,.35);filter:brightness(.97)}50%{box-shadow:0 0 16px 4px var(--brand),0 0 6px rgba(255,255,255,.65);filter:brightness(1.08)}}
@keyframes forum-level-fx-shine{0%{left:-150%}55%,100%{left:150%}}
@keyframes forum-level-fx-neon{0%,100%{box-shadow:0 0 4px var(--brand),0 0 10px var(--brand);border-color:var(--brand)!important}50%{box-shadow:0 0 10px var(--brand),0 0 22px var(--brand),0 0 34px rgba(59,130,246,.4)}}
@keyframes forum-level-fx-rainbow{0%{background-position:0% 50%}100%{background-position:300% 50%}}
@keyframes forum-level-fx-streak{0%{background-position:220% 0}100%{background-position:-220% 0}}
@keyframes forum-level-fx-rainbowtext{0%{background-position:0% 50%}100%{background-position:300% 50%}}
@keyframes forum-level-fx-breathe{0%,100%{text-shadow:0 0 3px currentColor,0 0 6px currentColor;filter:brightness(.98)}50%{text-shadow:0 0 9px currentColor,0 0 18px currentColor,0 0 26px currentColor;filter:brightness(1.12)}}
@keyframes forum-level-fx-sparkle-sweep{0%{background-position:260% 0}50%{background-position:0% 0}100%{background-position:-260% 0}}
@keyframes forum-level-fx-sparkle-tw{0%,100%{opacity:.25;transform:scale(.7) rotate(0deg)}50%{opacity:1;transform:scale(1.25) rotate(20deg)}}
@keyframes forum-level-fx-outline{0%{text-shadow:-1px 0 0 #f04438,1px 0 0 #f04438,0 -1px 0 #f04438,0 1px 0 #f04438,0 0 6px rgba(255,255,255,.5)}25%{text-shadow:-1px 0 0 #f79009,1px 0 0 #f79009,0 -1px 0 #f79009,0 1px 0 #f79009,0 0 6px rgba(255,255,255,.5)}50%{text-shadow:-1px 0 0 #12b76a,1px 0 0 #12b76a,0 -1px 0 #12b76a,0 1px 0 #12b76a,0 0 6px rgba(255,255,255,.5)}75%{text-shadow:-1px 0 0 #1570ef,1px 0 0 #1570ef,0 -1px 0 #1570ef,0 1px 0 #1570ef,0 0 6px rgba(255,255,255,.5)}100%{text-shadow:-1px 0 0 #7a5af8,1px 0 0 #7a5af8,0 -1px 0 #7a5af8,0 1px 0 #7a5af8,0 0 6px rgba(255,255,255,.5)}}
@keyframes forum-level-fx-liquid{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media (prefers-reduced-motion:reduce){.fl-fx-shimmer,.fl-fx-glow,.fl-fx-neon,.fl-fx-rainbow,.fl-fx-shine::after,.fl-fx-shimmer::before,.fl-fx-streak::before,.fl-fx-rainbowtext,.fl-fx-breathe,.fl-fx-sparkle::before,.fl-fx-sparkle::after,.fl-fx-outline,.fl-fx-liquid{animation:none}}
/* 徽章样式弹窗：实时预览行 */
.forum-level-style-preview-wrap{display:flex;align-items:center;gap:10px;padding:12px 14px;margin-bottom:12px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--bg)}
.forum-level-style-preview-label{font-size:var(--font-size-xs);color:var(--text-subtle);font-weight:600}
.forum-level-cell-wide{width:100%}
.forum-level-cell-wide input{width:100%}
/* 后台：内联表单与样式单元格 */
.forum-level-inline{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.forum-level-input-sm{min-height:32px;border:1px solid var(--line);border-radius:var(--radius);padding:0 10px;font-size:var(--font-size-xs);background:var(--bg);color:var(--text);width:130px;font-family:inherit}
.forum-level-input-sm:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px var(--focus-halo)}
.forum-level-cell-select-sm{min-height:32px;font-size:var(--font-size-xs);width:118px}
.forum-level-style-cell{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:230px}
.forum-level-new-special{display:flex;flex-direction:column;gap:8px;padding:12px 14px;margin-top:10px;border:1px dashed var(--brand);border-radius:var(--radius);background:var(--brand-soft)}
.forum-level-new-special b{font-size:var(--font-size-sm);color:var(--text)}
.forum-level-new-special .forum-level-inline .forum-level-input-sm{flex:1;min-width:140px}
.forum-level-behavior-table{width:100%;margin-bottom:10px}
.forum-level-behavior-table th{font-size:var(--font-size-xs);color:var(--text-muted);font-weight:600;text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
.forum-level-behavior-table td{padding:6px 8px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.forum-level-behavior-table .forum-level-cell-name{min-width:130px}
.forum-level-behavior-table .forum-level-input-sm{width:110px}
.forum-level-row-signin-extra{margin-top:4px}
.forum-level-modal.is-wide .forum-level-modal-panel{max-width:880px}
.forum-level-signin-reward{margin-top:10px;padding:8px 12px;border-radius:var(--radius);background:var(--success-soft);border:1px solid var(--success);font-size:var(--font-size-sm);color:var(--text);display:flex;flex-wrap:wrap;gap:4px 14px}
.forum-level-signin-reward b{color:var(--success);font-variant-numeric:tabular-nums}
.forum-level-signin-rule{margin:6px 0 0;font-size:var(--font-size-xxs);color:var(--text-subtle);line-height:1.6}
.forum-level-row-ticket-cat{display:flex;gap:10px;flex-wrap:wrap;padding:6px 0}
.forum-level-row-ticket-cat .forum-level-cell{flex:1;min-width:180px}
.forum-level-row-ticket-cat .forum-level-input-sm{width:100%}
/* ===== §18 设计系统统一（v2.7.1）===== */
/* —— 容器与卡片 —— */
.forum-level-panel-body{max-width:1120px}
.forum-level-card{background:var(--bg);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px rgba(15,23,42,.04),0 2px 8px rgba(15,23,42,.05);padding:20px;margin:16px 0;position:relative}
.forum-level-block-title{font-size:var(--forum-level-fs-title);font-weight:700;color:var(--text);margin:0 0 6px;display:flex;align-items:center;gap:8px;line-height:1.4}
.forum-level-block-title::before{content:"";width:4px;height:16px;border-radius:2px;background:var(--success);flex:none}
.forum-level-block-title+*{margin-top:6px}
.forum-level-hint{color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.8;margin:2px 0 14px}
/* —— 区块标题（三区）—— */
.forum-level-section-title{display:flex;align-items:baseline;gap:12px;margin:22px 0 8px;padding-top:18px;border-top:1px dashed var(--line);flex-wrap:wrap}
.forum-level-section-title b{font-size:var(--font-size-md);font-weight:700;color:var(--text);flex:none}
.forum-level-section-title span{color:var(--text-subtle);font-size:var(--font-size-xxs);flex:1;min-width:200px;line-height:1.7}
.forum-level-block-link{color:var(--success);text-decoration:none;font-weight:600;white-space:nowrap;font-size:var(--font-size-xxs)}
.forum-level-block-link:hover{text-decoration:underline}
/* —— 表格 —— */
.forum-level-table-wrap{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:6px 0 2px;background:var(--bg)}
.forum-level-table{width:100%;border-collapse:collapse;font-size:var(--forum-level-fs-body)}
.forum-level-table thead th{background:var(--bg);color:var(--text-muted);font-weight:600;font-size:var(--font-size-sm);text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;letter-spacing:.2px}
.forum-level-table tbody td{padding:10px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.forum-level-table tbody tr:last-child td{border-bottom:none}
.forum-level-table tbody tr:nth-child(even) td{background:var(--bg)}
.forum-level-table tbody tr:hover td{background:var(--line-soft)}
.forum-level-table tbody td:first-child{color:var(--text-subtle);font-variant-numeric:tabular-nums;width:46px}
.forum-level-table .forum-level-cell-name{font-weight:600;color:var(--text)}
.forum-level-table .forum-level-cell-count{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-subtle)}
.forum-level-table .forum-level-empty-cell{padding:26px 14px;text-align:center;color:var(--text-subtle);font-size:var(--forum-level-fs-body)}
/* —— 标签 chips —— */
.forum-level-tag{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:var(--font-size-xs);font-weight:600;line-height:1.5;white-space:nowrap}
.forum-level-tag.is-admin{background:#fff1f0;color:#cf1322;border:1px solid #ffd6d3}
.forum-level-tag.is-manage{background:#e8f4ff;color:#0958d9;border:1px solid #d0e6ff}
.forum-level-tag.is-special{background:#f5f0ff;color:#722ed1;border:1px solid #e5d6ff}
.forum-level-tag.is-plain{background:var(--bg);color:var(--text-muted);border:1px solid var(--line)}
.forum-level-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:var(--font-size-sm);font-weight:600;line-height:1.6;border:1px solid var(--line);background:var(--bg);color:var(--text)}
/* —— 按钮 —— */
.forum-level-submit{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 16px;border-radius:8px;border:none;background:var(--success);color:#fff;font-size:var(--forum-level-fs-body);font-weight:600;cursor:pointer;transition:background .15s ease,transform .05s ease;box-shadow:0 1px 2px rgba(18,183,106,.25)}
.forum-level-submit:hover{background:#0ea05c}
.forum-level-submit:active{transform:translateY(1px)}
.forum-level-submit-sm{height:28px;padding:0 11px;font-size:var(--font-size-sm);border-radius:6px}
.forum-level-submit.is-ghost{background:var(--bg);border:1px solid var(--line);color:var(--text);box-shadow:none;font-weight:500}
.forum-level-submit.is-ghost:hover{border-color:var(--success);color:var(--success);background:var(--success-soft)}
.forum-level-submit.is-danger{background:var(--panel);border:1px solid #f3c0bc;color:#cf1322;box-shadow:none}
/* —— 输入与选择 —— */
.forum-level-input-sm,.forum-level-input{height:34px;border-radius:8px;border:1px solid var(--line);padding:0 12px;font-size:var(--forum-level-fs-body);color:var(--text);background:var(--bg);transition:border-color .15s ease,box-shadow .15s ease}
.forum-level-input-sm:focus,.forum-level-input:focus{outline:none;border-color:var(--success);box-shadow:0 0 0 3px rgba(18,183,106,.12)}
.forum-level-cell-select,.forum-level-cell-select-sm{height:30px;border-radius:6px;border:1px solid var(--line);padding:0 8px;font-size:var(--font-size-sm);background:var(--bg);color:var(--text)}
/* —— 样式单元格（弹窗化后为 chip + 按钮）—— */
.forum-level-style-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* —— 新建特殊组 —— */
.forum-level-new-special{background:var(--bg);border:1px dashed var(--line);border-radius:10px;padding:16px 18px;margin:16px 0 4px}
.forum-level-new-special b{display:flex;align-items:center;gap:8px;font-size:var(--font-size-md);font-weight:700;margin-bottom:10px;color:var(--text)}
.forum-level-new-special b::before{content:"";width:4px;height:14px;border-radius:2px;background:var(--success);flex:none}
.forum-level-new-special .forum-level-inline{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.forum-level-new-special .forum-level-hint{margin:10px 0 0;font-size:var(--font-size-xxs)}
/* —— 弹窗 —— */
.forum-level-modal-panel{border-radius:14px;box-shadow:0 24px 64px rgba(15,23,42,.2);border:1px solid var(--line)}
.forum-level-modal-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}
.forum-level-modal-title{font-size:var(--forum-level-fs-title);font-weight:700;color:var(--text)}
.forum-level-modal-sub{display:block;color:var(--text-subtle);font-size:var(--font-size-sm);margin-top:2px;font-weight:400}
.forum-level-modal-body{padding:18px 20px}
.forum-level-modal.is-sm .forum-level-modal-panel{max-width:440px}
.forum-level-modal-panel.forum-level-mall-modal{max-width:720px;max-height:88vh;overflow-y:auto}
.forum-level-mall-modal .forum-level-row{align-items:flex-start}
.forum-level-modal-panel.forum-level-mall-modal .forum-level-cell{min-width:130px}
.forum-level-modal-panel.forum-level-mall-modal .forum-level-cell-narrow{flex:0 0 130px}
.forum-level-mall-modal .forum-level-form-actions{position:sticky;bottom:0;background:var(--panel);padding:12px 0 4px;border-top:1px solid var(--line);margin-top:16px}
@media(max-width:720px){.forum-level-modal-panel.forum-level-mall-modal .forum-level-cell{min-width:100%;flex-basis:100%}}
.forum-level-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px;padding:4px;background:var(--bg);border:1px solid var(--line);border-radius:10px}
.forum-level-tab{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:8px;font-size:var(--font-size-sm);color:var(--text);text-decoration:none;font-weight:500}
.forum-level-tab:hover{background:var(--bg-muted,var(--bg))}
.forum-level-tab.is-active{background:var(--focus-ring);color:#fff}
@media(max-width:720px){.forum-level-modal-panel{max-width:calc(100vw - 24px);width:calc(100vw - 24px)}}
/* —— 表单行 —— */
.forum-level-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:6px 0}
.forum-level-row .forum-level-cell{flex:1;min-width:150px}
.forum-level-cell span{display:block;font-size:var(--font-size-sm);color:var(--text-subtle);margin-bottom:4px;font-weight:500}
.forum-level-form-actions{margin-top:14px;display:flex;gap:10px;align-items:center}
/* —— 折叠分区（设置页）—— */
.forum-level-section-details{border:1px solid var(--line);border-radius:10px;margin:12px 0;background:var(--bg);overflow:hidden}
.forum-level-section-details summary{list-style:none;cursor:pointer;padding:13px 16px;font-size:var(--font-size-md);font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px;transition:background .15s ease}
.forum-level-section-details summary::-webkit-details-marker{display:none}
.forum-level-section-details summary::before{content:"▸";color:var(--success);font-size:var(--font-size-sm);transition:transform .15s ease}
.forum-level-section-details[open] summary::before{transform:rotate(90deg)}
.forum-level-section-details[open] summary{background:var(--bg);border-bottom:1px solid var(--line)}
.forum-level-section-details>div{padding:14px 16px}
/* —— 设置页等级规则表 —— */
.forum-level-levels-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 14px}
.forum-level-level-row{display:contents}
.forum-level-level-row .forum-level-cell{min-width:0}
/* —— 工单页 —— */
.forum-level-ticket-status{display:inline-flex;align-items:center;padding:3px 12px;border-radius:999px;font-size:var(--font-size-sm);font-weight:600;line-height:1.6}
.forum-level-status-open{background:#e8f4ff;color:#0958d9;border:1px solid #d0e6ff}
.forum-level-status-progress{background:var(--warning-soft);color:var(--warning);border:1px solid var(--warning)}
.forum-level-status-done{background:#f6ffed;color:#389e0d;border:1px solid #d3f5bf}
.forum-level-status-closed{background:var(--bg);color:var(--text-muted);border:1px solid var(--line)}
.forum-level-perm-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.forum-level-perm-item{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:var(--font-size-sm)}
.forum-level-perm-item b{font-weight:600;color:var(--text)}
.forum-level-perm-item span{color:var(--text-subtle)}
.forum-level-msg-bubble{background:var(--bg);border:1px solid var(--line-soft);border-radius:12px;padding:10px 14px;font-size:var(--forum-level-fs-body);line-height:1.7;color:var(--text)}
.forum-level-msg-bubble.is-mine{background:var(--success-soft);border-color:var(--success);color:var(--text)}
.forum-level-msg-meta{font-size:var(--font-size-xs);color:var(--text-subtle);margin-top:6px;display:flex;justify-content:space-between;gap:10px}
/* —— 前台侧栏 —— */
.forum-level-side-card{background:var(--bg);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px rgba(15,23,42,.04);overflow:hidden}
.forum-level-side-card .forum-level-card-head{padding:13px 16px;font-weight:700;font-size:var(--forum-level-fs-body);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
/* —— 全局 —— */
.forum-level-admin .forum-level-panel-body{font-size:var(--forum-level-fs-body);line-height:1.7;color:var(--text)}
.forum-level-note{color:var(--text-subtle);font-size:var(--font-size-xxs);line-height:1.7;margin:10px 0 0}
.forum-level-note.is-soft{font-weight:400}
.forum-level-form .forum-level-inline{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* ============================================================
 * v2.8.0 界面升级增补（仅新增，不覆盖既有规则）
 * ============================================================ */
/* 看板区块标题：左标题右“查看全部”入口 */
.forum-level-block-title{display:flex;align-items:baseline;gap:12px}
.forum-level-block-title .forum-level-block-link{margin-left:auto;font-size:var(--font-size-xxs);font-weight:600;color:var(--brand);text-decoration:none;white-space:nowrap}
.forum-level-block-title .forum-level-block-link:hover{text-decoration:underline}
.forum-level-dash-stale{margin-top:8px}
/* 设置分区摘要：右侧一行说明（配合 details 既有 flex 布局） */
.forum-level-details>summary small{margin-left:auto;color:var(--text-subtle);font-weight:400;font-size:var(--font-size-xxs);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:720px){.forum-level-details>summary small{display:none}}
/* 用户管理工具栏：标题行（筛选容器沿用既有 .forum-level-filter 卡片样式） */
.forum-level-toolbar-head{display:flex;align-items:center;gap:10px;padding:0;border-bottom:0;margin-bottom:0;flex-wrap:wrap}
.forum-level-toolbar-head b{font-size:var(--font-size-md)}
.forum-level-toolbar-head span{color:var(--text-subtle);font-size:var(--font-size-xxs)}
/* 筛选控件：统一高度与聚焦反馈（仅增强输入框本身，不改布局） */
.forum-level-filter input[type="text"],.forum-level-filter input[type="number"],.forum-level-filter select{height:34px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:var(--font-size-xs);background:var(--panel);color:var(--text);min-width:140px}
.forum-level-filter input:focus,.forum-level-filter select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.forum-level-filter .forum-level-cell{display:flex;flex-direction:column;gap:3px;margin:0}
.forum-level-filter .forum-level-cell>span{font-size:var(--font-size-xxs);color:var(--text-muted)}
.forum-level-filter button{height:34px;align-self:flex-end}
/* 数据表：长表格滚动容器内吸顶表头（板块矩阵、日志等） */
.forum-level-table-wrap{max-height:520px;overflow:auto}
.forum-level-table thead th{position:sticky;top:0;z-index:1;box-shadow:0 1px 0 var(--line)}
/* 流水行 hover 反馈（用户行沿用既有 hover） */
.forum-level-log-item{transition:background var(--transition-normal)}
.forum-level-log-item:hover{background:var(--brand-soft)}
/* 磁贴数字对齐 */
.forum-level-stat b,.forum-level-stat strong{font-variant-numeric:tabular-nums;letter-spacing:.2px}
/* 窄屏适配：看板双栏改单栏，工具栏标题纵排 */
@media (max-width:720px){
  .forum-level-dash-cols{grid-template-columns:1fr}
  .forum-level-toolbar-head{flex-direction:column;gap:2px}
}
/* ============================================================
 * v3.1.0 界面升级增补（仅新增，不覆盖既有规则）
 * ============================================================ */
/* —— 需求6：组编辑器弹窗加宽到 1100px+，矩阵横向滚动但操作区完整可见 —— */
.forum-level-modal.is-wide .forum-level-modal-panel{max-width:1140px;width:calc(100vw - 32px)}
.forum-level-modal.is-wide .forum-level-modal-body{padding:16px 20px}
/* —— 需求1：看板自适应网格，一屏可见、无横向滚动 —— */
.forum-level-dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 12px}
.forum-level-dash-grid .forum-level-stat{margin:0}
/* —— 内置功能一览：功能卡片网格（替代纯文字墙） —— */
.forum-level-feats{display:grid;grid-template-columns:repeat(auto-fill,minmax(216px,1fr));gap:10px;margin-top:12px}
.forum-level-feat{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);text-decoration:none;transition:border-color .15s,box-shadow .15s}
.forum-level-feat b{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}
.forum-level-feat span{font-size:var(--font-size-xxs);color:var(--text-muted);line-height:1.55}
.forum-level-feat:hover{border-color:var(--brand);box-shadow:0 4px 12px rgba(15,23,42,.06)}
.forum-level-feat:hover b{color:var(--brand)}
@media(max-width:720px){.forum-level-feats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}
/* —— 需求2：等级规则动态行工具 —— */
.forum-level-levels-actions{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}
.forum-level-level-tools{display:flex;gap:4px;align-items:flex-end;padding-bottom:1px}
.forum-level-btn-tool{width:26px;height:26px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text-muted);font-size:var(--forum-level-fs-body);line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}
.forum-level-btn-tool:hover{border-color:var(--brand);color:var(--brand)}
.forum-level-btn-tool.is-danger:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}
.forum-level-row-level{align-items:stretch}
.forum-level-row-level .forum-level-level-bind{display:flex;flex-direction:column;gap:4px;font-size:var(--font-size-xxs);color:var(--text-subtle);justify-content:flex-end;padding-bottom:1px}
/* —— 需求3：徽章高对比配色（t 档位前景/背景全部提高对比度）—— */
.forum-level-badge.is-t1{background:#e6f4ff;color:#0b57a4;border:1px solid #b8dbff}
.forum-level-badge.is-t4{background:#e8f7ec;color:#116b32;border:1px solid #bfe6c9}
.forum-level-badge.is-t7{background:#fff4e0;color:#9a5b00;border:1px solid #ffdfae}
.forum-level-badge.is-t10{background:#f3e9ff;color:#6b21b6;border:1px solid #ddc7ff}
/* 图片占位容器：加载前按宽高比（或默认比例）占住空间，加载完成后淡入，避免页面被撑开抖动 */
.fl-img-holder{display:inline-block;position:relative;max-width:100%;vertical-align:middle;line-height:0;overflow:hidden;border-radius:6px;background:var(--line-soft,#eef1f5);min-width:48px;min-height:48px}
.fl-img-holder::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.6) 50%,rgba(255,255,255,0) 100%);background-size:200% 100%;animation:fl-img-shimmer 1.3s linear infinite;pointer-events:none;opacity:1;transition:opacity .25s ease}
.fl-img-holder.is-loaded::after{opacity:0;animation:none}
.fl-img-holder>img{display:block;max-width:100%;height:auto;opacity:0;transition:opacity .25s ease}
.fl-img-holder.is-loaded>img{opacity:1}
.fl-img-holder.is-loaded{min-width:0;min-height:0}
.fl-img-holder.is-error::after{opacity:0;animation:none}
@keyframes fl-img-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.fl-img-holder::after{animation:none}.fl-img-holder>img{transition:none}}

/* 精华标记（列表标题旁，主题属性） */
.forum-level-digest-tag{display:inline-flex;align-items:center;padding:1px 8px;margin-left:8px;border-radius:999px;background:#fff1e0;color:#a14d00;border:1px solid #ffd9a8;font-size:var(--font-size-xxs);font-weight:600;vertical-align:middle}
.forum-level-lock-tag{display:inline-flex;align-items:center;padding:1px 8px;margin-left:8px;border-radius:999px;background:var(--line-soft);color:var(--text-muted);border:1px solid var(--line);font-size:var(--font-size-xxs);font-weight:600;vertical-align:middle}
/* 主题标题高亮/加粗（由 JS 依据 .fl-title-flag 标记加到标题链接上） */
.fl-title-bold{font-weight:800!important}
.fl-hl-red{color:#e5484d!important}
.fl-hl-orange{color:#e08a00!important}
.fl-hl-green{color:#12a150!important}
.fl-hl-blue{color:#1570ef!important}
.fl-hl-purple{color:#7a5af8!important}
/* 悬停提示：窄屏限宽换行保证完整可读 */
.fl-tip::after{max-width:min(260px,72vw)}
/* —— 需求4/5：筛选条件回显 chips —— */
.forum-level-filter-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.forum-level-filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);text-decoration:none;font-weight:600;border:1px solid transparent}
.forum-level-filter-chip:hover{border-color:var(--brand)}
.forum-level-filter-chip.is-clear{background:transparent;border:1px dashed var(--line);color:var(--text-subtle)}
.forum-level-toolbar-sub{color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400}
/* —— 需求7：分版块管理权 —— */
.forum-level-mod-cell{min-width:150px}
.forum-level-mod-check{display:inline-flex;align-items:center;gap:4px;margin:2px 8px 2px 0;font-size:var(--font-size-xxs);color:var(--text);white-space:nowrap}
.forum-level-mod-check input{accent-color:var(--brand)}
.forum-level-th-mod{min-width:160px}
.forum-level-mod-form{display:inline-flex;align-items:center;margin:0;vertical-align:middle}
.forum-level-topic-mod{display:inline-flex;align-items:center;gap:1px;vertical-align:middle}
.forum-level-modrsn-input{width:100%;min-height:64px;border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;font-size:var(--font-size-sm);background:var(--bg);color:var(--text);font-family:inherit;line-height:1.6}
.forum-level-modrsn-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px var(--focus-halo)}
.forum-level-preset-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0}
.forum-level-preset-label{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.forum-level-preset-chip{padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--text-muted);font-size:var(--font-size-xxs);cursor:pointer;font-family:inherit}
.forum-level-preset-chip:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.forum-level-mod-op.is-move{display:inline-flex;align-items:center;vertical-align:middle;margin:0}
/* 帖子管理操作按钮：完整复位全局 button 样式（对齐核心 icon-action 的 <a> 视觉——
   否则 button 会被全局样式渲染成蓝底大块且文字被 .icon-action span 隐藏、无图标，整钮不可见）；
   图标以 mask 提供（写法对齐官方 icon-quote 与示例插件 topic-manage-pin-icon），随 currentColor 日夜自适应 */
.forum-level-mod-form button.icon-action,button.icon-action.forum-level-mod-op{min-height:0;padding:2px 7px;line-height:1.4;background:transparent;color:var(--text-muted);opacity:.85;font-weight:400;border:0;box-shadow:none;font-size:var(--font-size-xs);vertical-align:middle;display:inline-flex;align-items:center;gap:3px}
.forum-level-mod-form button.icon-action:hover{background:var(--line-soft);opacity:1;color:var(--brand)}
.forum-level-mod-op{color:var(--text-muted)}
.forum-level-mod-op:hover{color:var(--brand)}
.forum-level-mod-op.is-delete_topic:hover,.forum-level-mod-op.is-delete_reply:hover,.forum-level-mod-op.is-danger:hover{color:var(--danger)}
.forum-level-mod-op::before{display:none}
.forum-level-mod-op.is-pin::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 17v5%27/%3E%3Cpath d=%27M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1z%27/%3E%3C/svg%3E") center/14px 14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 17v5%27/%3E%3Cpath d=%27M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1z%27/%3E%3C/svg%3E") center/14px 14px no-repeat}
.forum-level-mod-op.is-reply_pin::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 17v5%27/%3E%3Cpath d=%27M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1z%27/%3E%3C/svg%3E") center/14px 14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 17v5%27/%3E%3Cpath d=%27M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1z%27/%3E%3C/svg%3E") center/14px 14px no-repeat}
.forum-level-reply-pin-tag{display:inline-flex;align-items:center;padding:1px 8px;margin-right:6px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xxs);font-weight:600;vertical-align:middle}
.forum-level-mod-link.is-lock:hover{color:var(--danger)}
.forum-level-mod-link.is-highlight:hover{color:var(--warning)}
.forum-level-mod-op.is-unpin::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 17v5%27/%3E%3Cpath d=%27M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1z%27/%3E%3Cpath d=%27M3 3l18 18%27/%3E%3C/svg%3E") center/14px 14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 17v5%27/%3E%3Cpath d=%27M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1z%27/%3E%3Cpath d=%27M3 3l18 18%27/%3E%3C/svg%3E") center/14px 14px no-repeat}
.forum-level-mod-op.is-digest::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z%27/%3E%3C/svg%3E") center/14px 14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z%27/%3E%3C/svg%3E") center/14px 14px no-repeat}
.forum-level-mod-op.is-undigest::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z%27/%3E%3Cpath d=%27M4 4l16 16%27/%3E%3C/svg%3E") center/14px 14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z%27/%3E%3Cpath d=%27M4 4l16 16%27/%3E%3C/svg%3E") center/14px 14px no-repeat}
.forum-level-mod-op.is-move::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z%27/%3E%3C/svg%3E") center/14px 14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z%27/%3E%3C/svg%3E") center/14px 14px no-repeat}
.forum-level-mod-op.is-delete_topic::before,.forum-level-mod-op.is-delete_reply::before{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M3 6h18%27/%3E%3Cpath d=%27M8 6V4h8%27/%3E%3Cpath d=%27M6 6l1 14h10l1-14%27/%3E%3Cpath d=%27M10 11v5%27/%3E%3Cpath d=%27M14 11v5%27/%3E%3C/svg%3E") center/14px 14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M3 6h18%27/%3E%3Cpath d=%27M8 6V4h8%27/%3E%3Cpath d=%27M6 6l1 14h10l1-14%27/%3E%3Cpath d=%27M10 11v5%27/%3E%3Cpath d=%27M14 11v5%27/%3E%3C/svg%3E") center/14px 14px no-repeat}
/* 侧栏昵称标注（本人侧栏卡：昵称 + 小标签） */
.fl-nick-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xs);font-weight:600;line-height:1.6;vertical-align:middle}
/* —— 需求8：模块权限行式布局 —— */
.forum-level-module-row{border:1px solid var(--line);border-radius:10px;background:var(--panel);margin:10px 0;overflow:hidden}
.forum-level-module-row>summary{display:flex;flex-direction:column;gap:6px;padding:12px 16px;cursor:pointer;list-style:none;user-select:none}
.forum-level-module-row>summary::-webkit-details-marker{display:none}
.forum-level-module-row>summary:hover{background:var(--brand-soft)}
.forum-level-module-headline{display:flex;align-items:center;justify-content:space-between;gap:12px}
.forum-level-module-meta{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap}
.forum-level-module-meta-label{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.forum-level-admin-callout{margin:0 0 10px;padding:9px 14px;border-radius:8px;background:var(--info-soft);color:var(--info);font-size:var(--font-size-sm);line-height:1.5}
.forum-level-module-label{font-weight:700;font-size:var(--font-size-sm);color:var(--text)}
.forum-level-module-desc{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.5;min-width:0}
.forum-level-module-summary-chips{display:flex;gap:4px;flex-wrap:wrap}
.forum-level-module-opcount{font-size:var(--font-size-xxs);color:var(--text-muted);white-space:nowrap}
.forum-level-module-state{padding:2px 10px;border-radius:999px;font-size:var(--font-size-xxs);font-weight:600;background:var(--line-soft);color:var(--text-muted);border:1px solid var(--line);white-space:nowrap;flex:none}
.forum-level-module-state.is-on{background:var(--success-soft);color:var(--success);border-color:transparent}
.forum-level-module-body{padding:4px 16px 16px;border-top:1px solid var(--line-soft)}
.forum-level-module-toolbar{display:flex;gap:14px;align-items:flex-end;padding:12px 0;flex-wrap:wrap}
.forum-level-perm-base{border:1px solid var(--line-soft);border-radius:10px;padding:12px 14px;margin:10px 0;background:var(--bg)}
.forum-level-perm-base-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.forum-level-perm-tag{padding:2px 8px;border-radius:6px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xxs);font-weight:700}
.forum-level-perm-op{border:1px solid var(--line-soft);border-radius:10px;margin:10px 0;background:var(--bg)}
.forum-level-perm-op>summary{display:flex;align-items:baseline;gap:10px;padding:10px 14px;cursor:pointer;list-style:none;flex-wrap:wrap}
.forum-level-perm-op>summary::-webkit-details-marker{display:none}
.forum-level-perm-op>summary::before{content:"▸";color:var(--text-subtle);transition:transform .15s ease}
.forum-level-perm-op[open]>summary::before{transform:rotate(90deg)}
.forum-level-perm-op-body{padding:4px 14px 12px}
.forum-level-module-perm-desc{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.forum-level-module-perm-empty{margin-left:auto;color:var(--text-subtle);font-size:var(--font-size-xxs)}
.forum-level-module-warnbar{margin:10px 0 0;padding:8px 12px;border-radius:8px;background:var(--warning-soft);color:var(--warning);border:1px solid var(--warning);font-size:var(--font-size-xxs)}
.forum-level-check.is-warn{background:#fff4f4;border-color:#ffd6d6;border-radius:8px}
.forum-level-check{padding:2px 4px}
/* —— 需求9：工单 —— */
.forum-level-ticket-dot{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:999px;background:#e5484d;color:#fff;font-size:var(--font-size-xs);font-weight:700;vertical-align:middle}
.forum-level-ticket-toplink{display:inline-flex;align-items:center;margin-left:10px;padding:5px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text);text-decoration:none;font-size:var(--font-size-xs);font-weight:600}
.forum-level-ticket-toplink:hover{border-color:var(--brand);color:var(--brand)}
@media (max-width:720px){
  .forum-level-ticket-toplink{margin-left:6px;padding:3px 9px;border-radius:6px;font-size:var(--font-size-xxs);font-weight:500;line-height:1.2}
  .forum-level-ticket-dot{min-width:14px;height:14px;padding:0 3px;margin-left:4px;font-size:10px}
}
.forum-level-ticket-status-4{background:#f4f0ff;color:#6b21b6;border:1px solid #ddc7ff}
.forum-level-ticket-ops-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.forum-level-ticket-op.is-claim{background:var(--brand);color:#fff;border-color:var(--brand)}
/* v4.13 重开工单：与「受理」同属推进动作，用警示色区分于关闭/无效。 */
.forum-level-ticket-op.is-reopen{color:#b45309;border-color:#f59e0b;background:#fffbeb}
.forum-level-ticket-op.is-invalid{background:#f4f0ff;color:#6b21b6;border-color:#ddc7ff}
.forum-level-ticket-op.is-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}
.forum-level-transfer-field-label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-muted);margin:10px 0 6px}
.forum-level-transfer-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:0 0 4px}
.forum-level-transfer-option{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:var(--font-size-sm);background:var(--panel);transition:border-color var(--transition-normal),background var(--transition-normal),box-shadow var(--transition-normal)}
.forum-level-transfer-option:hover{border-color:var(--brand);background:var(--brand-soft)}
.forum-level-transfer-option input{position:absolute;opacity:0;width:0;height:0}
.forum-level-transfer-radio{width:16px;height:16px;border:2px solid var(--line);border-radius:50%;flex:0 0 auto;position:relative;transition:border-color var(--transition-normal)}
.forum-level-transfer-option.is-checked{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 2px var(--focus-halo)}
.forum-level-transfer-option.is-checked .forum-level-transfer-radio{border-color:var(--brand)}
.forum-level-transfer-option.is-checked .forum-level-transfer-radio::after{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--brand)}
.forum-level-transfer-name{color:var(--text);font-weight:500}
.forum-level-transfer-admin{color:var(--danger);font-style:normal;font-weight:600;font-size:var(--font-size-xs)}
.forum-level-transfer-reason{width:100%;min-height:64px;border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;font-size:var(--font-size-sm);background:var(--bg);color:var(--text);font-family:inherit;line-height:1.6}
.forum-level-transfer-reason:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px var(--focus-halo)}
/* —— 附加：详情页徽章行与窄屏适配 —— */
.forum-level-post-badges{display:inline-flex;gap:4px;flex-wrap:wrap;vertical-align:middle}
@media (max-width:720px){
  .forum-level-module-desc{font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.5}
  .forum-level-filter{gap:8px}
}/* ---------- v3.3.1 UI 修复（追加覆盖，不改旧规则） ---------- */
.forum-level-special-perm-card{margin-top:16px}
.forum-level-special-perm-list{display:grid;gap:12px;margin-top:14px}
.forum-level-special-perm-row{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr);gap:16px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.forum-level-special-perm-head{display:flex;flex-direction:column;gap:5px;min-width:0}
.forum-level-special-perm-head b{font-size:var(--font-size-sm);line-height:1.35;color:var(--text)}
.forum-level-special-perm-head span{font-size:var(--font-size-xs);line-height:1.55;color:var(--text-muted);overflow-wrap:anywhere}
.forum-level-special-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;min-width:0}
.forum-level-special-group{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);font-size:var(--font-size-sm);line-height:1.35;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.forum-level-special-group:hover{border-color:var(--brand);background:var(--brand-soft)}
.forum-level-special-group:has(input:checked){border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 2px var(--focus-halo)}
.forum-level-special-group input{width:18px;height:18px;flex:0 0 auto;margin:0;accent-color:var(--brand)}
.forum-level-special-group span{min-width:0;overflow-wrap:anywhere}
@media (max-width:720px){
  .forum-level-special-perm-row{grid-template-columns:1fr;gap:10px;padding:12px}
  .forum-level-special-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
}
@media (max-width:390px){
  .forum-level-special-groups{grid-template-columns:1fr}
}
/* 组编辑弹窗：内容区曾被套用通用滚动容器的 360px 限高，导致弹窗很宽却很矮、内容显示不全。
   这里让弹窗体随面板高度自由伸展（面板本身 max-height:92vh），内部自行滚动。 */
.forum-level-modal-panel{display:flex;flex-direction:column}
.forum-level-modal-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.forum-level-modal-body.forum-level-scroll{max-height:none}
/* 板块权限矩阵：三态图例 + 单元格居中 + 行悬停反馈 */
.forum-level-perm-legend{display:flex;gap:6px 18px;flex-wrap:wrap;align-items:center;font-size:var(--font-size-xs);color:var(--text-muted);margin:2px 0 4px}
.forum-level-perm-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.forum-level-perm-legend i{width:9px;height:9px;border-radius:50%;flex:none}
.forum-level-perm-legend i.is-default{background:var(--text-subtle)}
.forum-level-perm-legend i.is-allow{background:var(--success)}
.forum-level-perm-legend i.is-deny{background:var(--danger)}
.forum-level-tri{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg)}
.forum-level-tri-opt{display:inline-flex;align-items:center;padding:4px 11px;font-size:var(--font-size-xs);cursor:pointer;color:var(--text-muted);border-left:1px solid var(--line-soft);white-space:nowrap;transition:background .12s ease,color .12s ease}
.forum-level-tri-opt:first-child{border-left:0}
.forum-level-tri-opt input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.forum-level-tri-opt:hover{color:var(--text)}
.forum-level-tri-opt.is-default:has(input:checked){background:var(--text-subtle);color:var(--inverse-text)}
.forum-level-tri-opt.is-allow:has(input:checked){background:var(--success);color:#fff}
.forum-level-tri-opt.is-deny:has(input:checked){background:var(--danger);color:#fff}
.forum-level-tri-opt.is-skip:has(input:checked){background:var(--line);color:var(--text)}
.forum-level-batch-groups{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.forum-level-perm-table td{vertical-align:middle;text-align:center}
.forum-level-perm-table td.forum-level-cell-name,.forum-level-perm-table td.forum-level-mod-cell{text-align:left}
.forum-level-perm-table tbody tr:hover td{background:var(--bg)}
/* 用户组类型标签：chips 容器内去掉 tag 右边距，换行整齐不窜行 */
.forum-level-chips .forum-level-tag{margin-right:0}
/* 徽章样式列：旧规则留了 230px 最小宽且行列方向冲突，统一为同行紧凑排列 */
.forum-level-style-cell{min-width:0;flex-direction:row;align-items:center;gap:8px;flex-wrap:wrap}
.forum-level-inset-note{padding-left:14px;padding-right:14px}
/* 操作记录（审计）表：固定高度滚动 + 表头吸顶。 */
.forum-level-audit-scroll{max-height:560px;overflow:auto;border:1px solid var(--line-soft);border-radius:var(--radius)}
.forum-level-audit-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.forum-level-audit-table th,.forum-level-audit-table td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top;white-space:nowrap}
.forum-level-audit-table th{position:sticky;top:0;background:var(--panel);z-index:1}
.forum-level-audit-detail{white-space:normal;color:var(--text-muted);min-width:220px}
.forum-level-edit-old{white-space:pre-wrap;word-break:break-word;max-height:280px;overflow:auto;background:var(--bg);border:1px solid var(--line-soft);border-radius:6px;padding:8px 10px;font-size:var(--font-size-xs);margin:6px 0 0}
/* 小黑屋：操作区文字链接（举报/处罚）与举报项卡片。 */
.forum-level-mod-link{display:inline-flex;align-items:center;vertical-align:middle;margin:0;font-size:var(--font-size-xs);color:var(--text-muted);text-decoration:none;background:transparent;border:0;padding:0 4px;line-height:1;min-height:0;height:24px;box-shadow:none;cursor:pointer;font-family:inherit}
.forum-level-mod-link:hover{color:var(--brand);background:transparent}
.forum-level-mod-link.is-report:hover{color:var(--warning)}
.forum-level-mod-link.is-punish:hover{color:var(--danger)}
.forum-level-mod-link.is-punish:hover{color:var(--danger)}
.forum-level-report-item{border:1px solid var(--line-soft);border-radius:8px;padding:10px 12px;margin:8px 0}
.forum-level-report-head{font-size:var(--font-size-xs);color:var(--text-muted)}
.forum-level-report-reason{margin:6px 0;color:var(--text)}
.forum-level-report-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.forum-level-report-actions form{display:flex;gap:4px;align-items:center}
.forum-level-report-reason{max-width:320px;white-space:normal;word-break:break-word}
.forum-level-report-ops{white-space:normal}
.forum-level-report-ops{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.forum-level-report-ops form{display:flex;gap:4px;align-items:center;margin:0}
.forum-level-report-punish select{min-height:28px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text);font-size:var(--font-size-xs)}
/* 付费内容：购买框、资源卡、发帖付费面板。 */
.forum-level-paid-box{margin:10px 0;padding:14px 16px;border:1px dashed var(--brand);border-radius:10px;background:var(--brand-soft);text-align:center}
.forum-level-paid-lock{font-weight:700;color:var(--brand);margin-bottom:4px}
.forum-level-paid-price{font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:8px}
.forum-level-paid-sales{font-size:var(--font-size-xs);color:var(--text-subtle);margin-bottom:8px}
.forum-level-paid-res{margin:10px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.forum-level-paid-res.is-unlocked{border-color:var(--success);background:var(--success-soft)}
.forum-level-paid-res-body{margin-top:6px;font-size:var(--font-size-sm);display:flex;flex-direction:column;gap:4px;word-break:break-all}
.forum-level-paid-note{color:var(--text-muted)}
/* 付费资源元数据（封面/平台/版本/大小/简介） */
.forum-level-paid-cover{margin-bottom:8px}
.forum-level-paid-cover img{max-width:100%;max-height:180px;border-radius:8px;object-fit:cover}
.forum-level-paid-res-top{display:flex;gap:12px;align-items:flex-start}
.forum-level-paid-res-top .forum-level-paid-cover{margin:0;flex:0 0 auto}
.forum-level-paid-res-top .forum-level-paid-cover img{width:96px;height:96px}
.forum-level-paid-res-head{min-width:0;flex:1}
.forum-level-paid-meta{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.forum-level-paid-metaitem{font-size:var(--font-size-xxs);color:var(--text-muted);background:var(--bg);border:1px solid var(--line-soft);border-radius:6px;padding:2px 8px}
.forum-level-paid-metaitem i{color:var(--text-subtle);font-style:normal;margin-right:4px}
.forum-level-paid-desc{font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.6;margin-top:4px}
/* 商城「我的会员/收入」面板 */
.forum-level-shop-mine{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;margin-bottom:14px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg)}
.forum-level-member-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.forum-level-member-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-muted)}
.forum-level-member-chips{display:flex;gap:8px;flex-wrap:wrap}
.forum-level-member-chip{display:inline-flex;flex-direction:column;padding:4px 12px;border-radius:8px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-sm);font-weight:600}
.forum-level-member-chip i{font-style:normal;font-weight:400;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.forum-level-btn-ghost{display:inline-block;padding:6px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm);text-decoration:none}
.forum-level-btn-ghost:hover{border-color:var(--brand);color:var(--brand)}
.forum-level-shop-cover{margin:-4px -4px 4px}
.forum-level-shop-cover img{width:100%;height:132px;object-fit:cover;border-radius:8px}
.forum-level-paid-form{margin-top:10px;border:1px solid var(--line-soft);border-radius:8px;padding:8px 12px}
.forum-level-paid-form summary{cursor:pointer;font-size:var(--font-size-sm);color:var(--text-muted)}
/* 付费专区商城 */
.forum-level-shop{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.forum-level-shop-card{border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--panel);display:flex;flex-direction:column;gap:8px}
.forum-level-shop-title{font-weight:700;color:var(--text)}
.forum-level-shop-meta{font-size:var(--font-size-xs);color:var(--text-muted)}
.forum-level-shop-sales{font-size:var(--font-size-xxs);color:var(--text-subtle);margin-top:2px}
.forum-level-shop-note{font-size:var(--font-size-sm);color:var(--text)}
.forum-level-shop-buy{margin-top:auto}
/* 回收站 */
.forum-level-recycle-body{margin-top:4px;font-size:var(--font-size-xs);color:var(--text-muted);max-width:360px;white-space:normal}
.forum-level-recycle-ops{display:flex;gap:6px;flex-wrap:wrap}
.forum-level-recycle-view{margin-top:6px}
.forum-level-recycle-view>summary{cursor:pointer;color:var(--brand);font-size:var(--font-size-xs)}
.forum-level-recycle-original{margin-top:6px;border:1px solid var(--line);border-radius:8px;overflow:hidden;max-width:520px}
.forum-level-recycle-banner{background:var(--warning-soft);color:var(--warning);padding:8px 12px;font-size:var(--font-size-xs);font-weight:600;border-bottom:1px solid var(--line)}
.forum-level-recycle-otitle{padding:8px 12px 0;font-weight:600}
.forum-level-recycle-obody{padding:8px 12px;font-size:var(--font-size-sm);color:var(--text);white-space:normal;max-height:320px;overflow:auto}
.forum-level-submit.is-danger{background:var(--danger);color:var(--inverse-text);border-color:transparent}
.forum-level-submit.is-danger:hover{background:var(--danger);filter:brightness(.94)}
/* 锁帖警戒带 */
.forum-level-lockband{display:flex;align-items:center;gap:10px;margin:14px 0 4px;padding:10px 14px;border-radius:8px;background:repeating-linear-gradient(45deg,#fff6de,#fff6de 14px,#ffe6a6 14px,#ffe6a6 28px);border:1px solid #e0a300;color:#7a5600;font-size:var(--font-size-sm);font-weight:600}
.forum-level-lockband-icon{display:inline-flex;color:#b8860b;flex:none}
.forum-level-lockband-text{line-height:1.5}
/* 商城收货地址簿 */
.forum-level-addr-book{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.forum-level-addr-opt{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;font-size:var(--font-size-sm)}
.forum-level-addr-opt:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.forum-level-addr-card{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:8px}
.forum-level-addr-card.is-default{border-color:var(--brand)}
.forum-level-addr-info{font-size:var(--font-size-sm);color:var(--text)}
.forum-level-addr-ops{display:flex;gap:6px;flex:none}
.forum-level-addr-form{margin-top:12px}
/* 商城原价/折扣/倒计时 */
.forum-level-mall-orig{margin-left:6px;color:var(--text-subtle);text-decoration:line-through;font-size:var(--font-size-xs)}
.forum-level-mall-off{margin-left:6px;padding:0 6px;border-radius:6px;background:var(--danger-soft,#fde8e8);color:var(--danger);font-size:var(--font-size-xxs);font-weight:700}
.forum-level-mall-countdown{margin-left:6px;padding:0 6px;border-radius:6px;background:#fff4d6;color:#8a5a00;font-size:var(--font-size-xxs);font-weight:600;font-variant-numeric:tabular-nums}
.forum-level-mall-stats{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}
.forum-level-mall-stat{padding:6px 12px;border-radius:8px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-sm)}
.forum-level-mall-stat b{font-size:var(--font-size-md)}
/* ============================================================
 * 响应式与可访问性收尾（UI 审查报告 §2–§7）。
 * 全部为追加式 / 媒体查询 / 偏好查询，不改动既有布局基准，降低回归风险。
 * ============================================================ */
/* 减少动态效果偏好：关闭插件装饰性动画 / hover 位移 / 脉冲，照顾前庭敏感与低性能设备。 */
@media (prefers-reduced-motion: reduce){
  .forum-level-stat,.forum-level-card,.forum-level-market-card,.forum-level-mallw,.forum-level-feed-item,.forum-level-user-item,.forum-level-market-btn,.forum-level-submit{transition:none!important;animation:none!important}
  .forum-level-market-card:hover,.forum-level-stat:hover,.forum-level-mallw:hover,.forum-level-user-item:hover{transform:none!important;box-shadow:none!important}
}
/* 窄屏触摸目标：插件可点击元素最小高度，降低误触（约 38px）。 */
@media (max-width:720px){
  .forum-level-submit,.forum-level-market-btn,.forum-level-mod-link,.forum-level-ticket-op,.forum-level-deny-btn,.forum-level-subnav-item,.forum-level-nav-link{min-height:38px;display:inline-flex;align-items:center;justify-content:center}
  .forum-level-table td button,.forum-level-table td .forum-level-submit{min-height:32px}
}
/* 数据表窄屏：操作列/长文本不再被 nowrap 挤出屏幕，原因/说明/备注允许换行（短字段仍紧凑）。 */
@media (max-width:720px){
  .forum-level-table{font-size:var(--font-size-xs)}
  .forum-level-table td:last-child,.forum-level-recycle-ops,.forum-level-market-row-ops{white-space:normal}
  .forum-level-table td .forum-level-recycle-body,.forum-level-table td .forum-level-audit-detail{white-space:normal;overflow-wrap:anywhere}
}
/* 商城头部窄屏不横向溢出：品牌名省略、搜索独占一行、入口换行。 */
@media (max-width:640px){
  .forum-level-market-userbar{flex-wrap:wrap;gap:8px}
  .forum-level-market-userbar-bname{max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .forum-level-market-userbar-actions{flex-wrap:wrap;white-space:normal}
  .forum-level-market-search{width:100%}
  .forum-level-market-search input{width:100%;box-sizing:border-box}
}
/* 商城商品详情窄屏单列（图片列不再固定 400px 挤压价格/购买区）。 */
@media (max-width:900px){
  .forum-level-market-detail-grid{grid-template-columns:minmax(0,1fr)!important}
  .forum-level-market-detail-grid img,.forum-level-market-detail-media img{max-width:100%;height:auto}
}
.multi-upload-cf-field{gap:.4rem}
.multi-upload-cf-field-muted{opacity:.75}
.multi-upload-cf-uploader{display:flex;flex-direction:column;gap:.5rem}
.multi-upload-cf-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:1.1rem 1rem;border:1.5px dashed var(--line);border-radius:12px;cursor:pointer;text-align:center;transition:border-color .15s ease,background .15s ease}
.multi-upload-cf-drop:hover,.multi-upload-cf-uploader[data-drag="1"] .multi-upload-cf-drop{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,transparent)}
.multi-upload-cf-drop strong{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--font-size-md)}
.multi-upload-cf-drop .meta-icon{width:1.1rem;height:1.1rem}
.multi-upload-cf-hint,.multi-upload-cf-formats{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.5}
.multi-upload-cf-input{position:absolute;inset:0;opacity:0;cursor:pointer}
.multi-upload-cf-btnbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.5rem .6rem;border:1.5px dashed var(--line);border-radius:12px}
.forum-level-att-up{cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.forum-level-att-up input{display:none}
.forum-level-ticket-upbar{display:flex;gap:6px;margin:8px 0}
.forum-level-modfilter{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.forum-level-mall-thumb{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-xxs);color:var(--text-subtle);background:var(--bg)}
.forum-level-mall-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:8px}
.forum-level-mallc{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel);text-decoration:none;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}
.forum-level-mallc:hover{border-color:var(--brand);box-shadow:0 4px 14px var(--shadow-base)}
.forum-level-mallc-cover{aspect-ratio:4/3;background:var(--bg);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-mallc-cover img{width:100%;height:100%;object-fit:cover}
.forum-level-mallc-body{padding:8px 10px;display:flex;flex-direction:column;gap:4px}
.forum-level-mallc-name{font-weight:600;font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.forum-level-mallc-sum{font-size:var(--font-size-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.forum-level-mallc-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:2px}
.forum-level-mallc-price{color:var(--danger);font-weight:700;font-size:var(--font-size-sm)}
.forum-level-mallc-stock{font-size:var(--font-size-xxs);color:var(--text-subtle)}
.forum-level-mallv-cover{max-width:420px;margin:0 0 12px;border-radius:var(--radius);overflow:hidden}
.forum-level-mallv-cover img{width:100%;display:block}
.forum-level-mallv-meta{color:var(--text-muted);font-size:var(--font-size-sm);margin:4px 0 10px}
.forum-level-mallo{border:1px solid var(--line-soft);border-radius:var(--radius);padding:12px;margin-bottom:10px;background:var(--panel)}
.forum-level-mallo-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.forum-level-mallo-head span{color:var(--danger);font-weight:700}
.forum-level-mallo-deliver{margin-top:8px;padding:8px 10px;border:1px dashed var(--line);border-radius:8px;background:var(--bg);font-size:var(--font-size-sm);word-break:break-all}
.forum-level-mallo-deliver code{color:var(--brand)}
.forum-level-mall-code{font-size:var(--font-size-xxs);background:var(--bg);border:1px solid var(--line-soft);border-radius:4px;padding:0 4px;color:var(--text-muted)}
.forum-level-mallw{display:flex;align-items:stretch;width:100%;max-width:720px;margin:.6rem 0;border:1px solid var(--line);border-radius:14px;background:var(--panel);text-decoration:none;color:var(--text);overflow:hidden;box-shadow:0 2px 10px var(--shadow-base)}
.forum-level-mallw:hover{border-color:var(--brand);box-shadow:0 4px 18px var(--shadow-base)}
.forum-level-mallw-cover{position:relative;flex:none;width:170px;min-height:118px;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden}
.forum-level-mallw-cover img{width:100%;height:100%;object-fit:cover}
.forum-level-mallw-ph{font-size:var(--font-size-lg);color:var(--text-subtle);font-weight:700}
.forum-level-mallw-badge{position:absolute;top:8px;left:8px;font-size:var(--font-size-xs);padding:2px 9px;border-radius:999px;color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.forum-level-mallw-badge.is-soldout{background:#e60000}
.forum-level-mallw-badge.is-hot{background:linear-gradient(135deg,#ff6b00,#ff2e63)}
.forum-level-mallw-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding:12px 14px}
.forum-level-mallw-name{font-weight:700;font-size:var(--font-size-md);line-height:1.45}
.forum-level-mallw-tags{display:flex;gap:6px;flex-wrap:wrap}
.forum-level-mallw-tag{font-size:var(--font-size-xs);padding:1px 8px;border-radius:4px;background:var(--bg-soft,var(--bg));border:1px solid var(--line);color:var(--text-muted)}
.forum-level-mallw-tag.is-auto{color:#0369a1;border-color:#bae6fd;background:#f0f9ff}
.forum-level-mallw-tag.is-sales{color:#16a34a;border-color:#bbf7d0;background:#f0fdf4}
.forum-level-mallw-desc{font-size:var(--font-size-xs);color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.6}
.forum-level-mallw-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;flex-wrap:wrap}
.forum-level-mallw-price{font-weight:800;font-size:var(--font-size-lg);color:var(--brand)}
.forum-level-mallw-orig{font-weight:400;font-size:var(--font-size-xs);color:var(--text-subtle);margin-left:6px}
.forum-level-mallw-side{display:flex;align-items:center;gap:10px}
.forum-level-mallw-stock{font-size:var(--font-size-xs);color:var(--text-muted)}
.forum-level-mallw-cta{font-size:var(--font-size-xs);padding:5px 13px;border-radius:999px;background:var(--brand);color:#fff}
.forum-level-mallw-cta.is-muted{background:var(--bg-soft,var(--bg));color:var(--text-muted);border:1px solid var(--line)}
@media(max-width:640px){.forum-level-mallw-cover{width:108px;min-height:92px}.forum-level-mallw-body{padding:10px 12px}.forum-level-mallw-price{font-size:var(--font-size-md)}}
.multi-upload-cf-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .8rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:border-color .15s ease,color .15s ease}
.multi-upload-cf-btn:hover{border-color:var(--brand);color:var(--brand)}
.multi-upload-cf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:var(--font-size-sm);color:var(--text-muted)}
.multi-upload-cf-insert{border:1px solid var(--line);background:transparent;border-radius:8px;padding:.25rem .6rem;font-size:var(--font-size-sm);cursor:pointer}
.multi-upload-cf-insert:hover{border-color:var(--brand);color:var(--brand)}
.multi-upload-cf-list{display:flex;flex-direction:column;gap:.45rem}
.multi-upload-cf-item{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:.6rem;align-items:center;padding:.5rem .65rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:var(--font-size-sm)}
.multi-upload-cf-thumb{width:38px;height:38px;border-radius:8px;object-fit:cover;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xxs);color:var(--text-muted);background:color-mix(in srgb,var(--brand) 8%,transparent)}
.multi-upload-cf-main{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.multi-upload-cf-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:.35rem}
.multi-upload-cf-badge{flex:none;font-size:var(--font-size-xxs);padding:.05rem .4rem;border-radius:6px;background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand)}
.multi-upload-cf-badge.is-local{background:var(--warning-soft);color:var(--warning)}
.multi-upload-cf-badge.is-fallback{background:var(--danger-soft);color:var(--danger)}
.multi-upload-cf-bar{height:4px;border-radius:2px;background:var(--line-soft);overflow:hidden}
.multi-upload-cf-bar i{display:block;height:100%;width:0;background:var(--brand);transition:width .2s ease}
.multi-upload-cf-sub{color:var(--text-muted);font-size:var(--font-size-xs);display:flex;gap:.5rem;flex-wrap:wrap}
.multi-upload-cf-ops{display:flex;flex-direction:column;gap:.3rem;align-items:flex-end}
.multi-upload-cf-op{border:none;background:transparent;color:var(--brand);font-size:var(--font-size-xs);cursor:pointer;padding:.15rem .3rem;border-radius:6px}
.multi-upload-cf-op:hover{background:color-mix(in srgb,var(--brand) 10%,transparent)}
.multi-upload-cf-op.is-remove{color:var(--text-muted)}
.multi-upload-cf-item[data-state="error"]{border-color:var(--danger)}
.multi-upload-cf-item[data-state="error"] .multi-upload-cf-msg{color:var(--danger);font-size:var(--font-size-xs)}
.multi-upload-cf-item[data-state="success"]{border-color:color-mix(in srgb,var(--brand) 40%,transparent)}
.multi-upload-cf-float{position:absolute;top:-.4rem;right:-.4rem;min-width:1.25rem;height:1.25rem;padding:0 .3rem;border-radius:999px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-xxs);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.18);z-index:2}
.multi-upload-cf-markdown{position:relative;display:flex;align-items:center;gap:.4rem;background:color-mix(in srgb,var(--brand) 6%,transparent);border-radius:8px;padding:.35rem .5rem;font-size:var(--font-size-xs);color:var(--text-muted);max-width:100%}
.multi-upload-cf-markdown code{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-xs)}
.multi-upload-cf-video{display:block;width:100%;max-width:640px;max-height:70vh;border-radius:10px;background:#000;margin:.2rem 0}
.forum-level-att-img{display:inline-block;max-width:100%;cursor:zoom-in;line-height:0;margin:.2rem 0}
.forum-level-att-img img{max-width:100%;max-height:420px;border-radius:8px;object-fit:contain;vertical-align:middle}
/* 帖子正文图片尺寸统一控制：Markdown 直插图限高，任何来源图片不超过正文宽度（附件/灯箱等有更具体规则，不受影响）。 */
.post-content img{max-width:100%;height:auto;border-radius:6px}
.forum-level-md-img{max-width:100%;max-height:480px;height:auto;border-radius:8px;object-fit:contain;margin:.3rem 0}
.forum-level-lightbox{position:fixed;inset:0;z-index:2147483000;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;cursor:zoom-out;padding:20px}
.forum-level-lightbox img{max-width:96%;max-height:96%;border-radius:6px;box-shadow:0 8px 40px rgba(0,0,0,.5)}
.forum-level-lightbox-close{position:absolute;top:16px;right:18px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:24px;line-height:1;cursor:pointer;transition:background .15s ease,transform .15s ease}
.forum-level-lightbox-close:hover{background:rgba(255,255,255,.28);transform:scale(1.06)}
.forum-level-lightbox-close:focus-visible{outline:2px solid #fff;outline-offset:2px}
.forum-level-att-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;width:100%}
.forum-level-att-chip{display:inline-flex;align-items:center;gap:8px;max-width:260px;padding:5px 6px 5px 5px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:var(--font-size-xs)}
.forum-level-att-chip-thumb{flex:none;width:40px;height:40px;border-radius:8px;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;background:var(--bg);font-size:var(--font-size-md)}
.forum-level-att-chip-thumb img{width:100%;height:100%;object-fit:cover}
.forum-level-att-chip-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.forum-level-att-chip-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);text-decoration:none}
.forum-level-att-chip-bar{height:3px;border-radius:2px;background:var(--line-soft);overflow:hidden}
.forum-level-att-chip.is-done .forum-level-att-chip-bar{display:none}
.forum-level-att-chip-bar i{display:block;height:100%;background:var(--brand);width:0;transition:width .15s ease}
.forum-level-att-chip-del{flex:none;border:0;background:transparent;color:var(--text-subtle);cursor:pointer;font-size:var(--font-size-sm);line-height:1;padding:0 4px;border-radius:6px}
.forum-level-att-chip-del.is-armed{background:var(--danger);color:#fff;font-size:var(--font-size-xxs);padding:2px 6px}
.forum-level-att-file{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);text-decoration:none;color:var(--text);margin:.2rem 0;vertical-align:middle}
.forum-level-att-file:hover{border-color:var(--brand)}
.forum-level-att-file-ic{flex:none;min-width:34px;height:34px;padding:0 6px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xxs);font-weight:700}
.forum-level-att-file-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.forum-level-att-file-dl{flex:none;color:var(--brand);font-size:var(--font-size-xs)}
.forum-level-icon-row{display:flex;gap:6px;align-items:stretch;flex-wrap:nowrap}
.forum-level-icon-row input[type=text],.forum-level-icon-row input[type=url]{flex:1;min-width:0;height:36px;box-sizing:border-box}
.forum-level-icon-row .forum-level-icon-up{flex:none;display:inline-flex;align-items:center;justify-content:center;height:36px;box-sizing:border-box;margin:0;line-height:1;white-space:nowrap}
.forum-level-cell>span.forum-level-icon-row{width:100%}
.forum-level-up{display:none;align-items:center;gap:10px;margin:8px 0 2px;padding:8px 10px;border:1px solid var(--border,#e4e7ed);border-radius:8px;background:var(--panel,#fafafa)}
.forum-level-up.is-uploading,.forum-level-up.is-done,.forum-level-up.is-error{display:flex}
.forum-level-up-thumb{flex:none;width:40px;height:40px;border-radius:6px;overflow:hidden;background:rgba(127,127,127,.12);display:flex;align-items:center;justify-content:center;font-size:18px}
.forum-level-up-thumb img{width:100%;height:100%;object-fit:cover}
.forum-level-up-main{flex:1;min-width:0}
.forum-level-up-bar{height:6px;border-radius:4px;background:rgba(127,127,127,.18);overflow:hidden}
.forum-level-up-bar i{display:block;height:100%;width:0;background:var(--brand,#409eff);transition:width .15s}
.forum-level-up.is-done .forum-level-up-bar i{background:#67c23a}
.forum-level-up.is-error .forum-level-up-bar i{background:#f56c6c;width:100%!important}
.forum-level-up-msg{display:block;margin-top:4px;font-size:var(--font-size-xs,12px);color:var(--muted,#909399);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.forum-level-up.is-done .forum-level-up-msg{color:#67c23a}
.forum-level-up.is-error .forum-level-up-msg{color:#f56c6c}
.forum-level-up-btn{flex:none;border:1px solid var(--border,#dcdfe6);background:transparent;color:var(--muted,#909399);border-radius:6px;padding:3px 10px;cursor:pointer;font-size:var(--font-size-xs,12px)}
.forum-level-up-btn:hover{color:var(--brand,#409eff);border-color:var(--brand,#409eff)}
.forum-level-icon-up{flex:none;cursor:pointer}
.forum-level-uovw{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.forum-level-uovw-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.forum-level-uovw-lines{display:grid;gap:8px}
.forum-level-uovw-lines>div{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;font-size:var(--font-size-sm)}
.forum-level-uovw-lk{min-width:88px;color:var(--text-muted)}
.forum-level-ops-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.forum-level-op-box{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.forum-level-op-box>b{font-size:var(--font-size-sm)}
.forum-level-op-row{display:flex;gap:8px}
.forum-level-op-box .forum-level-input-sm{width:100%}
.forum-level-op-box .forum-level-modrsn-input{min-height:60px}
.forum-level-uovw-v{font-size:var(--font-size-lg);font-weight:700;color:var(--text)}
.forum-level-uovw-k{font-size:var(--font-size-xs);color:var(--text-muted)}
.forum-level-utitle-item{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;margin-right:5px}
.forum-level-utitle{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--fl-ut-size,18px);height:var(--fl-ut-size,18px);border-radius:50%;color:#fff;background:var(--fl-ut-bg,#2563eb);vertical-align:middle}
.forum-level-utitle-icon{width:11px;height:11px;display:block}
.forum-level-utitle--image{background:none;width:auto;height:auto;border-radius:0}
.forum-level-utitle-img{display:block;height:var(--fl-ut-size,18px);width:auto;max-width:120px;object-fit:contain}
.forum-level-utitle--dalao{width:auto;height:auto;border-radius:999px;padding:2px 10px;border:1px solid transparent;font-size:var(--font-size-xs);font-weight:500;line-height:1.5;white-space:nowrap;color:var(--fl-ut-text,#fff);background:var(--fl-ut-bg);box-shadow:0 1px 2px var(--shadow-base)}
.forum-level-utitle-name{font-size:var(--font-size-xs);color:var(--text);font-weight:500;white-space:nowrap}
.forum-level-utitle-text{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--fl-ut-bg,#e53935);font-weight:500;white-space:nowrap;vertical-align:middle;margin-right:5px}
.forum-level-utitle-text i{width:6px;height:6px;border-radius:50%;background:var(--fl-ut-bg,#e53935);flex:none}
/* 勋章头像叠加 + 红V + 尺寸 */
.post-avatar{position:relative}
.forum-level-utitle-avatar{position:absolute;right:-3px;bottom:-3px;z-index:2;display:inline-flex;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.forum-level-utitle-avatar .forum-level-utitle-item{margin:0}
.forum-level-utitle-avatar .forum-level-utitle-name{display:none}
.forum-level-utitle-item.is-vip .forum-level-utitle{box-shadow:0 0 0 1.5px #e5484d,0 0 0 3px #fff}
.forum-level-utitle-item[style*="--fl-ut-size"] .forum-level-utitle{width:var(--fl-ut-size);height:var(--fl-ut-size)}
.forum-level-utitle-item[style*="--fl-ut-size"] .forum-level-utitle-icon{width:calc(var(--fl-ut-size) - 4px);height:calc(var(--fl-ut-size) - 4px)}
.forum-level-utitle-item[style*="--fl-ut-size"] .forum-level-utitle-img{height:var(--fl-ut-size)}
.forum-level-utp-block{margin:4px 0 2px;padding:12px 14px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg)}
.forum-level-utp-head{display:block;font-weight:600;color:var(--text);margin-bottom:2px}
.forum-level-utp-subtitle{display:block;margin:12px 0 2px;color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-utp-subtitle.is-first{margin-top:4px}
.forum-level-ut-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0 0 14px}
.forum-level-ut-stat{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 4px 14px var(--shadow-base)}
.forum-level-ut-stat b{font-size:26px;font-weight:700;line-height:1.1;letter-spacing:-.5px}
.forum-level-ut-stat span{font-size:var(--font-size-sm);color:var(--text-muted)}
.forum-level-block-sub{display:block;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:400;margin-top:2px}
.forum-level-ut-mode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:10px}
.forum-level-ut-mode{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer;text-align:center;transition:border-color var(--transition-normal),box-shadow var(--transition-normal),background var(--transition-normal)}
.forum-level-ut-mode input{position:absolute;opacity:0;pointer-events:none}
.forum-level-ut-mode-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--bg);color:var(--text-muted)}
.forum-level-ut-mode-icon svg{width:28px;height:28px}
.forum-level-ut-mode-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}
.forum-level-ut-mode-desc{font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.4}
.forum-level-ut-mode:has(input:checked){border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 3px var(--focus-halo)}
.forum-level-ut-mode:has(input:checked) .forum-level-ut-mode-icon{color:var(--brand);background:#fff;transform:scale(1.06)}
.forum-level-ut-mode:has(input:checked) .forum-level-ut-mode-desc{color:var(--text)}
.forum-level-utp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-top:6px}
.forum-level-utp-grid--tags{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}
.forum-level-utp-opt{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer}
.forum-level-utp-opt input{position:absolute;opacity:0;pointer-events:none}
.forum-level-utp-opt .forum-level-utp-sw{display:inline-flex !important;align-items:center !important;justify-content:center !important;width:28px !important;height:28px !important;border-radius:50% !important;background:var(--fl-sw,#eee);color:#fff;font-size:var(--font-size-xs);line-height:1 !important;flex:none !important;text-align:center !important}
.forum-level-utp-opt .forum-level-utp-sw svg{display:block !important;flex:none !important}
.forum-level-utp-opt--dalao .forum-level-utp-sw{width:auto !important;min-width:34px !important;height:18px !important;border-radius:6px !important;padding:0 8px !important;background:var(--fl-sw-bg,#eee);color:var(--fl-sw-text,#fff);font-size:var(--font-size-xxs);font-weight:500;white-space:nowrap;line-height:1 !important;flex:none !important;text-align:center !important}
.forum-level-utp-opt .forum-level-utp-lbl{display:block !important;font-size:var(--font-size-xxs);color:var(--text-muted);text-align:center !important;line-height:1.3}
.forum-level-utp-opt:has(input:checked){border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 3px var(--focus-halo)}
.forum-level-utp-opt:has(input:checked) .forum-level-utp-lbl{color:var(--text);font-weight:600}
.multi-upload-cf-audio-wrap{display:flex;align-items:center;gap:.6rem;margin:.2rem 0}
.multi-upload-cf-audio{flex:1;max-width:420px;height:36px}
.multi-upload-cf-admin-stats{margin:0 0 .4rem}
.multi-upload-cf-admin-doc{margin:0 0 1rem}
.multi-upload-cf-settings-section{display:flex;flex-direction:column;gap:.35rem;border:1px solid var(--line-soft);border-radius:12px;padding:.9rem 1rem;margin-bottom:.9rem}
.multi-upload-cf-settings-section>strong{font-size:var(--font-size-md);margin-bottom:.25rem}
.multi-upload-cf-env-list{display:flex;flex-direction:column;gap:.3rem}
.multi-upload-cf-env-row{display:flex;align-items:center;gap:.6rem;font-size:var(--font-size-sm)}
.multi-upload-cf-env-status{flex:none;font-size:var(--font-size-xs)}
.multi-upload-cf-env-status.is-ok{color:var(--success)}
.multi-upload-cf-env-status.is-bad{color:var(--danger)}
.multi-upload-cf-env-detail{color:var(--text-muted);font-size:var(--font-size-xs)}
.multi-upload-cf-records{display:flex;flex-direction:column;gap:.35rem;max-height:420px;overflow-y:auto}
.multi-upload-cf-record{display:grid;grid-template-columns:auto 1fr auto auto;gap:.6rem;align-items:center;padding:.4rem .6rem;border:1px solid var(--line-soft);border-radius:8px;font-size:var(--font-size-sm)}
.multi-upload-cf-record-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.multi-upload-cf-record-meta{color:var(--text-muted);font-size:var(--font-size-xs);white-space:nowrap}
.multi-upload-cf-record-kind{font-size:var(--font-size-xxs);padding:.05rem .4rem;border-radius:6px;background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand)}
.multi-upload-cf-record-storage{font-size:var(--font-size-xxs);padding:.05rem .4rem;border-radius:6px}
.multi-upload-cf-record-storage.is-remote{background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand)}
.multi-upload-cf-record-storage.is-local{background:var(--warning-soft);color:var(--warning)}
.multi-upload-cf-pager{font-size:var(--font-size-xs);color:var(--text-muted);margin:.2rem 0 .5rem}
.multi-upload-cf-pager a{color:var(--brand)}
@media (prefers-reduced-motion: reduce){.multi-upload-cf-bar i{transition:none}.multi-upload-cf-item{transition:none}}.forum-level-ed-admin-settings{max-width:none;gap:16px}
.forum-level-ed-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.forum-level-ed-admin-section{display:grid;align-content:start;gap:10px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg)}
.forum-level-ed-admin-section-head{display:grid;gap:3px;padding-bottom:2px}
.forum-level-ed-admin-section-head strong{color:var(--text);font-size:var(--font-size-md);line-height:1.4}
.forum-level-ed-admin-section-head span{color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.45}
.forum-level-ed-admin-settings .forum-level-ed-admin-section>.grid{grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin:0;padding:9px 0;border-top:1px solid var(--line-soft)}
.forum-level-ed-admin-settings .forum-level-ed-admin-section-head+.grid{border-top:0}
.forum-level-ed-admin-settings .forum-level-ed-admin-section>.grid>span{padding-top:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.45}
.forum-level-ed-admin-settings .forum-level-ed-admin-section>.grid>span small{margin-top:2px;color:var(--text-subtle);line-height:1.4}
.forum-level-ed-admin-settings .forum-level-ed-admin-section>.grid input[type=number]{width:100%;max-width:130px}
.forum-level-ed-admin-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-top:2px}
.forum-level-ed-admin-actions button{margin:0}
.forum-level-ed-admin-actions span{color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.45}
@media(max-width:720px){
.forum-level-ed-admin-grid{grid-template-columns:1fr}
.forum-level-ed-admin-section{padding:12px}
.forum-level-ed-admin-actions{align-items:stretch;flex-direction:column}
.forum-level-ed-admin-actions button{width:100%}
}
.forum-level-ed-field{position:relative;display:grid;row-gap:0;margin:8px 0}
.reply-panel .forum-level-ed-field{margin:0}
.forum-level-ed-field>.grid{display:contents}
.forum-level-ed-field>.grid>span{order:1;margin-bottom:6px;padding-top:0}
.forum-level-ed-field>.forum-level-ed{order:2}
/* 正文框固定白底，和主题色工具栏拉开层次；高度仍交给核心按场景决定。 */
.forum-level-ed-field>.grid>textarea[name=body]{order:3;border-top:0;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--panel);resize:vertical}
/* 分栏预览：左边写 Markdown，右边常驻渲染结果，随输入更新。 */
.forum-level-ed-field.forum-level-ed-live{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.forum-level-ed-field.forum-level-ed-live>.grid>span,.forum-level-ed-field.forum-level-ed-live>.forum-level-ed{grid-column:1/-1}
.forum-level-ed-field.forum-level-ed-live>.grid>textarea[name=body]{grid-column:1;border-bottom-right-radius:0}
.forum-level-ed-field.forum-level-ed-live>.forum-level-ed-preview{grid-column:2;max-height:60vh;overflow:auto;border-left:0;border-bottom-left-radius:0}
.forum-level-ed{min-width:0}
/* 工具栏跟随站点主题色，不写死中性灰。 */
.forum-level-ed-bar{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:4px 6px;border:1px solid var(--line);border-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--brand-soft)}
.forum-level-ed-field:focus-within>.forum-level-ed>.forum-level-ed-bar{border-color:var(--brand)}
/* 选择器带上根容器，避免被 .reply-panel button 之类的核心规则按特异性压过。 */
.forum-level-ed .forum-level-ed-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;min-width:30px;min-height:28px;height:28px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--brand-hover);cursor:pointer}
.forum-level-ed .forum-level-ed-btn svg{width:16px;height:16px}
.forum-level-ed .forum-level-ed-btn:hover{border-color:var(--line);background:var(--panel);color:var(--brand-hover)}
.forum-level-ed .forum-level-ed-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}
.forum-level-ed .forum-level-ed-btn.forum-level-ed-btn-active{border-color:var(--brand);background:var(--panel);color:var(--brand-hover)}
.forum-level-ed-split{width:1px;height:16px;margin:0 4px;background:var(--line)}
.forum-level-ed-space{flex:1 1 auto;min-width:0}
/* 面板用 fixed 浮层：既不挤占正文框空间，也不会被祖先的 overflow:hidden 裁掉。位置由 JS 计算，优先向上弹。 */
.forum-level-ed-panel{position:fixed;z-index:60;display:flex;flex-direction:column;width:min(360px,100%);max-height:min(60vh,340px);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 12px 32px var(--shadow-medium);overflow:hidden}
.forum-level-ed-panel[hidden]{display:none}
.forum-level-ed-panel-title{flex:0 0 auto;padding:8px 12px 0;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.4}
.forum-level-ed-items{flex:1 1 auto;min-height:0;display:flex;align-items:flex-start;align-content:flex-start;flex-wrap:wrap;gap:3px;margin:0;padding:8px 10px;overflow-y:auto;list-style:none}
.forum-level-ed-items[hidden]{display:none}
.forum-level-ed-items li{padding:4px 7px;border-radius:var(--radius-sm);color:var(--text);font-size:var(--font-size-sm);line-height:1.4;cursor:pointer;user-select:none}
.forum-level-ed-items li:hover{background:var(--bg)}
.forum-level-ed-items-emoji li{padding:2px 5px;font-size:var(--font-size-xl)}
.forum-level-ed-tabs{flex:0 0 auto;display:flex;align-items:stretch;flex-wrap:wrap;border-top:1px solid var(--line);background:var(--brand-soft)}
.forum-level-ed .forum-level-ed-tab{min-width:0;min-height:34px;padding:0 12px;border:0;border-radius:0;background:transparent;color:var(--text-muted);font-size:var(--font-size-sm);font-weight:400;cursor:pointer}
.forum-level-ed .forum-level-ed-tab:hover{background:var(--panel);color:var(--text)}
.forum-level-ed .forum-level-ed-tab.forum-level-ed-tab-active{background:var(--panel);color:var(--brand-hover);font-weight:500}
/* 预览框借用核心 .post-content 的排版，但要去掉它的 margin-top，否则与正文框差 2px。 */
.forum-level-ed-preview{order:4;margin-top:0;min-height:120px;padding:12px 14px;border:1px solid var(--line);border-top:0;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--panel)}
.forum-level-ed-preview[hidden]{display:none}
.forum-level-ed-preview-empty{color:var(--text-subtle);font-size:var(--font-size-sm)}
.forum-level-ed-draft{order:2;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:7px 10px;border:1px solid var(--line);border-top:0;background:var(--info-soft);color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5}
.forum-level-ed-draft[hidden]{display:none}
.forum-level-ed-draft-text{flex:1 1 auto;min-width:0}
.forum-level-ed-status{order:2;padding:6px 10px;border:1px solid var(--line);border-top:0;background:var(--brand-soft);color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5;overflow-wrap:anywhere}
.forum-level-ed-status[hidden]{display:none}
.forum-level-ed-draft .forum-level-ed-draft-action{min-width:0;min-height:26px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font-size:var(--font-size-sm);font-weight:500;cursor:pointer}
.forum-level-ed-draft .forum-level-ed-draft-action:hover{border-color:var(--brand);color:var(--brand-hover)}
.forum-level-ed-field.forum-level-ed-full{position:fixed;inset:0;z-index:60;align-content:start;margin:0;padding:14px;background:var(--panel);overflow:auto}
.forum-level-ed-field.forum-level-ed-full>.grid>textarea[name=body]{min-height:calc(100vh - 120px)}
.forum-level-ed-field.forum-level-ed-full>.forum-level-ed-preview{min-height:calc(100vh - 120px)}
.forum-level-ed-field.forum-level-ed-full.forum-level-ed-live>.forum-level-ed-preview{max-height:none}
.forum-level-ed-dialog-field{display:grid;gap:5px;color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-ed-dialog-field .prompt-input{box-sizing:border-box}
.forum-level-ed-upload{display:grid;gap:7px;margin:2px 0 6px;text-align:center}
.forum-level-ed-upload .forum-level-ed-upload-pick{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:110px;padding:16px 14px;border:1px dashed var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}
.forum-level-ed-upload .forum-level-ed-upload-pick:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--text)}
.forum-level-ed-upload .forum-level-ed-upload-pick.is-busy{opacity:.6;pointer-events:none}
.forum-level-ed-upload-plus{font-size:36px;line-height:1;color:var(--brand)}
.forum-level-ed-upload-tip{font-size:var(--font-size-xs);line-height:1.5}
.forum-level-ed-upload-status{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.5;overflow-wrap:anywhere}
/* 窄屏放不下两栏，预览改到正文框下方，仍然实时更新。 */
@media(max-width:820px){
.forum-level-ed-field.forum-level-ed-live{grid-template-columns:minmax(0,1fr)}
.forum-level-ed-field.forum-level-ed-live>.grid>textarea[name=body]{grid-column:1;border-radius:0}
.forum-level-ed-field.forum-level-ed-live>.forum-level-ed-preview{grid-column:1;max-height:50vh;border-left:1px solid var(--line);border-radius:0 0 var(--radius-sm) var(--radius-sm)}
}
@media(max-width:480px){
.forum-level-ed-bar{gap:1px;padding:4px}
.forum-level-ed .forum-level-ed-btn{width:28px;min-width:28px}
.forum-level-ed-split{margin:0 2px}
}.forum-level-digest-tag{display:inline-flex;align-items:center;box-sizing:border-box;height:auto;min-height:0;padding:0 5px;border:0;border-radius:4px;font-size:var(--font-size-xs);line-height:18px;color:var(--warning);background:var(--warning-soft);vertical-align:middle}
.forum-level-utitle-avatar{--fl-ut-size:12px;right:-2px;bottom:-2px}
.forum-level-mini-groups .forum-level-chip,.forum-level-mini-groups .forum-level-mini-gtag{display:inline-flex;align-items:center;box-sizing:border-box;min-height:22px;padding:2px 7px;font-size:var(--font-size-xs);line-height:16px;border-radius:5px;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 0 auto}
.forum-level-appeal-history p{white-space:normal;overflow-wrap:anywhere}
.forum-level-user-search{display:grid;gap:4px;margin:5px 0;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;max-height:240px;overflow:auto}
.forum-level-user-search button{display:block;width:100%;text-align:left;background:var(--bg);color:var(--text);font-size:var(--font-size-sm);padding:6px 9px;border:1px solid var(--line);border-radius:5px}
.forum-level-user-search small{color:var(--text-muted)}
.forum-level-mini-identity{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:7px;min-width:0;margin-top:12px;padding-top:10px;border-top:1px solid var(--line-soft)}
.forum-level-mini-glabel{padding:0;font-size:var(--font-size-md);font-weight:700;line-height:1.5;color:var(--text-muted)}
.forum-level-mini-groups{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;gap:6px;min-width:0;margin:0}
.forum-level-mini-groups .forum-level-chip,.forum-level-mini-groups .forum-level-mini-gtag{box-sizing:border-box;max-width:100%;min-height:26px;padding:4px 8px;font-size:var(--font-size-sm);line-height:16px;flex:0 1 auto;white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
.forum-level-ticket-form{min-width:0}
.forum-level-cat-row{display:grid;grid-template-columns:minmax(96px,.42fr) minmax(0,1fr);align-items:center;gap:8px 10px;min-width:0}
.forum-level-cat-row.is-new{grid-template-columns:repeat(2,minmax(0,1fr))}
.forum-level-cat-key,.forum-level-cat-input{box-sizing:border-box;width:100%;min-width:0}
.forum-level-permview-row{display:grid;grid-template-columns:minmax(96px, .35fr) minmax(0,1fr);align-items:start;gap:8px 12px}
.forum-level-permview-name{min-width:0;line-height:1.6}
.forum-level-permview-groups{min-width:0;justify-content:flex-start}
@media(max-width:560px){
  .forum-level-mini-identity{grid-template-columns:minmax(0,1fr);gap:6px}
  .forum-level-mini-groups{gap:5px}
  .forum-level-mini-groups .forum-level-chip,.forum-level-mini-groups .forum-level-mini-gtag{max-width:100%;font-size:var(--font-size-xs)}
  .forum-level-cat-row,.forum-level-cat-row.is-new,.forum-level-permview-row{grid-template-columns:minmax(0,1fr)}
  .forum-level-cat-key{width:max-content;max-width:100%}
}.forum-level-subnav{display:flex;flex-wrap:wrap;gap:8px;padding:4px;background:var(--bg);border:1px solid var(--line);border-radius:10px}.forum-level-subnav-item{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:8px;color:var(--text-muted);text-decoration:none;font-size:var(--font-size-sm);font-weight:600}.forum-level-subnav-item:hover{background:var(--panel);color:var(--text)}.forum-level-subnav-item.is-active{background:var(--brand);color:#fff}.forum-level-subnav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:var(--font-size-xxs)}.forum-level-subnav-item.is-active .forum-level-subnav-badge{background:#fff;color:var(--brand)}.forum-level-ads-admin-pending{margin-top:8px}
.forum-level-flmodal{display:none;position:fixed;inset:0;z-index:3000;align-items:flex-start;justify-content:center}
.forum-level-flmodal.is-open{display:flex}
.forum-level-flmodal-mask{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.forum-level-flmodal-panel{position:relative;z-index:1;margin-top:8vh;width:min(560px,calc(100vw - 32px));max-height:84vh;overflow:auto;background:var(--panel);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.25);padding:18px 20px;display:grid;gap:12px}
.forum-level-flmodal-head{display:flex;align-items:center;justify-content:space-between}
.forum-level-flmodal-head b{font-size:var(--font-size-lg)}
.forum-level-flmodal-x{border:0;background:transparent;font-size:22px;line-height:1;cursor:pointer;color:var(--text-muted)}
.forum-level-ads-sidebar{display:grid;gap:10px;padding:16px}.forum-level-ads-sidebar .forum-level-ads-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-muted);font-size:var(--font-size-sm)}.forum-level-ads-sidebar .forum-level-ads-sidebar-head a{color:var(--brand);text-decoration:none}.forum-level-ads-sidebar .forum-level-ads-sidebar-head a:hover{text-decoration:underline}.forum-level-ads-sidebar .forum-level-ads-image-list{display:grid;gap:10px}.forum-level-ads-sidebar .forum-level-ads-image-link{display:block;width:100%;overflow:hidden;border-radius:8px;background:var(--bg)}.forum-level-ads-sidebar .forum-level-ads-image-link img{display:block;width:100%;height:auto;aspect-ratio:25 / 6;object-fit:cover}.forum-level-ads-sidebar .forum-level-ads-text-list{display:grid;gap:10px}.forum-level-ads-sidebar .forum-level-ads-text-link{display:flex;align-items:center;justify-content:center;min-height:58px;padding:12px;border-radius:8px;background:var(--forum-level-ads-background-color);color:var(--forum-level-ads-text-color);font-size:var(--font-size-lg);font-weight:600;line-height:1.45;text-align:center;text-decoration:none;overflow-wrap:anywhere}.forum-level-ads-page,.forum-level-ads-admin{display:grid;gap:16px}.forum-level-ads-page .forum-level-ads-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.forum-level-ads-page .forum-level-ads-page-head h1{margin:0}.forum-level-ads-page .forum-level-ads-page-head p,.forum-level-ads-purchase-form>p,.forum-level-ads-admin-form>p{margin:6px 0 0;color:var(--text-muted)}.forum-level-ads-page .forum-level-ads-summary,.forum-level-ads-admin .forum-level-ads-admin-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.forum-level-ads-page .forum-level-ads-summary>div,.forum-level-ads-admin .forum-level-ads-admin-stats>div,.forum-level-ads-page .forum-level-ads-section,.forum-level-ads-admin .forum-level-ads-section{border:1px solid var(--line);border-radius:12px;background:var(--panel)}.forum-level-ads-page .forum-level-ads-summary>div,.forum-level-ads-admin .forum-level-ads-admin-stats>div{display:grid;gap:5px;padding:16px}.forum-level-ads-page .forum-level-ads-summary span,.forum-level-ads-page .forum-level-ads-summary small,.forum-level-ads-admin .forum-level-ads-admin-stats span,.forum-level-ads-admin .forum-level-ads-admin-stats small{color:var(--text-muted);font-size:var(--font-size-sm)}.forum-level-ads-page .forum-level-ads-summary strong,.forum-level-ads-admin .forum-level-ads-admin-stats strong{font-size:var(--font-size-xl)}.forum-level-ads-purchase-form{display:grid;gap:16px}.forum-level-ads-purchase-form form{display:grid;gap:14px}.forum-level-ads-purchase-form .forum-level-ads-conditional{display:grid;gap:14px;padding:14px;border:1px solid var(--line-soft);border-radius:10px;background:var(--bg)}.forum-level-ads-purchase-form .forum-level-ads-color-grid,.forum-level-ads-admin .forum-level-ads-admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.forum-level-ads-purchase-form .forum-level-ads-preview-wrap{display:grid;gap:7px;color:var(--text-muted);font-size:var(--font-size-sm)}.forum-level-ads-purchase-form .forum-level-ads-text-preview{display:flex;align-items:center;justify-content:center;min-height:70px;padding:12px;border-radius:8px;background:var(--forum-level-ads-background-color);color:var(--forum-level-ads-text-color);font-size:var(--font-size-lg);font-weight:600;overflow-wrap:anywhere}.forum-level-ads-page .forum-level-ads-section,.forum-level-ads-admin .forum-level-ads-section{overflow:hidden}.forum-level-ads-page .forum-level-ads-section-head,.forum-level-ads-admin .forum-level-ads-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--line-soft)}.forum-level-ads-page .forum-level-ads-section-head h2,.forum-level-ads-admin .forum-level-ads-section-head h2{margin:0;font-size:var(--font-size-lg)}.forum-level-ads-page .forum-level-ads-section-head>span,.forum-level-ads-admin .forum-level-ads-section-head>span{color:var(--text-muted);font-size:var(--font-size-sm)}.forum-level-ads-page .forum-level-ads-record-list,.forum-level-ads-admin .forum-level-ads-admin-record-list{display:grid}.forum-level-ads-page .forum-level-ads-record,.forum-level-ads-admin .forum-level-ads-admin-record{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line-soft)}.forum-level-ads-page .forum-level-ads-record:last-child,.forum-level-ads-admin .forum-level-ads-admin-record:last-child{border-bottom:0}.forum-level-ads-page .forum-level-ads-record>div:first-child,.forum-level-ads-admin .forum-level-ads-admin-record-main{display:grid;gap:4px;min-width:0}.forum-level-ads-page .forum-level-ads-record span,.forum-level-ads-page .forum-level-ads-record small,.forum-level-ads-admin .forum-level-ads-admin-record span,.forum-level-ads-admin .forum-level-ads-admin-record small{color:var(--text-muted);overflow-wrap:anywhere}.forum-level-ads-page .forum-level-ads-record-actions,.forum-level-ads-admin .forum-level-ads-record-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.forum-level-ads-page .forum-level-ads-record-actions>a,.forum-level-ads-admin .forum-level-ads-record-actions>a{color:var(--brand);font-size:var(--font-size-sm);text-decoration:none}.forum-level-ads-page .forum-level-ads-record-actions>a:hover,.forum-level-ads-admin .forum-level-ads-record-actions>a:hover{text-decoration:underline}.forum-level-ads-page .forum-level-ads-inline-form,.forum-level-ads-admin .forum-level-ads-inline-form{margin:0}.forum-level-ads-page .forum-level-ads-inline-form button,.forum-level-ads-admin .forum-level-ads-inline-form button{margin:0;font-size:var(--font-size-sm)}.forum-level-ads-page .forum-level-ads-empty,.forum-level-ads-admin .forum-level-ads-empty{padding:20px 16px;color:var(--text-muted);text-align:center}.forum-level-ads-admin .forum-level-ads-admin-form{max-width:760px}.forum-level-ads-admin .forum-level-ads-admin-form form{display:grid;gap:16px}
.forum-level-ads-sidebar .forum-level-ads-image-link,.forum-level-ads-sidebar .forum-level-ads-text-link{outline:1px solid transparent;transition:transform .18s ease,box-shadow .18s ease,outline-color .18s ease}.forum-level-ads-sidebar .forum-level-ads-image-link img{transition:transform .18s ease}.forum-level-ads-sidebar .forum-level-ads-image-link:focus-visible,.forum-level-ads-sidebar .forum-level-ads-text-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media (hover:hover){.forum-level-ads-sidebar .forum-level-ads-image-link:hover,.forum-level-ads-sidebar .forum-level-ads-text-link:hover{outline-color:var(--brand);box-shadow:var(--shadow-medium);transform:translateY(-2px)}.forum-level-ads-sidebar .forum-level-ads-image-link:hover img{transform:scale(1.02)}}@media (prefers-reduced-motion:reduce){.forum-level-ads-sidebar .forum-level-ads-image-link,.forum-level-ads-sidebar .forum-level-ads-text-link,.forum-level-ads-sidebar .forum-level-ads-image-link img{transition-duration:.01ms}}
.forum-level-ads-purchase-form .forum-level-ads-image-preview{display:grid;gap:8px;padding:10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm)}.forum-level-ads-purchase-form .forum-level-ads-image-preview img{display:block;width:100%;max-width:500px;height:auto;aspect-ratio:25 / 6;object-fit:contain;border-radius:6px;background:var(--bg)}.forum-level-ads-purchase-form .forum-level-ads-price-card{display:grid;gap:4px;padding:14px;border:1px solid var(--brand);border-radius:10px;background:var(--brand-soft)}.forum-level-ads-purchase-form .forum-level-ads-price-card strong{font-size:var(--font-size-lg)}.forum-level-ads-purchase-form .forum-level-ads-price-card span{color:var(--text-muted);font-size:var(--font-size-sm)}.forum-level-ads-purchase-form .forum-level-ads-price-card-muted{border-color:var(--line);background:var(--panel)}.forum-level-ads-purchase-form .forum-level-ads-terms,.forum-level-ads-admin .forum-level-ads-check{display:flex;align-items:flex-start;gap:8px;color:var(--text-muted);font-size:var(--font-size-sm)}.forum-level-ads-purchase-form .forum-level-ads-terms input,.forum-level-ads-admin .forum-level-ads-check input{margin-top:3px}.forum-level-ads-purchase-form [data-forum-level-ads-contrast]{color:var(--text-muted)}.forum-level-ads-purchase-form .forum-level-ads-contrast-low{color:var(--warning)}.forum-level-ads-page .forum-level-ads-record-actions input[type=number]{width:72px}.forum-level-ads-admin .forum-level-ads-admin-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.forum-level-ads-admin .forum-level-ads-placement{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.forum-level-ads-admin .forum-level-ads-placement>span{font-size:var(--font-size-sm)}.forum-level-ads-admin .forum-level-ads-admin-filter{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line-soft)}.forum-level-ads-admin .forum-level-ads-admin-filter select,.forum-level-ads-admin .forum-level-ads-admin-filter input{max-width:190px}.forum-level-ads-admin .forum-level-ads-record-actions input[type=text]{width:150px;max-width:100%;font-size:var(--font-size-sm)}
@media (max-width:760px){.forum-level-ads-page .forum-level-ads-summary,.forum-level-ads-admin .forum-level-ads-admin-stats,.forum-level-ads-purchase-form .forum-level-ads-color-grid,.forum-level-ads-admin .forum-level-ads-admin-form-grid{grid-template-columns:1fr}.forum-level-ads-page .forum-level-ads-page-head,.forum-level-ads-page .forum-level-ads-section-head,.forum-level-ads-admin .forum-level-ads-section-head{align-items:flex-start;flex-direction:column}.forum-level-ads-page .forum-level-ads-record,.forum-level-ads-admin .forum-level-ads-admin-record{align-items:flex-start;flex-direction:column}.forum-level-ads-page .forum-level-ads-record-actions,.forum-level-ads-admin .forum-level-ads-record-actions{justify-content:flex-start}}
.forum-level-ads-sidebar .forum-level-ads-empty-card{display:grid;gap:8px;padding:12px;border:1px dashed var(--line);border-radius:8px;background:var(--bg);color:var(--text-muted)}.forum-level-ads-sidebar .forum-level-ads-empty-card strong{color:var(--text);font-size:var(--font-size-sm)}.forum-level-ads-sidebar .forum-level-ads-empty-card span{font-size:var(--font-size-xs);line-height:1.55}.forum-level-ads-sidebar .forum-level-ads-empty-card a{justify-self:start;padding:6px 10px;border-radius:6px;background:var(--brand);color:#fff;font-size:var(--font-size-xs);font-weight:600;text-decoration:none;transition:transform .2s ease,filter .2s ease}.forum-level-ads-sidebar .forum-level-ads-empty-card a:hover{transform:translateY(-1px);filter:brightness(.96)}
.forum-level-ads-purchase-form{max-width:920px}.forum-level-ads-purchase-form .forum-level-ads-purchase-heading{display:flex;align-items:flex-start;gap:12px;padding-bottom:2px}.forum-level-ads-purchase-form .forum-level-ads-purchase-heading h2{margin:0}.forum-level-ads-purchase-form .forum-level-ads-purchase-heading p{margin:6px 0 0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.55}.forum-level-ads-purchase-form .forum-level-ads-purchase-kicker,.forum-level-ads-purchase-form .forum-level-ads-form-step{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xs);font-weight:600}.forum-level-ads-purchase-form .forum-level-ads-purchase-kicker{min-height:28px;padding:0 10px}.forum-level-ads-purchase-form .forum-level-ads-form-step{width:26px;height:26px}.forum-level-ads-purchase-form .forum-level-ads-form-section{display:grid;gap:14px;padding:16px;border:1px solid var(--line-soft);border-radius:12px;background:var(--bg)}.forum-level-ads-purchase-form .forum-level-ads-form-section-head{display:flex;align-items:flex-start;gap:10px}.forum-level-ads-purchase-form .forum-level-ads-form-section-head>div{display:grid;gap:3px}.forum-level-ads-purchase-form .forum-level-ads-form-section-head strong{font-size:var(--font-size-md)}.forum-level-ads-purchase-form .forum-level-ads-form-section-head small{color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.45}.forum-level-ads-purchase-form .forum-level-ads-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.forum-level-ads-purchase-form .forum-level-ads-form-grid-full{grid-column:1/-1}.forum-level-ads-purchase-form .forum-level-ads-conditional[hidden],.forum-level-ads-purchase-form .forum-level-ads-image-preview[hidden],.forum-level-ads-purchase-form .forum-level-ads-text-preview[hidden]{display:none}.forum-level-ads-purchase-form .forum-level-ads-image-preview{width:min(100%,520px);padding:10px}.forum-level-ads-purchase-form .forum-level-ads-image-preview img{max-width:500px}.forum-level-ads-purchase-form .forum-level-ads-color-grid{gap:14px}.forum-level-ads-purchase-form .forum-level-ads-color-grid input[type=color]{width:100%;height:42px;padding:4px}.forum-level-ads-purchase-form .forum-level-ads-preview-wrap{gap:9px}.forum-level-ads-purchase-form .forum-level-ads-text-preview{min-height:76px;border:1px solid var(--line);box-shadow:var(--shadow-base)}.forum-level-ads-purchase-form .forum-level-ads-payment-section{background:var(--panel)}.forum-level-ads-purchase-form .forum-level-ads-payment-section>.grid{max-width:320px}.forum-level-ads-purchase-form .forum-level-ads-price-card{padding:15px 16px}.forum-level-ads-purchase-form .forum-level-ads-submit-row{margin-top:2px}.forum-level-ads-purchase-form .forum-level-ads-submit-row button{min-width:180px}
@media (max-width:760px){.forum-level-ads-purchase-form .forum-level-ads-purchase-heading{display:grid}
.forum-level-ads-group{border:1px solid var(--line-soft);border-radius:12px;margin-bottom:14px;overflow:hidden;background:var(--bg)}
.forum-level-ads-group>summary{cursor:pointer;font-weight:600;padding:12px 16px;background:var(--bg-soft);user-select:none;list-style:none;position:relative;display:flex;align-items:center;justify-content:space-between}
.forum-level-ads-group>summary::-webkit-details-marker{display:none}
.forum-level-ads-group>summary::after{content:'';width:8px;height:8px;border-right:2px solid var(--text-2);border-bottom:2px solid var(--text-2);transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.forum-level-ads-group[open]>summary::after{transform:translateY(2px) rotate(-135deg)}
.forum-level-ads-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 16px;padding:14px 16px}.forum-level-ads-purchase-form .forum-level-ads-form-grid{grid-template-columns:1fr}.forum-level-ads-purchase-form .forum-level-ads-form-grid-full{grid-column:auto}.forum-level-ads-purchase-form .forum-level-ads-payment-section>.grid{max-width:none}.forum-level-ads-purchase-form .forum-level-ads-submit-row button{width:100%}}
.forum-level-ed-mall-hint{color:var(--text-muted);font-size:var(--font-size-sm);margin:0 0 10px}
.forum-level-ed-mall-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:340px;overflow:auto}
.forum-level-ed-mall-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;text-align:left;min-inline-size:0}
.forum-level-ed-mall-item:hover{border-color:var(--link-color,var(--line));background:var(--bg-soft,var(--bg))}
.forum-level-ed-mall-media{width:52px;height:40px;flex:0 0 auto;border-radius:6px;overflow:hidden;background:var(--bg)}
.forum-level-ed-mall-media img{width:100%;height:100%;object-fit:cover}
.forum-level-ed-mall-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-subtle);font-size:var(--font-size-sm)}
.forum-level-ed-mall-body{display:flex;flex-direction:column;gap:3px;min-inline-size:0;flex:1}
.forum-level-ed-mall-body b{font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.forum-level-ed-mall-meta{display:flex;gap:8px;align-items:center;font-size:var(--font-size-xs);color:var(--text-muted)}
.forum-level-ed-mall-meta em{font-style:normal;background:var(--bg-soft,var(--bg));border:1px solid var(--line);border-radius:4px;padding:0 5px;color:var(--text-subtle)}
.forum-level-ed-mall-meta i{font-style:normal;color:#e60000}
.forum-level-ed-mall-price{font-size:var(--font-size-sm);color:var(--link-color,var(--text));white-space:nowrap}
.forum-level-ed-mall-empty{color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-order-state{font-size:var(--font-size-xs);padding:3px 10px;border-radius:999px;background:var(--bg-soft,var(--bg));border:1px solid var(--line);color:var(--text-muted)}
.forum-level-market-order-state.is-done{color:#16a34a;border-color:#86efac;background:#f0fdf4}
.forum-level-market-order-state.is-pending{color:#b45309;border-color:#fde68a;background:#fffbeb}
.forum-level-market-order-state.is-refund{color:#b91c1c;border-color:#fecaca;background:#fef2f2}
.forum-level-market-flow .is-pass{color:var(--text-muted)}
.forum-level-market-flow .is-cur{color:var(--link-color,var(--text));font-weight:600}
.forum-level-market-order-main{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.forum-level-market-order-main h3{margin:0 0 4px;font-size:var(--font-size-lg)}
.forum-level-market-order-main p{margin:0;color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-order-amount{text-align:right}
.forum-level-market-order-amount b{font-size:var(--font-size-xl);color:var(--link-color,var(--text))}
.forum-level-market-order-amount span{display:block;color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-order-meta{color:var(--text-muted);font-size:var(--font-size-sm);padding:10px 0;border-bottom:1px solid var(--line)}
.forum-level-market-order-block{padding:12px 0;border-bottom:1px solid var(--line)}
.forum-level-market-order-block h3{margin:0 0 8px;font-size:var(--font-size-md)}
.forum-level-market-order-block p{margin:0;color:var(--text);line-height:1.7;overflow-wrap:anywhere}
/* ---------- 17. 前台 UI 统一层（v3.61.0，纯增量：可达性 / 反馈 / 一致性） ---------- */
/* 键盘可达性：所有插件交互元素统一品牌色聚焦环（不影响鼠标点击外观） */
.forum-level-wrap :focus-visible,.fl-shell :focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}
/* 列表/表格行悬停反馈（流水、订单、举报等列表统一节奏） */
.forum-level-table tbody tr{transition:background var(--transition-normal)}
.forum-level-table tbody tr:hover{background:var(--brand-soft)}
.forum-level-log-item b,.forum-level-order-num,.forum-level-stat-num{font-variant-numeric:tabular-nums}
/* 统一状态标签（工单状态 / 订单状态 / 广告状态等语义色） */
.forum-level-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:var(--font-size-xxs);font-weight:600;line-height:1.6;white-space:nowrap}
.forum-level-tag.is-ok{background:var(--success-soft);color:var(--success)}
.forum-level-tag.is-warn{background:var(--warning-soft);color:var(--warning)}
.forum-level-tag.is-danger{background:var(--danger-soft);color:var(--danger)}
.forum-level-tag.is-info{background:var(--bg);color:var(--text-muted);border:1px solid var(--line-soft)}
.forum-level-tag.is-brand{background:var(--brand-soft);color:var(--brand)}
/* 统一空态（列表无数据 / 无权限内容占位） */
.forum-level-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:32px 16px;color:var(--text-subtle);font-size:var(--font-size-sm);text-align:center}
.forum-level-empty::before{content:"";width:44px;height:44px;border-radius:12px;border:1px dashed var(--line,#dbe2ea);background:var(--bg,#f7f9fc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23bcc7d4' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13h4l1.5 3h7L17 13h4'/%3E%3Cpath d='M5 4h14l2 8v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-6z'/%3E%3C/svg%3E")}
.forum-level-empty b{color:var(--text-muted);font-weight:600}
/* 按钮统一过渡与触达面积（不改变既有配色） */
.forum-level-wrap button,.forum-level-modal-panel button,.forum-level-market-page button{transition:filter .15s ease,transform .06s ease}
.forum-level-wrap button:active,.forum-level-modal-panel button:active{transform:scale(.98)}
/* 窄屏：操作行不溢出、筛选工具栏可横向滚动 */
@media (max-width:640px){
  .forum-level-report-actions,.forum-level-order-ops,.forum-level-filter{flex-wrap:wrap}
  .forum-level-toolbar{overflow-x:auto}
}
/* ---------- 18. v3.62.0：商城新功能组件（评价/热销/卡密/退货） ---------- */
.forum-level-market-hot{margin:14px 0;padding:14px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.forum-level-market-hot h2{margin:0 0 10px;font-size:var(--font-size-base)}
.forum-level-market-hot-list{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
.forum-level-market-hot-item{flex:0 0 auto;display:flex;flex-direction:column;gap:4px;min-width:180px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--bg);text-decoration:none}
.forum-level-market-hot-item b{color:var(--text);font-size:var(--font-size-sm)}
.forum-level-market-hot-item i{font-style:normal;color:var(--brand);font-weight:700;font-size:var(--font-size-sm)}
.forum-level-market-hot-item em{font-style:normal;color:var(--text-subtle);font-size:var(--font-size-xxs)}
/* 评价 */
.forum-level-market-reviews{margin-top:18px;padding-top:14px;border-top:1px dashed var(--line-soft)}
.forum-level-market-reviews-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.forum-level-market-reviews-avg{font-size:22px;font-weight:800;color:var(--warning)}
.forum-level-market-review{padding:10px 0;border-bottom:1px solid var(--line-soft)}
.forum-level-market-review-stars{color:var(--warning);letter-spacing:2px;font-size:13px}
.forum-level-market-review-meta{margin-left:8px;color:var(--text-subtle);font-size:var(--font-size-xxs)}
.forum-level-market-review p{margin:5px 0 0;color:var(--text);font-size:var(--font-size-sm);line-height:1.7;word-break:break-word}
/* 卡密库存面板 */
.forum-level-market-cards-stat{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.forum-level-market-cards-stat span{flex:1;min-width:120px;padding:12px;border:1px solid var(--line-soft);border-radius:8px;background:var(--bg);text-align:center;font-size:var(--font-size-xs);color:var(--text-muted)}
.forum-level-market-cards-stat b{display:block;font-size:22px;color:var(--brand);font-variant-numeric:tabular-nums}
.forum-level-market-order-flow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
/* 19. 工单时间线等强化 */
.forum-level-market-preview-tip{margin:12px 0;padding:10px 14px;border:1px solid var(--warning-soft);border-left:4px solid var(--warning);border-radius:8px;background:var(--warning-soft);color:var(--warning);font-size:var(--font-size-sm);font-weight:600}
.forum-level-ticket-timeline{border-left:2px solid var(--line-soft);margin-left:8px;padding-left:14px;display:flex;flex-direction:column;gap:10px}
.forum-level-ticket-timeline-item{position:relative}
.forum-level-ticket-timeline-item::before{content:"";position:absolute;left:-19px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--brand)}
@media (max-width:640px){.forum-level-market-hot-item{flex-basis:150px;min-width:150px}.forum-level-market-cards-stat span{min-width:100%}}
/* v3.64 广告弹窗化、编辑申请与列表操作 */
.forum-level-ads-buy-btn{flex:none;padding:9px 18px;border:0;border-radius:10px;background:var(--brand);color:#fff;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;box-shadow:var(--shadow-base)}
.forum-level-ads-buy-btn:hover{filter:brightness(1.05)}
.forum-level-modal-body .forum-level-ads-purchase-form{max-width:none;width:100%}
.forum-level-ads-modal-loading{padding:40px 16px;color:var(--text-muted);text-align:center;font-size:var(--font-size-sm)}
.forum-level-ads-btn{padding:6px 13px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm);cursor:pointer}
.forum-level-ads-btn:hover{border-color:var(--brand);color:var(--brand)}
.forum-level-ads-btn.is-primary{background:var(--brand);border-color:var(--brand);color:#fff}
.forum-level-ads-btn.is-primary:hover{filter:brightness(1.05);color:#fff}
.forum-level-ads-btn.is-ghost{background:transparent}
.forum-level-ads-btn.is-ghost-danger{background:transparent;color:var(--danger)}
.forum-level-ads-btn.is-ghost-danger:hover{border-color:var(--danger);color:var(--danger)}
.forum-level-ads-btn.is-waiting{background:var(--warning-soft);border-color:var(--warning);color:var(--warning)}
.forum-level-ads-userdel-tag{display:inline-flex;align-items:center;padding:1px 8px;margin-left:6px;border-radius:6px;background:var(--bg);border:1px solid var(--line-soft);color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:400;vertical-align:middle}
.forum-level-ads-edit-review .forum-level-ads-edit-list{display:grid}
.forum-level-ads-edit-record{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line-soft)}
.forum-level-ads-edit-record:last-child{border-bottom:0}
.forum-level-ads-edit-main{display:grid;gap:8px;min-width:0}
.forum-level-ads-edit-top{display:flex;flex-wrap:wrap;gap:10px;font-size:var(--font-size-sm);color:var(--text-muted)}
.forum-level-ads-edit-content{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:var(--font-size-sm)}
.forum-level-ads-edit-content a{color:var(--brand);text-decoration:none}
.forum-level-ads-edit-content span{color:var(--text-muted)}
.forum-level-ads-edit-warn{color:var(--warning);font-size:var(--font-size-sm)}
@media (max-width:760px){.forum-level-ads-edit-record{flex-direction:column;align-items:flex-start}.forum-level-ads-buy-btn{width:100%}}.forum-level-invite-wrap{display:grid;gap:10px;padding:12px 14px}.forum-level-invite-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.forum-level-invite-title{color:var(--text);font-size:var(--font-size-md);font-weight:700;line-height:1.35}.forum-level-invite-sub{margin-top:2px;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.35}.forum-level-invite-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.forum-level-invite-stats>div{display:grid;gap:2px;padding:8px;border:1px solid var(--line-soft);border-radius:7px;background:var(--bg);text-align:center}.forum-level-invite-stats strong{color:var(--text);font-size:var(--font-size-lg);line-height:1.1}.forum-level-invite-stats span{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.25}.forum-level-invite-action{display:block}.forum-level-invite-action a{display:flex;align-items:center;justify-content:center;width:100%;min-height:32px;padding:0 10px;border:1px solid var(--brand);border-radius:7px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-sm);font-weight:700;text-decoration:none}.forum-level-invite-action a:hover{border-color:var(--brand-hover);background:var(--brand-hover);color:var(--inverse-text)}.forum-level-invite-row,.forum-level-invite-user-row{grid-template-columns:minmax(0,1fr)}.forum-level-invite-row .admin-row-meta span{min-width:0;overflow-wrap:anywhere}.forum-level-invite-row .admin-content-text{overflow-wrap:anywhere;color:var(--text-muted)}.forum-level-invite-user-row .admin-user-text span{white-space:normal;overflow-wrap:anywhere}.forum-level-invite-grid{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:12px}.forum-level-invite-grid .empty-state{text-align:center;color:var(--text-subtle)}.forum-level-invite-code-item{display:flex;gap:8px;align-items:center}.forum-level-invite-code-text{flex:1;min-width:0;margin:0;padding:8px 10px;border:1px solid var(--line-soft);border-radius:7px;background:var(--bg);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-sm);font-weight:700;line-height:1.35;overflow-wrap:anywhere}.forum-level-invite-copy-code{flex-shrink:0;min-height:34px;padding:0 14px;border:1px solid var(--brand);border-radius:7px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-sm);font-weight:700;cursor:pointer}.forum-level-invite-link-wrap{display:grid;gap:10px;padding:12px 14px}.forum-level-invite-link-row{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}.forum-level-invite-link-input{flex:1 1 220px;min-width:0;padding:8px 10px;border:1px solid var(--line-soft);border-radius:7px;background:var(--bg);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-sm);line-height:1.35}.forum-level-invite-copy-btn{min-height:34px;padding:0 14px;border:1px solid var(--brand);border-radius:7px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-sm);font-weight:700;cursor:pointer}.forum-level-invite-copy-btn:hover{border-color:var(--brand-hover);background:var(--brand-hover);color:var(--inverse-text)}@media(max-width:720px){.forum-level-invite-row,.forum-level-invite-user-row{grid-template-columns:minmax(0,1fr)}}
/* ===== 布局 ===== */
.forum-level-market-page{display:grid;gap:16px}
.forum-level-market-page-title{display:grid;gap:4px}
.forum-level-market-page-title h1{margin:0;font-size:var(--font-size-xl)}
.forum-level-market-page-title p{margin:0;color:var(--text-subtle);font-size:var(--font-size-sm)}
.forum-level-market-orders-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.forum-level-market-orders-head h1{margin:0;font-size:var(--font-size-xl)}
.forum-level-market-orders-actions{display:flex;align-items:center;gap:8px}
/* ===== 主区域积分卡（我的积分 + 搜索 + 入口） ===== */
.forum-level-market-userbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 2px 8px var(--shadow-base)}
.forum-level-market-userbar-brand{display:flex;align-items:center;flex:0 0 auto}
.forum-level-market-userbar-bname{color:var(--text);font-size:var(--font-size-lg);font-weight:700}
.forum-level-market-userbar-sub{color:var(--text-muted);font-size:var(--font-size-xs)}
.forum-level-market-search{display:flex;align-items:center;flex:0 0 auto;width:200px;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:999px;background:var(--bg);transition:var(--transition-normal)}
.forum-level-market-search-ico{flex:0 0 auto;margin-left:10px;color:var(--text-muted)}
.forum-level-market-search input{flex:1;min-width:0;border:0;padding:6px 8px;color:var(--text);font-size:var(--font-size-xs);background:transparent;outline:none}
.forum-level-market-search input::placeholder{color:var(--text-subtle)}
.forum-level-market-search button{flex:0 0 auto;width:auto;height:26px;border:0;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;margin:3px 3px 3px 0;border-radius:999px;background:var(--brand);color:var(--inverse-text);cursor:pointer;transition:var(--transition-normal);line-height:1;flex-shrink:0;min-width:0;min-height:0;font-size:var(--font-size-xs);font-weight:600;white-space:nowrap}
.forum-level-market-search button svg{display:block;width:13px;height:13px;flex:0 0 auto}
.forum-level-market-search button:hover{background:var(--brand-hover)}
.forum-level-market-search button:active{transform:scale(.96)}
.forum-level-market-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
.forum-level-market-search-row{display:flex;justify-content:center;min-width:0}
.forum-level-market-search-row .forum-level-market-search{width:min(100%,420px);flex:0 1 420px}
.forum-level-market-userbar-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.forum-level-market-userbar-login{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 16px;border-radius:999px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-sm);font-weight:600;transition:var(--transition-normal)}
.forum-level-market-userbar-login:hover{background:var(--brand-hover)}
.forum-level-market-entry{display:inline-flex;align-items:center;gap:6px;position:relative;min-height:32px;padding:0 16px;border:1px solid var(--line);border-radius:999px;color:var(--text-muted);font-size:var(--font-size-sm);transition:var(--transition-normal)}
.forum-level-market-entry.publish{background:var(--brand);border-color:var(--brand);color:var(--inverse-text);font-weight:600}
.forum-level-market-entry.publish:hover{background:var(--brand-hover);border-color:var(--brand-hover);color:var(--inverse-text)}
.forum-level-market-entry svg{flex:0 0 auto}
.forum-level-market-entry:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}
.forum-level-market-entry-badge{position:absolute;top:-7px;right:-4px;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:var(--inverse-text);font-size:var(--font-size-xs);font-weight:600;box-shadow:0 1px 4px var(--shadow-base)}
/* ===== 分类 tabs（胶囊风格） ===== */
.forum-level-market-cats-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 2px;border-top:1px solid var(--line-soft)}
.forum-level-market-cats{flex:1 1 auto;min-width:0;padding:0}
.forum-level-market-tabs{overflow-x:auto;scrollbar-width:none}
.forum-level-market-tabs::-webkit-scrollbar{display:none}
.forum-level-market-tabs .tab-bar{display:inline-flex;align-items:center;gap:6px;margin:0;padding:4px;border-radius:999px;background:var(--line-soft)}
.forum-level-market-tabs .tab-bar .tab{border:0;border-radius:999px;background:transparent;color:var(--text-muted);font-size:var(--font-size-sm);font-weight:500;padding:6px 14px;margin:0;transition:var(--transition-normal)}
.forum-level-market-tabs .tab-bar .tab:hover{background:var(--line);color:var(--text)}
.forum-level-market-tabs .tab-bar .tab.active{background:var(--brand);color:var(--inverse-text);font-weight:600;box-shadow:0 2px 6px var(--shadow-base)}
/* ===== 商品网格与卡片 ===== */
.forum-level-market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.forum-level-market-card{display:flex;flex-direction:column;width:auto;min-width:0;max-width:100%;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);transition:transform var(--transition-normal),box-shadow var(--transition-normal),border-color var(--transition-normal)}
.forum-level-market-grid:has(> .forum-level-market-card:only-child) .forum-level-market-card{max-width:320px}
.forum-level-market-card:hover{border-color:var(--brand);box-shadow:0 10px 24px var(--shadow-medium);transform:translateY(-3px)}
.forum-level-market-card-media{position:relative;aspect-ratio:1/1;overflow:hidden;background:linear-gradient(135deg,var(--bg),var(--line-soft))}
.forum-level-market-card-media img{transition:transform .3s ease}
.forum-level-market-card:hover .forum-level-market-card-media img{transform:scale(1.04)}
.forum-level-market-product-img,.forum-level-market-card-img{width:100%;height:100%;object-fit:cover;padding:0;display:block}
.forum-level-market-no-img{width:100%;height:100%;object-fit:cover;padding:0;display:flex;align-items:center;justify-content:center;color:var(--text-subtle);background:linear-gradient(135deg,var(--bg,#f7f9fc),var(--line-soft,#e8edf3))}
/* 核心 .meta-icon 用 flex:0 0 13px 定尺寸，flex-basis 会盖掉 width，这里一并复位 */
.forum-level-market-no-img svg{width:40px;height:40px;flex:0 0 40px;opacity:.45}
.forum-level-market-img-fallback{width:56px;height:56px}
.forum-level-market-card-badge{position:absolute;top:10px;left:10px;padding:3px 10px;border-radius:var(--radius-sm);background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-xs);font-weight:600;box-shadow:0 2px 6px var(--shadow-base)}
.forum-level-market-card-badge.soldout{background:var(--text-subtle)}
.forum-level-market-card-body{display:grid;gap:8px;padding:12px 12px 4px}
.forum-level-market-card-tags{display:flex;flex-wrap:wrap;gap:6px}
.forum-level-market-card-tag{padding:1px 6px;border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xs)}
.forum-level-market-card-tag.cat{background:var(--bg);color:var(--text-muted);border:1px solid var(--line)}
.forum-level-market-card-tag.virtual{background:var(--info-soft);color:var(--info)}
.forum-level-market-card-tag.auto{background:var(--brand-soft);color:var(--brand)}
.forum-level-market-card-body h3{margin:0;text-align:left;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0;font-size:var(--font-size-sm);font-weight:600;line-height:1.4;color:var(--text)}
.forum-level-market-card-body h3:hover{color:var(--brand)}
.forum-level-market-card-seller{display:flex;align-items:center;gap:6px;min-width:0;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.4}
.forum-level-market-card-seller-avatar{width:20px;height:20px;flex:0 0 20px;border-radius:50%;object-fit:cover}
.forum-level-market-card-seller>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.forum-level-market-card-price{display:flex;align-items:baseline;gap:4px;margin-top:0}
.forum-level-market-price-symbol{color:var(--brand);font-size:var(--font-size-xs);font-weight:600}
.forum-level-market-card-price .forum-level-market-price-symbol{color:var(--brand)}
.forum-level-market-card-price b{color:var(--brand);font-size:var(--font-size-xl);font-weight:700;font-variant-numeric:tabular-nums}
.forum-level-market-card-original{color:var(--text-subtle);font-size:var(--font-size-xs);font-weight:400;text-decoration:line-through;margin-left:2px;align-self:center}
.forum-level-market-card-badge.hot{background:var(--danger);box-shadow:0 2px 8px var(--shadow-base)}
.forum-level-market-arrow{display:inline-block;width:5px;height:5px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);margin-left:4px;transition:transform var(--transition-normal)}
.forum-level-market-card:hover .forum-level-market-arrow{transform:rotate(45deg) translateX(2px)}
.forum-level-market-card-meta{display:flex;justify-content:space-between;gap:8px;color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px 12px}
.forum-level-market-card-stock{display:inline-flex;align-items:center;gap:5px;color:var(--text-subtle);font-size:var(--font-size-xs);white-space:nowrap}
.forum-level-market-card-stock:before{content:"";width:6px;height:6px;border-radius:999px;background:var(--success)}
.forum-level-market-card-stock.low{color:var(--danger)}
.forum-level-market-card-stock.low:before{background:var(--danger)}
.forum-level-market-card-stock.off{color:var(--text-subtle)}
.forum-level-market-card-stock.off:before{background:var(--text-subtle)}
.forum-level-market-card-cta{display:inline-flex;align-items:center;gap:2px;min-height:24px;padding:0 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xs);font-weight:600;white-space:nowrap;transition:var(--transition-normal)}
.forum-level-market-card:hover .forum-level-market-card-cta{background:var(--brand);color:var(--inverse-text)}
.forum-level-market-card-cta.disabled{background:var(--bg);color:var(--text-subtle);cursor:not-allowed}
/* ===== 空状态 ===== */
.forum-level-market-empty{display:grid;justify-items:center;gap:14px;grid-column:1/-1;padding:56px 16px;color:var(--text-subtle);text-align:center;background:var(--panel);border:1px dashed var(--line);border-radius:var(--radius)}
.forum-level-market-empty .forum-level-market-empty-ico{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:999px;background:var(--bg);color:var(--text-subtle)}
.forum-level-market-empty .forum-level-market-empty-ico svg{width:32px;height:32px}
.forum-level-market-empty .forum-level-market-empty-title{color:var(--text-muted);font-weight:600;font-size:var(--font-size-md)}
.forum-level-market-empty p{margin:0;font-size:var(--font-size-sm)}
.forum-level-market-empty .forum-level-market-btn{margin-top:4px}
/* ===== 分页 ===== */
.forum-level-market-pager{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:8px}
.forum-level-market-pager a{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--font-size-sm);transition:var(--transition-normal);background:var(--panel)}
.forum-level-market-pager-gap{display:inline-flex;align-items:center;justify-content:center;min-width:20px;color:var(--text-subtle);font-size:var(--font-size-sm)}
.forum-level-market-pager a:hover{color:var(--brand);border-color:var(--brand);transform:translateY(-1px)}
.forum-level-market-pager a.active{border-color:var(--brand);background:var(--brand);color:var(--inverse-text);font-weight:600;box-shadow:0 2px 6px var(--shadow-base)}
/* ===== 主题列表商品小卡片 ===== */
.forum-level-market-list-card{display:flex;align-items:center;gap:14px;padding:10px 4px;margin:0;text-decoration:none;transition:var(--transition-normal)}
.forum-level-market-list-card:hover .forum-level-market-li-media{transform:scale(1.03)}
.forum-level-market-li-media{width:72px;height:72px;flex:0 0 72px;border-radius:var(--radius-sm);overflow:hidden;background:linear-gradient(135deg,var(--bg),var(--line-soft));transition:transform var(--transition-normal)}
.forum-level-market-li-media img,.forum-level-market-li-media div{width:100%;height:100%;object-fit:cover}
.forum-level-market-li-media .forum-level-market-img-fallback{width:28px;height:28px}
.forum-level-market-li-info{display:grid;gap:7px;flex:1;min-width:0}
.forum-level-market-li-meta{display:flex;align-items:center;gap:16px;min-width:0}
.forum-level-market-li-points{display:inline-flex;align-items:center;gap:5px;font-variant-numeric:tabular-nums}
.forum-level-market-li-points svg{flex:0 0 auto;color:var(--brand)}
.forum-level-market-li-points em{color:var(--text-muted);font-size:var(--font-size-xs);font-style:normal}
.forum-level-market-li-points b{font-size:calc(var(--font-size-xl) * 1.1);font-weight:700;color:var(--brand);line-height:1}
.forum-level-market-li-discount{display:inline-flex;align-items:center;min-height:18px;padding:0 6px;border-radius:var(--radius-sm);background:var(--danger);color:var(--inverse-text);font-size:var(--font-size-xs);font-weight:700}
.forum-level-market-li-original{margin-left:2px;color:var(--text-subtle);font-size:var(--font-size-xs);font-weight:400}
.forum-level-market-li-summary{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.forum-level-market-li-stock{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}
.forum-level-market-li-stock svg{flex:0 0 auto}
.forum-level-market-li-stock b{font-weight:400;color:var(--text-muted)}
.forum-level-market-li-stock.low b{color:var(--danger)}
.forum-level-market-li-stock.off b{color:var(--text-subtle)}
.forum-level-market-li-countdown{display:inline-flex;align-items:center;gap:4px;color:var(--danger);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}
.forum-level-market-li-countdown svg{flex:0 0 auto}
.forum-level-market-li-countdown em{font-style:normal;color:var(--text-muted)}
.forum-level-market-li-countdown b{font-weight:700;color:var(--danger)}
/* ===== 商品详情 ===== */
.forum-level-market-panel{display:grid;gap:16px}
.forum-level-market-topic-open{display:grid;gap:16px;margin:4px 0}
.forum-level-market-topic-open .forum-level-market-detail{border:0;box-shadow:none;background:transparent;padding:0}
.forum-level-market-topic-open .forum-level-market-detail-media{border-right:0;border-radius:var(--radius);border:1px solid var(--line-soft)}
.forum-level-market-topic-open .forum-level-market-detail-section{border:0;background:transparent;padding:0}
.forum-level-market-topic-open .forum-level-market-detail-section h2{border-bottom:1px solid var(--line-soft);margin-bottom:12px}
.forum-level-market-topic-off{padding:40px 16px;text-align:center;color:var(--text-muted);font-size:var(--font-size-md);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.forum-level-market-detail{display:grid;grid-template-columns:400px minmax(0,1fr);gap:0;padding:0;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);box-shadow:0 2px 10px var(--shadow-base)}
.forum-level-market-detail-media{position:relative;aspect-ratio:1/1;overflow:hidden;background:linear-gradient(135deg,var(--bg),var(--line-soft));border-right:1px solid var(--line-soft)}
.forum-level-market-detail-img{width:100%;height:100%;object-fit:contain;padding:12px}
.forum-level-market-detail-info{display:grid;align-content:start;gap:14px;padding:20px 22px;min-width:0}
.forum-level-market-detail-info h1{margin:0;text-align:left;font-size:var(--font-size-xl);line-height:1.4}
.forum-level-market-detail-countdown{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:var(--font-size-sm);width:fit-content;font-variant-numeric:tabular-nums}
.forum-level-market-detail-countdown svg{flex:0 0 auto}
.forum-level-market-detail-countdown em{font-style:normal;color:var(--text-muted)}
.forum-level-market-detail-countdown b{font-weight:700;color:var(--danger)}
.forum-level-market-detail-summary{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.forum-level-market-price-box{display:flex;align-items:baseline;gap:10px;padding:14px 18px;border-radius:var(--radius);background:var(--brand-soft)}
.forum-level-market-price-label{padding:3px 8px;border-radius:var(--radius-sm);background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-xs);font-weight:600}
.forum-level-market-price-box .forum-level-market-price-symbol{color:var(--brand);font-size:var(--font-size-md);font-weight:700}
.forum-level-market-price-num{color:var(--brand);font-size:calc(var(--font-size-xl) * 1.3);font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.forum-level-market-price-original{margin-left:auto;color:var(--text-subtle);font-size:var(--font-size-xs);text-decoration:line-through}
.forum-level-market-price-discount{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:var(--font-size-xs);font-weight:700;margin-left:6px}
.forum-level-market-balance-tip{display:flex;align-items:center;gap:6px;padding:10px 14px;border-radius:var(--radius-sm);font-size:var(--font-size-sm);line-height:1.6}
.forum-level-market-balance-tip.ok{background:var(--success-soft);color:var(--success)}
.forum-level-market-balance-tip.warn{background:var(--warning-soft);color:var(--warning)}
.forum-level-market-balance-tip b{font-weight:700;font-variant-numeric:tabular-nums}
.forum-level-market-detail-meta{display:flex;gap:0;margin:0;padding:14px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line)}
.forum-level-market-detail-meta>div{flex:1;display:grid;gap:4px;padding:0 14px;text-align:center}
.forum-level-market-detail-meta>div:first-child{border-right:1px solid var(--line)}
.forum-level-market-detail-meta dt{color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-detail-meta dd{margin:0;color:var(--text);font-size:var(--font-size-md);font-weight:600}
.forum-level-market-detail-buybar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;padding-top:8px}
.forum-level-market-detail-buybar .forum-level-market-btn{padding:12px 30px;font-size:var(--font-size-md);border-radius:var(--radius-sm)}
.forum-level-market-detail-buybar .forum-level-market-btn.jd-primary{box-shadow:0 4px 12px var(--shadow-medium)}
.forum-level-market-direct-buy{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;min-width:0;width:100%;max-width:460px}
.forum-level-market-direct-buy .forum-level-market-btn{flex:1;min-width:0}
.forum-level-market-detail-buybar.has-publisher-orders{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;align-items:start;gap:10px}
.forum-level-market-detail-buybar.has-publisher-orders>.forum-level-market-btn,.forum-level-market-detail-buybar.has-publisher-orders .forum-level-market-direct-buy{width:100%;max-width:none;min-width:0;margin:0}
.forum-level-market-detail-buybar.has-publisher-orders .forum-level-market-publisher-orders-wrap{display:flex;width:100%;min-width:0}
.forum-level-market-detail-buybar.has-publisher-orders .forum-level-market-publisher-orders{flex:1;width:100%;height:48px;min-height:48px;box-sizing:border-box;align-self:start}
.forum-level-market-detail-buybar.has-publisher-orders .forum-level-market-direct-buy .forum-level-market-btn{box-sizing:border-box;min-width:120px}
.forum-level-market-detail-buybar.has-publisher-orders .forum-level-market-insufficient{text-align:center}
.forum-level-market-insufficient{color:var(--warning);font-size:var(--font-size-xs)}
.forum-level-market-virtual-tag{display:inline-flex;align-items:center;width:fit-content;padding:2px 8px;border-radius:var(--radius-sm);background:var(--info-soft);color:var(--info);font-size:var(--font-size-xs);font-weight:600}
.forum-level-market-detail-section{padding:16px 18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel)}
.forum-level-market-detail-section h2{display:flex;align-items:center;margin:0 0 12px;font-size:var(--font-size-md);padding-bottom:10px;border-bottom:1px solid var(--line-soft)}
.forum-level-market-detail-content{color:var(--text);font-size:var(--font-size-md);line-height:1.75;overflow-wrap:anywhere}
.forum-level-market-detail-content h1,.forum-level-market-detail-content h2,.forum-level-market-detail-content h3,.forum-level-market-detail-content h4{margin:1em 0 .5em;line-height:1.4;font-weight:700;color:var(--text)}
.forum-level-market-detail-content h1{font-size:var(--font-size-xl)}
.forum-level-market-detail-content h2{font-size:var(--font-size-lg)}
.forum-level-market-detail-content h3{font-size:var(--font-size-md)}
.forum-level-market-detail-content p{margin:.5em 0}
.forum-level-market-detail-content ul,.forum-level-market-detail-content ol{margin:.5em 0;padding-left:1.4em}
.forum-level-market-detail-content li{margin:.2em 0}
.forum-level-market-detail-content blockquote{margin:.6em 0;padding:.4em 1em;border-left:3px solid var(--brand);background:var(--bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-muted)}
.forum-level-market-detail-content code{padding:1px 5px;border-radius:var(--radius-sm);background:var(--bg);color:var(--brand);font-size:calc(var(--font-size-sm) * 0.95)}
.forum-level-market-detail-content pre{margin:.6em 0;padding:12px 14px;border-radius:var(--radius-sm);background:var(--bg);overflow-x:auto}
.forum-level-market-detail-content pre code{padding:0;background:transparent;color:var(--text)}
.forum-level-market-detail-content a{color:var(--brand)}
.forum-level-market-detail-content a:hover{text-decoration:underline}
.forum-level-market-detail-content img{max-width:100%;height:auto;border-radius:var(--radius-sm)}
.forum-level-market-detail-content hr{margin:1em 0;border:0;border-top:1px solid var(--line)}
.forum-level-market-detail-content table{border-collapse:collapse;margin:.6em 0;width:100%}
.forum-level-market-detail-content th,.forum-level-market-detail-content td{padding:6px 10px;border:1px solid var(--line);text-align:left}
.forum-level-market-detail-content th{background:var(--bg)}
/* ===== 按钮 ===== */
.forum-level-market-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 16px;border-radius:var(--radius-sm);font-size:var(--font-size-md);font-weight:600;cursor:pointer;transition:var(--transition-normal);border:1px solid transparent;line-height:1.2}
.forum-level-market-btn:active{transform:scale(.97)}
.forum-level-market-btn.jd-primary{border-color:var(--brand);background:var(--brand);color:var(--inverse-text)}
.forum-level-market-btn.jd-primary:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.forum-level-market-btn.jd-secondary{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.forum-level-market-btn.jd-secondary:hover{background:var(--brand);color:var(--inverse-text)}
.forum-level-market-btn.ghost{border-color:var(--line);background:var(--panel);color:var(--text-muted)}
.forum-level-market-btn.ghost:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.forum-level-market-btn.small{min-height:32px;padding:0 14px;font-size:var(--font-size-sm)}
.forum-level-market-btn[disabled],.forum-level-market-btn.disabled{cursor:not-allowed;opacity:.5;transform:none;box-shadow:none}
.forum-level-market-buy-form{display:inline-flex;margin:0}
/* ===== 我的订单 / 订单详情 ===== */
.forum-level-market-orders{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.forum-level-market-order-topic-row{position:relative;align-items:flex-start;min-width:0}
.forum-level-market-order-topic-row .post-avatar{flex:0 0 auto}
.forum-level-market-order-topic-row .post-body{min-width:0}
.forum-level-market-order-topic-row .post-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.forum-level-market-order-topic-row .post-title-row .forum-level-market-order-status{flex:0 0 auto}
.forum-level-market-order-topic-title{font-weight:700!important}
.forum-level-market-order-topic-subtitle-wrap{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:4px;min-width:0}
.forum-level-market-order-topic-subtitle{color:var(--text-muted);font-size:var(--font-size-sm);overflow-wrap:anywhere}
.forum-level-market-order-topic-subtitle:hover{color:var(--brand);text-decoration:underline}
.forum-level-market-order-topic-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.forum-level-market-order-topic-action{margin-top:8px}
.forum-level-market-order-row{display:grid;gap:10px;padding:12px 16px}
.forum-level-market-order-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.forum-level-market-order-head a{color:var(--text);font-size:var(--font-size-sm);font-weight:600}
.forum-level-market-order-head a:hover{color:var(--brand)}
.forum-level-market-order-status{display:inline-flex;align-items:center;gap:5px;min-height:20px;padding:0 9px;border-radius:999px;background:var(--warning-soft);color:var(--warning);font-size:var(--font-size-xs);font-weight:600;white-space:nowrap}
.forum-level-market-order-status:before{content:"";width:5px;height:5px;border-radius:999px;background:currentColor}
.forum-level-market-order-status.paid{background:var(--info-soft);color:var(--info)}
.forum-level-market-order-status.shipped{background:var(--brand-soft);color:var(--brand)}
.forum-level-market-order-status.disputed{background:var(--danger-soft);color:var(--danger)}
.forum-level-market-order-status.finished{background:var(--success-soft);color:var(--success)}
.forum-level-market-order-status.cancelled{background:var(--bg);color:var(--text-subtle)}
.forum-level-market-order-body{display:flex;align-items:center;justify-content:space-between;gap:14px}
.forum-level-market-order-name{min-width:0;color:var(--text);font-size:var(--font-size-sm);font-weight:400;overflow-wrap:anywhere}
.forum-level-market-order-name[href]:hover{color:var(--brand)}
.forum-level-market-order-total{display:inline-flex;align-items:baseline;gap:2px;color:var(--brand);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;white-space:nowrap}
.forum-level-market-order-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.forum-level-market-order-foot time{color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-order-summary{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:13px 16px}
.forum-level-market-order-summary>span:not(.forum-level-market-order-status):not(.forum-level-market-order-summary-product){color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-order-summary-product{min-width:0;color:var(--text);font-size:var(--font-size-sm);font-weight:600;overflow-wrap:anywhere;text-decoration:none}
a.forum-level-market-order-summary-product:hover{color:var(--brand);text-decoration:underline}
.forum-level-market-order-summary strong{margin-left:auto;color:var(--brand);font-size:var(--font-size-lg);font-variant-numeric:tabular-nums}
.forum-level-market-order-merchant-note{width:100%;box-sizing:border-box}
.forum-level-market-order-merchant-body{display:grid;justify-items:start;gap:0;padding:9px 0;line-height:1.65}
.forum-level-market-order-merchant-status{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}
.forum-level-market-order-merchant-status span{color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-order-merchant-status b{color:var(--text);font-size:var(--font-size-sm);font-weight:600;text-align:right}
.forum-level-market-order-merchant-text{width:100%;margin-top:8px;padding-top:8px;border-top:1px solid var(--line-soft);color:var(--text);font-size:var(--font-size-sm);font-weight:600;overflow-wrap:anywhere;white-space:pre-wrap}
.forum-level-market-order-merchant-text-deliver{margin-top:8px;padding:10px 12px;border-top:0;border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-md)}
.forum-level-market-contact-seller{justify-self:end;margin-top:12px}
.forum-level-market-shipping .forum-level-market-ship-list{margin:0;padding:0;list-style:none}
.forum-level-market-shipping .forum-level-market-ship-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft)}
.forum-level-market-shipping .forum-level-market-ship-list li:last-child{border-bottom:0}
.forum-level-market-shipping .forum-level-market-ship-list li span{color:var(--text-muted);font-size:var(--font-size-sm);flex:0 0 auto}
.forum-level-market-shipping .forum-level-market-ship-list li b{color:var(--text);font-size:var(--font-size-sm);font-weight:600;overflow-wrap:anywhere;text-align:right}
.forum-level-market-shipping-virtual ul{grid-template-columns:1fr}
.forum-level-market-order-address-form{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}
.forum-level-market-order-address-form h3{margin:0;color:var(--text);font-size:var(--font-size-sm)}
.forum-level-market-order-address-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.forum-level-market-order-address-fields label{display:grid;gap:5px;min-width:0}
.forum-level-market-order-address-fields label:last-child{grid-column:1/-1}
.forum-level-market-order-address-fields span{color:var(--text-muted);font-size:var(--font-size-xs)}
.forum-level-market-order-address-fields input,.forum-level-market-order-address-fields textarea{width:100%;box-sizing:border-box;padding:8px 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);line-height:1.5}
.forum-level-market-order-address-fields textarea{resize:vertical}
.forum-level-market-order-address-fields input:focus,.forum-level-market-order-address-fields textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
.forum-level-market-seller-filter{display:flex;align-items:center;gap:8px}
.forum-level-market-seller-filter select{min-width:0;max-width:100%;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font-size:var(--font-size-sm)}
.forum-level-market-seller-orders{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.forum-level-market-seller-order{display:grid;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}
.forum-level-market-seller-order-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.forum-level-market-seller-order-head>div{display:grid;gap:4px;min-width:0}
.forum-level-market-seller-order-head strong{overflow-wrap:anywhere;font-size:var(--font-size-md)}
.forum-level-market-seller-product-link{color:var(--text);text-decoration:none}
.forum-level-market-seller-product-link:hover{color:var(--brand);text-decoration:underline}
.forum-level-market-seller-order-head span:not(.forum-level-market-order-status){color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-seller-order-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.forum-level-market-seller-address{display:grid;grid-template-columns:68px minmax(0,1fr);gap:8px;padding:9px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg)}
.forum-level-market-seller-dispute{grid-column:1/-1}
.forum-level-market-seller-address span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-seller-address b{color:var(--text);font-size:var(--font-size-sm);font-weight:500;line-height:1.5;overflow-wrap:anywhere}
.forum-level-market-seller-fulfill{display:grid;gap:8px;flex:0 0 100%;width:100%;margin:0}
.forum-level-market-seller-fulfill-controls{display:flex;align-items:flex-end;gap:8px}
.forum-level-market-seller-fulfill-controls label,.forum-level-market-seller-fulfill-note{display:grid;gap:5px;margin:0;color:var(--text-muted);font-size:var(--font-size-xs)}
.forum-level-market-seller-fulfill-controls label{width:104px}
.forum-level-market-seller-fulfill select{width:100%;min-width:0;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-sm);box-sizing:border-box}
.forum-level-market-seller-fulfill textarea{width:100%;min-height:78px;box-sizing:border-box;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-sm);line-height:1.55;resize:vertical}
.forum-level-market-seller-fulfill>button{justify-self:start;margin:0}
.forum-level-market-seller-fulfill textarea:focus,.forum-level-market-seller-fulfill select:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
.forum-level-market-admin-status-section{display:grid;gap:0}
.forum-level-market-admin-status-form{display:grid;gap:10px;width:100%;margin:0}
.forum-level-market-admin-status-controls{display:flex;align-items:flex-end;gap:8px}
.forum-level-market-admin-status-form label{display:grid;gap:5px;margin:0;color:var(--text-muted);font-size:var(--font-size-xs)}
.forum-level-market-admin-status-form select{height:34px;padding:0 9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-sm)}
.forum-level-market-admin-status-reason textarea{width:100%;min-height:78px;box-sizing:border-box;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-sm);line-height:1.55;resize:vertical}
.forum-level-market-admin-status-form>button{justify-self:start;margin:0}
.forum-level-market-admin-status-form select:focus,.forum-level-market-admin-status-form textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
.forum-level-market-seller-order>.post-action-form{display:inline-flex;justify-self:start;margin:0}
.forum-level-market-timeline{margin:0;padding:0;list-style:none}
.forum-level-market-timeline li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft)}
.forum-level-market-timeline li:last-child{border-bottom:0}
.forum-level-market-timeline li span{color:var(--text);font-size:var(--font-size-sm);font-weight:600}
.forum-level-market-timeline li time{color:var(--text-subtle);font-size:var(--font-size-xs);text-align:right;overflow-wrap:anywhere}
.forum-level-market-order-action{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.forum-level-market-dispute-form{display:grid;gap:8px;flex:0 0 100%;width:100%;max-width:none;margin:0}
.forum-level-market-dispute-form textarea{width:100%;min-height:78px;box-sizing:border-box;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-sm);line-height:1.55;resize:vertical}
.forum-level-market-dispute-form textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
.forum-level-market-dispute-form .forum-level-market-btn{justify-self:start}
.forum-level-market-balance-strip{display:flex;align-items:center;gap:10px;padding:14px 18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-balance-strip strong{margin-left:auto;color:var(--brand);font-size:var(--font-size-xl);font-weight:700;font-variant-numeric:tabular-nums}
/* ===== 确认订单（结算） ===== */
.forum-level-market-confirm-page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.forum-level-market-confirm-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,320px);align-items:start;gap:16px}
.forum-level-market-confirm-main{display:grid;gap:14px;min-width:0}
.forum-level-market-confirm-products{padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}
.forum-level-market-confirm-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line-soft)}
.forum-level-market-confirm-section-head h2{margin:0;font-size:var(--font-size-md)}
.forum-level-market-confirm-section-head span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-confirm-list{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.forum-level-market-confirm-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);transition:var(--transition-normal)}
.forum-level-market-confirm-row:hover{border-color:var(--brand);background:var(--brand-soft)}
.forum-level-market-confirm-thumb{width:52px;height:52px;border-radius:var(--radius-sm);object-fit:cover;background:var(--panel);border:1px solid var(--line-soft)}
.forum-level-market-confirm-item{display:grid;gap:4px;min-width:0}
.forum-level-market-confirm-name{overflow-wrap:anywhere;color:var(--text);font-size:var(--font-size-sm);font-weight:600}
.forum-level-market-confirm-item>small{display:flex;flex-wrap:wrap;align-items:center;gap:6px;color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-confirm-tag{padding:1px 6px;border-radius:var(--radius-sm);background:var(--info-soft);color:var(--info);font-size:var(--font-size-xs)}
.forum-level-market-confirm-row>b{display:grid;justify-items:end;gap:3px;color:var(--brand);font-size:var(--font-size-md);font-variant-numeric:tabular-nums;white-space:nowrap}
.forum-level-market-confirm-row>b small{color:var(--text-subtle);font-size:var(--font-size-xs);font-weight:400}
.forum-level-market-confirm-form{margin:0}
.forum-level-market-confirm-summary{position:sticky;top:16px;display:grid;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}
.forum-level-market-confirm-summary-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--line-soft)}
.forum-level-market-confirm-summary-head span{color:var(--text);font-size:var(--font-size-md);font-weight:600}
.forum-level-market-confirm-summary-head b{color:var(--text-subtle);font-size:var(--font-size-xs);font-weight:400}
.forum-level-market-confirm-summary-row{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-confirm-summary-row b{color:var(--text);font-weight:500;font-variant-numeric:tabular-nums}
.forum-level-market-confirm-summary-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px dashed var(--line);color:var(--text);font-size:var(--font-size-md);font-weight:600}
.forum-level-market-confirm-summary-total b{color:var(--brand);font-size:var(--font-size-xl);font-variant-numeric:tabular-nums}
.forum-level-market-confirm-summary-after{padding:9px 10px;border-radius:var(--radius-sm);background:var(--success-soft);color:var(--success);font-size:var(--font-size-xs)}
.forum-level-market-confirm-summary-after b{font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.forum-level-market-confirm-summary .forum-level-market-btn{width:100%;min-height:42px;margin-top:2px}
.forum-level-market-confirm-title{margin:0 0 12px;font-size:var(--font-size-md)}
.forum-level-market-confirm-title small{color:var(--text-subtle);font-size:var(--font-size-xs);font-weight:400}
/* ===== 收货地址 ===== */
.forum-level-market-addr-block{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}
.forum-level-market-note-block textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:var(--font-size-sm);line-height:1.6;resize:vertical;transition:var(--transition-normal)}
.forum-level-market-note-block textarea::placeholder{color:var(--text-subtle)}
.forum-level-market-note-block textarea:focus{outline:0;border-color:var(--brand);background:var(--panel);box-shadow:0 0 0 3px var(--focus-ring)}
.forum-level-market-addr-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.forum-level-market-addr-card{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);cursor:pointer;transition:border-color var(--transition-normal),background var(--transition-normal)}
.forum-level-market-addr-card:hover{border-color:var(--brand)}
.forum-level-market-addr-card input[type="radio"]{margin-top:3px;accent-color:var(--brand)}
.forum-level-market-addr-card.selected{border-color:var(--brand);background:var(--brand-soft)}
.forum-level-market-addr-main{display:grid;gap:3px;min-width:0}
.forum-level-market-addr-main b{color:var(--text);font-size:var(--font-size-md)}
.forum-level-market-addr-phone{color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-addr-text{color:var(--text-muted);font-size:var(--font-size-sm);overflow-wrap:anywhere;line-height:1.5}
.forum-level-market-addr-default{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-xs);font-style:normal}
.forum-level-market-addr-default:before{content:"";width:5px;height:5px;border-radius:999px;background:var(--inverse-text)}
.forum-level-market-addr-new .forum-level-market-addr-main b{color:var(--brand)}
.forum-level-market-addr-empty{margin:0;color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-addr-note{margin:0;color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-addr-fields{display:grid;gap:10px}
.forum-level-market-addr-virtual{border-style:dashed}
.forum-level-market-addr-virtual-text{margin:0;color:var(--success);font-size:var(--font-size-sm)}
.forum-level-market-addr-manage-list{display:grid;gap:10px}
.forum-level-market-addr-manage{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;transition:var(--transition-normal)}
.forum-level-market-addr-manage:hover{box-shadow:0 4px 14px var(--shadow-base)}
.forum-level-market-addr-manage-main{display:grid;gap:3px;min-width:0}
.forum-level-market-addr-manage-ops{display:flex;align-items:center;gap:8px}
.forum-level-market-addr-manage-ops form{display:inline-flex;margin:0}
.forum-level-market-addr-form{margin:0}
.forum-level-market-shipping-virtual p{margin:0}
/* ===== 后台 ===== */
.forum-level-market-admin{display:block}
.forum-level-market-admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.forum-level-market-admin>.forum-level-market-form-card{margin-top:0}
.forum-level-market-admin-stats+.forum-level-market-form-card{margin-top:0}
.forum-level-market-stat{position:relative;overflow:hidden;padding:13px 14px;display:grid;gap:3px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);box-shadow:0 1px 4px var(--shadow-base);transition:var(--transition-normal)}
.forum-level-market-stat:hover{box-shadow:0 6px 16px var(--shadow-medium);transform:translateY(-1px)}
.forum-level-market-stat:after{content:"";position:absolute;right:-12px;bottom:-12px;width:52px;height:52px;border-radius:999px;background:var(--brand-soft);opacity:.5}
.forum-level-market-stat span{color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-stat b{font-size:var(--font-size-lg);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;position:relative;line-height:1.2}
.forum-level-market-stat b.accent{color:var(--brand)}
.forum-level-market-stat b.danger{color:var(--danger)}
.forum-level-market-admin-section{display:grid;gap:10px;margin-top:0}
.forum-level-market-admin-section+.forum-level-market-admin-section{margin-top:14px}
.forum-level-market-admin-section h3{display:flex;align-items:center;margin:0;font-size:var(--font-size-md);color:var(--text)}
.forum-level-market-settings{max-width:640px}
.forum-level-market-form-card{display:grid;gap:12px;margin:0 0 12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 1px 4px var(--shadow-base)}
.forum-level-market-form-card:last-child{margin-bottom:0}
.forum-level-market-form-card h3{margin:0;padding-bottom:12px;border-bottom:1px solid var(--line-soft);font-size:var(--font-size-md);line-height:1.3;color:var(--text)}
.forum-level-market-form-card .plugin-settings-form{margin:0;gap:10px}
/* 后台设置页：表单融入面板，去掉重复边框 */
.forum-level-market-form-card-flat{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.forum-level-market-form-card-flat h3{padding:14px 0 12px;border-bottom:1px solid var(--line-soft);font-size:var(--font-size-lg)}
.forum-level-market-form-head{margin:0 0 8px}
.forum-level-market-form-head a{color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-form-head a:hover{color:var(--brand)}
.forum-level-market-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.forum-level-market-toolbar .forum-level-market-btn{flex-shrink:0}
.forum-level-market-products-toolbar{align-items:stretch}
.forum-level-market-products-toolbar .forum-level-market-admin-filter{flex:1 1 360px;min-width:0}
.forum-level-market-orders-toolbar .forum-level-market-orders-filter{width:100%;flex:1 1 100%;min-width:0}
.forum-level-market-product-publish{display:inline-flex;align-items:center;justify-content:center}
.forum-level-market-admin-filter{display:flex;flex-wrap:nowrap;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}
.forum-level-market-filter-icon{display:inline-flex;align-items:center;padding-left:10px;color:var(--text-muted)}
.forum-level-market-filter-field{flex:0 0 auto}
.forum-level-market-filter-field select{border:0;background:transparent;color:var(--text);font:inherit;font-size:var(--font-size-sm);padding:8px 6px 8px 6px;cursor:pointer;outline:none}
.forum-level-market-filter-sep{flex:0 0 auto;width:1px;align-self:stretch;background:var(--line)}
.forum-level-market-filter-input{flex:1 1 160px;min-width:0;display:flex;align-items:center}
.forum-level-market-filter-input input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;font-size:var(--font-size-sm);padding:8px 10px;outline:none}
.forum-level-market-filter-input input::placeholder{color:var(--text-subtle)}
.forum-level-market-admin-filter .forum-level-market-btn{margin:3px;border:0;background:var(--brand);color:var(--inverse-text);min-height:30px}
.forum-level-market-admin-filter .forum-level-market-btn:hover{background:var(--brand-hover)}
.forum-level-market-admin-thumb{width:44px;height:44px;flex:0 0 44px;overflow:hidden;border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--line-soft)}
.forum-level-market-admin-img{width:100%;height:100%;object-fit:cover}
.forum-level-market-row .forum-level-market-product-cover{grid-column:1;grid-row:1;width:56px;height:56px;flex:0 0 56px;overflow:hidden;border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--line-soft);box-sizing:border-box}
.forum-level-market-row .forum-level-market-product-cover .forum-level-market-admin-img{display:block;width:100%;height:100%;object-fit:cover}
.forum-level-market-admin-pricewrap{display:inline-flex;align-items:baseline;gap:2px;min-width:0;white-space:nowrap}
.forum-level-market-admin-price-sym{color:var(--brand);font-size:var(--font-size-xs);font-weight:600}
.forum-level-market-admin-price{color:var(--brand);font-size:var(--font-size-md);font-weight:700;font-variant-numeric:tabular-nums}
.forum-level-market-pd-data{display:inline-flex;align-items:center;gap:12px}
.forum-level-market-pd-cell{display:inline-flex;align-items:baseline;gap:3px;color:var(--text-muted);font-size:var(--font-size-xs);white-space:nowrap}
.forum-level-market-pd-cell b{color:var(--text);font-weight:600;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.forum-level-market-pd-cell.off b{color:var(--text-subtle)}
.forum-level-market-pd-badges{display:inline-flex;align-items:center;gap:4px}
/* 商品列表行：封面在左，信息标签和操作在右。 */
.forum-level-market-row{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:start;gap:12px;min-width:0}
.forum-level-market-row .forum-level-market-product-cover{grid-column:1;grid-row:1/3}
.forum-level-market-row .admin-row-main{grid-column:2;grid-row:1;min-width:0}
.forum-level-market-row .admin-row-actions{grid-column:2;grid-row:2;display:flex;align-items:center;min-width:0}
.forum-level-market-row .forum-level-market-row-ops{margin-left:0;flex:0 0 auto;flex-wrap:wrap;white-space:normal}
.forum-level-market-row .admin-user-cell,.forum-level-market-row .admin-user-text{min-width:0}
.forum-level-market-row .admin-user-text strong{display:block;line-height:1.4;overflow-wrap:anywhere}
.forum-level-market-admin-status{display:inline-flex;align-items:center;gap:5px;min-height:20px;padding:0 8px;border-radius:999px;background:var(--success-soft);color:var(--success);font-size:var(--font-size-xs);font-weight:600;white-space:nowrap}
.forum-level-market-admin-status:before{content:"";width:5px;height:5px;border-radius:999px;background:currentColor}
.forum-level-market-admin-status.off{background:var(--bg);color:var(--text-subtle)}
.forum-level-market-admin-status.low{background:var(--danger-soft);color:var(--danger)}
.forum-level-market-admin-status.pending{background:var(--warning-soft);color:var(--warning)}
.forum-level-market-admin-status.paid{background:var(--info-soft);color:var(--info)}
.forum-level-market-admin-status.shipped{background:var(--brand-soft);color:var(--brand)}
.forum-level-market-admin-status.disputed{background:var(--danger-soft);color:var(--danger)}
.forum-level-market-admin-status.finished{background:var(--success-soft);color:var(--success)}
.forum-level-market-admin-status.cancelled{background:var(--bg);color:var(--text-subtle)}
.forum-level-market-admin-status.virtual{background:var(--info-soft);color:var(--info)}
.forum-level-market-row-ops{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.forum-level-market-row-ops form{display:inline-flex;margin:0}
.forum-level-market-row-ops>a,.forum-level-market-row-ops>form>button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:32px;min-height:32px;padding:0 14px;line-height:1.2;white-space:nowrap}
.forum-level-market-ops-btn{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;text-decoration:none;transition:var(--transition-normal)}
.forum-level-market-ops-btn:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.forum-level-market-text-link{display:inline-flex;align-items:center;min-height:26px;padding:0 5px;color:var(--brand);font-size:var(--font-size-sm);text-decoration:none;white-space:nowrap}
.forum-level-market-text-link:hover{color:var(--brand-hover);text-decoration:underline}
.forum-level-market-ops-btn.danger{border-color:transparent;background:none;color:var(--danger);padding:0 5px}
.forum-level-market-ops-btn.danger:hover{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}
.forum-level-market-row-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px}
.forum-level-market-row-meta span{display:inline-flex;align-items:center;gap:5px;font-size:var(--font-size-xs)}
.forum-level-market-row-meta span:not(:first-child)::before{content:"";width:3px;height:3px;border-radius:50%;background:var(--line)}
.forum-level-market-product-meta{gap:5px 10px;margin-top:5px}
.forum-level-market-product-meta .forum-level-market-product-meta-tag{color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.4;white-space:nowrap}
.forum-level-market-product-meta .forum-level-market-product-meta-tag::before{display:none}
.forum-level-market-admin-order-no{text-decoration:none;transition:var(--transition-normal)}
.forum-level-market-seller-order-no{font-weight:700;color:var(--text);text-decoration:none}
.forum-level-market-seller-order-no:hover{color:var(--brand)}
.forum-level-market-admin-order-no:hover{color:var(--brand)}
.forum-level-market-admin-product{text-decoration:none;color:var(--text);transition:var(--transition-normal)}
.forum-level-market-admin-product:hover{color:var(--brand)}
.forum-level-market-empty-list{padding:32px 14px;color:var(--text-subtle)}
.forum-level-market-admin-statuslinks{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.forum-level-market-admin-statuslinks a{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:1px solid var(--line);border-radius:999px;color:var(--text-muted);font-size:var(--font-size-sm);transition:var(--transition-normal)}
.forum-level-market-admin-statuslinks a:hover{color:var(--text);border-color:var(--text-subtle)}
.forum-level-market-admin-statuslinks a.active{border-color:var(--brand);background:var(--brand);color:var(--inverse-text);font-weight:600}
.forum-level-market-admin-statuslinks a.active:hover{color:var(--inverse-text)}
.forum-level-market-product-form{max-width:720px}
.forum-level-market-admin-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:0;color:var(--text-muted);font-size:var(--font-size-sm);transition:var(--transition-normal)}
.forum-level-market-admin-back:hover{color:var(--brand)}
.forum-level-market-admin-cover{display:grid;gap:8px}
.forum-level-market-admin-cover-current{display:flex;align-items:center;gap:10px;color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-admin-cover-current img{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line-soft)}
.forum-level-market-admin-order-info{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.forum-level-market-admin-order-info li{display:grid;grid-template-columns:80px minmax(0,1fr);gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);transition:var(--transition-normal)}
.forum-level-market-admin-order-info li:hover{border-color:var(--line)}
.forum-level-market-admin-order-info li span{color:var(--text-subtle);font-size:var(--font-size-sm)}
.forum-level-market-admin-order-info li b{color:var(--text);font-size:var(--font-size-sm);font-weight:600;overflow-wrap:anywhere}
.forum-level-market-admin-order-info .forum-level-market-admin-dispute{grid-column:1/-1}
.forum-level-market-admin-order-info .forum-level-market-admin-total{color:var(--brand);font-size:var(--font-size-lg)}
.forum-level-market-admin-refund{display:flex;align-items:center;gap:8px;margin:0}
.forum-level-market-admin-refund input{min-width:0;width:190px;margin:0;padding:6px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:var(--font-size-sm)}
.forum-level-market-admin-refund button{background:none;border:0;padding:0;color:var(--danger);font-size:var(--font-size-sm);cursor:pointer}
.forum-level-market-admin-refund button:hover{text-decoration:underline}
.forum-level-market-admin .post-action-form{display:inline-flex;margin:0}
.forum-level-market-admin .post-action-form button{margin:0}
.forum-level-market-admin-item-thumbwrap{flex:0 0 auto}
.forum-level-market-admin-item-thumb{width:42px;height:42px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line-soft);background:var(--bg)}
.forum-level-market-admin-order-product{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg)}
.forum-level-market-admin-order-product>div:nth-child(2){display:grid;gap:4px;min-width:0}
.forum-level-market-admin-order-product strong{color:var(--text);font-size:var(--font-size-sm);overflow-wrap:anywhere}
.forum-level-market-admin-order-product span{color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-admin-order-product>.forum-level-market-admin-price{margin-left:auto;white-space:nowrap}
.forum-level-market-admin-merchant-note>div{display:grid;justify-items:start;gap:8px;padding:11px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;line-height:1.6}
.forum-level-market-admin-merchant-note b{color:var(--text);font-size:var(--font-size-sm);font-weight:600;overflow-wrap:anywhere;white-space:pre-wrap}
.forum-level-market-admin-order-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:11px 14px 11px 16px;border:1px solid var(--line);border-left-width:3px;border-radius:var(--radius);background:var(--bg)}
.forum-level-market-admin-order-banner span{color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-level-market-admin-order-banner.pending{border-left-color:var(--warning)}
.forum-level-market-admin-order-banner.paid{border-left-color:var(--info)}
.forum-level-market-admin-order-banner.shipped{border-left-color:var(--brand)}
.forum-level-market-admin-order-banner.disputed{border-left-color:var(--danger)}
.forum-level-market-admin-order-banner.finished{border-left-color:var(--success)}
.forum-level-market-admin-order-banner.cancelled{border-left-color:var(--text-subtle)}
.forum-level-market-form-card .plugin-settings-form>button[type=submit]{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 20px;border:0;border-radius:var(--radius-sm);background:var(--brand);color:var(--inverse-text);font:inherit;font-size:var(--font-size-md);font-weight:600;cursor:pointer;transition:var(--transition-normal)}
.forum-level-market-form-card .plugin-settings-form>button[type=submit]:hover{background:var(--brand-hover)}
.forum-level-market-publish-deposit{padding:10px 14px;border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-sm)}
.forum-level-market-publish-deposit strong{font-weight:600;color:var(--brand)}
.forum-level-market-publish-deposit p{margin:4px 0 0;color:var(--brand);opacity:.85;line-height:1.6}
.forum-level-market-publish-deposit b{font-weight:700;color:var(--brand)}
.forum-level-market-setting-field{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.forum-level-market-setting-field:last-child{border-bottom:0}
.forum-level-market-setting-label{font-weight:600;color:var(--text);font-size:var(--font-size-sm)}
.forum-level-market-setting-group{display:flex;flex-wrap:wrap;gap:8px}
.forum-level-market-setting-hint{margin:0;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.6;flex:1 1 100%}
.forum-level-market-group-checkboxes{display:flex;flex-wrap:wrap;gap:8px}
.forum-level-market-group-check{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--bg);cursor:pointer;transition:var(--transition-normal)}
.forum-level-market-group-check:hover{border-color:var(--brand)}
.forum-level-market-group-check input{accent-color:var(--brand)}
.forum-level-market-group-check span{font-size:var(--font-size-sm);color:var(--text-muted)}
.forum-level-market-btn.primary{background:var(--brand);border-color:var(--brand);color:var(--inverse-text)}
.forum-level-market-btn.primary:hover{background:var(--brand-hover);border-color:var(--brand-hover);color:var(--inverse-text)}
.forum-level-market-btn.primary svg{color:inherit}
.forum-level-market-order-action .post-action-form{display:inline-flex;margin:0}
.forum-level-market-row.admin-list-item{padding:10px 12px;gap:8px}
.forum-level-market-admin .admin-manage-list{display:grid;gap:6px}
.forum-level-market-admin .forum-level-market-order-action{margin-top:12px;justify-content:flex-end}
.forum-level-market-admin .forum-level-market-order-action .forum-level-market-btn{min-height:30px}
.forum-level-market-admin .forum-level-market-admin-order-banner+.forum-level-market-admin-section{margin-top:0}
/* ===== 微交互 ===== */
.forum-level-market-btn:active{transform:scale(.97)}
.forum-level-market-card,.forum-level-market-btn,.forum-level-market-ops-btn,.forum-level-market-pager a,.forum-level-market-tabs a{will-change:transform}
.forum-level-market-card-media img,.forum-level-market-detail-media img{animation:forum-level-market-fade-in .4s ease}
@keyframes forum-level-market-fade-in{from{opacity:0}to{opacity:1}}
.forum-level-market-card-badge.hot{animation:forum-level-market-pulse 2s ease-in-out infinite}
@keyframes forum-level-market-pulse{0%,100%{box-shadow:0 2px 8px var(--shadow-base)}50%{box-shadow:0 2px 14px var(--shadow-medium)}}
.forum-level-market-card{animation:forum-level-market-rise .35s ease both}
@keyframes forum-level-market-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.forum-level-market-grid .forum-level-market-card:nth-child(2n){animation-delay:.04s}
.forum-level-market-grid .forum-level-market-card:nth-child(3n){animation-delay:.08s}
.forum-level-market-grid .forum-level-market-card:nth-child(4n){animation-delay:.12s}
.forum-level-market-buy-form button[type=submit]:hover{box-shadow:0 4px 12px var(--shadow-medium)}
/* ===== 输入框聚焦增强 ===== */
.forum-level-market-addr-fields input:focus,.forum-level-market-addr-fields textarea:focus,.forum-level-market-search input:focus,.forum-level-market-note-block textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
.forum-level-market-admin-filter:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
/* ===== 响应式 ===== */
/* 论坛侧栏仍可见但主栏变窄时，缩小封面列，避免商品信息被压成竖排。 */
@media(max-width:1200px) and (min-width:901px){
  .forum-level-market-detail{grid-template-columns:minmax(260px,42%) minmax(0,1fr)}
  .forum-level-market-detail-info{padding:18px}
  .forum-level-market-price-box{gap:8px;padding:12px}
  .forum-level-market-detail-buybar{gap:10px}
  .forum-level-market-detail-buybar .forum-level-market-btn{padding:12px 16px}
  .forum-level-market-direct-buy{max-width:none}
}
@media(max-width:900px){
  .forum-level-market-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
  .forum-level-market-detail{grid-template-columns:1fr}
  .forum-level-market-detail-media{max-width:100%}
  .forum-level-market-detail-info{padding:18px}
  .forum-level-market-confirm-layout{grid-template-columns:1fr}
  .forum-level-market-confirm-summary{position:static}
  .forum-level-market-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .forum-level-market-addr-list{grid-template-columns:1fr}
  .forum-level-market-userbar{gap:12px}
}
@media(max-width:720px){
  .forum-level-market-grid{grid-template-columns:1fr}
  .forum-level-market-card,.forum-level-market-grid:has(> .forum-level-market-card:only-child) .forum-level-market-card{width:100%;max-width:none;box-sizing:border-box}
  .forum-level-market-card-media{width:100%;}
  .forum-level-market-userbar{flex-wrap:nowrap;gap:8px;padding:10px 12px}
  .forum-level-market-userbar-brand{min-width:0}
  .forum-level-market-userbar-bname{font-size:var(--font-size-md);white-space:nowrap}
  .forum-level-market-userbar-actions{gap:6px;flex:0 0 auto;margin-left:auto;white-space:nowrap}
  .forum-level-market-userbar-actions .forum-level-market-entry{min-height:32px;padding:0 9px;font-size:var(--font-size-xs)}
  .forum-level-market-userbar-actions .forum-level-market-entry-text{display:none}
  .forum-level-market-userbar-actions .forum-level-market-entry svg{width:16px;height:16px}
  .forum-level-market-userbar-login{min-height:30px;padding:0 14px;white-space:nowrap}
  .forum-level-market-entry-badge{top:-6px;right:-3px;min-width:16px;height:16px}
  .forum-level-market-cats-row{flex-wrap:wrap;gap:8px}
  .forum-level-market-search-row .forum-level-market-search{width:100%;flex:1 1 100%}
  .forum-level-market-li-meta{flex-direction:column;align-items:flex-start;gap:6px}
  .forum-level-market-li-points,.forum-level-market-li-stock{white-space:nowrap}
  .forum-level-market-li-points,.forum-level-market-li-stock{gap:5px}
  .forum-level-market-li-points svg,.forum-level-market-li-stock svg{flex:0 0 16px;width:16px;height:16px}
  .forum-level-market-price-box{align-items:center;gap:8px;padding:12px}
  .forum-level-market-price-label,.forum-level-market-price-box .forum-level-market-price-symbol,.forum-level-market-price-num,.forum-level-market-price-original,.forum-level-market-price-discount{flex:0 0 auto;white-space:nowrap}
  .forum-level-market-price-discount{margin-left:0}
  .forum-level-market-confirm-page-title{align-items:center}
  .forum-level-market-confirm-page-title .forum-level-market-btn{flex:0 0 auto}
  .forum-level-market-confirm-products{padding:14px}
  .forum-level-market-confirm-row{grid-template-columns:46px minmax(0,1fr);gap:10px;padding:9px}
  .forum-level-market-confirm-thumb{width:46px;height:46px}
  .forum-level-market-confirm-row>b{grid-column:2;display:flex;align-items:baseline;justify-content:flex-end;gap:6px}
  .forum-level-market-confirm-summary{padding:14px}
  .forum-level-market-detail-buybar.has-publisher-orders{gap:10px}
  .forum-level-market-price-original{margin-left:auto}
  .forum-level-market-order-body{flex-direction:column;align-items:flex-start}
  .forum-level-market-order-foot{flex-direction:column;align-items:flex-start}
  .forum-level-market-order-address-fields{grid-template-columns:1fr}
  .forum-level-market-order-address-fields label:last-child{grid-column:auto}
  .forum-level-market-seller-filter{width:100%}
  .forum-level-market-seller-filter select{flex:1}
  .forum-level-market-seller-order-body{grid-template-columns:1fr}
  .forum-level-market-seller-fulfill-controls{align-items:stretch;flex-direction:column}
  .forum-level-market-seller-fulfill-controls label,.forum-level-market-seller-fulfill-note{width:100%}
  .forum-level-market-seller-fulfill select{width:100%;height:34px!important;min-height:34px!important;max-height:34px!important;padding:0 36px 0 12px;line-height:1.2;box-sizing:border-box}
  .forum-level-market-seller-fulfill>button{width:100%}
  .forum-level-market-admin-status-controls{align-items:stretch;flex-direction:column}
  .forum-level-market-admin-status-form label,.forum-level-market-admin-status-form select,.forum-level-market-admin-status-form>button{width:100%}
  .forum-level-market-admin-order-info{grid-template-columns:1fr}
  .forum-level-market-admin-refund{flex-direction:column}
  .forum-level-market-admin-refund input{width:100%}
  .forum-level-market-confirm-form button{width:100%}
  .forum-level-market-addr-manage{grid-template-columns:1fr}
  .forum-level-market-addr-manage-ops{flex-wrap:wrap}
  .forum-level-market-orders-head{flex-wrap:wrap}
  .forum-level-market-card-foot{flex-wrap:wrap}
  .forum-level-market-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .forum-level-market-products-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .forum-level-market-products-toolbar .forum-level-market-admin-filter{width:100%;flex:0 0 auto}
  .forum-level-market-products-toolbar .forum-level-market-product-publish{width:100%;min-height:36px;box-sizing:border-box}
  .forum-level-market-admin-filter{width:100%;flex-wrap:nowrap}
  .forum-level-market-filter-sep{display:none}
  .forum-level-market-filter-field{min-width:0;max-width:38%}
  .forum-level-market-filter-field select{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .forum-level-market-filter-input{flex:1 1 auto;min-width:0;border-top:0}
  .forum-level-market-filter-input input{width:100%;min-width:0}
  .forum-level-market-admin-filter .forum-level-market-btn{width:auto;min-width:52px}
  .forum-level-market-admin-order-banner{flex-direction:column;align-items:flex-start}
}
/* ===== 发帖页商品表单（折叠式“添加商品”） ===== */
.forum-level-market-create-box{margin-top:14px}
.forum-level-market-create-details{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.forum-level-market-create-details summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 14px;cursor:pointer;list-style:none;user-select:none;font-size:var(--font-size-md);font-weight:600;color:var(--text)}
.forum-level-market-create-details summary::-webkit-details-marker{display:none}
.forum-level-market-create-details summary:before{content:"";flex:0 0 auto;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid currentColor;transition:transform .15s ease}
.forum-level-market-create-details[open] summary:before{transform:rotate(90deg)}
.forum-level-market-create-details[open] summary{border-bottom:1px solid var(--line)}
.forum-level-market-create-summary{margin-left:auto;font-size:var(--font-size-xs);font-weight:400;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.forum-level-market-create-inner{display:grid;gap:10px;padding:12px 14px 14px}
.forum-level-market-product-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-inline-size:0;margin:0;padding:0;border:0}
.forum-level-market-product-fields:disabled{opacity:.55}
.forum-level-market-product-field{display:grid;align-content:start;gap:8px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}
.forum-level-market-product-field>span{color:var(--text-muted);font-size:var(--font-size-sm);font-weight:600}
.forum-level-market-product-field-wide,.forum-level-market-product-fields>.forum-level-market-deposit-tip{grid-column:1/-1}
.forum-level-market-create-inner .grid input[type=number],.forum-level-market-create-inner .grid textarea[name=points_mall_summary]{padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-sm)}
.forum-level-market-create-inner textarea[name=points_mall_summary],.forum-level-market-product-form textarea[name=summary]{width:100%;box-sizing:border-box;resize:vertical}
.topic-form-panel textarea[name=points_mall_summary],.forum-level-market-product-form textarea[name=summary]{min-height:0!important}
.forum-level-market-create-inner .grid input[type=number]:focus,.forum-level-market-create-inner .grid textarea[name=points_mall_summary]:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
.forum-level-market-auto-delivery textarea{box-sizing:border-box;width:100%;min-height:160px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-sm);line-height:1.55;resize:vertical}
.topic-form-panel .forum-level-market-auto-delivery textarea{min-height:160px!important}
.forum-level-market-auto-delivery textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
.forum-level-market-auto-delivery small{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.5}
.forum-level-market-product-toggle{display:grid;grid-template-columns:38px max-content minmax(0,1fr);align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);cursor:pointer}
.forum-level-market-product-toggle input{box-sizing:border-box;flex:0 0 38px;width:38px;height:22px;margin:0}
.forum-level-market-product-toggle span{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}
.forum-level-market-product-toggle small{min-width:0;font-size:var(--font-size-xs);color:var(--text-muted);font-weight:400;line-height:1.5}
@media(max-width:640px){.forum-level-market-product-toggle{grid-template-columns:38px minmax(0,1fr);gap:4px 8px}.forum-level-market-product-toggle small{grid-column:2}.forum-level-market-product-fields{grid-template-columns:1fr}.forum-level-market-product-field-wide,.forum-level-market-product-fields>.forum-level-market-deposit-tip{grid-column:auto}}
.pm-check-inline{display:inline-flex;align-items:center;gap:6px;margin:0}
.pm-check-inline input{accent-color:var(--brand)}
.pm-check-inline span{font-size:var(--font-size-sm);color:var(--text-muted)}
.forum-level-market-cover-upload{display:grid;gap:8px;justify-items:start}
.forum-level-market-cover-select{position:relative;overflow:hidden;cursor:pointer}
.forum-level-market-cover-select input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.forum-level-market-cover-select:focus-within{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
.forum-level-market-cover-preview{width:120px;height:120px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--panel)}
.forum-level-market-cover-preview img{width:100%;height:100%;object-fit:contain}
.forum-level-market-cover-preview.forum-level-market-cover-empty{color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-cover-tip{color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-level-market-deposit-tip{padding:9px 12px;border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-sm);line-height:1.6}
.forum-level-market-deposit-tip b{font-weight:700}
@media(max-width:640px){.forum-level-market-create-details summary{min-height:42px;padding:9px 12px}.forum-level-market-create-inner{padding:11px 12px 13px}}
.forum-level-discount-form{display:flex;flex-direction:column;gap:12px}
.forum-level-discount-form .forum-level-cell{min-width:100%}
.forum-level-discount-form .forum-level-cell input{min-height:38px}
.forum-level-discount-form .forum-level-form-actions{margin-top:4px;flex-wrap:wrap}
.forum-level-market-btn.is-live{border-color:var(--danger);color:var(--danger);background:transparent}
.forum-level-market-btn.is-live:hover{background:var(--brand-soft)}
/* 卖家规格编辑 */
.fl-specs-form{display:flex;flex-direction:column;gap:12px}
.fl-spec-rows{display:flex;flex-direction:column;gap:8px}
.fl-spec-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fl-spec-row input{flex:1;min-width:120px;padding:8px 10px;min-height:36px}
.fl-spec-row .fl-spec-name{flex:0 0 130px}
.fl-spec-toolbar{display:flex;gap:8px;flex-wrap:wrap}
.fl-sku-table{display:flex;flex-direction:column;gap:1px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.fl-sku-thead,.fl-sku-trow{display:grid;grid-template-columns:minmax(0,1fr) 110px 130px;gap:8px;align-items:center;padding:8px 10px;background:var(--bg)}
.fl-sku-table.has-group .fl-sku-thead,.fl-sku-table.has-group .fl-sku-trow{grid-template-columns:minmax(0,1fr) 90px 100px 130px 90px}
.fl-sku-trow select{min-height:34px;padding:6px 8px;width:100%;box-sizing:border-box}
.fl-sku-thead{background:var(--bg-soft,var(--bg));font-size:var(--font-size-xs);color:var(--text-muted);font-weight:600}
.fl-sku-key{font-size:var(--font-size-sm);overflow-wrap:anywhere}
.fl-sku-trow input{min-height:34px;padding:6px 8px;width:100%;box-sizing:border-box}
/* 买家规格选择 */
.fl-buy-specs{display:flex;flex-direction:column;gap:12px;margin:10px 0}
.fl-buy-spec-group{display:flex;flex-direction:column;gap:6px}
.fl-buy-spec-name{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:600}
.fl-buy-spec-opts{display:flex;gap:8px;flex-wrap:wrap}
.fl-buy-spec-opt{min-height:34px;padding:0 14px;border-radius:16px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;font-size:var(--font-size-sm)}
.fl-buy-spec-opt.is-sel{border-color:var(--brand);background:var(--brand);color:var(--inverse-text)}
.fl-buy-selected{font-size:var(--font-size-sm);color:var(--text-muted);margin:0}
.fl-cards-entry{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.forum-level-market-btn.is-disabled{opacity:.5;pointer-events:none}
.forum-level-market-btn.is-spec{border-color:var(--brand);color:var(--brand);background:transparent}
.forum-level-market-btn.is-spec:hover{background:var(--brand-soft)}
.forum-level-market-page{width:100%;max-width:1100px;margin:0 auto}
.forum-level-market-userbar{gap:12px;flex-wrap:wrap}.forum-level-market-userbar-actions,.forum-level-market-cats-row{display:flex;gap:8px;flex-wrap:wrap}
.forum-level-market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.forum-level-market-card{min-width:0}.forum-level-market-card-media{aspect-ratio:4/3;overflow:hidden}.forum-level-market-card-media img{height:100%;width:100%;object-fit:cover}.forum-level-market-card h3{font-size:var(--font-size-sm);line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:8px 0}
.forum-level-market-order-card{border:1px solid var(--line);background:var(--card-bg,var(--bg));border-radius:10px;margin:8px 0;overflow:hidden}
.forum-level-market-order-foot{display:flex;justify-content:flex-end;padding:8px 14px;border-top:1px solid var(--line)}
.forum-level-market-order-header,.forum-level-market-order-body,.forum-level-market-address-card{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:10px 14px}
.forum-level-market-order-header{justify-content:space-between;background:var(--bg-soft,var(--bg));font-size:var(--font-size-xs)}
.forum-level-market-order-body>a:first-child,.forum-level-market-order-body>div,.forum-level-market-address-card>div{flex:1;min-width:120px}.forum-level-market-order-body p{margin:4px 0}.forum-level-market-order-body form,.forum-level-market-address-card form{margin:0}
.forum-level-market-orders-head,.forum-level-market-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.forum-level-market-filter{margin:12px 0}.forum-level-market-filter input{flex:1;min-width:120px}
.forum-level-market-detail-section{padding:18px;margin-top:14px}.forum-level-market-detail-section details{border-bottom:1px solid var(--line);padding:12px 0}.forum-level-market-detail-section summary{cursor:pointer;font-weight:600;margin-bottom:10px}
.forum-level-market-product-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.forum-level-market-product-field{display:flex;flex-direction:column;gap:6px;margin:8px 0}.forum-level-market-product-field-wide{grid-column:1/-1}
.forum-level-market-product-field input,.forum-level-market-product-field textarea,.forum-level-market-product-field select{width:100%;box-sizing:border-box}
.forum-level-market-admin-img{width:56px;height:56px;object-fit:cover;border-radius:6px}.forum-level-market-delivery{white-space:pre-wrap;overflow-wrap:anywhere;max-height:300px;overflow:auto}.forum-level-market-order-action{margin:12px 0}.forum-level-market-order-action textarea{display:block;width:100%;min-height:80px;margin-bottom:8px;box-sizing:border-box}
.forum-level-market-flow{display:flex;gap:12px;flex-wrap:wrap;color:var(--text-muted);padding:12px 0;border-bottom:1px solid var(--line)}.forum-level-market-address-card{border-bottom:1px solid var(--line)}
.forum-level-digest-tag.topic-badge{height:18px;line-height:18px;min-height:0;box-sizing:border-box;margin-right:6px;padding:0 6px;border:0;border-radius:999px;font-size:var(--font-size-xs);font-weight:700}
.forum-level-feature-card .feature-links{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.forum-level-feature-card a{display:block;padding:8px;border-radius:6px;background:var(--bg);font-size:var(--font-size-sm)}
@media(max-width:720px){.forum-level-market-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.forum-level-market-product-fields{grid-template-columns:1fr}.forum-level-market-detail-section{padding:12px}.forum-level-market-userbar-actions{gap:6px}.forum-level-market-entry{padding:6px 9px}.forum-level-market-order-body{gap:8px}.forum-level-market-order-header b{overflow-wrap:anywhere}}
.forum-level-market-product-cover{grid-column:1/-1;display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px dashed var(--line);border-radius:12px;background:var(--bg-soft,var(--bg));flex-wrap:wrap}
.forum-level-market-product-cover-label{font-size:var(--font-size-sm);color:var(--text-subtle);min-inline-size:80px}
.forum-level-market-product-cover-upload{position:relative;display:flex;align-items:center;gap:12px;cursor:pointer;flex:1 1 260px;min-inline-size:0}
.forum-level-market-product-cover-preview{width:96px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--line);flex:0 0 auto}
.forum-level-market-product-cover-none{width:96px;height:72px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;color:var(--text-subtle);font-size:var(--font-size-xs);flex:0 0 auto;background:var(--bg)}
.forum-level-market-product-cover-tip{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.6}
.forum-level-market-product-cover-upload:hover .forum-level-market-product-cover-tip{color:var(--link-color,var(--text))}.fl-ucard{box-sizing:border-box;position:fixed;z-index:9999;display:none;width:280px;max-width:calc(100vw - 16px);padding:12px;background:var(--panel,#fff);border:1px solid var(--line,#e5e7eb);border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.14);font:13px/1.6 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--text,#111827);overflow-wrap:anywhere}
.fl-ucard-close{position:absolute;top:6px;right:6px;width:24px;height:24px;border:0;border-radius:8px;background:transparent;color:var(--text-muted,#6b7280);font-size:16px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.fl-ucard-close:hover{background:rgba(127,127,127,.12);color:var(--text,#111827)}
.fl-ucard-body{display:block}
.fl-ucard-loading{color:var(--text-muted,#6b7280);text-align:center;padding:8px 0}
.fl-ucard-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}
.fl-ucard-head>div{display:flex;flex-direction:column;gap:1px;min-width:0}
.fl-ucard-head b{font-size:15px;line-height:1.3}
.fl-ucard-head span{font-size:12px;color:var(--text-muted,#6b7280)}
.fl-ucard-joined{font-size:11.5px;color:var(--text-subtle,#9ca3af)}
.fl-ucard-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px;padding-top:9px;border-top:1px dashed var(--line,#e5e7eb)}
.fl-ucard-stat{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:8px;background:var(--panel-soft,#f8fafc);font-size:12px}
.fl-ucard-stat .fl-uci{font-style:normal;color:var(--brand,#1f883d);font-size:12px;width:14px;text-align:center}
.fl-ucard-stat b{font-size:13px;color:var(--text,#111827)}
.fl-ucard-stat span{color:var(--text-muted,#6b7280)}
.fl-ucard-caps .forum-level-title-capsule{height:22px;padding:2px 10px 2px 3px;border-radius:7px}
.fl-ucard-head img{width:48px;height:48px;border-radius:10px;background:rgba(127,127,127,.12)}
.fl-ucard-head b{display:block;font-size:14px}
.fl-ucard-head span{color:var(--text-muted,#6b7280);font-size:12px}
.fl-ucard-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.fl-ucard-tag{background:#eef2ff;color:#4338ca;border-radius:999px;padding:1px 8px;font-size:12px}
.fl-ucard-tag.is-lv{background:#ecfdf5;color:#047857}
.fl-ucard-titles{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.fl-ucard-title{display:inline-flex;align-items:center;gap:4px;background:#fff7ed;color:#c2410c;border-radius:8px;padding:1px 8px;font-size:12px}
.fl-ucard-title img{width:16px;height:16px}
.fl-ucard-sprow{display:flex;gap:6px;flex-wrap:wrap}
.fl-ucard-sp{background:#f3f4f6;color:#374151;border-radius:8px;padding:1px 8px;font-size:12px}/* 核心 .form-panel form{display:grid} 的分类特异性(0,1,1)高于 .forum-level-inline(0,1,0)，
   导致表格内的「选择 + 备注 + 按钮」行内表单被拆成纵向多行；这里提高特异性复位为横向 flex。 */
.form-panel .forum-level-inline{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.form-panel .forum-level-inline>*{min-width:0}
.form-panel .forum-level-inline>.forum-level-submit{width:auto}
.forum-level-summary-identity{display:flex;flex-direction:column;gap:4px;min-width:0}
.forum-level-summary-identity small{font-size:12px;color:var(--text-muted,#64748b);overflow-wrap:anywhere}
.forum-level-summary-badges{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.forum-level-summary-roles{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft,#eef2f6)}
.forum-level-summary-section-title{margin-bottom:8px;color:var(--text-subtle,#64748b);font-size:12px;font-weight:700}
.forum-level-summary-roles .forum-level-chips{gap:6px 8px}
.forum-level-summary-head{gap:12px;flex-wrap:wrap}
.forum-level-summary-user{overflow-wrap:anywhere}
.forum-level-cal-navigation{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.forum-level-cal-navigation a,.forum-level-cal-navigation>span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;border:1px solid var(--line,#e2e8f0);border-radius:8px;text-decoration:none;font-size:14px;padding:0 6px}
.forum-level-cal-navigation>span{opacity:.4}
.forum-level-signin-rules{margin:10px 0;color:var(--text-muted,#64748b);font-size:13px}
.forum-level-signin-rules summary{cursor:pointer;min-height:32px;display:list-item;line-height:32px}
.forum-level-cal-cell{position:relative;min-height:42px}
.forum-level-modal:focus{outline:none}
.forum-level-modal-open{overflow:hidden}
.forum-level-modal[aria-hidden="true"]{pointer-events:none}
.forum-level-modal.is-open{pointer-events:auto}
.forum-level-form-actions{flex-wrap:wrap}
.forum-level-table-wrap{width:100%;max-width:100%;overscroll-behavior-x:contain}
.forum-level-table th,.forum-level-table td{vertical-align:top;overflow-wrap:anywhere}
.forum-level-table td:last-child{white-space:normal}
.forum-level-source-merge-status{display:inline-flex;max-width:18em;padding:3px 8px;border:1px solid var(--line,#e2e8f0);border-radius:999px;color:var(--text-muted,#64748b);font-size:12px;line-height:1.35;white-space:normal}
#fl-ads-form-modal .forum-level-modal-panel{max-height:calc(100dvh - 40px);display:flex;flex-direction:column}
#fl-ads-form-modal .forum-level-modal-body{overflow:auto;overscroll-behavior:contain;min-height:0}
#fl-ads-form-modal .forum-level-modal-head{flex-shrink:0}
#fl-ads-form-modal .forum-level-ads-purchase-heading h2,#fl-ads-form-modal .forum-level-ads-purchase-kicker{display:none}
#fl-ads-form-modal .forum-level-ads-submit-row{position:sticky;bottom:0;padding:12px 0;margin-bottom:0;background:var(--panel,#fff);border-top:1px solid var(--line,#e2e8f0);z-index:2}
@media(max-width:640px){.forum-level-summary,.forum-level-calendar{padding:14px}.forum-level-summary-head{align-items:flex-start}.forum-level-summary-badges{width:100%}.forum-level-summary .forum-level-stats{gap:8px}.forum-level-cal-head{align-items:flex-start;gap:10px}.forum-level-cal-streak{width:100%;order:2}.forum-level-cal-grid{gap:4px}.forum-level-cal-cell{min-width:0;min-height:38px}.forum-level-signin-reward{line-height:1.8;overflow-wrap:anywhere}#fl-ads-form-modal .forum-level-modal-panel{width:calc(100% - 20px);max-height:calc(100dvh - 20px)}#fl-ads-form-modal .forum-level-modal-body{padding:12px}.forum-level-ads-form-grid{grid-template-columns:1fr}.forum-level-ads-form-grid-full{grid-column:auto}}
/* 活动报名后台设置表单（v4.0.5）：核心 .row 是横向 flex，长标签/长提示会把输入框挤得参差不齐；
   改为“标签左列 + 输入与提示右列”的两列网格，窄屏折叠单列。 */
.event-rsvp-panel .form{gap:0}
.event-rsvp-panel .row{display:grid;grid-template-columns:200px minmax(0,1fr);gap:2px 12px;align-items:center;padding:7px 0;border-bottom:1px dashed var(--line-soft,#eef2f6)}
.event-rsvp-panel .row>label{font-weight:600;color:var(--text,#3f3f4a);line-height:1.5}
.event-rsvp-panel .row>input{width:100%;max-width:170px;box-sizing:border-box;padding:6px 10px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:var(--font-size-sm,12px);justify-self:start}
.event-rsvp-panel .row>small{grid-column:2;color:var(--text-subtle,#8b8b98);font-size:var(--font-size-xs,11px);line-height:1.55}
.event-rsvp-panel .checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:6px;margin:10px 0 2px}
.event-rsvp-panel .checks .check{align-items:flex-start;min-height:0;padding:8px 10px;line-height:1.5}
.event-rsvp-panel .checks .check input{margin-top:2px;flex:none}
.event-rsvp-panel .event-rsvp-admin-error{margin:8px 0;padding:8px 12px;border:1px solid var(--danger,#c43131);border-radius:8px;color:var(--danger,#c43131);background:var(--danger-soft,#fff3f3);font-size:var(--font-size-sm,12px)}
.event-rsvp-panel .actions{margin-top:14px}
@media (max-width:720px){.event-rsvp-panel .row{grid-template-columns:1fr}.event-rsvp-panel .row>input{max-width:100%;justify-self:stretch}.event-rsvp-panel .row>small{grid-column:1}.event-rsvp-panel .checks{grid-template-columns:1fr}}.forum-category-card .forum-category-head{margin-bottom:6px;font-weight:600}
.forum-category-card .forum-category-head-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.forum-category-card .forum-category-home{color:inherit;text-decoration:none;font-weight:600}
.forum-category-card .forum-category-home:hover{color:var(--brand)}
.forum-category-card .forum-category-collapse{border:0;background:transparent;color:var(--text-muted,#6b7280);font-size:12px;cursor:pointer;padding:2px 6px;border-radius:6px}
.forum-category-card .forum-category-collapse:hover{color:var(--brand);background:var(--bg)}
.forum-category-card.forum-category-card-collapsed .forum-category-list{display:none}
.forum-category-float.is-collapsed{width:auto;min-width:0}
.forum-category-float.is-collapsed .forum-category-list{display:none}
.forum-category-float.is-collapsed .forum-category-collapse{white-space:nowrap}
.forum-category-float.is-collapsed{padding:8px 10px}
.forum-category-card .forum-category-list{margin:0;padding:0;list-style:none}
.forum-category-card .forum-category-item{border-bottom:1px solid var(--bg);color:var(--text-muted);font-size:var(--font-size-sm)}
.forum-category-card .forum-category-item:last-child{border-bottom:none}
.forum-category-card .forum-category-link{display:flex;align-items:center;gap:8px;min-height:28px;color:inherit;text-decoration:none}
.forum-category-card .forum-category-link:hover{color:var(--brand)}
.forum-category-card .forum-category-link:focus-visible{outline:var(--focus-ring);outline-offset:-2px}
.forum-category-card .forum-category-list>:nth-child(5n+1){--forum-category-dot-color:var(--brand);--forum-category-dot-soft:var(--brand-soft)}
.forum-category-card .forum-category-list>:nth-child(5n+2){--forum-category-dot-color:var(--success);--forum-category-dot-soft:var(--success-soft)}
.forum-category-card .forum-category-list>:nth-child(5n+3){--forum-category-dot-color:var(--warning);--forum-category-dot-soft:var(--warning-soft)}
.forum-category-card .forum-category-list>:nth-child(5n+4){--forum-category-dot-color:var(--info);--forum-category-dot-soft:var(--info-soft)}
.forum-category-card .forum-category-list>:nth-child(5n+5){--forum-category-dot-color:var(--danger);--forum-category-dot-soft:var(--danger-soft)}
.forum-category-card .forum-category-dot{flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:var(--forum-category-dot-color,var(--line));transition:transform .15s ease,box-shadow .15s ease}
.forum-category-card .forum-category-link:hover .forum-category-dot,.forum-category-card .forum-category-link.is-active .forum-category-dot{transform:scale(1.35);box-shadow:0 0 0 3px var(--forum-category-dot-soft,var(--brand-soft))}
.forum-category-card .forum-category-link.is-active{color:var(--text);font-weight:700}
.forum-category-card .forum-category-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.forum-category-card .forum-category-count{flex:0 0 auto;color:var(--text-subtle);font-size:var(--font-size-xs)}
.forum-category-float{--forum-category-float-width:180px;--forum-category-float-gap:15px;display:none}
html.forum-category-float-on .forum-category-float{display:block;position:fixed;top:60px;left:var(--forum-category-float-left,12px);z-index:30;width:var(--forum-category-float-width);max-height:calc(100vh - 84px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
html.forum-category-float-on .forum-category-card:not(.forum-category-float){display:none}
@media (min-width:1280px){ html.forum-category-float-on body{padding-left:207px} }/* ====== 称号徽章（原 @layer 包裹会令规则优先级低于未分层主题样式，导致前台佩戴样式被覆盖丢失；已摘除，meta_css 覆盖由内联后置保证） ====== */
.gacha-title-badge{display:inline-flex;align-items:center;gap:4px;padding:0 8px;height:20px;border:1px solid var(--gacha-border);border-radius:999px;background:var(--gacha-bg);color:var(--gacha-color);font-size:11px;line-height:1;vertical-align:middle;white-space:nowrap;pointer-events:none}
.gacha-list-title-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex:0 0 14px;color:var(--gacha-color);font-size:13px;line-height:1}
.topic-post-list .gacha-title-badge{justify-content:flex-start;padding:0;border:0;background:transparent}
.topic-post-list .gacha-title-badge,.topic-post-list .gacha-title-icon,.topic-post-list .gacha-title-rarity{font-size:inherit}
.topic-post-list .gacha-title-name,.topic-post-list .gacha-title-rarity{font-weight:inherit}
.post-meta .gacha-title-badge{box-sizing:border-box;margin:0;padding:0;border:0;border-radius:0;background:transparent;line-height:1.4}
.post-meta .gacha-title-icon{font-size:inherit;line-height:1.4}.post-meta .gacha-title-rarity{padding:0;background:transparent;color:var(--gacha-color);font-size:inherit;line-height:1.2}
.topic-post-list .post-meta .gacha-title-badge{padding:0 4px;border:1px solid var(--gacha-border);border-radius:var(--radius-sm);background:var(--gacha-bg)}
.gacha-title-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:12px;line-height:1}
.gacha-title-name{font-weight:600}
.gacha-title-rarity{margin-left:1px;padding:0 3px;border-radius:2px;background:var(--gacha-color);color:#fff;font-size:9px;font-weight:700;line-height:1.4}

/* ====== 称号系统主页 ====== */
/* 抽卡主面板：两块主按钮 + 余额信息，白底浮起卡片 */
.gacha-draw-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.gacha-actions{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;width:100%}
.gacha-actions form{margin:0;display:flex;flex:1 1 auto;max-width:220px}
.gacha-actions form>.gacha-pull-btn{width:100%}
.gacha-sub-stats{display:flex;align-items:center;justify-content:center;gap:10px;font-size:var(--font-size-xs);color:var(--text-muted);line-height:1}
.gacha-sub-stats strong{color:var(--text);font-weight:700}
.gacha-sub-stats-sep{width:1px;height:11px;background:var(--line)}

.gacha-pull-btn{min-height:46px;padding:0 22px;border:1px solid var(--brand);border-radius:12px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-md);font-weight:700;cursor:pointer;transition:background var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal)}
.gacha-pull-btn:hover{background:var(--brand-hover);border-color:var(--brand-hover);box-shadow:0 4px 14px -6px var(--shadow-medium)}
.gacha-pull-btn:disabled{border-color:var(--line);background:var(--bg);color:var(--text-disabled);cursor:not-allowed;box-shadow:none}
.gacha-pull-10{background:var(--panel);color:var(--brand);border-color:var(--brand)}
.gacha-pull-10:hover{background:var(--brand-soft);border-color:var(--brand);color:var(--brand);box-shadow:none}
.gacha-pull-10:disabled{border-color:var(--line);background:var(--bg);color:var(--text-disabled)}

/* 区块卡片：称号池 / 全部称号 */
.gacha-block{min-width:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.gacha-block-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin-bottom:12px}
.gacha-block-head h2{margin:0;font-size:var(--font-size-md);font-weight:700;color:var(--text)}
.gacha-block-note{font-size:var(--font-size-xs);color:var(--text-subtle)}

/* ====== 称号池 ====== */
.gacha-pool-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gacha-pool-rarity{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 10px;border:1px solid var(--gacha-border);border-radius:12px;background:var(--gacha-bg);text-align:center}
.gacha-pool-rarity-label{font-size:var(--font-size-sm);font-weight:700;color:var(--gacha-color)}
.gacha-pool-rarity-count{font-size:var(--font-size-xs);color:var(--text-muted)}
.gacha-pool-rarity-rate{margin-top:2px;font-size:var(--font-size-lg);font-weight:700;color:var(--gacha-color);line-height:1.2}

/* ====== 全部称号 ====== */
.gacha-all-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.gacha-all-item{display:flex;justify-content:center;min-width:0;padding:9px 8px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.gacha-all-item .gacha-title-badge{font-size:var(--font-size-xs);padding:3px 10px;max-width:100%}

/* ====== 抽卡结果 ====== */
.gacha-result{padding:16px;text-align:center}
.gacha-result h2{margin:0 0 20px;font-size:var(--font-size-xl);color:var(--text)}
.gacha-result-card{display:inline-flex;flex-direction:column;align-items:center;gap:8px;padding:30px 40px;border:2px solid var(--gacha-border);border-radius:16px;background:var(--gacha-bg);animation:gacha-card-pop .3s ease both}
@keyframes gacha-card-pop{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
.gacha-result-ssr{animation:gacha-card-glow 1s ease infinite alternate}
@keyframes gacha-card-glow{from{box-shadow:0 0 20px rgba(245,158,11,.3)}to{box-shadow:0 0 40px rgba(245,158,11,.6)}}
.gacha-result-rarity{font-size:var(--font-size-lg);font-weight:700;color:var(--gacha-color)}
.gacha-result-icon{font-size:48px;line-height:1}
.gacha-result-name{font-size:var(--font-size-xl);font-weight:700;color:var(--text)}
.gacha-result-new{display:inline-block;padding:2px 12px;border-radius:20px;background:linear-gradient(135deg,#ef4444,#f59e0b);color:#fff;font-size:var(--font-size-xs);font-weight:700;animation:gacha-new-pulse 1s ease infinite alternate}
@keyframes gacha-new-pulse{from{transform:scale(1)}to{transform:scale(1.1)}}
.gacha-result-desc{margin-top:4px;color:var(--text-muted);font-size:var(--font-size-sm)}
.gacha-result-actions{display:flex;gap:10px;justify-content:center;margin-top:20px}

/* ====== 十连抽 ====== */
.gacha-pull-10-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;max-width:600px;margin:0 auto}
.gacha-pull-10-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;border:1px solid var(--gacha-border);border-radius:10px;background:var(--gacha-bg);position:relative;animation:gacha-card-pop .3s ease both}
.gacha-pull-10-item:nth-child(1){animation-delay:0s}
.gacha-pull-10-item:nth-child(2){animation-delay:.1s}
.gacha-pull-10-item:nth-child(3){animation-delay:.2s}
.gacha-pull-10-item:nth-child(4){animation-delay:.3s}
.gacha-pull-10-item:nth-child(5){animation-delay:.4s}
.gacha-pull-10-item:nth-child(6){animation-delay:.5s}
.gacha-pull-10-item:nth-child(7){animation-delay:.6s}
.gacha-pull-10-item:nth-child(8){animation-delay:.7s}
.gacha-pull-10-item:nth-child(9){animation-delay:.8s}
.gacha-pull-10-item:nth-child(10){animation-delay:.9s}
.gacha-pull-10-icon{font-size:28px;line-height:1}
.gacha-pull-10-name{font-size:var(--font-size-xs);font-weight:600;color:var(--text);text-align:center}
.gacha-pull-10-rarity{font-size:10px;font-weight:700;color:var(--gacha-color)}
.gacha-pull-10-new{position:absolute;top:-6px;right:-6px;padding:1px 6px;border-radius:10px;background:linear-gradient(135deg,#ef4444,#f59e0b);color:#fff;font-size:9px;font-weight:700;animation:gacha-new-pulse 1s ease infinite alternate}

/* ====== 我的称号列表 ====== */
.gacha-profile-titles{min-width:0}
/* 在个人主页 Tab 中独立渲染（不在 .gacha-titles-card 内）时，自带卡片容器 */
.post-list .gacha-profile-titles,.gacha-header+.gacha-profile-titles{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.gacha-profile-titles .empty-state{padding:26px 0;text-align:center;color:var(--text-subtle);font-size:var(--font-size-sm)}
.gacha-profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.gacha-profile-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-align:center;transition:border-color .15s ease,box-shadow .15s ease;min-width:0}
.gacha-profile-item:hover{border-color:var(--brand)}
.gacha-profile-item.is-equipped{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.gacha-profile-item.is-expired{opacity:.62}
.gacha-profile-item.is-expired .gacha-title-badge{filter:grayscale(.6)}
.gacha-profile-badge{display:flex;justify-content:center;min-height:30px;align-items:center}
.gacha-profile-badge .gacha-title-badge{font-size:var(--font-size-sm);padding:4px 12px;pointer-events:auto;font-size:12px}
.gacha-profile-info{display:flex;flex-direction:column;gap:4px;min-width:0;width:100%}
.gacha-profile-desc{font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.gacha-profile-meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;font-size:var(--font-size-xxs);color:var(--text-subtle)}
.gacha-status-tag{padding:1px 9px;border-radius:999px;font-size:var(--font-size-xxs);font-weight:600;line-height:1.7}
.gacha-status-permanent{background:var(--success-soft);color:var(--success)}
.gacha-status-active{background:var(--brand-soft);color:var(--brand)}
.gacha-status-expired{background:var(--danger-soft);color:var(--danger)}
.gacha-profile-action{display:flex;align-items:center;justify-content:center;gap:8px;min-height:28px;flex-wrap:wrap}
.gacha-expired-label{color:var(--danger);font-size:var(--font-size-xs);font-weight:600}
.gacha-equip-btn{min-height:28px;padding:5px 18px;border:1px solid var(--brand);border-radius:999px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease}
.gacha-equip-btn:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.gacha-equipped-label{color:var(--success);font-size:var(--font-size-xs);font-weight:600}
.gacha-unequip-btn{min-height:28px;padding:5px 14px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}
.gacha-unequip-btn:hover{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}
.gacha-gift-btn{min-height:28px;padding:5px 14px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}
.gacha-gift-btn:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}

/* ====== 管理后台 ====== */
.gacha-settings{max-width:none}
.gacha-settings-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:stretch;gap:12px}
.gacha-settings-field{display:flex;flex-direction:column;justify-content:flex-start;gap:10px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.gacha-settings-field-title{color:var(--text);font-size:var(--font-size-xs);font-weight:700}
.gacha-settings-field .grid{display:grid;align-content:start;gap:5px;min-width:0}
.gacha-settings-wide{margin-top:12px}
.gacha-settings-wide textarea{width:100%;min-height:110px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--font-size-xs)}
.gacha-settings-field input:not([type=checkbox]),.gacha-settings-field select{width:100%;max-width:none}
.gacha-settings-field input[type=checkbox]{width:38px;max-width:38px;height:22px}
.gacha-settings-actions{display:flex;gap:8px;margin-top:14px}
.gacha-settings .gacha-settings-actions button{margin:0}
.gacha-admin-form{max-width:400px}
.gacha-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.gacha-modal-actions .button{min-height:36px;padding:0 18px;border:1px solid var(--line-soft);border-radius:8px;background:var(--bg);color:var(--text-muted);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .12s ease}
.gacha-modal-actions .button:hover{border-color:var(--brand-soft);color:var(--brand)}
.gacha-modal-actions #gachaModalSubmit{min-height:36px;padding:0 20px;border:1px solid var(--brand);border-radius:8px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .12s ease}
.gacha-modal-actions #gachaModalSubmit:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.gacha-modal-actions #gachaGiftSubmit,.gacha-modal-actions #gachaAdminGiftSubmit{min-height:36px;padding:0 20px;border:1px solid var(--brand);border-radius:8px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-sm);font-weight:600;cursor:pointer}
.gacha-gift-title{margin-bottom:12px;color:var(--text-muted);font-size:var(--font-size-sm)}
.gacha-gift-title strong{color:var(--text)}

/* ====== 个人主页称号 Tab ====== */
.post-list > .gacha-profile-titles{padding:0;border:0;background:transparent}

/* ====== 称号时效 ====== */
.gacha-result-duration{margin-top:14px;padding:6px 14px;border-radius:20px;background:var(--line-soft);color:var(--text-muted);font-size:var(--font-size-sm)}
.gacha-expired-label{color:var(--danger);font-size:var(--font-size-xs);font-weight:600}
.gacha-pull-10-expiry{margin-top:2px;font-size:9px;color:var(--text-subtle)}

/* ====== 喜报 ====== */
.gacha-good-news{display:flex;align-items:center;gap:10px;margin:0;padding:0 14px;min-height:44px;border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden}
.gacha-good-news-label{flex:0 0 auto;padding:2px 9px;border-radius:999px;background:var(--danger-soft);color:var(--danger);font-size:var(--font-size-xxs);font-weight:700;white-space:nowrap}
.gacha-good-news-viewport{flex:1;overflow:hidden;min-width:0}
.gacha-good-news-track{display:flex;gap:48px;width:max-content;animation:gacha-news-scroll 40s linear infinite}
.gacha-good-news:hover .gacha-good-news-track{animation-play-state:paused}
.gacha-good-news-item{display:inline-flex;align-items:center;gap:0;font-size:var(--font-size-sm);color:var(--text-muted);white-space:nowrap}
.gacha-good-news-item b{color:var(--text);font-weight:600}
.gacha-good-news-item em{font-style:normal;color:var(--danger);font-weight:600}
@keyframes gacha-news-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ====== 我的称号 ====== */
.gacha-page{display:grid;gap:14px}
.gacha-page>*{min-width:0}
.gacha-page-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}
.gacha-tabs{display:flex;gap:6px;margin:14px 0 4px;padding:4px;background:var(--bg-soft,#f3f4f6);border:1px solid var(--border,#e5e7eb);border-radius:10px;width:max-content;max-width:100%}
.gacha-tab{display:inline-flex;align-items:center;padding:7px 18px;border-radius:8px;font-size:var(--font-size-sm,14px);font-weight:600;color:var(--text-muted,#6b7280);text-decoration:none;transition:background .15s,color .15s}
.gacha-tab:hover{color:var(--text,#1f2937);background:rgba(0,0,0,.04)}
.gacha-tab.is-active{background:var(--primary,#2563eb);color:#fff;box-shadow:0 1px 4px rgba(37,99,235,.28)}
.fl-seal-state{margin-left:6px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--bg-soft,#f3f4f6);color:var(--text-muted,#6b7280)}
.fl-seal-state.is-ok{background:#dcfce7;color:#15803d}
.fl-seal-state.is-wait{background:#fef3c7;color:#b45309}
.fl-seal-state.is-rej{background:#fee2e2;color:#b91c1c}
.fl-seal-preview{display:flex;align-items:center;min-height:72px;margin:10px 0}
.gacha-page-head h1{margin:0;font-size:var(--font-size-xl);font-weight:700;color:var(--text)}
.gacha-page-head p{margin:4px 0 0;font-size:var(--font-size-xs);color:var(--text-muted)}
.gacha-page-head-count{font-size:var(--font-size-xs);color:var(--text-subtle)}
.gacha-titles-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}

/* 横向卡片：右侧入口 */
.gacha-banner{display:flex;flex-direction:row;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}
.gacha-banner:hover{border-color:var(--brand);box-shadow:0 1px 6px var(--shadow-base)}
.gacha-banner-icon{flex:0 0 auto;font-size:26px;line-height:1}
.gacha-banner-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.gacha-banner-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text)}
.gacha-banner-sub{font-size:var(--font-size-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gacha-banner-cta{flex:0 0 auto;padding:5px 16px;border:1px solid var(--brand);border-radius:999px;background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-xs);font-weight:600;white-space:nowrap;transition:background .12s ease,border-color .12s ease}
.gacha-banner:hover .gacha-banner-cta{background:var(--brand-hover);border-color:var(--brand-hover)}

/* ====== 响应式 ====== */
@media(max-width:600px){
    .gacha-profile-grid{grid-template-columns:repeat(2,1fr)}
    .gacha-pool-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
    .gacha-settings-fields{grid-template-columns:1fr}
    .gacha-page{gap:10px}
    .gacha-titles-card{padding:12px}
    .gacha-profile-grid{gap:10px}
    .gacha-page-head h1{font-size:var(--font-size-lg)}
    .post-list .gacha-profile-titles,.gacha-header+.gacha-profile-titles{padding:12px}
    .gacha-draw-card{padding:16px 14px}
    .gacha-block{padding:12px}
    .gacha-pull-btn{min-height:44px;font-size:var(--font-size-sm)}
}.like-coin-form{display:inline-flex}.like-coin-form .like-coin-action.active{color:var(--text-muted);opacity:.55}.like-coin-form .like-coin-action.active:hover{color:var(--text-muted);opacity:.55}.like-coin-form .like-coin-action[data-like-coin-self="1"]{cursor:default}.like-coin-icon{width:14px;height:14px;flex:0 0 14px}.like-coin-icon path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}.like-coin-action.active .like-coin-icon path{fill:currentColor}.like-coin-gate-unlocked-note{display:flex;align-items:center;gap:6px;margin:0 0 8px;color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.45}.like-coin-gate-unlocked-note:before{content:"点赞投币";padding:2px 5px;border:1px solid var(--line-soft);border-radius:3px;background:var(--bg);color:var(--brand);font-size:10px;font-weight:700;line-height:1.25}.like-coin-dialog{display:grid;gap:14px}.like-coin-dialog p{margin:0;color:var(--text);font-size:var(--font-size-lg);line-height:1.65}.like-coin-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.like-coin-option{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:var(--font-size-md)}.like-coin-option input{width:18px;height:18px;flex:0 0 18px;margin:0;accent-color:var(--brand)}.like-coin-option span{min-width:0;overflow-wrap:anywhere}.like-coin-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.like-coin-dialog-actions button{margin:0}.like-coin-likes-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;margin:10px 0}.like-coin-likes-head h1{margin:0;font-size:var(--font-size-lg);font-weight:700;letter-spacing:-.01em;color:var(--text)}.like-coin-likes-total{color:var(--text-subtle);font-size:var(--font-size-sm);font-weight:400}@media(max-width:560px){.like-coin-options{grid-template-columns:1fr}}.like-coin-note-field{display:grid;gap:6px}.like-coin-note-field span{color:var(--text-muted);font-size:var(--font-size-sm)}.like-coin-note-field input,.like-coin-note-field select{width:100%;box-sizing:border-box;margin:0;padding:8px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:var(--font-size-md);line-height:1.5}.like-coin-note-field input:focus,.like-coin-note-field select:focus{border-color:var(--brand);outline:none}.like-coin-reviews{margin:10px 0;padding:8px 16px;border:1px solid var(--line-soft); border-radius:var(--radius); display:grid;gap:6px}.like-coin-reviews-head{display:flex;align-items:center;gap:6px;color:var(--text-subtle);font-size:var(--font-size-xs);font-weight:600}.like-coin-reviews-count{min-width:16px;padding:0 5px;border-radius:999px;background:var(--line-soft);color:var(--text-muted);font-size:var(--font-size-xxs);font-weight:700;line-height:16px;text-align:center}.like-coin-review-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.like-coin-review{display:flex;align-items:flex-start;gap:8px;min-width:0}.like-coin-review .avatar-profile-link{flex:0 0 24px;width:24px;height:24px;border-radius:50%;overflow:hidden}.like-coin-review .avatar-img{width:24px;height:24px;max-width:none;object-fit:cover;border-radius:50%}.like-coin-review-main{display:grid;gap:2px;min-width:0}.like-coin-review-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.like-coin-review-name{color:var(--text);font-size:var(--font-size-xs);font-weight:600;text-decoration:none;overflow-wrap:anywhere}.like-coin-review-name:hover{color:var(--brand)}.like-coin-review-time{margin-left:auto;color:var(--text-subtle);font-size:var(--font-size-xxs)}.like-coin-review-score{display:inline-flex;align-items:center;gap:2px;padding:0 6px;border:1px solid var(--line-soft);border-radius:999px;background:var(--bg);color:var(--brand);font-size:var(--font-size-xxs);font-weight:700;line-height:1.5}.like-coin-review-score .like-coin-icon{width:10px;height:10px;flex:0 0 10px}.like-coin-review-score .like-coin-icon path{fill:currentColor}.like-coin-review-score.is-penalty{color:var(--danger)}.like-coin-review-note{min-width:0;color:var(--text);font-size:var(--font-size-sm);line-height:1.5;overflow-wrap:anywhere}.like-coin-review.is-self .like-coin-review-name{color:var(--brand)}.like-coin-review-self{padding:0 5px;border:1px solid var(--line-soft);border-radius:999px;background:var(--bg);color:var(--brand);font-size:var(--font-size-xxs);font-weight:700;line-height:1.4}.like-coin-admin+.like-coin-admin{margin-top:14px}.like-coin-admin .plugin-panel-body{display:grid;gap:12px}.like-coin-admin-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.like-coin-admin-filter input,.like-coin-admin-filter select{min-height:34px;max-width:220px;padding:5px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.like-coin-admin-filter input:focus-visible,.like-coin-admin-filter select:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.like-coin-admin-inline-form{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;padding:12px;border:1px dashed var(--line-soft);border-radius:var(--radius);background:var(--bg)}.like-coin-admin-field{display:grid;gap:5px;color:var(--text-muted);font-size:var(--font-size-sm)}.like-coin-admin-field input{min-height:34px;padding:5px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-md);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.like-coin-admin-field input:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.like-coin-admin-field small{color:var(--text-subtle);font-size:var(--font-size-xxs)}.like-coin-admin-form-actions{flex:0 0 100%}.like-coin-admin-wrap{overflow-x:auto;border:1px solid var(--line-soft);border-radius:var(--radius)}table.like-coin-admin-table{width:100%;min-width:680px;border-collapse:collapse;font-size:var(--font-size-sm)}.like-coin-admin-table th{padding:9px 12px;background:var(--bg);color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:700;letter-spacing:.05em;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line-soft)}.like-coin-admin-table td{padding:10px 12px;border-bottom:1px solid var(--line-soft);vertical-align:top}.like-coin-admin-table tbody tr{transition:background var(--transition-normal)}.like-coin-admin-table tbody tr:hover{background:color-mix(in srgb,var(--brand) 4%,transparent)}.like-coin-admin-table tbody tr:last-child td{border-bottom:0}.like-coin-admin-check{width:52px;text-align:center}.like-coin-admin-user{display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap}.like-coin-admin-user .avatar-profile-link{flex:0 0 22px;width:22px;height:22px;border-radius:50%;overflow:hidden;display:inline-block}.like-coin-admin-user .avatar-img{width:22px;height:22px;max-width:none;object-fit:cover;border-radius:50%}.like-coin-admin-user a{color:var(--text);font-weight:600;text-decoration:none}.like-coin-admin-user a:hover{color:var(--brand)}.like-coin-admin-deleted{color:var(--text-disabled)}.like-coin-admin-time{white-space:nowrap}.like-coin-admin-time span{display:block;color:var(--text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.like-coin-admin-time small{display:block;color:var(--text-subtle);font-size:var(--font-size-xxs)}.like-coin-admin-badge,.like-coin-admin-state{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:var(--font-size-xxs);font-weight:700;line-height:1.6;white-space:nowrap;background:var(--line-soft);color:var(--text-muted)}.like-coin-admin-badge.is-coin{background:var(--warning-soft);color:var(--warning)}.like-coin-admin-badge.is-penalty{background:var(--danger-soft);color:var(--danger)}.like-coin-admin-badge.is-like{background:var(--brand-soft);color:var(--brand)}.like-coin-admin-state.is-permanent,.like-coin-admin-state.is-active{background:var(--danger-soft);color:var(--danger)}.like-coin-admin-state.is-expired{background:var(--line-soft);color:var(--text-subtle)}.like-coin-admin-note{min-width:180px;max-width:380px}.like-coin-admin-note-text{color:var(--text);line-height:1.55;overflow-wrap:anywhere}.like-coin-admin-muted{color:var(--text-disabled);font-size:var(--font-size-xxs);margin-left:4px}.like-coin-admin-place{display:flex;flex-direction:column;gap:3px;min-width:0}.like-coin-admin-target{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);text-decoration:none}.like-coin-admin-target:hover{color:var(--brand)}.like-coin-admin-floor{align-self:flex-start;padding:1px 7px;border-radius:999px;background:var(--bg);border:1px solid var(--line-soft);color:var(--text-subtle);font-size:var(--font-size-xxs);white-space:nowrap}.like-coin-admin-actions{white-space:nowrap}.like-coin-admin-batch{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line-soft)}.like-coin-admin-batch .like-coin-admin-muted{margin-left:0;font-size:var(--font-size-xs)}.like-coin-admin-empty{padding:26px;text-align:center;color:var(--text-subtle);font-size:var(--font-size-sm);border:1px dashed var(--line-soft);border-radius:var(--radius);background:var(--bg)}.like-coin-admin .plugin-settings-form .grid>input[type=checkbox],.like-coin-admin .forum-group-checks input[type=checkbox],.like-coin-admin .like-coin-admin-table input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;width:44px;height:24px;margin:0;border:1px solid var(--line);border-radius:999px;background:var(--bg);cursor:pointer;transition:background var(--transition-normal),border-color var(--transition-normal);vertical-align:middle}.like-coin-admin .plugin-settings-form .grid>input[type=checkbox]::after,.like-coin-admin .forum-group-checks input[type=checkbox]::after,.like-coin-admin .like-coin-admin-table input[type=checkbox]::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--text-disabled);transition:transform var(--transition-normal),background var(--transition-normal)}.like-coin-admin .plugin-settings-form .grid>input[type=checkbox]:checked,.like-coin-admin .forum-group-checks input[type=checkbox]:checked,.like-coin-admin .like-coin-admin-table input[type=checkbox]:checked{background:var(--brand);border-color:var(--brand)}.like-coin-admin .plugin-settings-form .grid>input[type=checkbox]:checked::after,.like-coin-admin .forum-group-checks input[type=checkbox]:checked::after,.like-coin-admin .like-coin-admin-table input[type=checkbox]:checked::after{transform:translateX(20px);background:var(--inverse-text)}.like-coin-admin .plugin-settings-form .grid>input[type=checkbox]:focus-visible,.like-coin-admin .forum-group-checks input[type=checkbox]:focus-visible,.like-coin-admin .like-coin-admin-table input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--brand-soft)}@media(max-width:720px){.like-coin-admin-filter input,.like-coin-admin-filter select{flex:1 1 46%;max-width:none}.like-coin-admin-field{flex:1 1 100%}.like-coin-admin-note{max-width:240px}.like-coin-admin-target{max-width:160px}}@media(max-width:640px){.like-coin-admin .plugin-settings-form .grid>input:not([type=checkbox]),.like-coin-admin .plugin-settings-form .grid>textarea,.like-coin-admin .plugin-settings-form .grid>select{min-height:44px}.like-coin-admin .plugin-settings-form>button,.like-coin-admin-filter button,.like-coin-admin-inline-form>button,.like-coin-admin-batch .btn{min-height:44px}.like-coin-admin-inline-form button,.like-coin-admin .plugin-settings-form>button{width:100%}.like-coin-admin-wrap{border:0;overflow:visible}table.like-coin-admin-table{display:block;min-width:0}.like-coin-admin-table thead{display:none}.like-coin-admin-table tbody tr{display:block;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg);padding:10px 12px;margin-bottom:10px}.like-coin-admin-table tbody tr:last-child{margin-bottom:0}.like-coin-admin-table tbody tr:hover{background:var(--bg)}.like-coin-admin-table td{display:flex;align-items:flex-start;gap:10px;padding:4px 0;border:0}.like-coin-admin-table td[data-label]::before{content:attr(data-label);flex:0 0 52px;color:var(--text-subtle);font-size:var(--font-size-xxs);font-weight:700;line-height:2}.like-coin-admin-table td.like-coin-admin-check{display:block;padding:0 0 8px;border-bottom:1px dashed var(--line-soft);margin-bottom:4px}.like-coin-admin-table td.like-coin-admin-time span{display:inline}.like-coin-admin-table td.like-coin-admin-time small{display:inline;margin-left:6px}.like-coin-admin-note{max-width:none;min-width:0}.like-coin-admin-target{max-width:none;white-space:normal;overflow:visible;text-overflow:clip}.like-coin-admin-time{white-space:normal}}.card-redeem-page{display:flex;flex-direction:column;gap:1rem}
.card-redeem-panel{background:var(--panel,#fff);border:1px solid var(--line,rgba(120,120,140,.25));border-radius:12px;padding:1rem 1.1rem}
.card-redeem-panel h2{margin:0 0 .8rem;font-size:var(--font-size-lg,16px)}
.card-redeem-input-row{display:flex;gap:.5rem;flex-wrap:wrap}
.card-redeem-input-row input[name="code"]{flex:1;min-width:200px;padding:.55rem .75rem;border:1px solid var(--line,rgba(120,120,140,.35));border-radius:9px;font-size:var(--font-size-md,14px);letter-spacing:.08em;text-transform:uppercase}
.card-redeem-submit{padding:.55rem 1.2rem;border:none;border-radius:9px;background:var(--brand,#3b82f6);color:var(--inverse-text,#fff);font-size:var(--font-size-md,14px);cursor:pointer}
.card-redeem-submit:disabled{opacity:.6;cursor:wait}
.card-redeem-result{margin-top:.7rem;padding:.6rem .8rem;border-radius:9px;font-size:var(--font-size-sm,12px);border:1px solid transparent}
.card-redeem-result.is-ok{background:var(--success-soft,rgba(40,167,69,.12));border-color:var(--success,rgba(40,167,69,.4))}
.card-redeem-result.is-bad{background:var(--danger-soft,rgba(220,53,69,.1));border-color:var(--danger,rgba(220,53,69,.35))}
.card-redeem-rules{margin:.8rem 0 0;padding-left:1.2rem;color:var(--text-muted,#8b8b98);font-size:var(--font-size-xs,11px);line-height:1.7}
.card-redeem-record{display:flex;justify-content:space-between;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line-soft,rgba(120,120,140,.15));flex-wrap:wrap}
.card-redeem-record-code{font-weight:600;letter-spacing:.06em;margin-right:.5rem}
.card-redeem-record-batch{color:var(--text-muted,#8b8b98);font-size:var(--font-size-xs,11px)}
.card-redeem-record-side{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;font-size:var(--font-size-xs,11px);color:var(--text-muted,#8b8b98)}
.card-redeem-record-rewards{color:var(--brand,#3b82f6)}
.card-redeem-admin{display:flex;flex-direction:column;gap:1rem}
.card-redeem-flash{background:var(--success-soft,rgba(40,167,69,.12));border:1px solid var(--success,rgba(40,167,69,.4));border-radius:9px;padding:.55rem .8rem;font-size:var(--font-size-sm,12px)}
.card-redeem-tabs{display:flex;gap:.4rem;flex-wrap:wrap}
.card-redeem-tab{padding:.35rem .8rem;border-radius:8px;border:1px solid var(--line,rgba(120,120,140,.25));font-size:var(--font-size-sm,12px);text-decoration:none;color:var(--text,#333)}
.card-redeem-tab.is-active{background:var(--brand-soft,rgba(59,130,246,.12));border-color:var(--brand,#3b82f6);color:var(--brand,#3b82f6)}
.card-redeem-admin-section{background:var(--panel,#fff);border:1px solid var(--line,rgba(120,120,140,.25));border-radius:12px;padding:.9rem 1rem}
.card-redeem-admin-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.7rem}
.card-redeem-admin-head strong{font-size:var(--font-size-md,14px)}
.card-redeem-envs{display:flex;gap:.7rem;flex-wrap:wrap;font-size:var(--font-size-xs,11px)}
.card-redeem-env.is-ok{color:var(--success,#28a745)}
.card-redeem-env.is-bad{color:var(--danger,#dc3545)}
.card-redeem-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem}
.card-redeem-grid label{display:flex;flex-direction:column;gap:.25rem;font-size:var(--font-size-xs,11px);color:var(--text-muted,#8b8b98)}
.card-redeem-grid input,.card-redeem-grid select{padding:.45rem .6rem;border:1px solid var(--line,rgba(120,120,140,.35));border-radius:8px;font-size:var(--font-size-sm,12px)}
.card-redeem-fieldset{margin-top:.8rem;border:1px dashed var(--line,rgba(120,120,140,.3));border-radius:9px;padding:.7rem}
.card-redeem-fieldset legend{font-size:var(--font-size-xs,11px);color:var(--text-muted,#8b8b98);padding:0 .4rem}
.card-redeem-reward-row,.card-redeem-rule-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.3rem 0;font-size:var(--font-size-sm,12px)}
.card-redeem-reward-row>label,.card-redeem-rule-row>label{min-width:96px;color:var(--text-muted,#8b8b98);font-size:var(--font-size-xs,11px)}
.card-redeem-reward-row input,.card-redeem-reward-row select,.card-redeem-rule-row select,.card-redeem-rule-row input{padding:.35rem .55rem;border:1px solid var(--line,rgba(120,120,140,.35));border-radius:7px;font-size:var(--font-size-sm,12px)}
.card-redeem-group-checks{display:flex;gap:.5rem .9rem;flex-wrap:wrap}
.card-redeem-check{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--font-size-xs,11px)}
/* 卡密生成表单：奖励行启用语义 + 响应式网格（v4.0.2） */
.card-redeem-rewards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:.3rem .8rem;margin-top:.2rem}
.card-redeem-reward-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;padding:.45rem .55rem;border:1px solid transparent;border-radius:9px;transition:background .15s,border-color .15s}
.card-redeem-reward-row.is-on{background:var(--brand-soft,rgba(59,130,246,.07));border-color:var(--line,rgba(120,120,140,.25))}
.card-redeem-reward-row:not(.is-on){opacity:.72}
.card-redeem-reward-row>label.card-redeem-reward-toggle{display:inline-flex;align-items:center;gap:.35rem;min-width:0;flex:0 0 auto;cursor:pointer;font-size:var(--font-size-sm,12px);color:var(--text,#3f3f4a);font-weight:600}
.card-redeem-reward-row>label.card-redeem-reward-toggle input[type="checkbox"]{width:18px;height:18px;padding:0;border:none;accent-color:var(--brand,#3b82f6);flex:none}
.card-redeem-reward-row .card-redeem-reward-value{flex:1 1 110px;min-width:100px;max-width:170px}
.card-redeem-reward-row .card-redeem-reward-value:disabled{opacity:.5;cursor:not-allowed;background:var(--panel,rgba(127,127,127,.06))}
.card-redeem-reward-tip{flex:1 1 100%;font-size:var(--font-size-xxs,10px);color:var(--text-subtle,#a0a0ab);line-height:1.4}
.card-redeem-foot-sep{flex:1 0 0;border-left:1px solid var(--line,rgba(120,120,140,.25));height:20px}
@media (max-width:640px){.card-redeem-rewards-grid{grid-template-columns:1fr}.card-redeem-form-foot .card-redeem-foot-sep{display:none}.card-redeem-template-name{width:100%}}
/* 商城 v4.0.3：列表排序行 + 订单备注（对标主流电商流程） */
.forum-level-market-sort-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:2px 0 10px}
.forum-level-market-sort{padding:4px 12px;border:1px solid var(--line-soft,#eef2f6);border-radius:999px;font-size:var(--font-size-xs,11px);color:var(--text-muted,#64748b);text-decoration:none;background:var(--panel,#fff)}
.forum-level-market-sort:hover{border-color:var(--brand,#3b82f6);color:var(--brand,#3b82f6)}
.forum-level-market-sort.is-active{border-color:var(--brand,#3b82f6);color:var(--brand,#3b82f6);background:var(--brand-soft,rgba(59,130,246,.1));font-weight:600}
.forum-level-market-order-note{display:flex;flex-direction:column;gap:4px;font-size:var(--font-size-sm,12px);color:var(--text-muted,#64748b);margin:10px 0}
.forum-level-market-order-note textarea{padding:8px 10px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:var(--font-size-sm,12px);resize:vertical;min-height:44px}
.forum-level-market-order-block button[data-fl-copy]{flex:0 0 auto}
/* 订单操作区：分组标题 + 操作卡强调（v4.2.0） */
.forum-level-market-ops-title{font-weight:700;font-size:var(--font-size-md,13px);color:var(--text,#374151);margin:18px 0 4px;padding:8px 12px;background:#f8fafc;border-left:3px solid var(--brand,#1f883d);border-radius:6px}
/* 商品监察行（管理后台）：名称/状态/操作分行对齐，表单不再挤压错位（v4.2.2） */
.forum-level-market-admin-row .forum-level-market-order-body{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px 14px}
.forum-level-market-admin-row .forum-level-market-order-body>b{flex:1 1 200px;min-width:0;overflow-wrap:anywhere}
.forum-level-market-admin-row .forum-level-market-order-body>span{font-size:var(--font-size-xs,11.5px);color:var(--text-muted,#64748b)}
.forum-level-market-admin-row .forum-level-market-order-body>form{display:inline-flex;align-items:center;gap:6px;margin:0;flex:1 1 320px;min-width:0}
.forum-level-market-admin-row .forum-level-market-order-body>form input[name="reason"]{flex:1 1 140px;min-width:120px;padding:7px 10px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:var(--font-size-sm,12px);box-sizing:border-box}
.forum-level-market-admin-row .forum-level-market-order-body>form button,.forum-level-market-admin-row .forum-level-market-order-body>a,.forum-level-market-admin-row .forum-level-market-order-body>form>button{white-space:nowrap}
.forum-level-market-takeover{border:1px solid var(--line,#e2e8f0);border-radius:10px;padding:12px 14px;background:#fff}
.forum-level-market-page details{background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.05)}
.forum-level-market-page details[open]{padding:0 0 12px}
/* SKU 规格编辑器：chips 交互（v4.0.8） */
.fl-specs-form .fl-spec-row{border:1px solid var(--line,#e2e8f0);border-radius:10px;padding:10px 12px;margin:0 0 10px;background:var(--panel,#fff)}
.fl-specs-form .fl-spec-head{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.fl-specs-form .fl-spec-head .fl-spec-name{flex:1;max-width:260px;padding:7px 10px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:var(--font-size-sm,12px)}
.fl-specs-form .fl-spec-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.fl-specs-form .fl-spec-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 8px 4px 11px;border:1px solid var(--brand,#1f883d);border-radius:999px;background:var(--brand-soft,#eefaf3);color:var(--brand,#1f883d);font-size:var(--font-size-sm,12px);font-weight:600}
.fl-specs-form .fl-spec-chip .fl-spec-chip-x{border:0;background:transparent;color:inherit;cursor:pointer;font-size:13px;line-height:1;padding:0 2px;opacity:.7}
.fl-specs-form .fl-spec-chip .fl-spec-chip-x:hover{opacity:1}
.fl-specs-form .fl-spec-addwrap{display:inline-flex;gap:5px;align-items:center}
.fl-specs-form .fl-spec-add-input{width:130px;padding:6px 10px;border:1px dashed var(--line,#cbd5e1);border-radius:8px;font-size:var(--font-size-sm,12px)}
.fl-specs-form .fl-spec-add-input:focus{border-style:solid;border-color:var(--brand,#1f883d);outline:none}
.fl-sku-table-wrap .fl-sku-table{display:grid;gap:6px;min-width:760px}
.fl-sku-thead,.fl-sku-trow{display:grid;grid-template-columns:minmax(120px,1fr) 80px 80px 90px minmax(120px,1fr) 60px 80px;gap:6px;align-items:center}
.fl-sku-thead.has-group,.fl-sku-trow{grid-template-columns:minmax(120px,1fr) 80px 80px 90px minmax(120px,1fr) 60px 80px minmax(100px,0.8fr) 60px}
.fl-sku-thead{font-size:var(--font-size-xs,11px);color:var(--text-muted,#64748b);font-weight:600}
.fl-sku-trow{padding:6px 8px;border:1px solid var(--line-soft,#eef2f6);border-radius:9px;background:var(--panel,#fff)}
.fl-sku-trow input,.fl-sku-trow select{padding:5px 8px;border:1px solid var(--line,#e2e8f0);border-radius:7px;font-size:var(--font-size-xs,11px);max-width:100%;box-sizing:border-box}
.fl-sku-trow .fl-sku-adlbl{display:inline-flex;gap:4px;align-items:center;font-size:var(--font-size-xs,11px);white-space:nowrap}
.fl-sku-table-wrap{overflow-x:auto}
/* 卖家中心 */
.forum-level-market-userbar.is-seller-bar{border-left:3px solid var(--brand,#1f883d)}
.forum-level-market-entry.is-seller{font-weight:700;color:var(--brand,#1f883d);border:1px dashed var(--brand,#1f883d);border-radius:8px;padding:4px 12px}
/* ===== 活动发布/列表 UI（v4.1.0） ===== */
.event-rsvp-toolbar .event-rsvp-btn-primary{margin-left:auto;background:var(--brand,#1f883d);color:#fff;border:none;padding:9px 22px;border-radius:9px;font-size:var(--font-size-md,14px);font-weight:700;box-shadow:0 2px 8px var(--focus-halo,rgba(31,136,61,.25));text-decoration:none;white-space:nowrap}
.event-rsvp-toolbar .event-rsvp-btn-primary:hover{opacity:.9}
.event-rsvp-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.event-rsvp-toolbar .plugin-tabs{flex:1;min-width:0}
.event-rsvp-quick{margin-bottom:4px;padding:7px 10px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:var(--font-size-sm,12px);background:var(--panel,#fff)}
.event-rsvp-advanced{border:1px solid var(--line-soft,#eef2f6);border-radius:10px;margin:12px 0;overflow:hidden;background:var(--panel,#fff)}
.event-rsvp-advanced summary{list-style:none;cursor:pointer;padding:11px 14px;font-size:var(--font-size-sm,12px);font-weight:600;color:var(--brand,#1f883d);background:var(--bg,#fafbfc);user-select:none}
.event-rsvp-advanced summary::-webkit-details-marker{display:none}
.event-rsvp-advanced summary::before{content:"+ "}
.event-rsvp-advanced[open] summary::before{content:"− "}
.event-rsvp-advanced[open] summary{border-bottom:1px dashed var(--line-soft,#eef2f6)}
.event-rsvp-advanced>*:not(summary){padding:0 14px}
.event-rsvp-advanced .event-rsvp-field{margin:12px 0}
.event-rsvp-tpl-btns{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 2px}
.avatar-picker .avatar-picker-head{flex-wrap:wrap;row-gap:8px}
.avatar-picker .avatar-picker-head select[name="avatar_style"]{flex:1 1 auto;min-width:0}
.avatar-picker-head .forum-level-avatar-actions{display:inline-flex;gap:8px;align-items:center;flex:none}
.avatar-picker-head .forum-level-avatar-actions .profile-edit-action{margin-left:0;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;padding:7px 14px;border-radius:8px;border:1px solid var(--line,#e2e8f0);background:var(--panel,#fff);color:var(--text,#3f3f4a);font-size:var(--font-size-sm,12px);text-decoration:none;cursor:pointer}
.avatar-picker-head .forum-level-avatar-actions .profile-edit-action:hover{border-color:var(--brand,#1f883d);color:var(--brand,#1f883d)}
/* ===== 订单详情页样式补全（v4.0.9）：表单控件 / 折叠卡 / 文本层次 / 按钮统一 ===== */
.forum-level-market-order-head{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 10px}
.forum-level-market-order-head h2{margin:0;font-size:var(--font-size-lg,16px)}
.forum-level-market-order-state{padding:4px 12px;border-radius:999px;font-size:var(--font-size-xs,11px);font-weight:700;border:1px solid var(--line,#e2e8f0);background:var(--bg,#f6f8fa);color:var(--text-muted,#64748b);white-space:nowrap}
.forum-level-market-order-state.is-pending{background:#fff7e6;border-color:#ffd591;color:#d48806}
.forum-level-market-order-state.is-done{background:#f0f9eb;border-color:#b7eb8f;color:#389e0d}
.forum-level-market-order-state.is-refund{background:#fff1f0;border-color:#ffa39e;color:#cf1322}
.forum-level-market-order-meta{color:var(--text-muted,#64748b);font-size:var(--font-size-xs,11px);margin:8px 0 0}
.forum-level-market-order-block{padding:12px 0;border-bottom:1px solid var(--line-soft,#eef2f6)}
.forum-level-market-order-block h3,.forum-level-market-order-page h3{margin:0 0 6px;font-size:var(--font-size-md,13px);color:var(--text,#3f3f4a)}
.forum-level-market-order-block p{margin:0 0 4px;font-size:var(--font-size-sm,12px);line-height:1.65;color:var(--text,#3f3f4a)}
.forum-level-market-page details{border:1px solid var(--line-soft,#eef2f6);border-radius:10px;background:var(--panel,#fff);padding:0;margin:10px 0;overflow:hidden}
.forum-level-market-page details summary{list-style:none;cursor:pointer;padding:10px 14px;font-size:var(--font-size-sm,12px);font-weight:600;color:var(--brand,#1f883d);background:var(--bg,#fafbfc);user-select:none}
.forum-level-market-page details summary::-webkit-details-marker{display:none}
.forum-level-market-page details summary::before{content:"+ ";font-weight:700}
.forum-level-market-page details[open] summary::before{content:"− "}
.forum-level-market-page details[open] summary{border-bottom:1px dashed var(--line-soft,#eef2f6)}
.forum-level-market-page details>*:not(summary){margin:10px 14px}
.forum-level-market-order-action{display:flex;flex-direction:column;gap:10px;align-items:stretch;margin:0}
.forum-level-market-order-action label{display:flex;flex-direction:column;gap:4px;font-size:var(--font-size-xs,11px);color:var(--text-muted,#64748b)}
.forum-level-market-order-action label input,.forum-level-market-order-action label select{padding:8px 10px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:var(--font-size-sm,12px);background:var(--panel,#fff);color:var(--text,#3f3f4a);max-width:420px;box-sizing:border-box}
.forum-level-market-order-action label textarea{padding:8px 10px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:var(--font-size-sm,12px);min-height:64px;resize:vertical;background:var(--panel,#fff);color:var(--text,#3f3f4a);font-family:inherit}
.forum-level-market-order-action label input:focus,.forum-level-market-order-action label select:focus,.forum-level-market-order-action label textarea:focus{border-color:var(--brand,#1f883d);outline:none}
.forum-level-market-order-action .forum-level-market-btn{align-self:flex-start;min-width:140px}
.forum-level-market-order-action .forum-level-market-btn.jd-primary{background:var(--brand,#1f883d);color:#fff;border:none}
.forum-level-market-order-action .forum-level-market-btn.is-ghost,.forum-level-market-btn.is-ghost{background:transparent;border:1px solid var(--line,#e2e8f0);color:var(--text-muted,#64748b)}
.forum-level-market-page .forum-level-market-btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 18px;border-radius:8px;border:1px solid transparent;font-size:var(--font-size-sm,12px);font-weight:600;cursor:pointer;background:var(--bg,#f6f8fa);color:var(--text,#3f3f4a);text-decoration:none;transition:opacity .15s}
.forum-level-market-page .forum-level-market-btn:hover{opacity:.85}
.forum-level-market-page .forum-level-market-btn.jd-primary{background:var(--brand,#1f883d);color:#fff}
.forum-level-market-page .forum-level-market-btn.is-ghost{background:transparent;border-color:var(--line,#e2e8f0)}
.forum-level-market-flow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.forum-level-market-flow span{padding:5px 14px;border-radius:999px;font-size:var(--font-size-xs,11px);background:var(--bg,#f6f8fa);color:var(--text-muted,#64748b);border:1px solid var(--line-soft,#eef2f6)}
.forum-level-market-flow span.is-pass{background:#f0f9eb;border-color:#b7eb8f;color:#389e0d}
.forum-level-market-flow span.is-cur{background:#e6f4ff;border-color:#91caff;color:#0958d9;font-weight:700}
.forum-level-market-delivery{white-space:pre-wrap;font-size:var(--font-size-sm,12px);background:var(--bg,#fafbfc);border:1px dashed var(--line,#e2e8f0);border-radius:8px;padding:10px 12px;margin:0;font-family:inherit}
.forum-level-market-order-note{margin:10px 0}
.forum-level-market-order-note textarea{width:100%;max-width:560px}
.forum-level-market-order-main{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--line-soft,#eef2f6)}
.forum-level-market-order-main h3{margin:0 0 4px;font-size:var(--font-size-md,13px)}
.forum-level-market-order-main p{margin:0;font-size:var(--font-size-xs,11px);color:var(--text-muted,#64748b)}
.forum-level-market-order-amount{text-align:right}
.forum-level-market-order-amount b{display:block;font-size:18px;color:var(--brand,#1f883d)}
.forum-level-market-order-amount span{font-size:var(--font-size-xxs,10px);color:var(--text-muted,#64748b)}
.forum-level-market-cards-tip{font-size:var(--font-size-sm,12px);color:var(--text-muted,#64748b)}
.card-redeem-hint{color:var(--text-subtle,#a0a0ab);font-size:var(--font-size-xxs,10px)}
.card-redeem-form-foot{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.8rem}
.card-redeem-template-name{padding:.4rem .6rem;border:1px solid var(--line,rgba(120,120,140,.35));border-radius:8px;font-size:var(--font-size-sm,12px);width:140px}
.card-redeem-primary{padding:.5rem 1.1rem;border:none;border-radius:8px;background:var(--brand,#3b82f6);color:var(--inverse-text,#fff);font-size:var(--font-size-sm,12px);cursor:pointer}
.card-redeem-form-foot button[type="button"]{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:.45rem .8rem;border:1px solid var(--line,#cbd5e1);border-radius:8px;background:var(--panel,#fff);color:var(--text,#333)!important;line-height:1.25;opacity:1;appearance:none;cursor:pointer}
.card-redeem-doc{margin:.8rem 0 0;color:var(--text-subtle,#a0a0ab);font-size:var(--font-size-xs,11px);line-height:1.7}
.card-redeem-batch-row{display:flex;justify-content:space-between;gap:.6rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--line-soft,rgba(120,120,140,.15));flex-wrap:wrap}
.card-redeem-batch-rewards{display:block;font-size:var(--font-size-xs,11px);color:var(--brand,#3b82f6);margin-top:2px}
.card-redeem-batch-main span{display:block;color:var(--text-muted,#8b8b98);font-size:var(--font-size-xs,11px)}
.card-redeem-batch-ops{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;font-size:var(--font-size-xs,11px)}
.card-redeem-batch-ops a{color:var(--brand,#3b82f6);text-decoration:none}
.card-redeem-mini{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:.25rem .55rem;border:1px solid var(--line,#cbd5e1);border-radius:6px;background:var(--panel,#fff);color:var(--text,#333)!important;font-size:var(--font-size-xxs,10px);line-height:1.25;opacity:1;appearance:none;text-decoration:none;cursor:pointer}
.card-redeem-mini:hover{background:var(--brand-soft,rgba(59,130,246,.1));color:var(--brand,#2563eb)!important;border-color:var(--brand,#2563eb)}
.card-redeem-card-code{display:inline-flex;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.card-redeem-card-code .card-redeem-copy{padding:.1rem .4rem}
.card-redeem-danger{color:var(--danger,#dc3545)!important;border-color:var(--danger,#dc3545)}
.card-redeem-cards{display:flex;flex-direction:column;gap:.3rem}
.card-redeem-card-row{display:grid;grid-template-columns:auto auto auto 1fr;gap:.7rem;align-items:center;padding:.35rem .4rem;border-radius:7px;font-size:var(--font-size-xs,11px)}
.card-redeem-card-row:hover{background:var(--brand-soft,rgba(59,130,246,.07))}
.card-redeem-card-code{letter-spacing:.06em}
.card-redeem-card-status{padding:.1rem .4rem;border-radius:5px;background:var(--line-soft,rgba(120,120,140,.15))}
.card-redeem-card-status.is-used{background:var(--success-soft,rgba(40,167,69,.15))}
.card-redeem-card-status.is-frozen,.card-redeem-card-status.is-voided{background:var(--danger-soft,rgba(220,53,69,.12))}
.card-redeem-cards-ops{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.6rem}
.card-redeem-logs{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}
.card-redeem-log-row{display:grid;grid-template-columns:64px 70px 110px 1fr 110px;gap:.5rem;align-items:center;font-size:var(--font-size-xs,11px);padding:.3rem .3rem;border-radius:6px}
.card-redeem-log-row:hover{background:var(--line-soft,rgba(120,120,140,.1))}
.card-redeem-log-type.is-redeem_ok{color:var(--success,#28a745)}
.card-redeem-log-type.is-redeem_fail{color:var(--danger,#dc3545)}
.card-redeem-log-type.is-generated,.card-redeem-log-type.is-admin{color:var(--info,#0d6efd)}
.card-redeem-log-search{display:flex;gap:.5rem;margin:.4rem 0}
.card-redeem-log-search input{padding:.35rem .6rem;border:1px solid var(--line,rgba(120,120,140,.35));border-radius:7px;font-size:var(--font-size-sm,12px);min-width:220px}
.card-redeem-log-search button{padding:.35rem .8rem;border:none;border-radius:7px;background:var(--brand,#3b82f6);color:var(--inverse-text,#fff);font-size:var(--font-size-sm,12px);cursor:pointer}
.card-redeem-template-row{display:flex;align-items:center;gap:.8rem;padding:.4rem 0;border-bottom:1px solid var(--line-soft,rgba(120,120,140,.12));font-size:var(--font-size-sm,12px)}
.card-redeem-template-row span{color:var(--text-muted,#8b8b98);font-size:var(--font-size-xs,11px);flex:1}
@media (max-width:640px){.card-redeem-log-row{grid-template-columns:56px 64px 1fr}.card-redeem-log-ip,.card-redeem-log-user{display:none}.card-redeem-card-row{grid-template-columns:auto 1fr auto}.card-redeem-card-meta{display:none}}.event-rsvp-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.event-rsvp-cat-tabs{margin:0 0 10px}
.event-rsvp-top-entry{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;color:var(--text-muted);font-size:var(--font-size-sm);white-space:nowrap}
.event-rsvp-top-entry:hover{background:var(--line-soft);color:var(--brand)}
.event-rsvp-notice{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:10px 14px;border-radius:var(--radius);background:var(--bg);color:var(--text-muted);font-size:var(--font-size-sm)}
.event-rsvp-status{display:inline-flex;margin-right:8px;padding:1px 8px;border-radius:999px;font-size:var(--font-size-xxs);vertical-align:middle;background:var(--line-soft);color:var(--text-muted)}
.event-rsvp-status.is-open{background:var(--success-soft);color:var(--success)}
.event-rsvp-status.is-done{background:var(--line-soft);color:var(--text-subtle)}
.event-rsvp-status.is-cancelled{background:var(--danger-soft);color:var(--danger)}
.event-rsvp-status.is-draft{background:var(--warning-soft);color:var(--warning)}
.event-rsvp-cat{display:inline-flex;margin-right:8px;padding:1px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xxs);vertical-align:middle}
.event-rsvp-my{display:inline-flex;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:var(--font-size-xxs);background:var(--line-soft);color:var(--text-muted)}
.event-rsvp-my.is-ok{background:var(--brand-soft);color:var(--brand)}
.event-rsvp-my.is-wait{background:var(--warning-soft);color:var(--warning)}
.event-rsvp-my.is-checked{background:var(--success-soft);color:var(--success)}
.event-rsvp-my.is-review{background:var(--info-soft);color:var(--info)}
.event-rsvp-my.is-rejected{background:var(--danger-soft);color:var(--danger)}
.event-rsvp-my.is-draft{background:var(--warning-soft);color:var(--warning)}
.event-rsvp-hint{margin-left:8px;color:var(--text-subtle);font-size:var(--font-size-xs)}
.event-rsvp-fee{margin-left:8px;padding:1px 8px;border-radius:999px;background:var(--warning-soft);color:var(--warning);font-size:var(--font-size-xxs)}
.event-rsvp-fee.is-free{background:var(--line-soft);color:var(--text-muted)}
.event-rsvp-countdown{margin-left:8px;color:var(--brand);font-size:var(--font-size-xs)}
.event-rsvp-hero{margin:0 0 14px;padding:16px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line-soft)}
.event-rsvp-hero-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.event-rsvp-title{margin:0;font-size:var(--font-size-xl);color:var(--text)}
.event-rsvp-meta-row{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0 0;color:var(--text-muted);font-size:var(--font-size-sm)}
.event-rsvp-meta-row span{display:inline-flex;align-items:center;gap:4px}
.event-rsvp-stat-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft);color:var(--text-muted);font-size:var(--font-size-sm)}
.event-rsvp-stat-row b{color:var(--text)}
.event-rsvp-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.event-rsvp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px}
.event-rsvp-signup-form,.event-rsvp-inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}
.event-rsvp-signup-form input,.event-rsvp-inline-form input{min-width:180px}
.event-rsvp-btn-ghost{display:inline-flex;align-items:center;padding:5px 12px;border:1px solid var(--line);border-radius:var(--radius);background:transparent;color:var(--text-muted);font-size:var(--font-size-sm);cursor:pointer}
.event-rsvp-btn-ghost:hover{border-color:var(--brand);color:var(--brand)}
.event-rsvp-btn-ghost.is-danger:hover{border-color:var(--danger);color:var(--danger)}
.event-rsvp-owner-ops{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0}
.event-rsvp-code{padding:4px 10px;border-radius:var(--radius);background:var(--warning-soft);color:var(--warning);font-size:var(--font-size-sm)}
.event-rsvp-code b{letter-spacing:2px}
.event-rsvp-body{margin:0 0 18px}
.event-rsvp-people h2{margin:0 0 8px;font-size:var(--font-size-lg)}
.event-rsvp-people-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.event-rsvp-person{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--bg)}
.event-rsvp-person-avatar img{width:22px;height:22px;border-radius:50%;display:block}
.event-rsvp-person-name{color:var(--text);font-size:var(--font-size-sm)}
.event-rsvp-owner{padding:1px 6px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xxs)}
.event-rsvp-answer{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:var(--font-size-xxs)}
.event-rsvp-signup-status{padding:1px 7px;border-radius:999px;font-size:var(--font-size-xxs);background:var(--line-soft);color:var(--text-muted)}
.event-rsvp-signup-status.is-ok{background:var(--brand-soft);color:var(--brand)}
.event-rsvp-signup-status.is-wait{background:var(--warning-soft);color:var(--warning)}
.event-rsvp-signup-status.is-checked{background:var(--success-soft);color:var(--success)}
.event-rsvp-signup-status.is-review{background:var(--info-soft);color:var(--info)}
.event-rsvp-signup-status.is-rejected{background:var(--danger-soft);color:var(--danger)}
.event-rsvp-mini{padding:2px 8px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text-muted);font-size:var(--font-size-xxs);cursor:pointer}
.event-rsvp-mini:hover{border-color:var(--brand);color:var(--brand)}
.event-rsvp-mini.is-primary{border-color:var(--brand);color:var(--brand)}
.event-rsvp-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.event-rsvp-checks{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.event-rsvp-panel h2{margin:0 0 8px}
.event-rsvp-admin-error{margin:0 0 10px;padding:8px 12px;border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);font-size:var(--font-size-sm)}
.event-rsvp-cover{display:block;margin:-4px 0 12px;border-radius:var(--radius);overflow:hidden}
.event-rsvp-cover img{display:block;width:100%;max-height:320px;object-fit:cover}
.event-rsvp-cover-thumb{flex:0 0 96px;display:block;border-radius:var(--radius);overflow:hidden}
.event-rsvp-cover-thumb img{display:block;width:96px;height:72px;object-fit:cover}
.event-rsvp-slot-badge{display:inline-flex;margin-right:8px;padding:1px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-xxs)}
.event-rsvp-slot-chip{display:inline-flex;padding:1px 7px;border-radius:999px;background:var(--info-soft);color:var(--info);font-size:var(--font-size-xxs)}
.event-rsvp-slots,.event-rsvp-dashboard,.event-rsvp-gallery{margin:16px 0 0;padding:14px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-slots h2,.event-rsvp-dashboard h2,.event-rsvp-gallery h2{display:flex;align-items:baseline;gap:8px;margin:0 0 10px;font-size:var(--font-size-lg)}
.event-rsvp-slots h2 small,.event-rsvp-dashboard h2 small{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:400}
.event-rsvp-slot-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
.event-rsvp-slot-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius);background:var(--bg);font-size:var(--font-size-sm)}
.event-rsvp-slot-row .event-rsvp-slot-name{font-weight:600;color:var(--text)}
.event-rsvp-slot-row .event-rsvp-slot-time{color:var(--text-muted)}
.event-rsvp-slot-row .event-rsvp-slot-fill{color:var(--text)}
.event-rsvp-slot-row .event-rsvp-slot-left{color:var(--text-subtle);font-size:var(--font-size-xs)}
.event-rsvp-slot-row .event-rsvp-btn-ghost{margin-left:auto}
.event-rsvp-slot-choices{display:flex;flex-direction:column;gap:8px;margin:0 0 10px;padding:10px 12px;border-radius:var(--radius);background:var(--bg)}
.event-rsvp-slot-title{color:var(--text-muted);font-size:var(--font-size-xs)}
.event-rsvp-slot-pick{display:flex;align-items:center;gap:10px}
.event-rsvp-slot-pick .event-rsvp-slot-name{font-weight:600}
.event-rsvp-slot-pick .event-rsvp-slot-time{color:var(--text-muted);font-size:var(--font-size-xs)}
.event-rsvp-slot-pick .event-rsvp-slot-left{margin-left:auto;color:var(--text-subtle);font-size:var(--font-size-xs)}
.event-rsvp-slot-pick.is-full .event-rsvp-slot-left{color:var(--warning)}
.event-rsvp-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 10px;padding:0;list-style:none}
.event-rsvp-dashboard-grid li{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:var(--radius);background:var(--bg)}
.event-rsvp-dashboard-grid span{color:var(--text-muted);font-size:var(--font-size-xs)}
.event-rsvp-dashboard-grid b{color:var(--text);font-size:var(--font-size-lg)}
.event-rsvp-dashboard-grid small{color:var(--text-subtle);font-size:var(--font-size-xxs)}
.event-rsvp-slot-fill-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}
.event-rsvp-slot-fill-list li{display:flex;align-items:center;gap:10px;font-size:var(--font-size-xs);color:var(--text-muted)}
.event-rsvp-slot-fill-list b{color:var(--text);min-width:56px;text-align:right}
.event-rsvp-bar{flex:1 1 auto;height:6px;border-radius:999px;background:var(--line-soft);overflow:hidden}
.event-rsvp-bar i{display:block;height:100%;background:var(--brand)}
.event-rsvp-gallery-strip{display:flex;flex-wrap:wrap;gap:8px}
.event-rsvp-gallery-item{display:block;border-radius:var(--radius);overflow:hidden}
.event-rsvp-gallery-item img{display:block;width:150px;height:110px;object-fit:cover}
.event-rsvp-seat-chip{display:inline-flex;padding:1px 7px;border-radius:999px;background:var(--warning-soft);color:var(--warning);font-size:var(--font-size-xxs)}
.event-rsvp-seat-form{display:inline-flex;gap:4px;align-items:center;margin-left:6px}
.event-rsvp-seat-form input{width:110px;padding:2px 6px;font-size:var(--font-size-xxs)}
.event-rsvp-subscribe{margin:0 0 10px}
.event-rsvp-subscribe .event-rsvp-btn-ghost.is-on{border-color:var(--brand);color:var(--brand)}
.event-rsvp-upload-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.event-rsvp-upload-row input[type=text]{flex:1 1 auto;min-width:200px}
.event-rsvp-upload-btn{display:inline-flex;padding:5px 12px;border:1px solid var(--line);border-radius:var(--radius);color:var(--text-muted);font-size:var(--font-size-sm);cursor:pointer}
.event-rsvp-upload-btn:hover{border-color:var(--brand);color:var(--brand)}
.event-rsvp-score{margin-left:8px;color:var(--text-muted);font-size:var(--font-size-xs)}
.event-rsvp-score b{color:var(--warning)}
.event-rsvp-stats-ops{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.event-rsvp-stats-table{margin:0 0 12px;overflow-x:auto}
.event-rsvp-stats-table h2{display:flex;align-items:center;gap:8px}
.event-rsvp-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}
.event-rsvp-table th,.event-rsvp-table td{padding:6px 8px;border-bottom:1px solid var(--line-soft);text-align:left;color:var(--text-muted)}
.event-rsvp-table th{color:var(--text-subtle);font-size:var(--font-size-xs);font-weight:400}
.event-rsvp-table td:first-child{color:var(--text)}
.event-rsvp-table td small{display:block}
.event-rsvp-template-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
.event-rsvp-template{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-template-main{display:flex;flex-direction:column;gap:2px;min-width:200px;flex:1 1 260px}
.event-rsvp-template-name{color:var(--text);font-size:var(--font-size-md)}
.event-rsvp-template-ops{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.event-rsvp-signup-form.is-multi{display:block;width:100%;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-ask{margin:0 0 10px}
.event-rsvp-field span b.event-rsvp-req{margin-left:6px;color:var(--danger);font-size:var(--font-size-xxs);font-weight:400}
.event-rsvp-choice-list{display:flex;flex-wrap:wrap;gap:10px}
.event-rsvp-signup-submit{margin-top:10px}
.event-rsvp-qr{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:14px 0;padding:14px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-qr-image svg{display:block;width:132px;height:132px;border-radius:6px}
.event-rsvp-qr-side{flex:1 1 220px;min-width:200px}
.event-rsvp-qr-side h3{margin:0 0 6px;font-size:var(--font-size-base)}
.event-rsvp-qr-side p{margin:0 0 6px;color:var(--text-muted);font-size:var(--font-size-sm)}
.event-rsvp-reviews{margin:18px 0 0}
.event-rsvp-reviews h2{display:flex;align-items:baseline;gap:8px;margin:0 0 10px;font-size:var(--font-size-lg)}
.event-rsvp-reviews h2 small{color:var(--text-muted);font-size:var(--font-size-xs);font-weight:400}
.event-rsvp-review-list{display:flex;flex-direction:column;gap:10px;margin:0 0 12px;padding:0;list-style:none}
.event-rsvp-review{padding:10px 12px;border-radius:var(--radius);background:var(--bg)}
.event-rsvp-review-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.event-rsvp-review-stars{color:var(--warning);letter-spacing:1px}
.event-rsvp-review-body{margin-top:6px;color:var(--text);white-space:pre-wrap}
.event-rsvp-review-photo{margin-top:8px}
.event-rsvp-review-photo img{display:block;max-width:100%;border-radius:var(--radius)}
.event-rsvp-review-form{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius)}
.event-rsvp-rate-row{display:flex;gap:6px;align-items:center}
.event-rsvp-star-pick{cursor:pointer}
.event-rsvp-star-pick input{position:absolute;width:0;height:0;opacity:0}
.event-rsvp-star-pick span{color:var(--text-subtle);font-size:var(--font-size-lg);letter-spacing:1px}
.event-rsvp-star-pick input:checked+span{color:var(--warning)}
.event-rsvp-checkin-page{max-width:520px;margin:0 auto;padding:18px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-checkin-state{margin:12px 0;padding:10px 12px;border-radius:var(--radius);background:var(--bg);color:var(--text-muted)}
.event-rsvp-checkin-state.is-ok{background:var(--success-soft);color:var(--success)}
.event-rsvp-checkin-form{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.event-rsvp-checkin-btn{justify-content:center;width:100%;padding:12px;font-size:var(--font-size-lg)}
.event-rsvp-poster{max-width:560px;margin:0 auto;padding:20px;text-align:center;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-poster-title{margin:0 0 6px;font-size:var(--font-size-xl)}
.event-rsvp-poster-sub{margin:0 0 14px;color:var(--text-muted)}
.event-rsvp-poster-qr{display:flex;justify-content:center;margin:0 0 12px}
.event-rsvp-poster-qr svg{width:min(72vw,360px);height:auto;border-radius:8px}
.event-rsvp-poster-tip{margin:0 0 6px;color:var(--text)}
.event-rsvp-poster-code{margin:0 0 6px;font-size:var(--font-size-lg);letter-spacing:2px}
.event-rsvp-poster-note{margin:0 0 14px;color:var(--text-subtle);font-size:var(--font-size-xs)}
.event-rsvp-poster-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
@media print{body *{visibility:hidden}.event-rsvp-poster,.event-rsvp-poster *{visibility:visible}.event-rsvp-poster{position:absolute;left:0;top:0;width:100%;border:0}.event-rsvp-poster-actions{display:none}}
/* 7.0.0：活动系列 / 连续核销 / 积分账单 */
.event-rsvp-series-head{margin:0 0 14px;padding:14px 16px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-series-intro{margin:8px 0;color:var(--text-muted)}
.event-rsvp-series-ops{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.event-rsvp-series-chip{border:1px dashed var(--line-soft)}
.event-rsvp-series-list{list-style:none;margin:0;padding:0}
.event-rsvp-series-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:12px 4px;border-bottom:1px solid var(--line-soft)}
.event-rsvp-series-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.event-rsvp-series-name{font-weight:600}
.event-rsvp-my-code{margin-left:6px;padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--text-muted);font-size:var(--font-size-xs)}
.event-rsvp-my-code b{color:var(--brand);letter-spacing:1px}
.event-rsvp-scan-form{margin:12px 0 0}
.event-rsvp-scan-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-scan-bar input[type=text]{flex:1 1 240px;min-width:180px;padding:10px 12px;font-size:var(--font-size-lg);letter-spacing:1px}
.event-rsvp-scan-count{display:inline-flex;flex-direction:column;color:var(--text-muted);font-size:var(--font-size-xs)}
.event-rsvp-scan-count b{color:var(--text);font-size:var(--font-size-lg)}
.event-rsvp-scan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:14px}
.event-rsvp-scan-block{padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-scan-block h2{display:flex;gap:8px;align-items:baseline;margin:0 0 8px;font-size:var(--font-size-lg)}
.event-rsvp-scan-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:52vh;overflow:auto}
.event-rsvp-scan-item{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:var(--radius);background:var(--bg)}
.event-rsvp-scan-picks button{display:flex;gap:8px;align-items:center;width:100%;padding:8px 10px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg);color:inherit;cursor:pointer;text-align:left}
.event-rsvp-scan-picks button:hover{border-color:var(--brand);color:var(--brand)}
.event-rsvp-scan-no{color:var(--text-subtle);font-variant-numeric:tabular-nums}
.event-rsvp-scan-go{margin-left:auto;color:var(--brand);font-size:var(--font-size-xs)}
.event-rsvp-scan-foot{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}
.event-rsvp-scan-batch{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:10px;padding:12px;border:1px dashed var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-scan-batch label.grid{flex:1 1 320px;margin:0}
.event-rsvp-scan-batch textarea{width:100%;font-family:inherit;font-size:var(--font-size-sm)}
.event-rsvp-finance-range{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:10px 0 14px}
.event-rsvp-finance-range label.grid{margin:0}
.event-rsvp-finance .event-rsvp-table td.is-num{font-variant-numeric:tabular-nums;text-align:right}
.event-rsvp-wait-rank{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;margin:8px 0 0;padding:8px 12px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line-soft)}
.event-rsvp-wait-rank b{color:var(--brand);font-size:var(--font-size-lg)}
.event-rsvp-wait-top{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.event-rsvp-wait-top li{display:flex;gap:8px;align-items:center;color:var(--text-muted);font-size:var(--font-size-xs)}
.event-rsvp-wait-top li b{color:var(--text);font-variant-numeric:tabular-nums}
.event-rsvp-survey{margin:14px 0 0;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-survey h2{margin:0 0 6px;font-size:var(--font-size-lg)}
.event-rsvp-bill .event-rsvp-table td.is-plus{color:var(--brand);font-weight:600}
.event-rsvp-bill .event-rsvp-table td small{display:block;color:var(--text-subtle)}
/* ── 9.0.0：座位图 / 现场大屏 / 协作者 / 模板共享 ── */
.event-rsvp-seat-map{display:grid;grid-template-columns:32px repeat(var(--seat-cols,8),minmax(44px,1fr));gap:4px;margin:10px 0;overflow-x:auto;max-width:100%}
.event-rsvp-seat-forms{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}
.event-rsvp-seat-forms select{padding:8px 10px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:var(--font-size-sm,12px);max-width:200px}
.event-rsvp-seat-forms .event-rsvp-inline-form{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.event-rsvp-seat-forms .event-rsvp-inline-form input,.event-rsvp-seat-forms .event-rsvp-inline-form select{padding:8px 10px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:var(--font-size-sm,12px)}
.event-rsvp-seat-forms .event-rsvp-inline-form button{padding:8px 14px;border-radius:8px;border:none;font-size:var(--font-size-sm,12px);cursor:pointer;background:var(--brand,#1f883d);color:#fff;flex:none}
.event-rsvp-helpers .post-action-form{display:inline-flex!important;margin:0!important}
.event-rsvp-helpers .event-rsvp-helper{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;padding:7px 0!important;border-bottom:1px dashed var(--line-soft,#eef2f6)!important}
.event-rsvp-helpers .event-rsvp-helper .event-rsvp-person-name{font-weight:600!important;font-size:13px!important}
.event-rsvp-helpers .event-rsvp-helper .event-rsvp-person-name small{color:#9ca3af!important;font-weight:400!important;font-size:11px!important}
.event-rsvp-helpers .event-rsvp-helper-edit summary{cursor:pointer!important;font-size:12px!important;color:#1f883d!important;list-style:none!important}
.event-rsvp-helpers .event-rsvp-helper-edit form{display:flex!important;gap:10px!important;align-items:center!important;flex-wrap:wrap!important;margin-top:6px!important;padding:8px 10px!important;background:#fafbfc!important;border:1px solid #e5e7eb!important;border-radius:8px!important}
.event-rsvp-helpers .event-rsvp-helper-edit .check{display:inline-flex!important;align-items:center!important;gap:5px!important;font-size:12px!important;margin:0!important}
.event-rsvp-helpers .event-rsvp-helper-edit input[type="checkbox"]{width:18px;height:18px;padding:0;margin:0;accent-color:var(--brand,#1f883d);flex:none;cursor:pointer}
.event-rsvp-seat-forms .event-rsvp-inline-form button.event-rsvp-btn-ghost{background:transparent;border:1px solid var(--line,#e2e8f0);color:var(--text,#374151)}
/* 座位图页面下方操作区整体样式：表单/开关/输入框不再挤压变形（v4.2.7） */
.event-rsvp-seat-page .form-panel .row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:4px 12px;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line-soft,#eef2f6)}
.event-rsvp-seat-page .form-panel .row>label{font-weight:600;font-size:var(--font-size-sm,12px);color:var(--text,#374151)}
.event-rsvp-seat-page .form-panel .row>input,.event-rsvp-seat-page .form-panel .row>select{max-width:200px;padding:7px 10px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:var(--font-size-sm,12px);box-sizing:border-box}
.event-rsvp-seat-page .form-panel .row>small{grid-column:2;font-size:var(--font-size-xs,11px);color:var(--text-subtle,#94a3b8);line-height:1.5}
.event-rsvp-seat-page .checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:6px;margin:10px 0}
.event-rsvp-seat-page .checks .check{align-items:flex-start;min-height:0;padding:8px 10px;line-height:1.5}
.event-rsvp-seat-page .checks .check input{margin-top:2px;flex:none;width:36px;height:20px}
.event-rsvp-seat-page .actions{margin-top:14px}
.event-rsvp-seat-page .actions button{padding:9px 20px;border-radius:8px;border:none;background:var(--brand,#1f883d);color:#fff;font-size:var(--font-size-sm,12px);font-weight:600;cursor:pointer}
@media(max-width:720px){.event-rsvp-seat-page .form-panel .row{grid-template-columns:1fr}.event-rsvp-seat-page .form-panel .row>input,.event-rsvp-seat-page .form-panel .row>select{max-width:100%}.event-rsvp-seat-page .form-panel .row>small{grid-column:1}.event-rsvp-seat-page .checks{grid-template-columns:1fr}}
.event-rsvp-seat-forms .event-rsvp-inline-form .event-rsvp-btn-ghost{background:transparent;border:1px solid var(--line,#e2e8f0);color:var(--text,#374151)}
.event-rsvp-seat-row{display:contents}
.event-rsvp-seat-corner{width:32px;flex:none;display:flex;align-items:center;justify-content:center}
.event-rsvp-seat-head{display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs,11px);color:var(--text-subtle,#94a3b8);min-height:28px}
.event-rsvp-seat-map .event-rsvp-seat{width:100%;min-width:44px;min-height:52px;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 4px;font-size:var(--font-size-xs,11px);box-sizing:border-box;border:1px solid var(--line,#e2e8f0);cursor:pointer}
.event-rsvp-seat-map .event-rsvp-seat.is-empty{background:var(--bg,#f8fafc);color:var(--text-subtle,#94a3b8);cursor:default}
.event-rsvp-seat-map .event-rsvp-seat.is-taken{background:var(--brand-soft,#eefaf3);border-color:var(--brand,#1f883d);color:var(--brand,#1f883d)}
.event-rsvp-seat-map .event-rsvp-seat.is-checked{background:var(--brand,#1f883d);color:#fff;border-color:var(--brand)}
.event-rsvp-seat-map .event-rsvp-seat .event-rsvp-seat-no{font-weight:700;font-size:var(--font-size-xs,11px)}
.event-rsvp-seat-map .event-rsvp-seat .event-rsvp-seat-who{font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.event-rsvp-seat-row.is-head .event-rsvp-seat-head{font-size:var(--font-size-xs);color:var(--text-subtle);text-align:center}
.event-rsvp-seat{display:flex;flex-direction:column;gap:1px;align-items:center;justify-content:center;min-height:44px;padding:4px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--bg);color:inherit;font:inherit;cursor:pointer;text-align:center}
.event-rsvp-seat span{display:block;line-height:1.2}
.event-rsvp-seat-no{font-size:var(--font-size-xs);color:var(--text-subtle);font-variant-numeric:tabular-nums}
.event-rsvp-seat-who{font-size:var(--font-size-xs);max-width:100%;overflow:hidden;text-overflow:ellipsis}
.event-rsvp-seat.is-empty{opacity:.55;cursor:default}
.event-rsvp-seat.is-taken{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,var(--bg))}
.event-rsvp-seat.is-checked{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 26%,var(--bg));font-weight:600}
.event-rsvp-seat.is-conflict{border-style:dashed;border-color:#d9534f}
.event-rsvp-seat:hover:not(:disabled){border-color:var(--brand)}
.event-rsvp-seat-forms{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:14px 0 0}
.event-rsvp-seat-forms form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0}
.event-rsvp-seat-forms input[type=number]{width:72px}
.event-rsvp-seat-preview{margin:14px 0 0;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-seat-preview h2{margin:0 0 6px;font-size:var(--font-size-lg)}
.event-rsvp-seat-preview .event-rsvp-seat{cursor:default;min-height:34px}
.event-rsvp-helpers,.event-rsvp-notices{margin:16px 0 0;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-helpers h2,.event-rsvp-notices h2{margin:0 0 8px;font-size:var(--font-size-lg)}
.event-rsvp-helpers h2 small,.event-rsvp-notices h2 small{margin-left:6px;font-weight:400;color:var(--text-subtle);font-size:var(--font-size-xs)}
.event-rsvp-helper-list,.event-rsvp-audit-list,.event-rsvp-notice-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.event-rsvp-helper-list li,.event-rsvp-audit-list li,.event-rsvp-notice-list li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:6px 8px;border-radius:var(--radius);background:var(--bg);font-size:var(--font-size-sm)}
.event-rsvp-helper-list li .post-action-form,.event-rsvp-share-chip .post-action-form{display:inline-flex;margin:0 0 0 auto}
.event-rsvp-screen{max-width:1080px;margin:0 auto;padding:18px}
.event-rsvp-screen-head{text-align:center;margin-bottom:14px}
.event-rsvp-screen-title{margin:0;font-size:clamp(22px,3.4vw,40px);line-height:1.2}
.event-rsvp-screen-sub{margin:6px 0 0;color:var(--text-muted)}
.event-rsvp-screen-main{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:center}
.event-rsvp-screen-ring{color:var(--brand);width:min(240px,42vw)}
.event-rsvp-ring{width:100%;height:auto;display:block}
.event-rsvp-ring-num{font-size:26px;font-weight:700;fill:currentColor}
.event-rsvp-ring-sub{font-size:15px;fill:var(--text-muted)}
.event-rsvp-screen-nums{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:12px}
.event-rsvp-screen-nums li{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel)}
.event-rsvp-screen-nums b{font-size:clamp(24px,3vw,38px);font-variant-numeric:tabular-nums;line-height:1.1}
.event-rsvp-screen-qr{text-align:center}
.event-rsvp-screen-qr svg{width:min(200px,30vw);height:auto;background:#fff;padding:6px;border-radius:var(--radius)}
.event-rsvp-screen-qr p{margin:6px 0 0;color:var(--text-muted);font-size:var(--font-size-sm)}
.event-rsvp-screen-code{font-variant-numeric:tabular-nums;letter-spacing:.14em}
.event-rsvp-screen-bar{height:14px;margin:18px 0;border-radius:999px;background:var(--panel);border:1px solid var(--line-soft);overflow:hidden}
.event-rsvp-screen-bar i{display:block;height:100%;background:var(--brand);transition:width .4s ease}
.event-rsvp-screen-recent h2{margin:0 0 8px;font-size:var(--font-size-lg)}
.event-rsvp-screen-recent h2 small{margin-left:6px;font-weight:400;color:var(--text-subtle);font-size:var(--font-size-xs)}
.event-rsvp-screen-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.event-rsvp-screen-item{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--panel);font-size:var(--font-size-lg)}
.event-rsvp-screen-item.is-new{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}
.event-rsvp-screen-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.event-rsvp-screen-no,.event-rsvp-screen-time{color:var(--text-subtle);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}
.event-rsvp-screen-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;margin:20px 0 0;color:var(--text-subtle);font-size:var(--font-size-sm)}
.event-rsvp-share-chip{display:inline-flex;gap:6px;align-items:center;padding:2px 6px;margin-right:6px;border:1px solid var(--line-soft);border-radius:999px;font-size:var(--font-size-xs)}
.event-rsvp-share-from{color:var(--brand);font-size:var(--font-size-xs)}
.event-rsvp-template-share{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line-soft)}
.event-rsvp-shared-title{margin:18px 0 8px;font-size:var(--font-size-lg)}
.event-rsvp-shared-title small{margin-left:6px;font-weight:400;color:var(--text-subtle);font-size:var(--font-size-xs)}
.event-rsvp-field-choice .event-rsvp-choice-list{display:flex;flex-wrap:wrap;gap:10px}
/* 10.0.0：出席信用标签 / 失效座位面板 / 动态口令倒计时 / 退款中心 */
.event-rsvp-credit-chip{display:inline-flex;padding:1px 7px;margin-left:4px;border-radius:999px;background:var(--danger-soft);color:var(--danger);font-size:var(--font-size-xxs)}
.event-rsvp-seat-stale{margin:12px 0;padding:10px 14px;border-radius:var(--radius);background:var(--warning-soft)}
.event-rsvp-seat-stale h3{margin:0 0 6px;font-size:var(--font-size-sm);color:var(--warning)}
.event-rsvp-seat-stale h3 small{margin-left:6px;font-weight:400;color:var(--text-subtle);font-size:var(--font-size-xs)}
.event-rsvp-seat-stale-list{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 8px;padding:0;list-style:none;font-size:var(--font-size-xs)}
.event-rsvp-seat-stale-list small{margin-left:4px;color:var(--text-subtle)}
.event-rsvp-code-left{margin-left:6px;color:var(--text-subtle);font-size:var(--font-size-xxs)}
.event-rsvp-screen-code.is-dynamic{font-size:var(--font-size-xxl)}
.event-rsvp-screen-code.is-dynamic b{letter-spacing:2px}
.event-rsvp-refund .event-rsvp-table td{vertical-align:middle}
@media(max-width:600px){.event-rsvp-hero{padding:12px}.event-rsvp-title{font-size:var(--font-size-lg)}.event-rsvp-meta-row{gap:8px}.event-rsvp-person{width:100%}.event-rsvp-qr{flex-direction:column;align-items:flex-start}.event-rsvp-qr-image svg{width:160px;height:160px}.event-rsvp-scan-bar input[type=text]{flex:1 1 100%}.event-rsvp-seat-map{grid-template-columns:24px repeat(var(--seat-cols,8),minmax(36px,1fr));gap:3px}.event-rsvp-screen{padding:10px}.event-rsvp-screen-nums{grid-template-columns:repeat(2,minmax(96px,1fr))}}.lottery-title-status{display:inline-flex;align-items:center;min-height:20px;margin-left:6px;padding:0 8px;border-radius:999px;font-size:var(--font-size-xs);font-weight:600;white-space:nowrap}.lottery-title-status.open{background:var(--warning-soft);color:var(--warning)}.lottery-title-status.done{background:var(--success-soft);color:var(--success)}.lottery-card{display:grid;gap:11px;margin:12px 0;padding:16px;border:1px solid var(--warning);border-radius:var(--radius);background:linear-gradient(135deg,var(--warning-soft),var(--panel) 72%)}.lottery-card.is-done{border-color:var(--success);background:linear-gradient(135deg,var(--success-soft),var(--panel) 72%)}.lottery-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.lottery-card>header b{font-size:var(--font-size-lg)}.lottery-card>header span{display:block;margin-top:2px;color:var(--text-muted);font-size:var(--font-size-xs)}.lottery-card>header em{flex:0 0 auto;padding:5px 11px;border-radius:999px;background:var(--panel);color:var(--text);font-size:var(--font-size-sm);font-style:normal;font-weight:600}.lottery-prizes{display:grid;gap:7px;margin:0;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}.lottery-prizes>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.lottery-prizes strong{font-size:var(--font-size-md)}.lottery-prizes span{color:var(--text-muted);font-size:var(--font-size-xs);text-align:right}.lottery-prize-empty strong{color:var(--text-muted);font-weight:400}.lottery-condition{color:var(--text);font-size:var(--font-size-sm);font-weight:600}.lottery-eligibility{color:var(--text-muted);font-size:var(--font-size-xs)}.lottery-hint{padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm)}.lottery-hint.is-joined{color:var(--success)}.lottery-hint.is-blocked{color:var(--danger)}.lottery-result{display:grid;gap:8px}.lottery-result-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.lottery-result-head b{font-size:var(--font-size-lg)}.lottery-result-head span{color:var(--text-muted);font-size:var(--font-size-xs)}.lottery-winners{display:grid;gap:8px;margin-top:9px;padding-top:9px;border-top:1px solid var(--line-soft)}.lottery-winner-rows{display:flex;flex-wrap:wrap;gap:6px 16px}.lottery-winner-prize{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.lottery-winner-prize strong{font-size:var(--font-size-md)}.lottery-winner-prize span{color:var(--text-muted);font-size:var(--font-size-xs)}.lottery-winner-item{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 10px;border-radius:var(--radius-sm);background:var(--panel)}.lottery-winner-item .avatar-profile-link{display:block;flex:0 0 auto;width:20px;height:20px;border-radius:50%}.lottery-winner-item>a{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:var(--font-size-sm)}.lottery-winner-item>a:hover{color:var(--brand)}.lottery-winner-item em{padding:1px 7px;border-radius:999px;background:var(--bg);color:var(--text-muted);font-size:var(--font-size-xs);font-style:normal;white-space:nowrap}.lottery-winner-claim{flex:none;color:var(--brand);font-size:var(--font-size-xs);font-weight:600}.lottery-winner-empty{padding:8px 10px;color:var(--text-muted);font-size:var(--font-size-sm)}.lottery-ledger{padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text-muted);font-size:var(--font-size-xs)}.lottery-fair{color:var(--text-muted);font-size:var(--font-size-xs)}.lottery-fair summary{cursor:pointer;color:var(--text);font-size:var(--font-size-sm)}.lottery-fair p{margin:7px 0}.lottery-fair code{display:block;margin-top:4px;padding:7px 9px;border-radius:var(--radius-sm);background:var(--panel);font-family:var(--font-mono);overflow-wrap:anywhere}.lottery-card-manage{justify-self:start;color:var(--text);font-size:var(--font-size-sm);font-weight:600}.lottery-manage{display:grid;gap:12px}.lottery-back{color:var(--text-muted);font-size:var(--font-size-sm)}.lottery-manage-state{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:13px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg)}.lottery-manage-state span{color:var(--text-muted);font-size:var(--font-size-xs)}.lottery-manage-state strong{font-size:var(--font-size-md)}.lottery-form,.lottery-prize-add{display:grid;gap:11px}.lottery-manage .grid{grid-template-columns:minmax(0,1fr);gap:5px;margin:0}.lottery-manage .grid>span{padding-top:0}.lottery-manage .grid input,.lottery-manage .grid select{width:100%;max-width:none}.lottery-prize-add{margin-top:13px;padding-top:13px;border-top:1px solid var(--line-soft)}.lottery-note{margin:0;color:var(--text-muted);font-size:var(--font-size-xs)}.lottery-danger{display:flex;gap:9px;flex-wrap:wrap}.lottery-compose{display:grid;gap:8px;margin:10px 0;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg)}.lottery-compose-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.lottery-compose-head a{color:var(--brand);font-size:var(--font-size-sm)}.lottery-compose-details summary,.lottery-compose-advanced summary{display:flex;align-items:center;cursor:pointer;font-weight:600;list-style:none}.lottery-compose-details summary::-webkit-details-marker,.lottery-compose-advanced summary::-webkit-details-marker{display:none}.lottery-compose-details summary:before,.lottery-compose-advanced summary:before{content:"";width:0;height:0;margin-right:8px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid currentColor;transition:transform .15s ease}.lottery-compose-details[open]>summary:before,.lottery-compose-advanced[open]>summary:before{transform:rotate(90deg)}.lottery-compose-body{display:grid;gap:11px;margin-top:11px}.lottery-compose-advanced{padding:10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel)}.lottery-compose-advanced>div{margin-top:10px}.lottery-compose-toggle{display:flex;align-items:center;gap:9px;font-size:var(--font-size-sm)}.lottery-compose-toggle input[type=checkbox]{flex:0 0 38px;width:38px;min-width:38px;margin:0}.lottery-compose-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.lottery-compose-note{margin:0;color:var(--text-muted);font-size:var(--font-size-xs)}.lottery-admin{display:block}.lottery-admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}.lottery-admin-stat{display:grid;gap:3px;padding:13px 14px;border:0;border-radius:var(--radius-sm);background:var(--bg);box-shadow:none}.lottery-admin-stat span{color:var(--text-muted);font-size:var(--font-size-xs)}.lottery-admin-stat b{color:var(--brand);font-size:var(--font-size-xl);font-variant-numeric:tabular-nums}.lottery-admin-section{display:grid;gap:10px;margin-top:18px;padding-top:0;border-top:0}.lottery-admin-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.lottery-admin-section-head h3{margin:0;color:var(--text);font-size:var(--font-size-md)}.lottery-admin-section-head span{color:var(--text-muted);font-size:var(--font-size-xs)}.lottery-admin-form-card{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.lottery-admin .lottery-form{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin:0;gap:10px}.lottery-admin .lottery-form>.grid{grid-template-columns:1fr;gap:5px;min-width:0;margin:0;padding:12px;border:0;border-radius:var(--radius-sm);background:var(--bg)}.lottery-admin .lottery-form>.grid>span{padding:0;color:var(--text-muted);font-size:var(--font-size-sm)}.lottery-admin .lottery-form>.grid input:not([type=checkbox]),.lottery-admin .lottery-form>.grid select{box-sizing:border-box;width:100%;max-width:none;min-height:38px;margin:0}.lottery-admin .lottery-form>.lottery-admin-field-wide{display:grid;grid-column:1/-1!important;justify-self:stretch;width:100%;min-width:0}.lottery-admin .lottery-form>button{grid-column:1/-1}.lottery-admin .lottery-form>button{justify-self:start;margin-top:2px}.lottery-group-checks{display:flex;flex-wrap:wrap;width:100%;min-width:0;gap:9px}.lottery-group-check{display:inline-flex;flex:0 0 auto;align-items:center;gap:6px;min-width:max-content;padding:6px 10px;border:1px solid var(--line);border-radius:999px;font-size:var(--font-size-sm);white-space:nowrap}.lottery-group-check input{flex:0 0 38px}.lottery-group-check span{white-space:nowrap}.lottery-claim-send,.lottery-claim-actions,.lottery-claim-actions form{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.lottery-claim-send input,.lottery-claim-actions input{min-width:180px}.lottery-admin-open .admin-object-row{grid-template-columns:minmax(0,1fr) auto}.lottery-admin-open .admin-object-row .admin-inline-ops{grid-column:2;justify-content:flex-end}@media(max-width:720px){.lottery-card>header{flex-direction:column}.lottery-card>header em{align-self:flex-start}.lottery-admin-section-head{align-items:flex-start;flex-direction:column;gap:3px}.lottery-prizes>div{flex-direction:column;gap:2px}.lottery-prizes span{text-align:left}}.report-center-page{display:flex;flex-direction:column;gap:1rem;background:#fff}
/* 强制白底：管理后台/透明主题下案件卡不可读（用户反馈） */
.report-center-page,.report-center-card,.report-center-head,.report-center-case{background:#fff}
.report-center-case{box-shadow:0 1px 3px rgba(15,23,42,.05)}
.report-center-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:6px 16px;margin:.5rem 0;padding:.6rem .8rem;background:var(--bg,#f8fafc);border:1px solid var(--line-soft,#eef2f6);border-radius:9px}
.report-center-meta span{display:flex;gap:6px;align-items:baseline;font-size:var(--font-size-xs,11.5px);color:var(--text,#374151);overflow-wrap:anywhere;min-width:0}
.report-center-meta b{flex:none;color:var(--text-muted,#6b7280);font-weight:600}
.report-center-meta a{color:var(--brand,#1f883d);text-decoration:none;font-weight:600}
.report-center-meta a:hover{text-decoration:underline}
/* 处理台分页与状态标签统一样式 */
.report-center-page .pagination{margin:.9rem 0 0}
.report-center-page .pagination ul{display:flex;gap:6px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.report-center-page .pagination li a,.report-center-page .pagination li span{display:inline-block;padding:6px 12px;border:1px solid var(--line,#e2e8f0);border-radius:8px;font-size:var(--font-size-sm,12.5px);color:var(--text,#374151);text-decoration:none;background:#fff}
.report-center-page .pagination li a:hover{border-color:var(--brand,#1f883d);color:var(--brand,#1f883d)}
.report-center-page .pagination li.on a,.report-center-page .pagination li.on span,.report-center-page .pagination .current{background:var(--brand,#1f883d);border-color:var(--brand,#1f883d);color:#fff;font-weight:600}
.report-center-status{font-weight:600;padding:.15rem .6rem}
.report-center-card,.report-center-head{background:var(--panel,#fff);border:1px solid var(--line,rgba(120,120,140,.25));border-radius:12px;padding:1rem}
.report-center-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}
.report-center-head h2{margin:0 0 .25rem;font-size:var(--font-size-lg,16px)}
.report-center-muted{color:var(--muted,#6b7280);font-size:var(--font-size-sm,12.5px);margin:0}
.report-center-tabs{display:flex;gap:.4rem;flex-wrap:wrap}
.report-center-tab{padding:.35rem .8rem;border-radius:999px;border:1px solid var(--line,rgba(120,120,140,.3));font-size:var(--font-size-sm,12.5px);text-decoration:none;color:inherit}
.report-center-tab.is-active{background:var(--brand,#3b82f6);color:var(--inverse-text,#fff);border-color:transparent}
.report-center-list{display:flex;flex-direction:column;gap:.75rem}
.report-center-case{background:var(--panel,#fff);border:1px solid var(--line,rgba(120,120,140,.25));border-radius:12px;padding:.85rem 1rem}
.report-center-case.is-overdue{border-color:rgba(220,80,80,.55)}
.report-center-case header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:var(--font-size-sm,12.5px)}
.report-center-case h3{margin:.35rem 0;font-size:var(--font-size-md,14px)}
.report-center-status{padding:.1rem .55rem;border-radius:999px;font-size:12px;background:rgba(120,120,140,.14)}
.report-center-status.is-0{background:rgba(245,158,11,.18)}
.report-center-status.is-1{background:rgba(59,130,246,.18)}
.report-center-status.is-2{background:rgba(34,197,94,.18)}
.report-center-status.is-3{background:rgba(120,120,140,.2)}
.report-center-status.is-escalated,.report-center-status.is-overdue{background:rgba(220,80,80,.2)}
.report-center-reason,.report-center-verdict{margin:.25rem 0;font-size:var(--font-size-sm,12.5px)}
.report-center-timeline{margin:.5rem 0 0;padding-left:1.1rem;font-size:12.5px;color:var(--muted,#6b7280)}
.report-center-timeline li{margin:.2rem 0}
.report-center-form label,.report-center-form .report-center-form label{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.7rem;font-size:var(--font-size-sm,12.5px)}
.report-center-form input,.report-center-form select,.report-center-form textarea{padding:.5rem .65rem;border:1px solid var(--line,rgba(120,120,140,.35));border-radius:9px;font-size:var(--font-size-md,14px)}
.report-center-tag{display:inline-block;padding:.1rem .55rem;border-radius:999px;background:rgba(120,120,140,.14);font-size:12px}
.report-center-appeal,.report-center-handle{margin-top:.5rem}
.fl-report-simple .fl-report-list{display:flex;flex-direction:column;gap:10px}
.fl-report-item{background:#fff;border:1px solid var(--line,rgba(120,120,140,.25));border-radius:12px;padding:.9rem 1rem}
.fl-report-item header{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.fl-report-item header b{font-size:14px;color:#1f2937;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}
.fl-report-item header time{margin-left:auto;font-size:12px;color:var(--muted,#6b7280)}
.fl-report-line{margin:.4rem 0 0;font-size:12.5px;color:#374151;display:flex;gap:.5rem}
.fl-report-line span{color:var(--muted,#6b7280);flex:none}
/* 进度条：节点与连线分离，连线永不穿过文字 */
.fl-report-progress{display:flex;align-items:center;margin-top:.7rem;padding-top:.7rem;border-top:1px dashed var(--line,rgba(120,120,140,.2))}
.fl-report-node{display:inline-flex;align-items:center;gap:.35rem;font-size:12px;color:#9ca3af;flex:none;white-space:nowrap}
.fl-report-node i{font-style:normal;width:20px;height:20px;border-radius:50%;background:#f3f4f6;color:#9ca3af;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:none;border:1.5px solid #e5e7eb;box-sizing:border-box}
.fl-report-node em{font-style:normal}
.fl-report-bar{flex:1 1 24px;min-width:16px;height:2px;background:#f3f4f6;border-radius:2px;margin:0 8px}
.fl-report-node.is-done{color:#1f883d}
.fl-report-node.is-done i{background:#ecfdf5;border-color:#6ee7b7;color:#047857}
.fl-report-bar.is-done{background:#6ee7b7}
.fl-report-node.is-reject{color:#6b7280}
.fl-report-node.is-reject i{background:#f9fafb;border-color:#e5e7eb;color:#6b7280}
/* 分派/释放/留言/复检折叠卡与处置卡同一风格 */
.report-center-assign,.report-center-release,.report-center-comment,.report-center-recheck{margin-top:.5rem}
.report-center-assign summary,.report-center-release summary,.report-center-comment summary,.report-center-recheck summary{cursor:pointer;font-size:var(--font-size-sm,12.5px);color:var(--brand,#3b82f6)}
.report-center-assign form,.report-center-release form,.report-center-comment form,.report-center-recheck form{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}
.report-center-status.is-appeal{background:rgba(245,158,11,.14);color:#b45309}
.report-center-verdict{margin-top:.6rem;padding:.55rem .7rem;border-radius:9px;background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.35);font-size:var(--font-size-sm,12.5px);line-height:1.55;word-break:break-word}
.report-center-verdict.is-dismiss{background:rgba(120,120,140,.08);border-color:var(--line,rgba(120,120,140,.3))}
.report-center-verdict b{display:inline-block;margin-right:.4rem;color:var(--brand,#3b82f6)}
.report-center-verdict-time{margin-left:.5rem;font-size:11.5px;color:var(--muted,#6b7280)}
.report-center-detail{margin-top:.35rem;font-size:var(--font-size-sm,12.5px);color:var(--text,#1f2937);white-space:pre-wrap;word-break:break-word}
.report-center-delete-opt{display:flex;align-items:center;gap:.4rem;font-size:var(--font-size-sm,12.5px);color:var(--muted,#6b7280);cursor:pointer}
.report-center-delete-opt input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:44px;height:24px;flex:0 0 44px;margin:0;border:none;border-radius:12px;background:var(--line,#cbd5e1);position:relative;cursor:pointer;transition:background .15s}
.report-center-delete-opt input[type="checkbox"]::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.28);transition:left .15s}
.report-center-delete-opt input[type="checkbox"]:checked{background:var(--brand,#3b82f6)}
.report-center-delete-opt input[type="checkbox"]:checked::after{left:22px}
.report-center-timeline li span{word-break:break-word}
.report-center-appeal summary,.report-center-handle summary,.report-center-appeal-review summary{cursor:pointer;font-size:var(--font-size-sm,12.5px);color:var(--brand,#3b82f6)}
.report-center-appeal form,.report-center-handle form,.report-center-appeal-review form{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}
.report-center-inline-form{display:flex;gap:.4rem;align-items:center;margin:.3rem 0}
.report-center-inline-form input[type="text"]{flex:1;min-width:140px;padding:.35rem .55rem;border:1px solid var(--line,rgba(120,120,140,.35));border-radius:8px}
.report-center-admin .report-center-admin-stats{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin-top:.5rem;font-size:var(--font-size-sm,12.5px)}
.report-center-admin-stats b{font-size:16px;margin-left:.15rem}
.report-center-admin-row{display:flex;justify-content:space-between;gap:.75rem;padding:.6rem 0;border-bottom:1px dashed var(--line,rgba(120,120,140,.25));flex-wrap:wrap}
.report-center-admin-main{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.report-center-admin-main em{font-style:normal;font-size:12px;color:var(--muted,#6b7280)}
.report-center-admin-ops{display:flex;flex-direction:column;gap:.3rem;align-items:flex-end}
.report-center-flag{display:inline-block;margin-left:.4rem;padding:.05rem .45rem;border-radius:999px;background:rgba(245,158,11,.2);font-size:11.5px;vertical-align:middle}
.report-center-diy-pending{display:flex;gap:.6rem}
.report-center-diy-pending a{flex:1;display:flex;flex-direction:column;align-items:center;padding:.6rem;border:1px solid var(--line,rgba(120,120,140,.25));border-radius:10px;text-decoration:none;color:inherit}
.report-center-diy-pending a.is-hot{border-color:rgba(220,80,80,.5)}
.report-center-diy-pending b{font-size:18px}
.report-center-diy-pending span{font-size:12px;color:var(--muted,#6b7280)}
.report-center-appeal-review label{display:flex;gap:.35rem;align-items:center;font-size:var(--font-size-sm,12.5px)}/* ==================================================================
   UI Overhaul v4.3.0 — 活动/座位图/举报处理台 全量覆盖样式
   自包含、高优先级、不依赖 CSS 变量（全部使用硬编码回退）
   ================================================================== */

/* ── 通用：确保页面容器有白底和基本排版 ── */
.event-rsvp-detail,.event-rsvp-seat-page,.report-center-page{
    background:#fff !important;
    color:#1f2937 !important;
    font-size:14px !important;
    line-height:1.6 !important;
}
.event-rsvp-detail *,.event-rsvp-seat-page *,.report-center-page *{
    box-sizing:border-box !important;
}

/* ═══════════════════════════════════════════════════════════════
   一、活动编辑页（.event-rsvp-panel）
   ═══════════════════════════════════════════════════════════════ */
.event-rsvp-panel{
    background:#fff !important;
    border:1px solid #e5e7eb !important;
    border-radius:12px !important;
    padding:24px !important;
    max-width:960px !important;
    margin:16px auto !important;
}
.event-rsvp-panel h2{
    font-size:20px !important;
    font-weight:700 !important;
    color:#111827 !important;
    margin:0 0 20px !important;
    padding-bottom:12px !important;
    border-bottom:2px solid #e5e7eb !important;
}
.event-rsvp-panel .event-rsvp-field-grid{
    display:grid !important;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr)) !important;
    gap:14px 20px !important;
    margin:16px 0 !important;
}
.event-rsvp-panel .grid,
.event-rsvp-panel label.grid{
    display:flex !important;
    flex-direction:column !important;
    gap:6px !important;
    margin:0 !important;
    padding:0 !important;
}
.event-rsvp-panel .grid>span{
    font-size:13px !important;
    font-weight:600 !important;
    color:#374151 !important;
    line-height:1.4 !important;
}
.event-rsvp-panel .grid>span small{
    font-weight:400 !important;
    color:#9ca3af !important;
    font-size:11px !important;
}
.event-rsvp-panel .grid input[type="text"],
.event-rsvp-panel .grid input[type="number"],
.event-rsvp-panel .grid input[type="datetime-local"],
.event-rsvp-panel .grid input[type="url"],
.event-rsvp-panel .grid select,
.event-rsvp-panel .grid textarea{
    width:100% !important;
    max-width:100% !important;
    padding:9px 12px !important;
    border:1px solid #d1d5db !important;
    border-radius:8px !important;
    font-size:14px !important;
    color:#111827 !important;
    background:#fff !important;
    box-sizing:border-box !important;
    transition:border-color .15s !important;
    line-height:1.4 !important;
}
.event-rsvp-panel .grid input:focus,
.event-rsvp-panel .grid select:focus,
.event-rsvp-panel .grid textarea:focus{
    border-color:#1f883d !important;
    outline:none !important;
    box-shadow:0 0 0 3px rgba(31,136,61,.1) !important;
}
.event-rsvp-panel textarea{
    min-height:80px !important;
    resize:vertical !important;
}
.event-rsvp-panel .event-rsvp-advanced{
    margin:16px 0 !important;
    border:1px solid #e5e7eb !important;
    border-radius:10px !important;
    background:#fafafa !important;
    overflow:hidden !important;
}
.event-rsvp-panel .event-rsvp-advanced summary{
    padding:12px 16px !important;
    font-size:14px !important;
    font-weight:600 !important;
    color:#1f883d !important;
    cursor:pointer !important;
    background:#f0faf4 !important;
    border-bottom:1px solid #e5e7eb !important;
    list-style:none !important;
    display:flex !important;
    align-items:center !important;
    gap:6px !important;
}
.event-rsvp-panel .event-rsvp-advanced summary::before{content:"▸ ";font-size:12px}
.event-rsvp-panel .event-rsvp-advanced[open] summary::before{content:"▾ "}
.event-rsvp-panel .event-rsvp-advanced[open] summary{border-bottom:1px solid #e5e7eb !important}
.event-rsvp-panel .event-rsvp-advanced>*:not(summary){padding:12px 16px !important}
.event-rsvp-panel .event-rsvp-advanced .event-rsvp-field{margin:10px 0 !important}
.event-rsvp-panel .event-rsvp-tpl-btns{display:flex !important;gap:8px !important;flex-wrap:wrap !important;margin:8px 0 !important}
.event-rsvp-panel .event-rsvp-tpl-btns button{
    padding:6px 14px !important;border:1px solid #d1d5db !important;border-radius:6px !important;
    background:#fff !important;color:#374151 !important;font-size:12px !important;cursor:pointer !important;
}
.event-rsvp-panel .event-rsvp-tpl-btns button:hover{border-color:#1f883d !important;color:#1f883d !important}
.event-rsvp-panel .event-rsvp-quick{
    margin-bottom:6px !important;padding:8px 10px !important;
    border:1px solid #d1d5db !important;border-radius:8px !important;
    font-size:13px !important;background:#fff !important;width:100% !important;box-sizing:border-box !important;
}
.event-rsvp-panel .event-rsvp-field-grid .grid{
    display:flex !important;
    flex-direction:column !important;
}
.event-rsvp-panel .event-rsvp-field-grid .grid select.event-rsvp-quick{
    order:-1 !important;
}
.event-rsvp-panel .forum-level-icon-row{
    display:flex !important;gap:8px !important;align-items:center !important;width:100% !important;
}
.event-rsvp-panel .forum-level-icon-row input[type="text"]{
    flex:1 !important;min-width:0 !important;
}
.event-rsvp-panel .forum-level-icon-up{
    flex:none !important;padding:8px 14px !important;border:1px solid #d1d5db !important;
    border-radius:8px !important;background:#f9fafb !important;font-size:12px !important;cursor:pointer !important;
    display:inline-flex !important;align-items:center !important;
}
.event-rsvp-panel .form-panel .row{display:grid !important;grid-template-columns:180px minmax(0,1fr) !important;gap:4px 12px !important;align-items:center !important;padding:8px 0 !important;border-bottom:1px dashed #f0f0f0 !important}
.event-rsvp-panel .form-panel .row>label{font-weight:600 !important;font-size:13px !important;color:#374151 !important}
.event-rsvp-panel .form-panel .row>input{max-width:200px !important;padding:8px 10px !important;border:1px solid #d1d5db !important;border-radius:8px !important;font-size:13px !important;justify-self:start !important;width:100% !important;box-sizing:border-box !important}
.event-rsvp-panel .form-panel .row>small{grid-column:2 !important;font-size:11px !important;color:#9ca3af !important;line-height:1.5 !important}
.event-rsvp-panel .checks{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(300px,1fr)) !important;gap:8px !important;margin:12px 0 !important}
.event-rsvp-panel .checks .check{display:flex !important;align-items:flex-start !important;gap:8px !important;padding:10px 12px !important;border:1px solid #e5e7eb !important;border-radius:8px !important;background:#fff !important;font-size:12px !important;line-height:1.5 !important;min-height:0 !important}
.event-rsvp-panel .actions{margin-top:18px !important;padding-top:14px !important;border-top:1px solid #e5e7eb !important}
.event-rsvp-panel .actions button[type="submit"]{
    padding:10px 28px !important;background:#1f883d !important;color:#fff !important;border:none !important;
    border-radius:8px !important;font-size:14px !important;font-weight:700 !important;cursor:pointer !important;
}
.event-rsvp-panel .actions button[type="submit"]:hover{background:#166534 !important}
.event-rsvp-panel .event-rsvp-admin-error{color:#dc2626 !important;background:#fef2f2 !important;border:1px solid #fecaca !important;border-radius:8px !important;padding:10px 14px !important;margin:8px 0 !important;font-size:13px !important}
@media(max-width:720px){
    .event-rsvp-panel{padding:16px !important}
    .event-rsvp-panel .event-rsvp-field-grid{grid-template-columns:1fr !important}
    .event-rsvp-panel .form-panel .row{grid-template-columns:1fr !important}
    .event-rsvp-panel .form-panel .row>input{max-width:100% !important;justify-self:stretch !important}
    .event-rsvp-panel .form-panel .row>small{grid-column:1 !important}
    .event-rsvp-panel .checks{grid-template-columns:1fr !important}
    .event-rsvp-panel .grid input[type="datetime-local"]{min-height:42px !important}
}

/* ═══════════════════════════════════════════════════════════════
   二、活动列表页发布按钮（醒目主色）
   ═══════════════════════════════════════════════════════════════ */
.event-rsvp-toolbar{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    flex-wrap:wrap !important;
    margin-bottom:14px !important;
}
.event-rsvp-toolbar .plugin-tabs{flex:1 !important;min-width:0 !important}
.event-rsvp-toolbar .event-rsvp-btn-primary{
    margin-left:auto !important;
    background:#1f883d !important;
    color:#fff !important;
    border:none !important;
    padding:10px 24px !important;
    border-radius:10px !important;
    font-size:15px !important;
    font-weight:700 !important;
    text-decoration:none !important;
    white-space:nowrap !important;
    box-shadow:0 2px 8px rgba(31,136,61,.25) !important;
    cursor:pointer !important;
    display:inline-flex !important;
    align-items:center !important;
}
.event-rsvp-toolbar .event-rsvp-btn-primary:hover{background:#166534 !important;transform:translateY(-1px) !important}
.event-rsvp-toolbar .event-rsvp-hint{color:#9ca3af !important;font-size:12px !important}

/* ═══════════════════════════════════════════════════════════════
   三、座位图页面（.event-rsvp-seat-page）
   ═══════════════════════════════════════════════════════════════ */
.event-rsvp-seat-page{
    background:#fff !important;
    color:#1f2937 !important;
    font-size:14px !important;
    max-width:1000px !important;
    margin:0 auto !important;
    padding:16px !important;
}
.event-rsvp-seat-page h2{font-size:20px !important;font-weight:700 !important;color:#111827 !important;margin:0 0 16px !important}

/* 座位图网格：第一列固定给行字母头，其余给座位格（1fr 均分容器宽度自适应） */
.event-rsvp-seat-page .event-rsvp-seat-map{
    display:grid !important;
    grid-template-columns:32px repeat(var(--seat-cols,8),minmax(52px,1fr)) !important;
    gap:5px !important;
    margin:14px 0 !important;
    overflow-x:auto !important;
    max-width:100% !important;
    padding:8px !important;
    background:#fafbfc !important;
    border:1px solid #e5e7eb !important;
    border-radius:10px !important;
}
.event-rsvp-seat-page .event-rsvp-seat-row{display:contents !important}
.event-rsvp-seat-page .event-rsvp-seat-corner{
    display:flex !important;align-items:center !important;justify-content:center !important;
    width:32px !important;min-width:32px !important;font-size:11px !important;font-weight:700 !important;color:#6b7280 !important;
}
.event-rsvp-seat-page .event-rsvp-seat-head{
    display:flex !important;align-items:center !important;justify-content:center !important;
    font-size:11px !important;font-weight:600 !important;color:#9ca3af !important;min-height:24px !important;
}
.event-rsvp-seat-page .event-rsvp-seat{
    display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;
    width:auto !important;min-width:0 !important;max-width:100% !important;height:58px !important;min-height:58px !important;padding:6px 6px !important;
    border-radius:8px !important;font-size:11px !important;box-sizing:border-box !important;
    border:1.5px solid #e5e7eb !important;background:#fff !important;color:#374151 !important;
    cursor:default !important;transition:all .12s !important;overflow:hidden !important;
}
.event-rsvp-seat-page .event-rsvp-seat.is-empty{background:#f9fafb !important;border-color:#f3f4f6 !important;color:#d1d5db !important}
.event-rsvp-seat-page .event-rsvp-seat.is-empty:hover{border-color:#d1d5db !important;color:#9ca3af !important}
.event-rsvp-seat-page .event-rsvp-seat.is-taken{background:#ecfdf5 !important;border-color:#6ee7b7 !important;color:#065f46 !important}
.event-rsvp-seat-page .event-rsvp-seat.is-checked{background:#1f883d !important;border-color:#1f883d !important;color:#fff !important}
.event-rsvp-seat-page .event-rsvp-seat.is-stale{background:#fff7ed !important;border-color:#fdba74 !important;color:#c2410c !important;cursor:not-allowed !important}
.event-rsvp-seat-page .event-rsvp-seat .event-rsvp-seat-no{font-weight:700 !important;font-size:12px !important;line-height:1.2 !important;max-width:100% !important;overflow:hidden !important;text-overflow:ellipsis !important;white-space:nowrap !important}
.event-rsvp-seat-page .event-rsvp-seat .event-rsvp-seat-who{font-size:10px !important;max-width:100% !important;width:100% !important;overflow:hidden !important;text-overflow:ellipsis !important;white-space:nowrap !important;opacity:.85 !important;text-align:center !important}
.event-rsvp-seat-page button.event-rsvp-seat:hover:not(:disabled){border-color:#1f883d !important;box-shadow:0 0 0 2px rgba(31,136,61,.15) !important}
.event-rsvp-seat-page button.event-rsvp-seat:disabled{cursor:not-allowed !important;opacity:.6 !important}

/* 座位图操作表单 */
.event-rsvp-seat-page .event-rsvp-seat-forms{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:10px 16px !important;
    align-items:flex-start !important;
    margin:14px 0 !important;
    padding:14px !important;
    background:#fafbfc !important;
    border:1px solid #e5e7eb !important;
    border-radius:10px !important;
}
.event-rsvp-seat-page .event-rsvp-seat-forms .event-rsvp-inline-form{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    align-items:center !important;
    margin:0 !important;
}
.event-rsvp-seat-page .event-rsvp-seat-forms select,
.event-rsvp-seat-page .event-rsvp-seat-forms input[type="text"],
.event-rsvp-seat-page .event-rsvp-seat-forms input[type="number"]{
    padding:8px 10px !important;
    border:1px solid #d1d5db !important;
    border-radius:8px !important;
    font-size:13px !important;
    color:#111827 !important;
    background:#fff !important;
    max-width:220px !important;
    box-sizing:border-box !important;
    height:38px !important;
}
.event-rsvp-seat-page .event-rsvp-seat-forms select{min-width:140px !important}
.event-rsvp-seat-page .event-rsvp-seat-forms button{
    padding:8px 16px !important;
    border-radius:8px !important;
    border:none !important;
    font-size:13px !important;
    font-weight:600 !important;
    cursor:pointer !important;
    background:#1f883d !important;
    color:#fff !important;
    height:38px !important;
    white-space:nowrap !important;
}
.event-rsvp-seat-page .event-rsvp-seat-forms button.event-rsvp-btn-ghost{
    background:#fff !important;
    border:1px solid #d1d5db !important;
    color:#374151 !important;
}
.event-rsvp-seat-page .event-rsvp-seat-forms button:hover{opacity:.9 !important}

/* 图外座位提示 */
.event-rsvp-seat-page .event-rsvp-seat-outside{
    margin:8px 0 !important;padding:10px 14px !important;
    background:#fffbeb !important;border:1px solid #fde68a !important;border-radius:8px !important;
    font-size:12px !important;color:#92400e !important;
}

/* ═══════════════════════════════════════════════════════════════
   四、举报处理台（.report-center-page）
   ═══════════════════════════════════════════════════════════════ */
.report-center-page{
    background:#fff !important;
    color:#1f2937 !important;
    font-size:14px !important;
    line-height:1.6 !important;
    max-width:860px !important;
    margin:0 auto !important;
    padding:16px !important;
}
.report-center-page *,
.report-center-page *::before,
.report-center-page *::after{box-sizing:border-box !important}

.report-center-page .report-center-head{
    background:#fff !important;
    border:none !important;
    border-bottom:2px solid #e5e7eb !important;
    border-radius:0 !important;
    padding:0 0 14px !important;
    margin:0 0 16px !important;
    display:flex !important;
    justify-content:space-between !important;
    align-items:flex-start !important;
    gap:12px !important;
    flex-wrap:wrap !important;
}
.report-center-page .report-center-head h2{
    font-size:22px !important;
    font-weight:700 !important;
    color:#111827 !important;
    margin:0 0 4px !important;
}
.report-center-page .report-center-head p{
    font-size:13px !important;
    color:#6b7280 !important;
    margin:0 !important;
}
.report-center-page .report-center-muted{
    color:#9ca3af !important;
    font-size:13px !important;
    margin:0 !important;
}

/* 状态标签页 */
.report-center-page .report-center-tabs{
    display:flex !important;
    gap:6px !important;
    flex-wrap:wrap !important;
    margin:0 0 16px !important;
    padding:0 !important;
}
.report-center-page .report-center-tab{
    display:inline-block !important;
    padding:7px 16px !important;
    border-radius:8px !important;
    border:1px solid #e5e7eb !important;
    font-size:13px !important;
    font-weight:500 !important;
    text-decoration:none !important;
    background:#fff !important;
    color:#374151 !important;
    transition:all .12s !important;
}
.report-center-page .report-center-tab:hover{border-color:#1f883d !important;color:#1f883d !important}
.report-center-page .report-center-tab.is-active{
    background:#1f883d !important;
    color:#fff !important;
    border-color:#1f883d !important;
    font-weight:600 !important;
}

/* 案件卡 */
.report-center-page .report-center-list{
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
}
.report-center-page .report-center-case{
    background:#fff !important;
    border:1px solid #e5e7eb !important;
    border-radius:12px !important;
    padding:16px 18px !important;
    box-shadow:0 1px 4px rgba(0,0,0,.05) !important;
    transition:box-shadow .15s !important;
}
.report-center-page .report-center-case:hover{box-shadow:0 3px 10px rgba(0,0,0,.08) !important}
.report-center-page .report-center-case.is-overdue{border-left:4px solid #ef4444 !important}
.report-center-page .report-center-case header{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    flex-wrap:wrap !important;
    margin:0 0 10px !important;
    padding:0 !important;
    font-size:13px !important;
}
.report-center-page .report-center-case header strong{
    font-size:15px !important;
    color:#111827 !important;
}
.report-center-page .report-center-case header time{
    margin-left:auto !important;
    color:#9ca3af !important;
    font-size:12px !important;
}
.report-center-page .report-center-case h3{
    font-size:15px !important;
    font-weight:600 !important;
    color:#111827 !important;
    margin:0 0 8px !important;
    line-height:1.4 !important;
}
/* 状态标签 */
.report-center-page .report-center-status{
    display:inline-block !important;
    padding:3px 10px !important;
    border-radius:6px !important;
    font-size:11px !important;
    font-weight:600 !important;
    background:#f3f4f6 !important;
    color:#6b7280 !important;
    white-space:nowrap !important;
}
.report-center-page .report-center-status.is-0{background:#fef3c7 !important;color:#b45309 !important}
.report-center-page .report-center-status.is-1{background:#dbeafe !important;color:#1d4ed8 !important}
.report-center-page .report-center-status.is-2{background:#d1fae5 !important;color:#065f46 !important}
.report-center-page .report-center-status.is-3{background:#f3f4f6 !important;color:#6b7280 !important}
.report-center-page .report-center-status.is-escalated,
.report-center-page .report-center-status.is-overdue{background:#fee2e2 !important;color:#b91c1c !important}

/* 定位信息网格 */
.report-center-page .report-center-meta{
    display:grid !important;
    grid-template-columns:repeat(auto-fit,minmax(200px,1fr)) !important;
    gap:8px 16px !important;
    margin:8px 0 10px !important;
    padding:10px 14px !important;
    background:#f9fafb !important;
    border:1px solid #f3f4f6 !important;
    border-radius:8px !important;
}
.report-center-page .report-center-meta span{
    display:flex !important;
    gap:6px !important;
    align-items:baseline !important;
    font-size:12px !important;
    color:#374151 !important;
    min-width:0 !important;
    overflow-wrap:break-word !important;
}
.report-center-page .report-center-meta b{
    flex:none !important;
    color:#9ca3af !important;
    font-weight:500 !important;
    font-size:11px !important;
    min-width:56px !important;
}
.report-center-page .report-center-meta a{
    color:#1f883d !important;
    text-decoration:none !important;
    font-weight:600 !important;
}
.report-center-page .report-center-meta a:hover{text-decoration:underline !important}

/* 举报原因和详情 */
.report-center-page .report-center-reason{
    font-size:13px !important;
    color:#111827 !important;
    font-weight:600 !important;
    margin:6px 0 4px !important;
}
.report-center-page .report-center-reason+.p,
.report-center-page>.report-center-page p{
    font-size:13px !important;
    color:#4b5563 !important;
    margin:4px 0 !important;
}
.report-center-page .report-center-case p{
    font-size:13px !important;
    color:#4b5563 !important;
    margin:4px 0 !important;
}

/* 操作表单 */
.report-center-page .report-center-inline-form{
    display:flex !important;
    gap:8px !important;
    align-items:center !important;
    margin:10px 0 4px !important;
    flex-wrap:wrap !important;
}
.report-center-page .report-center-inline-form button{
    padding:8px 18px !important;
    background:#1f883d !important;
    color:#fff !important;
    border:none !important;
    border-radius:8px !important;
    font-size:13px !important;
    font-weight:600 !important;
    cursor:pointer !important;
    white-space:nowrap !important;
}
.report-center-page .report-center-inline-form button:hover{background:#166534 !important}

/* 折叠操作表单 */
.report-center-page .report-center-handle,
.report-center-page .report-center-appeal-review{
    margin:12px 0 4px !important;
    border:1px solid #e5e7eb !important;
    border-radius:10px !important;
    background:#fafbfc !important;
    overflow:hidden !important;
}
.report-center-page .report-center-handle summary,
.report-center-page .report-center-appeal-review summary{
    padding:10px 14px !important;
    font-size:13px !important;
    font-weight:600 !important;
    color:#1f883d !important;
    cursor:pointer !important;
    background:#f0faf4 !important;
    list-style:none !important;
    display:flex !important;
    align-items:center !important;
    gap:6px !important;
}
.report-center-page .report-center-handle summary::before,
.report-center-page .report-center-appeal-review summary::before{content:"▸ ";font-size:11px !important}
.report-center-page .report-center-handle[open] summary::before,
.report-center-page .report-center-appeal-review[open] summary::before{content:"▾ "}
.report-center-page .report-center-handle[open] summary,
.report-center-page .report-center-appeal-review[open] summary{border-bottom:1px solid #e5e7eb !important}
.report-center-page .report-center-handle form,
.report-center-page .report-center-appeal-review form{
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
    padding:12px 14px !important;
    margin:0 !important;
}
.report-center-page .report-center-handle label,
.report-center-page .report-center-appeal-review label{
    display:flex !important;
    flex-direction:column !important;
    gap:4px !important;
    font-size:12px !important;
    color:#374151 !important;
    font-weight:500 !important;
}
.report-center-page .report-center-handle select,
.report-center-page .report-center-handle textarea,
.report-center-page .report-center-appeal-review textarea{
    padding:8px 10px !important;
    border:1px solid #d1d5db !important;
    border-radius:8px !important;
    font-size:13px !important;
    background:#fff !important;
    color:#111827 !important;
    width:100% !important;
    box-sizing:border-box !important;
    font-family:inherit !important;
}
.report-center-page .report-center-handle textarea{min-height:60px !important;resize:vertical !important}
.report-center-page .report-center-handle select:focus,
.report-center-page .report-center-handle textarea:focus,
.report-center-page .report-center-appeal-review textarea:focus{
    border-color:#1f883d !important;
    outline:none !important;
    box-shadow:0 0 0 3px rgba(31,136,61,.1) !important;
}
.report-center-page .report-center-handle button,
.report-center-page .report-center-appeal-review button[type="submit"]{
    align-self:flex-start !important;
    padding:8px 20px !important;
    background:#1f883d !important;
    color:#fff !important;
    border:none !important;
    border-radius:8px !important;
    font-size:13px !important;
    font-weight:600 !important;
    cursor:pointer !important;
}
.report-center-page .report-center-appeal-review label[style*="flex-direction:row"],
.report-center-page .report-center-appeal-review label:has(input[type="radio"]){
    flex-direction:row !important;
    align-items:center !important;
    gap:6px !important;
    font-weight:400 !important;
}

/* 分页 */
.report-center-page .pagination{margin:16px 0 0 !important;padding:0 !important}
.report-center-page .pagination ul{
    display:flex !important;gap:6px !important;flex-wrap:wrap !important;
    list-style:none !important;margin:0 !important;padding:0 !important;
}
.report-center-page .pagination li a,
.report-center-page .pagination li span{
    display:inline-block !important;
    padding:7px 14px !important;
    border:1px solid #e5e7eb !important;
    border-radius:8px !important;
    font-size:13px !important;
    color:#374151 !important;
    text-decoration:none !important;
    background:#fff !important;
}
.report-center-page .pagination li a:hover{border-color:#1f883d !important;color:#1f883d !important}
.report-center-page .pagination .current a,
.report-center-page .pagination .current span,
.report-center-page .pagination li.on a{
    background:#1f883d !important;
    border-color:#1f883d !important;
    color:#fff !important;
    font-weight:600 !important;
}

/* 空状态 */
.report-center-page .forum-level-empty,
.report-center-page .report-center-empty{
    text-align:center !important;
    padding:40px 16px !important;
    color:#9ca3af !important;
    font-size:14px !important;
    background:#fafbfc !important;
    border:1px dashed #e5e7eb !important;
    border-radius:12px !important;
    margin:12px 0 !important;
}

@media(max-width:720px){
    .report-center-page{padding:10px !important}
    .report-center-page .report-center-meta{grid-template-columns:1fr !important}
    .report-center-page .report-center-case header{flex-direction:column !important;align-items:flex-start !important}
    .report-center-page .report-center-case header time{margin-left:0 !important}
    .report-center-page .report-center-tabs{gap:4px !important}
    .report-center-page .report-center-tab{padding:6px 12px !important;font-size:12px !important}
    .event-rsvp-seat-page .event-rsvp-seat-map{
        grid-template-columns:28px repeat(var(--seat-cols,8),minmax(36px,1fr)) !important;
        gap:3px !important;
    }
    .event-rsvp-seat-page .event-rsvp-seat{
        min-width:36px !important;min-height:44px !important;padding:4px 2px !important;
    }
}

/* ===== 追加：活动详情页座位图 + 开关按钮 + 发布按钮（v4.4.0 重写） ===== */

/* 编辑页勾选开关：统一 48x26 胶囊（审核/口令/评价打分等），状态一目了然 */
.event-rsvp-panel .checks .check input[type="checkbox"]{
    width:48px!important;height:26px!important;
    -webkit-appearance:none!important;appearance:none!important;
    background:#d1d5db!important;border-radius:999px!important;
    position:relative!important;cursor:pointer!important;transition:background .2s!important;
    border:none!important;margin:2px 0 0 0!important;flex:none!important;box-shadow:inset 0 1px 2px rgba(0,0,0,.08)!important;
}
.event-rsvp-panel .checks .check input[type="checkbox"]:checked{background:#1f883d!important}
.event-rsvp-panel .checks .check input[type="checkbox"]::before{
    content:''!important;position:absolute!important;
    width:20px!important;height:20px!important;border-radius:50%!important;
    background:#fff!important;top:3px!important;left:3px!important;transition:left .2s!important;
    box-shadow:0 1px 2px rgba(0,0,0,.25)!important;
}
.event-rsvp-panel .checks .check input[type="checkbox"]:checked::before{left:25px!important}

/* 详情页/座位页勾选框：统一 44x24 滑动胶囊开关（协作者权限等），状态一目了然、点击区足够大 */
.event-rsvp-detail .check input[type="checkbox"],
.event-rsvp-seat-page .check input[type="checkbox"],
.event-rsvp-seat-forms .event-rsvp-inline-form input[type="checkbox"]{
    width:44px!important;height:24px!important;min-width:44px!important;max-width:44px!important;
    -webkit-appearance:none!important;appearance:none!important;
    background:#d1d5db!important;border-radius:999px!important;
    position:relative!important;cursor:pointer!important;transition:background .2s!important;
    border:none!important;padding:0!important;margin:0 2px 0 0!important;flex:none!important;
    box-shadow:inset 0 1px 2px rgba(0,0,0,.08)!important;vertical-align:middle!important;
}
.event-rsvp-detail .check input[type="checkbox"]:checked,
.event-rsvp-seat-page .check input[type="checkbox"]:checked,
.event-rsvp-seat-forms .event-rsvp-inline-form input[type="checkbox"]:checked{background:#1f883d!important}
.event-rsvp-detail .check input[type="checkbox"]::before,
.event-rsvp-seat-page .check input[type="checkbox"]::before,
.event-rsvp-seat-forms .event-rsvp-inline-form input[type="checkbox"]::before{
    content:''!important;position:absolute!important;
    width:18px!important;height:18px!important;border-radius:50%!important;
    background:#fff!important;top:3px!important;left:3px!important;transition:left .2s!important;
    box-shadow:0 1px 2px rgba(0,0,0,.25)!important;
}
.event-rsvp-detail .check input[type="checkbox"]:checked::before,
.event-rsvp-seat-page .check input[type="checkbox"]:checked::before,
.event-rsvp-seat-forms .event-rsvp-inline-form input[type="checkbox"]:checked::before{left:23px!important}
/* 开关与标签文字垂直居中 */
.event-rsvp-detail .check,
.event-rsvp-seat-page .check,
.event-rsvp-seat-forms .event-rsvp-inline-form label.check{align-items:center!important;min-height:0!important}

/* 「+ 发布活动」：紧凑胶囊，右对齐（不再占用整条工具栏的高度视觉） */
.event-rsvp-toolbar .tab-post{
    display:inline-flex!important;align-items:center!important;margin-left:auto!important;
    min-height:0!important;padding:5px 14px!important;
    border:1px solid #1f883d!important;border-radius:8px!important;
    background:#1f883d!important;color:#fff!important;
    font-size:13px!important;font-weight:600!important;line-height:1.4!important;
    white-space:nowrap!important;text-decoration:none!important;
}
.event-rsvp-toolbar .tab-post:hover{opacity:.9!important;text-decoration:none!important}

/* 活动详情页座位图（.event-rsvp-detail）：详情页渲染纯座位格（无行列字母头），
   列模板必须与内容一一对应。:not(.event-rsvp-seat-page) 排除管理页——
   管理页 class 同时带 event-rsvp-detail，此前该段无头列模板以 !important 覆盖了
   管理页带头列模板，导致 7 项塞进 6 列、每行末尾换行错位。 */
.event-rsvp-detail:not(.event-rsvp-seat-page) .event-rsvp-seat-map{
    display:grid!important;
    /* 自适应：格子均分容器宽度（最小 64px），列多时才横向滚动；不再固定 56px 小格 */
    grid-template-columns:repeat(var(--seat-cols,8),minmax(64px,1fr))!important;
    gap:6px!important;
    overflow-x:auto!important;max-width:100%!important;
    background:#fafbfc!important;border:1px solid #e5e7eb!important;
    border-radius:10px!important;padding:10px!important;
}
.event-rsvp-detail:not(.event-rsvp-seat-page) .event-rsvp-seat-row{display:contents!important}
.event-rsvp-detail:not(.event-rsvp-seat-page) .event-rsvp-seat{
    display:flex!important;flex-direction:column!important;
    align-items:center!important;justify-content:center!important;
    width:auto!important;min-width:0!important;max-width:100%!important;
    height:58px!important;padding:4px 6px!important;
    border-radius:8px!important;font-size:11px!important;box-sizing:border-box!important;
    border:1.5px solid #e5e7eb!important;background:#fff!important;color:#374151!important;
    transition:all .12s!important;overflow:hidden!important;
}
.event-rsvp-detail:not(.event-rsvp-seat-page) .event-rsvp-seat .event-rsvp-seat-no{
    font-weight:700!important;font-size:12px!important;line-height:1.2!important;
    max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
}
.event-rsvp-detail:not(.event-rsvp-seat-page) .event-rsvp-seat .event-rsvp-seat-who{
    font-size:10px!important;max-width:100%!important;width:100%!important;overflow:hidden!important;
    text-overflow:ellipsis!important;white-space:nowrap!important;opacity:.85!important;text-align:center!important;
}
.event-rsvp-detail:not(.event-rsvp-seat-page) .event-rsvp-seat.is-empty{background:#f9fafb!important;border-color:#f3f4f6!important;color:#d1d5db!important}
.event-rsvp-detail:not(.event-rsvp-seat-page) .event-rsvp-seat.is-taken{background:#ecfdf5!important;border-color:#6ee7b7!important;color:#065f46!important}
.event-rsvp-detail:not(.event-rsvp-seat-page) .event-rsvp-seat.is-checked{background:#1f883d!important;border-color:#1f883d!important;color:#fff!important}
.event-rsvp-detail:not(.event-rsvp-seat-page) .event-rsvp-seat.is-stale{background:#fff7ed!important;border-color:#fdba74!important;color:#c2410c!important}

@media(max-width:720px){
    .event-rsvp-detail:not(.event-rsvp-seat-page) .event-rsvp-seat-map{grid-template-columns:repeat(var(--seat-cols,8),minmax(40px,1fr))!important}
    .event-rsvp-detail:not(.event-rsvp-seat-page) .event-rsvp-seat{height:46px!important}
    .event-rsvp-seat-page .event-rsvp-seat-map{grid-template-columns:26px repeat(var(--seat-cols,8),minmax(40px,1fr))!important}
    .event-rsvp-seat-page .event-rsvp-seat{height:46px!important}
    .event-rsvp-seat-page .event-rsvp-seat-corner{width:26px!important;font-size:10px!important}
}
.aep-page{max-width:960px;margin:0 auto;padding:16px;background:var(--bg,#fff);min-height:60vh;border-radius:var(--radius,12px)}
.aep-hero{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:22px 4px 16px;border-bottom:2px solid var(--line-soft,#e5e7eb);margin-bottom:20px}
.aep-hero-info b{display:block;font-size:22px;color:var(--text,#111827)}
.aep-hero-info span{font-size:12px;color:var(--text-subtle,#9ca3af)}
.aep-hero-groups{display:flex;gap:6px;flex-wrap:wrap}
.aep-group-chip{padding:4px 12px;border-radius:999px;background:var(--success-soft,#f0fdf4);color:var(--success,#166534);font-size:12px;font-weight:600;border:1px solid var(--success-border,#bbf7d0)}
.aep-group-chip.is-special{background:var(--info-soft,#eff6ff);color:var(--info,#1d4ed8);border-color:var(--info-border,#bfdbfe)}
.aep-section-title{font-size:16px;font-weight:700;color:var(--text,#111827);margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line-soft,#f3f4f6)}
.aep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:14px}
.aep-card{border:1px solid var(--line-soft,#e5e7eb);border-radius:12px;padding:16px;background:var(--bg,#fff);display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s,transform .15s}
.aep-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.08);transform:translateY(-1px)}
/* 权限明细 v2 */
.aep-perm-table{margin:0 0 10px}
.aep-perm-module{font-weight:700}
.aep-state{display:inline-block;padding:2px 10px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:12px}
.aep-state.is-ok{background:var(--success-soft,#f0fdf4);color:var(--success,#166534)}
.aep-perm-bits{display:flex;flex-wrap:wrap;gap:6px}
.aep-perm-bit{padding:2px 9px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0;color:#94a3b8;font-size:12px}
.aep-perm-bit.is-on{background:var(--success-soft,#f0fdf4);border-color:var(--success-border,#bbf7d0);color:var(--success,#166534);font-weight:600}
.aep-detail-row{display:flex;gap:12px;padding:8px 2px;border-bottom:1px dashed var(--line-soft,#e5e7eb);align-items:baseline}
.aep-detail-name{flex:0 0 88px;font-weight:700;font-size:13px}
.aep-detail-bits{flex:1;font-size:13px;color:var(--text,#111827)}
.aep-card-head{display:flex;align-items:center;gap:8px}
.aep-card-head .aep-icon{font-size:20px;line-height:1}
.aep-card-head b{font-size:15px;color:var(--text,#111827)}
.aep-actions{display:flex;gap:6px;flex-wrap:wrap}
.aep-action-tag{padding:3px 10px;border-radius:999px;background:var(--bg-soft,#f3f4f6);color:var(--text-secondary,#374151);font-size:11px;font-weight:500}
.aep-pending{font-size:12px;color:var(--danger,#dc2626);font-weight:600;padding:4px 0}
.aep-entry-btn{display:inline-flex;align-items:center;padding:7px 16px;background:var(--primary,#1f883d);color:#fff;border-radius:8px;font-size:12px;font-weight:600;text-decoration:none;margin-top:auto;align-self:flex-start}
.aep-entry-btn:hover{filter:brightness(1.08)}
.aep-detail{border:1px solid var(--line-soft,#e5e7eb);border-radius:12px;overflow:hidden;margin-bottom:8px}
.aep-detail-row{display:flex;align-items:center;gap:12px;padding:9px 14px;border-top:1px solid var(--line-soft,#e5e7eb)}
.aep-detail-row:first-child{border-top:0}
.aep-detail-name{min-width:110px;font-weight:600;font-size:13px;color:var(--text,#111827)}
.aep-detail-bits{font-size:12px;color:var(--text-secondary,#374151);line-height:1.7}
.aep-note{font-size:12px;color:var(--text-subtle,#9ca3af);margin:6px 0 0}
@media(max-width:720px){.aep-grid{grid-template-columns:1fr}.aep-hero{flex-direction:column;align-items:flex-start}.aep-detail-row{flex-direction:column;align-items:flex-start;gap:4px}}
/* #29 侧边栏快捷功能红点：缩小并保持「管理入口」文字完整（核心 .notify-badge 18px 偏大） */
.feature-links a{min-width:0}
.feature-links a .notify-badge{min-width:15px;height:15px;padding:0 4px;margin-left:4px;font-size:10px;line-height:15px;flex:0 0 auto;border-radius:999px}
@media(max-width:480px){.feature-links a .notify-badge{min-width:13px;height:13px;padding:0 3px;font-size:9px;line-height:13px}}
/* 夜间模式适配：跟随核心暗色作用域，覆盖 aep 面板配色 */
body.dark .aep-page,html[data-theme=dark] .aep-page{background:var(--panel,#151a22)}
body.dark .aep-card,html[data-theme=dark] .aep-card{background:var(--panel,#1b212c);border-color:rgba(255,255,255,.09)}
body.dark .aep-card:hover,html[data-theme=dark] .aep-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.5)}
body.dark .aep-hero,html[data-theme=dark] .aep-hero{border-bottom-color:rgba(255,255,255,.1)}
body.dark .aep-section-title,html[data-theme=dark] .aep-section-title{border-bottom-color:rgba(255,255,255,.08)}
body.dark .aep-group-chip,html[data-theme=dark] .aep-group-chip{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.3);color:#86efac}
body.dark .aep-group-chip.is-special,html[data-theme=dark] .aep-group-chip.is-special{background:rgba(59,130,246,.15);border-color:rgba(59,130,246,.35);color:#93c5fd}
/* md_video */
.md-video-wrap{max-width:100%;margin:10px 0;border-radius:var(--radius-sm);overflow:hidden;background:var(--inverse)}
.md-video-wrap video{display:block;width:100%;max-height:480px;border-radius:var(--radius-sm)}
/* nuanyu_theme */
/* 设计令牌：只定义形状与派生色，颜色全部跟随系统变量 */
html:not(:has(.nuanyu-theme-admin-block)){--radius:16px;--radius-sm:10px;--nuanyu-theme-ink-a08:color-mix(in srgb, var(--text) 8%, transparent);--nuanyu-theme-brand-a10:color-mix(in srgb, var(--brand) 10%, transparent);--nuanyu-theme-brand-a28:color-mix(in srgb, var(--brand) 28%, transparent);--nuanyu-theme-brand-a52:color-mix(in srgb, var(--brand) 52%, transparent);--nuanyu-theme-line-hover:color-mix(in srgb, var(--line) 55%, var(--text-subtle));--nuanyu-theme-scroll:color-mix(in srgb, var(--text) 16%, transparent);--nuanyu-theme-scroll-hover:color-mix(in srgb, var(--brand) 60%, transparent);scrollbar-color:var(--nuanyu-theme-scroll) transparent;scroll-padding-top:70px}
/* 焦点环：核心默认值为绿色，跟随主题统一去掉，聚焦反馈只保留边框变色 */
html:not(:has(.nuanyu-theme-admin-block)){--focus-ring:transparent!important}
html:not(:has(.nuanyu-theme-admin-block))[data-color-scheme-dark-mode-theme="dark"]{--focus-ring:transparent!important}

:where(html:not(:has(.nuanyu-theme-admin-block)))::-webkit-scrollbar{width:10px;height:10px}
:where(html:not(:has(.nuanyu-theme-admin-block)))::-webkit-scrollbar-track{background:transparent}
:where(html:not(:has(.nuanyu-theme-admin-block)))::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:var(--nuanyu-theme-scroll);background-clip:content-box}
:where(html:not(:has(.nuanyu-theme-admin-block)))::-webkit-scrollbar-thumb:hover{background:var(--nuanyu-theme-scroll-hover);background-clip:content-box}
:where(html:not(:has(.nuanyu-theme-admin-block))) ::selection{background:var(--nuanyu-theme-brand-a28);color:var(--text)}

/* 顶栏 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .top{position:sticky;top:0;z-index:30;background:color-mix(in srgb, var(--panel) 90%, transparent);border-bottom:1px solid var(--line-soft);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .bar{max-width:1300px;height:52px;gap:6px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .brand:before{border-radius:50%}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-nav{gap:6px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-link{height:32px;max-width:120px;padding:0 12px;border-radius:999px;transition:background var(--transition-normal),color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-link:hover{background:var(--nuanyu-theme-brand-a10);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-link.active{background:var(--brand-soft);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-more-region{position:sticky;top:52px;z-index:29;background:var(--panel);border-bottom:1px solid var(--line-soft);box-shadow:0 16px 28px -24px var(--shadow-medium)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-more-toggle{height:32px;padding:0 12px;border-radius:999px;transition:background var(--transition-normal),color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-more-toggle:hover{background:var(--nuanyu-theme-brand-a10);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-more-toggle[aria-expanded=true]{background:var(--brand-soft);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-more-panel{gap:8px 10px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-more-link{border-radius:999px;transition:background var(--transition-normal),color var(--transition-normal),border-color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-more-link:hover{border-color:transparent;background:var(--nuanyu-theme-brand-a10);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-more-link.active{border-color:transparent;background:var(--brand-soft);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .search-page-link{border-radius:999px}

/* 骨架 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .wrap{max-width:1300px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .home-shell{background:transparent;border:0;border-radius:0;padding:0;box-shadow:none}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-layout{gap:24px;align-items:flex-start}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel{background:var(--panel);border-radius:18px;padding:0 18px;box-shadow:0 2px 4px var(--shadow-base),0 12px 28px -22px var(--shadow-medium)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .user-panel{box-shadow:0 2px 4px var(--shadow-base),0 12px 28px -22px var(--shadow-medium)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.tab-bar{margin:0 -18px 14px;padding:14px 18px 12px;border-bottom:1px solid var(--line-soft)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.topic-toolbar,.main-panel>.profile-toolbar{margin:0 -18px 0;padding:12px 18px 10px;border-bottom:1px solid var(--line-soft)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.profile-toolbar{margin-bottom:14px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.breadcrumb{margin:0 -18px 2px;padding:14px 18px 10px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>:last-child{margin-bottom:0}
/* 插件自定义页面（签到、等级、抽卡、充值…）根节点不被主题认管，底部会贴住面板；已知类型由各自规则负责，其余统一补底部留白 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>:last-child:not(script):not(style):not(.tab-bar):not(.topic-toolbar):not(.profile-toolbar):not(.breadcrumb):not(.post-list):not(.form-panel):not(.reply-panel):not(.search-page-head):not(.search-page-summary):not(.list):not(.box):not(.pagination-bar):not(.empty-state):not(.post-topic-title){margin-bottom:18px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.post-topic-title{margin:10px -18px 16px;padding:0 18px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.post-list{margin:0 -18px;padding:0 18px 12px;background:transparent;box-shadow:none;border-radius:0}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.post-list>.post-item:first-child{padding-top:12px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.list{margin:0 -18px;border-radius:0}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.box{margin:0 0 14px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.form-panel{margin:0;padding:16px 0 18px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.reply-panel{margin:12px -18px 0;padding:16px 18px 18px;border:0;border-top:1px solid var(--line-soft);border-radius:0;box-shadow:none;background:transparent}
:where(html:not(:has(.nuanyu-theme-admin-block))) .reply-panel :focus-visible,.reply-panel :focus,.nb-editor-field :focus-visible,.nb-editor-field :focus,.nb-editor-field:focus-within,.post-action-form :focus-visible,.post-action-form :focus{outline:0;box-shadow:none}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.pagination-bar{margin:0;padding:12px 0 2px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.empty-state{padding:26px 0}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.search-page-head{padding:14px 0 18px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.search-page-summary{padding:10px 0}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>:first-child:not(.tab-bar):not(.topic-toolbar):not(.profile-toolbar):not(.breadcrumb):not(.post-list):not(.form-panel):not(.reply-panel):not(.search-page-head):not(.list){margin-top:12px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .user-shell{padding:16px 18px 18px}

/* 左侧版块导航栏 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail{display:none;position:sticky;top:68px;align-self:start;max-height:calc(100vh - 88px);overflow:visible;padding:10px 10px 12px;background:var(--panel);border-radius:18px;box-shadow:0 2px 4px var(--shadow-base)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-head{display:flex;align-items:center;justify-content:flex-end;height:28px;margin-bottom:6px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-collapse{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;border:1px solid var(--line);border-radius:999px;background:var(--panel)!important;color:var(--text-muted)!important;box-shadow:0 1px 3px var(--shadow-base)!important;line-height:0;transition:color var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-collapse:hover{color:var(--brand)!important;border-color:var(--nuanyu-theme-brand-a28)!important;background:var(--nuanyu-theme-brand-a10)!important;box-shadow:0 3px 10px -3px var(--shadow-medium)!important}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-collapse svg{width:14px;height:14px;flex:0 0 14px;transition:transform var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-nav,.nuanyu-theme-rail-section{display:grid;gap:2px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft);overflow:auto;max-height:calc(100vh - 168px);scrollbar-width:thin}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-heading{padding:2px 10px 7px;color:var(--text-subtle);font-size:var(--font-size-xs)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-link{display:flex;align-items:center;gap:9px;min-height:34px;padding:0 10px;border-radius:10px;color:var(--text-muted);transition:background var(--transition-normal),color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-link:hover{background:var(--nuanyu-theme-brand-a10);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-link.active{background:var(--brand-soft);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-link svg{flex:0 0 17px;width:17px;height:17px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-link i{flex:0 0 20px;width:20px;text-align:center;font-size:var(--font-size-lg);line-height:1}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-img{flex:0 0 20px;width:20px;height:20px;object-fit:contain;border-radius:5px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-tile{display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;border-radius:7px;background:var(--nuanyu-theme-tile-bg);color:var(--nuanyu-theme-tile-fg);font-size:var(--font-size-xs);font-weight:700}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 帖子列表：仅顶层列表做通栏处理，嵌套列表（楼中楼）交给插件/核心默认样式 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-item:not(.quote-threads-child){gap:14px;min-height:64px;padding:18px 0;border-bottom:1px solid var(--line-soft);transition:background var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-item:not(.quote-threads-child):last-child{border-bottom:0}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-item.quote-threads-child{padding-top:14px;padding-bottom:14px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .quote-threads-toggle-row{margin-bottom:10px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-entry>.post-content{margin-top:10px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-item:hover,.profile-file-row:hover{background:transparent}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-list>.post-item:not(.post-entry)>.post-avatar{width:40px;height:40px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-avatar{border-radius:50%;margin-top:2px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-title-row{gap:8px}
/* faka 插件把标题行改成 flex 后，标题会整块换行、徽章被挤散；让标题弹性占据剩余宽度与徽章同排 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-title-row .post-title{flex:0 1 auto;min-width:0}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-title{line-height:1.5;transition:color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-title:hover{color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-meta{margin-top:5px;gap:0 10px;color:var(--text-subtle)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-meta a:hover{color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-meta .meta-icon{color:var(--text-disabled)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .topic-badge{height:20px;padding:0 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .topic-badge.pinned{background:var(--warning-soft);color:var(--warning)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .topic-badge.highlight{background:var(--danger-soft);color:var(--danger)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-user-group,.user-state-tag{border-radius:999px;background:var(--bg);color:var(--text-muted)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-tag.post-forum-badge{margin-left:auto;align-self:center;padding:4px 11px;border:1px solid transparent;border-radius:999px;background:var(--bg);color:var(--text-muted);transition:background var(--transition-normal),color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-tag.post-forum-badge:hover{border-color:transparent;background:var(--brand-soft);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .topic-pages a{border-radius:6px}

/* 楼层列表：保持核心扁平结构，楼中楼不额外加边框 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-topic-title{margin-bottom:16px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-time{color:var(--text-subtle)}

/* 侧栏卡片 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .sidebar{gap:16px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .sidebar .card,.box,.list,.user-header,.user-bio{background:var(--panel);border:0;border-radius:var(--radius);box-shadow:0 2px 4px var(--shadow-base)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .sidebar .card{transition:box-shadow var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .sidebar .card:hover{box-shadow:0 2px 4px var(--shadow-base),0 14px 30px -20px var(--shadow-medium)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .quick-wrap,.stats-wrap{padding:14px 16px 16px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .quick-title,.stats-title,.new-users-title{display:flex;align-items:center;gap:7px;color:var(--text)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .quick-title:before,.stats-title:before,.new-users-title:before{content:"";flex:0 0 3px;width:3px;height:13px;border-radius:2px;background:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .quick-links li{border-bottom:1px solid var(--line-soft)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .quick-links a{min-height:36px;color:var(--text-muted);transition:color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .quick-links a:hover{color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .quick-links a:before{width:5px;height:5px;background:var(--nuanyu-theme-line-hover)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .quick-links a.active:before,.quick-links a:hover:before{background:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .notice-links li:before{top:19px;width:5px;height:5px;border-radius:50%;background:var(--nuanyu-theme-brand-a52)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .user-wrap{padding:16px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .user-avatar-big{width:52px;height:52px;border-radius:50%}
:where(html:not(:has(.nuanyu-theme-admin-block))) .user-links{gap:2px 10px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .user-links a{min-height:30px;border-radius:8px;transition:background var(--transition-normal),color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .user-links a:hover{background:transparent;color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .side-auth{display:grid;grid-template-columns:1fr 1fr;gap:8px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .side-auth a{min-height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border-radius:var(--radius-sm)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .side-auth a:first-child{background:var(--inverse);border-color:var(--inverse);color:var(--inverse-text)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .side-auth a:not(:first-child){background:var(--panel);border:1px solid var(--line);color:var(--text)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .new-users{gap:12px 8px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nu-avatar-circle{border-radius:50%;overflow:hidden}
:where(html:not(:has(.nuanyu-theme-admin-block))) .stats-sub{color:var(--text-muted);line-height:1.7}

/* 正文排版 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-content{line-height:1.85}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-content a{color:var(--brand);text-decoration:underline;text-decoration-color:var(--nuanyu-theme-brand-a28);text-decoration-thickness:1px;text-underline-offset:3px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-content a:hover{color:var(--brand-hover);text-decoration-color:currentColor}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-content a.post-mention,.post-content a.post-mention:hover,.post-content a.post-floor-mention:hover{color:var(--text-muted);text-decoration:none}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-content blockquote{margin:10px 0 14px;padding:2px 0 2px 14px;border-left:3px solid var(--nuanyu-theme-brand-a52);color:var(--text-muted)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-content code{padding:2px 6px;border:0;border-radius:6px;background:var(--bg);color:var(--text-muted)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-content pre{padding:16px 18px;border:1px solid var(--inverse-border);border-radius:var(--radius);box-shadow:none;background:var(--inverse)!important;color:var(--inverse-text)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-content th,.markdown-table-wrap th{background:var(--bg)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-content th,.post-content td,.markdown-table-wrap th,.markdown-table-wrap td{border-color:var(--line-soft)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .list th{background:var(--bg)}

/* 控件 */
/* Tab 采用核心原生分段样式：整体带边框、活动项为主题色实底 + 反色文字，此处不再覆写 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .tab-bar:not(.plugin-tabs):not(.admin-tabs)>.tab{padding:6px 15px;transition:background var(--transition-normal),color var(--transition-normal),border-color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .tab-bar>.tab.tab-line-start{border-top-left-radius:7px;border-bottom-left-radius:7px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .tab-bar>.tab.tab-line-end{border-top-right-radius:7px;border-bottom-right-radius:7px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .tab-bar>.tab.tab-wrapped{margin-top:4px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .pagination ul{gap:6px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .pagination a,.pagination .ellipsis{min-width:32px;height:32px;border-radius:var(--radius-sm);transition:background var(--transition-normal),color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .pagination a{background:var(--panel);box-shadow:0 1px 2px var(--shadow-base)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .pagination a:hover{background:var(--brand-soft);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .pagination li.active a{background:var(--brand);color:var(--inverse-text)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .btn,.btn-post,.reply-login-box a,.mobile-menu-close{border-radius:var(--radius-sm)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .btn,button{transition:background var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal),color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .btn.alt{background:var(--panel);border-color:var(--line);color:var(--text-muted)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .btn.alt:hover{background:var(--brand-soft);border-color:var(--nuanyu-theme-brand-a28);color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .btn-post{padding:10px;box-shadow:0 2px 6px -2px var(--nuanyu-theme-brand-a52)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .btn-post:hover{box-shadow:0 6px 14px -6px var(--nuanyu-theme-brand-a52)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .pill{border-radius:999px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .ops a,.ops button{border-radius:8px}
:where(html:not(:has(.nuanyu-theme-admin-block))) input,select,textarea{border-radius:var(--radius-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal),background var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) input:hover,select:hover,textarea:hover{border-color:var(--nuanyu-theme-line-hover)}
:where(html:not(:has(.nuanyu-theme-admin-block))) input:focus,select:focus,textarea:focus{border-color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .reply-panel textarea{background:var(--bg)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .reply-panel textarea:focus{background:var(--panel)}

/* 浮层与页脚 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .modal-panel{background:var(--panel);border:0;border-radius:18px;box-shadow:0 30px 70px -24px var(--shadow-medium)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .toast{border-radius:var(--radius-sm);box-shadow:0 12px 34px -12px var(--shadow-medium)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .mobile-menu-drawer{box-shadow:20px 0 44px var(--shadow-medium)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .footer{max-width:1300px;padding:24px 12px 36px;color:var(--text-subtle)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-footer{margin-top:12px;line-height:1.9;font-size:var(--font-size-sm)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-footer a{color:var(--text-muted)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-footer a:hover{color:var(--brand)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-footer img{max-width:100%;height:auto;vertical-align:middle}

/* 桌面：三栏栅格 + 居中搜索 + 导航收缩（含搜索页等单栏页面的栅格适配） */
@media(min-width:1100px){
:where(html:not(:has(.nuanyu-theme-admin-block))) .wrap{max-width:1300px;padding:18px 16px 44px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-layout{display:grid;grid-template-columns:212px minmax(0,1fr);gap:24px;transition:grid-template-columns .25s ease}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-layout-has-sidebar{grid-template-columns:212px minmax(0,1fr) 288px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .search-page .forum-layout{display:grid;grid-template-columns:212px minmax(0,1fr)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .search-page .forum-main{max-width:none;margin:0}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-layout .sidebar,.search-page .sidebar{width:auto}
:where(html:not(:has(.nuanyu-theme-admin-block))) .nuanyu-theme-rail{display:block}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-nav{display:flex;gap:6px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-nav .forum-link{display:none}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-nav .forum-link.plugin-top-menu-link{display:inline-flex}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-nav .forum-link[href^="http"]{display:inline-flex}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-more-toggle,.forum-more-region{display:none}
:where(html:not(:has(.nuanyu-theme-admin-block))) .bar{position:relative}
:where(html:not(:has(.nuanyu-theme-admin-block))) .bar-right .search-page-link{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(460px,40vw);height:36px;border:1px solid var(--line);background:var(--bg);color:var(--text-muted)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .bar-right .search-page-link:hover{border-color:var(--nuanyu-theme-line-hover);background:var(--bg);color:var(--text)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .search-page-fake-input{display:inline-flex;align-items:center;height:100%;padding-left:12px;font-size:var(--font-size-sm)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .search-page-fake-icon{margin-left:auto;padding-right:11px}
}

/* 导航收缩态：只留图标 */
html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .forum-layout{grid-template-columns:58px minmax(0,1fr)}
html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .forum-layout-has-sidebar{grid-template-columns:58px minmax(0,1fr) 288px}
html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .search-page .forum-layout{grid-template-columns:58px minmax(0,1fr)}
html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .nuanyu-theme-rail{padding:10px 8px 12px}
html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .nuanyu-theme-rail-head{justify-content:center}
html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .nuanyu-theme-rail-text,html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .nuanyu-theme-rail-heading{display:none}
html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .nuanyu-theme-rail-link{justify-content:center;padding:0;gap:0}
html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .nuanyu-theme-rail-collapse svg{transform:rotate(180deg)}

/* 中屏：左侧导航栏在此区间不显示，栅格里只有「正文 + 侧栏」两个元素；显式指定各自所在列，避免元素落进不存在的列被挤成窄条 */
@media(min-width:721px) and (max-width:1099px){
:where(html:not(:has(.nuanyu-theme-admin-block))) .wrap{padding:16px 14px 40px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-layout{display:grid;grid-template-columns:minmax(0,1fr)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-layout-has-sidebar{grid-template-columns:minmax(0,1fr) 264px}
/* 这里必须用与导航收缩态相同的高优先级选择器，否则中屏会残留收缩态定义的 58px 首列，把正文挤成窄条 */
html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .forum-layout{grid-template-columns:minmax(0,1fr)}
html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .forum-layout-has-sidebar{grid-template-columns:minmax(0,1fr) 264px}
html.nuanyu-theme-rail-collapsed:not(:has(.nuanyu-theme-admin-block)) .search-page .forum-layout{grid-template-columns:minmax(0,1fr)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .search-page .forum-layout{grid-template-columns:minmax(0,1fr)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-layout>.nuanyu-theme-rail{display:none}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-layout>.forum-main{grid-column:1;min-width:0}
:where(html:not(:has(.nuanyu-theme-admin-block))) .forum-layout-has-sidebar>.sidebar{grid-column:2;grid-row:1;width:264px}
}

/* 移动端 */
@media(max-width:720px){
:where(html:not(:has(.nuanyu-theme-admin-block))){scroll-padding-top:58px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .wrap{padding:12px 10px 32px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel{border-radius:14px;padding:0 14px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.tab-bar{margin:0 -14px 10px;padding:12px 14px 10px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.topic-toolbar,.main-panel>.profile-toolbar{margin:0 -14px 10px;padding:12px 14px 10px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.breadcrumb{margin:0 -14px 2px;padding:12px 14px 8px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.post-topic-title{margin:10px -14px 16px;padding:0 14px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.post-list{margin:0 -14px;padding:2px 14px 8px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.form-panel{padding:14px 0 16px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.reply-panel{margin:12px -14px 0;padding:14px 14px 16px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>.box{margin:0 0 12px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .main-panel>:first-child:not(.tab-bar):not(.topic-toolbar):not(.profile-toolbar):not(.breadcrumb):not(.post-list):not(.form-panel):not(.reply-panel):not(.search-page-head):not(.list){margin-top:10px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .user-shell{padding:14px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-item:not(.quote-threads-child){gap:12px;padding:13px 0;min-height:58px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-item.quote-threads-child{padding-top:12px;padding-bottom:12px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-list>.post-item:not(.post-entry)>.post-avatar{width:36px;height:36px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-meta{gap:2px 9px;margin-top:4px}
/* faka 勾选框在移动端会因标题换行被挤到下一行；固定到标题首行右侧 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-title-row{position:relative}
/* 右侧 32px 空位只为勾选框预留：没有勾选框的帖子不留空位，标题可用整行宽度 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-title-row:has(input[type="checkbox"]){padding-right:32px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .post-title-row input[type="checkbox"],:where(html:not(:has(.nuanyu-theme-admin-block))) .post-title-row label:has(>input[type="checkbox"]){position:absolute;top:3px;right:0;margin:0}
:where(html:not(:has(.nuanyu-theme-admin-block))) .mobile-forum-strip{gap:8px;margin:0 0 14px;padding-bottom:2px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .mobile-forum-link{min-height:32px;padding:0 13px;border:1px solid var(--line-soft);border-radius:999px;background:var(--panel);color:var(--text-muted);font-size:var(--font-size-sm);transition:background var(--transition-normal),color var(--transition-normal),border-color var(--transition-normal)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .mobile-forum-link.active{background:var(--brand);border-color:var(--brand);color:var(--inverse-text)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .mobile-menu-button,.search-page-link{border-radius:999px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .sidebar{gap:12px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .sidebar .card{border-radius:14px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .footer{padding:16px 14px 28px}
/* 移动端顶栏按钮收紧 */
:where(html:not(:has(.nuanyu-theme-admin-block))) .top .nb-checkin-entry{height:26px!important;min-height:26px!important;padding:0 9px!important;gap:4px;font-size:var(--font-size-xs);border-radius:8px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .top .nb-checkin-entry .nb-checkin-entry-icon{width:12px;height:12px}
:where(html:not(:has(.nuanyu-theme-admin-block))) .top .btn{min-height:28px;padding:4px 10px;font-size:var(--font-size-xs)}
:where(html:not(:has(.nuanyu-theme-admin-block))) .tab-bar:not(.plugin-tabs):not(.admin-tabs)>.tab{padding:5px 12px}
}

@media(prefers-reduced-motion:reduce){
:where(html:not(:has(.nuanyu-theme-admin-block))) a,.post-item,.post-title,.post-tag,.sidebar .card,.forum-link,.forum-more-toggle,.forum-more-link,.quick-links a,.user-links a,.btn,button,.btn-post,.pagination a,.tab-bar>.tab,.mobile-forum-link,.nuanyu-theme-rail-link,.nuanyu-theme-rail-collapse,.forum-layout,input,select,textarea{transition:none}
}.nuanyu-theme-admin-row{display:grid;grid-template-columns:28px max-content minmax(0,1fr) max-content max-content max-content;align-items:center;gap:10px;margin:0 0 12px}
.nuanyu-theme-admin-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px}
.nuanyu-theme-admin-icon img{width:20px;height:20px;object-fit:contain}
.nuanyu-theme-admin-icon i{font-size:15px;line-height:1}
.nuanyu-theme-admin-icon .nuanyu-theme-rail-tile{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;background:var(--nuanyu-theme-tile-bg);color:var(--nuanyu-theme-tile-fg);font-size:var(--font-size-xs);font-weight:700}
.nuanyu-theme-admin-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nuanyu-theme-admin-input{width:100%;min-width:0}
.nuanyu-theme-admin-file{max-width:240px}
.nuanyu-theme-admin-textarea{width:100%;min-height:110px;box-sizing:border-box;font-family:var(--font-mono);font-size:var(--font-size-sm)}
.nuanyu-theme-admin-actions{margin-top:10px}
@media(max-width:900px){
.nuanyu-theme-admin-row{grid-template-columns:28px minmax(0,1fr) max-content max-content;row-gap:8px}
.nuanyu-theme-admin-input,.nuanyu-theme-admin-file{grid-column:1/-1}
}
/* paste_image_upload */
.paste-image-upload-hint{display:inline-flex;color:var(--text-subtle);font-size:11px}.paste-image-upload-toast{position:fixed;left:50%;bottom:24px;z-index:1100;transform:translateX(-50%);padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--inverse);color:var(--inverse-text);font-size:var(--font-size-sm);box-shadow:0 6px 22px var(--shadow-medium)}.paste-image-upload-toast[hidden]{display:none}@media(max-width:600px){.paste-image-upload-hint{display:block}}
/* performance */
.performance-panel .performance-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.performance-panel .performance-status-card{display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line-soft);border-radius:7px;background:var(--bg)}
.performance-panel .performance-status-card span{color:var(--text-subtle);font-size:11px}
.performance-panel .performance-status-card strong{overflow-wrap:anywhere;font-size:15px}
.performance-panel .performance-status-card strong.is-ok{color:var(--success)}
.performance-panel .performance-status-card strong.is-off{color:var(--text-muted)}
@supports(content-visibility:auto){.performance-render-root .topic-post-list>.post-entry:nth-child(n+4){content-visibility:auto;contain-intrinsic-size:auto 280px}}
/* pwa */
.pwa-install-button{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:80;display:flex;align-items:center;gap:6px;padding:8px 12px 8px 16px;border:1px solid var(--inverse-border);border-radius:9999px;background:var(--inverse);color:var(--inverse-text);font-size:var(--font-size-sm);line-height:20px;box-shadow:0 6px 18px var(--shadow-medium);cursor:pointer}
.pwa-install-button:hover{filter:brightness(1.08)}
.pwa-install-button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.pwa-install-button[hidden]{display:none}
.pwa-install-close{display:grid;place-items:center;width:20px;height:20px;margin-left:2px;border-radius:50%;background:rgba(255,255,255,.16);font-size:var(--font-size-md);line-height:1;cursor:pointer}
.pwa-offline-panel{text-align:center}
.pwa-offline-tip{color:var(--text-muted)}
.pwa-form{width:100%;max-width:none}
.pwa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;margin-top:12px}
.pwa-section{display:grid;align-content:start;gap:10px;min-width:0;padding:14px;border:1px solid var(--line-soft);border-radius:8px;background:var(--bg)}
.pwa-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pwa-section-head h3{margin:0;color:var(--text);font-size:var(--font-size-md);font-weight:600}
.pwa-section .grid{gap:5px}
.pwa-form input:not([type=checkbox]):not([type=file]),.pwa-form select{width:100%;max-width:none;box-sizing:border-box}
.pwa-form input[type=color]{height:38px;padding:3px;cursor:pointer}
.pwa-form input[type=file]{width:100%;padding:8px 10px;border:1px dashed var(--line);border-radius:7px;background:var(--panel);color:var(--text-subtle);font-size:var(--font-size-sm);cursor:pointer}
.pwa-form input[type=file]:hover{border-color:var(--brand);color:var(--text)}
.pwa-color-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pwa-icon-tiles{display:flex;flex-wrap:wrap;gap:10px}
.pwa-icon-tile{display:grid;justify-items:center;gap:6px;flex:0 0 84px;margin:0;padding:10px 8px;border:1px solid var(--line-soft);border-radius:8px;background:var(--panel)}
.pwa-icon-tile img{display:block;width:56px;height:56px;border-radius:14px;box-shadow:var(--shadow-base)}
.pwa-icon-tile.pwa-icon-tile-mask img{border-radius:50%;box-shadow:none;outline:1px solid var(--line-soft)}
.pwa-icon-tile span{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.35;text-align:center}
.pwa-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}
.pwa-tools{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));width:100%;border-top:0;margin-top:0;padding-top:0}
.pwa-tool-link{display:block;margin-top:3px;color:var(--brand);font-size:var(--font-size-sm);word-break:break-all;text-decoration:none}
.pwa-tool-link:hover{text-decoration:underline}
.pwa-note{display:flex;gap:8px;align-items:flex-start;margin-top:12px;padding:10px 12px;border:1px solid var(--info);border-radius:8px;background:var(--info-soft);color:var(--text);font-size:var(--font-size-sm);line-height:1.5}
.pwa-note svg{flex:0 0 auto;width:16px;height:16px;margin-top:2px;color:var(--info)}
@media(max-width:600px){.pwa-grid,.pwa-color-row{grid-template-columns:1fr}.pwa-section{padding:12px}}
/* site_maintenance */
body:has(> .site-maintenance-page){margin:0;min-height:100vh;background:var(--site-maintenance-bg,#f6faf7);--site-maintenance-font-xs:12px;--site-maintenance-font-sm:13px;--site-maintenance-font-md:15px;--site-maintenance-font-lg:18px;--site-maintenance-font-xl:24px;--site-maintenance-font-title:34px;--site-maintenance-font-num:38px;--site-maintenance-bg:#f6faf7;--site-maintenance-panel:#fff;--site-maintenance-text:#1f2933;--site-maintenance-text-muted:#5b6472;--site-maintenance-text-subtle:#8a94a3;--site-maintenance-line:#e3e8ee;--site-maintenance-accent:#2fae6b;--site-maintenance-accent-soft:rgba(47,174,107,.10);--site-maintenance-unit-bg:#f2f4f7;--site-maintenance-button-bg:#fff;--site-maintenance-button-border:#d6dce3;--site-maintenance-glow:rgba(47,174,107,.12)}
body:has(> .site-maintenance-theme-aurora){--site-maintenance-bg:#0b1023;--site-maintenance-panel:rgba(147,183,255,.08);--site-maintenance-text:#eef3ff;--site-maintenance-text-muted:#aab6d6;--site-maintenance-text-subtle:#7e8bb0;--site-maintenance-line:rgba(147,183,255,.22);--site-maintenance-accent:#7ef0c2;--site-maintenance-accent-soft:rgba(126,240,194,.12);--site-maintenance-unit-bg:rgba(147,183,255,.10);--site-maintenance-button-bg:rgba(147,183,255,.12);--site-maintenance-button-border:rgba(147,183,255,.38);--site-maintenance-glow:rgba(126,240,194,.08)}
.site-maintenance-page,.site-maintenance-page *,.site-maintenance-page *::before,.site-maintenance-page *::after{box-sizing:border-box}
.site-maintenance-page{position:fixed;inset:0;z-index:9999;overflow-y:auto;display:flex;padding:48px 16px;background:radial-gradient(640px 320px at 50% -80px,var(--site-maintenance-glow),transparent 70%),var(--site-maintenance-bg);color:var(--site-maintenance-text);font-size:var(--site-maintenance-font-md);line-height:1.6;text-align:center;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
.site-maintenance-theme-aurora{background:radial-gradient(820px 460px at 14% -10%,rgba(64,140,255,.30),transparent 62%),radial-gradient(700px 420px at 86% -6%,rgba(157,120,255,.26),transparent 62%),radial-gradient(760px 480px at 50% 112%,rgba(64,224,168,.16),transparent 60%),var(--site-maintenance-bg)}
.site-maintenance-aurora{display:none}
.site-maintenance-theme-aurora .site-maintenance-aurora{display:block;position:fixed;inset:-20%;pointer-events:none;background:radial-gradient(420px 260px at 30% 30%,rgba(93,224,191,.14),transparent 65%),radial-gradient(520px 300px at 72% 58%,rgba(120,150,255,.12),transparent 65%);filter:blur(30px);animation:site-maintenance-aurora 14s ease-in-out infinite alternate}
@keyframes site-maintenance-aurora{from{transform:translate3d(-2%,-1%,0) scale(1)}to{transform:translate3d(2%,2%,0) scale(1.06)}}
@media (prefers-reduced-motion:reduce){.site-maintenance-theme-aurora .site-maintenance-aurora{animation:none}}
.site-maintenance-panel{position:relative;max-width:720px;margin:auto;padding:12px 0}
.site-maintenance-brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:26px}
.site-maintenance-gear{display:inline-flex;align-items:center;justify-content:center;width:68px;height:68px;border-radius:50%;background:var(--site-maintenance-accent-soft);color:var(--site-maintenance-accent)}
.site-maintenance-gear svg{width:28px;height:28px}
.site-maintenance-site-name{color:var(--site-maintenance-accent);font-size:var(--site-maintenance-font-sm);font-weight:600;letter-spacing:.3em;margin-right:-.3em}
.site-maintenance-title{margin:0 0 14px;font-size:var(--site-maintenance-font-title);font-weight:700;line-height:1.25;overflow-wrap:anywhere}
.site-maintenance-message{max-width:600px;margin:0 auto 30px;color:var(--site-maintenance-text-muted);font-size:var(--site-maintenance-font-lg);line-height:1.9;overflow-wrap:anywhere}
.site-maintenance-countdown{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin:0 0 30px}
.site-maintenance-unit{min-width:88px;padding:16px 10px 12px;border-radius:12px;background:var(--site-maintenance-unit-bg);border:1px solid var(--site-maintenance-line)}
.site-maintenance-num{display:block;font-size:var(--site-maintenance-font-num);font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.site-maintenance-unit-label{display:block;margin-top:6px;color:var(--site-maintenance-text-subtle);font-size:var(--site-maintenance-font-sm)}
.site-maintenance-divider{width:min(420px,80%);height:1px;margin:0 auto 18px;background:var(--site-maintenance-line)}
.site-maintenance-restore-time{margin:0 0 8px;color:var(--site-maintenance-text-subtle);font-size:var(--site-maintenance-font-sm)}
.site-maintenance-contact{margin:0;color:var(--site-maintenance-text-subtle);font-size:var(--site-maintenance-font-sm);overflow-wrap:anywhere}
.site-maintenance-over{margin:16px auto 0;color:var(--site-maintenance-accent);font-size:var(--site-maintenance-font-md);font-weight:600;overflow-wrap:anywhere}
.site-maintenance-over[hidden]{display:none}
.site-maintenance-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:24px}
.site-maintenance-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 20px;border:1px solid var(--site-maintenance-button-border);border-radius:999px;background:var(--site-maintenance-button-bg);color:var(--site-maintenance-text);font-size:var(--site-maintenance-font-md);line-height:1;text-decoration:none;transition:border-color .15s,color .15s}
.site-maintenance-button:hover,.site-maintenance-button:focus-visible{border-color:var(--site-maintenance-accent);color:var(--site-maintenance-accent)}
@media (max-width:560px){.site-maintenance-page{--site-maintenance-font-title:26px;--site-maintenance-font-num:28px;--site-maintenance-font-lg:16px;padding:32px 14px}.site-maintenance-countdown{gap:10px}.site-maintenance-unit{flex:1 1 0;min-width:0;max-width:110px;padding:12px 4px 10px}.site-maintenance-button{flex:1 1 140px}}
.site-maintenance-admin .site-maintenance-status{display:flex;flex-direction:column;gap:3px;padding:12px 14px;margin-bottom:14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);text-align:left}
.site-maintenance-admin .site-maintenance-status strong{font-size:var(--font-size-md)}
.site-maintenance-admin .site-maintenance-status.is-on strong{color:var(--warning)}
.site-maintenance-admin .site-maintenance-status span{color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}
.site-maintenance-admin .site-maintenance-scope-note{margin:0 0 14px;color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.7}
.site-maintenance-admin .site-maintenance-preview-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.site-maintenance-admin .site-maintenance-field{display:flex;flex-direction:column;gap:4px;margin:8px 0 14px;text-align:left}
.site-maintenance-admin .site-maintenance-field-label{font-weight:600;font-size:var(--font-size-sm)}
.site-maintenance-admin .site-maintenance-field-help{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.6}
.site-maintenance-admin .site-maintenance-field input[type="datetime-local"]{width:100%;max-width:320px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);font:inherit;font-size:var(--font-size-sm)}
.site-maintenance-switch{display:inline-flex;align-items:center;margin-top:8px;cursor:pointer}
.site-maintenance-switch input{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0)}
.site-maintenance-switch-track{position:relative;width:44px;height:26px;border-radius:999px;background:var(--line);transition:background .15s}
.site-maintenance-switch-track::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px var(--shadow-base);transition:left .15s}
.site-maintenance-switch input:checked + .site-maintenance-switch-track{background:var(--success)}
.site-maintenance-switch input:checked + .site-maintenance-switch-track::after{left:21px}
.site-maintenance-switch input:focus-visible + .site-maintenance-switch-track{outline:2px solid var(--focus-ring);outline-offset:2px}
.site-maintenance-login-notice{display:flex;flex-direction:column;gap:3px;margin-top:12px;padding:10px 14px;border:1px solid var(--line);border-left:3px solid var(--warning);border-radius:var(--radius-sm);background:var(--warning-soft);text-align:left}
.site-maintenance-login-notice strong{color:var(--warning);font-size:var(--font-size-sm)}
.site-maintenance-login-notice .site-maintenance-login-tip{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.6}
.site-maintenance-login-notice .site-maintenance-login-over{display:none;color:var(--success);font-size:var(--font-size-xs);line-height:1.6}
.site-maintenance-login-notice.site-maintenance-login-is-over{border-left-color:var(--success);background:var(--success-soft)}
.site-maintenance-login-notice.site-maintenance-login-is-over strong,.site-maintenance-login-notice.site-maintenance-login-is-over .site-maintenance-login-tip{display:none}
.site-maintenance-login-notice.site-maintenance-login-is-over .site-maintenance-login-over{display:block}
.site-maintenance-login-lock{display:none}
body:has(.site-maintenance-login-lock) .top,body:has(.site-maintenance-login-lock) .footer,body:has(.site-maintenance-login-lock) .auth-tabs{display:none}
/* timed_backup */
.timed-backup-summary{margin:0 0 .6rem;font-size:var(--font-size-sm)}
.timed-backup-settings-section{display:flex;flex-direction:column;gap:.45rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:12px;margin-bottom:.7rem}
.timed-backup-settings-section>summary{font-size:var(--font-size-md);font-weight:600;cursor:pointer;padding:.15rem 0}
.timed-backup-settings-section>strong{font-size:var(--font-size-md)}
.timed-backup-env-list{display:flex;flex-direction:column;gap:.35rem}
.timed-backup-env-row{display:flex;gap:.5rem;align-items:baseline;font-size:var(--font-size-sm)}
.timed-backup-env-status.is-ok{color:var(--success);font-weight:700}
.timed-backup-env-status.is-bad{color:var(--danger);font-weight:700}
.timed-backup-env-detail{color:var(--text-muted)}
.timed-backup-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:.4rem 0 .8rem}
.timed-backup-doc{margin:0 0 .9rem;font-size:var(--font-size-sm)}
.timed-backup-log-list{display:flex;flex-direction:column;gap:.3rem}
.timed-backup-log-row{display:grid;grid-template-columns:auto auto 1fr auto auto 1fr;gap:.6rem;align-items:baseline;font-size:var(--font-size-sm);padding:.35rem .55rem;border:1px solid var(--line);border-radius:9px}
.timed-backup-log-trigger{color:var(--text-muted)}
.timed-backup-log-size{white-space:nowrap}
.timed-backup-log-status.is-success{color:var(--success);font-weight:600}
.timed-backup-log-status.is-failed{color:var(--danger);font-weight:600}
.timed-backup-log-status.is-running{color:var(--warning);font-weight:600}
.timed-backup-log-error{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timed-backup-pager{font-size:var(--font-size-xs);color:var(--text-muted);margin:.4rem 0 .6rem}
.timed-backup-pager a{color:var(--brand)}
.timed-backup-runlog-list{display:flex;flex-direction:column;gap:.3rem}
.timed-backup-runlog-row{display:grid;grid-template-columns:auto auto 1fr auto;gap:.6rem;align-items:baseline;font-size:var(--font-size-sm);padding:.35rem .55rem;border:1px solid var(--line);border-radius:9px}
.timed-backup-runlog-level{font-weight:600}
.timed-backup-runlog-level.is-info{color:var(--text-muted)}
.timed-backup-runlog-level.is-warn{color:var(--warning)}
.timed-backup-runlog-level.is-error{color:var(--danger)}
.timed-backup-runlog-msg{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timed-backup-runlog-dur{color:var(--text-muted);white-space:nowrap}
/* topic_list_enhance */
.post-avatar.topic-list-enhance-avatar-sized { width: 36px; height: 36px; }.topic-list-enhance-avatar-host {
    position: relative;
    overflow: visible;
    z-index: 1;
}
.topic-list-enhance-avatar-host:hover,
.topic-list-enhance-avatar-host:focus-within {
    z-index: 12;
}
.topic-list-enhance-hover-card {
    position: absolute;
    top: -8px;
    left: calc(100% + 6px);
    z-index: 18;
    box-sizing: border-box;
    width: 276px;
    height: 78px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: var(--panel);
    box-shadow: 0 6px 18px var(--shadow-base);
    opacity: 0;
    pointer-events: none;
    transform: translateY(4px);
    transition: opacity var(--transition-normal), transform var(--transition-normal), visibility var(--transition-normal);
    visibility: hidden;
}
.topic-list-enhance-hover-card::before {
    position: absolute;
    top: 0;
    right: 100%;
    width: 6px;
    height: 100%;
    content: '';
}
.topic-list-enhance-avatar-host:hover .topic-list-enhance-hover-card,
.topic-list-enhance-avatar-host:focus-within .topic-list-enhance-hover-card {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
}
.topic-list-enhance-card-main {
    box-sizing: border-box;
    height: 76px;
    padding: 15px 12px 13px;
}
.topic-list-enhance-card-info {
    min-width: 0;
}
.topic-list-enhance-card-name-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
    height: 20px;
}
.topic-list-enhance-card-name {
    min-width: 0;
    overflow: hidden;
    color: var(--text);
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    text-decoration: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.topic-list-enhance-card-name:hover {
    color: var(--brand);
}
.topic-list-enhance-card-uid {
    flex: 0 0 auto;
    color: var(--text-subtle);
    font-size: 12px;
    font-weight: 400;
    line-height: 16px;
    white-space: nowrap;
}
.topic-list-enhance-card-subtitle {
    display: grid;
    grid-template-columns: minmax(50%, max-content) minmax(0, 1fr);
    align-items: center;
    min-width: 0;
    margin: 6px 0 0;
    overflow: hidden;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 400;
    line-height: 17px;
    white-space: nowrap;
}
.topic-list-enhance-card-subtitle-meta {
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.topic-list-enhance-card-bio {
    display: block;
    min-width: 0;
    width: 100%;
    overflow: hidden;
    color: var(--text-subtle);
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.topic-list-enhance-view-count {
    color: var(--text-subtle);
    font-variant-numeric: tabular-nums;
}
.topic-list-enhance-view-count .meta-icon {
    color: currentColor;
}
@media (max-width: 720px) {
    .topic-list-enhance-hover-card {
        left: calc(100% + 6px);
        width: min(276px, calc(100vw - 72px));
    }
}
/* topic_share */
.topic-share-button{flex:0 0 24px;padding:0;border:0;background:transparent;cursor:pointer}.topic-share-icon:before{background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 15V3m0 0L8 7m4-4 4 4M5 11v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-8%27/%3E%3C/svg%3E") center/14px 14px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27currentColor%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 15V3m0 0L8 7m4-4 4 4M5 11v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-8%27/%3E%3C/svg%3E") center/14px 14px no-repeat}.topic-share-title-button{margin-left:auto;opacity:.75}.topic-share-button.is-done{color:var(--success);opacity:1}.topic-share-button.is-failed{color:var(--danger);opacity:1}.topic-share-modal{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--backdrop)}.topic-share-modal[hidden]{display:none}.topic-share-dialog{width:min(420px,100%);padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:0 20px 60px var(--shadow-medium)}.topic-share-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.topic-share-dialog-head strong{font-size:var(--font-size-lg)}.topic-share-dialog-close{width:28px;min-width:28px;height:28px;min-height:28px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-muted);font-size:var(--font-size-lg);cursor:pointer}.topic-share-url{width:100%;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit}.topic-share-dialog-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.topic-share-dialog-actions button{min-height:36px;padding:0 13px;border-radius:var(--radius-sm);cursor:pointer}.topic-share-copy{border:1px solid var(--line);background:var(--bg);color:var(--text)}.topic-share-wechat{border:1px solid #07c160;background:#07c160;color:#fff}.topic-share-qq{border:1px solid #12b7f5;background:#12b7f5;color:#fff}.topic-share-system{border:1px solid var(--brand);background:var(--brand);color:var(--inverse-text)}.topic-share-status{min-height:18px;margin:9px 0 0;color:var(--text-muted);font-size:var(--font-size-sm)}
