/* cookie-consent */
/* Cookie consent banner */
.cookie-consent-banner {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10001;
    background: var(--panel, #fff);
    border-top: 1px solid var(--line-soft);
    box-shadow: 0 -4px 20px rgba(0,0,0,0.08);
    padding: 12px 20px;
    display: none;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    font-size: var(--font-size-sm);
    color: var(--text);
}
.cookie-consent-banner.visible {
    display: flex;
}
.cookie-consent-banner .cookie-message {
    flex: 1 1 60%;
    min-width: 200px;
    line-height: 1.5;
}
.cookie-consent-banner .cookie-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}
.cookie-consent-banner .cookie-btn {
    padding: 6px 18px;
    border: 1px solid var(--brand);
    border-radius: 6px;
    background: var(--brand);
    color: var(--inverse-text);
    font-size: var(--font-size-sm);
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.cookie-consent-banner .cookie-btn:hover {
    background: var(--brand-hover);
    border-color: var(--brand-hover);
}
.cookie-consent-banner .cookie-btn.secondary {
    background: transparent;
    color: var(--text-muted);
    border-color: var(--line-soft);
}
.cookie-consent-banner .cookie-btn.secondary:hover {
    background: var(--bg);
    color: var(--text);
}
@media (max-width: 640px) {
    .cookie-consent-banner {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }
    .cookie-consent-banner .cookie-actions {
        justify-content: center;
    }
}
/* daily_hot_topics */
.daily-hot-topics-card .daily-hot-topics-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.daily-hot-topics-card .daily-hot-topics-head>span{color:var(--text-subtle);font-size:10px;white-space:nowrap}
.daily-hot-topics-card .daily-hot-topics-list a{align-items:flex-start;padding:7px 0}.daily-hot-topics-card .daily-hot-topics-list a:before{flex:0 0 6px;margin-top:7px}.daily-hot-topics-card .daily-hot-topics-content{display:block;min-width:0;flex:1}.daily-hot-topics-card .daily-hot-topics-title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.45;text-align:left;white-space:normal}.daily-hot-topics-card .daily-hot-topics-count{display:block;margin-top:2px;color:var(--text-subtle);font-size:10px;line-height:1.3;white-space:nowrap}.daily-hot-topics-card .daily-hot-topics-empty{padding:9px 0;color:var(--text-subtle);font-size:12px}
/* email_verify */
.email-verify-banner{width:calc(100% - 24px);max-width:1076px;margin:12px auto 0;padding:10px 14px;border:1px solid var(--warning);background:var(--warning-soft);border-radius:8px;font-size:var(--font-size-sm);display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;box-sizing:border-box}.email-verify-banner-actions{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center}.email-verify-status{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-soft);font-size:var(--font-size-sm);display:flex;flex-wrap:wrap;gap:8px;align-items:center}.email-verify-status-extra{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center}.email-verify-status-tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:var(--font-size-xs)}.email-verify-status-ok{color:var(--success);background:var(--success-soft)}.email-verify-status-pending{color:var(--warning);background:var(--warning-soft)}.email-verify-hint{color:var(--text-muted);font-size:var(--font-size-xs)}
/* floating_notice */
#floating-notice-root{--floating-notice-top-offset:60px;--floating-notice-launcher-top:var(--floating-notice-top-offset);--floating-notice-accent:var(--brand);--floating-notice-accent-soft:var(--brand-soft);--floating-notice-panel-width:360px;--floating-notice-edge-gap:16px;--floating-notice-launcher-hidden-offset:21px;position:fixed;top:var(--floating-notice-launcher-top);right:var(--floating-notice-edge-gap);z-index:30;display:flex;flex-direction:column;align-items:flex-end;width:min(var(--floating-notice-panel-width),calc(100vw - 24px));color:var(--text);pointer-events:none;transition:top var(--transition-normal),right var(--transition-normal),left var(--transition-normal)}
#floating-notice-root.floating-notice-has-server-dock{top:clamp(8px,var(--floating-notice-launcher-top),calc(100vh - 50px))}
#floating-notice-root.floating-notice-is-initializing{visibility:hidden;transition:none}
#floating-notice-root.floating-notice-position-left{right:auto;left:var(--floating-notice-edge-gap);align-items:flex-start}
#floating-notice-root.floating-notice-edge-docked.floating-notice-dock-right:not(.floating-notice-panel-open):not(.floating-notice-has-toast):not(.floating-notice-is-dragging):not(:hover):not(:focus-within){right:calc(0px - var(--floating-notice-launcher-hidden-offset))}
#floating-notice-root.floating-notice-edge-docked.floating-notice-dock-left:not(.floating-notice-panel-open):not(.floating-notice-has-toast):not(.floating-notice-is-dragging):not(:hover):not(:focus-within){left:calc(0px - var(--floating-notice-launcher-hidden-offset))}
#floating-notice-root.floating-notice-theme-blue{--floating-notice-accent:#2563eb;--floating-notice-accent-soft:#dbeafe}
#floating-notice-root.floating-notice-theme-purple{--floating-notice-accent:#7c3aed;--floating-notice-accent-soft:#ede9fe}
#floating-notice-root.floating-notice-theme-green{--floating-notice-accent:#16803d;--floating-notice-accent-soft:#dcfce7}
#floating-notice-root.floating-notice-theme-orange{--floating-notice-accent:#d66100;--floating-notice-accent-soft:#ffedd5}
#floating-notice-root.floating-notice-theme-red{--floating-notice-accent:#dc2626;--floating-notice-accent-soft:#fee2e2}
#floating-notice-root.floating-notice-theme-cyan{--floating-notice-accent:#0e7490;--floating-notice-accent-soft:#cffafe}
#floating-notice-root.floating-notice-theme-pink{--floating-notice-accent:#db2777;--floating-notice-accent-soft:#fce7f3}
#floating-notice-root.floating-notice-theme-indigo{--floating-notice-accent:#4338ca;--floating-notice-accent-soft:#e0e7ff}
#floating-notice-root.floating-notice-theme-teal{--floating-notice-accent:#0f766e;--floating-notice-accent-soft:#ccfbf1}
#floating-notice-root.floating-notice-theme-magenta{--floating-notice-accent:#c026d3;--floating-notice-accent-soft:#fae8ff}
#floating-notice-root.floating-notice-theme-gold{--floating-notice-accent:#a16207;--floating-notice-accent-soft:#fef3c7}
#floating-notice-root.floating-notice-theme-black_gold{--floating-notice-accent:#9a6700;--floating-notice-accent-soft:#fef3c7}
#floating-notice-root .floating-notice-launcher{display:inline-flex;align-items:center;justify-content:center;position:relative;z-index:1;box-sizing:border-box;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--floating-notice-accent);box-shadow:var(--shadow-base);cursor:grab;pointer-events:auto;touch-action:none;user-select:none;transition:background var(--transition-normal),border-color var(--transition-normal),transform var(--transition-normal)}
#floating-notice-root .floating-notice-launcher:hover{border-color:var(--floating-notice-accent);background:var(--floating-notice-accent-soft);transform:translateY(-1px)}
#floating-notice-root .floating-notice-reveal-zone{display:none;position:fixed;top:var(--floating-notice-launcher-top);z-index:0;width:var(--floating-notice-launcher-hidden-offset);height:42px;pointer-events:auto}
#floating-notice-root.floating-notice-edge-docked.floating-notice-dock-right:not(.floating-notice-panel-open):not(.floating-notice-has-toast):not(.floating-notice-is-dragging) .floating-notice-reveal-zone{display:block;right:0}
#floating-notice-root.floating-notice-edge-docked.floating-notice-dock-left:not(.floating-notice-panel-open):not(.floating-notice-has-toast):not(.floating-notice-is-dragging) .floating-notice-reveal-zone{display:block;left:0}
#floating-notice-root.floating-notice-is-dragging{transition:none}
#floating-notice-root.floating-notice-is-dragging .floating-notice-launcher{cursor:grabbing;transform:none;transition:none}
#floating-notice-root .floating-notice-launcher:focus-visible,#floating-notice-root .floating-notice-tab:focus-visible,#floating-notice-root .floating-notice-entry-action:focus-visible,#floating-notice-root .floating-notice-toast-close:focus-visible{outline:0;box-shadow:0 0 0 3px var(--focus-ring)}
#floating-notice-root .floating-notice-launcher-icon{width:21px;height:21px}
#floating-notice-root .floating-notice-count{display:inline-flex;align-items:center;justify-content:center;position:absolute;top:-5px;right:-5px;box-sizing:border-box;min-width:18px;height:18px;padding:0 4px;border:2px solid var(--panel);border-radius:999px;background:var(--danger);color:var(--inverse-text);font-size:var(--font-size-xs);font-weight:700;line-height:1}
#floating-notice-root.floating-notice-dock-right .floating-notice-count{right:auto;left:-5px}
#floating-notice-root.floating-notice-dock-left .floating-notice-count{right:-5px;left:auto}
#floating-notice-root .floating-notice-toast-stack{display:grid;gap:8px;width:100%;margin-top:8px;pointer-events:none}
#floating-notice-root .floating-notice-toast,#floating-notice-root .floating-notice-panel{box-sizing:border-box;width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);box-shadow:var(--shadow-medium);text-align:left;pointer-events:auto}
#floating-notice-root .floating-notice-toast{display:grid;gap:10px;padding:14px 16px;border-left:3px solid var(--floating-notice-kind,var(--floating-notice-accent));background:var(--panel)}
#floating-notice-root.floating-notice-animation-slide .floating-notice-toast{animation:floating-notice-slide-in .24s ease both}
#floating-notice-root.floating-notice-animation-fade .floating-notice-toast{animation:floating-notice-fade-in .24s ease both}
#floating-notice-root.floating-notice-animation-scale .floating-notice-toast{animation:floating-notice-scale-in .24s ease both}
#floating-notice-root.floating-notice-position-left.floating-notice-animation-slide .floating-notice-toast{animation-name:floating-notice-slide-in-left}
#floating-notice-root .floating-notice-panel{margin-top:8px;overflow:hidden;border-color:var(--line);background:var(--panel)}
#floating-notice-root .floating-notice-panel[hidden]{display:none}
#floating-notice-root .floating-notice-toast-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;margin-left:auto;padding:0;border:0;border-radius:999px;background:transparent;color:var(--text-subtle);font-size:var(--font-size-xl);line-height:1;cursor:pointer}
#floating-notice-root .floating-notice-toast-close:hover{background:var(--floating-notice-accent-soft);color:var(--floating-notice-accent)}
#floating-notice-root .floating-notice-tabs{display:flex;gap:4px;padding:8px 10px;border-bottom:1px solid var(--line-soft);background:var(--bg)}
#floating-notice-root .floating-notice-tab{box-sizing:border-box;min-height:30px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:var(--font-size-sm);text-align:left;cursor:pointer}
#floating-notice-root .floating-notice-tab:hover{background:var(--floating-notice-accent-soft);color:var(--floating-notice-accent)}
#floating-notice-root .floating-notice-tab.floating-notice-tab-active{background:var(--floating-notice-accent-soft);color:var(--floating-notice-accent);font-weight:700}
#floating-notice-root .floating-notice-list{display:grid;max-height:min(480px,calc(100vh - 150px));overflow:auto;background:var(--panel)}
#floating-notice-root .floating-notice-entry{display:grid;gap:10px;padding:15px 16px 14px;border-bottom:1px solid var(--line-soft);border-left:3px solid var(--floating-notice-kind,var(--floating-notice-accent));text-align:left}
#floating-notice-root .floating-notice-entry:last-child{border-bottom:0}
#floating-notice-root .floating-notice-entry-head,#floating-notice-root .floating-notice-toast-head{display:flex;align-items:center;gap:8px;min-width:0}
#floating-notice-root .floating-notice-kind{display:inline-flex;align-items:center;flex:0 0 auto;min-height:20px;padding:0 7px;border-radius:999px;background:var(--floating-notice-kind-soft,var(--floating-notice-accent-soft));color:var(--floating-notice-kind,var(--floating-notice-accent));font-size:var(--font-size-xs);font-weight:700}
#floating-notice-root .floating-notice-entry-title,#floating-notice-root .floating-notice-toast-title{min-width:0;margin:0;color:var(--text);font-size:var(--font-size-md);line-height:1.45;text-align:left;overflow-wrap:anywhere}
#floating-notice-root .floating-notice-entry-body,#floating-notice-root .floating-notice-toast-body{max-height:4.95em;margin:0;overflow:hidden;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.65;text-align:left;overflow-wrap:anywhere}
#floating-notice-root .floating-notice-entry-body.floating-notice-body-expanded,#floating-notice-root .floating-notice-toast-body.floating-notice-body-expanded{max-height:none;overflow:visible}
#floating-notice-root .floating-notice-markdown> :first-child{margin-top:0}
#floating-notice-root .floating-notice-markdown> :last-child{margin-bottom:0}
#floating-notice-root .floating-notice-markdown h4,#floating-notice-root .floating-notice-markdown h5,#floating-notice-root .floating-notice-markdown h6{margin:0 0 8px;color:var(--text);font-size:var(--font-size-sm);line-height:1.45}
#floating-notice-root .floating-notice-markdown p,#floating-notice-root .floating-notice-markdown ul,#floating-notice-root .floating-notice-markdown ol,#floating-notice-root .floating-notice-markdown blockquote,#floating-notice-root .floating-notice-markdown pre{margin:0 0 8px}
#floating-notice-root .floating-notice-markdown ul,#floating-notice-root .floating-notice-markdown ol{padding-left:20px}
#floating-notice-root .floating-notice-markdown blockquote{padding-left:10px;border-left:2px solid var(--floating-notice-kind,var(--floating-notice-accent));color:var(--text-muted)}
#floating-notice-root .floating-notice-markdown code{padding:1px 4px;border-radius:3px;background:var(--bg);color:var(--text)}
#floating-notice-root .floating-notice-markdown pre{padding:8px;overflow:auto;border-radius:var(--radius-sm);background:var(--bg);color:var(--text);white-space:pre-wrap}
#floating-notice-root .floating-notice-markdown pre code{padding:0;background:transparent}
#floating-notice-root .floating-notice-markdown a{color:var(--floating-notice-accent);text-decoration:underline;text-underline-offset:2px}
#floating-notice-root .floating-notice-body-toggle{justify-self:start;min-height:26px;padding:0;border:0;background:transparent;color:var(--floating-notice-accent);font-size:var(--font-size-sm);font-weight:600;cursor:pointer}
#floating-notice-root .floating-notice-body-toggle:hover{text-decoration:underline}
#floating-notice-root .floating-notice-entry-foot,#floating-notice-root .floating-notice-toast-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}
#floating-notice-root .floating-notice-entry-time{color:var(--text-subtle);font-size:var(--font-size-xs)}
#floating-notice-root .floating-notice-toast-countdown{color:var(--text-subtle);font-size:var(--font-size-xs);white-space:nowrap}
#floating-notice-root .floating-notice-entry-action{min-height:28px;padding:0 9px;border:1px solid var(--floating-notice-accent);border-radius:var(--radius-sm);background:var(--floating-notice-accent-soft);color:var(--floating-notice-accent);font-size:var(--font-size-sm);cursor:pointer}
#floating-notice-root .floating-notice-entry-action:hover{background:var(--floating-notice-accent);color:var(--inverse-text)}
#floating-notice-root .floating-notice-is-read{opacity:.78}
#floating-notice-root .floating-notice-empty{padding:22px 16px;color:var(--text-subtle);font-size:var(--font-size-sm);line-height:1.6;text-align:left}
#floating-notice-root .floating-notice-type-info,.floating-notice-admin-list .floating-notice-type-info{--floating-notice-kind:var(--info);--floating-notice-kind-soft:var(--info-soft)}
#floating-notice-root .floating-notice-type-success,.floating-notice-admin-list .floating-notice-type-success{--floating-notice-kind:var(--success);--floating-notice-kind-soft:var(--success-soft)}
#floating-notice-root .floating-notice-type-warning,.floating-notice-admin-list .floating-notice-type-warning{--floating-notice-kind:var(--warning);--floating-notice-kind-soft:var(--warning-soft)}
#floating-notice-root .floating-notice-type-error,.floating-notice-admin-list .floating-notice-type-error{--floating-notice-kind:var(--danger);--floating-notice-kind-soft:var(--danger-soft)}
.floating-notice-admin,.floating-notice-admin-list{overflow:hidden}
.floating-notice-admin .floating-notice-admin-hint{margin:0 0 16px;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.65}
.floating-notice-admin .floating-notice-admin-field small{display:block;margin-top:5px;color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.55}
.floating-notice-admin .floating-notice-admin-toggle,.floating-notice-admin-modal-form .floating-notice-admin-toggle{display:flex;align-items:flex-start;gap:8px;margin:0;padding:9px 10px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--panel);cursor:pointer}
.floating-notice-admin .floating-notice-admin-toggle input,.floating-notice-admin-modal-form .floating-notice-admin-toggle input{flex:0 0 38px;width:38px;height:22px;min-height:22px;margin:2px 0 0}
.floating-notice-admin .floating-notice-admin-toggle>span,.floating-notice-admin-modal-form .floating-notice-admin-toggle>span{display:grid;gap:2px;min-width:0}
.floating-notice-admin .floating-notice-admin-toggle strong,.floating-notice-admin-modal-form .floating-notice-admin-toggle strong{font-size:var(--font-size-sm)}
.floating-notice-admin .floating-notice-admin-toggle small,.floating-notice-admin-modal-form .floating-notice-admin-toggle small{color:var(--text-muted);font-size:var(--font-size-xs);line-height:1.4}
.floating-notice-admin .floating-notice-admin-form-actions{align-items:center;gap:12px}
.floating-notice-admin .floating-notice-admin-cancel{color:var(--text-muted);font-size:var(--font-size-sm)}
/* 后台显示设置按展示行为分区，窄屏时收束为单列。 */
.floating-notice-admin .floating-notice-admin-settings-form{display:grid;gap:14px}
.floating-notice-admin-settings-section{display:grid;gap:12px;padding:14px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg)}
.floating-notice-admin-settings-section h3{margin:0;color:var(--text);font-size:var(--font-size-md)}
.floating-notice-admin-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.floating-notice-admin-settings-field{display:grid;gap:5px;min-width:0}
.floating-notice-admin-settings-field>span{color:var(--text-muted);font-size:var(--font-size-sm)}
.floating-notice-admin-settings-field>input,.floating-notice-admin-settings-field>select{box-sizing:border-box;width:100%;max-width:none}
.floating-notice-admin-settings-field small{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.55}
.floating-notice-admin-settings-wide{grid-column:1/-1}
.floating-notice-admin-list .floating-notice-admin-summary{display:grid;gap:2px}
.floating-notice-admin-list .floating-notice-admin-summary strong{font-size:var(--font-size-md)}
.floating-notice-admin-list .floating-notice-admin-summary span{color:var(--text-muted);font-size:var(--font-size-sm)}
.floating-notice-admin-list .floating-notice-admin-add,.floating-notice-admin-list .floating-notice-admin-edit{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0 11px;border:1px solid var(--brand);border-radius:var(--radius-sm);background:var(--brand);color:var(--inverse-text);font-size:var(--font-size-sm);text-decoration:none;cursor:pointer}
.floating-notice-admin-list .floating-notice-admin-add:hover,.floating-notice-admin-list .floating-notice-admin-edit:hover{background:var(--brand-hover);border-color:var(--brand-hover)}
.floating-notice-admin-modal-form{display:grid;gap:12px}
.floating-notice-admin-modal-hint{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.55}
.floating-notice-admin-modal-field{display:grid;gap:5px;min-width:0}
.floating-notice-admin-modal-field>span{color:var(--text-muted);font-size:var(--font-size-sm)}
.floating-notice-admin-modal-field>input,.floating-notice-admin-modal-field>select,.floating-notice-admin-modal-field>textarea{box-sizing:border-box;width:100%;max-width:none}
.floating-notice-admin-modal-field>textarea{min-height:140px}
.floating-notice-admin-modal-actions{display:flex;justify-content:flex-end;gap:8px}
.floating-notice-admin-bulk-form{margin:0}
.floating-notice-admin-bulk-toolbar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line-soft);background:var(--panel)}
.floating-notice-admin-bulk-selection{display:flex;align-items:center;gap:8px;min-width:0;color:var(--text-muted);font-size:var(--font-size-sm)}
.floating-notice-admin-bulk-select-all{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.floating-notice-admin-bulk-form input.floating-notice-admin-bulk-checkbox,.floating-notice-admin-bulk-form input[data-floating-notice-select-all],.floating-notice-admin-item>input.floating-notice-admin-bulk-checkbox{box-sizing:border-box;flex:0 0 auto;width:16px;height:16px;margin:0;padding:0;border:1px solid var(--line);border-radius:3px;background:var(--panel);background-image:none;cursor:pointer;appearance:auto;-webkit-appearance:auto;accent-color:var(--brand)}
.floating-notice-admin-list .floating-notice-admin-item>input.floating-notice-admin-bulk-checkbox{grid-column:1;grid-row:1;align-self:start;justify-self:center;margin-top:16px}
.floating-notice-admin-list .floating-notice-admin-item-details{grid-column:2;min-width:0}
.floating-notice-admin-bulk-form input.floating-notice-admin-bulk-checkbox:focus-visible,.floating-notice-admin-bulk-form input[data-floating-notice-select-all]:focus-visible,.floating-notice-admin-item>input.floating-notice-admin-bulk-checkbox:focus-visible{outline:0;box-shadow:0 0 0 3px var(--focus-ring)}
.floating-notice-admin-bulk-count{color:var(--text-subtle);font-size:var(--font-size-xs)}
.floating-notice-admin-bulk-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto}
.floating-notice-admin-bulk-actions button{min-height:30px;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);cursor:pointer}
.floating-notice-admin-bulk-actions button:hover{border-color:var(--brand);color:var(--brand)}
.floating-notice-admin-bulk-actions .floating-notice-admin-delete{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}
.floating-notice-admin-bulk-actions button:disabled{cursor:not-allowed;opacity:.55}
.floating-notice-admin-list .floating-notice-admin-list-body{display:grid}
.floating-notice-admin-list .floating-notice-admin-item{display:grid;grid-template-columns:40px minmax(0,1fr);border-bottom:1px solid var(--line-soft)}
.floating-notice-admin-list .floating-notice-admin-item:last-child{border-bottom:0}
.floating-notice-admin-list .floating-notice-admin-item-details>summary{display:flex;align-items:center;gap:9px;min-width:0;padding:13px 14px 13px 0;color:var(--text);cursor:pointer;list-style:none}
.floating-notice-admin-list .floating-notice-admin-item-details>summary::-webkit-details-marker{display:none}
.floating-notice-admin-list .floating-notice-admin-item-details>summary::after{content:"⌄";margin-left:auto;color:var(--text-subtle);font-size:var(--font-size-lg);transition:transform var(--transition-normal)}
.floating-notice-admin-list .floating-notice-admin-item-details[open]>summary::after{transform:rotate(180deg)}
.floating-notice-admin-list .floating-notice-admin-type{display:inline-flex;flex:0 0 auto;align-items:center;min-height:22px;padding:0 7px;border-radius:999px;background:var(--floating-notice-kind-soft,var(--brand-soft));color:var(--floating-notice-kind,var(--brand));font-size:var(--font-size-xs);font-weight:700}
.floating-notice-admin-list .floating-notice-admin-title{min-width:0;overflow:hidden;font-size:var(--font-size-md);text-overflow:ellipsis;white-space:nowrap}
.floating-notice-admin-list .floating-notice-admin-status{flex:0 0 auto;color:var(--text-disabled);font-size:var(--font-size-xs)}
.floating-notice-admin-list .floating-notice-admin-status.floating-notice-admin-status-on{color:var(--success)}
.floating-notice-admin-list .floating-notice-admin-item-body{display:grid;gap:11px;padding:0 14px 14px 0}
.floating-notice-admin-list .floating-notice-admin-content{max-height:180px;margin:0;overflow:auto;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
.floating-notice-admin-list .floating-notice-admin-meta{color:var(--text-subtle);font-size:var(--font-size-xs);line-height:1.5}
.floating-notice-admin-list .floating-notice-admin-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.floating-notice-admin-list .floating-notice-admin-actions .post-action-form{margin:0}
.floating-notice-admin-list .floating-notice-admin-action{min-height:30px;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);cursor:pointer}
.floating-notice-admin-list .floating-notice-admin-action:hover{border-color:var(--brand);color:var(--brand)}
.floating-notice-admin-list .floating-notice-admin-delete{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}
.floating-notice-admin-list .floating-notice-admin-empty{margin:14px}
.floating-notice-admin-pagination{margin-top:14px}
@keyframes floating-notice-slide-in{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
@keyframes floating-notice-slide-in-left{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:translateX(0)}}
@keyframes floating-notice-fade-in{from{opacity:0}to{opacity:1}}
@keyframes floating-notice-scale-in{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){#floating-notice-root,#floating-notice-root .floating-notice-launcher,#floating-notice-root .floating-notice-toast{animation:none;transition:none}}
@media(max-width:600px){#floating-notice-root{--floating-notice-edge-gap:12px;right:var(--floating-notice-edge-gap);width:calc(100vw - 24px)}#floating-notice-root.floating-notice-position-left{left:var(--floating-notice-edge-gap)}#floating-notice-root .floating-notice-list{max-height:min(420px,calc(100vh - 130px))}.floating-notice-admin-settings-grid{grid-template-columns:1fr}.floating-notice-admin-list .floating-notice-admin-summary span{display:none}.floating-notice-admin-list .floating-notice-admin-item-details>summary{flex-wrap:wrap}.floating-notice-admin-list .floating-notice-admin-title{flex:1 1 calc(100% - 94px)}.floating-notice-admin-list .floating-notice-admin-status{margin-left:0}.floating-notice-admin-list .floating-notice-admin-item-details>summary::after{position:absolute;right:14px}.floating-notice-admin-list .floating-notice-admin-item-details>summary{position:relative;padding-right:38px}.floating-notice-admin-bulk-toolbar{align-items:stretch;flex-wrap:wrap}.floating-notice-admin-bulk-actions{width:100%;margin-left:0}.floating-notice-admin-bulk-actions button{flex:1 1 120px}}
/* github_card */
.github-card-skeleton {
    background: var(--panel);
    border: 1px solid var(--line-soft);
    border-radius: 8px;
    padding: 16px 20px;
    margin: 12px 0;
    animation: github-card-pulse 1.5s ease-in-out infinite;
}
@keyframes github-card-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}
.skeleton-line {
    height: 14px;
    background: var(--line-soft);
    border-radius: 4px;
    margin: 6px 0;
}
.skeleton-line.short { width: 60%; }
.skeleton-line.medium { width: 80%; }
.skeleton-header .skeleton-line:first-child { height: 18px; width: 70%; }
.skeleton-body { margin: 8px 0 4px; }
.skeleton-footer { display: flex; gap: 16px; margin-top: 8px; }
.skeleton-footer .skeleton-line { width: 40px; height: 12px; }

.github-card {
    background: var(--panel);
    border: 1px solid var(--line-soft);
    border-radius: 8px;
    padding: 16px 20px;
    margin: 12px 0;
    transition: border-color 0.2s;
}
.github-card:hover { border-color: var(--brand-soft); }
.github-card a { color: var(--brand); text-decoration: none; }
.github-card a:hover { text-decoration: underline; }
.github-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
}
.github-card-header .gh-left {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.github-card-header .gh-icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: var(--text-muted);
}
.github-card-header .gh-name {
    font-weight: 600;
    font-size: var(--font-size-md);
    color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.github-card-header .gh-license {
    font-size: var(--font-size-xs);
    color: var(--text-muted);
    padding: 2px 8px;
    border: 1px solid var(--line-soft);
    border-radius: 4px;
    flex-shrink: 0;
}
.github-card-desc {
    color: var(--text-muted);
    font-size: var(--font-size-sm);
    margin: 4px 0 10px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 1.6em;
}
.github-card-desc .desc-skeleton {
    display: block;
    height: 12px;
    background: var(--line-soft);
    border-radius: 4px;
    margin: 4px 0;
    animation: github-card-pulse 1.5s ease-in-out infinite;
}
.github-card-desc .desc-skeleton:last-child { width: 80%; }
.github-card-stats {
    display: flex;
    gap: 16px;
    margin-top: 8px;
    flex-wrap: wrap;
}
.github-card-stats .stat {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: var(--font-size-sm);
    color: var(--text-muted);
}
.github-card-stats .stat .num {
    color: var(--text);
    font-weight: 500;
}
.github-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--line-soft);
    font-size: var(--font-size-xs);
    color: var(--text-muted);
    flex-wrap: wrap;
    gap: 4px;
}
.github-card-footer .gh-language {
    display: flex;
    align-items: center;
    gap: 4px;
}
.github-card-footer .gh-language .dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.github-card-footer .gh-updated {
    color: var(--text-disabled);
}
.github-card-footer .gh-translate-btn {
    background: transparent;
    border: none;
    border-radius: 4px;
    padding: 0;
    width: 22px;
    height: 22px;
    min-width: 22px;
    min-height: 22px;
    max-width: 22px;
    max-height: 22px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    flex-shrink: 0;
    flex-grow: 0;
    box-sizing: content-box;
}
.github-card-footer .gh-translate-btn.active {
    background: var(--line-soft);
    color: var(--text);
}
.github-card-footer .gh-translate-btn.active:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    color: var(--text-muted);
}
.github-card-footer .gh-translate-btn.loading {
    opacity: 0.7;
    cursor: wait;
}
.github-card-footer .gh-translate-btn svg {
    width: 14px;
    height: 14px;
    display: block;
    stroke: currentColor;
}
.github-card-error {
    background: var(--panel);
    border: 1px solid var(--danger-soft);
    border-radius: 8px;
    padding: 12px 16px;
    margin: 12px 0;
    color: var(--danger);
    font-size: var(--font-size-sm);
}
.github-card-error .retry-btn {
    margin-left: 8px;
    color: var(--brand);
    cursor: pointer;
    text-decoration: underline;
}
.github-card-error .gh-404-icon { margin-right: 6px; }
/* guest_notice */
.guest-notice-bar{background:var(--brand-soft);color:var(--brand);font-size:var(--font-size-sm);text-align:center;padding:8px 16px;line-height:1.5}.guest-notice-bar .guest-notice-link{color:inherit;font-weight:600;margin-left:10px;text-decoration:underline}
/* infinite-scroll */
.infinite-scroll-loader {
    text-align: center;
    padding: 20px;
    color: var(--text-muted);
}
.infinite-scroll-loader .spinner {
    display: inline-block;
    width: 24px;
    height: 24px;
    border: 3px solid var(--line-soft);
    border-top-color: var(--brand);
    border-radius: 50%;
    animation: infinite-scroll-spin 0.8s linear infinite;
}
.infinite-scroll-end {
    text-align: center;
    padding: 20px;
    color: var(--text-disabled);
}
.infinite-scroll-error {
    text-align: center;
    padding: 10px 20px;
    color: var(--danger);
    cursor: pointer;
}
.infinite-scroll-error:hover {
    text-decoration: underline;
}
.infinite-scroll-trigger {
    text-align: center;
    padding: 12px;
}
.infinite-scroll-trigger button {
    padding: 8px 24px;
    border: 1px solid var(--brand);
    border-radius: 6px;
    background: var(--bg);
    color: var(--brand);
    cursor: pointer;
    font-size: var(--font-size-sm);
}
.infinite-scroll-trigger button:hover {
    background: var(--brand-soft);
}
.infinite-scroll-trigger button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}
@keyframes infinite-scroll-spin {
    to { transform: rotate(360deg); }
}
/* modsecurity */
.modsecurity-event-detail{margin-top:8px}.modsecurity-event-detail summary{width:max-content;max-width:100%;color:var(--brand);font-size:var(--font-size-sm);cursor:pointer}.modsecurity-event-grid{display:grid;grid-template-columns:112px minmax(0,1fr);gap:5px 10px;margin-top:8px;padding:10px;border:1px solid var(--line-soft);border-radius:6px;background:var(--bg);font-size:var(--font-size-sm);line-height:1.45}.modsecurity-event-grid>span:nth-child(odd){color:var(--text-subtle)}.modsecurity-event-grid code{min-width:0;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--text);font:var(--font-size-xs)/1.45 var(--font-mono)}.modsecurity-log-levels{display:flex;flex:0 0 100%;flex-wrap:wrap;gap:8px;width:100%;min-width:0;margin:8px 0 14px}.modsecurity-log-level{display:inline-flex!important;flex:0 0 auto!important;align-items:center!important;gap:8px!important;width:auto!important;min-width:96px;height:38px;padding:7px 10px;border:1px solid var(--line-soft);border-radius:6px;background:var(--bg);cursor:pointer;box-sizing:border-box}.modsecurity-log-level span{display:block;line-height:1.3;white-space:nowrap}.modsecurity-log-level input[type=checkbox]{display:block!important;flex:0 0 16px!important;width:16px!important;height:16px!important;min-width:16px!important;max-width:16px!important;margin:0!important;padding:0!important;appearance:auto!important;-webkit-appearance:auto!important;accent-color:var(--brand)}.modsecurity-settings-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}.plugin-settings-form .modsecurity-settings-actions button{width:auto;margin-top:0}.modsecurity-settings-actions button+button{margin-left:10px;background:var(--bg);color:var(--text-muted);border:1px solid var(--line)}.modsecurity-settings-actions button+button:hover{background:var(--line-soft);color:var(--text);border-color:var(--text-subtle)}@media(max-width:560px){.modsecurity-event-grid{grid-template-columns:1fr;gap:2px;margin-top:7px}.modsecurity-event-grid>span:nth-child(odd){margin-top:5px;font-weight:600}.modsecurity-event-grid>span:nth-child(odd):first-child{margin-top:0}.modsecurity-settings-actions{gap:8px}.modsecurity-settings-actions button+button{margin-left:8px}}
/* nav_panel */
.nav-panel-wrap {
    padding: 12px 0 6px
}

.nav-panel-title {
    padding: 0 14px;
    margin-bottom: 6px;
    color: var(--text);
    font-size: var(--font-size-md);
    font-weight: 700
}

.nav-panel-list {
    margin: 0;
    padding: 0;
    list-style: none
}

.nav-panel-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    color: var(--text-muted);
    font-size: var(--font-size-md);
    line-height: 1.4;
    text-decoration: none;
    transition: background .12s ease, color .12s ease
}

.nav-panel-link:hover {
    background: var(--bg);
    color: var(--text)
}

.nav-panel-link-active {
    color: var(--text);
    font-weight: 700
}

.nav-panel-name {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.nav-panel-count {
    flex: 0 0 auto;
    color: var(--text-subtle);
    font-size: var(--font-size-sm);
    font-variant-numeric: tabular-nums
}

.nav-panel-dot {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--brand)
}

.nav-panel-dot-0 { background: #2f80ed }
.nav-panel-dot-1 { background: #6366f1 }
.nav-panel-dot-2 { background: #64748b }
.nav-panel-dot-3 { background: #e5484d }
.nav-panel-dot-4 { background: #3fb950 }
.nav-panel-dot-5 { background: #0ea5e9 }
.nav-panel-dot-6 { background: #b07d3a }
.nav-panel-dot-7 { background: #8b5cf6 }
.nav-panel-dot-8 { background: #f59e0b }
.nav-panel-dot-9 { background: #14b8a6 }
.nav-panel-dot-10 { background: #ec4899 }
.nav-panel-dot-11 { background: #475569 }

@media (max-width: 600px) {
    .nav-panel-title { font-size: var(--font-size-lg) }
    .nav-panel-link { padding: 11px 14px }
}

/* 侧栏视觉顺序：用户菜单 → 版块列表 → 其他所有卡片（按源序）。
   给 user 和 nav-panel 用负 order 把它们钉在最前面；其它卡片（含 feature / bio /
   quick / stats / notice 以及任何通过 sidebar.stack 钩子插入的卡片，比如排行榜、
   在线用户等）都保持默认 0，自然排在 user 和 nav-panel 之后并按源序排列。
   之前用过显式 order: 1~7，但会把未识别的第三方卡片挤到顶部并打乱源序，故改为负 order。 */
.sidebar > .user-card { order: -2 }
.sidebar > .nav-panel-card { order: -1 }

/* 移动端浏览他人个人主页：核心把整条侧栏提到主题列表之前，会让"版块列表""当前在线"
   等卡片挡在内容上方。这里让侧栏改为内容级排布，只把主人资料卡片留在内容之前，
   版块列表及其他卡片自然排到主题列表之后。 */
@media (max-width: 600px) {
    .profile-mobile-sidebar:not(.profile-mobile-sidebar-own) .sidebar {
        position: static;
        display: contents;
        width: auto;
        margin: 0
    }

    .profile-mobile-sidebar:not(.profile-mobile-sidebar-own) .sidebar > * {
        align-self: stretch
    }

    .profile-mobile-sidebar:not(.profile-mobile-sidebar-own) .sidebar > .user-card,
    .profile-mobile-sidebar:not(.profile-mobile-sidebar-own) .sidebar > .bio-card {
        order: -1
    }

    .profile-mobile-sidebar:not(.profile-mobile-sidebar-own) .forum-main {
        align-self: stretch;
        width: 100%
    }

    .profile-mobile-sidebar:not(.profile-mobile-sidebar-own) .sidebar > .nav-panel-card {
        order: 0
    }

}
/* official_notifications */
.official-notifications-nav{position:relative;display:inline-flex;flex:0 0 30px;align-items:center;justify-content:center;box-sizing:border-box;width:30px;height:30px;min-height:30px;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text-muted)}.official-notifications-nav svg{width:17px;height:17px;flex:0 0 17px}.official-notifications-nav:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.official-notifications-nav:focus-visible{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}.official-notifications-nav.has-unread:after{content:"";position:absolute;right:3px;top:2px;width:7px;height:7px;border:2px solid var(--panel);border-radius:50%;background:var(--danger)}.official-notifications-row{grid-template-columns:minmax(0,1fr) auto}.official-notifications-row.is-read{opacity:.65}.official-notifications-row.is-unread{box-shadow:inset 3px 0 var(--brand)}.official-notifications-admin-body{padding:14px}.official-notifications-form{display:grid;gap:10px;max-width:720px}@media(max-width:720px){.official-notifications-nav{flex-basis:28px;width:28px;height:28px;min-height:28px;border:0;background:transparent;color:var(--text-subtle)}.official-notifications-nav svg{width:24px;height:24px;flex-basis:24px}.official-notifications-nav:hover{background:var(--bg);color:var(--text)}.official-notifications-row{grid-template-columns:1fr}}
/* online_users */
.online-users-boot{display:none}.online-users-host{position:relative;overflow:visible}.online-users-dot{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border:2px solid var(--panel);border-radius:50%;background:var(--success);pointer-events:none}.user-avatar-big.online-users-host .online-users-dot{width:12px;height:12px}.online-users-wrap{padding:10px 14px 12px}.online-users-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.online-users-title{color:var(--text);font-size:var(--font-size-sm);font-weight:600}.online-users-count{flex:0 0 auto;padding:1px 8px;border-radius:999px;background:var(--success-soft);color:var(--success);font-size:var(--font-size-xs);font-weight:600;line-height:1.6;white-space:nowrap}.online-users-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 6px}.online-users-item{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}.online-users-item:hover .online-users-name{color:var(--brand)}.online-users-avatar{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:var(--bg)}.online-users-name{max-width:44px;overflow:hidden;color:var(--text-muted);font-size:var(--font-size-xs);text-align:center;text-overflow:ellipsis;white-space:nowrap}.online-users-more{margin-top:8px;color:var(--text-subtle);font-size:var(--font-size-xs)}.online-users-empty{color:var(--text-subtle);font-size:var(--font-size-xs)}
/* premium_uid */
.premium-uid-badge{position:relative;display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;line-height:1.4;font-weight:700;letter-spacing:.5px;font-feature-settings:"tnum";overflow:hidden;isolation:isolate;--premium-uid-color-a:#7df9ff;--premium-uid-color-b:#a18cd1;--premium-uid-color-c:#fbc2eb;--premium-uid-glow:#7df9ff;--premium-uid-text:#ffffff;--premium-uid-speed:3s}
.premium-uid-badge .premium-uid-text{position:relative;display:inline-block;background:linear-gradient(120deg,var(--premium-uid-color-a) 0%,var(--premium-uid-color-b) 50%,var(--premium-uid-color-c) 100%);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;animation:premium-uid-text-shift var(--premium-uid-speed) linear infinite}
.premium-uid-badge::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(120deg,var(--premium-uid-color-a),var(--premium-uid-color-b),var(--premium-uid-color-c),var(--premium-uid-color-a));background-size:300% 300%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:premium-uid-border-shift var(--premium-uid-speed) linear infinite;z-index:-2}
.premium-uid-badge::after{content:"";position:absolute;inset:-2px;border-radius:inherit;background:radial-gradient(circle at 50% 50%,var(--premium-uid-glow),transparent 70%);opacity:.55;filter:blur(8px);z-index:-3;animation:premium-uid-glow-pulse var(--premium-uid-speed) ease-in-out infinite}
.premium-uid-badge .premium-uid-shine{position:absolute;top:0;left:-40%;width:24%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.7),transparent);transform:skewX(-18deg);pointer-events:none;animation:premium-uid-shine-sweep calc(var(--premium-uid-speed) * 1.6) ease-in-out infinite;z-index:-1}
.premium-uid-tier-crown{box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.premium-uid-tier-crown::after{filter:blur(10px);opacity:.7}
.premium-uid-tier-rainbow .premium-uid-text{background:linear-gradient(90deg,#ff6b6b,#ffd93d,#6bcf7f,#6bcfff,#a18cd1,#ff6b6b);background-size:300% 100%}
.premium-uid-tier-rainbow::before{background:linear-gradient(90deg,#ff6b6b,#ffd93d,#6bcf7f,#6bcfff,#a18cd1,#ff6b6b);background-size:300% 100%}
.premium-uid-tier-neon .premium-uid-text{background:none;-webkit-text-fill-color:var(--premium-uid-text);color:var(--premium-uid-text);text-shadow:0 0 4px var(--premium-uid-glow),0 0 10px var(--premium-uid-color-a),0 0 18px var(--premium-uid-color-b),0 0 26px var(--premium-uid-color-c);animation:premium-uid-neon-pulse calc(var(--premium-uid-speed) * .8) ease-in-out infinite}
.premium-uid-tier-neon::before{background:linear-gradient(120deg,var(--premium-uid-color-a),var(--premium-uid-color-b),var(--premium-uid-color-c),var(--premium-uid-color-a));background-size:300% 300%}
.premium-uid-tier-stardust .premium-uid-text{background:linear-gradient(120deg,var(--premium-uid-color-a),var(--premium-uid-color-b),var(--premium-uid-color-c));background-size:200% 200%}
.premium-uid-tier-stardust::before{background:linear-gradient(120deg,var(--premium-uid-color-a),var(--premium-uid-color-b),var(--premium-uid-color-c),var(--premium-uid-color-a));background-size:300% 300%}
.premium-uid-tier-stardust .premium-uid-shine{width:40%;background:radial-gradient(circle,rgba(255,255,255,.95) 0%,rgba(255,255,255,0) 60%);filter:blur(2px);animation:premium-uid-stardust-blink calc(var(--premium-uid-speed) * .7) ease-in-out infinite}
.premium-uid-tier-fire .premium-uid-text{background:linear-gradient(180deg,var(--premium-uid-color-a) 0%,var(--premium-uid-color-b) 40%,var(--premium-uid-color-c) 100%);background-size:100% 220%}
.premium-uid-tier-fire::before{background:linear-gradient(180deg,var(--premium-uid-color-a),var(--premium-uid-color-b),var(--premium-uid-color-c));background-size:100% 220%}
.premium-uid-tier-fire::after{background:radial-gradient(circle at 50% 110%,var(--premium-uid-glow),transparent 70%);animation:premium-uid-fire-flicker calc(var(--premium-uid-speed) * .5) ease-in-out infinite alternate}
.premium-uid-tier-ocean .premium-uid-text{background:linear-gradient(90deg,var(--premium-uid-color-a),var(--premium-uid-color-b),var(--premium-uid-color-c));background-size:220% 100%}
.premium-uid-tier-ocean::before{background:linear-gradient(90deg,var(--premium-uid-color-a),var(--premium-uid-color-b),var(--premium-uid-color-c),var(--premium-uid-color-a));background-size:260% 100%}
.premium-uid-tier-ocean .premium-uid-shine{background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);animation:premium-uid-ocean-wave calc(var(--premium-uid-speed) * 1.2) ease-in-out infinite}
@keyframes premium-uid-text-shift{0%{background-position:0% 50%}100%{background-position:200% 50%}}
@keyframes premium-uid-border-shift{0%{background-position:0% 50%}100%{background-position:300% 50%}}
@keyframes premium-uid-glow-pulse{0%,100%{opacity:.45;transform:scale(1)}50%{opacity:.85;transform:scale(1.08)}}
@keyframes premium-uid-shine-sweep{0%{left:-40%}100%{left:140%}}
@keyframes premium-uid-neon-pulse{0%,100%{text-shadow:0 0 4px var(--premium-uid-glow),0 0 10px var(--premium-uid-color-a),0 0 18px var(--premium-uid-color-b),0 0 26px var(--premium-uid-color-c)}50%{text-shadow:0 0 8px var(--premium-uid-glow),0 0 18px var(--premium-uid-color-a),0 0 30px var(--premium-uid-color-b),0 0 44px var(--premium-uid-color-c)}}
@keyframes premium-uid-stardust-blink{0%,100%{opacity:0;transform:translateX(0) scale(.6)}50%{opacity:1;transform:translateX(80px) scale(1.1)}}
@keyframes premium-uid-fire-flicker{0%{opacity:.5;transform:scale(1) translateY(0)}100%{opacity:.95;transform:scale(1.12) translateY(-2px)}}
@keyframes premium-uid-ocean-wave{0%{left:-40%;opacity:.4}50%{opacity:.9}100%{left:140%;opacity:.4}}
.premium-uid-badge.premium-uid-tier-neon{background:transparent}
.premium-uid-badge.premium-uid-tier-crown{background:linear-gradient(135deg,rgba(255,247,174,.18),rgba(255,154,60,.18))}
.premium-uid-badge.premium-uid-tier-fire{background:linear-gradient(180deg,rgba(255,8,68,.08),rgba(255,221,85,.12))}
.premium-uid-badge.premium-uid-tier-ocean{background:linear-gradient(135deg,rgba(0,245,255,.12),rgba(0,51,170,.12))}
.premium-uid-badge.premium-uid-tier-rainbow{background:linear-gradient(135deg,rgba(255,107,107,.08),rgba(107,207,255,.12))}
.premium-uid-badge{transition:transform .2s ease}
.premium-uid-badge:hover{transform:translateY(-1px)}
@media (prefers-reduced-motion: reduce){.premium-uid-badge .premium-uid-text,.premium-uid-badge::before,.premium-uid-badge::after,.premium-uid-badge .premium-uid-shine{animation:none !important}}
.premium-uid-palette{display:inline-flex;align-items:center;gap:4px}
.premium-uid-palette>span{display:inline-block;width:16px;height:16px;border-radius:5px;border:1px solid var(--line)}
.premium-uid-palette>span.glow{box-shadow:0 0 6px currentColor}
.premium-uid-block+.premium-uid-block{margin-top:18px}
.premium-uid-block>h3{margin:0 0 8px}
.premium-uid-block .row{margin:10px 0 0;flex-wrap:wrap}
/* reply_visible */
.reply-visible-editor-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 10px}.reply-visible-editor-button{min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.reply-visible-editor-button:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.reply-visible-editor-button:focus-visible,.reply-visible-action:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.reply-visible-editor-note{color:var(--text-subtle);font-size:var(--font-size-xs)}.reply-visible-content{display:grid;gap:12px}.reply-visible-content>p{margin:0}.reply-visible-card{display:grid;gap:10px;margin:2px 0;padding:14px;border:1px dashed var(--brand);border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--text)}.reply-visible-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.reply-visible-card-head strong{font-size:var(--font-size-md)}.reply-visible-card-head span{color:var(--text-muted);font-size:var(--font-size-xs)}.reply-visible-card-message{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}.reply-visible-action{display:inline-flex;align-items:center;justify-content:center;justify-self:start;min-height:32px;padding:0 10px;border:1px solid var(--brand);border-radius:var(--radius-sm);background:var(--panel);color:var(--brand);font-size:var(--font-size-sm);font-weight:600}.reply-visible-card .reply-visible-action:hover{background:var(--brand);color:var(--inverse-text)}.reply-visible-action.reply-visible-action-disabled{border-color:var(--line);background:var(--bg);color:var(--text-disabled);cursor:not-allowed}.reply-visible-action.reply-visible-action-disabled:hover{background:var(--bg);color:var(--text-disabled)}.reply-visible-admin{display:grid;gap:12px}.reply-visible-admin-warning{margin:0;padding:10px 12px;border:1px solid var(--warning);border-radius:var(--radius-sm);background:var(--warning-soft);color:var(--warning);font-size:var(--font-size-sm);line-height:1.6}.reply-visible-admin-hint{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.6}.reply-visible-admin-field textarea{min-height:96px;resize:vertical}.reply-visible-admin-example{padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:var(--font-size-sm)}.reply-visible-admin-example strong{display:block;margin-bottom:6px}.reply-visible-admin-example pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.reply-visible-admin-actions{margin:0}@media(max-width:600px){.reply-visible-editor-tools{align-items:flex-start}.reply-visible-editor-note{flex-basis:100%}.reply-visible-card{padding:12px}.reply-visible-card-head{align-items:flex-start;flex-direction:column;gap:3px}.reply-visible-action{width:100%}}
