/* ===== welcome.blade.php ===== */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}a{background-color:transparent}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid #e2e8f0}a{color:inherit;text-decoration:inherit}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-color:rgba(237,242,247,var(--border-opacity))}.border-t{border-top-width:1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-semibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{margin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-6xl{max-width:72rem}.min-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(--text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-500{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:640px){.sm\:rounded-lg{border-radius:.5rem}.sm\:block{display:block}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:h-20{height:5rem}.sm\:ml-0{margin-left:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-0{padding-top:0}.sm\:text-left{text-align:left}.sm\:text-right{text-align:right}}@media (min-width:768px){.md\:border-t-0{border-top-width:0}.md\:border-l{border-left-width:1px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark\:bg-gray-800{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark\:bg-gray-900{--bg-opacity:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark\:border-gray-700{--border-opacity:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark\:text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.dark\:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.dark\:text-gray-500{--tw-text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--tw-text-opacity))}}

/* ===== welcome.blade.php ===== */
body {
                font-family: 'Nunito', sans-serif;
            }

/* ===== advisor\index.blade.php ===== */
/* ===== Chat Layout ===== */
.chat-wrapper {
    background: #fff;
    border-radius: 12px;
    border: 1px solid var(--tj-border);
    display: flex;
    flex-direction: column;
    height: calc(100vh - 180px);
    min-height: 500px;
    overflow: hidden;
}

.chat-header {
    padding: 16px 24px;
    border-bottom: 1px solid var(--tj-border);
    background: #fafafa;
    flex-shrink: 0;
}

.chat-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: #fff;
    flex-shrink: 0;
}

/* ===== Messages ===== */
.chat-messages {
    flex: 1;
    overflow-y: auto;
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    scroll-behavior: smooth;
}

.message {
    display: flex;
    gap: 12px;
    max-width: 85%;
    animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.ai-message {
    align-self: flex-start;
}

.user-message {
    align-self: flex-end;
    flex-direction: row-reverse;
}

.message-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--tj-gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: #fff;
    flex-shrink: 0;
}

.user-message .message-avatar {
    background: #6c757d;
}

.message-content {
    display: flex;
    flex-direction: column;
}

.message-bubble {
    padding: 12px 18px;
    border-radius: 14px;
    line-height: 1.6;
    font-size: 0.95rem;
}

.ai-bubble {
    background: #f5f5f5;
    border-bottom-left-radius: 4px;
    color: var(--tj-text);
}

.user-bubble {
    background: var(--tj-gold);
    color: #fff;
    border-bottom-right-radius: 4px;
}

/* Markdown in AI messages */
.ai-bubble p { margin-bottom: 6px; }
.ai-bubble ul, .ai-bubble ol { padding-left: 20px; margin-bottom: 6px; }
.ai-bubble li { margin-bottom: 3px; }
.ai-bubble strong { font-weight: 700; }
.ai-bubble code {
    background: #e8e8e8;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.88rem;
    font-family: 'Courier New', monospace;
}
.ai-bubble pre {
    background: #e8e8e8;
    padding: 12px;
    border-radius: 8px;
    overflow-x: auto;
    font-size: 0.88rem;
    margin-bottom: 8px;
}

/* ===== Suggestions ===== */
.suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.suggestion-chip {
    display: inline-block;
    padding: 5px 12px;
    border: 1px solid var(--tj-gold);
    border-radius: 16px;
    font-size: 0.85rem;
    color: var(--tj-gold);
    cursor: pointer;
    transition: all 0.2s;
    background: #fff;
}

.suggestion-chip:hover {
    background: var(--tj-gold);
    color: #fff;
}

/* ===== Input Area ===== */
.chat-input-area {
    padding: 12px 24px 16px;
    border-top: 1px solid var(--tj-border);
    background: #fafafa;
    flex-shrink: 0;
}

.chat-input-wrapper {
    display: flex;
    gap: 10px;
    align-items: flex-end;
}

.chat-input {
    flex: 1;
    border: 1px solid var(--tj-border);
    border-radius: 12px;
    padding: 10px 16px;
    font-size: 0.95rem;
    resize: none;
    outline: none;
    transition: border-color 0.2s;
    max-height: 120px;
    font-family: inherit;
    line-height: 1.5;
}

.chat-input:focus {
    border-color: var(--tj-gold);
    box-shadow: 0 0 0 2px rgba(212,160,23,0.15);
}

.chat-send-btn {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: none;
    background: var(--tj-gold);
    color: #fff;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
    flex-shrink: 0;
}

.chat-send-btn:hover {
    background: var(--tj-gold-dark);
    transform: scale(1.05);
}

.chat-send-btn:disabled {
    background: #ccc;
    cursor: not-allowed;
    transform: none;
}

/* ===== Typing Indicator ===== */
.typing-dots {
    display: flex;
    gap: 4px;
    padding: 4px 0;
}

.typing-dots span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #999;
    animation: typing 1.4s infinite;
}

.typing-dots span:nth-child(2) { animation-delay: 0.2s; }
.typing-dots span:nth-child(3) { animation-delay: 0.4s; }

@keyframes typing {
    0%, 60%, 100% { opacity: 0.3; transform: translateY(0); }
    30% { opacity: 1; transform: translateY(-4px); }
}

/* ===== Scrollbar ===== */
.chat-messages::-webkit-scrollbar { width: 6px; }
.chat-messages::-webkit-scrollbar-track { background: transparent; }
.chat-messages::-webkit-scrollbar-thumb { background: #ddd; border-radius: 3px; }
.chat-messages::-webkit-scrollbar-thumb:hover { background: #bbb; }

/* ===== Responsive ===== */
@media (max-width: 768px) {
    .chat-wrapper { height: calc(100vh - 150px); min-height: 400px; border-radius: 0; margin: -12px -16px; }
    .message { max-width: 92%; }
    .chat-messages { padding: 16px; }
    .chat-input-area { padding: 10px 16px 12px; }
}

/* ===== auth\forgot-password.blade.php ===== */
.auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    padding: 20px;
    position: relative;
    overflow: hidden;
}
.auth-page::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -30%;
    width: 800px;
    height: 800px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212,160,23,0.08) 0%, transparent 70%);
}
.auth-page::after {
    content: '';
    position: absolute;
    bottom: -40%;
    left: -20%;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212,160,23,0.05) 0%, transparent 70%);
}
.auth-card {
    background: #fff;
    border-radius: 20px;
    padding: 40px 36px;
    width: 100%;
    max-width: 420px;
    position: relative;
    z-index: 1;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.auth-header { text-align: center; margin-bottom: 28px; }
.auth-logo {
    display: inline-flex;
    width: 56px; height: 56px;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    border-radius: 16px;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: #fff;
    text-decoration: none;
    margin-bottom: 16px;
    box-shadow: 0 4px 16px rgba(212,160,23,0.3);
}
.auth-header h4 { font-weight: 800; font-size: 1.4rem; margin-bottom: 6px; }
.auth-header p { font-size: 0.9rem; margin: 0; color: #999; }
.form-group { margin-bottom: 18px; }
.form-group label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 6px; color: var(--tj-text); }
.input-wrap {
    display: flex;
    align-items: center;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    padding: 0 14px;
    transition: border-color 0.2s;
    background: #fafafa;
}
.input-wrap:focus-within { border-color: var(--tj-gold); background: #fff; box-shadow: 0 0 0 3px rgba(212,160,23,0.08); }
.input-wrap i { color: #bbb; font-size: 1.1rem; margin-right: 10px; }
.auth-input {
    flex: 1;
    border: none;
    background: transparent;
    padding: 12px 0;
    font-size: 0.95rem;
    outline: none;
    font-family: inherit;
}
.code-wrap { padding-right: 4px; }
.code-btn {
    flex-shrink: 0;
    padding: 8px 16px;
    border: none;
    background: var(--tj-gold);
    color: #fff;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}
.code-btn:hover { background: var(--tj-gold-dark); }
.code-btn:disabled { background: #ddd; color: #999; cursor: not-allowed; }
.auth-btn {
    width: 100%;
    padding: 13px;
    border: none;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    margin-top: 4px;
}
.auth-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(212,160,23,0.35); }
.auth-btn:disabled { opacity: 0.6; pointer-events: none; }
.auth-footer { text-align: center; margin-top: 24px; font-size: 0.88rem; color: #999; }
.auth-footer a { color: var(--tj-gold); font-weight: 600; text-decoration: none; }
.auth-footer a:hover { text-decoration: underline; }
.auth-alert {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 0.85rem;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.auth-alert i { font-size: 1rem; }

/* ===== auth\login.blade.php ===== */
.auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    padding: 20px;
    position: relative;
    overflow: hidden;
}
.auth-page::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -30%;
    width: 800px;
    height: 800px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212,160,23,0.08) 0%, transparent 70%);
}
.auth-page::after {
    content: '';
    position: absolute;
    bottom: -40%;
    left: -20%;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212,160,23,0.05) 0%, transparent 70%);
}
.auth-card {
    background: #fff;
    border-radius: 20px;
    padding: 40px 36px;
    width: 100%;
    max-width: 420px;
    position: relative;
    z-index: 1;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.auth-header { text-align: center; margin-bottom: 28px; }
.auth-logo {
    display: inline-flex;
    width: 56px; height: 56px;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    border-radius: 16px;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: #fff;
    text-decoration: none;
    margin-bottom: 16px;
    box-shadow: 0 4px 16px rgba(212,160,23,0.3);
}
.auth-header h4 { font-weight: 800; font-size: 1.4rem; margin-bottom: 6px; }
.auth-header p { font-size: 0.9rem; margin: 0; }

.auth-tabs {
    display: flex;
    background: #f5f5f5;
    border-radius: 10px;
    padding: 3px;
    margin-bottom: 24px;
}
.auth-tab {
    flex: 1;
    text-align: center;
    padding: 8px 0;
    font-size: 0.85rem;
    color: #999;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.25s;
    font-weight: 500;
}
.auth-tab.active { background: #fff; color: var(--tj-text); box-shadow: 0 2px 8px rgba(0,0,0,0.06); font-weight: 600; }

.form-group { margin-bottom: 18px; }
.form-group label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 6px; color: var(--tj-text); }
.input-wrap {
    display: flex;
    align-items: center;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    padding: 0 14px;
    transition: border-color 0.2s;
    background: #fafafa;
}
.input-wrap:focus-within { border-color: var(--tj-gold); background: #fff; box-shadow: 0 0 0 3px rgba(212,160,23,0.08); }
.input-wrap i { color: #bbb; font-size: 1.1rem; margin-right: 10px; }
.auth-input {
    flex: 1;
    border: none;
    background: transparent;
    padding: 12px 0;
    font-size: 0.95rem;
    outline: none;
    font-family: inherit;
}
.code-wrap { padding-right: 4px; }
.code-btn {
    flex-shrink: 0;
    padding: 8px 16px;
    border: none;
    background: var(--tj-gold);
    color: #fff;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}
.code-btn:hover { background: var(--tj-gold-dark); }
.code-btn:disabled { background: #ddd; color: #999; cursor: not-allowed; }

.auth-btn {
    width: 100%;
    padding: 13px;
    border: none;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    margin-top: 4px;
}
.auth-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(212,160,23,0.35); }

.auth-footer { text-align: center; margin-top: 24px; font-size: 0.88rem; color: #999; }
.auth-footer a { color: var(--tj-gold); font-weight: 600; text-decoration: none; }
.auth-footer a:hover { text-decoration: underline; }

/* AJAX 错误提示 */
.auth-alert {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 0.85rem;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.auth-alert i { font-size: 1rem; }
.auth-btn-loading {
    pointer-events: none;
    opacity: 0.7;
}

/* 记住 */
.remember-wrap { margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; }
.remember-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 0.85rem;
    color: #666;
    user-select: none;
}
.remember-label input { display: none; }
.remember-check {
    width: 18px;
    height: 18px;
    border: 2px solid #d0d0d0;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
    flex-shrink: 0;
}
.remember-check i { font-size: 0.65rem; color: #fff; display: none; }
.remember-label input:checked + .remember-check {
    background: var(--tj-gold);
    border-color: var(--tj-gold);
}
.remember-label input:checked + .remember-check i { display: inline; }
.remember-label:hover .remember-check { border-color: var(--tj-gold); }
.forgot-link { font-size: 0.82rem; color: var(--tj-gold); text-decoration: none; font-weight: 500; }
.forgot-link:hover { text-decoration: underline; }

/* ===== auth\register.blade.php ===== */
.auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    padding: 20px;
    position: relative;
    overflow: hidden;
}
.auth-page::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -30%;
    width: 800px;
    height: 800px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212,160,23,0.08) 0%, transparent 70%);
}
.auth-page::after {
    content: '';
    position: absolute;
    bottom: -40%;
    left: -20%;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212,160,23,0.05) 0%, transparent 70%);
}
.auth-card {
    background: #fff;
    border-radius: 20px;
    padding: 40px 36px;
    width: 100%;
    max-width: 420px;
    position: relative;
    z-index: 1;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.auth-header { text-align: center; margin-bottom: 28px; }
.auth-logo {
    display: inline-flex;
    width: 56px; height: 56px;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    border-radius: 16px;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: #fff;
    text-decoration: none;
    margin-bottom: 16px;
    box-shadow: 0 4px 16px rgba(212,160,23,0.3);
}
.auth-header h4 { font-weight: 800; font-size: 1.4rem; margin-bottom: 6px; }
.auth-header p { font-size: 0.9rem; margin: 0; }
.form-group { margin-bottom: 18px; }
.form-group label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 6px; color: var(--tj-text); }
.input-wrap {
    display: flex;
    align-items: center;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    padding: 0 14px;
    transition: border-color 0.2s;
    background: #fafafa;
}
.input-wrap:focus-within { border-color: var(--tj-gold); background: #fff; box-shadow: 0 0 0 3px rgba(212,160,23,0.08); }
.input-wrap i { color: #bbb; font-size: 1.1rem; margin-right: 10px; }
.auth-input {
    flex: 1;
    border: none;
    background: transparent;
    padding: 12px 0;
    font-size: 0.95rem;
    outline: none;
    font-family: inherit;
}
.code-wrap { padding-right: 4px; }
.code-btn {
    flex-shrink: 0;
    padding: 8px 16px;
    border: none;
    background: var(--tj-gold);
    color: #fff;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}
.code-btn:hover { background: var(--tj-gold-dark); }
.code-btn:disabled { background: #ddd; color: #999; cursor: not-allowed; }
.auth-btn {
    width: 100%;
    padding: 13px;
    border: none;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    margin-top: 4px;
}
.auth-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(212,160,23,0.35); }
.auth-footer { text-align: center; margin-top: 24px; font-size: 0.88rem; color: #999; }
.auth-footer a { color: var(--tj-gold); font-weight: 600; text-decoration: none; }
.auth-footer a:hover { text-decoration: underline; }

/* AJAX 错误提示 */
.auth-alert {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 0.85rem;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.auth-alert i { font-size: 1rem; }
.auth-btn-loading {
    pointer-events: none;
    opacity: 0.7;
}

/* ===== auth\reset-password.blade.php ===== */
.auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    padding: 20px;
    position: relative;
    overflow: hidden;
}
.auth-page::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -30%;
    width: 800px;
    height: 800px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212,160,23,0.08) 0%, transparent 70%);
}
.auth-page::after {
    content: '';
    position: absolute;
    bottom: -40%;
    left: -20%;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212,160,23,0.05) 0%, transparent 70%);
}
.auth-card {
    background: #fff;
    border-radius: 20px;
    padding: 40px 36px;
    width: 100%;
    max-width: 420px;
    position: relative;
    z-index: 1;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.auth-header { text-align: center; margin-bottom: 28px; }
.auth-logo {
    display: inline-flex;
    width: 56px; height: 56px;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    border-radius: 16px;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: #fff;
    text-decoration: none;
    margin-bottom: 16px;
    box-shadow: 0 4px 16px rgba(212,160,23,0.3);
}
.auth-header h4 { font-weight: 800; font-size: 1.4rem; margin-bottom: 6px; }
.auth-header p { font-size: 0.9rem; margin: 0; color: #999; }
.form-group { margin-bottom: 18px; }
.form-group label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 6px; color: var(--tj-text); }
.input-wrap {
    display: flex;
    align-items: center;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    padding: 0 14px;
    transition: border-color 0.2s;
    background: #fafafa;
}
.input-wrap:focus-within { border-color: var(--tj-gold); background: #fff; box-shadow: 0 0 0 3px rgba(212,160,23,0.08); }
.input-wrap i { color: #bbb; font-size: 1.1rem; margin-right: 10px; }
.auth-input {
    flex: 1;
    border: none;
    background: transparent;
    padding: 12px 0;
    font-size: 0.95rem;
    outline: none;
    font-family: inherit;
}
.auth-btn {
    width: 100%;
    padding: 13px;
    border: none;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    margin-top: 4px;
}
.auth-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(212,160,23,0.35); }
.auth-btn:disabled { opacity: 0.6; pointer-events: none; }
.auth-footer { text-align: center; margin-top: 24px; font-size: 0.88rem; color: #999; }
.auth-footer a { color: var(--tj-gold); font-weight: 600; text-decoration: none; }
.auth-footer a:hover { text-decoration: underline; }
.auth-alert {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 0.85rem;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.auth-alert i { font-size: 1rem; }

/* ===== auth\setup-profile.blade.php ===== */
.auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
    padding: 20px;
    position: relative;
    overflow: hidden;
}
.auth-page::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -30%;
    width: 800px;
    height: 800px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212,160,23,0.08) 0%, transparent 70%);
}
.auth-page::after {
    content: '';
    position: absolute;
    bottom: -40%;
    left: -20%;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(212,160,23,0.05) 0%, transparent 70%);
}
.auth-card {
    background: #fff;
    border-radius: 20px;
    padding: 40px 36px;
    width: 100%;
    max-width: 420px;
    position: relative;
    z-index: 1;
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.auth-header { text-align: center; margin-bottom: 28px; }
.auth-logo {
    display: inline-flex;
    width: 56px; height: 56px;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    border-radius: 16px;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: #fff;
    text-decoration: none;
    margin-bottom: 16px;
    box-shadow: 0 4px 16px rgba(212,160,23,0.3);
}
.auth-header h4 { font-weight: 800; font-size: 1.4rem; margin-bottom: 6px; }
.auth-header p { font-size: 0.9rem; margin: 0; }
.form-group { margin-bottom: 18px; }
.form-group label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 6px; color: var(--tj-text); }

.input-wrap {
    display: flex;
    align-items: center;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    padding: 0 14px;
    transition: border-color 0.2s;
    background: #fafafa;
}
.input-wrap:focus-within { border-color: var(--tj-gold); background: #fff; box-shadow: 0 0 0 3px rgba(212,160,23,0.08); }
.input-wrap i { color: #bbb; font-size: 1.1rem; margin-right: 10px; }
.auth-input {
    flex: 1;
    border: none;
    background: transparent;
    padding: 12px 0;
    font-size: 0.95rem;
    outline: none;
    font-family: inherit;
}

.auth-btn {
    width: 100%;
    padding: 13px;
    border: none;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    margin-top: 4px;
}
.auth-btn:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(212,160,23,0.35); }
.auth-footer { text-align: center; margin-top: 24px; font-size: 0.88rem; color: #999; }
.auth-footer a:hover { text-decoration: underline; }

/* 头像上传 */
.avatar-upload {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
}
.avatar-preview {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: linear-gradient(135deg, #f5f5f5, #e8e8e8);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px dashed #ccc;
    transition: all 0.25s;
    overflow: hidden;
}
.avatar-preview i {
    font-size: 2.2rem;
    color: #bbb;
}
.avatar-upload:hover .avatar-preview {
    border-color: var(--tj-gold);
    background: rgba(212,160,23,0.05);
}
.avatar-upload:hover .avatar-preview i {
    color: var(--tj-gold);
}
.avatar-preview-img {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
}
.avatar-hint {
    margin-top: 8px;
    font-size: 0.82rem;
    color: #999;
}

/* ===== bootcamp\available.blade.php ===== */
.bootcamp-card { height: 100%; }
    .bootcamp-card .card-body { display: flex; flex-direction: column; }

/* ===== bootcamp\create.blade.php ===== */
.step-indicator {
    display:flex; align-items:center; justify-content:center; gap:0; margin-bottom:28px;
}
.step-item {
    display:flex; align-items:center; gap:8px; padding:8px 18px;
    border-radius:20px; font-size:0.82rem; font-weight:600; color:#999;
    background:#f5f5f5; transition:all .2s;
}
.step-item.active {
    background:var(--tj-gold); color:#fff;
}
.step-item.done {
    background:#e8f5e9; color:#2e7d32;
}
.step-line {
    width:32px; height:2px; background:#ddd; margin:0 4px;
}
.step-line.active {
    background:var(--tj-gold);
}
.step-line.done {
    background:#2e7d32;
}
.step-number {
    display:inline-flex; align-items:center; justify-content:center;
    width:22px; height:22px; border-radius:50%; font-size:0.72rem; font-weight:700;
}
.step-item.active .step-number { background:rgba(255,255,255,0.25); }
.step-item.done .step-number { background:rgba(46,125,50,0.15); color:#2e7d32; }

.phase-panel { display:none; }
.phase-panel.active { display:block; }

.task-row {
    background:#fafaf8; border:1px solid var(--tj-border); border-radius:10px;
    padding:16px; margin-bottom:12px; position:relative;
}
.task-row .task-number {
    position:absolute; left:-8px; top:-8px;
    width:26px; height:26px; border-radius:50%;
    background:var(--tj-gold); color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-size:0.72rem; font-weight:700;
}
.task-row .btn-remove-task {
    position:absolute; right:6px; top:6px; width:24px; height:24px;
    border-radius:50%; border:none; background:#fee2e2; color:#ef4444;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    font-size:0.7rem; transition:all .15s;
}
.task-row .btn-remove-task:hover { background:#ef4444; color:#fff; }

.btn-step {
    padding:10px 28px; border-radius:8px; font-size:0.9rem; font-weight:600;
    border:none; cursor:pointer; transition:all .15s;
}
.btn-step-prev {
    background:#f0f0f0; color:#333;
}
.btn-step-prev:hover { background:#e0e0e0; }
.btn-step-next {
    background:var(--tj-gold); color:#fff;
}
.btn-step-next:hover { opacity:0.9; }
.btn-step-submit {
    background:#2e7d32; color:#fff;
}
.btn-step-submit:hover { opacity:0.9; }

.setting-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:16px;
}
.setting-grid .full { grid-column:1/-1; }

.toggle-switch {
    position:relative; display:inline-flex; align-items:center; gap:8px;
    cursor:pointer; user-select:none;
}
.toggle-switch input { display:none; }
.toggle-switch .toggle-track {
    width:40px; height:22px; border-radius:11px; background:#ddd;
    transition:all .2s; position:relative;
}
.toggle-switch input:checked + .toggle-track { background:var(--tj-gold); }
.toggle-switch .toggle-track::after {
    content:''; position:absolute; left:2px; top:2px;
    width:18px; height:18px; border-radius:50%; background:#fff;
    transition:all .2s; box-shadow:0 1px 3px rgba(0,0,0,0.15);
}
.toggle-switch input:checked + .toggle-track::after { left:20px; }
.toggle-label { font-size:0.85rem; font-weight:500; color:#555; }

.review-section {
    border-bottom:1px solid var(--tj-border); padding:14px 0;
}
.review-section:last-child { border-bottom:none; }
.review-label { font-size:0.78rem; color:#999; margin-bottom:4px; }
.review-value { font-size:0.92rem; font-weight:500; }

/* ===== bootcamp\dashboard.blade.php ===== */
.dash-header { background: #fff; border-radius: 16px; padding: 24px; box-shadow: 0 2px 8px rgba(0,0,0,0.06); margin-bottom: 24px; }
    .dash-header h4 { font-weight: 800; }
    .dash-card { background: #fff; border-radius: 16px; padding: 24px; box-shadow: 0 2px 8px rgba(0,0,0,0.06); margin-bottom: 24px; }
    .dash-card h5 { font-weight: 700; }
    .task-item { display: flex; align-items: flex-start; gap: 12px; padding: 12px; border-radius: 8px; transition: background 0.2s; }
    .task-item:hover { background: #f8f9fa; }
    .task-item .task-check { margin-top: 2px; }
    .task-item .task-content h6 { font-weight: 600; margin-bottom: 4px; }
    .task-item .task-content p { margin: 0; font-size: 0.9rem; color: #666; }
    .task-done .task-content h6 { text-decoration: line-through; color: #aaa; }
    .help-btn { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 16px; border-radius: 12px; text-decoration: none; transition: all 0.2s; border: 2px solid #f0f0f0; }
    .help-btn:hover { border-color: var(--tj-gold); background: #fff8e1; }
    .help-btn i { font-size: 1.5rem; color: var(--tj-gold); }
    .help-btn span { font-size: 0.85rem; color: #555; }
    .discussion-item { padding: 16px; border-bottom: 1px solid #f0f0f0; }
    .discussion-item:last-child { border-bottom: none; }
    .discussion-avatar { width: 36px; height: 36px; border-radius: 50%; }
    .day-badge-large { background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark)); color: #fff; border-radius: 12px; padding: 4px 16px; font-size: 0.9rem; font-weight: 700; }
    .material-link { display: flex; align-items: center; gap: 8px; padding: 10px 16px; background: #f8f9fa; border-radius: 8px; text-decoration: none; color: #333; transition: all 0.2s; }
    .material-link:hover { background: var(--tj-gold-light); color: var(--tj-gold-dark); }

/* ===== chat\index.blade.php ===== */
.chat-page { display:flex; gap:0; background:#fff; border-radius:12px; border:1px solid #e8e8e8; overflow:hidden; min-height:calc(100vh - 200px); }
.chat-sidebar { width:320px; border-right:1px solid #e8e8e8; flex-shrink:0; display:flex; flex-direction:column; }
.chat-sidebar-header { padding:16px 20px; border-bottom:1px solid #e8e8e8; }
.chat-conversations { flex:1; overflow-y:auto; }
.chat-conv-item { display:flex; gap:12px; padding:14px 20px; border-bottom:1px solid #f5f5f5; text-decoration:none; transition:background 0.15s; align-items:center; }
.chat-conv-item:hover { background:#fafafa; text-decoration:none; }
.chat-conv-item.active { background:#fffbeb; }
.chat-conv-avatar { width:42px; height:42px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.chat-conv-info { flex:1; min-width:0; }
.chat-conv-name { font-size:0.9rem; font-weight:600; color:var(--tj-text); }
.chat-conv-msg { font-size:0.8rem; color:#999; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.chat-conv-meta { flex-shrink:0; text-align:right; }
.chat-conv-time { font-size:0.68rem; color:#bbb; }
.chat-conv-badge { display:inline-block; background:#ef4444; color:#fff; font-size:0.65rem; padding:1px 6px; border-radius:8px; margin-top:4px; font-weight:600; }
.chat-main { flex:1; display:flex; flex-direction:column; }
@media (max-width:768px) { .chat-sidebar { width:100%; } .chat-main { display:none; } }

/* ===== chat\show.blade.php ===== */
.chat-page { display:flex; gap:0; background:#fff; border-radius:12px; border:1px solid #e8e8e8; overflow:hidden; min-height:calc(100vh - 200px); }
.chat-sidebar { width:320px; border-right:1px solid #e8e8e8; flex-shrink:0; display:flex; flex-direction:column; }
.chat-sidebar-header { padding:16px 20px; border-bottom:1px solid #e8e8e8; }
.chat-conversations { flex:1; overflow-y:auto; }
.chat-conv-item { display:flex; gap:12px; padding:14px 20px; border-bottom:1px solid #f5f5f5; text-decoration:none; transition:background 0.15s; align-items:center; }
.chat-conv-item:hover { background:#fafafa; text-decoration:none; }
.chat-conv-item.active { background:#fffbeb; }
.chat-conv-avatar { width:42px; height:42px; border-radius:50%; object-fit:cover; flex-shrink:0; }
.chat-conv-info { flex:1; min-width:0; }
.chat-conv-name { font-size:0.9rem; font-weight:600; color:var(--tj-text); }
.chat-conv-msg { font-size:0.8rem; color:#999; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.chat-conv-meta { flex-shrink:0; text-align:right; }
.chat-conv-time { font-size:0.68rem; color:#bbb; }
.chat-conv-badge { display:inline-block; background:#ef4444; color:#fff; font-size:0.65rem; padding:1px 6px; border-radius:8px; margin-top:4px; font-weight:600; }
.chat-main { flex:1; display:flex; flex-direction:column; }
.chat-main-header { padding:14px 20px; border-bottom:1px solid #e8e8e8; background:#fafafa; }
.chat-main-messages { flex:1; overflow-y:auto; padding:20px; display:flex; flex-direction:column; gap:12px; background:#f8f8f8; }
.chat-msg { display:flex; gap:10px; max-width:75%; animation:fadeIn 0.2s; }
.chat-msg-self { align-self:flex-end; flex-direction:row-reverse; }
.chat-msg-other { align-self:flex-start; }
.chat-msg-avatar { width:30px; height:30px; border-radius:50%; object-fit:cover; flex-shrink:0; margin-top:4px; }
.chat-msg-bubble { padding:10px 16px; border-radius:16px; font-size:0.9rem; line-height:1.5; }
.chat-msg-bubble.self { background:var(--tj-gold); color:#fff; border-bottom-right-radius:4px; }
.chat-msg-bubble.other { background:#fff; color:var(--tj-text); border-bottom-left-radius:4px; box-shadow:0 1px 3px rgba(0,0,0,0.06); }
.chat-msg-time { font-size:0.65rem; color:#bbb; margin-top:3px; text-align:right; }
.chat-main-input { display:flex; gap:10px; padding:14px 20px; border-top:1px solid #e8e8e8; background:#fff; }
.chat-input-box { flex:1; border:1px solid #e0e0e0; border-radius:20px; padding:10px 16px; font-size:0.9rem; resize:none; outline:none; max-height:100px; font-family:inherit; }
.chat-input-box:focus { border-color:var(--tj-gold); }
.chat-send-btn { width:40px; height:40px; border-radius:50%; border:none; background:var(--tj-gold); color:#fff; font-size:1rem; cursor:pointer; transition:all 0.15s; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.chat-send-btn:hover { background:var(--tj-gold-dark); }
@keyframes fadeIn { from{opacity:0;transform:translateY(6px);} to{opacity:1;transform:translateY(0);} }
@media (max-width:768px) { .chat-sidebar { width:100%; } .chat-main { display:none; } }

/* ===== circle\index.blade.php ===== */
.circle-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px;
    background: #f8f9fa;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.2s;
    height: 100%;
}
.circle-card:hover {
    background: #fff8e1;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(212,160,23,0.12);
    text-decoration: none;
}
.circle-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    color: #fff;
    flex-shrink: 0;
}
.circle-card-info { flex: 1; min-width: 0; }
.circle-card-name { font-weight: 700; font-size: 0.95rem; color: var(--tj-text); }
.circle-card-desc { font-size: 0.78rem; color: #999; margin-top: 2px; }
.circle-card-stats { display: flex; gap: 12px; font-size: 0.72rem; color: #bbb; margin-top: 4px; }

/* ===== column\index.blade.php ===== */
.col-card {
    background:#fff;border-radius:12px;overflow:hidden;text-decoration:none;
    transition:all 0.2s;box-shadow:0 1px 3px rgba(0,0,0,0.06);
}
.col-card:hover { transform:translateY(-3px);box-shadow:0 4px 16px rgba(0,0,0,0.1);text-decoration:none; }
.col-cover {
    height:100px;display:flex;align-items:center;justify-content:center;color:#fff;
}
.col-cover img { width:100%;height:100%;object-fit:cover; }
.col-body { padding:14px 16px; }
.col-name { font-weight:700;font-size:1rem;color:var(--tj-text);margin-bottom:4px; }
.col-desc { font-size:0.82rem;color:#999;line-height:1.4;margin-bottom:8px; }
.col-meta { display:flex;gap:12px;font-size:0.78rem;color:#bbb; }

/* ===== column\show.blade.php ===== */
.feed-card { background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:10px;box-shadow:0 1px 3px rgba(0,0,0,0.04); }

/* ===== contacts\edit.blade.php ===== */
.contact-avatar-upload {
    position: relative;
    display: inline-block;
    cursor: pointer;
}
.contact-avatar-overlay {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0,0,0,0.5);
    color: #fff;
    width: 80px;
    height: 28px;
    border-radius: 0 0 40px 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    transition: all 0.2s;
}
.contact-avatar-upload:hover .contact-avatar-overlay {
    height: 80px;
    border-radius: 50%;
    background: rgba(0,0,0,0.4);
}
.contact-avatar-upload:hover .contact-avatar-overlay i {
    font-size: 1.3rem;
}

/* ===== contacts\index.blade.php ===== */
/* 顶部信息 */
    .contacts-header {
        background: linear-gradient(135deg, #fffbeb 0%, #fff 100%);
        border: 1px solid var(--tj-border);
        border-radius: 12px;
        padding: 16px 20px;
        margin-bottom: 16px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 12px;
    }
    .contacts-header .quota { font-size: 0.9rem; color: var(--tj-text-secondary); }
    .contacts-header .quota strong { color: var(--tj-gold); font-size: 1.1rem; }
    .contacts-header .quota .low { color: #dc3545; }

    /* 搜索 */
    .contacts-search { position: relative; width: 300px; }
    .contacts-search input {
        width: 100%; border: 1px solid var(--tj-border); border-radius: 24px;
        padding: 9px 16px 9px 42px; font-size: 0.9rem; background: #fff;
        transition: all 0.2s;
    }
    .contacts-search input:focus { outline: none; border-color: var(--tj-gold); box-shadow: 0 0 0 3px rgba(212,160,23,0.1); }
    .contacts-search i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: var(--tj-text-secondary); }

    /* 名片卡片网格 */
    .contacts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }

    .contact-card {
        background: #fff; border: 1px solid var(--tj-border); border-radius: 14px;
        overflow: hidden; transition: all 0.25s; position: relative;
    }
    .contact-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.1); border-color: var(--tj-gold); }

    /* 卡片顶部装饰 */
    .contact-card::before {
        content: ''; display: block; height: 4px;
        background: linear-gradient(90deg, var(--tj-gold), #f5d77a, var(--tj-gold));
    }

    .contact-card-body { padding: 20px; text-align: center; }

    .contact-avatar {
        width: 72px; height: 72px; border-radius: 50%; object-fit: cover;
        border: 3px solid var(--tj-border); margin: 0 auto 12px;
        transition: border-color 0.2s;
    }
    .contact-card:hover .contact-avatar { border-color: var(--tj-gold); }

    .contact-nickname { font-size: 1.1rem; font-weight: 700; color: var(--tj-text); margin-bottom: 4px; }
    .contact-company { font-size: 0.85rem; color: var(--tj-text-secondary); margin-bottom: 12px; display: flex; align-items: center; justify-content: center; gap: 4px; }

    .contact-tags { margin-bottom: 14px; }
    .contact-tags .tag-row { display: flex; align-items: flex-start; gap: 6px; margin-bottom: 6px; font-size: 0.8rem; }
    .contact-tags .tag-label {
        flex-shrink: 0; padding: 2px 8px; border-radius: 6px;
        font-weight: 600; font-size: 0.72rem; white-space: nowrap;
    }
    .tag-offer { background: #e6fcf5; color: #0ca678; }
    .tag-seek { background: #fff0f6; color: #d6336c; }
    .contact-tags .tag-text {
        color: var(--tj-text-secondary); line-height: 1.5;
        display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
        text-align: left;
    }

    .contact-actions { display: flex; gap: 8px; }
    .btn-contact {
        flex: 1; padding: 8px 14px; border-radius: 8px; font-size: 0.85rem;
        font-weight: 600; cursor: pointer; transition: all 0.15s; border: none;
        display: flex; align-items: center; justify-content: center; gap: 4px;
        text-decoration: none;
    }
    .btn-download { background: var(--tj-gold); color: #fff; }
    .btn-download:hover { background: var(--tj-gold-dark); color: #fff; }
    .btn-download.downloaded { background: #e8f5e9; color: #388e3c; cursor: default; pointer-events: none; }
    .btn-preview { background: var(--tj-bg); color: var(--tj-text-secondary); }
    .btn-preview:hover { background: #e0e0e0; color: var(--tj-text); }

    .badge-download-count {
        position: absolute; top: 10px; right: 12px;
        background: var(--tj-gold); color: #fff; font-size: 0.7rem;
        font-weight: 600; padding: 2px 10px; border-radius: 100px;
    }

    /* 分页 */
    .pagination-wrap { display: flex; justify-content: center; margin-top: 20px; }

    /* H5 适配 */
    @media (max-width: 768px) {
        .contacts-header { flex-direction: column; align-items: stretch; }
        .contacts-search { width: 100%; }
        .contacts-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
        .contact-card-body { padding: 14px; }
        .contact-avatar { width: 56px; height: 56px; }
        .contact-nickname { font-size: 0.95rem; }
    }

/* ===== contacts\show.blade.php ===== */
.card-detail {
        background: #fff; border-radius: 16px; border: 1px solid var(--tj-border);
        overflow: hidden; max-width: 520px; margin: 0 auto;
    }
    .card-detail-header {
        height: 100px;
        background: linear-gradient(135deg, var(--tj-gold) 0%, #f5d77a 50%, var(--tj-gold-dark) 100%);
        position: relative;
    }
    .card-detail-avatar {
        width: 90px; height: 90px; border-radius: 50%; border: 4px solid #fff;
        object-fit: cover; position: absolute; bottom: -45px; left: 50%;
        transform: translateX(-50%); box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    }
    .card-detail-body { padding: 56px 28px 28px; text-align: center; }
    .card-detail-nickname { font-size: 1.3rem; font-weight: 700; margin-bottom: 4px; }
    .card-detail-company { font-size: 0.9rem; color: var(--tj-text-secondary); margin-bottom: 18px; }
    .card-detail-section { text-align: left; margin-bottom: 14px; }
    .card-detail-section .sec-title {
        font-size: 0.8rem; font-weight: 700; margin-bottom: 6px; display: flex; align-items: center; gap: 4px;
    }
    .card-detail-section .sec-content {
        padding: 10px 14px; border-radius: 8px; font-size: 0.88rem; line-height: 1.6;
    }
    .sec-offer .sec-content { background: #e6fcf5; color: #0ca678; }
    .sec-seek .sec-content { background: #fff0f6; color: #d6336c; }

    .btn-back { display: block; width: fit-content; margin: 16px auto 0; }

/* ===== content\create.blade.php ===== */
.btn-gold {
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.btn-gold:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,160,23,0.3); color: #fff; }
.btn-ghost {
    background: transparent;
    color: var(--tj-text);
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.btn-ghost:hover { background: #f5f5f5; text-decoration: none; }
.type-tab:hover:not(.active) { background: #f5f5f5 !important; color: var(--tj-text) !important; text-decoration: none; }

/* ===== content\edit.blade.php ===== */
.btn-gold {
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.btn-gold:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,160,23,0.3); color: #fff; }
.btn-ghost {
    background: transparent; color: var(--tj-text); border: 1px solid #e0e0e0;
    border-radius: 8px; font-weight: 500; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-ghost:hover { background: #f5f5f5; text-decoration: none; }

/* ===== course\index.blade.php ===== */
.course-grid { display:flex; flex-wrap:wrap; margin:0 -6px; }
.course-col {
    flex:0 0 20%; max-width:20%; padding:6px;
}
@media (max-width:1200px) { .course-col { flex:0 0 25%; max-width:25%; } }
@media (max-width:992px)  { .course-col { flex:0 0 33.33%; max-width:33.33%; } }
@media (max-width:768px)  { .course-col { flex:0 0 50%; max-width:50%; } }
@media (max-width:576px)  { .course-col { flex:0 0 100%; max-width:100%; } }
.course-card { border-radius:10px; overflow:hidden; border:1px solid var(--tj-border); background:#fff; height:100%; transition:all 0.2s; }
.course-card:hover { box-shadow:0 4px 16px rgba(0,0,0,0.06); border-color:#ddd; transform:translateY(-2px); }

/* ===== course\master_create.blade.php ===== */
.lesson-item { border: 1px solid #e9ecef; border-radius: 8px; padding: 16px; margin-bottom: 12px; background: #f8f9fa; }
    .lesson-item:hover { border-color: var(--tj-gold-light); }

/* ===== demand\create.blade.php ===== */
.btn-gold {
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.btn-gold:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,160,23,0.3); color: #fff; }
.btn-ghost {
    background: transparent; color: var(--tj-text); border: 1px solid #e0e0e0;
    border-radius: 8px; font-weight: 500; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-ghost:hover { background: #f5f5f5; text-decoration: none; }
.type-option {
    display:flex;flex-direction:column;align-items:center;gap:6px;
    padding:20px 16px;border:2px solid var(--tj-border);border-radius:12px;
    cursor:pointer;transition:all 0.2s;
}
.type-option:hover { border-color: var(--tj-gold); background: #fffbeb; }
.type-option.selected { border-color: var(--tj-gold); background: #fffbeb; box-shadow: 0 2px 8px rgba(212,160,23,0.15); }

/* ===== feed\create-article.blade.php ===== */
/* 隐藏左右侧边栏，全宽显示 — 已隔离至 feed 创作页，本项目不需此规 */

/* 编辑器样 */
#editor-container { min-height:360px; font-size:1rem; line-height:1.8; }
.ql-editor { min-height:360px; }
.ql-toolbar { border-radius:10px 10px 0 0; border-color:#e0e0e0 !important; }
.ql-container { border-radius:0 0 10px 10px; border-color:#e0e0e0 !important; }

.writer-box{background:#fff;border-radius:14px;padding:28px 32px;box-shadow:0 1px 4px rgba(0,0,0,.05);}
.writer-title{border:none;font-size:1.5rem;font-weight:800;padding:12px 0;width:100%;outline:none;font-family:inherit;color:var(--tj-text);border-bottom:2px solid transparent;transition:border-color .2s;}
.writer-title:focus{border-bottom-color:var(--tj-gold);}
.writer-title::placeholder{color:#ddd;}

.chip-group{display:flex;gap:6px;flex-wrap:wrap;}
.chip{cursor:pointer;}
.chip span{display:inline-flex;align-items:center;gap:4px;padding:5px 14px;border-radius:16px;border:1px solid #e0e0e0;font-size:.82rem;color:#666;transition:all .12s;background:#fafafa;}
.chip input:checked+span{background:#fff8e1;border-color:var(--tj-gold);color:var(--tj-gold-dark);font-weight:600;}
.chip:hover span{border-color:var(--tj-gold);}

.btn-gold{background:linear-gradient(135deg,var(--tj-gold),var(--tj-gold-dark));color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-flex;align-items:center;gap:6px;padding:10px 28px;}
.btn-gold:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(212,160,23,.3);color:#fff;}
.btn-ghost{background:transparent;color:var(--tj-text);border:1px solid #e0e0e0;border-radius:8px;font-weight:500;cursor:pointer;transition:all .15s;text-decoration:none;display:inline-flex;align-items:center;gap:6px;padding:10px 24px;}
.btn-ghost:hover{background:#f5f5f5;text-decoration:none;}

/* ===== feed\create-note.blade.php ===== */
.btn-gold { background:linear-gradient(135deg,var(--tj-gold),var(--tj-gold-dark));color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all 0.2s;text-decoration:none;display:inline-flex;align-items:center;gap:6px; }
.btn-gold:hover { transform:translateY(-1px);box-shadow:0 4px 12px rgba(212,160,23,0.3);color:#fff; }
.btn-ghost { background:transparent;color:var(--tj-text);border:1px solid #e0e0e0;border-radius:8px;font-weight:500;cursor:pointer;transition:all 0.2s;text-decoration:none;display:inline-flex;align-items:center;gap:6px; }
.btn-ghost:hover { background:#f5f5f5;text-decoration:none; }
.sel-chip { cursor:pointer; }
.sel-chip span { display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:20px;border:1px solid #e0e0e0;font-size:0.85rem;transition:all 0.15s; }
.sel-chip input:checked + span { background:#fff8e1;border-color:var(--tj-gold);color:var(--tj-gold-dark);font-weight:600; }
.sel-chip:hover span { border-color:var(--tj-gold); }

/* ===== feed\create-question.blade.php ===== */
.btn-gold { background:linear-gradient(135deg,var(--tj-gold),var(--tj-gold-dark));color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all 0.2s;text-decoration:none;display:inline-flex;align-items:center;gap:6px; }
.btn-gold:hover { transform:translateY(-1px);box-shadow:0 4px 12px rgba(212,160,23,0.3);color:#fff; }
.btn-ghost { background:transparent;color:var(--tj-text);border:1px solid #e0e0e0;border-radius:8px;font-weight:500;cursor:pointer;transition:all 0.2s;text-decoration:none;display:inline-flex;align-items:center;gap:6px; }
.btn-ghost:hover { background:#f5f5f5;text-decoration:none; }
.sel-chip { cursor:pointer; }
.sel-chip span { display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:20px;border:1px solid #e0e0e0;font-size:0.85rem;transition:all 0.15s; }
.sel-chip input:checked + span { background:#fff8e1;border-color:var(--tj-gold);color:var(--tj-gold-dark);font-weight:600; }
.sel-chip:hover span { border-color:var(--tj-gold); }

/* ===== home\welcome.blade.php ===== */
.hero-section {
        background: linear-gradient(135deg, #1a1a2e 0%, #16213e 60%, #0f3460 100%);
        color: #fff;
        padding: 80px 56px;
        border-radius: 16px;
        position: relative;
        overflow: hidden;
        margin-bottom: 24px;
    }
    .hero-section::before {
        content: ''; position: absolute; top: -50%; right: -20%;
        width: 600px; height: 600px; border-radius: 50%;
        background: radial-gradient(circle, rgba(212,160,23,0.15) 0%, transparent 70%);
    }
    .hero-section h1 { font-size: 3rem; font-weight: 800; margin-bottom: 16px; position: relative; }
    .hero-section .slogan { font-size: 1.7rem; color: var(--tj-gold); font-weight: 700; margin-bottom: 24px; position: relative; }
    .hero-section .desc { font-size: 1.2rem; color: rgba(255,255,255,0.75); max-width: 620px; margin-bottom: 32px; position: relative; line-height: 1.8; }
    .hero-section .cta-group { position: relative; }
    .hero-section .btn { padding: 12px 36px; font-size: 1.05rem; }
    .feature-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 24px; }
    @media (max-width: 768px) { .feature-row { grid-template-columns: 1fr; } }
    .feature-item {
        background: #fff; border-radius: 14px; padding: 32px; border: 1px solid var(--tj-border);
        transition: all 0.2s; text-align: center;
    }
    .feature-item:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.08); transform: translateY(-3px); }
    .feature-item .ficon {
        width: 56px; height: 56px; border-radius: 14px; display: flex;
        align-items: center; justify-content: center; margin: 0 auto 18px; font-size: 1.7rem;
    }
    .feature-item h5 { font-weight: 700; margin-bottom: 8px; font-size: 1.2rem; }
    .feature-item p { color: var(--tj-text-secondary); font-size: 0.95rem; margin: 0; line-height: 1.6; }
    .stat-bar {
        background: #fff; border-radius: 14px; padding: 32px; border: 1px solid var(--tj-border);
        display: flex; justify-content: space-around; margin-bottom: 24px;
    }
    .stat-bar .stat-item { text-align: center; }
    .stat-bar .stat-num { font-size: 2.2rem; font-weight: 800; color: var(--tj-gold); }
    .stat-bar .stat-label { font-size: 0.95rem; color: var(--tj-text-secondary); margin-top: 4px; }
    .cta-section {
        background: linear-gradient(135deg, #fffbeb 0%, #fff8e1 100%);
        border: 1px solid #f5e6a8; border-radius: 16px; padding: 52px; text-align: center;
    }
    .cta-section h3 { font-weight: 800; margin-bottom: 10px; font-size: 1.6rem; }
    .cta-section p { color: var(--tj-text-secondary); margin-bottom: 24px; font-size: 1.1rem; }
    @media (max-width: 768px) {
        .hero-section { padding: 40px 24px; }
        .hero-section h1 { font-size: 2rem; }
        .hero-section .slogan { font-size: 1.3rem; }
        .hero-section .desc { font-size: 1rem; }
        .stat-bar { flex-wrap: wrap; gap: 16px; padding: 20px; }
        .stat-bar .stat-num { font-size: 1.6rem; }
        .cta-section { padding: 32px 20px; }
    }

/* ===== intelligence\create.blade.php ===== */
.btn-gold {
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.btn-gold:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,160,23,0.3); color: #fff; }
.btn-ghost {
    background: transparent;
    color: var(--tj-text);
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}
.btn-ghost:hover { background: #f5f5f5; color: var(--tj-text); }

/* ===== layouts\app.blade.php ===== */
:root {
            --tj-gold: #D4A017;
            --tj-gold-light: #F5E6A8;
            --tj-gold-dark: #B8860B;
            --tj-primary: #D4A017;
            --tj-bg: #f5f5f5;
            --tj-card-bg: #ffffff;
            --tj-text: #1a1a1a;
            --tj-text-secondary: #6b7280;
            --tj-border: #e5e5e5;
            --tj-hover: #f6f6f6;
            --tj-link: #1a1a1a;
            --tj-link-hover: #D4A017;
            --tj-max-width: 1450px;
        }
        * { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif; box-sizing: border-box; }
        body { background: var(--tj-bg); color: var(--tj-text); margin: 0; font-size: 16px; }

        /* ===== 响应式：移动 padding 缩小 ===== */
        @media (max-width: 768px) {
            .tj-header-inner { padding: 0 12px; }
            .tj-announce-inner { padding: 0 12px; }
            .tj-layout { padding: 0 12px; margin: 12px auto; }
        }

        /* ===== Top Navbar (full width, 豆瓣式通栏) ===== */
        .tj-header {
            background: #fff;
            border-bottom: 1px solid var(--tj-border);
            position: sticky;
            top: 0;
            z-index: 1000;
            box-shadow: 0 2px 14px rgba(20, 20, 46, 0.05);
        }
        .tj-header-inner {
            width: 100%;
            height: 64px;
            display: flex;
            align-items: center;
            padding: 0 32px;
            gap: 26px;
        }
        .tj-logo {
            font-size: 1.35rem;
            font-weight: 800;
            color: var(--tj-gold-dark);
            text-decoration: none;
            white-space: nowrap;
            display: flex;
            align-items: center;
            gap: 10px;
            flex-shrink: 0;
        }
        .tj-logo:hover { text-decoration: none; opacity: 0.9; }
        .tj-logo-icon {
            width: 36px; height: 36px;
            background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
            border-radius: 10px;
            display: flex; align-items: center; justify-content: center;
            color: #fff; font-size: 1.2rem;
            box-shadow: 0 2px 8px rgba(212,160,23,0.25);
        }
        .tj-logo-text { display: flex; flex-direction: column; line-height: 1.2; }
        .tj-logo-text strong { font-size: 1.15rem; }
        .tj-logo-text small { font-size: 0.6rem; color: #999; font-weight: 400; letter-spacing: 1px; }

        .tj-nav { display: flex; gap: 2px; flex: 1; align-items: center; }
        .tj-nav-item {
            padding: 8px 16px;
            font-size: 0.95rem;
            color: var(--tj-text-secondary);
            text-decoration: none;
            border-radius: 8px;
            transition: all 0.2s;
            white-space: nowrap;
            font-weight: 500;
            display: flex;
            align-items: center;
            gap: 6px;
            position: relative;
        }
        .tj-nav-item i { font-size: 1.05rem; }
        .tj-nav-item:hover { color: var(--tj-gold-dark); background: #fffbeb; text-decoration: none; }
        .tj-nav-item.active { color: var(--tj-gold-dark); font-weight: 700; background: #fff8e1; }
        .tj-nav-item.active::after {
            content: '';
            position: absolute;
            bottom: -2px;
            left: 50%;
            transform: translateX(-50%);
            width: 20px;
            height: 3px;
            background: var(--tj-gold);
            border-radius: 3px;
        }
        .tj-nav-item .nav-badge {
            font-size: 0.6rem;
            background: #ef4444;
            color: #fff;
            padding: 1px 5px;
            border-radius: 8px;
            margin-left: 2px;
            font-weight: 600;
        }

        /* ===== 更多下拉菜单 ===== */
        .tj-more-dropdown { position: relative; }
        .tj-more-toggle { cursor: pointer; }
        .tj-more-toggle i.bi-chevron-down { transition: transform 0.2s; }
        .tj-more-dropdown.show .tj-more-toggle i.bi-chevron-down { transform: rotate(180deg); }
        .tj-more-toggle:hover { color: var(--tj-gold-dark); background: #fffbeb; text-decoration: none; }
        .tj-more-menu {
            border-radius: 12px;
            border: 1px solid var(--tj-border);
            min-width: 180px;
            padding: 6px;
            margin-top: 4px;
        }
        .tj-more-menu .dropdown-item {
            border-radius: 8px;
            font-size: 0.9rem;
            font-weight: 500;
            color: var(--tj-text);
            transition: all 0.15s;
        }
        .tj-more-menu .dropdown-item:hover { background: #fffbeb; color: var(--tj-gold-dark); }
        .tj-more-menu .dropdown-item.active-dd { background: #fff8e1; color: var(--tj-gold-dark); font-weight: 700; }
        .tj-more-menu .dropdown-item i { width: 20px; text-align: center; }

        /* 响应式：小屏时核心项也折叠进更多 */
        @media (max-width: 992px) {
            .tj-nav > .tj-nav-item:nth-child(n+3) { display: none; }
            .tj-nav > .tj-nav-item:nth-child(2) .nav-text-short { display: inline; }
        }
        @media (max-width: 768px) {
            .tj-nav > .tj-nav-item:nth-child(n+2) { display: none; }
        }

        .tj-header-right { display: flex; align-items: center; gap: 12px; flex-shrink: 0; margin-left: auto; }

        /* ===== Search ===== */
        .tj-search-box {
            position: relative;
            width: 220px;
        }
        .tj-search-box input {
            width: 100%;
            border: 1px solid var(--tj-border);
            border-radius: 20px;
            padding: 7px 16px 7px 36px;
            font-size: 0.85rem;
            background: #f8f8f8;
            transition: all 0.25s;
        }
        .tj-search-box input:focus { outline: none; border-color: var(--tj-gold); background: #fff; width: 260px; box-shadow: 0 0 0 3px rgba(212,160,23,0.08); }
        .tj-search-box i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #bbb; font-size: 0.95rem; }

        /* ===== Icon Buttons ===== */
        .tj-icon-btn {
            width: 36px; height: 36px;
            border-radius: 50%;
            border: none;
            background: transparent;
            color: #888;
            font-size: 1.2rem;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.2s;
            position: relative;
            text-decoration: none;
        }
        .tj-icon-btn:hover { background: #f5f5f5; color: var(--tj-gold-dark); text-decoration: none; }
        .tj-icon-badge {
            position: absolute;
            top: 1px;
            right: 1px;
            width: 16px; height: 16px;
            background: #ef4444;
            border: 2px solid #fff;
            border-radius: 50%;
            font-size: 0.5rem;
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 700;
        }

        /* ===== Avatar ===== */
        .tj-avatar-wrap {
            display: flex;
            align-items: center;
            gap: 8px;
            cursor: pointer;
            padding: 3px 10px 3px 3px;
            border-radius: 20px;
            transition: background 0.2s;
            text-decoration: none;
        }
        .tj-avatar-wrap:hover { background: #f5f5f5; text-decoration: none; }
        .tj-avatar {
            width: 32px; height: 32px; border-radius: 50%;
            object-fit: cover;
            border: 2px solid var(--tj-border);
            flex-shrink: 0;
        }
        .tj-avatar-info { line-height: 1.2; }
        .tj-avatar-info .name { font-size: 0.82rem; font-weight: 600; color: var(--tj-text); }
        .tj-avatar-info .level { font-size: 0.65rem; color: var(--tj-gold); }

        /* ===== Announcement Bar ===== */
        .tj-announce {
            background: linear-gradient(90deg, #fffbeb, #fff8e1, #fffbeb);
            border-bottom: 1px solid #f0e6c5;
            padding: 6px 0;
            font-size: 0.8rem;
            color: #8a7a4a;
            overflow: hidden;
            white-space: nowrap;
        }
        .tj-announce-inner {
            max-width: var(--tj-max-width);
            margin: 0 auto;
            padding: 0 32px;
            display: flex;
            align-items: center;
            gap: 20px;
        }
        .tj-announce .label {
            background: var(--tj-gold);
            color: #fff;
            padding: 1px 10px;
            border-radius: 10px;
            font-size: 0.7rem;
            font-weight: 600;
            flex-shrink: 0;
        }
        .tj-announce .text { flex: 1; overflow: hidden; }
        .tj-announce .text span { display: inline-block; padding-left: 100%; animation: marquee 30s linear infinite; }
        @keyframes marquee {
            0% { transform: translateX(0); }
            100% { transform: translateX(-100%); }
        }
        .tj-announce .stats { display: flex; gap: 16px; flex-shrink: 0; }
        .tj-announce .stats span { display: flex; align-items: center; gap: 4px; }
        .tj-announce .stats i { font-size: 0.75rem; }

        /* ===== Buttons ===== */
        .btn-gold {
            background: var(--tj-gold); border: none; color: #fff;
            font-weight: 600; border-radius: 8px; padding: 9px 28px;
            font-size: 0.95rem; transition: all 0.2s; cursor: pointer;
            display: inline-block; text-decoration: none;
        }
        .btn-gold:hover { background: var(--tj-gold-dark); color: #fff; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,160,23,0.3); }
        .btn-outline-gold { border: 1px solid var(--tj-gold); color: var(--tj-gold); background: transparent; border-radius: 8px; font-weight: 600; padding: 9px 28px; font-size: 0.95rem; transition: all 0.2s; cursor: pointer; display: inline-block; text-decoration: none; }
        .btn-outline-gold:hover { background: var(--tj-gold); color: #fff; }
        .btn-ghost { border: none; background: transparent; color: var(--tj-text-secondary); padding: 8px 18px; border-radius: 8px; font-size: 0.95rem; cursor: pointer; transition: all 0.15s; display: inline-block; text-decoration: none; }
        .btn-ghost:hover { background: var(--tj-hover); color: var(--tj-text); text-decoration: none; }

        /* ===== Layout Structure (Wide 3-column) ===== */
        .tj-layout {
            max-width: var(--tj-max-width);
            margin: 20px auto;
            padding: 0 32px;
            display: flex;
            gap: 20px;
            align-items: flex-start;
            min-height: calc(100vh - 160px);
        }
        .tj-sidebar-left {
            width: 250px;
            flex-shrink: 0;
            position: sticky;
            top: 84px;
        }
        .tj-main { flex: 1; min-width: 0; }
        .tj-sidebar-right {
            width: 280px;
            flex-shrink: 0;
            position: sticky;
            top: 84px;
        }
        @media (max-width: 1200px) { .tj-sidebar-right { display: none; } }

        /* ===== Left Sidebar ===== */
        .tj-sidebar-left {
            width: 250px;
            flex-shrink: 0;
            position: sticky;
            top: 84px;
        }
        .tj-side-filter {
            padding:7px 12px; font-size:0.85rem; font-weight:600;
            color:#999; border-radius:6px; text-decoration:none; transition:all 0.2s;
        }
        .tj-side-filter:hover { background:#f5f5f5; color:var(--tj-text); }
        .tj-side-filter.active { background:var(--tj-gold); color:#fff; }
        .tj-side-filter.active:hover { background:var(--tj-gold-dark); }
        .tj-side-circle-item {
            display:flex; align-items:center; gap:8px; padding:7px 10px;
            border-radius:8px; text-decoration:none; transition:all 0.15s;
            color:var(--tj-text); font-size:0.85rem;
        }
        .tj-side-circle-item:hover { background:#f5f5f5; text-decoration:none; color:var(--tj-gold); }
        .tj-side-circle-item i { font-size:0.9rem; color:var(--tj-gold); width:18px; text-align:center; }
        .tj-side-circle-name { flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        .tj-side-circle-more { border-top:1px dashed #ececec; margin-top:4px; border-radius:0 0 8px 8px; }
        .tj-side-action-item {
            display:flex; align-items:center; gap:10px; padding:8px 10px;
            border-radius:8px; text-decoration:none; transition:all 0.15s;
            color:var(--tj-text); font-size:0.85rem;
        }
        .tj-side-action-item:hover { background:#f5f5f5; text-decoration:none; }

        /* ===== Right Sidebar: 快捷入口 ===== */
        .tj-side-action {
            display:flex; align-items:center; gap:10px; padding:9px 10px;
            border-radius:8px; text-decoration:none; transition:all 0.15s;
            color:var(--tj-text); font-size:0.85rem;
        }
        .tj-side-action:hover { background:#f5f5f5; text-decoration:none; }
        .tj-side-action i:first-child { font-size:1rem; width:20px; text-align:center; }
        @media (max-width: 992px) {
            .tj-sidebar-left { display: none; }
            .tj-layout { padding: 0 12px; max-width: 100% !important; margin-top: 12px; gap: 0; }
        }
        @media (max-width: 768px) {
            .tj-layout { margin-top: 8px; }
        }

        /* ===== Left Sidebar Nav ===== */
        .tj-side-user {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 12px 14px;
            background: #fff;
            border-radius: 12px;
            border: 1px solid #e8e8e8;
            margin-bottom: 10px;
            text-decoration: none;
            transition: all 0.2s;
            box-shadow: 0 1px 3px rgba(0,0,0,0.04);
        }
        .tj-side-user:hover { border-color: var(--tj-gold); box-shadow: 0 2px 8px rgba(212,160,23,0.1); text-decoration: none; }
        .tj-side-avatar {
            width: 40px; height: 40px; border-radius: 50%;
            object-fit: cover; border: 2px solid var(--tj-gold-light); flex-shrink: 0;
        }
        .tj-side-user-info { flex: 1; min-width: 0; line-height: 1.3; }
        .tj-side-user-name { font-size: 0.88rem; font-weight: 700; color: var(--tj-text); }
        .tj-side-user-level { font-size: 0.68rem; color: var(--tj-gold); }
        .tj-side-arrow { font-size: 0.7rem; color: #ccc; }
        .tj-side-guest {
            display: flex; gap: 8px; padding: 12px 14px;
            background: #fff; border-radius: 12px; border: 1px solid #e8e8e8;
            margin-bottom: 10px; justify-content: center;
        }

        /* ===== Left Sidebar Quick Actions ===== */
        .tj-side-actions {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 6px;
            margin-bottom: 10px;
        }
        .tj-side-action {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 4px;
            padding: 10px 4px;
            background: #fff;
            border-radius: 10px;
            border: 1px solid #e8e8e8;
            text-decoration: none;
            transition: all 0.2s;
            box-shadow: 0 1px 3px rgba(0,0,0,0.04);
        }
        .tj-side-action:hover { border-color: var(--tj-gold); background: #fffbeb; text-decoration: none; transform: translateY(-1px); }
        .tj-side-action i { font-size: 1.1rem; color: var(--tj-gold); }
        .tj-side-action span { font-size: 0.68rem; color: #888; font-weight: 500; }

        .tj-side-nav {
            background: #fff;
            border-radius: 12px;
            overflow: hidden;
            border: 1px solid #e8e8e8;
            box-shadow: 0 1px 3px rgba(0,0,0,0.04);
            margin-bottom: 10px;
        }
        .tj-side-nav-item {
            display: flex; align-items: center; gap: 10px;
            padding: 11px 16px; font-size: 0.88rem; color: var(--tj-text);
            text-decoration: none; border-left: 3px solid transparent;
            transition: all 0.15s; font-weight: 500;
        }
        .tj-side-nav-item:hover { background: #fafafa; text-decoration: none; color: var(--tj-gold-dark); }
        .tj-side-nav-item.active { color: var(--tj-gold-dark); border-left-color: var(--tj-gold); background: #fffbeb; font-weight: 700; }
        .tj-side-nav-item i { font-size: 1.05rem; width: 20px; text-align: center; color: #bbb; transition: color 0.15s; }
        .tj-side-nav-item.active i { color: var(--tj-gold); }
        .tj-side-nav-item:hover i { color: var(--tj-gold-dark); }

        /* ===== Left Sidebar Stats ===== */
        .tj-side-stats {
            display: flex;
            background: #fff;
            border-radius: 12px;
            border: 1px solid #e8e8e8;
            overflow: hidden;
            box-shadow: 0 1px 3px rgba(0,0,0,0.04);
        }
        .tj-side-stat {
            flex: 1;
            text-align: center;
            padding: 10px 4px;
            border-right: 1px solid #f0f0f0;
        }
        .tj-side-stat:last-child { border-right: none; }
        .tj-side-stat-val {
            display: block;
            font-size: 0.95rem;
            font-weight: 800;
            color: var(--tj-gold-dark);
            line-height: 1.2;
        }
        .tj-side-stat-lbl {
            display: block;
            font-size: 0.62rem;
            color: #aaa;
            margin-top: 2px;
        }

        /* ===== Cards ===== */
        .tj-card {
            background: #fff;
            border-radius: 12px;
            border: 1px solid #e8e8e8;
            margin-bottom: 14px;
            transition: box-shadow 0.25s, border-color 0.25s;
        }
        .tj-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,0.06); border-color: #ddd; }
        .tj-card-body { padding: 20px 24px; }

        /* ===== Post Feed Item ===== */
        .post-item { padding: 20px 24px; border-bottom: 1px solid #f0f0f0; }
        .post-item:last-child { border-bottom: none; border-radius: 0 0 12px 12px; }
        .post-item:hover { background: #fafafa; }
        .post-item:first-child { border-radius: 12px 12px 0 0; }
        .post-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 0.9rem; color: var(--tj-text-secondary); }
        .post-meta .author-name { color: var(--tj-text); font-weight: 600; }
        .post-meta .dot { color: var(--tj-border); }
        .post-title { font-size: 1.25rem; font-weight: 700; color: var(--tj-text); margin-bottom: 8px; line-height: 1.5; }
        .post-title a { color: inherit; text-decoration: none; }
        .post-title a:hover { color: var(--tj-gold); }
        .post-summary { font-size: 0.95rem; color: var(--tj-text-secondary); line-height: 1.7; margin-bottom: 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
        .post-footer { display: flex; align-items: center; gap: 28px; font-size: 0.9rem; color: var(--tj-text-secondary); }
        .post-footer .action { display: flex; align-items: center; gap: 5px; cursor: pointer; text-decoration: none; color: inherit; transition: color 0.15s; }
        .post-footer .action:hover { color: var(--tj-gold); text-decoration: none; }
        .post-type-tag {
            display: inline-block; padding: 3px 10px; border-radius: 6px;
            font-size: 0.82rem; font-weight: 600; margin-right: 8px;
        }
        .tag-featured { background: #fff8e1; color: #f5a623; }
        .tag-trend { background: #fff4e6; color: #fd7e14; }
        .tag-career { background: #e8f5e9; color: #43a047; }
        .tag-growth { background: #e3f2fd; color: #1e88e5; }
        .tag-library { background: #f3e5f5; color: #8e24aa; }
        .tag-breakdown { background: #e7f5ff; color: #1c7ed6; }
        .tag-case { background: #e6fcf5; color: #0ca678; }
        .tag-essence { background: #fef3e2; color: #e67e22; }
        .tag-bid { background: #fce4ec; color: #e91e63; }
        .tag-column { background: #f3f0ff; color: #7048e8; }
        .tag-resource { background: #fff9db; color: #f08c00; }
        .tag-question { background: #fff0f6; color: #d6336c; }
        .tag-discussion { background: #f3f0ff; color: #7048e8; }

        /* ===== 内容类型标签（个人主页） ===== */
        .tag-note { background: #e3f2fd; color: #1e88e5; }
        .tag-intelligence { background: #ffebee; color: #ef4444; }
        .tag-thought { background: #fff3e0; color: #fd7e14; }
        .tag-demand { background: #e8f5e9; color: #43a047; }
        .tag-offer { background: #e3f2fd; color: #1e88e5; }

        /* ===== Right Sidebar ===== */
        .tj-side-ruser {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 16px;
            background: linear-gradient(135deg, #fffbeb, #fff);
            border-radius: 12px;
            border: 1px solid #f0e6c5;
            margin-bottom: 12px;
            text-decoration: none;
            transition: all 0.2s;
        }
        .tj-side-ruser:hover { border-color: var(--tj-gold); box-shadow: 0 2px 12px rgba(212,160,23,0.12); text-decoration: none; }
        .tj-side-ravatar {
            width: 48px; height: 48px; border-radius: 50%;
            object-fit: cover; border: 2px solid var(--tj-gold); flex-shrink: 0;
        }
        .tj-side-ruser-info { flex: 1; min-width: 0; line-height: 1.3; }
        .tj-side-ruser-name { font-size: 1rem; font-weight: 700; color: var(--tj-text); }
        .tj-side-ruser-level { font-size: 0.72rem; color: var(--tj-gold); font-weight: 600; }
        .tj-side-ruser-bio { font-size: 0.7rem; color: #aaa; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
        .tj-side-rarrow { font-size: 0.75rem; color: #ccc; flex-shrink: 0; }
        .tj-side-rguest {
            text-align: center;
            padding: 20px 16px;
            background: linear-gradient(135deg, #fffbeb, #fff);
            border-radius: 12px;
            border: 1px solid #f0e6c5;
            margin-bottom: 12px;
        }
        .tj-side-rguest-icon { font-size: 2rem; color: #ddd; margin-bottom: 6px; }
        .tj-side-rguest-text { font-size: 0.82rem; color: #999; }
        .tj-side-card {
            background: #fff;
            border-radius: 12px;
            border: 1px solid #e8e8e8;
            margin-bottom: 14px;
            overflow: hidden;
            box-shadow: 0 1px 3px rgba(0,0,0,0.04);
            transition: box-shadow 0.25s;
        }
        .tj-side-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.06); }
        .tj-side-card-header {
            padding: 12px 16px;
            font-size: 0.88rem;
            font-weight: 700;
            border-bottom: 1px solid #f0f0f0;
            display: flex;
            align-items: center;
            justify-content: space-between;
            color: var(--tj-text);
        }
        .tj-side-card-header .text-gold { color: var(--tj-gold); }
        .tj-side-card-body { padding: 6px 16px; }
        .tj-side-card-body a { text-decoration: none; color: var(--tj-text); }
        .tj-side-card-body a:hover { color: var(--tj-gold); }
        .tj-rank-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; font-size: 0.85rem; border-bottom: 1px solid #f5f5f5; }
        .tj-rank-item:last-child { border-bottom: none; }
        .tj-rank-num { width: 20px; height: 20px; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; font-weight: 700; flex-shrink: 0; }
        .tj-rank-num.top { background: var(--tj-gold); color: #fff; }
        .tj-rank-num.normal { background: var(--tj-bg); color: var(--tj-text-secondary); }

        /* ===== Tags / Badges ===== */
        .tj-tag { display: inline-block; padding: 3px 12px; border-radius: 100px; font-size: 0.85rem; background: var(--tj-bg); color: var(--tj-text-secondary); margin-right: 6px; margin-bottom: 4px; }
        /* 小红书风 #标签 */
        .tag-xhs { color: #1e88e5; font-weight: 600; }
        .wb-title .tag-xhs, .detail-title .tag-xhs { color: #1e88e5; }
        .tj-tag-gold { background: #fffbeb; color: var(--tj-gold-dark); }
        .badge-verified { background: #28a745; color: #fff; }
        .badge-closing { background: #ffc107; color: #333; }
        .badge-outdated { background: #6c757d; color: #fff; }
        .badge-gold { background: var(--tj-gold); color: #fff; }
        .level-badge { display: inline-block; padding: 3px 12px; border-radius: 100px; font-size: 0.85rem; font-weight: 600; }
        .level-apprentice { background: #e3f2fd; color: #1976d2; }
        .level-miner { background: #e8f5e9; color: #388e3c; }
        .level-alchemist { background: #fff3e0; color: #f57c00; }
        .level-goldsmith { background: #fff8e1; color: var(--tj-gold-dark); }
        .level-partner { background: #fce4ec; color: #c62828; }

        /* ===== Progress ===== */
        .progress-tj { height: 8px; border-radius: 4px; background: #f0f0f0; overflow: hidden; }
        .progress-tj .progress-bar { background: var(--tj-gold); border-radius: 4px; transition: width 0.4s; }

        /* ===== Stat Cards ===== */
        .stat-card { text-align: center; padding: 20px; }
        .stat-card .stat-value { font-size: 1.8rem; font-weight: 800; color: var(--tj-gold); }
        .stat-card .stat-label { font-size: 0.9rem; color: var(--tj-text-secondary); margin-top: 6px; }

        /* ===== Match Score ===== */
        .match-score { color: var(--tj-gold); font-weight: 700; }

        /* ===== Content Typography ===== */
        .tj-content { line-height: 1.85; font-size: 1.0625rem; }
        .tj-content h1 { font-size: 1.8rem; font-weight: 800; margin: 24px 0 16px; }
        .tj-content h2 { font-size: 1.5rem; font-weight: 700; margin: 20px 0 12px; }
        .tj-content h3 { font-size: 1.3rem; font-weight: 600; margin: 18px 0 10px; }
        .tj-content p { margin-bottom: 14px; }
        .tj-content ul, .tj-content ol { margin-bottom: 14px; padding-left: 28px; }
        .tj-content blockquote { border-left: 4px solid var(--tj-gold); padding: 12px 20px; margin: 16px 0; background: #fffbeb; color: #666; border-radius: 0 8px 8px 0; }
        .tj-content img { max-width: 100%; border-radius: 10px; margin: 14px 0; }
        .tj-content pre { background: #f6f6f6; padding: 16px; border-radius: 8px; overflow-x: auto; font-size: 0.95rem; }
        .tj-content code { font-size: 0.95rem; }

        /* ===== Write Button (floating) ===== */
        .tj-write-btn {
            position: fixed; right: 48px; bottom: 48px; z-index: 900;
            width: 58px; height: 58px; border-radius: 50%;
            background: var(--tj-gold); color: #fff; border: none;
            font-size: 1.6rem; cursor: pointer;
            box-shadow: 0 6px 20px rgba(212,160,23,0.4);
            transition: all 0.2s; display: flex; align-items: center; justify-content: center;
        }
        .tj-write-btn:hover { transform: scale(1.08); background: var(--tj-gold-dark); }

        /* ===== Mobile Tab Bar ===== */
        .tab-bar {
            position: fixed; bottom: 0; left: 0; right: 0; z-index: 1030;
            background: #fff; border-top: 1px solid #e8e8e8;
            display: none; justify-content: space-around; padding: 6px 0 env(safe-area-inset-bottom, 6px);
            box-shadow: 0 -2px 12px rgba(0,0,0,0.06);
        }
        .tab-item {
            display: flex; flex-direction: column; align-items: center; gap: 2px;
            padding: 4px 0; font-size: 0.65rem; color: #999;
            text-decoration: none; transition: color 0.15s; min-width: 56px;
        }
        .tab-item i { font-size: 1.25rem; }
        .tab-item:hover { color: var(--tj-gold-dark); text-decoration: none; }
        .tab-item.active { color: var(--tj-gold-dark); font-weight: 600; }
        .tab-bar {
            box-shadow: 0 -2px 10px rgba(0,0,0,0.05);
        }
        .tab-bar .tab-item { text-align: center; text-decoration: none; color: var(--tj-text-secondary); font-size: 0.72rem; }
        .tab-bar .tab-item.active { color: var(--tj-gold); }
        .tab-bar .tab-item i { font-size: 1.35rem; display: block; margin-bottom: 3px; }
        @media (max-width: 768px) {
            .tab-bar { display: flex; }
            .tj-write-btn { bottom: 72px; right: 20px; width: 50px; height: 50px; font-size: 1.3rem; }
            body { padding-bottom: 64px; }
            .tj-write-btn { right: 20px; bottom: 84px; width: 50px; height: 50px; font-size: 1.4rem; }
        }

        /* ===== Dropdown ===== */
        .dropdown { position: relative; }
        .dropdown-menu {
            background: var(--tj-card-bg, #fff);
            border: 1px solid var(--tj-border);
            border-radius: 12px;
            box-shadow: 0 10px 32px rgba(0,0,0,0.14);
            padding: 6px;
            list-style: none;
            position: absolute;
            top: calc(100% + 6px);
            right: 0;
            z-index: 1050;
            min-width: 180px;
            margin: 0;
        }
        .dropdown-item { padding: 10px 18px; border-radius: 6px; font-size: 0.95rem; color: var(--tj-text); display: flex; align-items: center; gap: 8px; text-decoration: none; }
        .dropdown-item:hover { background: #fff6d8; color: var(--tj-gold-dark); text-decoration: none; }

        /* ===== Misc ===== */
        a { color: var(--tj-link); }
        a:hover { color: var(--tj-link-hover); }
        .text-gold { color: var(--tj-gold) !important; }
        .bg-gold { background: var(--tj-gold) !important; }
        .tj-divider { border: none; border-top: 1px solid var(--tj-border); margin: 16px 0; }
        .tj-empty { text-align: center; padding: 48px 24px; color: var(--tj-text-secondary); }
        .tj-empty i { font-size: 3.5rem; margin-bottom: 14px; display: block; }
        .pagination {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 4px;
            flex-wrap: wrap;
        }
        .pagination .page-item { list-style: none; }
        .pagination .page-link {
            display: flex;
            align-items: center;
            justify-content: center;
            min-width: 36px;
            height: 36px;
            padding: 0 10px;
            border: 1px solid #e8e8e8;
            border-radius: 8px;
            background: #fff;
            color: #666;
            font-size: 0.88rem;
            text-decoration: none;
            transition: all 0.15s;
        }
        .pagination .page-link:hover { background: #fffbeb; color: var(--tj-gold-dark); border-color: var(--tj-gold); }
        .pagination .page-item.active .page-link { background: var(--tj-gold); color: #fff; border-color: var(--tj-gold); font-weight: 600; }
        .pagination .page-item.disabled .page-link { color: #ccc; cursor: not-allowed; background: #f8f8f8; }
        .pagination .page-item:first-child .page-link,
        .pagination .page-item:last-child .page-link {
            border-radius: 8px;
            font-size: 0.82rem;
        }
        .card-tj { border: 1px solid var(--tj-border); border-radius: 12px; }

/* ===== layouts\app.blade.php ===== */
.feed-tool {
        width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;
        color:#999;font-size:1.05rem;cursor:pointer;transition:all 0.15s;
    }
    .feed-tool:hover { background:#f5f5f5;color:var(--tj-gold-dark); }
    .feed-preview { display:flex;gap:8px;flex-wrap:wrap;margin-top:8px; }
    .feed-preview .img-wrap { position:relative;display:inline-block; }
    .feed-preview img { width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid #eee; }
    .feed-preview .img-remove { position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#ef4444;color:#fff;border:none;font-size:0.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center; }
    .feed-circle-item, .feed-column-item { cursor:pointer; }
    .feed-circle-item span, .feed-column-item span { display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:16px;border:1px solid #e0e0e0;font-size:0.82rem;transition:all 0.15s; }
    .feed-circle-item input:checked + span, .feed-column-item input:checked + span { background:#fff8e1;border-color:var(--tj-gold);color:var(--tj-gold-dark);font-weight:600; }
    .feed-circle-item:hover span, .feed-column-item:hover span { border-color:var(--tj-gold); }
    .feed-new-btn { border:none;background:#f0f0f0;border-radius:16px;padding:3px 12px;font-size:0.8rem;color:#666;cursor:pointer;transition:all 0.15s; }
    .feed-new-btn:hover { background:var(--tj-gold);color:#fff; }
    .feed-article-link { display:inline-flex;align-items:center;gap:6px;color:#1e88e5;text-decoration:none;font-size:0.9rem;font-weight:500;transition:color 0.15s; }
    .feed-article-link:hover { color:var(--tj-gold-dark);text-decoration:none; }
    .feed-search-box input:focus { border-color:var(--tj-gold);box-shadow:0 0 0 2px rgba(212,160,23,0.1); }

/* ===== layouts\auth.blade.php ===== */
:root {
            --tj-gold: #D4A017;
            --tj-gold-light: #F5E6A8;
            --tj-gold-dark: #B8860B;
        }
        * { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif; box-sizing: border-box; }
        body { margin: 0; padding: 0; }

/* ===== library\members.blade.php ===== */
.nav-tabs .nav-link.active{color:var(--tj-gold)!important;border-bottom:2px solid var(--tj-gold)!important;}
.nav-tabs .nav-link:hover:not(.active){color:var(--tj-text)!important;border-bottom:2px solid var(--tj-border);}
.member-grid{display:flex;flex-wrap:wrap;margin:0 -6px;}
.member-col{flex:0 0 20%;max-width:20%;padding:6px;}
@media(max-width:1200px){.member-col{flex:0 0 25%;max-width:25%;}}
@media(max-width:992px){.member-col{flex:0 0 50%;max-width:50%;}}
@media(max-width:576px){.member-col{flex:0 0 100%;max-width:100%;}}
.member-card{border:1px solid var(--tj-border);border-radius:10px;overflow:hidden;background:#fff;transition:all .2s;height:100%;display:flex;flex-direction:column;}
.member-card:hover{border-color:var(--tj-gold);box-shadow:0 2px 8px rgba(212,160,23,0.1);}
.member-body{padding:12px;flex:1;}
.member-title{font-weight:600;font-size:0.85rem;margin-bottom:3px;}
.member-desc{font-size:0.72rem;color:#999;margin-bottom:4px;line-height:1.4;}
.member-footer{display:flex;border-top:1px solid var(--tj-border);}
.member-footer a{flex:1;text-align:center;padding:7px;font-size:0.72rem;color:var(--tj-text-secondary);text-decoration:none;}
.member-footer a:hover{background:#f5f5f5;color:var(--tj-gold);}
.btn-ghost{background:transparent;color:var(--tj-text);border:1px solid #e0e0e0;border-radius:8px;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;gap:6px;}
.btn-ghost:hover{background:#f5f5f5;}

/* ===== library\projects.blade.php ===== */
.project-grid { display:flex; flex-wrap:wrap; margin:0 -6px; }
    .project-col {
        flex:0 0 25%; max-width:25%; padding:6px;
    }
    @media (max-width:1200px) { .project-col { flex:0 0 33.33%; max-width:33.33%; } }
    @media (max-width:992px)  { .project-col { flex:0 0 50%; max-width:50%; } }
    @media (max-width:576px)  { .project-col { flex:0 0 100%; max-width:100%; } }
    .tj-tag-green {
        background:#e6fcf5; color:#0ca678; padding:2px 8px; border-radius:100px; white-space:nowrap;
    }
    .tj-tag-blue {
        background:#e7f5ff; color:#1c7ed6; padding:2px 8px; border-radius:100px; white-space:nowrap;
    }

/* ===== library\upload\create.blade.php ===== */
.upload-zone {
    border: 2px dashed #ddd;
    border-radius: 12px;
    padding: 40px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s;
}
.upload-zone:hover { border-color: var(--tj-gold); background: #fffbeb; }
.upload-zone.dragover { border-color: var(--tj-gold); background: #fff8e1; }
.type-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border: 2px solid #eee;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.2s;
}
.type-card:hover { border-color: #ddd; background: #fafafa; }
.type-card.selected {
    border-color: var(--tj-gold);
    background: #fffbeb;
}

/* ===== membership\intro.blade.php ===== */
/* ===== Hero Section ===== */
    .membership-hero {
        text-align: center;
        padding: 60px 24px 52px;
        background: linear-gradient(135deg, #fffbeb 0%, #fff8e1 50%, #ffffff 100%);
        border-radius: 16px;
        margin-bottom: 28px;
        position: relative;
        overflow: hidden;
    }
    .membership-hero::before {
        content: '';
        position: absolute;
        top: -50px; right: -50px;
        width: 240px; height: 240px;
        background: radial-gradient(circle, rgba(212,160,23,0.08) 0%, transparent 70%);
        border-radius: 50%;
    }
    .membership-hero h1 {
        font-size: 2.5rem;
        font-weight: 800;
        color: var(--tj-text);
        margin-bottom: 16px;
        position: relative;
    }
    .membership-hero h1 .text-gold { font-size: 2.7rem; }
    .membership-hero p {
        font-size: 1.25rem;
        color: var(--tj-text-secondary);
        margin: 0 auto;
        max-width: 620px;
    }
    .membership-hero .hero-icon {
        font-size: 3.5rem;
        color: var(--tj-gold);
        margin-bottom: 20px;
        display: inline-block;
    }

    /* ===== Member Status Banner ===== */
    .member-status-banner {
        background: linear-gradient(135deg, #fffbeb 0%, #fff8e1 100%);
        border: 1px solid var(--tj-gold-light);
        border-radius: 12px;
        padding: 20px 28px;
        margin-bottom: 28px;
        display: flex;
        align-items: center;
        gap: 14px;
        font-size: 1.05rem;
    }
    .member-status-banner i {
        font-size: 1.7rem;
        color: var(--tj-gold);
    }
    .member-status-banner .badge-gold {
        font-size: 0.88rem;
        padding: 4px 14px;
        border-radius: 100px;
    }

    /* ===== Pricing Cards ===== */
    .pricing-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
        margin-bottom: 48px;
    }
    @media (max-width: 768px) {
        .pricing-grid { grid-template-columns: 1fr; }
    }
    .pricing-card {
        background: #fff;
        border: 1px solid var(--tj-border);
        border-radius: 16px;
        padding: 36px 28px;
        position: relative;
        transition: all 0.25s;
        display: flex;
        flex-direction: column;
    }
    .pricing-card:hover {
        box-shadow: 0 10px 36px rgba(0,0,0,0.08);
        transform: translateY(-4px);
    }
    .pricing-card.featured {
        border: 2px solid var(--tj-gold);
        box-shadow: 0 6px 24px rgba(212,160,23,0.15);
    }
    .pricing-card .plan-badge {
        position: absolute;
        top: -14px;
        left: 50%;
        transform: translateX(-50%);
        background: var(--tj-gold);
        color: #fff;
        font-size: 0.85rem;
        font-weight: 700;
        padding: 5px 20px;
        border-radius: 100px;
        white-space: nowrap;
    }
    .pricing-card .plan-badge.best-value {
        background: #e8590c;
    }
    .pricing-card .plan-name {
        font-size: 1.3rem;
        font-weight: 700;
        color: var(--tj-text);
        margin-bottom: 10px;
        text-align: center;
    }
    .pricing-card .plan-price {
        font-size: 3.2rem;
        font-weight: 800;
        color: var(--tj-gold);
        text-align: center;
        line-height: 1.2;
    }
    .pricing-card .plan-price .currency {
        font-size: 1.4rem;
        vertical-align: top;
        margin-right: 2px;
    }
    .pricing-card .plan-duration {
        text-align: center;
        font-size: 0.95rem;
        color: var(--tj-text-secondary);
        margin-bottom: 24px;
    }
    .pricing-card .plan-divider {
        border: none;
        border-top: 1px solid var(--tj-border);
        margin: 0 0 20px;
    }
    .pricing-card .benefit-list {
        list-style: none;
        padding: 0;
        margin: 0 0 28px;
        flex: 1;
    }
    .pricing-card .benefit-list li {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        padding: 8px 0;
        font-size: 0.98rem;
        color: var(--tj-text);
        line-height: 1.5;
    }
    .pricing-card .benefit-list li i {
        color: #28a745;
        font-size: 1.15rem;
        flex-shrink: 0;
        margin-top: 1px;
    }
    .pricing-card .benefit-list li.disabled {
        color: var(--tj-text-secondary);
        opacity: 0.5;
    }
    .pricing-card .benefit-list li.disabled i {
        color: var(--tj-text-secondary);
    }
    .pricing-card .btn-plan {
        width: 100%;
        text-align: center;
        padding: 13px;
        font-size: 1.05rem;
        border-radius: 10px;
        text-decoration: none;
        font-weight: 600;
        transition: all 0.2s;
    }
    .pricing-card .btn-plan.btn-gold {
        background: var(--tj-gold);
        color: #fff;
    }
    .pricing-card .btn-plan.btn-gold:hover {
        background: var(--tj-gold-dark);
        color: #fff;
    }
    .pricing-card .btn-plan.btn-outline-gold {
        border: 1px solid var(--tj-gold);
        color: var(--tj-gold);
        background: transparent;
    }
    .pricing-card .btn-plan.btn-outline-gold:hover {
        background: var(--tj-gold);
        color: #fff;
    }

    /* ===== Comparison Table ===== */
    .comparison-section { margin-bottom: 48px; }
    .comparison-section h3 {
        font-size: 1.6rem;
        font-weight: 700;
        text-align: center;
        margin-bottom: 24px;
    }
    .comparison-table {
        width: 100%;
        border-collapse: collapse;
        background: #fff;
        border-radius: 12px;
        overflow: hidden;
        border: 1px solid var(--tj-border);
    }
    .comparison-table th,
    .comparison-table td {
        padding: 14px 20px;
        text-align: center;
        border-bottom: 1px solid var(--tj-border);
        font-size: 0.98rem;
    }
    .comparison-table th {
        background: #fafafa;
        font-weight: 600;
        color: var(--tj-text);
    }
    .comparison-table th:first-child,
    .comparison-table td:first-child {
        text-align: left;
        color: var(--tj-text-secondary);
    }
    .comparison-table th.col-highlight {
        background: #fffbeb;
        color: var(--tj-gold-dark);
    }
    .comparison-table td i {
        font-size: 1.2rem;
    }
    .comparison-table .check { color: #28a745; }
    .comparison-table .cross { color: #adb5bd; }
    .comparison-table tr:last-child td { border-bottom: none; }

    /* ===== FAQ Section ===== */
    .faq-section { margin-bottom: 48px; }
    .faq-section h3 {
        font-size: 1.6rem;
        font-weight: 700;
        text-align: center;
        margin-bottom: 24px;
    }
    .faq-item {
        background: #fff;
        border: 1px solid var(--tj-border);
        border-radius: 12px;
        margin-bottom: 12px;
        overflow: hidden;
    }
    .faq-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 18px 24px;
        cursor: pointer;
        font-weight: 600;
        font-size: 1.05rem;
        color: var(--tj-text);
        transition: background 0.15s;
    }
    .faq-header:hover { background: #fafafa; }
    .faq-header .faq-toggle {
        color: var(--tj-text-secondary);
        transition: transform 0.2s;
        font-size: 1.2rem;
    }
    .faq-item.open .faq-header .faq-toggle { transform: rotate(45deg); }
    .faq-body {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.3s ease;
    }
    .faq-item.open .faq-body { max-height: 300px; }
    .faq-body-inner {
        padding: 0 24px 18px;
        font-size: 0.98rem;
        color: var(--tj-text-secondary);
        line-height: 1.8;
    }
    @media (max-width: 768px) {
        .membership-hero { padding: 36px 16px; }
        .membership-hero h1 { font-size: 1.8rem; }
        .membership-hero h1 .text-gold { font-size: 2rem; }
        .membership-hero p { font-size: 1rem; }
        .pricing-card { padding: 24px 20px; }
        .pricing-card .plan-price { font-size: 2.5rem; }
    }

/* ===== membership\pay.blade.php ===== */
.pay-container {
        max-width: 560px;
        margin: 24px auto;
    }
    .pay-page-title {
        font-size: 1.3rem;
        font-weight: 700;
        text-align: center;
        margin-bottom: 20px;
    }

    /* Order Summary */
    .order-summary {
        background: #fff;
        border: 1px solid var(--tj-border);
        border-radius: 10px;
        padding: 24px;
        margin-bottom: 16px;
    }
    .order-summary .summary-header {
        display: flex;
        align-items: center;
        gap: 10px;
        padding-bottom: 16px;
        border-bottom: 1px solid var(--tj-border);
        margin-bottom: 16px;
    }
    .order-summary .summary-header .plan-icon {
        width: 48px;
        height: 48px;
        border-radius: 10px;
        background: #fffbeb;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.5rem;
        color: var(--tj-gold);
        flex-shrink: 0;
    }
    .order-summary .summary-header .plan-title {
        font-size: 1.15rem;
        font-weight: 700;
        color: var(--tj-text);
    }
    .order-summary .summary-header .plan-desc {
        font-size: 0.82rem;
        color: var(--tj-text-secondary);
    }
    .order-summary .benefit-list {
        list-style: none;
        padding: 0;
        margin: 0 0 20px;
    }
    .order-summary .benefit-list li {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 5px 0;
        font-size: 0.85rem;
        color: var(--tj-text);
    }
    .order-summary .benefit-list li i {
        color: #28a745;
        font-size: 0.95rem;
    }
    .order-summary .price-row {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding-top: 16px;
        border-top: 1px solid var(--tj-border);
    }
    .order-summary .price-row .label {
        font-size: 0.9rem;
        color: var(--tj-text-secondary);
    }
    .order-summary .price-row .amount {
        font-size: 1.8rem;
        font-weight: 800;
        color: var(--tj-gold);
    }
    .order-summary .price-row .amount .currency {
        font-size: 1rem;
        vertical-align: top;
    }

    /* Payment Method */
    .payment-method-card {
        background: #fff;
        border: 1px solid var(--tj-border);
        border-radius: 10px;
        padding: 20px 24px;
        margin-bottom: 16px;
    }
    .payment-method-card .section-title {
        font-size: 0.95rem;
        font-weight: 600;
        color: var(--tj-text);
        margin-bottom: 16px;
        display: flex;
        align-items: center;
        gap: 6px;
    }
    .payment-method-card .section-title i {
        color: var(--tj-gold);
    }
    .payment-option {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 14px 16px;
        border: 2px solid var(--tj-border);
        border-radius: 8px;
        cursor: pointer;
        transition: all 0.2s;
        margin-bottom: 10px;
    }
    .payment-option:hover {
        border-color: var(--tj-gold-light);
        background: #fffbeb;
    }
    .payment-option.selected {
        border-color: var(--tj-gold);
        background: #fffbeb;
    }
    .payment-option input[type="radio"] {
        display: none;
    }
    .payment-option .radio-indicator {
        width: 20px;
        height: 20px;
        border: 2px solid #ddd;
        border-radius: 50%;
        position: relative;
        flex-shrink: 0;
        transition: all 0.2s;
    }
    .payment-option.selected .radio-indicator {
        border-color: var(--tj-gold);
    }
    .payment-option.selected .radio-indicator::after {
        content: '';
        position: absolute;
        top: 50%; left: 50%;
        transform: translate(-50%, -50%);
        width: 10px; height: 10px;
        border-radius: 50%;
        background: var(--tj-gold);
    }
    .payment-option .pay-icon {
        font-size: 1.6rem;
        flex-shrink: 0;
    }
    .payment-option .pay-icon.wechat { color: #07c160; }
    .payment-option .pay-icon.alipay { color: #1677ff; }
    .payment-option .pay-name {
        font-size: 0.95rem;
        font-weight: 500;
        color: var(--tj-text);
        flex: 1;
    }

    /* Order Number */
    .order-no-card {
        background: #fff;
        border: 1px solid var(--tj-border);
        border-radius: 10px;
        padding: 14px 24px;
        margin-bottom: 16px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        font-size: 0.85rem;
    }
    .order-no-card .label {
        color: var(--tj-text-secondary);
    }
    .order-no-card .value {
        font-family: monospace;
        font-weight: 600;
        color: var(--tj-text);
    }

    /* Trust Indicators */
    .trust-row {
        display: flex;
        justify-content: center;
        gap: 24px;
        margin-bottom: 20px;
    }
    .trust-item {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 0.8rem;
        color: var(--tj-text-secondary);
    }
    .trust-item i { color: #28a745; }

    /* Submit Button */
    .btn-pay {
        width: 100%;
        padding: 14px;
        font-size: 1.05rem;
        font-weight: 700;
        background: var(--tj-gold);
        color: #fff;
        border: none;
        border-radius: 8px;
        cursor: pointer;
        transition: all 0.2s;
        margin-bottom: 12px;
    }
    .btn-pay:hover {
        background: var(--tj-gold-dark);
        transform: translateY(-1px);
        box-shadow: 0 4px 16px rgba(212,160,23,0.3);
    }
    .btn-back {
        display: block;
        text-align: center;
        font-size: 0.88rem;
        color: var(--tj-text-secondary);
        text-decoration: none;
        padding: 8px;
    }
    .btn-back:hover { color: var(--tj-gold); text-decoration: none; }

/* ===== membership\success.blade.php ===== */
.success-container {
        max-width: 560px;
        margin: 24px auto;
        text-align: center;
        position: relative;
    }

    /* Confetti */
    .confetti-container {
        position: absolute;
        top: 0; left: 0; right: 0;
        height: 280px;
        overflow: hidden;
        pointer-events: none;
        z-index: 0;
    }
    .confetti {
        position: absolute;
        width: 8px;
        height: 8px;
        opacity: 0;
        animation: confetti-fall 3s ease-out forwards;
    }
    @keyframes confetti-fall {
        0% { opacity: 1; transform: translateY(-20px) rotate(0deg); }
        100% { opacity: 0; transform: translateY(280px) rotate(360deg); }
    }

    .success-card {
        background: #fff;
        border: 1px solid var(--tj-border);
        border-radius: 14px;
        padding: 40px 32px;
        position: relative;
        z-index: 1;
    }

    .success-icon {
        width: 72px;
        height: 72px;
        border-radius: 50%;
        background: #e8f5e9;
        display: flex;
        align-items: center;
        justify-content: center;
        margin: 0 auto 20px;
        animation: pop-in 0.4s ease-out;
    }
    .success-icon i {
        font-size: 2.2rem;
        color: #28a745;
    }
    @keyframes pop-in {
        0% { transform: scale(0); }
        60% { transform: scale(1.15); }
        100% { transform: scale(1); }
    }

    .success-title {
        font-size: 1.5rem;
        font-weight: 700;
        color: var(--tj-text);
        margin-bottom: 8px;
    }
    .success-subtitle {
        font-size: 0.92rem;
        color: var(--tj-text-secondary);
        margin-bottom: 28px;
    }

    /* Membership Details */
    .membership-details {
        background: #fafafa;
        border-radius: 10px;
        padding: 20px;
        margin-bottom: 28px;
    }
    .detail-row {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 8px 0;
        font-size: 0.9rem;
    }
    .detail-row + .detail-row {
        border-top: 1px solid #f0f0f0;
    }
    .detail-row .label {
        color: var(--tj-text-secondary);
    }
    .detail-row .value {
        font-weight: 600;
        color: var(--tj-text);
    }
    .detail-row .value.badge-gold {
        background: var(--tj-gold);
        color: #fff;
        padding: 2px 12px;
        border-radius: 100px;
        font-size: 0.82rem;
    }

    /* Quick Links */
    .quick-links {
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    .quick-links a {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 12px;
        border-radius: 8px;
        font-size: 0.95rem;
        font-weight: 600;
        text-decoration: none;
        transition: all 0.2s;
    }
    .quick-links a.btn-gold {
        background: var(--tj-gold);
        color: #fff;
    }
    .quick-links a.btn-gold:hover {
        background: var(--tj-gold-dark);
        color: #fff;
        transform: translateY(-1px);
        box-shadow: 0 2px 8px rgba(212,160,23,0.3);
    }
    .quick-links a.btn-outline-gold {
        border: 1px solid var(--tj-gold);
        color: var(--tj-gold);
        background: transparent;
    }
    .quick-links a.btn-outline-gold:hover {
        background: var(--tj-gold);
        color: #fff;
    }
    .quick-links a.btn-ghost {
        color: var(--tj-text-secondary);
        background: transparent;
        border: 1px solid var(--tj-border);
    }
    .quick-links a.btn-ghost:hover {
        background: var(--tj-hover);
        color: var(--tj-text);
    }

/* ===== offer\create.blade.php ===== */
.btn-gold {
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff; border: none; border-radius: 8px;
    font-weight: 600; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-gold:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,160,23,0.3); color: #fff; }
.btn-ghost {
    background: transparent; color: var(--tj-text); border: 1px solid #e0e0e0;
    border-radius: 8px; font-weight: 500; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-ghost:hover { background: #f5f5f5; text-decoration: none; }

/* ===== profile\public.blade.php ===== */
/* ===== 知乎风格个人主页 ===== */
.zh-profile {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 16px;
}

/* 头部 */
.zh-header {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    margin-bottom: 16px;
}
.zh-header-bg {
    height: 120px;
    background: linear-gradient(135deg, var(--tj-gold-light), var(--tj-gold));
}
.zh-header-content {
    padding: 0 24px 20px;
    margin-top: -40px;
}
.zh-header-main {
    display: flex;
    align-items: flex-end;
    gap: 20px;
}
.zh-avatar {
    position: relative;
    flex-shrink: 0;
}
.zh-avatar img {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.zh-master-badge {
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    border: 2px solid #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 0.8rem;
}
.zh-user-info {
    flex: 1;
    padding-top: 20px;
}
.zh-user-name {
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0 0 6px;
}
.zh-user-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.zh-badge-gold {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 10px;
    border-radius: 20px;
    background: #fff8e1;
    color: var(--tj-gold-dark);
    font-size: 0.75rem;
    font-weight: 600;
}
.zh-user-bio {
    color: #666;
    font-size: 0.9rem;
    margin: 4px 0 8px;
}
.zh-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.zh-tags span {
    padding: 2px 10px;
    background: #f0f0f0;
    border-radius: 20px;
    font-size: 0.75rem;
    color: #666;
}
.zh-header-actions {
    flex-shrink: 0;
    padding-top: 20px;
}

/* 统计 */
.zh-stats {
    display: flex;
    gap: 32px;
    padding: 16px 0 0;
    margin-top: 16px;
    border-top: 1px solid var(--tj-border);
}
.zh-stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.zh-stat-num {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--tj-text);
}
.zh-stat-label {
    font-size: 0.78rem;
    color: #999;
    margin-top: 2px;
}

/* 按钮 */
.zh-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 20px;
    border-radius: 20px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    border: none;
}
.zh-btn-primary {
    background: var(--tj-gold);
    color: #fff;
}
.zh-btn-primary:hover { background: var(--tj-gold-dark); color: #fff; text-decoration: none; transform: translateY(-1px); }
.zh-btn-outline {
    background: transparent;
    color: var(--tj-gold-dark);
    border: 1px solid var(--tj-gold);
}
.zh-btn-outline:hover { background: #fff8e1; text-decoration: none; }

/* 内容区域：两列布局 */
.zh-content-area {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

/* 左侧边栏 */
.zh-sidebar {
    width: 240px;
    flex-shrink: 0;
    position: sticky;
    top: 80px;
}
.zh-sidebar-card {
    background: #fff;
    border-radius: 12px;
    padding: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    margin-bottom: 12px;
}
.zh-sidebar-title {
    font-size: 0.85rem;
    font-weight: 700;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--tj-border);
}
.zh-publish-links {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.zh-publish-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 8px;
    text-decoration: none;
    color: var(--tj-text);
    font-size: 0.9rem;
    font-weight: 500;
    transition: all 0.15s;
}
.zh-publish-item:hover { background: #f5f5f5; text-decoration: none; }
.zh-publish-item i { font-size: 1.1rem; width: 20px; text-align: center; }

.zh-about-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 6px 0;
    font-size: 0.85rem;
    color: #666;
}
.zh-about-item i { font-size: 0.95rem; margin-top: 2px; flex-shrink: 0; color: #999; }

/* 右侧主内 */
.zh-main-content {
    flex: 1;
    min-width: 0;
}

/* 分类标签 */
.zh-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    background: #fff;
    border-radius: 12px;
    padding: 8px 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    margin-bottom: 12px;
}
.zh-tab {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.85rem;
    color: #666;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.15s;
    font-weight: 500;
}
.zh-tab:hover { background: #f5f5f5; color: var(--tj-text); text-decoration: none; }
.zh-tab.active { background: #fff8e1; color: var(--tj-gold-dark); font-weight: 700; }
.zh-tab-count {
    font-size: 0.7rem;
    color: #bbb;
    padding: 0 4px;
}

/* 内容列表 */
.zh-feed {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.zh-feed-item {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    transition: box-shadow 0.2s;
}
.zh-feed-item:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
.zh-feed-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.zh-feed-type {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 10px;
    border-radius: 10px;
    font-size: 0.75rem;
    font-weight: 600;
}
.zh-feed-time {
    font-size: 0.78rem;
    color: #999;
}
.zh-feed-title {
    display: block;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--tj-text);
    text-decoration: none;
    margin-bottom: 6px;
    line-height: 1.4;
}
.zh-feed-title:hover { color: var(--tj-gold-dark); text-decoration: none; }
.zh-feed-excerpt {
    font-size: 0.88rem;
    color: #666;
    line-height: 1.6;
    margin-bottom: 8px;
}
.zh-thought-content {
    font-size: 0.95rem;
    color: var(--tj-text);
    line-height: 1.7;
    padding: 4px 0;
}
.zh-feed-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.zh-feed-tags span {
    font-size: 0.75rem;
    color: #888;
}
.zh-feed-footer {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 0.8rem;
    color: #999;
    padding-top: 8px;
    border-top: 1px solid #f5f5f5;
}
.zh-feed-footer span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.zh-feed-actions {
    display: inline-flex;
    gap: 8px;
    margin-left: auto;
}
.zh-feed-actions a, .zh-btn-link {
    color: #999;
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.85rem;
    padding: 2px 6px;
    border-radius: 4px;
}
.zh-feed-actions a:hover, .zh-btn-link:hover { background: #f5f5f5; color: var(--tj-gold-dark); }

/* 空状 */
.zh-empty {
    text-align: center;
    padding: 60px 20px;
    background: #fff;
    border-radius: 12px;
    color: #ccc;
}
.zh-empty-icon { font-size: 3rem; margin-bottom: 12px; }
.zh-empty p { font-size: 0.95rem; color: #999; }

/* 分页 */
.zh-pagination {
    display: flex;
    justify-content: center;
    padding: 20px 0;
}
.zh-pagination .pagination { margin: 0; }
.zh-pagination .page-link {
    border: none;
    color: #666;
    padding: 6px 14px;
    border-radius: 6px;
    margin: 0 2px;
    font-size: 0.85rem;
}
.zh-pagination .page-item.active .page-link {
    background: var(--tj-gold);
    color: #fff;
}
.zh-pagination .page-link:hover {
    background: #f5f5f5;
    color: var(--tj-gold-dark);
}

/* 响应 */
@media (max-width: 768px) {
    .zh-header-main { flex-wrap: wrap; }
    .zh-header-actions { width: 100%; padding-top: 12px; }
    .zh-content-area { flex-direction: column; }
    .zh-sidebar { width: 100%; position: static; }
    .zh-publish-links { flex-direction: row; flex-wrap: wrap; }
    .zh-publish-item { flex: 1; min-width: 80px; flex-direction: column; text-align: center; gap: 4px; padding: 8px; font-size: 0.8rem; }
    .zh-stats { gap: 16px; justify-content: space-around; }
    .zh-tabs { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; }
    .zh-tab { white-space: nowrap; }
}

/* ===== projects\create.blade.php ===== */
.btn-gold {
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff; border: none; border-radius: 8px;
    font-weight: 600; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-gold:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,160,23,0.3); color: #fff; }
.btn-ghost {
    background: transparent; color: var(--tj-text); border: 1px solid #e0e0e0;
    border-radius: 8px; font-weight: 500; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-ghost:hover { background: #f5f5f5; text-decoration: none; }
.ql-editor { min-height: 280px; font-size: 0.95rem; line-height: 1.7; }
.ql-toolbar { border-radius: 8px 8px 0 0; background: #fafafa; border-color: #e0e0e0; }
.ql-container { border-radius: 0 0 8px 8px; border-color: #e0e0e0; }
.upload-cover-box {
    width:100%; height:140px; border:2px dashed #d0d0d0; border-radius:10px;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:all 0.2s; overflow:hidden; position:relative; background:#fafafa;
}
.upload-cover-box:hover { border-color:var(--tj-gold); background:#fffdf5; }
.upload-cover-placeholder {
    display:flex; flex-direction:column; align-items:center; gap:6px; color:#bbb;
}
.upload-cover-placeholder i { font-size:2.2rem; color:#ccc; }
.upload-cover-placeholder span { font-size:0.82rem; }

/* ===== projects\discussion-create.blade.php ===== */
.btn-gold {
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff; border: none; border-radius: 8px;
    font-weight: 600; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-gold:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,160,23,0.3); color: #fff; }
.btn-ghost {
    background: transparent; color: var(--tj-text); border: 1px solid #e0e0e0;
    border-radius: 8px; font-weight: 500; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-ghost:hover { background: #f5f5f5; text-decoration: none; }
.ql-editor { min-height: 320px; font-size: 0.95rem; line-height: 1.8; }
.ql-toolbar { border-radius: 8px 8px 0 0; background: #fafafa; border-color: #e0e0e0; }
.ql-container { border-radius: 0 0 8px 8px; border-color: #e0e0e0; }

/* ===== projects\discussion-show.blade.php ===== */
.btn-ghost {
    background: transparent; color: var(--tj-text); border: 1px solid #e0e0e0;
    border-radius: 8px; font-weight: 500; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-ghost:hover { background: #f5f5f5; text-decoration: none; }

/* ===== projects\index.blade.php ===== */
.project-grid { display:flex; flex-wrap:wrap; margin:0 -6px; }
    .project-col {
        flex:0 0 25%; max-width:25%; padding:6px;
    }
    @media (max-width:1200px) { .project-col { flex:0 0 33.33%; max-width:33.33%; } }
    @media (max-width:992px)  { .project-col { flex:0 0 50%; max-width:50%; } }
    @media (max-width:576px)  { .project-col { flex:0 0 100%; max-width:100%; } }
    .tj-tag-green {
        background:#e6fcf5; color:#0ca678; padding:2px 8px; border-radius:100px; white-space:nowrap;
    }
    .tj-tag-blue {
        background:#e7f5ff; color:#1c7ed6; padding:2px 8px; border-radius:100px; white-space:nowrap;
    }

/* ===== projects\show.blade.php ===== */
.pj-stat-item { padding:16px 8px; text-align:center; border-right:1px solid var(--tj-border); border-bottom:1px solid var(--tj-border); }
.pj-stat-item:nth-child(6) { border-right:none; }
.pj-stat-value { font-size:1rem; font-weight:800; color:var(--tj-gold); }
.pj-stat-label { font-size:0.72rem; color:#999; margin-top:2px; }
.project-detail-preview { position:relative; max-height:95px; overflow:hidden; }
.detail-fade-overlay { position:absolute; bottom:0; left:0; right:0; height:80px; background:linear-gradient(transparent,#fff); display:flex; align-items:flex-end; justify-content:center; padding-bottom:8px; }
.discuss-item {  }
.discuss-item:last-child { border-bottom:none; }
.discuss-item:hover { background:#fafafa; }
.rating-item:last-child { border-bottom:none !important; }
.rating-item:hover { background:#fafafa; }
/* 评分弹窗精致样式 */
.dim-row { transition:all 0.2s; }
.dim-row:hover { background:#f5f5f5 !important; }
.dim-row.rated { background:#fffbeb !important; border:1px solid #fde68a; }
.dim-star { text-shadow:0 0 2px transparent; user-select:none; }
.dim-star.active { color:var(--tj-gold) !important; text-shadow:0 0 6px rgba(212,160,23,0.3); }

/* ===== resource\index.blade.php ===== */
.resource-btn {
    display:inline-flex;align-items:center;gap:6px;padding:8px 18px;
    border-radius:8px;color:#fff;font-size:0.85rem;font-weight:600;
    text-decoration:none;transition:all 0.2s;
}
.resource-btn:hover { transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,0.15);color:#fff;text-decoration:none; }

.filter-tab {
    display:inline-flex;align-items:center;gap:4px;padding:6px 14px;
    border-radius:6px;font-size:0.85rem;color:#666;text-decoration:none;
    transition:all 0.15s;font-weight:500;
}
.filter-tab:hover { background:#f5f5f5;color:var(--tj-text);text-decoration:none; }
.filter-tab.active { background:var(--tj-gold);color:#fff; }
.filter-tab.active:hover { background:var(--tj-gold-dark); }

.filter-select {
    display:inline-flex;align-items:center;gap:6px;padding:6px 14px;
    border-radius:8px;font-size:0.85rem;color:#666;
    border:1px solid #e0e0e0;background:#fff;cursor:pointer;
    transition:all 0.15s;font-weight:500;
}
.filter-select:hover { border-color:var(--tj-gold);color:var(--tj-text); }

.resource-card {
    background:#fff;border-radius:12px;padding:20px;
    box-shadow:0 1px 3px rgba(0,0,0,0.06);transition:box-shadow 0.2s;
}
.resource-card:hover { box-shadow:0 2px 8px rgba(0,0,0,0.1); }
.resource-card-header {
    display:flex;align-items:center;gap:8px;margin-bottom:8px;
}
.resource-type-badge {
    display:inline-flex;align-items:center;gap:4px;padding:2px 10px;
    border-radius:10px;font-size:0.75rem;font-weight:600;
}
.resource-card-title {
    display:block;font-size:1.05rem;font-weight:700;color:var(--tj-text);
    text-decoration:none;margin-bottom:6px;line-height:1.4;
}
.resource-card-title:hover { color:var(--tj-gold-dark);text-decoration:none; }
.resource-card-desc {
    font-size:0.88rem;color:#666;line-height:1.6;
}

@media (max-width:768px) {
    .resource-btn { padding:6px 14px;font-size:0.8rem; }
}

/* ===== resource-upload\create.blade.php ===== */
.btn-gold {
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff; border: none; border-radius: 8px;
    font-weight: 600; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-gold:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,160,23,0.3); color: #fff; }
.btn-ghost {
    background: transparent; color: var(--tj-text); border: 1px solid #e0e0e0;
    border-radius: 8px; font-weight: 500; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-ghost:hover { background: #f5f5f5; text-decoration: none; }
.type-card {
    display:flex;flex-direction:column;align-items:center;gap:6px;
    padding:16px;border:2px solid var(--tj-border);border-radius:10px;
    cursor:pointer;transition:all 0.2s;text-align:center;
}
.type-card:hover { border-color: var(--tj-gold); background: #fffbeb; }
.type-card.selected { border-color: var(--tj-gold); background: #fffbeb; box-shadow: 0 2px 8px rgba(212,160,23,0.15); }
.upload-zone {
    border: 2px dashed #ddd;border-radius:12px;padding:40px 20px;
    text-align:center;cursor:pointer;transition:all 0.2s;background:#fafafa;
}
.upload-zone:hover { border-color: var(--tj-gold); background: #fffbeb; }
.upload-zone.dragover { border-color: var(--tj-gold); background: #fff8e1; }

/* ===== square\create.blade.php ===== */
/* Toast UI Editor 主题适配 */
    .toastui-editor-defaultUI { border-radius: 12px !important; border: 1px solid var(--tj-border) !important; overflow: hidden; }
    .toastui-editor-defaultUI-toolbar { background: #fafafa !important; }
    .toastui-editor-mode-switch { background: #fafafa !important; }
    .toastui-editor-md-container, .toastui-editor-ww-container { background: #fff !important; }
    .toastui-editor-md-preview .toastui-editor-contents, .toastui-editor-ww-container .toastui-editor-contents { font-size: 1rem !important; line-height: 1.8 !important; padding: 16px 20px !important; }
    .toastui-editor-md-preview .toastui-editor-contents h1, .toastui-editor-ww-container .toastui-editor-contents h1 { font-size: 2rem !important; font-weight: 800 !important; margin: 28px 0 16px !important; }
    .toastui-editor-md-preview .toastui-editor-contents h2, .toastui-editor-ww-container .toastui-editor-contents h2 { font-size: 1.6rem !important; font-weight: 700 !important; margin: 24px 0 12px !important; }
    .toastui-editor-md-preview .toastui-editor-contents h3, .toastui-editor-ww-container .toastui-editor-contents h3 { font-size: 1.35rem !important; font-weight: 600 !important; margin: 20px 0 10px !important; }
    .toastui-editor-md-preview .toastui-editor-contents h4, .toastui-editor-ww-container .toastui-editor-contents h4 { font-size: 1.15rem !important; font-weight: 600 !important; margin: 16px 0 8px !important; }
    .toastui-editor-md-preview .toastui-editor-contents h5, .toastui-editor-ww-container .toastui-editor-contents h5 { font-size: 1rem !important; font-weight: 600 !important; margin: 14px 0 6px !important; color: var(--tj-text-secondary) !important; }
    .toastui-editor-md-preview .toastui-editor-contents p, .toastui-editor-ww-container .toastui-editor-contents p { margin: 10px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents blockquote, .toastui-editor-ww-container .toastui-editor-contents blockquote { border-left: 4px solid var(--tj-gold) !important; background: #fffbeb !important; padding: 12px 20px !important; margin: 16px 0 !important; border-radius: 0 8px 8px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents pre, .toastui-editor-ww-container .toastui-editor-contents pre { border-radius: 10px !important; margin: 14px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents code, .toastui-editor-ww-container .toastui-editor-contents code { font-family: 'Fira Code', 'Courier New', monospace !important; font-size: 0.9rem !important; }
    .toastui-editor-md-preview .toastui-editor-contents a, .toastui-editor-ww-container .toastui-editor-contents a { color: var(--tj-gold) !important; text-decoration: underline !important; }
    .toastui-editor-md-preview .toastui-editor-contents img, .toastui-editor-ww-container .toastui-editor-contents img { max-width: 100% !important; border-radius: 10px !important; margin: 12px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents ul, .toastui-editor-ww-container .toastui-editor-contents ul { padding-left: 28px !important; margin: 10px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents ol, .toastui-editor-ww-container .toastui-editor-contents ol { padding-left: 28px !important; margin: 10px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents table, .toastui-editor-ww-container .toastui-editor-contents table { border-collapse: collapse !important; width: 100% !important; margin: 14px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents th, .toastui-editor-ww-container .toastui-editor-contents th { background: #f6f6f6 !important; border: 1px solid #e0e0e0 !important; padding: 8px 12px !important; font-weight: 700 !important; }
    .toastui-editor-md-preview .toastui-editor-contents td, .toastui-editor-ww-container .toastui-editor-contents td { border: 1px solid #e0e0e0 !important; padding: 8px 12px !important; }
    .toastui-editor-contents video { max-width: 100% !important; border-radius: 10px !important; margin: 12px 0 !important; }

    /* 频道选择卡片 */
    .channel-selector { display: flex; gap: 12px; flex-wrap: wrap; }
    .channel-option {
        flex: 1; min-width: 140px; padding: 14px 18px; border: 2px solid var(--tj-border);
        border-radius: 12px; cursor: pointer; transition: all 0.2s; text-align: center;
        background: #fff; position: relative;
    }
    .channel-option:hover { border-color: var(--tj-gold); background: #fffbeb; }
    .channel-option.selected { border-color: var(--tj-gold); background: #fffbeb; box-shadow: 0 2px 8px rgba(212,160,23,0.15); }
    .channel-option.selected::after {
        content: '✓'; position: absolute; top: 8px; right: 10px;
        color: var(--tj-gold); font-weight: 700; font-size: 1.1rem;
    }
    .channel-option .ch-icon { font-size: 1.5rem; margin-bottom: 6px; display: block; }
    .channel-option .ch-name { font-size: 0.95rem; font-weight: 600; }
    .channel-option .ch-desc { font-size: 0.78rem; color: var(--tj-text-secondary); margin-top: 4px; }

    .cover-preview { max-width: 240px; max-height: 140px; border-radius: 8px; margin-top: 8px; }

/* ===== square\edit.blade.php ===== */
.toastui-editor-defaultUI { border-radius: 12px !important; border: 1px solid var(--tj-border) !important; overflow: hidden; }
    .toastui-editor-defaultUI-toolbar { background: #fafafa !important; }
    .toastui-editor-mode-switch { background: #fafafa !important; }
    .toastui-editor-md-container, .toastui-editor-ww-container { background: #fff !important; }
    .toastui-editor-md-preview .toastui-editor-contents, .toastui-editor-ww-container .toastui-editor-contents { font-size: 1rem !important; line-height: 1.8 !important; padding: 16px 20px !important; }
    .toastui-editor-md-preview .toastui-editor-contents h1, .toastui-editor-ww-container .toastui-editor-contents h1 { font-size: 2rem !important; font-weight: 800 !important; margin: 28px 0 16px !important; }
    .toastui-editor-md-preview .toastui-editor-contents h2, .toastui-editor-ww-container .toastui-editor-contents h2 { font-size: 1.6rem !important; font-weight: 700 !important; margin: 24px 0 12px !important; }
    .toastui-editor-md-preview .toastui-editor-contents h3, .toastui-editor-ww-container .toastui-editor-contents h3 { font-size: 1.35rem !important; font-weight: 600 !important; margin: 20px 0 10px !important; }
    .toastui-editor-md-preview .toastui-editor-contents h4, .toastui-editor-ww-container .toastui-editor-contents h4 { font-size: 1.15rem !important; font-weight: 600 !important; margin: 16px 0 8px !important; }
    .toastui-editor-md-preview .toastui-editor-contents h5, .toastui-editor-ww-container .toastui-editor-contents h5 { font-size: 1rem !important; font-weight: 600 !important; margin: 14px 0 6px !important; color: var(--tj-text-secondary) !important; }
    .toastui-editor-md-preview .toastui-editor-contents p, .toastui-editor-ww-container .toastui-editor-contents p { margin: 10px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents blockquote, .toastui-editor-ww-container .toastui-editor-contents blockquote { border-left: 4px solid var(--tj-gold) !important; background: #fffbeb !important; padding: 12px 20px !important; margin: 16px 0 !important; border-radius: 0 8px 8px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents pre, .toastui-editor-ww-container .toastui-editor-contents pre { border-radius: 10px !important; margin: 14px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents code, .toastui-editor-ww-container .toastui-editor-contents code { font-family: 'Fira Code', 'Courier New', monospace !important; font-size: 0.9rem !important; }
    .toastui-editor-md-preview .toastui-editor-contents a, .toastui-editor-ww-container .toastui-editor-contents a { color: var(--tj-gold) !important; text-decoration: underline !important; }
    .toastui-editor-md-preview .toastui-editor-contents img, .toastui-editor-ww-container .toastui-editor-contents img { max-width: 100% !important; border-radius: 10px !important; margin: 12px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents ul, .toastui-editor-ww-container .toastui-editor-contents ul { padding-left: 28px !important; margin: 10px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents ol, .toastui-editor-ww-container .toastui-editor-contents ol { padding-left: 28px !important; margin: 10px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents table, .toastui-editor-ww-container .toastui-editor-contents table { border-collapse: collapse !important; width: 100% !important; margin: 14px 0 !important; }
    .toastui-editor-md-preview .toastui-editor-contents th, .toastui-editor-ww-container .toastui-editor-contents th { background: #f6f6f6 !important; border: 1px solid #e0e0e0 !important; padding: 8px 12px !important; font-weight: 700 !important; }
    .toastui-editor-md-preview .toastui-editor-contents td, .toastui-editor-ww-container .toastui-editor-contents td { border: 1px solid #e0e0e0 !important; padding: 8px 12px !important; }
    .toastui-editor-contents video { max-width: 100% !important; border-radius: 10px !important; margin: 12px 0 !important; }

    .channel-selector { display: flex; gap: 12px; flex-wrap: wrap; }
    .channel-option {
        flex: 1; min-width: 140px; padding: 14px 18px; border: 2px solid var(--tj-border);
        border-radius: 12px; cursor: pointer; transition: all 0.2s; text-align: center;
        background: #fff; position: relative;
    }
    .channel-option:hover { border-color: var(--tj-gold); background: #fffbeb; }
    .channel-option.selected { border-color: var(--tj-gold); background: #fffbeb; box-shadow: 0 2px 8px rgba(212,160,23,0.15); }
    .channel-option.selected::after { content: '✓'; position: absolute; top: 8px; right: 10px; color: var(--tj-gold); font-weight: 700; font-size: 1.1rem; }
    .channel-option .ch-icon { font-size: 1.5rem; margin-bottom: 6px; display: block; }
    .channel-option .ch-name { font-size: 0.95rem; font-weight: 600; }
    .channel-option .ch-desc { font-size: 0.78rem; color: var(--tj-text-secondary); margin-top: 4px; }

/* ===== square\index.blade.php ===== */
/* ===== 发布 ===== */
.pub-box{background:#fff;border-radius:12px;padding:14px 16px 10px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,0.05);transition:box-shadow .2s,border .2s;border:1px solid transparent;}
.pub-box:focus-within{border-color:#f0e6c5;box-shadow:0 2px 12px rgba(212,160,23,0.08);}
.pub-row{display:flex;gap:10px;align-items:flex-start;}
.pub-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid #f0f0f0;}
.pub-input{flex:1;border:none;padding:4px 0;font-size:.93rem;line-height:1.5;resize:none;outline:none;min-height:34px;background:transparent;font-family:inherit;color:transparent;caret-color:var(--tj-text);position:relative;z-index:1;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none;}
.pub-input::-webkit-scrollbar{display:none;}
.pub-input::placeholder{color:#ccc;}
.pub-input::selection{background:rgba(255,233,122,.55);}
/* 输入框高亮层：显示文 + 彩色 #标签（textarea 文字透明，视觉文字来自此层） */
.pub-input-wrap{position:relative;flex:1;min-width:0;display:flex;}
.pub-input-overlay{
    position:absolute;inset:0;z-index:0;pointer-events:none;
    padding:4px 0;font-size:.93rem;line-height:1.5;font-family:inherit;
    color:var(--tj-text);white-space:pre-wrap;word-break:break-word;
    overflow:hidden;
}
.pub-input-overlay .tag-xhs{color:#1e88e5;font-weight:600;}
.pub-imgs{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px;}
.pub-imgi{position:relative;display:inline-block;}
.pub-imgi img{width:58px;height:58px;object-fit:cover;border-radius:8px;border:1px solid #eee;}
.pub-imgi-x{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:#ef4444;color:#fff;border:none;font-size:.45rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,.2);padding:0;line-height:1;}

/* 标签 */
.pub-tags{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-top:6px;min-height:0;padding:2px 0;}
.pub-tag-list{display:flex;gap:4px;flex-wrap:wrap;}
.pub-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:10px;font-size:.75rem;background:#f0f0f0;color:#666;font-weight:500;}
.pub-tag-input{border:none;font-size:.82rem;outline:none;padding:2px 0;background:transparent;color:#999;min-width:120px;flex:1;}
.pub-tag-input::placeholder{color:#d0d0d0;}

/* 底部 */
.pub-bar{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding-top:7px;border-top:1px solid #f0f0f0;}
.pub-bar-left{display:flex;align-items:center;gap:1px;flex-wrap:wrap;}
.pub-ico{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#aaa;font-size:.95rem;cursor:pointer;transition:all .12s;position:relative;}
.pub-ico:hover{background:#f5f5f5;color:var(--tj-gold-dark);}
.pub-bar-divider{width:1px;height:14px;background:#eee;margin:0 4px;}
.pub-bar-btn{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:5px;font-size:.77rem;color:#888;cursor:pointer;transition:all .12s;border:none;background:transparent;}
.pub-bar-btn:hover{background:#f5f5f5;color:#333;}
.pub-bar-btn-sm{display:inline-flex;align-items:center;gap:3px;padding:4px 10px;border-radius:6px;font-size:.77rem;color:#666;cursor:pointer;transition:all .12s;border:1px solid #e0e0e0;background:#fff;}
.pub-bar-btn-sm:hover{border-color:var(--tj-gold);color:var(--tj-gold);background:#fffbeb;}
.pub-bar-btn-sm.active{border-color:var(--tj-gold);color:var(--tj-gold);background:#fffbeb;}
.pub-write{display:inline-flex;align-items:center;gap:3px;font-size:.77rem;color:#1e88e5;text-decoration:none;padding:2px 8px;border-radius:5px;}
.pub-write:hover{background:#e3f2fd;text-decoration:none;}
.pub-bar-right{display:flex;align-items:center;gap:8px;}
.pub-badge{font-size:.7rem;color:#b8860b;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pub-num{font-size:.7rem;color:#d0d0d0;min-width:18px;text-align:right;}
.pub-submit{padding:4px 20px;border-radius:16px;border:none;background:var(--tj-gold);color:#fff;font-size:.83rem;font-weight:600;cursor:pointer;transition:all .2s;}
.pub-submit:hover{background:var(--tj-gold-dark);transform:translateY(-1px);box-shadow:0 2px 6px rgba(212,160,23,.25);}
.pub-submit:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;}

/* 同步到圈子选择器（发布按钮左侧 */
.pub-group-select{
    padding:3px 8px;
    border-radius:12px;
    border:1px dashed var(--tj-gold);
    background:#fffbeb;
    color:#8a6d00;
    font-size:.75rem;
    cursor:pointer;
    outline:none;
    max-width:130px;
}
.pub-group-select:hover{border-style:solid;background:#fff6d8;}
.pub-group-select option{color:#333;background:#fff;}

/* 同步到圈 @按钮 */
.pub-group-btn{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px 12px;
    border-radius:14px;
    border:1px dashed var(--tj-gold);
    background:#fffbeb;
    color:#8a6d00;
    font-size:.78rem;
    cursor:pointer;
    transition:all .15s;
    white-space:nowrap;
}
.pub-group-btn:hover{border-style:solid;background:#fff6d8;}
.pub-group-btn.active{background:#ffe97a;border-style:solid;color:#7c2d12;font-weight:600;}

/* 图片展示区（输入框下方） */
.pub-images{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:8px;
    padding:0 2px;
}
.pub-img-item{
    position:relative;
    width:84px;
    height:84px;
    border-radius:10px;
    overflow:visible;
}
.pub-img-item img{
    width:84px;
    height:84px;
    object-fit:cover;
    border-radius:10px;
    border:1px solid #eee;
}
.pub-img-del{
    position:absolute;
    top:-6px;
    right:-6px;
    width:20px;
    height:20px;
    border-radius:50%;
    border:none;
    background:#e03131;
    color:#fff;
    font-size:.75rem;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 1px 4px rgba(0,0,0,.25);
}
.pub-img-del:hover{background:#c92a2a;}
.pub-img-loading{
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px dashed #ddd;
    border-radius:10px;
    background:#fafaf8;
}
.pub-img-loading .spinner{width:22px;height:22px;border-width:2px;}

/* 圈子弹窗 */
.pub-group-mask{
    position:fixed;
    inset:0;
    z-index:120;
    background:rgba(0,0,0,.35);
}
.pub-group-modal{
    position:fixed;
    z-index:130;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    width:380px;
    max-width:calc(100vw - 24px);
    max-height:70vh;
    background:#fff;
    border-radius:16px;
    box-shadow:0 20px 60px rgba(0,0,0,.2);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    animation:pubFade .18s ease;
}
.pub-group-modal-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:14px 16px 10px;
    font-weight:700;
    font-size:.95rem;
    color:#333;
}
.pub-group-modal-close{
    width:28px;height:28px;
    border:none;background:#f2f2f0;
    border-radius:50%;
    cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    color:#888;
}
.pub-group-modal-close:hover{background:#ffe97a;color:#1a1a1a;}
.pub-group-search{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0 16px 10px;
    padding:8px 12px;
    border-radius:10px;
    background:#f5f5f3;
    border:1px solid transparent;
}
.pub-group-search:focus-within{border-color:var(--tj-gold);background:#fff;}
.pub-group-search i{color:#999;}
.pub-group-search input{
    flex:1;
    border:none;outline:none;
    background:transparent;
    font-size:.88rem;
}
.pub-group-hot{
    padding:0 16px 6px;
    font-size:.75rem;
    color:#b8860b;
    font-weight:600;
}
.pub-group-list{
    overflow-y:auto;
    padding:0 10px 12px;
    display:flex;
    flex-direction:column;
    gap:2px;
}
.pub-group-item{
    display:flex;
    align-items:center;
    gap:10px;
    padding:9px 10px;
    border:none;
    background:transparent;
    border-radius:10px;
    cursor:pointer;
    text-align:left;
    transition:background .12s;
    width:100%;
}
.pub-group-item:hover{background:#f7f7f3;}
.pub-group-item.active{background:#fff6d8;}
.pub-group-item-icon{
    width:34px;height:34px;
    border-radius:50%;
    background:linear-gradient(135deg,#0ca678,#099268);
    color:#fff;
    display:flex;align-items:center;justify-content:center;
    font-size:.9rem;
    flex-shrink:0;
}
.pub-group-item-name{
    flex:1;
    font-size:.88rem;
    color:#333;
    font-weight:500;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.pub-group-item-count{font-size:.72rem;color:#999;}
.pub-group-item-check{color:var(--tj-gold-dark);font-size:.95rem;}

/* 工具栏面板（表情/图片/链接/标签 */
.pub-panel{
    margin-top:8px;
    padding:10px;
    border-radius:10px;
    background:#fafaf8;
    border:1px solid #ececec;
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    align-items:center;
    animation:pubFade .15s ease;
}
@keyframes pubFade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.pub-emoji{
    font-size:1.15rem;
    width:32px;height:32px;
    border:none;background:transparent;
    border-radius:8px;cursor:pointer;
    transition:all .12s;
}
.pub-emoji:hover{background:#ffe97a;transform:scale(1.15);}
.pub-panel-form{flex-wrap:wrap;}
.pub-panel-input{
    flex:1;min-width:200px;
    padding:7px 10px;
    border:1px solid var(--tj-border);
    border-radius:8px;
    font-size:.85rem;
    outline:none;
}
.pub-panel-input:focus{border-color:var(--tj-gold);}
.pub-panel-btn{
    padding:7px 16px;
    border:none;border-radius:8px;
    background:var(--tj-gold);color:#fff;
    font-size:.82rem;font-weight:600;
    cursor:pointer;
    transition:all .15s;
}
.pub-panel-btn:hover{background:var(--tj-gold-dark);}

/* 已 */
.pub-picks{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px;min-height:0;}
.pub-pick{display:inline-flex;align-items:center;gap:3px;padding:1px 8px;border-radius:10px;font-size:.7rem;background:#fff8e1;color:var(--tj-gold-dark);font-weight:600;}

/* 标签浮层 */
.pub-tagfly{display:none;position:absolute;bottom:100%;left:0;background:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.1);z-index:300;padding:10px;gap:5px;flex-direction:column;width:260px;margin-bottom:4px;}
.pub-tagfly input{border:1px solid #eee;border-radius:6px;padding:5px 10px;font-size:.8rem;outline:none;}
.pub-tagfly input:focus{border-color:var(--tj-gold);}
.pub-tagfly .pub-tag-list{display:flex;gap:4px;flex-wrap:wrap;}

/* 链接浮层 */
.pub-linkfly{display:none;position:absolute;bottom:100%;left:0;background:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.1);z-index:300;padding:10px;gap:5px;flex-direction:column;width:280px;margin-bottom:4px;}
.pub-linkfly input{border:1px solid #eee;border-radius:6px;padding:5px 10px;font-size:.8rem;outline:none;}
.pub-linkfly input:focus{border-color:var(--tj-gold);}

/* 弹窗公共 */
.pub-ms{width:100%;border:1px solid #eee;border-radius:8px;padding:7px 12px;font-size:.85rem;outline:none;margin-bottom:8px;}
.pub-ms:focus{border-color:var(--tj-gold);}
.pub-ml{display:flex;flex-direction:column;gap:2px;max-height:260px;overflow-y:auto;}
.pub-mc{cursor:pointer;padding:7px 10px;border-radius:8px;transition:all .12s;display:block;font-size:.88rem;color:#555;}
.pub-mc:hover{background:#f5f5f5;}
.pub-mc input:checked+span{color:var(--tj-gold-dark);font-weight:700;}
.pub-mc input:checked+span::before{content:'✓';}
.pub-sm-btn{border:none;border-radius:6px;padding:4px 12px;font-size:.78rem;cursor:pointer;transition:all .12s;background:#f0f0f0;color:#666;white-space:nowrap;}
.pub-sm-pri{background:var(--tj-gold);color:#fff;}
.pub-sm-pri:hover{background:var(--tj-gold-dark);}
.pub-new-btn{width:100%;border:none;background:#f5f5f5;border-radius:8px;padding:7px;font-size:.82rem;color:#888;cursor:pointer;margin-top:6px;transition:all .12s;}
.pub-new-btn:hover{background:var(--tj-gold);color:#fff;}

/* 未登 */
.pub-guest{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit;}
.pub-guest-avatar{display:flex;align-items:center;justify-content:center;background:#f5f5f5;color:#ccc;font-size:1rem;}
.pub-guest-text{color:#c5c5c5;font-size:.92rem;flex:1;}

/* ===== square\index.blade.php ===== */
.rec-box{background:#fff;border-radius:12px;padding:12px 14px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.rec-head{display:flex;align-items:center;margin-bottom:8px;}
.rec-more{font-size:.75rem;color:#ccc;text-decoration:none;}
.rec-more:hover{color:var(--tj-gold-dark);text-decoration:none;}
.rec-list{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;}
.rec-item{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;width:72px;position:relative;transition:all .12s;}
.rec-item:hover{transform:translateY(-2px);}
.rec-item .ri-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:#fff;overflow:hidden;}
.rec-item .ri-icon img{width:100%;height:100%;object-fit:cover;}
.rec-item .ri-name{font-size:.75rem;color:#666;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:68px;}
.rec-badge{position:absolute;top:-3px;right:-3px;font-size:.55rem;padding:1px 5px;border-radius:6px;color:#fff;font-weight:600;line-height:1.3;}

/* ===== square\index.blade.php ===== */
/* ===== 快速发布框 ===== */
.wb-quick-post {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e8e8e8;
    padding: 16px 20px;
    margin-bottom: 12px;
}
.wb-qp-header {
    display: flex;
    align-items: center;
    gap: 10px;
}
.wb-qp-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #eee;
    flex-shrink: 0;
}
.wb-qp-user {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--tj-text);
}
.wb-qp-channel {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    border-radius: 16px;
    font-size: 0.78rem;
    color: #666;
    background: #f8f8f8;
    text-decoration: none;
    transition: all 0.15s;
}
.wb-qp-channel:hover { background: #fff8e1; color: var(--tj-gold-dark); text-decoration: none; }
.wb-qp-guest {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #999;
    font-size: 0.9rem;
    padding: 20px;
}
.wb-qp-guest i { font-size: 1.3rem; color: #ccc; }
.wb-qp-guest a { color: var(--tj-gold); font-weight: 600; text-decoration: none; }
.wb-qp-guest a:hover { text-decoration: underline; }

.wb-qp-textarea {
    width: 100%;
    border: 1px solid #e8e8e8;
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 0.92rem;
    font-family: inherit;
    line-height: 1.6;
    resize: vertical;
    outline: none;
    transition: border-color 0.2s;
}
.wb-qp-textarea:focus { border-color: var(--tj-gold); }
.wb-qp-textarea::placeholder { color: #bbb; }

.wb-qp-btn {
    padding: 8px 24px;
    border-radius: 8px;
    border: none;
    background: var(--tj-gold);
    color: #fff;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
}
.wb-qp-btn:hover { background: var(--tj-gold-dark); transform: translateY(-1px); }

.wb-qp-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.wb-qp-toolbar {
    display: flex;
    align-items: center;
    gap: 2px;
}
.wb-qp-tool {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999;
    font-size: 1.05rem;
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
}
.wb-qp-tool:hover { background: #f5f5f5; color: var(--tj-gold-dark); }
.wb-qp-count {
    font-size: 0.72rem;
    color: #ccc;
}
.wb-qp-tool-btn {
    border: none;
    background: #f0f0f0;
    border-radius: 6px;
    padding: 4px 10px;
    cursor: pointer;
    color: #666;
    font-size: 0.85rem;
    transition: all 0.15s;
}
.wb-qp-tool-btn:hover { background: #e0e0e0; }
.wb-qp-link-input {
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 0.85rem;
    outline: none;
    transition: border-color 0.2s;
}
.wb-qp-link-input:focus { border-color: var(--tj-gold); }
.wb-qp-preview {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 8px;
}
.wb-qp-preview img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #eee;
}
.wb-qp-preview .img-remove {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #ef4444;
    color: #fff;
    border: none;
    font-size: 0.6rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.wb-qp-preview .img-wrap { position: relative; display: inline-block; }

.wb-emoji-panel {
    position: absolute;
    bottom: 100%;
    left: 0;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
    z-index: 100;
    width: 320px;
    margin-bottom: 4px;
}
.wb-emoji-item {
    cursor: pointer;
    font-size: 1.3rem;
    padding: 2px;
    border-radius: 4px;
    transition: background 0.1s;
    line-height: 1;
}
.wb-emoji-item:hover { background: #f0f0f0; }

.wb-qp-thought { position: relative; }

/* ===== 顶部 ===== */
.wb-top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e5e5e5;
    padding: 14px 20px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}
.wb-top-left {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    width: 100%;
    min-width: 0;
}
.wb-channels {
    display: flex;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    max-width: 100%;
    padding-bottom: 2px;
    flex: 1;
    min-width: 0;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
    touch-action: pan-x;
}
.wb-channels:active { cursor: grabbing; }
.wb-channels::-webkit-scrollbar { display: none; }
.wb-channels-wrap {
    position: relative;
    display: flex;
    align-items: center;
    max-width: 100%;
    min-width: 0;
    flex: 1;
    width: 100%;
}
/* 右侧「更多」按钮：固定在可视区右端，带左侧渐变遮罩 */
.wb-channels-more {
    position: sticky;
    right: 0;
    flex-shrink: 0;
    margin-left: 2px;
    background: linear-gradient(90deg, rgba(255,255,255,0), #fff 30%);
    padding-left: 18px;
    z-index: 5;
}
.wb-channel-more {
    width: 34px;
    height: 34px;
    padding: 0;
    justify-content: center;
    border: 1px solid #e5e5e5;
    background: #fff;
    border-radius: 50%;
    font-size: 0.95rem;
    color: #555;
    cursor: pointer;
}
.wb-channel-more:hover { background: #ffe97a; border-color: #f5c518; color: #1a1a1a; }
/* 弹层遮罩 */
.wb-cat-mask {
    position: fixed;
    inset: 0;
    z-index: 90;
    background: rgba(0,0,0,0.25);
}
/* 弹层菜单 */
.wb-cat-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 100;
    width: 420px;
    max-width: calc(100vw - 24px);
    background: #fff;
    border-radius: 14px;
    border: 1px solid #e5e5e5;
    box-shadow: 0 12px 40px rgba(0,0,0,0.14);
    padding: 16px;
}
.wb-cat-menu-title {
    font-size: 0.85rem;
    font-weight: 700;
    color: #333;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.wb-cat-menu-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.wb-cat-item {
    padding: 9px 8px;
    border-radius: 10px;
    font-size: 0.85rem;
    color: #555;
    background: #f7f7f5;
    border: 1px solid transparent;
    cursor: pointer;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: all 0.15s;
}
.wb-cat-item:hover { background: #fff6d8; color: #1a1a1a; }
.wb-cat-item.active { background: #ffe97a; color: #1a1a1a; font-weight: 600; border-color: #f5c518; }
.wb-channel {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.88rem;
    color: #666;
    text-decoration: none;
    transition: all 0.2s;
    white-space: nowrap;
}
.wb-channel:hover { background: #f5f5f5; color: #333; text-decoration: none; }
.wb-channel.active { background: #ffe97a; color: #1a1a1a; font-weight: 600; }
.wb-channel i { font-size: 0.9rem; }

.wb-sorts { display: flex; gap: 2px; margin-top: 2px; }
.wb-sort {
    padding: 4px 14px;
    border-radius: 14px;
    font-size: 0.85rem;
    color: #999;
    text-decoration: none;
    transition: all 0.2s;
}
.wb-sort:hover { color: #333; background: #f5f5f5; text-decoration: none; }
.wb-sort.active { color: #f5a623; font-weight: 600; background: #fff8e1; }

.wb-post-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 7px 18px;
    border-radius: 20px;
    background: #f5a623;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s;
    flex-shrink: 0;
}
.wb-post-btn:hover { background: #e09515; color: #fff; text-decoration: none; transform: translateY(-1px); }

/* ===== 微博 Feed ===== */
.wb-feed {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e5e5e5;
    overflow: hidden;
}

/* ===== 微博条目 ===== */
.wb-item {
    display: flex;
    gap: 14px;
    padding: 18px 20px;
    border-bottom: 1px solid #f0f0f0;
    transition: background 0.15s;
}
.wb-item:last-child { border-bottom: none; }
.wb-item:hover { background: #fafafa; }

/* 头像 */
.wb-avatar-col { flex-shrink: 0; }
.wb-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid #eee;
    display: block;
}

/* 主体 */
.wb-body {
    flex: 1;
    min-width: 0;
}

/* 用户信息 */
.wb-user-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}
.wb-username {
    font-size: 0.95rem;
    font-weight: 600;
    color: #1a1a1a;
    text-decoration: none;
}
.wb-username:hover { color: #f5a623; text-decoration: none; }
.wb-channel-tag {
    font-size: 0.72rem;
    padding: 1px 8px;
    border-radius: 10px;
    font-weight: 600;
    line-height: 1.6;
}
.tag-featured { background: #fff8e1; color: #f5a623; }
.tag-trend { background: #fff4e6; color: #fd7e14; }
.tag-career { background: #e8f5e9; color: #43a047; }
.tag-growth { background: #e3f2fd; color: #1e88e5; }
.tag-library { background: #f3e5f5; color: #8e24aa; }
.tag-breakdown { background: #e7f5ff; color: #1c7ed6; }
.tag-case { background: #e6fcf5; color: #0ca678; }
.tag-essence { background: #fef3e2; color: #e67e22; }
.tag-bid { background: #fce4ec; color: #e91e63; }
.tag-discussion { background: #f3f0ff; color: #7048e8; }
.wb-pin { font-size: 0.75rem; color: #f5a623; }
.wb-pin i { font-size: 0.7rem; }
.wb-time {
    font-size: 0.78rem;
    color: #999;
    margin-left: auto;
}

/* 正文 */
.wb-text { margin-bottom: 4px; }
.wb-title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1a1a1a;
    text-decoration: none;
    line-height: 1.5;
    display: block;
}
.wb-title:hover { color: #f5a623; text-decoration: none; }

/* 摘要 */
.wb-summary {
    font-size: 0.9rem;
    color: #666;
    line-height: 1.6;
    margin-bottom: 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ===== 图片网格 ===== */
.wb-images {
    display: grid;
    gap: 4px;
    margin-bottom: 10px;
    border-radius: 10px;
    overflow: hidden;
    max-width: 100%;
}

/* 1张图 - 靠左显示，最 50px */
.wb-images-1 {
    grid-template-columns: 1fr;
    max-height: 150px;
    justify-items: start;
}
.wb-images-1 .wb-img-link {
    max-width: 100%;
}
.wb-images-1 .wb-img {
    height: 150px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    border-radius: 6px;
}

/* 2张图 */
.wb-images-2 { grid-template-columns: 1fr 1fr; max-height: 220px; }
.wb-images-2 .wb-img { width: 100%; height: 220px; object-fit: cover; }

/* 3张图 */
.wb-images-3 { grid-template-columns: 1fr 1fr; grid-template-rows: 180px 180px; max-height: 364px; }
.wb-images-3 .wb-img-link:first-child { grid-row: span 2; }
.wb-images-3 .wb-img-link:first-child .wb-img { height: 364px; }
.wb-images-3 .wb-img { width: 100%; height: 180px; object-fit: cover; }

/* 4张图 */
.wb-images-4 { grid-template-columns: 1fr 1fr; grid-template-rows: 150px 150px; max-height: 304px; }
.wb-images-4 .wb-img { width: 100%; height: 150px; object-fit: cover; }

.wb-img-link {
    display: block;
    overflow: hidden;
    border-radius: 6px;
    text-decoration: none;
    position: relative;
}

.wb-img {
    display: block;
    transition: transform 0.3s ease;
    width: 100%;
}

.wb-img-link:hover .wb-img { transform: scale(1.05); }

/* 多图剩余 */
.wb-img-more {
    position: absolute;
    right: 8px;
    bottom: 8px;
    background: rgba(0,0,0,0.6);
    color: #fff;
    font-size: 0.85rem;
    font-weight: 600;
    padding: 2px 10px;
    border-radius: 10px;
}

/* 操作 */
.wb-actions {
    display: flex;
    align-items: center;
    gap: 24px;
    padding-top: 4px;
}
.wb-action {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.82rem;
    color: #999;
    text-decoration: none;
    cursor: pointer;
    transition: color 0.15s;
    padding: 4px 0;
}
.wb-action:hover { color: #f5a623; text-decoration: none; }
.wb-action i { font-size: 0.95rem; }

/* 空状 */
.wb-empty {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e5e5e5;
    padding: 60px 20px;
    text-align: center;
    color: #999;
}
.wb-empty i { font-size: 3rem; display: block; margin-bottom: 12px; }
.wb-empty p { font-size: 0.95rem; margin-bottom: 16px; }

/* 分页 */
.wb-pagination { margin-top: 16px; }

/* 响应 */
@media (max-width: 768px) {
    .wb-item { padding: 14px 12px; gap: 10px; }
    .wb-avatar { width: 36px; height: 36px; }
    .wb-title { font-size: 0.98rem; }
    .wb-top-bar { padding: 10px 12px; border-radius: 0; margin: -12px -16px 12px; }
    .wb-channel { padding: 5px 10px; font-size: 0.82rem; }
    .wb-post-btn span { display: none; }
    .wb-actions { gap: 16px; }
    .wb-feed { border-radius: 0; margin: 0 -16px; border-left: none; border-right: none; }

    /* 移动端图片自适应 */
    .wb-images-1 { max-height: 150px; }
    .wb-images-1 .wb-img { height: 150px; }
    .wb-images-2 { max-height: 160px; }
    .wb-images-2 .wb-img { height: 160px; }
    .wb-images-3 { grid-template-rows: 130px 130px; max-height: 264px; }
    .wb-images-3 .wb-img-link:first-child .wb-img { height: 264px; }
    .wb-images-3 .wb-img { height: 130px; }
    .wb-images-4 { grid-template-rows: 110px 110px; max-height: 224px; }
    .wb-images-4 .wb-img { height: 110px; }
}

/* ===== square\show.blade.php ===== */
/* 富文本内容渲染样 */
    .tj-content { line-height: 1.85; font-size: 1.0625rem; word-wrap: break-word; overflow-wrap: break-word; }
    .tj-content h1 { font-size: 1.8rem; font-weight: 800; margin: 28px 0 16px; }
    .tj-content h2 { font-size: 1.55rem; font-weight: 700; margin: 24px 0 12px; padding-bottom: 8px; border-bottom: 2px solid var(--tj-border); }
    .tj-content h3 { font-size: 1.3rem; font-weight: 600; margin: 20px 0 10px; }
    .tj-content h4 { font-size: 1.15rem; font-weight: 600; margin: 16px 0 8px; }
    .tj-content h5 { font-size: 1rem; font-weight: 600; margin: 14px 0 6px; color: var(--tj-text-secondary); }
    .tj-content p { margin-bottom: 14px; }
    .tj-content ul, .tj-content ol { margin-bottom: 14px; padding-left: 28px; }
    .tj-content li { margin-bottom: 6px; }
    .tj-content blockquote { border-left: 4px solid var(--tj-gold); padding: 12px 20px; margin: 16px 0; background: #fffbeb; color: #555; border-radius: 0 8px 8px 0; }
    .tj-content blockquote p { margin-bottom: 0; }
    .tj-content img { max-width: 100%; border-radius: 10px; margin: 14px 0; display: block; }
    .tj-content video { max-width: 100%; border-radius: 10px; margin: 14px 0; display: block; }
    .tj-content a { color: var(--tj-gold); text-decoration: underline; }
    .tj-content a:hover { color: var(--tj-gold-dark); }
    .tj-content pre { background: #2d2d2d; padding: 18px 20px; border-radius: 10px; overflow-x: auto; font-size: 0.9rem; margin: 16px 0; line-height: 1.6; }
    .tj-content pre code { background: transparent; color: #ccc; padding: 0; font-size: 0.9rem; font-family: 'Fira Code', 'Courier New', monospace; }
    .tj-content code { background: #f0f0f0; color: #d6336c; padding: 2px 6px; border-radius: 4px; font-size: 0.9rem; font-family: 'Fira Code', 'Courier New', monospace; }
    .tj-content table { border-collapse: collapse; width: 100%; margin: 16px 0; }
    .tj-content th { background: #f6f6f6; border: 1px solid #e0e0e0; padding: 10px 14px; font-weight: 700; text-align: left; }
    .tj-content td { border: 1px solid #e0e0e0; padding: 10px 14px; }
    .tj-content hr { border: none; border-top: 2px solid var(--tj-border); margin: 24px 0; }
    .tj-content strong { font-weight: 700; }
    .tj-content em { font-style: italic; }
    .tj-content del { text-decoration: line-through; color: var(--tj-text-secondary); }

/* ===== square\show.blade.php ===== */
.paywall-full {
                            text-align: center; padding: 50px 24px 36px;
                            background: linear-gradient(180deg, #fffbeb 0%, #fff 60%);
                            border-radius: 14px; border: 2px dashed var(--tj-gold);
                        }
                        .paywall-icon {
                            width: 72px; height: 72px; border-radius: 50%;
                            background: linear-gradient(135deg, #f5d77a, var(--tj-gold));
                            margin: 0 auto 16px;
                            display: flex; align-items: center; justify-content: center;
                            box-shadow: 0 6px 24px rgba(212,160,23,0.35);
                        }
                        .paywall-icon i { font-size: 2rem; color: #fff; }
                        .paywall-benefits {
                            display: grid; grid-template-columns: repeat(2, 1fr);
                            gap: 10px; margin-top: 24px; max-width: 480px; margin-left: auto; margin-right: auto;
                        }
                        .benefit-item {
                            font-size: 0.88rem; color: var(--tj-text-secondary);
                            display: flex; align-items: center; gap: 6px;
                        }
                        .benefit-item i { color: var(--tj-gold); font-size: 1rem; flex-shrink: 0; }
                        @media (max-width: 500px) {
                            .paywall-benefits { grid-template-columns: 1fr; }
                            .paywall-full { padding: 36px 16px 28px; }
                        }

/* ===== thought\create.blade.php ===== */
.btn-gold {
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.btn-gold:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,160,23,0.3); color: #fff; }
.btn-ghost {
    background: transparent; color: var(--tj-text); border: 1px solid #e0e0e0;
    border-radius: 8px; font-weight: 500; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-ghost:hover { background: #f5f5f5; text-decoration: none; }
textarea:focus { outline: none; border-color: var(--tj-gold) !important; }

/* ===== user-project\create.blade.php ===== */
.btn-gold {
    background: linear-gradient(135deg, var(--tj-gold), var(--tj-gold-dark));
    color: #fff; border: none; border-radius: 8px;
    font-weight: 600; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-gold:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(212,160,23,0.3); color: #fff; }
.btn-ghost {
    background: transparent; color: var(--tj-text); border: 1px solid #e0e0e0;
    border-radius: 8px; font-weight: 500; cursor: pointer; transition: all 0.2s;
    text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.btn-ghost:hover { background: #f5f5f5; text-decoration: none; }
.ql-editor { min-height: 280px; font-size: 0.95rem; line-height: 1.7; }
.ql-toolbar { border-radius: 8px 8px 0 0; background: #fafafa; border-color: #e0e0e0; }
.ql-container { border-radius: 0 0 8px 8px; border-color: #e0e0e0; }
.upload-cover-box {
    width:100%; height:140px; border:2px dashed #d0d0d0; border-radius:10px;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:all 0.2s; overflow:hidden; position:relative; background:#fafafa;
}
.upload-cover-box:hover { border-color:var(--tj-gold); background:#fffdf5; }
.upload-cover-placeholder {
    display:flex; flex-direction:column; align-items:center; gap:6px; color:#bbb;
}
.upload-cover-placeholder i { font-size:2.2rem; color:#ccc; }
.upload-cover-placeholder span { font-size:0.82rem; }

/* ===== 人脉库（名片广场 ===== */
.contacts-layout{display:grid;grid-template-columns:1fr 260px;gap:16px;align-items:start;}
.contacts-main{min-width:0;}
.ct-search{flex:1;min-width:200px;}
.ct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;}
.ct-card{background:var(--tj-card-bg,#fff);border:1px solid var(--tj-border);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s,transform .15s;}
.ct-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-2px);}
.ct-card-head{display:flex;gap:10px;align-items:center;}
.ct-card-avatar,.ct-detail-avatar{width:46px;height:46px;border-radius:50%;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;overflow:hidden;}
.ct-card-avatar img,.ct-detail-avatar img{width:100%;height:100%;object-fit:cover;}
.ct-card-id{min-width:0;}
.ct-card-name{font-weight:700;font-size:.95rem;display:flex;align-items:center;gap:4px;}
.ct-card-co{font-size:.78rem;color:var(--tj-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ct-card-city{font-size:.72rem;color:#aaa;}
.ct-card-res{display:flex;flex-direction:column;gap:6px;background:#fafaf8;border-radius:10px;padding:10px;}
.ct-res-line{display:flex;gap:6px;align-items:flex-start;font-size:.8rem;line-height:1.5;}
.ct-res-tag{flex-shrink:0;font-size:.7rem;padding:1px 8px;border-radius:100px;color:#fff;font-weight:600;}
.ct-res-offer{background:#0ca678;}
.ct-res-seek{background:#1e88e5;}
.ct-res-text{color:var(--tj-text);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.ct-card-bio{font-size:.75rem;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ct-card-foot{display:flex;gap:6px;align-items:center;margin-top:auto;}
.ct-btn{border:none;border-radius:8px;padding:6px 12px;font-size:.8rem;cursor:pointer;transition:all .15s;}
.ct-btn-gold{background:linear-gradient(135deg,var(--tj-gold),var(--tj-gold-dark));color:#fff;font-weight:600;flex:1;}
.ct-btn-gold:hover{opacity:.9;}
.ct-btn-gold:disabled{opacity:.5;cursor:not-allowed;}
.ct-btn-ghost{background:transparent;border:1px solid var(--tj-border);color:var(--tj-text);flex:1;}
.ct-btn-ghost:hover{border-color:var(--tj-gold);color:var(--tj-gold-dark);}
.ct-btn-sm{padding:4px 10px;font-size:.75rem;flex:0 0 auto;}
.ct-btn-icon{border:none;background:transparent;color:#ccc;font-size:1rem;cursor:pointer;padding:4px;}
.ct-btn-icon.active{color:var(--tj-gold);}
.contacts-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:12px;}
.ct-side-card{background:var(--tj-card-bg,#fff);border:1px solid var(--tj-border);border-radius:14px;padding:14px;}
.ct-side-title{font-weight:700;font-size:.88rem;margin-bottom:10px;color:var(--tj-text);}
.ct-quota-meta{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:var(--tj-text-secondary);margin-bottom:8px;}
.ct-quota-bar{height:8px;border-radius:100px;background:#f0f0ee;overflow:hidden;}
.ct-quota-bar>div{height:100%;border-radius:100px;background:linear-gradient(90deg,var(--tj-gold),var(--tj-gold-dark));transition:width .3s;}
.ct-quota-bar.full>div{background:#ef4444;}
.ct-quota-left{margin-top:8px;font-size:.78rem;font-weight:600;color:#0ca678;}
.ct-quota-left.out{color:#ef4444;}
.ct-quick{display:flex;flex-direction:column;gap:4px;}
.ct-quick-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:8px;font-size:.85rem;color:var(--tj-text);cursor:pointer;text-align:left;}
.ct-quick-item:hover{background:#fff6d8;color:var(--tj-gold-dark);}
.ct-quick-item i{width:18px;text-align:center;color:var(--tj-gold);}
.ct-tags{display:flex;flex-wrap:wrap;gap:6px;}
.ct-tag{font-size:.78rem;padding:4px 12px;border-radius:100px;border:1px solid #e5e5e5;background:#fff;color:#666;cursor:pointer;transition:all .15s;}
.ct-tag:hover{border-color:var(--tj-gold);color:var(--tj-gold-dark);}
.ct-tag.active{background:var(--tj-gold);border-color:var(--tj-gold);color:#fff;font-weight:600;}
.ct-latest{display:flex;flex-direction:column;}
.ct-latest-item{display:flex;gap:8px;align-items:center;padding:7px 4px;border-radius:8px;text-decoration:none;color:var(--tj-text);}
.ct-latest-item:hover{background:#f7f7f3;}
.ct-latest-avatar{width:32px;height:32px;border-radius:50%;color:#fff;font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.ct-latest-avatar img{width:100%;height:100%;object-fit:cover;}
.ct-latest-info{min-width:0;}
.ct-latest-name{font-size:.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ct-latest-desc{font-size:.72rem;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ct-mask{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:130;display:flex;align-items:center;justify-content:center;}
.ct-detail{width:520px;max-width:calc(100vw - 24px);max-height:82vh;overflow-y:auto;background:#fff;border-radius:16px;padding:20px;position:relative;animation:pubFade .18s ease;}
.ct-modal{width:440px;max-width:calc(100vw - 24px);max-height:82vh;overflow-y:auto;background:#fff;border-radius:16px;animation:pubFade .18s ease;}
.ct-detail-close{position:absolute;top:12px;right:12px;width:30px;height:30px;border:none;background:#f2f2f0;border-radius:50%;cursor:pointer;color:#888;}
.ct-detail-close:hover{background:#ffe97a;color:#1a1a1a;}
.ct-detail-head{display:flex;gap:12px;align-items:center;margin-bottom:16px;}
.ct-detail-avatar{width:56px;height:56px;font-size:1.3rem;}
.ct-detail-name{font-size:1.1rem;font-weight:800;}
.ct-detail-co{font-size:.85rem;color:var(--tj-text-secondary);}
.ct-detail-city{font-size:.78rem;color:#aaa;}
.ct-detail-dl{margin-left:auto;font-size:.72rem;color:#999;background:#f5f5f3;padding:4px 10px;border-radius:100px;white-space:nowrap;}
.ct-detail-body{display:flex;flex-direction:column;gap:12px;background:#fafaf8;border-radius:12px;padding:14px;}
.ct-detail-sec{font-size:.85rem;line-height:1.6;}
.ct-detail-label{font-weight:700;margin-bottom:3px;}
.ct-detail-val{color:var(--tj-text);}
.ct-detail-locked{font-size:.78rem;color:#999;background:#fff6d8;padding:8px 10px;border-radius:8px;}
.ct-detail-foot{display:flex;gap:10px;margin-top:16px;align-items:center;}
.ct-modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-weight:700;font-size:.95rem;border-bottom:1px solid #f2f2f0;position:relative;}
.ct-modal-body{padding:14px 16px;}
.ct-modal-foot{padding:0 16px 16px;}
.ct-checkbox{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--tj-text);cursor:pointer;margin-top:4px;}
.ct-rec-item{display:flex;gap:10px;align-items:center;padding:8px 4px;border-bottom:1px solid #f5f5f5;}
.ct-rec-item:last-child{border-bottom:none;}
@media (max-width: 1100px){ .contacts-layout{grid-template-columns:1fr;} .contacts-side{position:static;} }
@media (max-width: 640px){ .ct-grid{grid-template-columns:1fr 1fr;} }
@media (max-width: 460px){ .ct-grid{grid-template-columns:1fr;} }

/* ===== 名片详情 / 编辑 ===== */
.contacts-detail-page{max-width:760px;margin:0 auto;}
.ct-back{margin-bottom:10px;}
.ctd-card{background:var(--tj-card-bg,#fff);border:1px solid var(--tj-border);border-radius:16px;padding:28px;}
.ctd-head{display:flex;gap:16px;align-items:center;margin-bottom:20px;}
.ctd-avatar{width:72px;height:72px;border-radius:50%;color:#fff;font-weight:700;font-size:1.6rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.ctd-avatar img{width:100%;height:100%;object-fit:cover;}
.ctd-info{min-width:0;flex:1;}
.ctd-name{font-size:1.25rem;font-weight:800;}
.ctd-company{font-size:.92rem;color:var(--tj-text-secondary);margin-top:3px;}
.ctd-meta{font-size:.8rem;color:#aaa;margin-top:3px;}
.ctd-dl{font-size:.75rem;color:#999;background:#f5f5f3;padding:5px 12px;border-radius:100px;white-space:nowrap;}
.ctd-body{display:flex;flex-direction:column;gap:14px;background:#fafaf8;border-radius:12px;padding:18px;}
.ctd-sec{font-size:.9rem;line-height:1.7;}
.ctd-label{font-weight:700;margin-bottom:4px;}
.ctd-val{color:var(--tj-text);}
.ctd-locked{font-size:.8rem;color:#999;background:#fff6d8;padding:10px 12px;border-radius:8px;}
.ctd-foot{display:flex;gap:10px;margin-top:20px;align-items:center;flex-wrap:wrap;}
@media (max-width: 560px){ .ctd-head{flex-direction:column;text-align:center;} .ctd-dl{margin-top:4px;} }

/* ===== 资源对接频道 ===== */
.cp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;}
.cp-card{background:var(--tj-card-bg,#fff);border:1px solid var(--tj-border);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:8px;transition:box-shadow .15s,transform .15s;}
.cp-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-2px);}
.cp-card-top{display:flex;align-items:center;gap:6px;}
.cp-type{display:inline-block;font-size:.7rem;padding:2px 9px;border-radius:100px;color:#fff;font-weight:600;flex-shrink:0;}
.cp-type.demand{background:#1e88e5;}
.cp-type.offer{background:#0ca678;}
.cp-cat{font-size:.72rem;color:var(--tj-gold-dark);background:#fff6d8;padding:2px 8px;border-radius:100px;}
.cp-view{margin-left:auto;font-size:.72rem;color:#aaa;}
.cp-card-title{font-weight:700;font-size:.95rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.cp-card-desc{font-size:.8rem;color:var(--tj-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5;}
.cp-card-user{display:flex;align-items:center;gap:6px;}
.cp-avatar{width:22px;height:22px;border-radius:50%;color:#fff;font-size:.68rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.cp-uname{font-size:.75rem;font-weight:600;}
.cp-utime{font-size:.7rem;color:#aaa;margin-left:auto;}
.cp-card-foot{margin-top:auto;border-top:1px dashed #eee;padding-top:8px;}
.cp-btn-detail{font-size:.75rem;color:#1e88e5;}
.cp-quota-type{font-size:.78rem;font-weight:700;color:var(--tj-gold-dark);margin-bottom:8px;}
.cp-quota-line{display:flex;justify-content:space-between;font-size:.78rem;padding:5px 0;color:var(--tj-text);border-bottom:1px dashed #f2f2f0;}
.cp-quota-line:last-of-type{border-bottom:none;}
.cp-quota-out{color:#ef4444;font-weight:700;}
.cp-detail-tags{display:flex;gap:6px;align-items:center;}
.cp-contact{background:#e6faf2;color:#0ca678;padding:3px 10px;border-radius:6px;font-weight:600;}
.cp-mask-tip{color:#999;}
.cp-quota-remaining{font-size:.75rem;color:#999;line-height:1.9;}
@media (max-width: 640px){ .cp-grid{grid-template-columns:1fr 1fr;} }
@media (max-width: 460px){ .cp-grid{grid-template-columns:1fr;} }

/* ===== 圈子频道（豆瓣小组风格） ===== */
.gb-sec-title{font-weight:700;font-size:.9rem;margin-bottom:10px;}
.gb-my-groups{display:flex;gap:14px;overflow-x:auto;padding-bottom:4px;}
.gb-my-item{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;color:var(--tj-text);flex-shrink:0;width:64px;}
.gb-my-avatar{width:48px;height:48px;border-radius:50%;color:#fff;font-size:1.2rem;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.gb-my-avatar img{width:100%;height:100%;object-fit:cover;}
.gb-my-name{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:64px;}
.gb-cats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.gb-cat{font-size:.82rem;padding:5px 14px;border-radius:100px;border:1px solid #e5e5e5;background:#fff;color:#666;cursor:pointer;transition:all .15s;}
.gb-cat:hover{border-color:var(--tj-gold);color:var(--tj-gold-dark);}
.gb-cat.active{background:var(--tj-gold);border-color:var(--tj-gold);color:#fff;font-weight:600;}
.gb-main{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;}
.gb-groups{display:flex;flex-direction:column;gap:10px;}
.gb-group-card{display:flex;align-items:center;gap:12px;background:var(--tj-card-bg,#fff);border:1px solid var(--tj-border);border-radius:14px;padding:14px;}
.gb-group-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.06);}
.gb-group-body{display:flex;gap:12px;flex:1;min-width:0;align-items:center;}
.gb-avatar-lg{width:54px;height:54px;border-radius:50%;color:#fff;font-size:1.4rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.gb-avatar-lg img{width:100%;height:100%;object-fit:cover;}
.gb-avatar-xl{width:72px;height:72px;border-radius:50%;color:#fff;font-size:1.8rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.gb-avatar-xl img{width:100%;height:100%;object-fit:cover;}
.gb-group-name{font-weight:700;font-size:.98rem;}
.gb-cat-badge{font-size:.68rem;color:var(--tj-gold-dark);background:#fff6d8;padding:1px 7px;border-radius:100px;margin-left:4px;}
.gb-group-desc{font-size:.8rem;color:var(--tj-text-secondary);overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;}
.gb-group-stats{font-size:.74rem;color:#999;margin-top:3px;}
.gb-feed{min-width:0;}
.gb-topics{display:flex;flex-direction:column;gap:10px;}
.gb-topic{background:var(--tj-card-bg,#fff);border:1px solid var(--tj-border);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;transition:box-shadow .15s;}
.gb-topic:hover{box-shadow:0 6px 20px rgba(0,0,0,.06);}
.gb-topic-imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.gb-topic-imgs img{width:100%;height:90px;object-fit:cover;border-radius:8px;}
.gb-topic-imgs:has(img:nth-child(1):last-child){grid-template-columns:1fr;}
.gb-topic-imgs:has(img:nth-child(1):nth-last-child(2)){grid-template-columns:1fr 1fr;}
.gb-topic-title{font-weight:600;font-size:.92rem;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.gb-topic-meta{display:flex;align-items:center;gap:8px;font-size:.74rem;color:#999;}
.gb-topic-user{font-weight:600;color:var(--tj-text);}
.gb-topic-group{color:#0ca678;}
.gb-pin{font-size:.64rem;background:#fff3bf;color:#b45309;padding:1px 7px;border-radius:4px;font-weight:600;}
.gb-feat{font-size:.64rem;background:#ffe3e3;color:#e03131;padding:1px 7px;border-radius:4px;font-weight:600;}
.gb-cnt{color:#999;}
.gb-cnt.mid{color:#f59e0b;font-weight:600;}
.gb-cnt.deep{color:#e03131;font-weight:700;}
.gb-like{color:#999;}
.gb-detail-main{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start;margin-top:16px;}
.gb-detail-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:12px;}
.gb-members{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.gb-member{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--tj-text);padding:6px 2px;border-radius:8px;}
.gb-member:hover{background:#f7f7f3;}
.gb-member-avatar{width:36px;height:36px;border-radius:50%;color:#fff;font-size:.85rem;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.gb-member-avatar img{width:100%;height:100%;object-fit:cover;}
.gb-member-name{font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px;}
.gb-row{display:flex;gap:4px;flex-shrink:0;}
/* 话题详情：最 楼中 */
.pd-comment{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #f5f5f5;}
.pd-comment:last-child{border-bottom:none;}
.pd-link{background:none;border:none;color:#999;font-size:.74rem;cursor:pointer;padding:2px 4px;}
.pd-link:hover{color:var(--tj-gold-dark);}
.pd-replies{margin-top:8px;margin-left:20px;padding-left:12px;border-left:2px solid #f0f0ee;}
.pd-at{color:#1e88e5;font-size:.8rem;}
.pd-top-list{background:#fffdf5;border:1px solid #fff3bf;border-radius:12px;padding:4px 12px;margin-bottom:4px;}
.pd-all-list{margin-top:4px;}
@media (max-width: 1000px){ .gb-main{grid-template-columns:1fr;} .gb-detail-main{grid-template-columns:1fr;} .gb-detail-side{position:static;} }
@media (max-width: 560px){ .gb-topic-imgs img{height:70px;} }

/* ===== 圈子频道 v2（全宽布局 ===== */
.gb-hero{background:linear-gradient(135deg,#fef9e7,#fdf6d8);border:1px solid #fff3bf;border-radius:16px;padding:24px 28px;margin-bottom:16px;}
.gb-hero-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.gb-hero-title{font-size:1.6rem;font-weight:800;margin:0 0 4px;}
.gb-hero-sub{font-size:.9rem;color:var(--tj-text-secondary);margin:0;}
.gb-hero-actions{display:flex;gap:8px;align-items:center;}
.gb-my-wrap{margin-bottom:14px;}
.gb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-bottom:24px;}
.gb-card{background:var(--tj-card-bg,#fff);border:1px solid var(--tj-border);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s,transform .15s;position:relative;}
.gb-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.07);transform:translateY(-2px);}
.gb-card-top{display:flex;gap:12px;align-items:center;}
.gb-card-avatar{width:50px;height:50px;border-radius:50%;color:#fff;font-size:1.3rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.gb-card-avatar img{width:100%;height:100%;object-fit:cover;}
.gb-card-name{font-weight:700;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gb-card-desc{font-size:.78rem;color:var(--tj-text-secondary);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.4em;}
.gb-card-stats{font-size:.72rem;color:#999;}
.gb-join-btn{border:1px solid var(--tj-gold);color:var(--tj-gold-dark);background:#fff;border-radius:100px;padding:5px 0;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s;}
.gb-join-btn:hover{background:var(--tj-gold);color:#fff;}
.gb-join-btn.joined{border-color:#e5e5e5;color:#999;background:#f7f7f3;cursor:default;}
.gb-feed-section{margin-top:4px;}
.gb-topics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.gb-topic-noimg{height:110px;border-radius:8px;background:linear-gradient(135deg,#fff6d8,#fff);display:flex;align-items:center;justify-content:center;color:#d9c27a;font-size:2rem;}
@media (max-width: 640px){ .gb-hero-inner{flex-direction:column;align-items:flex-start;} .gb-hero-actions{width:100%;} .gb-hero-actions .form-input{flex:1;} }

/* ===== 首页：AI智能体获客定 + 五阶段框 ===== */
.wb-hero{background:linear-gradient(160deg,#fffdf3 0%,#fff8e1 45%,#fff3cd 100%);border:1px solid #ffe8a3;border-radius:18px;padding:26px 28px 22px;margin-bottom:16px;position:relative;overflow:hidden;}
.wb-hero::before{content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(233,196,106,.25),transparent 70%);}
.wb-hero-badge{display:inline-flex;align-items:center;background:#fff;border:1px solid #ffe8a3;color:#b45309;font-size:.75rem;font-weight:700;padding:4px 12px;border-radius:100px;margin-bottom:10px;}
.wb-hero-title{font-size:1.55rem;font-weight:800;margin:0 0 6px;color:#1a1a1a;}
.wb-hero-title span{color:#b45309;background:linear-gradient(90deg,#d97706,#b45309);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.wb-hero-sub{font-size:.88rem;color:#8a7a5a;margin:0 0 18px;}
.wb-hero-stages{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;}
.wb-stage{background:#fff;border:1px solid #f0e6cc;border-radius:14px;padding:14px 12px;text-align:center;text-decoration:none;color:inherit;position:relative;transition:transform .18s,box-shadow .18s;}
.wb-stage:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(180,120,0,.14);}
.wb-stage-num{position:absolute;top:8px;left:10px;font-size:.66rem;font-weight:800;color:#d9c27a;}
.wb-stage-emoji{font-size:1.6rem;margin-bottom:6px;}
.wb-stage-name{font-weight:800;font-size:.92rem;margin-bottom:2px;}
.wb-stage-desc{font-size:.74rem;color:#999;margin-bottom:8px;}
.wb-stage-entry{display:inline-block;font-size:.74rem;font-weight:700;color:#b45309;background:#fff6d8;padding:4px 12px;border-radius:100px;}
.wb-stage-extra{font-size:.66rem;color:#c4b48e;margin-top:6px;}
.wb-hero-flow{text-align:center;font-size:.72rem;color:#c4a35a;font-weight:700;margin-top:14px;letter-spacing:4px;}
@media (max-width: 900px){ .wb-hero-stages{grid-template-columns:repeat(2,1fr);} }
@media (max-width: 460px){ .wb-hero-stages{grid-template-columns:1fr;} .wb-hero{padding:20px 16px;} }

/* ===== 文章详情 v2：正文单 + 智能副驾边栏 ===== */
.ad-page{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start;}
.ad-main{min-width:0;display:flex;flex-direction:column;gap:16px;}
.ad-card{background:var(--tj-card-bg,#fff);border:1px solid var(--tj-border);border-radius:16px;padding:26px 30px;}
.ad-hero .ad-badge{font-size:.72rem;background:#7048e81a;color:#7048e8;font-weight:600;padding:3px 10px;border-radius:100px;}
.ad-cat{font-size:.72rem;color:var(--tj-gold-dark);background:#fff6d8;padding:3px 10px;border-radius:100px;}
.ad-title{font-size:1.6rem;font-weight:800;line-height:1.4;margin:0 0 10px;}
.ad-summary{font-size:.9rem;color:#7a6a45;background:#faf6ec;padding:12px 16px;border-radius:10px;border-left:3px solid var(--tj-gold);margin:0 0 14px;}
.ad-hero-author{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--tj-text);font-weight:600;font-size:.85rem;}
.ad-cover{width:100%;max-height:340px;object-fit:cover;border-radius:12px;margin:16px 0;}
.ad-body{font-size:1.02rem;line-height:2;color:var(--tj-text);word-break:break-word;}
.ad-body h2{font-size:1.3rem;font-weight:800;margin:28px 0 12px;scroll-margin-top:80px;}
.ad-body h3{font-size:1.12rem;font-weight:700;margin:22px 0 10px;scroll-margin-top:80px;}
.ad-body p{margin:12px 0;}
.ad-body blockquote{border-left:4px solid var(--tj-gold);background:#fffdf5;padding:10px 16px;color:#7a6a45;margin:14px 0;border-radius:0 8px 8px 0;}
.ad-tags{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--tj-border);padding-top:16px;margin-top:28px;}
.ad-tags .tj-tag{font-size:.78rem;background:var(--tj-gold-light);color:#7c2d12;padding:4px 12px;border-radius:100px;}
.ad-actions{display:flex;gap:10px;border-top:1px dashed #eee;padding-top:16px;margin-top:20px;flex-wrap:wrap;}
.ad-act{border:1px solid var(--tj-border);background:#fff;border-radius:100px;padding:8px 16px;font-size:.84rem;cursor:pointer;color:var(--tj-text);transition:all .15s;}
.ad-act:hover{border-color:var(--tj-gold);color:var(--tj-gold-dark);}
.ad-act.liked{border-color:var(--tj-gold);background:#fff6d8;color:var(--tj-gold-dark);font-weight:600;}
/* 评论 */
.ad-comment{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #f5f5f5;}
.ad-comment:last-child{border-bottom:none;}
.ad-cm-avatar{width:32px;height:32px;border-radius:50%;color:#fff;font-size:.85rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.ad-cm-avatar img{width:100%;height:100%;object-fit:cover;}
.ad-author-tag{font-size:.62rem;background:var(--tj-gold);color:#fff;padding:1px 7px;border-radius:4px;margin-left:6px;}
.ad-link{background:none;border:none;color:#999;font-size:.74rem;cursor:pointer;padding:2px 4px;}
.ad-link:hover{color:var(--tj-gold-dark);}
.ad-replies{margin-left:42px;padding-left:14px;border-left:2px solid #f0f0ee;margin-top:8px;}
.ad-hot-box{background:#fffdf5;border:1px solid #fff3bf;border-radius:12px;padding:6px 14px;margin-bottom:6px;}
.ad-input-open{border-color:var(--tj-gold)!important;box-shadow:0 0 0 3px #fff3bf;}
/* 右侧边栏 */
.ad-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:12px;}
.ad-side-card{background:var(--tj-card-bg,#fff);border:1px solid var(--tj-border);border-radius:14px;padding:14px;}
.ad-side-title{font-weight:700;font-size:.86rem;margin-bottom:10px;}
.ad-toc{display:flex;flex-direction:column;gap:2px;max-height:300px;overflow-y:auto;}
.ad-toc-item{border:none;background:none;text-align:left;font-size:.8rem;color:#777;padding:6px 10px;border-radius:8px;cursor:pointer;border-left:2px solid transparent;transition:all .15s;}
.ad-toc-item:hover{background:#f7f7f3;color:var(--tj-text);}
.ad-toc-item.active{color:var(--tj-gold-dark);font-weight:700;background:#fff6d8;border-left-color:var(--tj-gold);}
.ad-author-card .ad-author-top{display:flex;gap:12px;align-items:center;margin-bottom:10px;}
.ad-author-avatar{width:48px;height:48px;border-radius:50%;color:#fff;font-size:1.1rem;font-weight:700;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;}
.ad-author-avatar img{width:100%;height:100%;object-fit:cover;}
.ad-author-name{font-weight:800;font-size:.95rem;}
.ad-author-bio{font-size:.78rem;line-height:1.7;margin-bottom:10px;}
.ad-author-actions{display:flex;gap:8px;}
.ad-facts{display:flex;flex-direction:column;gap:8px;}
.ad-fact{display:flex;gap:8px;font-size:.78rem;color:var(--tj-text);line-height:1.6;background:#fafaf8;border-radius:8px;padding:8px 10px;}
.ad-fact-num{width:18px;height:18px;border-radius:50%;background:var(--tj-gold);color:#fff;font-size:.64rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;}
.ad-next{display:flex;flex-direction:column;gap:8px;}
.ad-next-item{display:block;text-decoration:none;color:var(--tj-text);background:#fafaf8;border-radius:10px;padding:10px 12px;transition:all .15s;}
.ad-next-item:hover{background:#fff6d8;}
.ad-next-title{font-size:.82rem;font-weight:700;margin-bottom:3px;}
/* 悬浮 + Sheet */
.ad-float{position:fixed;right:24px;bottom:90px;display:flex;flex-direction:column;gap:8px;z-index:120;animation:pubFade .2s ease;}
.ad-float-btn{width:44px;height:44px;border-radius:50%;border:none;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.15);font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.ad-float-btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.2);}
.ad-sheet{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:16px 16px 0 0;max-height:70vh;overflow-y:auto;z-index:201;animation:slideUp .2s ease;}
@keyframes slideUp{from{transform:translateY(100%);}to{transform:translateY(0);}}
@media (max-width: 1000px){ .ad-page{grid-template-columns:1fr;} .ad-side{position:static;display:none;} }
@media (max-width: 560px){ .ad-card{padding:18px 16px;} .ad-title{font-size:1.3rem;} }

/* ===== 专栏频道（以“人/专栏”为中心 ===== */
.col-hero{background:linear-gradient(150deg,#f3f0ff 0%,#e9e3ff 50%,#fdf6ff 100%);border:1px solid #d8cfff;border-radius:18px;padding:26px 30px;margin-bottom:16px;}
.col-hero-badge{display:inline-flex;align-items:center;background:#fff;border:1px solid #d8cfff;color:#5f3dc4;font-size:.75rem;font-weight:700;padding:4px 12px;border-radius:100px;margin-bottom:10px;}
.col-hero-title{font-size:1.5rem;font-weight:800;margin:0 0 6px;color:#1a1a1a;}
.col-hero-title span{color:#5f3dc4;}
.col-hero-sub{font-size:.88rem;color:#7a6ea8;margin:0 0 16px;}
.col-hero-stats{display:flex;gap:28px;margin-bottom:16px;}
.col-hero-stats b{font-size:1.35rem;font-weight:800;color:#5f3dc4;display:block;}
.col-hero-stats span{font-size:.72rem;color:#999;}
.col-hero-actions{display:flex;gap:8px;}
.col-featured{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px;}
.col-feat-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

/* ============================================================================
   专栏页文字色修正 026-10-04 
   原因：本文件有「全站深色基底」把 `--txt` 设成 #e7e9f7（浅色） tj-layout 会继承它 
    `.col-feat-name` 自己没写 color（`.col-feat-desc` / `.col-feat-author` 都写了）
    白字白底，「头部推荐」那一排专栏名字整个看不见（PC 与移动端都中招） 
   ============================================================================ */
.col-feat-name{color:#171a33;}
.col-feat-card .col-meta{color:#8a8ca3;}
/* 同一类问题：侧栏「订阅榜 / 活跃专栏 / 新专栏速递」的专栏名也没写 color 
   继承到近白色  白字白底看不见（实测 computed #e7e9f7）。这里一起补上 */
.col-side-card{color:#2a2b45;}
.col-rank-name{color:#171a33;}
.col-feat-card{background:#fff;border:1px solid var(--tj-border);border-radius:16px;overflow:hidden;position:relative;display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s;}
.col-feat-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(92,60,196,.16);}
.col-feat-cover{height:110px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:2.6rem;opacity:.95;}
.col-feat-body{padding:12px 16px 10px;}
.col-feat-author{display:flex;align-items:center;gap:6px;font-size:.74rem;color:#999;margin-bottom:6px;}
.col-feat-avatar{width:22px;height:22px;border-radius:50%;color:#fff;font-size:.66rem;font-weight:700;display:flex;align-items:center;justify-content:center;}
.col-feat-name{font-size:1.05rem;font-weight:800;margin-bottom:4px;}
.col-feat-desc{font-size:.78rem;color:#999;overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-bottom:8px;}
.col-feat-meta{display:flex;gap:12px;font-size:.72rem;color:#888;}
.col-feat-btn{position:absolute;top:10px;right:10px;}
.col-main{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start;}
.col-cats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.col-cat{font-size:.82rem;padding:5px 14px;border-radius:100px;border:1px solid #e5e5e5;background:#fff;color:#666;cursor:pointer;transition:all .15s;}
.col-cat:hover{border-color:#7048e8;color:#7048e8;}
.col-cat.active{background:#7048e8;border-color:#7048e8;color:#fff;font-weight:600;}
.col-list{display:flex;flex-direction:column;gap:12px;}
.col-item{background:#fff;border:1px solid var(--tj-border);border-radius:14px;padding:16px;display:flex;gap:14px;align-items:center;transition:box-shadow .15s,transform .15s;position:relative;}
.col-item:hover{box-shadow:0 8px 24px rgba(0,0,0,.07);transform:translateY(-2px);}
.col-avatar{width:60px;height:60px;border-radius:50%;color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;}
.col-item-top{display:flex;align-items:center;gap:6px;}
.col-item-name{font-size:1.02rem;font-weight:800;}
.col-cat-badge{font-size:.66rem;color:#5f3dc4;background:#f0ecff;padding:1px 8px;border-radius:100px;}
.col-editor{font-size:.62rem;color:#fff;background:linear-gradient(90deg,#d97706,#b45309);padding:2px 8px;border-radius:4px;font-weight:600;}
.col-item-by{font-size:.74rem;color:#999;margin:2px 0 4px;}
.col-item-desc{font-size:.82rem;color:var(--tj-text-secondary);overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-bottom:6px;}
.col-item-meta{display:flex;gap:14px;font-size:.74rem;color:#999;margin-bottom:6px;}
.col-item-tags{display:flex;gap:6px;flex-wrap:wrap;}
.col-item-tags span{font-size:.68rem;color:#5f3dc4;background:#f5f2ff;padding:1px 8px;border-radius:100px;}
.col-item-sub{flex-shrink:0;align-self:flex-start;}
.col-sub-btn{border:1px solid #7048e8;color:#5f3dc4;background:#fff;border-radius:100px;padding:5px 14px;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap;}
.col-sub-btn:hover{background:#7048e8;color:#fff;}
.col-sub-btn.on{border-color:#e5e5e5;color:#999;background:#f7f7f3;}
.col-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:12px;}
.col-side-card{background:#fff;border:1px solid var(--tj-border);border-radius:14px;padding:14px;}
.col-side-title{font-weight:700;font-size:.86rem;margin-bottom:10px;}
.col-rank-item{display:flex;gap:8px;align-items:center;padding:7px 4px;border-radius:8px;}
.col-rank-item:hover{background:#f5f2ff;}
.col-rank-num{width:20px;height:20px;border-radius:6px;background:#f0ecff;color:#5f3dc4;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.col-rank-num.first{background:#fff7e6;font-size:.8rem;}
.col-rank-avatar{width:30px;height:30px;border-radius:50%;color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.col-rank-name{font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.col-tags{display:flex;flex-wrap:wrap;gap:6px;}
@media (max-width: 1000px){ .col-main{grid-template-columns:1fr;} .col-side{position:static;} .col-featured{grid-template-columns:1fr;} }
@media (max-width: 640px){ .col-hero{padding:20px 16px;} .col-hero-stats{gap:18px;} }

/* ===== 个人主页 v2（个人品牌总部 ===== */
.up-card{background:#fff;border:1px solid var(--tj-border);border-radius:16px;overflow:hidden;}
.up-cover{height:110px;}
.up-head{display:flex;gap:16px;padding:0 24px 20px;margin-top:-42px;flex-wrap:wrap;}
.up-avatar-wrap{position:relative;flex-shrink:0;}
.up-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:0 2px 12px rgba(0,0,0,.15);background:linear-gradient(135deg,var(--tj-gold),var(--tj-gold-dark));position:relative;z-index:1;}
.up-avatar-fallback{display:none;width:96px;height:96px;border-radius:50%;align-items:center;justify-content:center;font-weight:800;font-size:38px;color:#fff;background:linear-gradient(135deg,var(--tj-gold),var(--tj-gold-dark));border:4px solid #fff;position:absolute;inset:0;z-index:1;}
.up-crown{position:absolute;right:0;bottom:2px;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#D4A017,#8a6d1a);color:#fff;display:flex;align-items:center;justify-content:center;border:2px solid #fff;font-size:14px;z-index:2;}
.up-id{flex:1;min-width:260px;padding-top:48px;}
.up-name{font-size:1.5rem;font-weight:800;margin:0;}
.up-level{font-size:.76rem;font-weight:600;padding:3px 12px;border-radius:100px;background:linear-gradient(135deg,var(--tj-gold-light),var(--tj-gold));color:#7c2d12;}
.up-badge{font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:100px;}
.up-badge.master{background:#e3fafc;color:#0c8599;}
.up-badge.member{background:#e6fcf5;color:#0b7285;}
.up-bio{font-size:.88rem;color:#666;margin:8px 0 0;}
.up-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:.78rem;color:#999;}
.up-meta i{margin-right:4px;}
.up-stats{display:flex;gap:26px;margin-top:14px;}
.up-stats b{font-size:1.15rem;font-weight:800;display:block;}
.up-stats span{font-size:.7rem;color:#999;}
.up-actions{display:flex;gap:8px;padding-top:52px;flex-shrink:0;}
.up-body{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start;margin-top:16px;}
.up-tabs{display:flex;gap:2px;background:#fff;border:1px solid var(--tj-border);border-radius:12px;padding:4px;overflow-x:auto;}
.up-tab{flex-shrink:0;border:none;background:transparent;padding:8px 14px;border-radius:8px;font-size:.84rem;color:#777;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s;font-weight:400;}
.up-tab:hover{color:var(--tj-text);background:#f7f7f3;}
.up-tab.active{background:linear-gradient(135deg,var(--tj-gold-light),var(--tj-gold));color:#7c2d12;font-weight:700;}
.up-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;}
.up-col-card{background:#fff;border:1px solid var(--tj-border);border-radius:14px;padding:14px;transition:box-shadow .15s,transform .15s;}
.up-col-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.07);transform:translateY(-2px);}
.up-col-cover{height:72px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.8rem;margin-bottom:10px;}
.up-col-name{font-weight:700;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;}
.up-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:12px;}
.up-side-card{background:#fff;border:1px solid var(--tj-border);border-radius:14px;padding:14px;}
.up-side-title{font-weight:700;font-size:.86rem;margin-bottom:10px;}
.up-badges{display:flex;flex-direction:column;gap:8px;}
.up-badge-item{display:flex;gap:10px;align-items:center;}
.up-badge-icon{width:34px;height:34px;border-radius:10px;color:#7c2d12;font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.up-badge-name{font-size:.8rem;font-weight:700;}
.up-top3{display:flex;flex-direction:column;gap:6px;}
.up-top3-item{display:flex;gap:8px;align-items:center;padding:6px 4px;border-radius:8px;}
.up-top3-item:hover{background:#f5f2ff;}
.up-top3-num{width:18px;height:18px;border-radius:50%;background:var(--tj-gold);color:#fff;font-size:.64rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.up-top3-title{font-size:.78rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.up-quick-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.up-quick-item{text-align:center;padding:8px 4px;background:#fafaf8;border-radius:8px;}
.up-quick-item i{font-size:1rem;display:block;margin-bottom:4px;}
.up-quick-item b{font-size:.9rem;display:block;}
.up-quick-item span{font-size:.64rem;color:#999;}
@media (max-width: 1000px){ .up-body{grid-template-columns:1fr;} .up-side{position:static;} }
@media (max-width: 640px){ .up-head{padding:0 14px 16px;} .up-avatar{width:76px;height:76px;} .up-avatar-fallback{width:76px;height:76px;font-size:30px;} .up-id{padding-top:40px;} .up-actions{padding-top:8px;} .up-stats{gap:16px;} }

/* ===== 圈子频道 v3：综合发 Feed  ===== */
.gf-layout{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start;}
.gf-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.gf-tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--tj-border);border-radius:12px;padding:4px;}
.gf-tab{border:none;background:transparent;padding:8px 16px;border-radius:8px;font-size:.88rem;color:#777;cursor:pointer;transition:all .15s;font-weight:400;}
.gf-tab:hover{background:#f7f7f3;}
.gf-tab.active{background:linear-gradient(135deg,var(--tj-gold-light),var(--tj-gold));color:#7c2d12;font-weight:700;}
.gf-cats{display:flex;gap:4px;flex-wrap:wrap;}
.gf-cat{font-size:.78rem;padding:5px 12px;border-radius:100px;border:1px solid #e5e5e5;background:#fff;color:#666;cursor:pointer;transition:all .15s;}
.gf-cat:hover{border-color:var(--tj-gold);color:var(--tj-gold-dark);}
.gf-cat.active{background:var(--tj-gold);border-color:var(--tj-gold);color:#fff;font-weight:600;}
/* Banner */
.gf-banner{position:relative;height:120px;border-radius:14px;overflow:hidden;margin-bottom:14px;}
.gf-banner-item{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:18px;color:#fff;text-decoration:none;opacity:0;transition:opacity .5s;}
.gf-banner-item.active{opacity:1;}
.gf-banner-emoji{font-size:2.6rem;}
.gf-banner-title{font-size:1.25rem;font-weight:800;}
.gf-banner-sub{font-size:.8rem;opacity:.85;}
.gf-banner-dots{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);display:flex;gap:6px;}
.gf-banner-dots span{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;}
.gf-banner-dots span.on{background:#fff;width:18px;border-radius:4px;}
/* 精选圈子横 */
.gf-pick-wrap{margin-bottom:4px;}
.gf-picks{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;}
.gf-pick{display:flex;flex-direction:column;align-items:center;gap:3px;background:#fff;border:1px solid var(--tj-border);border-radius:14px;padding:14px 10px;width:104px;flex-shrink:0;transition:transform .15s;}
.gf-pick:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.07);}
.gf-pick-avatar{width:48px;height:48px;border-radius:50%;color:#fff;font-size:1.2rem;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.gf-pick-avatar img{width:100%;height:100%;object-fit:cover;}
.gf-pick-name{font-size:.78rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:88px;}
.gf-pick-btn{font-size:.66rem;padding:3px 10px;border-radius:100px;border:1px solid var(--tj-gold);color:var(--tj-gold-dark);background:#fff;cursor:pointer;transition:all .15s;}
.gf-pick-btn:hover{background:var(--tj-gold);color:#fff;}
.gf-pick-btn.joined{border-color:#e5e5e5;color:#999;background:#f7f7f3;cursor:default;}
/* 信息 */
.gf-feed{display:flex;flex-direction:column;gap:12px;}
.gf-post{transition:box-shadow .15s,transform .15s;}
.gf-post:hover{box-shadow:0 8px 24px rgba(0,0,0,.07);transform:translateY(-1px);}
.gf-avatar{width:34px;height:34px;border-radius:50%;color:#fff;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;text-decoration:none;}
.gf-imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:10px;}
.gf-imgs img{width:100%;height:110px;object-fit:cover;border-radius:8px;cursor:pointer;transition:transform .15s;}
.gf-imgs img:hover{transform:scale(1.02);}
.gf-imgs.one{grid-template-columns:1fr;}
.gf-imgs.one img{height:220px;}
.gf-imgs.two{grid-template-columns:1fr 1fr;}
.gf-imgs.grid{grid-template-columns:repeat(2,1fr);}
.gf-imgs.grid img{height:140px;}
.gf-group{border-left:4px solid var(--tj-gold);}
.gf-loadmore{height:40px;display:flex;align-items:center;justify-content:center;margin-top:8px;}
.gf-loadmore .spinner.sm{width:22px;height:22px;}
/* 右侧 */
.gf-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:12px;}
.gf-rank{display:flex;flex-direction:column;gap:2px;}
.gf-rank-item{display:flex;gap:8px;align-items:center;padding:7px 4px;border-radius:8px;}
.gf-rank-item:hover{background:#f7f7f3;}
.gf-rank-num{width:20px;height:20px;border-radius:6px;background:#f0ecff;color:#5f3dc4;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.gf-rank-num.first{background:#fff7e6;font-size:.8rem;}
.gf-rank-name{font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px;}
.gf-rank-btn{width:22px;height:22px;border-radius:50%;border:1px solid var(--tj-gold);color:var(--tj-gold-dark);background:#fff;font-size:.72rem;cursor:pointer;flex-shrink:0;line-height:1;}
.gf-rank-btn:hover{background:var(--tj-gold);color:#fff;}
.gf-rank-btn.joined{border-color:#e5e5e5;color:#999;background:#f7f7f3;cursor:default;}
.gf-rec{display:flex;flex-direction:column;gap:8px;}
.gf-rec-item{display:flex;gap:8px;align-items:center;padding:6px 4px;border-bottom:1px dashed #f2f2f0;}
.gf-rec-item:last-child{border-bottom:none;}
.gf-rec-name{font-size:.8rem;font-weight:600;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gf-rec-btn{font-size:.68rem;padding:3px 10px;border-radius:100px;border:1px solid var(--tj-gold);color:var(--tj-gold-dark);background:#fff;cursor:pointer;flex-shrink:0;transition:all .15s;}
.gf-rec-btn:hover{background:var(--tj-gold);color:#fff;}
.gf-rec-btn.joined{border-color:#e5e5e5;color:#999;background:#f7f7f3;cursor:default;}
.gf-ad{display:block;border-radius:14px;overflow:hidden;}
.gf-ad-inner{background:linear-gradient(135deg,#fef9e7,#fdf3d0);border:1px solid #ffe8a3;border-radius:14px;padding:16px;text-align:center;color:#7c2d12;}
.gf-ad-inner i{font-size:1.5rem;color:var(--tj-gold-dark);display:block;margin-bottom:6px;}
.gf-ad-inner b{display:block;font-size:.95rem;}
.gf-ad-inner span{font-size:.72rem;color:#b08a3e;}
.gf-top-btn{position:fixed;right:26px;bottom:90px;width:42px;height:42px;border-radius:50%;border:none;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.15);color:var(--tj-gold-dark);font-size:1rem;cursor:pointer;z-index:120;transition:all .15s;}
.gf-top-btn:hover{transform:translateY(-2px);}
@media (max-width: 1000px){ .gf-layout{grid-template-columns:1fr;} .gf-side{position:static;} }

/* ===== 首页 V2.0：实战动态流 ===== */
.hf-pub-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--tj-gold),var(--tj-gold-dark));color:#fff;font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.hf-pub-input{border:1px solid #e5e5e5;background:#fff;border-radius:12px;padding:0 18px;color:#999;flex:1;text-align:left;font-size:.88rem;cursor:pointer;transition:all .15s;height:46px;line-height:46px;box-shadow:0 1px 2px rgba(0,0,0,.03);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hf-pub-input:hover{border-color:var(--tj-gold);background:#fffdf5;}
.hf-pub-send{width:46px;height:46px;border-radius:12px;border:1px solid var(--tj-gold);background:linear-gradient(135deg,var(--tj-gold),var(--tj-gold-dark));color:#fff;font-size:1.1rem;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.hf-pub-send:hover{filter:brightness(1.05);transform:translateY(-1px);}
.hf-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
.hf-top-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.hf-title-main{font-size:1.2rem;font-weight:800;margin:0;}
.hf-active{font-size:.78rem;color:#b08a3e;background:#fff6d8;padding:4px 12px;border-radius:100px;}
.hf-active b{color:#b45309;font-size:.9rem;}
.hf-filter{display:flex;gap:6px;}
.hf-filter-btn{border:1px solid var(--tj-border);background:#fff;border-radius:100px;padding:6px 16px;font-size:.8rem;color:#777;cursor:pointer;transition:all .15s;font-weight:500;}
.hf-filter-btn:hover{border-color:var(--tj-gold);color:var(--tj-gold-dark);}
.hf-filter-btn.active{background:linear-gradient(135deg,var(--tj-gold),var(--tj-gold-dark));border-color:var(--tj-gold);color:#fff;font-weight:700;}
.hf-sec-title{font-weight:700;font-size:.9rem;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.hf-featured{margin-bottom:14px;}
.hf-featured .hf-post{background:#fffdf5;border:1px solid #ffe8a3;}
.hf-battle{display:flex;align-items:center;gap:10px;background:linear-gradient(90deg,#f0ecff,#faf5ff);border:1px solid #e0d6ff;border-radius:12px;padding:10px 16px;margin-bottom:14px;overflow:hidden;}
.hf-battle-icon{font-size:1.1rem;flex-shrink:0;}
.hf-battle-ticker{flex:1;overflow:hidden;height:22px;position:relative;}
.hf-battle-item{position:absolute;top:0;left:0;white-space:nowrap;font-size:.8rem;color:#5f3dc4;opacity:0;transform:translateY(8px);transition:all .4s;max-width:100%;overflow:hidden;text-overflow:ellipsis;}
.hf-battle-item.on{opacity:1;transform:translateY(0);}
.hf-main{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start;}
.hf-feed{display:flex;flex-direction:column;gap:12px;}
.hf-post{background:#fff;border:1px solid var(--tj-border);border-radius:14px;padding:16px 18px;transition:box-shadow .15s,transform .15s;}
.hf-post:hover{box-shadow:0 8px 24px rgba(0,0,0,.07);transform:translateY(-1px);}
.hf-post-head{display:flex;gap:10px;align-items:center;margin-bottom:10px;}
.hf-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#1e88e5,#1565c0);color:#fff;font-size:.85rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;text-decoration:none;}
.hf-group-tag{font-size:.68rem;color:#0ca678;background:#e6fcf5;padding:1px 8px;border-radius:100px;margin-left:6px;}
.hf-badges{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto;}
.hf-badge{font-size:.64rem;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap;}
.hf-badge.hl{background:#d3f9d8;color:#087f5b;}
.hf-badge.fd{background:#fff3bf;color:#b45309;}
.hf-badge.diag{background:#ffe8cc;color:#d9480f;}
.hf-title{display:block;font-weight:700;font-size:.98rem;color:var(--tj-text);margin-bottom:6px;}
.hf-title:hover{color:var(--tj-gold-dark);}
.hf-content{font-size:.84rem;color:var(--tj-text-secondary);margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.6;}
.hf-data{display:flex;gap:14px;flex-wrap:wrap;background:#fafaf8;border:1px dashed #eee;border-radius:8px;padding:8px 12px;margin-bottom:10px;}
.hf-phase{font-size:.76rem;color:var(--tj-gold-dark);font-weight:600;}
.hf-metric{font-size:.76rem;color:#666;}
.hf-metric b{color:#e8744a;font-weight:700;}
.hf-imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:10px;}
.hf-imgs img{width:100%;height:110px;object-fit:cover;border-radius:8px;}
.hf-imgs:has(img:nth-child(1):last-child){grid-template-columns:1fr;}
.hf-imgs:has(img:nth-child(1):last-child) img{height:200px;}
.hf-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.hf-tags span{font-size:.7rem;color:#5f3dc4;background:#f5f2ff;padding:1px 9px;border-radius:100px;}
.hf-actions{display:flex;gap:18px;color:#999;font-size:.78rem;border-top:1px solid #f5f5f5;padding-top:10px;}
.hf-action{display:flex;align-items:center;gap:4px;background:none;border:none;color:#999;font-size:.78rem;cursor:pointer;padding:2px 4px;}
.hf-action:hover{color:var(--tj-gold-dark);}
.hf-recommend.ok{color:#0ca678;font-weight:700;}
.hf-ad{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#fef9e7,#fdf3d0);border:1px solid #ffe8a3;border-radius:12px;padding:14px 18px;margin:4px 0;}
.hf-ad-emoji{font-size:1.6rem;}
.hf-ad-title{font-weight:700;font-size:.9rem;color:#7c2d12;}
.hf-ad-sub{font-size:.74rem;color:#b08a3e;}
.hf-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:12px;}
.hf-topics{display:flex;flex-direction:column;gap:6px;}
.hf-topic{display:flex;gap:8px;align-items:center;padding:6px 4px;border-radius:8px;font-size:.8rem;}
.hf-topic:hover{background:#f7f7f3;}
.hf-topic-num{width:18px;height:18px;border-radius:50%;background:var(--tj-gold);color:#fff;font-size:.64rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.hf-topic-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hf-rank{display:flex;flex-direction:column;gap:6px;}
.hf-rank-item{display:flex;gap:8px;align-items:center;padding:6px 4px;border-radius:8px;}
.hf-rank-item:hover{background:#f7f7f3;}
.hf-rank-name{font-size:.8rem;font-weight:600;}
.hf-hotgroups{display:flex;flex-direction:column;gap:8px;}
.hf-hotgroup{display:flex;align-items:center;padding:6px 4px;border-radius:8px;font-size:.8rem;}
.hf-hotgroup:hover{background:#f7f7f3;}
.hf-hotgroup-name{font-weight:600;}
@media (max-width: 768px){ .hf-main{grid-template-columns:1fr;} .hf-side{position:static;} }

/* ===== 精华资料 ===== */
.lib-hero{background:linear-gradient(135deg,#f0ecff 0%,#e6e0ff 50%,#fdf6ff 100%);border:1px solid #d8cfff;border-radius:16px;padding:22px 28px;margin-bottom:16px;}
.lib-hero-badge{display:inline-flex;align-items:center;background:#fff;border:1px solid #d8cfff;color:#5f3dc4;font-size:.72rem;font-weight:700;padding:3px 12px;border-radius:100px;margin-bottom:8px;}
.lib-hero-title{font-size:1.4rem;font-weight:800;margin:0 0 4px;}
.lib-hero-sub{font-size:.85rem;color:#7a6ea8;margin:0;}
.lib-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:16px;}
.lib-cat{border:1px solid var(--tj-border);background:#fff;border-radius:12px;padding:12px 14px;display:flex;gap:10px;align-items:center;cursor:pointer;text-align:left;transition:all .15s;}
.lib-cat:hover{border-color:#7048e8;transform:translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,.06);}
.lib-cat.active{border-color:#7048e8;background:#f8f6ff;box-shadow:0 0 0 2px rgba(112,72,232,.12);}
.lib-cat-icon{width:38px;height:38px;border-radius:10px;background:#f5f2ff;color:#5f3dc4;font-size:1.1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.lib-cat.all .lib-cat-icon{background:var(--tj-gold-light);color:var(--tj-gold-dark);}
.lib-cat b{display:block;font-size:.88rem;}
.lib-cat span:last-child{display:block;font-size:.68rem;color:#999;margin-top:2px;}
.lib-list{display:flex;flex-direction:column;gap:12px;}
.lib-post{background:#fff;border:1px solid var(--tj-border);border-radius:14px;padding:16px 18px;transition:box-shadow .15s,transform .15s;}
.lib-post:hover{box-shadow:0 8px 24px rgba(0,0,0,.07);transform:translateY(-1px);}
.lib-badge{font-size:.64rem;font-weight:700;padding:2px 8px;border-radius:4px;background:#d3f9d8;color:#087f5b;white-space:nowrap;}

/* 推荐理由 */
.wb-reason{font-size:.72rem;color:#b45309;background:#fff8e1;border:1px dashed #f5c518;border-radius:6px;padding:2px 8px;display:inline-block;margin-bottom:6px;}

/* ===== 发布 v2（三层结构：输入 / 工具图标 圈子下拉+发想 / 底部发布模式 Tab ===== */
.pub2{padding:0;overflow:hidden;}
.pub2-row1{display:flex;gap:12px;align-items:flex-start;padding:16px 18px 12px;}
.pub2-textarea{flex:1;border:none;outline:none;resize:none;font-size:.9rem;line-height:1.6;min-height:52px;max-height:220px;background:transparent;color:var(--tj-text);font-family:inherit;padding:2px 0;}
.pub2-textarea::placeholder{color:#b8b8b8;}
.pub2-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 18px;border-top:1px solid #f2f2f0;flex-wrap:nowrap;}
.pub2-icons{display:flex;gap:2px;align-items:center;overflow-x:auto;scrollbar-width:none;min-width:0;flex:1;}
.pub2-icons::-webkit-scrollbar{display:none;}
.pub2-icon{width:34px;height:34px;border:none;background:transparent;border-radius:8px;color:#6b6b6b;font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s;}
.pub2-icon:hover{background:#f5f5f3;color:var(--tj-gold-dark);}
.pub2-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.pub2-group{display:inline-flex;align-items:center;gap:4px;border:1px dashed #d9c27a;background:#fffdf5;color:#8a6d1a;font-size:.78rem;font-weight:600;padding:5px 12px;border-radius:100px;cursor:pointer;transition:all .15s;white-space:nowrap;}
.pub2-group:hover{border-style:solid;background:#fff6d8;}
.pub2-group.active{background:#ffe97a;border-style:solid;color:#7c2d12;}
.pub2-submit{border:none;background:#1772f6;color:#fff;font-size:.82rem;font-weight:600;padding:7px 20px;border-radius:100px;cursor:pointer;transition:all .2s;white-space:nowrap;box-shadow:0 2px 8px rgba(23,114,246,.25);}
.pub2-submit:hover{background:#0a5fd8;transform:translateY(-1px);box-shadow:0 4px 12px rgba(23,114,246,.32);}
.pub2-submit:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none;}
.pub2-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #f2f2f0;background:#fcfcfa;}
.pub2-tab{display:flex;align-items:center;justify-content:center;gap:6px;border:none;background:transparent;padding:10px 4px;font-size:.83rem;color:#888;cursor:pointer;transition:all .15s;border-top:2px solid transparent;margin-top:-1px;white-space:nowrap;}
.pub2-tab:hover{color:#333;background:#f7f7f5;}
.pub2-tab.active{color:var(--tj-gold-dark);font-weight:700;border-top-color:var(--tj-gold);background:#fffdf5;}
.pub2-tab i{font-size:1rem;}
@media (max-width: 640px){ .pub2-toolbar{padding:8px 12px;} .pub2-group span, .pub2-group{font-size:.72rem;} .pub2-submit{padding:6px 14px;} }

/* 知乎同款发布框补充：富文本编辑器 */
.pub2-editor-wrap{flex:1;min-width:0;}
.pub2-editor{min-height:56px;max-height:260px;overflow-y:auto;outline:none;font-size:.92rem;line-height:1.7;color:var(--tj-text);padding:6px 2px;word-break:break-word;}
.pub2-editor:empty:before{content:attr(data-placeholder);color:#b8b8b8;pointer-events:none;}
.pub2-editor b{font-weight:700;}
.pub2-editor i{font-style:italic;}
.pub2-editor blockquote{border-left:3px solid #d9d9d9;margin:6px 0;padding:4px 12px;color:#8a8a8a;background:#fafaf8;border-radius:0 6px 6px 0;}
.pub2-strong b{font-size:1rem;font-weight:800;font-family:Georgia,serif;}
.pub2-italic i{font-size:1.05rem;font-style:italic;font-family:Georgia,serif;}
.pub2-divider{width:1px;height:18px;background:#ececec;margin:0 6px;flex-shrink:0;}
.pub2-editor:focus{color:var(--tj-text);}
.pub2-row1:focus-within .pub2-editor:empty:before{color:#a0a0a0;}

/* #话题 蓝色标签（输 #xx 自动高亮，微 知乎式） */
.pub2-tag{color:#1772f6;background:rgba(23,114,246,.08);border-radius:4px;padding:0 3px;cursor:pointer;font-weight:600;}
.pub2-tag:hover{background:rgba(23,114,246,.16);}
.pub2-tag-tip{display:inline-flex;align-items:center;gap:2px;font-size:.68rem;color:#a5a5a5;white-space:nowrap;flex-shrink:0;}
@media (max-width: 640px){ .pub2-tag-tip{display:none;} }

/* 精华资料库：来源徽标 */
.lib-src{display:inline-flex;align-items:center;font-size:.64rem;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap;}
.lib-src.fd{background:#fff0d6;color:#b45309;}
.lib-src.hl{background:#fff0d6;color:#b45309;}
.lib-src.hot{background:#fee2e2;color:#dc2626;}
.lib-src.rc{background:#e0ecff;color:#1e40af;}
.lib-hero-th{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;color:#8a7a5a;background:rgba(255,255,255,.8);border:1px solid #ffe8a3;border-radius:100px;padding:4px 14px;margin-top:8px;}
.lib-hero-th b{color:#dc2626;}

/* ===== 精华资料 V2.0 门户 ===== */
.lib-hero{background:linear-gradient(135deg,#fdf6f0 0%,#f0ecff 55%,#e6e0ff 100%);border:1px solid #e8ddf5;border-radius:16px;padding:24px 28px 20px;margin-bottom:14px;position:relative;overflow:hidden;}
.lib-hero::before{content:'';position:absolute;right:-50px;top:-50px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(232,116,74,.15),transparent 70%);}
.lib-hero-badge{display:inline-flex;align-items:center;background:#fff;border:1px solid #e8ddf5;color:#5f3dc4;font-size:.72rem;font-weight:700;padding:3px 12px;border-radius:100px;margin-bottom:8px;}
.lib-hero-title{font-size:1.4rem;font-weight:800;margin:0 0 4px;}
.lib-hero-sub{font-size:.85rem;color:#7a6ea8;margin:0 0 14px;}
.lib-hero-stats{display:flex;gap:24px;}
.lib-hero-stat{display:flex;align-items:baseline;gap:6px;}
.lib-hero-stat b{font-size:1.3rem;color:#e8744a;font-weight:800;}
.lib-hero-stat span{font-size:.75rem;color:#8a7a5a;}
.lib-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #eeeef0;border-radius:12px;padding:10px 16px;margin-bottom:14px;flex-wrap:wrap;}
.lib-tabs{display:flex;gap:2px;}
.lib-tab{border:none;background:transparent;padding:7px 14px;font-size:.88rem;color:#888;cursor:pointer;border-bottom:2px solid transparent;font-weight:500;transition:all .15s;}
.lib-tab:hover{color:#333;}
.lib-tab.active{color:#e8744a;font-weight:700;border-bottom-color:#e8744a;}
.lib-search{position:relative;display:flex;align-items:center;gap:6px;border:1px solid #e5e5e5;border-radius:100px;padding:6px 14px;width:280px;background:#fafaf8;}
.lib-search:focus-within{border-color:#e8744a;background:#fff;box-shadow:0 0 0 3px rgba(232,116,74,.08);}
.lib-search i{color:#999;font-size:.85rem;}
.lib-search input{border:none;outline:none;flex:1;font-size:.84rem;background:transparent;min-width:0;}
.lib-search-clear{border:none;background:none;color:#bbb;cursor:pointer;padding:0 2px;}
.lib-suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.12);z-index:100;padding:8px;max-height:320px;overflow-y:auto;}
.lib-suggest-group{padding:4px 0;}
.lib-suggest-title{font-size:.7rem;color:#999;font-weight:700;padding:2px 8px;display:flex;align-items:center;gap:4px;}
.lib-suggest-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;font-size:.84rem;color:#333;text-decoration:none;}
.lib-suggest-item:hover{background:#f7f7f5;}
.lib-suggest-count,.lib-suggest-lib{margin-left:auto;font-size:.7rem;color:#aaa;}
.lib-suggest-all{width:100%;border:none;background:#fff6f0;color:#e8744a;font-size:.8rem;font-weight:600;padding:7px;border-radius:8px;cursor:pointer;margin-top:4px;}
.lib-suggest-all:hover{background:#ffe9de;}
.lib-sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.lib-sec-title{font-size:.98rem;font-weight:800;}
.lib-sec-sub{font-size:.72rem;color:#aaa;}
.lib-tools{display:flex;gap:8px;}
.lib-select{border:1px solid #e5e5e5;border-radius:8px;padding:5px 10px;font-size:.8rem;color:#555;background:#fff;outline:none;cursor:pointer;}
.lib-rec-section{margin-bottom:16px;}
.lib-rec-scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none;}
.lib-rec-scroll::-webkit-scrollbar{display:none;}
.lib-rec{flex-shrink:0;width:250px;background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:14px;display:flex;gap:10px;align-items:center;transition:all .18s;position:relative;}
.lib-rec:hover{border-color:#e8744a;transform:translateY(-2px);box-shadow:0 8px 20px rgba(232,116,74,.12);}
.lib-rec-icon{width:44px;height:44px;border-radius:12px;background:#f7f7f5;display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0;}
.lib-rec-body{flex:1;min-width:0;}
.lib-rec-name{font-size:.9rem;font-weight:700;color:#1a1a2e;margin-bottom:2px;}
.lib-rec-desc{font-size:.72rem;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px;}
.lib-rec-meta{display:flex;gap:8px;font-size:.72rem;color:#888;}
.lib-rec-meta b{color:#e8744a;}
.lib-rec-week{color:#dc2626;font-weight:600;}
.lib-rec-enter{position:absolute;right:10px;bottom:8px;font-size:.7rem;color:#e8744a;font-weight:700;opacity:0;transition:opacity .18s;}
.lib-rec:hover .lib-rec-enter{opacity:1;}
.lib-rec-more{flex-shrink:0;width:80px;border:1px dashed #ddd;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#bbb;font-size:.75rem;text-decoration:none;gap:4px;transition:all .18s;}
.lib-rec-more:hover{border-color:#e8744a;color:#e8744a;}
.lib-section{margin-bottom:16px;background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:16px;}
.lib-grid-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;}
.lib-grid{border:1px solid #eeeef0;border-radius:14px;padding:16px 14px;text-align:center;transition:all .18s;background:#fff;}
.lib-grid:hover{border-color:#e8744a;transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.06);}
.lib-grid-icon{width:48px;height:48px;border-radius:12px;background:#f7f7f5;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 8px;}
.lib-grid-name{font-size:.92rem;font-weight:700;color:#1a1a2e;margin-bottom:2px;}
.lib-grid-desc{font-size:.72rem;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px;}
.lib-grid-meta{display:flex;flex-direction:column;gap:2px;font-size:.7rem;color:#bbb;}
.lib-grid-count{color:#e8744a;font-weight:600;}
.lib-latest{border-top:1px solid #f0f0f2;}
.lib-latest-item{padding:12px 4px;border-bottom:1px solid #f0f0f2;}
.lib-latest-item:last-child{border-bottom:none;}
.lib-latest-title{font-size:.9rem;font-weight:600;color:#1a1a2e;display:block;margin-bottom:4px;}
.lib-latest-title:hover{color:#e8744a;}
.lib-latest-meta{display:flex;gap:14px;font-size:.75rem;color:#999;align-items:center;flex-wrap:wrap;}
.lib-empty{padding:36px;text-align:center;color:#999;font-size:.85rem;}
.lib-loadmore{padding:14px;text-align:center;}

/* 详情 */
.libd-head{background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:18px 20px;margin-bottom:14px;}
.libd-back{font-size:.8rem;color:#888;text-decoration:none;display:inline-flex;align-items:center;margin-bottom:10px;}
.libd-back:hover{color:#e8744a;}
.libd-info{display:flex;gap:14px;align-items:flex-start;}
.libd-icon{width:56px;height:56px;border-radius:14px;background:#f7f7f5;display:flex;align-items:center;justify-content:center;font-size:1.8rem;flex-shrink:0;}
.libd-name{font-size:1.15rem;font-weight:800;margin:0 0 4px;display:flex;align-items:center;gap:8px;}
.libd-count{font-size:.75rem;color:#e8744a;background:#fff6f0;padding:2px 10px;border-radius:100px;font-weight:600;}
.libd-desc{font-size:.83rem;color:#888;margin:0 0 8px;}
.libd-meta{display:flex;gap:14px;font-size:.75rem;color:#999;align-items:center;flex-wrap:wrap;}
.libd-cat{background:#f0ecff;color:#5f3dc4;padding:2px 10px;border-radius:100px;font-weight:600;}
.libd-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.libd-list{display:flex;flex-direction:column;background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:4px 16px;}
.libd-item{padding:12px 0;border-bottom:1px solid #f0f0f2;}
.libd-item:last-child{border-bottom:none;}
.libd-item-title{font-size:.9rem;font-weight:600;color:#1a1a2e;display:block;margin-bottom:4px;}
.libd-item-title:hover{color:#e8744a;}
.libd-item-meta{display:flex;gap:12px;font-size:.74rem;color:#999;align-items:center;flex-wrap:wrap;}
.libd-tag{color:#1772f6;background:rgba(23,114,246,.08);padding:1px 8px;border-radius:100px;font-weight:600;}
@media (max-width: 768px){ .lib-topbar{flex-direction:column;align-items:stretch;} .lib-search{width:100%;} .lib-grid-wrap{grid-template-columns:repeat(2,1fr);} .lib-hero-stats{gap:16px;} }

/* ============================================================
   AI-Hub 频道（AI项目超市 + Skill技能超市）
   ============================================================ */
.aihub{min-width:0;}
/* ---- Hero ---- */
.ai-hero{background:linear-gradient(135deg,#1a1a2e 0%,#2d2d3a 55%,#3a2a22 100%);border-radius:16px;padding:26px 28px;margin-bottom:16px;color:#fff;position:relative;overflow:hidden;}
.ai-hero::after{content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;background:radial-gradient(circle,rgba(232,116,74,.35),transparent 70%);pointer-events:none;}
.ai-hero-badge{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;color:#ffd9c9;background:rgba(232,116,74,.18);border:1px solid rgba(232,116,74,.4);padding:4px 12px;border-radius:100px;margin-bottom:10px;}
.ai-hero-title{font-size:1.5rem;font-weight:800;margin:0 0 6px;}
.ai-hero-sub{font-size:.85rem;color:rgba(255,255,255,.65);margin:0;max-width:560px;}
/* ---- Topbar: tabs + search ---- */
.ai-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap;background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:8px 12px;}
.ai-tabs{display:flex;gap:4px;}
.ai-tab{border:none;background:transparent;padding:8px 16px;border-radius:10px;font-size:.9rem;font-weight:600;color:#666;cursor:pointer;transition:all .18s;}
.ai-tab:hover{background:#f7f7f5;color:#1a1a2e;}
.ai-tab.active{background:#fff4ef;color:#e8744a;}
.ai-search{position:relative;display:flex;align-items:center;background:#f7f7f5;border:1px solid #eeeef0;border-radius:100px;padding:0 14px;min-width:220px;flex:0 1 280px;}
.ai-search>i{color:#bbb;margin-right:8px;}
.ai-search input{border:none;background:transparent;outline:none;padding:8px 0;font-size:.85rem;width:100%;color:#1a1a2e;}
.ai-search-clear{border:none;background:none;color:#bbb;cursor:pointer;padding:2px;}
.ai-suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid #eeeef0;border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.1);z-index:99;padding:6px;max-height:320px;overflow:auto;}
.ai-suggest-item{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;font-size:.85rem;color:#1a1a2e;text-decoration:none;}
.ai-suggest-item:hover{background:#f7f7f5;}
.ai-suggest-meta{margin-left:auto;font-size:.72rem;color:#bbb;}
.ai-suggest-empty{padding:16px;text-align:center;color:#999;font-size:.8rem;}
.ai-suggest-all{width:100%;border:none;background:none;text-align:left;padding:9px 12px;color:#e8744a;font-weight:600;font-size:.82rem;cursor:pointer;border-top:1px solid #f5f5f5;margin-top:2px;}
.ai-suggest-all:hover{background:#fff6f0;}
/* ---- Layout two column ---- */
.ai-layout{display:flex;gap:16px;align-items:flex-start;}
.ai-main{flex:1;min-width:0;}
.ai-side{width:280px;flex-shrink:0;position:sticky;top:70px;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 90px);overflow-y:auto;padding-right:2px;}
.ai-side::-webkit-scrollbar{width:4px;}
.ai-side::-webkit-scrollbar-thumb{background:#eee;border-radius:4px;}
/* ---- Section head ---- */
.ai-sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.ai-sec-title{font-size:.98rem;font-weight:700;color:#1a1a2e;}
.ai-sec-sub{font-size:.72rem;color:#bbb;}
/* ---- Official recommend (horizontal scroll 220x130) ---- */
.ai-rec-section{background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:16px;margin-bottom:16px;}
.ai-rec-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px;}
.ai-rec-scroll::-webkit-scrollbar{height:5px;}
.ai-rec-scroll::-webkit-scrollbar-thumb{background:#eee;border-radius:4px;}
.ai-rec{flex-shrink:0;width:220px;height:130px;border:1px solid #f0e8e2;border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;position:relative;overflow:hidden;background:linear-gradient(160deg,#fff 60%,#fff6f0);transition:all .2s;}
.ai-rec:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(232,116,74,.14);border-color:#e8b49a;}
.ai-rec-head{display:flex;align-items:center;gap:6px;margin-bottom:8px;}
.ai-rec-star{font-size:.68rem;color:#b8860b;background:#fff7e0;padding:2px 8px;border-radius:100px;font-weight:700;}
.ai-rec-name{font-size:.92rem;font-weight:700;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ai-rec-desc{font-size:.74rem;color:#999;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ai-rec-enter{margin-top:auto;font-size:.76rem;color:#e8744a;font-weight:600;display:inline-flex;align-items:center;gap:4px;}
.ai-rec-more{flex-shrink:0;width:90px;height:130px;border:1px dashed #ddd;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#bbb;font-size:.75rem;text-decoration:none;gap:4px;transition:all .18s;}
.ai-rec-more:hover{border-color:#e8744a;color:#e8744a;}
/* ---- Filter bar ---- */
.ai-filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.ai-select{border:1px solid #eeeef0;background:#fff;border-radius:8px;padding:7px 10px;font-size:.82rem;color:#555;cursor:pointer;outline:none;}
.ai-select:hover{border-color:#e8b49a;}
.ai-filter-tag{display:inline-flex;align-items:center;gap:6px;background:#fff4ef;color:#e8744a;border-radius:100px;padding:4px 12px;font-size:.78rem;font-weight:600;cursor:pointer;}
.ai-view-switch{display:flex;border:1px solid #eeeef0;border-radius:8px;overflow:hidden;margin-left:auto;}
.ai-view-switch button{border:none;background:#fff;padding:6px 10px;color:#999;cursor:pointer;font-size:.85rem;}
.ai-view-switch button.active{background:#1a1a2e;color:#fff;}
/* ---- Card grid 280x270 ---- */
.ai-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;}
.ai-card{background:#fff;border:1px solid #eeeef0;border-radius:14px;overflow:hidden;transition:all .2s;display:flex;flex-direction:column;}
.ai-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.09);border-color:#e8b49a;}
.ai-card-cover{position:relative;display:block;height:140px;overflow:hidden;background:#f7f7f5;}
.ai-card-cover img{width:100%;height:100%;object-fit:cover;transition:transform .3s;}
.ai-card:hover .ai-card-cover img{transform:scale(1.05);}
.ai-badge-official{position:absolute;top:8px;left:8px;font-size:.66rem;color:#fff;background:linear-gradient(135deg,#f5a623,#e8744a);padding:2px 8px;border-radius:100px;font-weight:700;box-shadow:0 2px 8px rgba(232,116,74,.35);z-index:2;}
.ai-badge-official.sm{position:static;display:inline-block;}
.ai-badge-official.lg{top:14px;left:14px;font-size:.78rem;padding:4px 12px;}
.ai-badge-perm{position:absolute;top:8px;right:8px;font-size:.64rem;padding:2px 8px;border-radius:100px;font-weight:700;z-index:2;box-shadow:0 2px 6px rgba(0,0,0,.12);}
.ai-badge-perm.sm{position:static;display:inline-block;}
.ai-badge-perm.lg{top:14px;right:14px;font-size:.78rem;padding:4px 12px;}
.perm-free{color:#fff;background:#00b87a;}
.perm-member{color:#7a4d00;background:#ffe9b3;}
.perm-compute{color:#fff;background:linear-gradient(135deg,#e8744a,#f5a623);}
.ai-status{position:absolute;bottom:8px;left:8px;font-size:.64rem;padding:2px 8px;border-radius:100px;font-weight:700;z-index:2;}
.st-pending{color:#8a6d00;background:#fff7d6;}
.st-approved{color:#007a4d;background:#d8f7ea;}
.st-rejected{color:#b02a2a;background:#ffe1e1;}
.ai-card-body{padding:12px 14px 14px;display:flex;flex-direction:column;flex:1;}
.ai-card-title{font-size:.95rem;font-weight:600;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ai-card-title:hover{color:#e8744a;}
.ai-card-desc{font-size:.78rem;color:#999;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ai-card-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
.ai-tag{font-size:.7rem;font-weight:600;color:#e8744a;background:#fff4ef;padding:1px 8px;border-radius:100px;}
.ai-tag.chip{display:inline-flex;align-items:center;gap:4px;}
.ai-tag.chip i{cursor:pointer;font-size:.62rem;}
.ai-card-meta{display:flex;align-items:center;justify-content:space-between;margin-top:10px;font-size:.72rem;color:#bbb;}
.ai-card-user{display:inline-flex;align-items:center;gap:5px;color:#999;}
.ai-user-avatar{width:18px;height:18px;border-radius:50%;object-fit:cover;display:inline-block;vertical-align:middle;}
.ai-user-avatar.lg{width:38px;height:38px;}
.ai-user-avatar.lg.placeholder{display:inline-flex;align-items:center;justify-content:center;background:#f0f0f0;color:#bbb;font-size:1.1rem;}
.ai-card-stats{display:inline-flex;align-items:center;gap:5px;}
.ai-card-stats i{font-size:.72rem;}
.ai-card-btn{margin-top:12px;text-align:center;background:linear-gradient(135deg,#e8744a,#f0835c);color:#fff;border-radius:8px;padding:8px 0;font-size:.8rem;font-weight:600;text-decoration:none;transition:all .2s;display:block;}
.ai-card-btn:hover{filter:brightness(1.08);box-shadow:0 6px 14px rgba(232,116,74,.3);}
.ai-card-btn.sm{display:inline-block;padding:4px 12px;font-size:.72rem;margin-top:0;border-radius:6px;}
/* ---- List view ---- */
.ai-list{display:flex;flex-direction:column;background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:4px 16px;}
.ai-list-card{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid #f0f0f2;align-items:center;}
.ai-list-card:last-child{border-bottom:none;}
.ai-list-thumb{width:60px;height:60px;border-radius:10px;overflow:hidden;flex-shrink:0;background:#f7f7f5;}
.ai-list-thumb img{width:100%;height:100%;object-fit:cover;}
.ai-list-main{flex:1;min-width:0;}
.ai-list-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ai-list-title{font-size:.9rem;font-weight:600;color:#1a1a2e;text-decoration:none;}
.ai-list-title:hover{color:#e8744a;}
.ai-list-desc{font-size:.76rem;color:#999;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ai-list-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px;gap:10px;flex-wrap:wrap;}
.ai-list-meta{display:flex;align-items:center;gap:14px;font-size:.72rem;color:#bbb;}
/* ---- Empty / loadmore ---- */
.ai-empty{padding:60px 20px;text-align:center;color:#999;font-size:.88rem;background:#fff;border:1px solid #eeeef0;border-radius:14px;}
.ai-empty-emoji{font-size:2.4rem;margin-bottom:10px;}
.ai-loadmore{padding:14px;text-align:center;}
.ai-mine-note{display:flex;gap:18px;background:#fff;border:1px solid #eeeef0;border-radius:12px;padding:12px 16px;margin-top:14px;font-size:.82rem;color:#666;flex-wrap:wrap;}
.ai-mine-note-item b{color:#e8744a;margin-right:4px;}
/* ---- Sidebar modules ---- */
.ai-side-mod{background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:14px 16px;}
.ai-side-mod-head{font-size:.88rem;font-weight:700;color:#1a1a2e;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.ai-side-more{font-size:.7rem;color:#bbb;text-decoration:none;font-weight:400;white-space:nowrap;}
.ai-side-more:hover{color:#e8744a;}
.ai-side-empty{font-size:.78rem;color:#ccc;padding:8px 0;text-align:center;}
/* 模块0 上传入口 */
.ai-side-upload-desc{font-size:.76rem;color:#888;line-height:1.6;margin:0 0 10px;}
.ai-side-upload-desc b{color:#e8744a;}
.ai-upload-two{display:flex;gap:8px;}
.ai-upload-btn{flex:1;border:1px solid #f0d9cb;background:#fffaf6;border-radius:10px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;transition:all .18s;font-size:.72rem;color:#1a1a2e;}
.ai-upload-btn:hover{border-color:#e8744a;transform:translateY(-2px);box-shadow:0 6px 16px rgba(232,116,74,.15);}
.ai-upload-btn.disabled{opacity:.55;cursor:not-allowed;}
.ai-upload-btn.disabled:hover{transform:none;box-shadow:none;}
.ai-upload-ico{font-size:1.4rem;}
.ai-upload-main{font-weight:600;font-size:.76rem;display:flex;flex-direction:column;align-items:center;}
.ai-upload-main small{font-size:.64rem;color:#bbb;font-weight:400;margin-top:1px;}
.ai-side-upload-tip{font-size:.68rem;color:#bbb;margin:10px 0 0;line-height:1.5;}
/* 模块1 今日热门 */
.ai-hot-list{display:flex;flex-direction:column;}
.ai-hot-item{display:flex;align-items:center;gap:8px;padding:7px 2px;border-bottom:1px solid #f7f7f5;font-size:.78rem;}
.ai-hot-item:last-child{border-bottom:none;}
.ai-hot-rank{width:18px;height:18px;border-radius:5px;background:#f2f2f4;color:#999;font-size:.68rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ai-hot-rank.top{background:linear-gradient(135deg,#f5a623,#e8744a);color:#fff;}
.ai-hot-name{flex:1;color:#2d2d3a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ai-hot-fire{font-size:.68rem;color:#e8744a;display:inline-flex;align-items:center;gap:2px;white-space:nowrap;}
.ai-hot-arrow{font-size:.68rem;color:#bbb;}
/* 模块2 最新上 */
.ai-latest-list{display:flex;flex-direction:column;}
.ai-latest-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 2px;border-bottom:1px solid #f7f7f5;font-size:.78rem;}
.ai-latest-item:last-child{border-bottom:none;}
.ai-latest-name{color:#2d2d3a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ai-latest-time{font-size:.68rem;color:#bbb;white-space:nowrap;}
/* 模块3 创作者榜 */
.ai-creator-list{display:flex;flex-direction:column;}
.ai-creator-item{display:flex;align-items:center;gap:8px;padding:7px 2px;border-bottom:1px solid #f7f7f5;font-size:.78rem;}
.ai-creator-item:last-child{border-bottom:none;}
.ai-creator-medal{font-size:1rem;flex-shrink:0;}
.ai-creator-name{color:#2d2d3a;font-weight:600;flex-shrink:0;}
.ai-creator-meta{font-size:.68rem;color:#bbb;margin-left:auto;white-space:nowrap;}
/* 模块4 热门话题 */
.ai-topic-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.ai-topic{border:1px solid #eeeef0;background:#fafafa;border-radius:8px;padding:7px 10px;font-size:.76rem;color:#555;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:all .15s;}
.ai-topic span{color:#bbb;font-size:.64rem;}
.ai-topic:hover{border-color:#e8b49a;color:#e8744a;}
.ai-topic.active{background:#fff4ef;border-color:#e8744a;color:#e8744a;}
/* 模块5 平台统计 */
.ai-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ai-stat{display:flex;flex-direction:column;align-items:center;padding:8px 4px;background:#fffaf6;border:1px solid #f5e6dc;border-radius:10px;}
.ai-stat b{font-size:1.15rem;font-weight:800;color:#e8744a;}
.ai-stat span{font-size:.68rem;color:#999;margin-top:2px;}
/* ---- Upload modal ---- */
.ai-modal-mask{position:fixed;inset:0;background:rgba(20,20,30,.5);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;}
.ai-modal{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.25);animation:aiPop .25s cubic-bezier(.16,1,.3,1);}
@keyframes aiPop{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.ai-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f0f2;}
.ai-modal-head h3{margin:0;font-size:1.02rem;color:#1a1a2e;}
.ai-modal-close{border:none;background:#f5f5f5;width:28px;height:28px;border-radius:8px;color:#888;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.ai-modal-body{padding:18px 20px;overflow-y:auto;}
.ai-form-row{margin-bottom:14px;}
.ai-form-label{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:#333;margin-bottom:6px;}
.ai-limit{margin-left:auto;font-size:.66rem;color:#bbb;font-weight:400;}
.ai-hint{font-size:.68rem;color:#bbb;font-weight:400;}
.ai-input{width:100%;border:1px solid #e5e5e8;border-radius:9px;padding:9px 12px;font-size:.85rem;outline:none;color:#1a1a2e;transition:border .15s;background:#fff;}
.ai-input:focus{border-color:#e8744a;box-shadow:0 0 0 3px rgba(232,116,74,.1);}
.ai-textarea{resize:vertical;min-height:64px;line-height:1.6;}
.ai-type-switch{display:flex;gap:8px;}
.ai-type-switch button{flex:1;border:1px solid #e5e5e8;background:#fff;border-radius:9px;padding:9px;font-size:.84rem;color:#666;cursor:pointer;transition:all .15s;}
.ai-type-switch button.active{border-color:#e8744a;background:#fff4ef;color:#e8744a;font-weight:600;}
.ai-cat-pills{display:flex;gap:6px;flex-wrap:wrap;}
.ai-cat-pills button{border:1px solid #e5e5e8;background:#fff;border-radius:100px;padding:5px 14px;font-size:.76rem;color:#666;cursor:pointer;transition:all .15s;}
.ai-cat-pills button:hover{border-color:#e8b49a;}
.ai-cat-pills button.active{background:#fff4ef;border-color:#e8744a;color:#e8744a;font-weight:600;}
.ai-tag-input{display:flex;align-items:center;gap:6px;flex-wrap:wrap;border:1px solid #e5e5e8;border-radius:9px;padding:6px 10px;}
.ai-tag-input input{border:none;outline:none;font-size:.82rem;flex:1;min-width:120px;padding:4px 0;color:#1a1a2e;background:transparent;}
.ai-cover-preview{position:relative;display:inline-block;}
.ai-cover-preview img{width:220px;height:110px;object-fit:cover;border-radius:10px;border:1px solid #eeeef0;}
.ai-cover-del{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:none;background:#333;color:#fff;font-size:.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.ai-cover-empty{width:220px;height:110px;border:1.5px dashed #ddd;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#bbb;font-size:.8rem;cursor:pointer;transition:all .15s;background:#fafafa;}
.ai-cover-empty:hover{border-color:#e8744a;color:#e8744a;}
.ai-cover-empty i{font-size:1.3rem;margin-right:6px;}
.ai-attach-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.ai-attach-btn{border:1px dashed #e8b49a;background:#fffaf6;color:#e8744a;border-radius:9px;padding:8px 14px;font-size:.8rem;cursor:pointer;font-weight:600;}
.ai-attach-file{display:flex;align-items:center;gap:8px;background:#f7f7f5;border-radius:9px;padding:8px 12px;font-size:.8rem;color:#555;}
.ai-attach-file i{color:#e8744a;font-size:1rem;}
.ai-attach-file button{border:none;background:none;color:#bbb;cursor:pointer;margin-left:6px;}
.ai-perm-radio{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:.82rem;color:#555;}
.ai-perm-radio label{display:flex;align-items:center;gap:5px;cursor:pointer;padding:4px 0;}
.ai-perm-radio label.active{color:#e8744a;font-weight:600;}
.ai-perm-radio input{accent-color:#e8744a;}
.ai-agree{display:flex;align-items:center;gap:6px;font-size:.76rem;color:#888;cursor:pointer;}
.ai-agree input{accent-color:#e8744a;}
.ai-modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;}
.ai-btn-plain{border:1px solid #e5e5e8;background:#fff;border-radius:9px;padding:9px 22px;font-size:.84rem;color:#666;cursor:pointer;}
.ai-btn-plain:hover{background:#f7f7f5;}
.ai-btn-primary{border:none;background:linear-gradient(135deg,#e8744a,#f0835c);color:#fff;border-radius:9px;padding:9px 24px;font-size:.86rem;font-weight:600;cursor:pointer;transition:all .2s;}
.ai-btn-primary:hover{filter:brightness(1.08);box-shadow:0 6px 14px rgba(232,116,74,.3);}
.ai-btn-primary:disabled{opacity:.6;cursor:not-allowed;}
.ai-btn-primary.sm{padding:6px 16px;font-size:.78rem;border-radius:7px;}
.ai-modal-tip{font-size:.7rem;color:#bbb;margin-top:12px;text-align:center;}
/* ---- Detail page ---- */
.aihub-detail{min-width:0;}
.ai-back{font-size:.8rem;color:#888;text-decoration:none;display:inline-flex;align-items:center;margin-bottom:12px;}
.ai-back:hover{color:#e8744a;}
.aid-cover{position:relative;border-radius:16px;overflow:hidden;margin-bottom:16px;height:300px;}
.aid-cover img{width:100%;height:100%;object-fit:cover;}
.aid-main{background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:20px 22px;margin-bottom:14px;}
.aid-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.aid-title{font-size:1.3rem;font-weight:800;color:#1a1a2e;margin:0;}
.aid-desc{font-size:.9rem;color:#666;margin:8px 0 12px;line-height:1.6;}
.aid-meta{display:flex;align-items:center;gap:18px;font-size:.78rem;color:#999;flex-wrap:wrap;}
.ai-like-btn{border:1px solid #eeeef0;background:#fff;border-radius:100px;padding:4px 14px;font-size:.76rem;color:#666;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s;}
.ai-like-btn:hover{border-color:#e8744a;color:#e8744a;}
.ai-like-btn.liked{background:#fff4ef;border-color:#e8744a;color:#e8744a;font-weight:600;}
.aid-info{display:flex;gap:24px;flex-wrap:wrap;background:#fafaf8;border:1px solid #f0f0f2;border-radius:10px;padding:12px 16px;margin-top:14px;font-size:.8rem;color:#555;align-items:center;}
.aid-info b{color:#999;font-weight:600;margin-right:6px;}
.aid-sec-title{font-size:.98rem;font-weight:700;color:#1a1a2e;margin-bottom:10px;}
.aid-intro{margin-top:16px;}
.aid-intro-body{background:#fafaf8;border:1px solid #f0f0f2;border-radius:10px;padding:14px 16px;font-size:.86rem;color:#444;line-height:1.8;}
.aid-intro-body p{margin:0 0 6px;}
.aid-file{display:flex;align-items:center;gap:12px;background:#fffaf6;border:1px solid #f5e6dc;border-radius:10px;padding:12px 16px;margin-top:14px;}
.aid-file>i{font-size:1.6rem;color:#e8744a;}
.aid-file-name{font-size:.86rem;font-weight:600;color:#1a1a2e;}
.aid-file-size{font-size:.7rem;color:#bbb;}
.aid-action{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:18px;}
.aid-go{display:inline-block;padding:12px 48px;font-size:.95rem;border-radius:12px;text-decoration:none;text-align:center;}
.aid-action-tip{font-size:.68rem;color:#bbb;}
.aid-comments{background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:20px 22px;}
.aid-comment-total{font-size:.72rem;color:#bbb;font-weight:400;margin-left:4px;}
.aid-comment-box{margin-bottom:14px;}
.aid-comment-box textarea{width:100%;border:1px solid #e5e5e8;border-radius:10px;padding:10px 14px;font-size:.85rem;outline:none;resize:vertical;color:#1a1a2e;font-family:inherit;}
.aid-comment-box textarea:focus{border-color:#e8744a;box-shadow:0 0 0 3px rgba(232,116,74,.08);}
.aid-comment-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;}
.aid-comment-hint{font-size:.7rem;color:#bbb;}
.aid-comment-login{font-size:.82rem;color:#888;padding:12px 0;text-align:center;background:#fafaf8;border-radius:10px;margin-bottom:12px;}
.aid-comment-login a{color:#e8744a;font-weight:600;text-decoration:none;}
.aid-comment-list{display:flex;flex-direction:column;}
.aid-comment-item{display:flex;gap:12px;padding:12px 0;border-top:1px solid #f5f5f5;}
.aid-comment-body{flex:1;min-width:0;}
.aid-comment-user{font-size:.78rem;font-weight:600;color:#1a1a2e;}
.aid-comment-time{font-size:.68rem;color:#bbb;font-weight:400;margin-left:8px;}
.aid-comment-content{font-size:.85rem;color:#444;line-height:1.7;margin-top:3px;}
/* ---- Responsive ---- */
@media (max-width: 992px){
  .ai-layout{flex-direction:column;}
  .ai-side{width:100%;position:static;max-height:none;overflow:visible;}
  .ai-side-mod-head{justify-content:space-between;}
}
@media (max-width: 768px){
  .ai-topbar{flex-direction:column;align-items:stretch;}
  .ai-search{width:100%;flex:none;}
  .ai-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .ai-rec{width:190px;}
  .ai-hero{padding:20px;}
  .ai-filter-bar .ai-select{flex:1;min-width:0;}
  .ai-view-switch{margin-left:0;}
  .aid-cover{height:180px;}
}
@media (max-width: 480px){
  .ai-grid{grid-template-columns:1fr;}
}

/* ===== SubNav 频道子导航（顶部导航栏下 · 上下两行结构 · 不吸顶随页面滚动 ===== */
.subnav{background:#fff;border-bottom:1px solid #eeeef0;}
.subnav-inner{max-width:1200px;margin:0 auto;padding:14px 32px 12px;display:flex;flex-direction:column;gap:10px;}
/* 上行：大搜索框（水平居中 */
.subnav-row1{display:flex;justify-content:center;align-items:center;}
.subnav-name{font-size:1.4rem;font-weight:900;color:#1a1a2e;white-space:nowrap;display:flex;align-items:center;gap:10px;letter-spacing:.5px;line-height:1.2;flex-shrink:0;}
/* 频道名右侧分割线（分隔名称与菜单 */
.subnav-name::after{content:'';width:1px;height:22px;background:#e5e5e8;flex-shrink:0;}
.subnav-search{display:flex;align-items:center;background:#f7f7f5;border:1px solid #eeeef0;border-radius:100px;padding:0 8px 0 22px;width:100%;max-width:640px;height:48px;transition:all .2s;}
.subnav-search:focus-within{border-color:#e8b49a;background:#fff;box-shadow:0 0 0 4px rgba(232,116,74,.1);}
.subnav-search>i{color:#bbb;margin-right:10px;font-size:1.05rem;}
.subnav-search input{border:none;background:transparent;outline:none;padding:10px 0;font-size:1rem;width:100%;color:#1a1a2e;}
.subnav-search-btn{border:none;background:linear-gradient(135deg,#e8744a,#f0835c);color:#fff;border-radius:100px;padding:10px 30px;font-size:.92rem;font-weight:600;cursor:pointer;transition:all .18s;flex-shrink:0;font-family:inherit;}
.subnav-search-btn:hover{filter:brightness(1.08);box-shadow:0 4px 12px rgba(232,116,74,.3);}
/* 下行：频道名称（最左，右侧分割线）+ 菜单（靠左） */
.subnav-row2{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap;}
.subnav-items{display:flex;align-items:center;gap:2px;min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none;padding:0 2px;}
.subnav-items::-webkit-scrollbar{display:none;}
/* 投稿按钮（首页子导航右侧 */
.subnav-post{margin-left:auto;display:inline-flex;align-items:center;gap:4px;border:1px solid #e8744a;background:linear-gradient(135deg,#f47b4f,#e8744a);color:#fff;font-size:0.88rem;font-weight:600;padding:8px 22px;border-radius:100px;cursor:pointer;transition:all .18s;font-family:inherit;box-shadow:0 2px 8px rgba(232,116,74,.25);flex-shrink:0;}
.subnav-post:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 4px 14px rgba(232,116,74,.35);}
@media (max-width:767px){.subnav-post{padding:6px 16px;font-size:0.8rem;margin-left:0;}}
/* 菜单项：统一文字 tab 风格（无背景），选中 = 橙色 + 底部横线 */
.subnav-item{border:none;background:transparent;padding:12px 18px;border-radius:8px;font-size:1rem;font-weight:500;color:#666;cursor:pointer;white-space:nowrap;transition:color .18s,font-weight .18s;font-family:inherit;position:relative;}
.subnav-item:hover{color:#1a1a2e;background:#fafafa;}
.subnav-item.active{color:#e8744a;font-weight:700;}
.subnav-item.active::after{content:'';position:absolute;left:50%;bottom:2px;transform:translateX(-50%);width:26px;height:3px;border-radius:3px;background:linear-gradient(90deg,#e8744a,#f5a623);}
.subnav-cat{border:1px solid #eeeef0;background:#fff;border-radius:8px;padding:8px 12px;font-size:.86rem;color:#666;cursor:pointer;outline:none;margin-left:8px;flex-shrink:0;transition:border-color .18s,color .18s;}
.subnav-cat:hover{border-color:#e8b49a;color:#e8744a;}
@media (max-width:768px){
  .subnav{position:static;box-shadow:none;}
  .subnav-inner{flex-wrap:wrap;gap:8px;padding:10px 12px;}
  .subnav-name{font-size:1.15rem;}
  .subnav-row2{justify-content:flex-start;gap:8px;}
  .subnav-search{max-width:none;height:44px;}
  .subnav-item{padding:8px 14px;font-size:.9rem;}
}
/* hero 内嵌发布框：上间 + 与五阶段卡间 */
.wb-hero .pub-box{margin-top:12px;border:1px solid #f0e6c5;box-shadow:0 6px 18px rgba(180,120,0,.08);}
.wb-hero .wb-hero-stages{margin-top:4px;}
@media (max-width:460px){ .wb-hero .pub-box{margin-top:10px;} }
/* ===== 发布成功弹窗 ===== */
.pub-success-mask{position:fixed;inset:0;background:rgba(20,20,46,.45);backdrop-filter:blur(4px);z-index:1200;display:flex;align-items:center;justify-content:center;animation:ps-fade .2s ease;}
.pub-success-modal{position:relative;background:#fff;border-radius:20px;padding:36px 44px 30px;text-align:center;width:340px;box-shadow:0 24px 60px rgba(20,20,46,.25);animation:ps-pop .3s cubic-bezier(.16,1,.3,1);}
.pub-success-icon{width:72px;height:72px;border-radius:50%;margin:0 auto 16px;background:linear-gradient(135deg,#2ec97a,#1fb06a);color:#fff;font-size:34px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(31,176,106,.35);animation:ps-check .5s cubic-bezier(.16,1,.3,1) .1s backwards;}
.pub-success-title{font-size:1.25rem;font-weight:800;color:#1a1a2e;margin-bottom:8px;}
.pub-success-desc{font-size:.86rem;color:#8a8a94;line-height:1.6;margin-bottom:24px;}
.pub-success-actions{display:flex;gap:10px;justify-content:center;}
.pub-success-view{border:none;background:linear-gradient(135deg,#e8744a,#f0835c);color:#fff;font-weight:700;font-size:.9rem;padding:11px 26px;border-radius:100px;cursor:pointer;transition:all .18s;display:inline-flex;align-items:center;gap:6px;font-family:inherit;}
.pub-success-view:hover{filter:brightness(1.08);box-shadow:0 6px 16px rgba(232,116,74,.3);transform:translateY(-1px);}
.pub-success-again{border:1px solid #eeeef0;background:#fff;color:#666;font-weight:600;font-size:.9rem;padding:11px 22px;border-radius:100px;cursor:pointer;transition:all .18s;font-family:inherit;}
.pub-success-again:hover{border-color:#e8b49a;color:#e8744a;background:#fffaf6;}
.pub-success-close{position:absolute;top:14px;right:14px;border:none;background:#f4f4f6;color:#999;width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;font-size:.7rem;}
.pub-success-close:hover{background:#eee;color:#555;}
@keyframes ps-fade{from{opacity:0}to{opacity:1}}
@keyframes ps-pop{from{opacity:0;transform:scale(.88) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes ps-check{from{transform:scale(0) rotate(-30deg)}to{transform:scale(1) rotate(0)}}
@media (max-width:480px){.pub-success-modal{width:calc(100vw - 48px);padding:30px 24px 24px;}}
/* ===== 知乎式圈子信息条（信息流卡片顶部 ===== */
.wb-item-wrap{background:#fff;border:1px solid var(--tj-border);border-radius:12px;padding:14px 16px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.04);}
.wb-item-wrap .wb-item{border:none;box-shadow:none;border-radius:0;padding:0;margin:0;background:transparent;}
/* 圈子条：去灰色背 边框（用户要求，v34 */
.wb-group-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:transparent;border:none;border-radius:0;padding:0 0 8px;margin-bottom:6px;}
.wb-group-bar-main{flex:1;display:flex;align-items:center;gap:10px;min-width:0;}
.wb-group-bar-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#fff3cd,#ffe8a3);border:1px solid #f0e0b0;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;color:#b45309;font-size:17px;}
.wb-group-bar-avatar img{width:100%;height:100%;object-fit:cover;}
.wb-group-bar-info{display:flex;flex-direction:column;min-width:0;}
.wb-group-bar-name{font-size:15px;font-weight:700;color:#1a1a2e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25;}
.wb-group-bar-meta{font-size:12px;color:#999;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wb-group-join{border:1px solid #e8b49a;background:#fff;color:#e8744a;font-size:12.5px;font-weight:600;padding:5px 14px;border-radius:100px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;flex-shrink:0;transition:all .18s;font-family:inherit;}
.wb-group-join:hover{background:#fff4ef;border-color:#e8744a;}
.wb-group-join.joined{border-color:#2ec97a;color:#1fb06a;background:#f0fcf4;cursor:default;}
/* ===== 圈子卡对齐修 ===== */
/* 圈子 logo 圆角正方形（非圆形），尺寸与文字卡头像统一 44px */
.wb-group-bar-avatar{width:44px;height:44px;border-radius:10px;font-size:19px;}
/* 圈子卡隐藏头像列后，正文 58px(44头像+14间距) 左缩进，与非圈子卡严格对 */
.wb-item.no-avatar{gap:0;}
.wb-item.no-avatar .wb-body{margin-left:58px;}
@media (max-width:768px){
  .wb-item.no-avatar .wb-body{margin-left:0;}
}
/* ===== 帖子详情 V3（知乎式：两 + 侧栏 7 模块 ===== */
.pd-layout{display:flex;gap:24px;align-items:flex-start;max-width:1440px;margin:0 auto;padding:0 24px;}
.pd-main{flex:1;min-width:0;max-width:920px;}
.pd-breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:#999;margin:8px 0 14px;flex-wrap:wrap;}
.pd-breadcrumb a{color:#999;}
.pd-breadcrumb a:hover{color:#e8744a;}
.pd-crumb-sep{color:#ccc;font-size:12px;}
.pd-crumb-cur{color:#666;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pd-header{background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:22px 24px 18px;margin-bottom:14px;box-shadow:0 1px 4px rgba(20,20,46,.04);}
.pd-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.pd-tag{font-size:12px;font-weight:500;padding:2px 9px;border-radius:4px;line-height:1.6;}
.pd-tag-cat{background:#fff4ef;color:#e8744a;}
.pd-tag-pin{background:#eef4ff;color:#1e88e5;}
.pd-tag-feat{background:#fff8e1;color:#b8860b;}
.pd-tag-hot{background:#ffe9e4;color:#e03131;}
.pd-title{font-size:22px;font-weight:700;color:#1a1a2e;line-height:1.4;margin:0 0 14px;}
.pd-author-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.pd-author-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#ffe97a,#f5a623);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;color:#fff;flex-shrink:0;}
.pd-author-avatar img{width:100%;height:100%;object-fit:cover;}
.pd-author-avatar span{color:#8a5a00;}
.pd-author-info{min-width:0;}
.pd-author-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pd-author-name{font-size:15px;font-weight:600;color:#1a1a2e;}
.pd-author-level{font-size:12px;color:#999;}
.pd-author-time{font-size:12px;color:#bbb;}
.pd-author-sub{font-size:12px;color:#999;margin-top:2px;}
/* 帖子一体卡片：标题 + 作 + 正文（不分割 */
.pd-post-card{background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:24px 28px 22px;margin-bottom:14px;box-shadow:0 1px 4px rgba(20,20,46,.04);}
.pd-post-body{padding-top:6px;}
.pd-post-body .content-body{font-size:16px;color:#2d2d3a;line-height:1.8;word-break:break-word;}
.pd-post-body .content-body img{max-width:100%;border-radius:10px;margin:6px 0;}
.pd-post-body .content-body blockquote{border-left:4px solid #e8744a;background:#f7f7fa;color:#666;font-size:14px;padding:10px 14px;border-radius:0 8px 8px 0;margin:12px 0;}
.pd-post-body .content-body pre{background:#1a1a2e;color:#e8e8f0;border-radius:10px;padding:14px 16px;font-size:14px;overflow-x:auto;}
.pd-taglist{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid #f4f4f6;}
.pd-tag-link{font-size:12px;font-weight:500;color:#e8744a;background:#fff4ef;padding:3px 10px;border-radius:100px;cursor:pointer;}
.pd-tag-link:hover{background:#ffe4d6;}
.pd-imglist{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}
.pd-imglist img{max-height:320px;border-radius:12px;cursor:zoom-in;max-width:100%;}
/* 互动统计条：卡内紧贴正文（不分割不吸底） */
.pd-actbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid #f4f4f6;}
.pd-act{display:inline-flex;align-items:center;gap:6px;border:1px solid #eeeef0;background:#fff;color:#555;font-size:13.5px;font-weight:500;padding:8px 18px;border-radius:100px;cursor:pointer;transition:all .18s;font-family:inherit;}
.pd-act i{font-size:15px;}
.pd-act b{font-weight:600;}
.pd-act:hover{border-color:#e8b49a;color:#e8744a;background:#fffaf6;}
.pd-act.active{background:#e8744a;border-color:#e8744a;color:#fff;}
.pd-act.active:hover{filter:brightness(1.08);}
.pd-act-view{font-size:12.5px;color:#bbb;margin-left:4px;}
.pd-act-more-wrap{position:relative;margin-left:auto;}
.pd-more-pop{position:absolute;bottom:calc(100% + 8px);right:0;background:#fff;border:1px solid #eeeef0;border-radius:12px;box-shadow:0 10px 30px rgba(20,20,46,.14);padding:6px;min-width:150px;z-index:60;}
.pd-more-pop button{display:flex;align-items:center;gap:8px;width:100%;border:none;background:none;padding:9px 12px;border-radius:8px;font-size:13px;color:#444;cursor:pointer;font-family:inherit;}
.pd-more-pop button:hover{background:#f7f7f5;color:#e8744a;}
.pd-comments{background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:20px 22px;box-shadow:0 1px 4px rgba(20,20,46,.04);}
.pd-cmt-headbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.pd-cmt-title{font-size:16px;font-weight:600;color:#1a1a2e;}
.pd-cmt-tools{display:flex;align-items:center;gap:14px;}
.pd-cmt-sort{border:1px solid #eeeef0;border-radius:8px;padding:5px 10px;font-size:12.5px;color:#555;background:#fff;cursor:pointer;outline:none;}
.pd-cmt-authoronly{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:#777;cursor:pointer;}
.pd-cmt-authoronly input{accent-color:#e8744a;}
.pd-cmt-inputbar{margin-bottom:18px;}
.pd-cmt-inputbox{display:flex;align-items:center;gap:8px;background:#f7f7f5;border:1px solid #eeeef0;border-radius:12px;padding:8px 10px;}
.pd-cmt-inputbox:focus-within{border-color:#e8b49a;background:#fff;box-shadow:0 0 0 3px rgba(232,116,74,.08);}
.pd-cmt-me{width:32px;height:32px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#ffe97a,#f5a623);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;}
.pd-cmt-me img{width:100%;height:100%;object-fit:cover;}
.pd-cmt-me span{color:#8a5a00;}
.pd-cmt-input{flex:1;border:none;background:transparent;outline:none;font-size:14px;padding:7px 4px;color:#2d2d3a;min-width:0;}
.pd-cmt-cancel{border:1px solid #eeeef0;background:#fff;color:#999;border-radius:8px;padding:6px 12px;font-size:12px;cursor:pointer;font-family:inherit;}
.pd-cmt-send{border:none;background:#e8744a;color:#fff;font-weight:600;font-size:13px;padding:8px 20px;border-radius:10px;cursor:pointer;transition:all .18s;font-family:inherit;}
.pd-cmt-send:hover{filter:brightness(1.08);}
.pd-cmt-send:disabled{background:#e8c9bb;cursor:not-allowed;}
.pd-cmt-empty{text-align:center;color:#bbb;font-size:13px;padding:26px 0;}
.pd-cmt-list{display:flex;flex-direction:column;}
.pd-cmt{padding:14px 0;border-bottom:1px solid #f6f6f8;}
.pd-cmt:last-child{border-bottom:none;}
.pd-cmt-child{padding-left:48px;}
.pd-cmt-head{display:flex;align-items:center;gap:10px;}
.pd-cmt-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#ffe97a,#f5a623);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;flex-shrink:0;}
.pd-cmt-avatar img{width:100%;height:100%;object-fit:cover;}
.pd-cmt-avatar span{color:#8a5a00;}
.pd-cmt-meta{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pd-cmt-name{font-size:14px;font-weight:600;color:#1a1a2e;}
.pd-cmt-level{font-size:12px;color:#999;}
.pd-cmt-time{font-size:12px;color:#bbb;}
.pd-cmt-like{border:none;background:none;color:#bbb;font-size:12.5px;cursor:pointer;font-family:inherit;padding:3px 6px;border-radius:6px;transition:all .15s;}
.pd-cmt-like:hover{background:#f7f7f5;color:#e8744a;}
.pd-cmt-like.liked{color:#e8744a;font-weight:600;}
.pd-cmt-body{font-size:14px;color:#2d2d3a;line-height:1.7;margin:8px 0 6px;padding-left:42px;word-break:break-word;}
.pd-cmt-at{color:#e8744a;font-weight:600;}
.pd-cmt-actions{display:flex;align-items:center;gap:14px;padding-left:42px;}
.pd-cmt-reply{border:none;background:none;color:#999;font-size:12.5px;cursor:pointer;font-family:inherit;padding:2px 4px;}
.pd-cmt-reply:hover{color:#e8744a;}
.pd-cmt-count{font-size:12px;color:#bbb;}
.pd-cmt-replybox{display:flex;gap:8px;margin:8px 0 0 42px;}
.pd-cmt-children{margin-top:10px;}
.pd-cmt-child .pd-cmt-body,.pd-cmt-child .pd-cmt-actions{padding-left:0;}
.pd-related{margin-top:14px;}
.pd-related-title{font-size:16px;font-weight:600;color:#1a1a2e;margin-bottom:12px;}
.pd-related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.pd-related-card{background:#fff;border:1px solid #eeeef0;border-radius:12px;overflow:hidden;transition:all .18s;display:block;}
.pd-related-card:hover{border-color:#e8b49a;transform:translateY(-2px);box-shadow:0 6px 16px rgba(20,20,46,.08);}
.pd-related-card-body{padding:12px 14px;}
.pd-related-card-title{font-size:13.5px;font-weight:600;color:#1a1a2e;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:8px;}
.pd-related-card-meta{font-size:12px;color:#bbb;}
.pd-sidebar{width:280px;flex-shrink:0;position:sticky;top:84px;max-height:calc(100vh - 100px);overflow-y:auto;scrollbar-width:none;}
.pd-sidebar::-webkit-scrollbar{display:none;}
.pd-side-card{background:#fff;border:1px solid #eeeef0;border-radius:14px;padding:16px;margin-bottom:14px;box-shadow:0 1px 4px rgba(20,20,46,.04);}
.pd-side-title{font-size:14px;font-weight:600;color:#1a1a2e;margin-bottom:12px;}
.pd-side-card-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.pd-side-gicon{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#fff3cd,#ffe8a3);border:1px solid #f0e0b0;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#b45309;font-size:18px;flex-shrink:0;}
.pd-side-gicon img{width:100%;height:100%;object-fit:cover;}
.pd-side-gname{font-size:16px;font-weight:700;color:#1a1a2e;}
.pd-side-gdesc{font-size:13px;color:#999;line-height:1.5;margin-bottom:10px;}
.pd-side-gstats{display:flex;gap:14px;font-size:13px;color:#999;margin-bottom:12px;}
.pd-side-gbtn{display:block;width:100%;text-align:center;border:1px solid #e8b49a;color:#e8744a;font-weight:600;font-size:13px;padding:9px 0;border-radius:8px;transition:all .18s;}
.pd-side-gbtn:hover{background:#fff4ef;border-color:#e8744a;}
.pd-side-list{display:flex;flex-direction:column;gap:10px;}
.pd-side-item{font-size:13px;color:#2d2d3a;line-height:1.5;display:flex;gap:6px;overflow:hidden;}
.pd-side-item:hover{color:#e8744a;}
.pd-side-item .pd-side-dot{color:#e8744a;flex-shrink:0;}
.pd-side-hot{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px dashed #f4f4f6;}
.pd-side-hot:last-child{border-bottom:none;}
.pd-side-rank{width:18px;height:18px;border-radius:5px;background:#f1f1f3;color:#999;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pd-side-rank.top{background:#fff4ef;color:#e8744a;}
.pd-side-hot-title{flex:1;min-width:0;font-size:13px;color:#2d2d3a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pd-side-hot:hover .pd-side-hot-title{color:#e8744a;}
.pd-side-hot-view{font-size:11.5px;color:#bbb;flex-shrink:0;}
.pd-side-author{display:flex;gap:10px;margin-bottom:12px;}
.pd-side-avatar{width:48px;height:48px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#ffe97a,#f5a623);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff;flex-shrink:0;}
.pd-side-avatar img{width:100%;height:100%;object-fit:cover;}
.pd-side-avatar span{color:#8a5a00;}
.pd-side-author-info{min-width:0;}
.pd-side-author-name{font-size:15px;font-weight:600;color:#1a1a2e;}
.pd-side-author-level{font-size:12px;color:#999;margin:2px 0 4px;}
.pd-side-author-stats{font-size:12px;color:#999;}
.pd-side-author-actions{display:flex;gap:8px;}
.pd-side-follow,.pd-side-msg{flex:1;text-align:center;font-size:13px;font-weight:600;padding:8px 0;border-radius:6px;transition:all .18s;}
.pd-side-follow{background:#e8744a;color:#fff;}
.pd-side-follow:hover{filter:brightness(1.08);}
.pd-side-msg{border:1px solid #d8d8dc;color:#666;}
.pd-side-msg:hover{border-color:#e8b49a;color:#e8744a;}
.pd-side-gnav{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.pd-side-gnav-item{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;color:#2d2d3a;background:#f7f7f5;border:1px solid #f0f0ee;border-radius:8px;padding:8px 4px;transition:all .15s;}
.pd-side-gnav-item i{font-size:15px;color:#e8744a;}
.pd-side-gnav-item img{width:20px;height:20px;border-radius:6px;object-fit:cover;}
.pd-side-gnav-item:hover{border-color:#e8b49a;}
.pd-side-gnav-item.current{background:#e8744a;border-color:#e8744a;color:#fff;}
.pd-side-gnav-item.current i{color:#fff;}
.pd-side-gnav-more{display:block;text-align:center;font-size:12.5px;color:#e8744a;margin-top:10px;}
.pd-side-platform{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.pd-side-pitem{background:#fafaf8;border:1px solid #f0f0ee;border-radius:10px;padding:10px;text-align:center;}
.pd-side-pitem b{display:block;font-size:16px;font-weight:700;color:#e8744a;}
.pd-side-pitem span{font-size:12px;color:#999;}
.pd-backtop{width:100%;border:1px solid #eeeef0;background:#fff;color:#888;font-size:13px;padding:11px 0;border-radius:8px;cursor:pointer;transition:all .18s;font-family:inherit;opacity:0;pointer-events:none;transform:translateY(4px);}
.pd-backtop.show{opacity:1;pointer-events:auto;transform:translateY(0);}
.pd-backtop:hover{background:#f7f7f5;color:#e8744a;}
@media (max-width:1199px){
  .pd-sidebar{width:240px;}
}
@media (max-width:991px){
  .pd-layout{flex-direction:column;padding:0 14px;}
  .pd-sidebar{width:100%;position:static;max-height:none;overflow:visible;display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .pd-side-card{margin-bottom:0;}
  .pd-backtop{grid-column:1/-1;}
  .pd-related-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:767px){
  .pd-title{font-size:19px;}
  .pd-post-card{padding:18px 16px;}
  .pd-cmt-child{padding-left:20px;}
  .pd-cmt-body{padding-left:0;}
  .pd-cmt-actions{padding-left:0;}
  .pd-cmt-replybox{margin-left:0;}
  .pd-actbar{justify-content:center;}
  .pd-act{padding:7px 14px;font-size:12.5px;}
  .pd-sidebar{grid-template-columns:1fr;}
}
/* 首页分类栏（wb-channels-wrap）暂时隐藏（用户指令 2026-08-23，恢复时删掉下面一行即可） */
.wb-channels-wrap{display:none !important;}

/* 推荐 hover 下拉（最 精华 */
.subnav-item-wrap{position:relative;display:inline-flex;}
.subnav-drop-icon{font-size:0.7rem;margin-left:2px;transition:transform .18s;}
.subnav-item-wrap:hover .subnav-drop-icon{transform:rotate(180deg);}
.subnav-drop{position:absolute;top:calc(100% - 2px);left:50%;transform:translateX(-50%);display:none;min-width:140px;background:#fff;border:1px solid #eeeef0;border-radius:12px;box-shadow:0 12px 32px rgba(20,20,46,.14);padding:6px;z-index:120;flex-direction:column;gap:2px;}
.subnav-item-wrap:hover .subnav-drop{display:flex;}
.subnav-drop-item{border:none;background:none;text-align:center;padding:9px 12px;border-radius:8px;font-size:0.9rem;font-weight:500;color:#555;cursor:pointer;font-family:inherit;white-space:nowrap;transition:all .15s;}
.subnav-drop-item:hover{background:#fff4ef;color:#e8744a;}
.subnav-drop-item.active{color:#e8744a;font-weight:700;}

/* 左侧边栏顶部信息 tab（关 推荐/最 精华，垂直排列） */
.tj-side-tabs{display:flex;flex-direction:column;gap:2px;padding:10px 8px 8px;}
.tj-side-tab{border:none;background:transparent;padding:9px 12px;border-radius:8px;font-size:0.88rem;font-weight:600;color:#666;cursor:pointer;font-family:inherit;text-align:left;transition:all .15s;}
.tj-side-tab:hover{color:#e8744a;background:#fff4ef;}
.tj-side-tab.active{color:#e8744a;background:#fff4ef;font-weight:700;}

/* ===== 布局宽度：Header 1400 / 子导航·容 1200 ===== */
/* 首页子导航与全站同宽 200，与 .subnav-inner 一致） */
.subnav-inner.subnav-home{max-width:1200px;}
/* 顶部 Header 内容 1400px 居中 */
.tj-header-inner{max-width:1400px;margin:0 auto;}
/* 首页左侧边栏：布局 sticky（宽 180px，保留图 菜单优化 */
.tj-sidebar-left{width:180px;}

/* 侧栏 tab 图标间距 */
.tj-side-tab i{font-size:0.95rem;color:#bbb;margin-right:8px;width:18px;text-align:center;transition:color .15s;}
.tj-side-tab:hover i,.tj-side-tab.active i{color:#e8744a;}

/* ===== 首页子导航分类菜单优化（chip 胶囊 + 图标 ===== */
.subnav-home .subnav-items{gap:8px;flex-wrap:wrap;}
.subnav-home .subnav-item{display:inline-flex;align-items:center;gap:6px;padding:7px 15px;border-radius:100px;background:#f6f6f4;color:#555;font-size:0.9rem;font-weight:500;}
.subnav-home .subnav-item i{font-size:0.85rem;color:#e8744a;opacity:.85;}
.subnav-home .subnav-item:hover{background:#fff1ea;color:#e8744a;transform:translateY(-1px);}
.subnav-home .subnav-item.active{background:linear-gradient(135deg,#f47b4f,#e8744a);color:#fff;font-weight:600;box-shadow:0 3px 10px rgba(232,116,74,.3);}
.subnav-home .subnav-item.active i{color:#fff;opacity:1;}
/* 首页分类图标色（非激活时也统一品牌橙） */

/* ===== 落地 Landing ===== */
.landing a:hover{filter:brightness(1.05);}
.landing-sec-head{text-align:center;}
.landing-sec-tag{display:inline-block;padding:5px 16px;border-radius:100px;background:#fff1ea;color:#e8744a;font-weight:700;font-size:0.82rem;letter-spacing:.5px;}
.landing-hero h1 b,.landing-hero h1 span{font-weight:inherit;}
@media (max-width:640px){.landing-hero{padding:48px 18px 44px;}}

/* ===== 教程频道（参 super-i 工具列表 ===== */
.tut-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;}
.tut-card{background:#fff;border-radius:14px;border:1px solid #f0efe9;overflow:hidden;transition:all .2s;box-shadow:0 2px 8px rgba(20,20,46,.03);display:flex;flex-direction:column;}
.tut-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(20,20,46,.1);border-color:#f5d9c8;}
.tut-cover{position:relative;height:170px;display:flex;align-items:center;justify-content:center;}
.tut-hot{position:absolute;top:10px;left:10px;background:linear-gradient(135deg,#ff6b35,#e63946);color:#fff;font-size:.7rem;font-weight:800;padding:4px 10px;border-radius:100px;box-shadow:0 2px 8px rgba(230,57,70,.35);}
.tut-enter{position:absolute;top:10px;right:10px;width:28px;height:28px;background:rgba(255,255,255,.92);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#e8744a;opacity:0;transition:all .2s;}
.tut-card:hover .tut-enter{opacity:1;transform:translateX(-3px);}
.tut-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1;}
.tut-cat{display:inline-block;width:fit-content;padding:2px 8px;border-radius:4px;background:#fff1ea;color:#e8744a;font-size:.7rem;font-weight:700;}
.tut-title{font-size:1rem;font-weight:800;color:#1a1a2e;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.tut-summary{font-size:.82rem;color:#777;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1;}
.tut-tags{display:flex;flex-wrap:wrap;gap:4px;}
.tut-tag{font-size:.7rem;color:#999;background:#f7f7f5;padding:2px 6px;border-radius:4px;}
.tut-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid #f4f2ec;margin-top:auto;}
.tut-author{display:flex;align-items:center;gap:6px;font-size:.78rem;color:#555;}
.tut-avatar{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.7rem;font-weight:700;}
.tut-stats{display:flex;gap:10px;font-size:.72rem;color:#999;}
.tut-stats i{margin-right:2px;color:#bbb;}

/* 教程详情 */
.tut-detail-cover{width:100%;max-height:420px;background:linear-gradient(135deg,#f47b4f,#e8744a);display:flex;align-items:center;justify-content:center;color:#fff;border-radius:16px;overflow:hidden;margin-bottom:24px;}
.tut-detail-cover img{width:100%;height:100%;object-fit:cover;}
.tut-meta{display:flex;align-items:center;gap:14px;color:#888;font-size:.85rem;margin:14px 0 24px;flex-wrap:wrap;}
.tut-meta .avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--tj-gold),var(--tj-gold-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;}
.tut-content{font-size:1.02rem;line-height:1.85;color:#333;}
.tut-content img{max-width:100%;border-radius:10px;margin:12px 0;}
.tut-content h2{font-size:1.35rem;font-weight:800;color:#1a1a2e;margin:24px 0 12px;padding-bottom:6px;border-bottom:2px solid #f47b4f;}
.tut-content h3{font-size:1.15rem;font-weight:800;color:#1a1a2e;margin:20px 0 10px;}
.tut-content p{margin:0 0 14px;}
.tut-content pre{background:#1a1a2e;color:#eee;padding:14px 18px;border-radius:10px;overflow-x:auto;font-size:.88rem;}
.tut-content blockquote{border-left:4px solid #f47b4f;background:#fff7f2;padding:12px 16px;margin:14px 0;color:#555;border-radius:0 8px 8px 0;}

/* ============================================================
   正文富媒体（2026-09-24：编辑器改为「上传本地文件」后新增 
   - video / audio 必须显式限宽，否则会撑破正文 
   - .rich-file = 上传 word / pdf / zip 等附件，渲染成链接卡 
   对比度：#4a2ec4 / #f7f6fd = 7.92:1  #6b6d88 / #f7f6fd = 4.63:1
   ⚠️ hover  #f0ecff  #6b6d88 只有 4.29:1  hover 时子元素颜色一起加 
   ============================================================ */
.tut-content video,.tut-content audio,
.pd-post-body .content-body video,.pd-post-body .content-body audio{
  display:block;max-width:100%;margin:12px 0;border-radius:10px;
}
.tut-content audio,.pd-post-body .content-body audio{width:100%;}

.rich-file{
  display:inline-flex;align-items:center;gap:8px;max-width:100%;
  margin:6px 0;padding:9px 14px;
  background:#f7f6fd;border:1px solid #e4e1f5;border-radius:10px;
  color:#4a2ec4 !important;font-size:.9rem;font-weight:600;text-decoration:none !important;
  vertical-align:middle;
}
.rich-file:hover{background:#f0ecff;border-color:#cdbcfb;}
.rich-file i{color:#7b4dff;font-size:1rem;flex:0 0 auto;}
.rich-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(60vw,360px);}
.rich-file-size{color:#6b6d88;font-size:.78rem;font-weight:500;flex:0 0 auto;}
.rich-file:hover .rich-file-size{color:#4a4d66;}

/* ============================================================
   教程详情 · 左栏目录「仅显示可见章节」提示（2026-09-24 
   ============================================================ */
.td-toc-lock{
  display:flex;align-items:flex-start;gap:7px;
  margin:10px 12px 4px;padding:9px 11px;border-radius:9px;
  background:#f7f6fd;border:1px solid #e4e1f5;
  font-size:.74rem;line-height:1.6;color:#52547a;
}
.td-toc-lock i{color:#7b4dff;font-size:.8rem;margin-top:2px;flex:0 0 auto;}

/* ============================================================
   教程详情 · 右栏作者卡「教 / 专栏」入口（2026-09-24 
   点击跳博主主页对应菜单（/user/:id?tab=tutorials | ?tab=column 
   对比度：#2b2e4a / #f7f6fd = 12.0:1  #5a5c78 / #f7f6fd = 6.4:1
   ⚠️ hover  #f0ecff  #5a5c78  5.9:1，仍达标（子元素色一并验算过 
   ============================================================ */
.td-author-nav{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  margin:12px 0 10px;
}
.td-author-nav-item{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:10px 6px;border-radius:10px;text-decoration:none !important;
  background:#f7f6fd;border:1px solid #e4e1f5;
  transition:background .15s,border-color .15s,transform .15s;
}
.td-author-nav-item:hover{background:#f0ecff;border-color:#cdbcfb;transform:translateY(-1px);}
.td-author-nav-item:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}
.td-author-nav-item i{color:#7b4dff;font-size:1rem;}
.td-author-nav-item b{font-size:1.02rem;font-weight:800;color:#2b2e4a;line-height:1.2;}
.td-author-nav-item span{font-size:.72rem;color:#5a5c78;}

/* ============================================================
   广场 · 非会员免费额度提示条 026-09-24 
    20 条后替换「上滑加载更多」哨兵；下拉到底也会弹开通会 
   对比度：#a3a5c4  #6b6d88，正 #6b6d88 / #fbfaff = 4.8:1
   ============================================================ */
.sq-limit{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  margin:16px 0 4px;padding:18px 20px;border-radius:14px;
  background:linear-gradient(180deg,#fbfaff,#f6f4ff);border:1px solid #e4e1f5;
}
.sq-limit-ic{
  flex:0 0 auto;width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#f7d774,#e0a93f 55%,#c98a2e);color:#fff;font-size:1.2rem;
}
.sq-limit-txt{flex:1;min-width:200px;}
.sq-limit-txt b{display:block;font-size:.95rem;font-weight:800;color:#20224a;margin-bottom:3px;}
.sq-limit-txt p{margin:0;font-size:.8rem;color:#6b6d88;line-height:1.7;}
.sq-limit-btn{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;
  padding:10px 22px;border:none;border-radius:100px;cursor:pointer;
  background:linear-gradient(135deg,#f7d774,#e0a93f 55%,#c98a2e);color:#5c3f05;
  font-family:inherit;font-size:.88rem;font-weight:800;
  box-shadow:0 10px 22px -12px rgba(217,154,51,.75);
}
.sq-limit-btn:hover{transform:translateY(-1px);filter:brightness(1.04);}
.sq-limit-btn:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}

/* 广场帖子详情 · 正文被截断后的提示区 */
.pd-locked{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  margin:4px 0 18px;padding:18px 20px;border-radius:14px;
  background:linear-gradient(180deg,#fbfaff,#f6f4ff);border:1px solid #e4e1f5;
}
.pdl-ic{
  flex:0 0 auto;width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  background:#f2eeff;color:#5b3fd4;font-size:1.15rem;
}
.pdl-txt{flex:1;min-width:220px;}
.pdl-txt b{display:block;font-size:.95rem;font-weight:800;color:#20224a;margin-bottom:3px;}
.pdl-txt p{margin:0;font-size:.8rem;color:#6b6d88;line-height:1.7;}
.pdl-actions{flex:0 0 auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.pdl-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 20px;border:none;border-radius:100px;cursor:pointer;
  font-family:inherit;font-size:.86rem;font-weight:800;text-decoration:none !important;
}
.pdl-btn.gold{background:linear-gradient(135deg,#f7d774,#e0a93f 55%,#c98a2e);color:#5c3f05;box-shadow:0 10px 22px -12px rgba(217,154,51,.75);}
.pdl-btn.gold:hover{transform:translateY(-1px);filter:brightness(1.04);color:#5c3f05;}
.pdl-btn.ghost{background:#fff;border:1px solid #e4e1f5;color:#4a2ec4;}
.pdl-btn.ghost:hover{background:#f7f6fd;}
.pdl-btn:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}
@media (max-width:640px){
  .sq-limit,.pd-locked{gap:12px;padding:16px;}
  .sq-limit-btn,.pdl-actions{width:100%;}
  .sq-limit-btn{justify-content:center;}
  .pdl-actions .pdl-btn{flex:1;justify-content:center;}
}
.tut-actions{display:flex;gap:12px;align-items:center;padding:16px 0;border-top:1px solid #f0efe9;border-bottom:1px solid #f0efe9;margin:24px 0;}
.tut-act-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:100px;background:#f7f7f5;color:#666;font-weight:600;cursor:pointer;font-family:inherit;border:none;transition:all .15s;}
.tut-act-btn:hover{background:#fff1ea;color:#e8744a;}
.tut-act-btn.active{background:#fff1ea;color:#e8744a;}
.tut-act-btn.active i{color:#e8744a;}

@media (max-width:767px){.tut-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;}.tut-cover{height:130px;}}

/* ===== Header hover 下拉导航 ===== */
.tj-nav{flex-wrap:nowrap;overflow:visible;}
.tj-nav-hover{position:relative;display:flex;align-items:center;}
.tj-nav-arrow{font-size:.6rem !important;margin-left:-2px;opacity:.55;}
.tj-nav-hover-drop{position:absolute;top:100%;left:0;min-width:150px;background:#fff;border:1px solid #f0efe9;border-radius:12px;box-shadow:0 12px 30px rgba(20,20,46,.12);padding:6px;display:none;z-index:1100;}
.tj-nav-hover:hover .tj-nav-hover-drop{display:block;}
.tj-nav-hover-item{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:8px;color:#555;text-decoration:none;font-size:.9rem;white-space:nowrap;transition:all .15s;}
.tj-nav-hover-item i{font-size:1rem;width:18px;text-align:center;color:#bbb;}
.tj-nav-hover-item:hover{background:#fff1ea;color:#e8744a;text-decoration:none;}
.tj-nav-hover-item:hover i{color:#e8744a;}
.tj-nav-hover-item.active{background:#fff8e1;color:#e8744a;font-weight:700;}
.tj-nav-hover-item.active i{color:#e8744a;}
@media (max-width:1290px){.tj-nav-hover-drop{min-width:140px;}}

/* ===== 全局左侧竖排导航（参 liblib.tv ===== */
.tj-sidenav{
  position:fixed;left:0;top:0;bottom:0;width:212px;
  background:#ffffff;
  border-right:1px solid #f0efe9;
  display:flex;flex-direction:column;
  z-index:900;
  font-family:inherit;
  transition:transform .2s;
}
.tj-sidenav-logo{
  display:flex;align-items:center;gap:10px;
  padding:18px 20px;border-bottom:1px solid #f4f2ec;
  text-decoration:none;color:#1a1a2e;
}
.tj-sidenav-logo-icon{
  width:34px;height:34px;border-radius:9px;
  background:linear-gradient(135deg,#f47b4f,#e8744a);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;flex-shrink:0;
  box-shadow:0 4px 12px rgba(232,116,74,.25);
}
.tj-sidenav-logo-text{display:flex;flex-direction:column;line-height:1.15;}
.tj-sidenav-logo-text strong{font-size:1.05rem;font-weight:800;letter-spacing:.5px;}
.tj-sidenav-logo-text small{font-size:.65rem;color:#999;margin-top:1px;}

.tj-sidenav-nav{flex:1;padding:10px 8px;overflow-y:auto;}
.tj-sidenav-nav::-webkit-scrollbar{width:4px;}
.tj-sidenav-nav::-webkit-scrollbar-thumb{background:#e8e8e8;border-radius:4px;}

.tj-sidenav-group{position:relative;margin:2px 0;}
.tj-sidenav-item{
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;border-radius:10px;
  color:#555;text-decoration:none;
  font-size:.92rem;font-weight:600;
  transition:all .15s;
}
.tj-sidenav-item i{font-size:1.05rem;width:18px;text-align:center;color:#999;}
.tj-sidenav-item:hover{background:#fff1ea;color:#e8744a;}
.tj-sidenav-item:hover i{color:#e8744a;}
.tj-sidenav-item.active{background:linear-gradient(135deg,#f47b4f,#e8744a);color:#fff;}
.tj-sidenav-item.active i{color:#fff;}
.tj-sidenav-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tj-sidenav-arrow{font-size:.65rem !important;opacity:.45;}
.tj-sidenav-item.active .tj-sidenav-arrow{color:#fff;opacity:.8;}

.tj-sidenav-group.has-sub .tj-sidenav-sub{
  position:absolute;left:100%;top:0;
  min-width:160px;background:#fff;
  border:1px solid #f0efe9;border-radius:12px;
  padding:6px;box-shadow:0 12px 30px rgba(20,20,46,.12);
  display:none;z-index:1000;
}
.tj-sidenav-group.has-sub:hover .tj-sidenav-sub{display:block;}
.tj-sidenav-sub-item{
  display:block;padding:8px 14px;border-radius:8px;
  color:#555;text-decoration:none;font-size:.88rem;white-space:nowrap;
}
.tj-sidenav-sub-item:hover{background:#fff1ea;color:#e8744a;text-decoration:none;}
.tj-sidenav-sub-item.active{background:#fff8e1;color:#e8744a;font-weight:700;}

.tj-sidenav-bottom{
  border-top:1px solid #f4f2ec;padding:12px;
  background:#fbfaf8;flex-shrink:0;
}
.tj-sidenav-user{
  display:flex;align-items:center;gap:10px;
  padding:6px 8px;border-radius:8px;
  text-decoration:none;color:#1a1a2e;
}
.tj-sidenav-user:hover{background:#fff1ea;text-decoration:none;}
.tj-sidenav-avatar{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,#f47b4f,#e8744a);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:.95rem;flex-shrink:0;
}
.tj-sidenav-user-info{flex:1;min-width:0;line-height:1.2;}
.tj-sidenav-user-info strong{display:block;font-size:.88rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tj-sidenav-user-info small{font-size:.7rem;color:#999;}
.tj-sidenav-logout{
  display:flex;align-items:center;justify-content:center;gap:6px;
  padding:8px;border-radius:8px;color:#999;
  text-decoration:none;font-size:.82rem;margin-top:6px;
  transition:all .15s;
}
.tj-sidenav-logout:hover{background:#fff1ea;color:#e63946;text-decoration:none;}

.tj-sidenav-guest-tip{
  font-size:.78rem;color:#999;text-align:center;margin-bottom:8px;
}
.tj-sidenav-guest-btns{display:flex;flex-direction:column;gap:6px;}
.tj-sidenav-login{
  text-align:center;padding:8px;border-radius:8px;
  font-weight:700;text-decoration:none;font-size:.85rem;
}

/* 内容区让出侧栏宽度（仅桌面） */
@media (min-width:1024px){
  body{padding-left:212px;}
  .tj-header-inner,.tj-layout,.tj-announce-inner,.subnav-inner{
    max-width:1200px;
    margin-right:auto;margin-left:auto;
  }
}
@media (max-width:1023px){
  .tj-sidenav{display:none;}
  body{padding-left:0;}
}

/* ===== super-i 暖白橙主题色调微 ===== */
body{background:#fbfaf8;}
.tj-header{background:rgba(255,255,255,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(240,239,233,.9);}
.tj-subnav-inner,.subnav{background:#fff;}
/* 主体内容卡片/链接 hover 主色统一 super-i 暖橙（覆盖部分旧金色 */
.tj-side-action-item:hover,.ad-act:hover{color:#e8744a;}
.btn-gold{background:linear-gradient(135deg,#f47b4f,#e8744a)!important;color:#fff!important;border:none!important;}
.btn-gold:hover{box-shadow:0 8px 22px rgba(232,116,74,.4)!important;}
/* 全局主色统一到暖橙（按钮/链接 active 视觉一致性） */
:root{
  --tj-orange:#f47b4f;
  --tj-orange-dark:#e8744a;
  --tj-orange-soft:#fff1ea;
}

/* ===== 背景纯白 + Header/子导航透明 ===== */
body{background:#fff !important;}
.tj-header{background:transparent !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;border-bottom-color:rgba(0,0,0,.05) !important;}
.subnav{background:transparent !important;}
.tj-sidenav{background:#fff;}
.tj-sidenav-bottom{background:#fff !important;border-top-color:#f0f0f0 !important;}
/* 未登录首 Landing 中间内容背景透明（露出白底） */
.landing{background:#fff !important;}

/* ===== TjSidenav v2  发布按钮 / 更多并入 / 导航上下居中 ===== */
.tj-sidenav-nav{
  flex:1;padding:12px 8px;overflow-y:auto;
  display:flex;flex-direction:column;
  justify-content:center;         /* 导航组上下居 */
  gap:1px;
}
.tj-sidenav-plus-wrap{position:relative;display:flex;justify-content:center;margin:2px 0 10px;}
.tj-sidenav-plus{
  width:44px;height:44px;border-radius:12px;
  background:linear-gradient(135deg,#f47b4f,#e8744a);
  color:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:1.35rem;line-height:1;
  box-shadow:0 6px 16px rgba(232,116,74,.35);
  transition:all .18s;position:relative;
}
.tj-sidenav-plus:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 10px 22px rgba(232,116,74,.45);}
.tj-sidenav-plus.open{transform:rotate(90deg);background:linear-gradient(135deg,#e8744a,#d9572e);}
.tj-sidenav-plus-drop{
  position:absolute;left:50%;top:calc(100% + 8px);
  transform:translateX(-50%);
  min-width:170px;background:#fff;border:1px solid #f0efe9;
  border-radius:14px;padding:6px;
  box-shadow:0 16px 40px rgba(20,20,46,.16);
  display:flex;flex-direction:column;gap:1px;z-index:1200;
}
.tj-sidenav-plus-item{
  display:flex;align-items:center;gap:10px;
  padding:9px 14px;border-radius:9px;
  color:#444;text-decoration:none;font-size:.9rem;white-space:nowrap;
  transition:all .12s;
}
.tj-sidenav-plus-item i{width:16px;text-align:center;color:#aaa;font-size:.95rem;}
.tj-sidenav-plus-item:hover{background:#fff1ea;color:#e8744a;text-decoration:none;}
.tj-sidenav-plus-item:hover i{color:#e8744a;}
.tj-sidenav-plus-item.active{background:#fff8e1;color:#e8744a;font-weight:700;}
.tj-sidenav-plus-item:first-child{border-bottom:1px solid #f2efe9;border-radius:9px 9px 0 0;padding-bottom:10px;margin-bottom:2px;color:#1a1a2e;font-weight:700;}
.tj-sidenav-plus-item:first-child i{color:#e8744a;}
.tj-sidenav-divider{height:1px;background:#f0efe9;margin:10px 10px 8px;}
.tj-sidenav-more-item{padding:7px 12px;font-size:.85rem;color:#888;}
.tj-sidenav-more-item i{font-size:.95rem;color:#bbb;}

/* ===== 顶部导航回归（全屏大按钮 + 中间内容全屏 ===== */
body{padding-left:0 !important;background:#fff;}
.tj-header{position:sticky;top:0;z-index:1000;transition:transform .3s ease;box-shadow:0 1px 8px rgba(20,20,46,.04);}
.tj-header.tj-header-hidden{transform:translateY(-102%);}
.tj-header-inner{width:100%;max-width:none;margin:0;padding:0 28px;height:66px;gap:22px;}
.tj-header .tj-logo{padding-right:6px;}
.tj-nav{flex:1;display:flex;align-items:center;gap:2px;overflow:visible;justify-content:flex-start;}
.tj-nav-item{padding:10px 20px !important;font-size:1rem !important;gap:7px;}
.tj-nav-item i{font-size:1.1rem !important;}
.tj-nav-hover-item{padding:11px 16px !important;font-size:.92rem !important;}
.tj-nav-publish{position:relative;}
.tj-nav-publish-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:10px 20px;border-radius:12px;
  background:linear-gradient(135deg,#f47b4f,#e8744a);color:#fff;
  font-weight:800;font-size:1rem;cursor:pointer;text-decoration:none;
  box-shadow:0 6px 18px rgba(232,116,74,.32);
  margin-right:4px;transition:all .2s;
}
.tj-nav-publish-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(232,116,74,.42);color:#fff;text-decoration:none;}
.tj-nav-home-item{font-weight:800;}
.tj-nav-home-item i{width:20px;}
.tj-layout{width:100%;max-width:none;margin:16px auto 0;padding:0 28px;box-sizing:border-box;}
.subnav-inner,.tj-announce-inner{width:100%;max-width:none;margin:0 auto;padding-left:28px;padding-right:28px;box-sizing:border-box;}
.tj-header-right{gap:10px;}
/* 移除侧栏相关限制影响 */
.tj-sidenav{display:none !important;}
@media (max-width:1023px){
  .tj-nav{overflow-x:auto;}
  .tj-nav-item{padding:8px 12px !important;font-size:.9rem !important;}
  .tj-header-inner{padding:0 12px;gap:10px;}
  .tj-layout{padding:0 12px;}
}

/* ===== v3 顶栏 900 自适应 / 导航靠右 / 发布回搜索左 / 居中大搜 ===== */
.tj-header-inner,.tj-layout,.tj-announce-inner,.subnav-inner{
  width:100%;max-width:1900px;
  margin-left:auto;margin-right:auto;
  box-sizing:border-box;
}
.tj-nav{flex:1;display:flex;justify-content:flex-end;align-items:center;gap:2px;overflow:visible;min-width:0;}
.tj-nav-item{padding:10px 16px !important;}
.tj-header-right{flex-shrink:0;display:flex;align-items:center;gap:8px;margin-left:10px;}
.tj-search-mini{
  width:40px;height:40px;border-radius:50%;
  background:#f5f4f1;border:1px solid #eee;color:#666;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;transition:all .18s;flex-shrink:0;
}
.tj-search-mini:hover{background:#fff1ea;color:#e8744a;border-color:#f5c9a8;transform:scale(1.06);}
/* 大搜索浮 */
.tj-search-overlay{
  position:fixed;inset:0;z-index:9000;
  background:rgba(255,255,255,.62);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:flex;justify-content:center;align-items:flex-start;
  padding-top:17vh;
  animation:tj-fade .16s ease;
}
.tj-search-panel{
  width:min(680px,92vw);background:#fff;
  border:1px solid rgba(0,0,0,.06);border-radius:22px;
  box-shadow:0 24px 70px rgba(20,20,46,.18);
  padding:28px 30px 22px;position:relative;
  animation:tj-pop .24s cubic-bezier(.16,1,.3,1);
}
.tj-search-close{
  position:absolute;top:16px;right:16px;
  width:34px;height:34px;border-radius:50%;
  background:#f5f4f1;border:none;color:#888;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:.95rem;
  transition:all .15s;
}
.tj-search-close:hover{background:#fff1ea;color:#e63946;transform:rotate(90deg);}
.tj-search-panel-title{
  font-size:1rem;font-weight:700;color:#1a1a2e;
  display:flex;align-items:center;gap:8px;margin-bottom:16px;
}
.tj-search-panel-title i{color:#e8744a;}
.tj-search-big-row{display:flex;gap:10px;}
.tj-search-big-row input{
  flex:1;padding:15px 20px;font-size:1.08rem;
  border:2px solid #eee;border-radius:14px;outline:none;
  transition:border-color .2s,box-shadow .2s;color:#1a1a2e;
}
.tj-search-big-row input:focus{border-color:#f47b4f;box-shadow:0 0 0 4px rgba(244,123,79,.14);}
.tj-search-big-btn{
  padding:0 30px;border:none;border-radius:14px;cursor:pointer;
  background:linear-gradient(135deg,#f47b4f,#e8744a);color:#fff;
  font-size:1rem;font-weight:800;
  box-shadow:0 8px 20px rgba(232,116,74,.3);
  transition:transform .15s,box-shadow .15s;
}
.tj-search-big-btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(232,116,74,.4);}
.tj-search-hints{
  margin-top:18px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:.82rem;color:#aaa;
}
.tj-search-tag{
  padding:5px 14px;border-radius:100px;border:1px solid #eee;
  background:#fff;color:#666;cursor:pointer;font-size:.8rem;
  transition:all .15s;
}
.tj-search-tag:hover{background:#fff1ea;color:#e8744a;border-color:#f5c9a8;}
@keyframes tj-fade{from{opacity:0}to{opacity:1}}
@keyframes tj-pop{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@media (max-width:1440px){.tj-nav-item{padding:9px 12px !important;font-size:.95rem !important;}}
@media (max-width:1023px){
  .tj-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .tj-nav-item{padding:8px 10px !important;font-size:.88rem !important;}
  .tj-search-mini{display:none;}
  .tj-header-inner{padding:0 10px;gap:8px;}
}

/* ===== v4 顶栏打磨：纯白底 / Logo 与大菜单加大 / 会员金渐 / 发布渐变 ===== */
.tj-header{background:#fff !important;border-bottom:1px solid rgba(0,0,0,.06);box-shadow:0 2px 14px rgba(20,20,46,.05);}
.tj-header-inner{height:82px;padding:0 32px;gap:34px;}
.tj-logo-icon{width:50px;height:50px;border-radius:14px;font-size:1.7rem;}
.tj-logo-text strong{font-size:1.45rem;letter-spacing:.4px;}
.tj-logo-text small{font-size:.78rem;margin-top:2px;letter-spacing:1.5px;}
.tj-logo{padding-right:14px;border-right:1px solid #f0efe9;}
.tj-nav{gap:8px;}
.tj-nav-item{
  gap:9px;padding:13px 24px !important;
  font-size:1.08rem !important;font-weight:600;
}
.tj-nav-item i{font-size:1.25rem !important;}
.tj-nav-arrow{font-size:.7rem !important;}
.tj-nav-hover-drop{min-width:180px;}
.tj-header-right{gap:12px;margin-left:14px;}
.tj-nav-publish-btn{
  padding:13px 26px !important;font-size:1.06rem !important;
  background:linear-gradient(135deg,#ffa86a 0%,#f46f2e 55%,#e0551f 100%) !important;
  box-shadow:0 8px 22px rgba(240,111,46,.38) !important;
  border-radius:14px !important;
}
.tj-search-mini{width:46px;height:46px;font-size:1.15rem;background:#f6f5f2;border-radius:14px;}
/* 会员金渐变按钮（开通会员） */
.tj-member-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:11px 24px;border-radius:100px;
  background:linear-gradient(135deg,#f7d774 0%,#edbd4f 45%,#d99a33 100%);
  color:#6b4a08;font-size:.98rem;font-weight:800;text-decoration:none;
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 8px 22px rgba(217,154,51,.35), inset 0 1px 0 rgba(255,255,255,.6);
  transition:all .2s;
}
.tj-member-btn:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(217,154,51,.45);color:#5c3f05;text-decoration:none;}
/* 登录态会 gem 图标金色渐变文字 */
.tj-gem-gold{background:linear-gradient(160deg,#f5c34b,#d9941f 60%,#b97a1c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#d9941f;font-size:1.15rem;}
@media (max-width:1440px){
  .tj-header-inner{gap:20px;padding:0 22px;}
  .tj-nav-item{padding:11px 16px !important;font-size:.98rem !important;}
  .tj-logo-icon{width:44px;height:44px;font-size:1.5rem;}
  .tj-logo-text strong{font-size:1.28rem;}
}
@media (max-width:1023px){
  .tj-header-inner{height:66px;gap:10px;padding:0 12px;}
  .tj-nav{gap:2px;}
  .tj-nav-item{padding:8px 10px !important;font-size:.88rem !important;}
  .tj-logo-icon{width:38px;height:38px;font-size:1.25rem;}
  .tj-logo-text strong{font-size:1.05rem;}
  .tj-logo-text small{display:none;}
  .tj-member-btn{padding:8px 14px;font-size:.85rem;}
}

/* ===== v5：Logo 区加宽（图标+平台 slogan + 菜单间距协调 ===== */
.tj-logo{flex:0 0 auto;gap:16px;padding-right:30px;border-right:1px solid #f0efe9;}
.tj-logo-icon{width:56px;height:56px;border-radius:16px;font-size:1.9rem;}
.tj-logo-text{min-width:280px;display:flex;flex-direction:column;justify-content:center;line-height:1.12;}
.tj-logo-text strong{font-size:1.6rem;font-weight:900;letter-spacing:.6px;}
.tj-logo-text small{font-size:.96rem;color:#b08d57;font-weight:600;letter-spacing:2px;margin-top:4px;}
.tj-header-inner{gap:26px;}
.tj-nav{gap:10px;}
.tj-nav-item{padding:12px 18px !important;font-size:1.04rem !important;}
.tj-header-right{gap:12px;}
@media (max-width:1600px){
  .tj-logo-text{min-width:236px;}
  .tj-logo-icon{width:52px;height:52px;}
  .tj-logo-text strong{font-size:1.42rem;}
  .tj-nav-item{padding:11px 14px !important;font-size:1rem !important;}
}
@media (max-width:1440px){
  .tj-header-inner{gap:16px;}
  .tj-logo{padding-right:18px;gap:12px;}
  .tj-logo-text{min-width:200px;}
  .tj-logo-text strong{font-size:1.3rem;}
  .tj-logo-text small{font-size:.86rem;letter-spacing:1px;}
  .tj-logo-icon{width:46px;height:46px;font-size:1.6rem;}
  .tj-nav-item{padding:10px 12px !important;font-size:.96rem !important;}
}
@media (max-width:1200px){
  .tj-logo-text{min-width:auto;}
  .tj-logo-text small{display:none;}
  .tj-logo{border-right:none;padding-right:8px;}
}

/* ===== v5b：避免导航与 logo 重叠 1700 收缩 + 可横向滚动兜底） ===== */
@media (max-width:1700px){
  .tj-nav{overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .tj-nav::-webkit-scrollbar{display:none;}
  /* ⚠️ 2026-10-07：上面这 overflow-x:auto 会把 overflow-y 的计算值一并变 auto
     （CSS 规则：一个轴 visible 时，另一个轴 visible 会升级为 auto）→ .tj-nav 变成
     滚动容器，把「教 / 广场」的下拉菜单（top:100%，高 150px+）裁 48px 高的导航条里 
     表现就是「窗口缩  700px 后悬停不再出现下拉」 
     这里只在悬停到「带下拉的菜单项」时放开裁剪：既保住菜单过长时横滑的兜底 
     又不会因为鼠标扫过导航条就关掉滚动 
     ⚠️「更 ⌄」的溢出下拉也在 .tj-nav 内（<1200 时），所以它 open / 悬停同样要放开裁剪 — 
        否则用键盘或触摸点开时（没有 :hover）菜单会被裁掉看不见 */
  .tj-nav:has(.tj-nav-hover:hover),
  .tj-nav:has(.tj-nav-more.open),
  .tj-nav:has(.tj-nav-more:hover){overflow:visible;}
  .tj-nav-item{flex:0 0 auto;padding:10px 12px !important;font-size:.95rem !important;}
  .tj-nav-hover,.tj-more-dropdown{flex:0 0 auto;}
  .tj-logo{gap:12px;padding-right:16px;}
  .tj-logo-icon{width:46px;height:46px;font-size:1.6rem;}
  .tj-logo-text{min-width:210px;}
  .tj-logo-text strong{font-size:1.3rem;}
  .tj-logo-text small{font-size:.9rem;letter-spacing:1.5px;margin-top:3px;}
}
@media (max-width:1500px){
  .tj-logo-text{min-width:190px;}
  .tj-logo-text strong{font-size:1.24rem;}
  .tj-logo-text small{letter-spacing:1px;}
  .tj-header-right{gap:8px;}
  .tj-nav-item{padding:9px 10px !important;font-size:.92rem !important;}
  .tj-nav-publish-btn{padding:11px 18px !important;font-size:.96rem !important;}
}
@media (max-width:1360px){
  .tj-logo-text{min-width:0;}
  .tj-logo-text small{display:none;}
  .tj-logo{border-right:none;}
  .tj-nav-item i{font-size:1.1rem !important;}
}

/* ===== v6：平台名 + slogan 同行（右侧），下方保留「看得见 · 赚得到 ===== */
.tj-logo-name{display:flex;align-items:baseline;gap:12px;flex-wrap:nowrap;}
.tj-logo-slogan{
  font-size:.98rem;color:#b08d57;font-weight:700;
  letter-spacing:2.5px;white-space:nowrap;
}
.tj-logo-text small{
  font-size:.74rem;color:#b6b3aa;
  font-weight:500;letter-spacing:2px;margin-top:5px;
}
@media (max-width:1700px){
  .tj-logo-slogan{font-size:.88rem;letter-spacing:2px;}
  .tj-logo-name{gap:8px;}
}
@media (max-width:1500px){
  .tj-logo-slogan{font-size:.8rem;letter-spacing:1.5px;}
}
@media (max-width:1360px){
  .tj-logo-slogan{display:none;}
  .tj-logo-text small{letter-spacing:1px;font-size:.68rem;}
}
@media (max-width:1200px){
  .tj-logo-text small{display:none;}
}

/* ===== v7：顶栏与内容区融合（去边框去阴影 ===== */
.tj-header{border-bottom:none !important;box-shadow:none !important;background:#fff !important;}

/* ============================================================
   UI 氛围升级 · 参 6il.super-i.cn（暖橙金 + 玻璃 + 光晕 
   设计语言：暖白纸 + 品牌暖橙渐变 + 顶部柔光 + 玻璃顶栏
   ============================================================ */
:root{
  --amb-ink:#201812;            /* 深墨标题 */
  --amb-brand1:#ffb27d;         /* 品牌  */
  --amb-brand2:#ff8a4c;         /* 品牌暖橙 */
  --amb-brand3:#f0602e;         /* 深橙 */
  --amb-gold1:#f7d774;          /* 会员 */
  --amb-gold2:#d99a33;
  --amb-paper:#fffdfa;          /* 纸感 */
}

/* ---- 全局纸感背景 + 顶部双光晕氛 ---- */
body{
  background:
    radial-gradient(1150px 500px at 16% -12%, rgba(255,176,122,.20), transparent 62%),
    radial-gradient(1050px 520px at 90% -10%, rgba(255,150,90,.14), transparent 60%),
    linear-gradient(180deg,#ffffff 0%,#fffdfa 100%);
  background-attachment:fixed;
}

/* ---- 玻璃顶栏：顶部光晕微微透入，仍无边框阴影（与内容融合） ---- */
.tj-header{
  background:rgba(255,255,255,.74) !important;
  backdrop-filter:blur(18px) saturate(1.5);
  -webkit-backdrop-filter:blur(18px) saturate(1.5);
  border-bottom:none !important;box-shadow:none !important;
}
/* hover 下拉面板统一氛围 */
.tj-nav-hover-drop,.tj-more-menu,.tj-search-panel{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}

/* ---- 频道 hero（Library/Column/Tutorial…共用）暖金氛围升级 ---- */
.lib-hero{
  background:
    radial-gradient(560px 300px at 86% -30%, rgba(255,255,255,.95), transparent 60%),
    radial-gradient(760px 340px at -8% 130%, rgba(255,196,150,.5), transparent 62%),
    radial-gradient(520px 240px at 45% -60%, rgba(255,214,170,.55), transparent 70%),
    linear-gradient(135deg,#fff8f1 0%,#ffefe3 55%,#fff6ee 100%);
  border:1px solid rgba(245,190,150,.5);
  box-shadow:0 24px 60px -34px rgba(196,120,60,.55), inset 0 1px 0 rgba(255,255,255,.9);
  position:relative;overflow:hidden;
}
.lib-hero::before{content:'';position:absolute;right:-70px;top:-80px;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,150,80,.35),transparent 65%);}
.lib-hero::after{content:'';position:absolute;left:-40px;bottom:-110px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,rgba(247,215,116,.4),transparent 65%);}
.lib-hero > *{position:relative;z-index:1;}
.lib-hero-title{
  font-size:clamp(1.5rem,3vw,2.15rem) !important;font-weight:900 !important;
  color:var(--amb-ink) !important;letter-spacing:-.3px;line-height:1.15;
}
.lib-hero-badge{
  background:rgba(255,255,255,.85) !important;color:#b64e14 !important;
  border-color:rgba(240,150,90,.5) !important;box-shadow:0 4px 12px -6px rgba(200,100,40,.5);
  letter-spacing:.4px;
}
.lib-hero-sub{color:#a3785a !important;font-size:.95rem !important;}
.lib-hero-stats b{color:var(--amb-brand3) !important;}
.lib-hero-th{background:rgba(255,255,255,.85);border-color:#f7d9b8;color:#8a6a48;}

/* ---- 首页 Landing hero 氛围加强（不改结构） ---- */
.landing-hero{
  background:
    radial-gradient(700px 420px at 50% -30%, rgba(255,196,150,.5), transparent 65%),
    radial-gradient(900px 500px at 8% 115%, rgba(255,222,185,.55), transparent 62%),
    radial-gradient(600px 340px at 95% 120%, rgba(255,214,170,.45), transparent 60%),
    linear-gradient(160deg,#fff5ec 0%,#ffffff 45%,#ffefdf 100%) !important;
}
.landing-hero h2{letter-spacing:-.5px;}
.landing-hero + *{position:relative;}

/* ---- 内容卡片 / 排序 精致化（专业纸感层次 ---- */
.lib-topbar{
  background:rgba(255,255,255,.85);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-color:rgba(232,222,212,.6);
  box-shadow:0 10px 28px -22px rgba(120,80,40,.35);
}
.lib-tab{transition:all .18s;border-radius:100px;padding:7px 16px;}
.lib-tab:hover{background:#fff3ea;color:#b64e14;}
.lib-tab.active{background:linear-gradient(135deg,#ff9a5a,#f0602e);color:#fff!important;
  border-bottom:none!important;box-shadow:0 6px 16px -6px rgba(240,96,46,.65);}

/* ---- 全局按钮 / 交互质感 ---- */
.btn-gold{box-shadow:0 10px 26px -10px rgba(240,96,46,.6);}
.btn-gold:hover{filter:brightness(1.05);}
a,button{transition:color .18s,background .18s,box-shadow .18s,transform .18s,border-color .18s;}
:focus-visible{outline:2px solid #ff8a4c;outline-offset:2px;border-radius:6px;}

/* ---- 全局链接/强调色落 ---- */
.lib-empty a{color:#e8744a;}

/* 小屏环境：光晕减弱避免干扰阅 */
@media (max-width:767px){
  body{background:radial-gradient(900px 420px at 20% -14%, rgba(255,176,122,.18), transparent 60%),#fffdfa;}
  .lib-hero{box-shadow:none;}
}

/* ============================================================
   Column 页紫 hero 改为暖金氛围（融入整体）
   ============================================================ */
.col-hero{
  background:
    radial-gradient(560px 300px at 86% -30%, rgba(255,255,255,.95), transparent 60%),
    radial-gradient(760px 340px at -8% 130%, rgba(255,196,150,.5), transparent 62%),
    radial-gradient(520px 240px at 45% -60%, rgba(255,214,170,.55), transparent 70%),
    linear-gradient(135deg,#fff8f1 0%,#ffefe3 55%,#fff6ee 100%) !important;
  border:1px solid rgba(245,190,150,.5) !important;
  box-shadow:0 24px 60px -34px rgba(196,120,60,.55) !important;
  position:relative;overflow:hidden;
}
.col-hero::before{content:'';position:absolute;right:-70px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(255,150,80,.35),transparent 65%);}
.col-hero::after{content:'';position:absolute;left:-40px;bottom:-110px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(247,215,116,.4),transparent 65%);}
.col-hero > *{position:relative;z-index:1;}
.col-hero-badge{background:rgba(255,255,255,.85) !important;color:#b64e14 !important;border-color:rgba(240,150,90,.5)!important;}
.col-hero-title{color:var(--amb-ink) !important;font-size:clamp(1.6rem,3vw,2.15rem) !important;font-weight:900;letter-spacing:-.3px;}
.col-hero-title span{color:#b64e14 !important;}
.col-hero-sub{color:#a3785a !important;}
.col-hero-stats b{color:var(--amb-brand3) !important;}
/* col-featured 区域中的紫色  暖金 */
.col-feat-cover{background:linear-gradient(135deg,#ffb27d,#f0602e) !important;}
.col-feat-card{border-color:rgba(245,190,150,.45);}

/* ---- 修正：氛围背景需压过早先的纯 !important（仍以白为底，仅叠顶部柔光） ---- */
body{
  background:
    radial-gradient(1150px 500px at 16% -12%, rgba(255,176,122,.20), transparent 62%),
    radial-gradient(1050px 520px at 90% -10%, rgba(255,150,90,.14), transparent 60%),
    linear-gradient(180deg,#ffffff 0%,#fffdfa 100%) !important;
  background-attachment:fixed;
}

/* ============================================================
   顶部导航菜单：图 名称 纯黑精致；选中态仅变色（无背景 下划线）
   ============================================================ */
.tj-nav-item{
  color:#141414 !important;
  background:transparent !important;
  font-weight:600 !important;
  box-shadow:none !important;
}
.tj-nav-item i{color:#141414 !important;opacity:.92;}
.tj-nav-item .nav-text-short{color:inherit !important;}
/* hover：仅轻微变色，不做背景块 */
.tj-nav-item:hover{color:#e8744a !important;background:transparent !important;}
.tj-nav-item:hover i{color:#e8744a !important;}
/* 选中态：只改图标/文字为品牌色，无背景、无下划 */
.tj-nav-item.active{
  color:#e8744a !important;
  background:transparent !important;
  font-weight:700 !important;
}
.tj-nav-item.active::after{display:none !important;}
.tj-nav-item.active i{color:#e8744a !important;opacity:1;}
/* 「更多」入口与频道项同风格 */
.tj-more-toggle{color:#141414 !important;background:transparent !important;}
.tj-more-toggle:hover{color:#e8744a !important;background:transparent !important;}

/* ============================================================
   Typography · 对齐 super-i 字体体系
   body: Inter(西文数字) + Poppins 装饰 + PingFang/YaHei(中文)
   标题: 粗重(800-900) 收紧字距；hero/详情大标题用 Noto Serif SC 衬线营造内容质 
   ============================================================ */
body{
  font-family: Inter, Poppins, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", Arial, sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
h1,h2,h3,h4,h5,.writer-title,.pub2-editor h3{font-family: inherit;}
/* 频道/详情 hero 大标  Noto Serif SC 衬线（内容平台质感） */
.lib-hero-title,
.col-hero-title,
.ad-hero-title,
.tut-detail h1,
.article h1,
.landing-hero h1,
.landing-hero h2,
.ai-hero-title,
.cr-hero-title,
.up-profile h1{
  font-family: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif !important;
  font-weight: 900 !important;
  letter-spacing: .5px;
}
.lib-hero-title,.col-hero-title,.ad-hero-title,.ai-hero-title,.cr-hero-title{font-size:clamp(1.5rem,2.6vw,2rem) !important;}
/* 数据数字  Poppins/Inter 几何 */
.lib-hero-stats b,.col-hero-stats b,.tut-stats,.wb-stats b,.ad-stats b{font-family: Poppins, Inter, sans-serif !important;font-weight:700;}
/* 小号标签/徽章字距增强专业 */
.lib-hero-badge,.col-hero-badge,.tut-cat,.lib-tab,.subnav-item{font-family: Poppins, Inter, "PingFang SC", "Microsoft YaHei", sans-serif;letter-spacing:.3px;}

/* ============================================================
   Typography 微调 · 字重下调 00 过粗  纤细清晰 
   ============================================================ */
.lib-hero-title,.col-hero-title,.ad-hero-title,.ai-hero-title,.cr-hero-title,
.tut-detail h1,.article h1,.landing-hero h1,.landing-hero h2,.up-profile h1,
.tut-detail .ad-hero h1{
  font-weight:600 !important;
}
.lib-hero-stats b,.col-hero-stats b,.ad-stats b{font-weight:600 !important;}
.tut-title{font-weight:700 !important;}
/* 详情正文 h2/h3 标题不再过粗 */
.tut-content h2,.tut-content h3,.article-content h2,.article-content h3{font-weight:700 !important;}

/* logo 品牌 / 子导航频道名 适度减重 */
.tj-logo-text strong{font-weight:800 !important;}
.subnav-name{font-weight:700 !important;}

/* ============================================================
   v9 主题重塑 · 蓝紫科技感（参 logo：青绿电 + 紫芯 + 深金属）
   设计语言：深色基 +  cyan) violet)电光渐变 + 玻璃质感
   ============================================================ */
:root{
  --bg-deep:#08091a;
  --bg-base:#0e0f24;
  --bg-1:#14152e;
  --bg-2:#1b1c3a;
  --line-1:#2a2c52;
  --cyan:#00d6c2;
  --cyan-bright:#4cd8e0;
  --cyan-deep:#06a39a;
  --violet:#8a3bff;
  --violet-bright:#a78bfa;
  --violet-deep:#5a1dc9;
  --grad-tech:linear-gradient(135deg,#00d6c2 0%,#8a3bff 100%);
  --grad-tech-soft:linear-gradient(135deg,#4cd8e0 0%,#a78bfa 100%);
  --grad-tech-deep:linear-gradient(135deg,#06a39a 0%,#5a1dc9 100%);
  --glass-bg:rgba(28,28,58,.42);
  --glass-bd:rgba(167,139,250,.22);
  --txt:#e7e9f7;
  --txt-2:#aab0d4;
  --txt-3:#7c83a8;
}

/* ---- 全站深色基底 + 青紫双光 ---- */
body{
  background:
    radial-gradient(1300px 600px at 50% -8%, rgba(138,59,255,.32), transparent 60%),
    radial-gradient(1100px 560px at 50% 110%, rgba(0,214,194,.18), transparent 60%),
    linear-gradient(180deg,var(--bg-deep) 0%,var(--bg-base) 40%,var(--bg-1) 100%) !important;
  background-attachment:fixed !important;
  color:var(--txt) !important;
}
/* 顶部玻璃导航（深色玻璃） */
.tj-header{
  background:rgba(14,15,36,.7) !important;
  backdrop-filter:blur(20px) saturate(1.6) !important;
  -webkit-backdrop-filter:blur(20px) saturate(1.6) !important;
  border-bottom:1px solid rgba(167,139,250,.15) !important;
  box-shadow:none !important;
  color:var(--txt) !important;
}
.tj-header,.tj-header *{color:inherit;}
/* 导航菜单（默认白，激活电光紫 */
.tj-nav-item{color:#eaeaf6 !important;background:transparent !important;font-weight:600 !important;}
.tj-nav-item i{color:#eaeaf6 !important;}
.tj-nav-item:hover{color:var(--cyan-bright) !important;background:transparent !important;}
.tj-nav-item:hover i{color:var(--cyan-bright) !important;}
.tj-nav-item.active{color:var(--cyan-bright) !important;font-weight:700 !important;background:transparent !important;text-shadow:0 0 14px rgba(76,216,224,.45) !important;}
.tj-nav-item.active i{color:var(--cyan-bright) !important;}
.tj-nav-item.active::after{display:none !important;}
.tj-more-toggle{color:#eaeaf6 !important;background:transparent !important;}
/* logo 平台 + slogan */
.tj-logo-text strong{color:transparent !important;font-weight:800 !important;
  background:var(--grad-tech);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.tj-logo-text small{color:var(--violet-bright) !important;letter-spacing:2px !important;}
.tj-logo{border-right:1px solid var(--line-1) !important;}
/* 玻璃顶栏 logo 图标调深金属底色适配 */
.tj-logo-icon svg{display:block;filter:drop-shadow(0 6px 18px rgba(138,59,255,.35));}
.tj-logo-icon{background:transparent !important;box-shadow:none !important;}
/* 子导航透明 + 字色 */
.subnav,.subnav-inner{background:transparent !important;border-bottom:none !important;}
.subnav-name{color:#fff !important;font-weight:700 !important;}
.subnav-item{color:var(--txt-2) !important;}
.subnav-item.active{color:var(--cyan-bright) !important;}
.subnav-item.active::after{background:var(--grad-tech) !important;}
/* 公告 */
.tj-announce{background:rgba(28,28,58,.45);color:var(--txt-2);border:1px solid rgba(167,139,250,.18);border-radius:14px;}
/* 频道 Hero · 深色玻璃 + 青紫光晕 */
.lib-hero,.col-hero{
  background:
    radial-gradient(560px 300px at 86% -30%, rgba(76,216,224,.20), transparent 60%),
    radial-gradient(760px 340px at -8% 130%, rgba(167,139,250,.28), transparent 62%),
    linear-gradient(135deg,rgba(20,21,46,.72) 0%,rgba(28,28,58,.72) 55%,rgba(20,21,46,.72) 100%) !important;
  border:1px solid rgba(167,139,250,.25) !important;
  box-shadow:0 24px 60px -34px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.06) !important;
  position:relative;overflow:hidden;
}
.lib-hero::before,.col-hero::before{content:'';position:absolute;right:-70px;top:-80px;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(167,139,250,.45),transparent 65%);}
.lib-hero::after,.col-hero::after{content:'';position:absolute;left:-40px;bottom:-110px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,rgba(0,214,194,.35),transparent 65%);}
.lib-hero > *,.col-hero > *{position:relative;z-index:1;}
.lib-hero-title,.col-hero-title,.ai-hero-title,.cr-hero-title,.up-profile h1,.tut-detail h1,.article h1,.landing-hero h1,.landing-hero h2,.ad-hero-title{
  color:transparent !important;
  background:var(--grad-tech-soft);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  font-weight:700 !important;letter-spacing:.5px;
}
.lib-hero-sub,.col-hero-sub{color:var(--txt-2) !important;}
.lib-hero-badge,.col-hero-badge{
  background:rgba(167,139,250,.16) !important;color:var(--cyan-bright) !important;
  border:1px solid rgba(0,214,194,.4) !important;
}
.lib-hero-stats b,.col-hero-stats b{color:var(--cyan-bright) !important;}
.lib-hero-th{background:rgba(167,139,250,.12);border-color:rgba(0,214,194,.35);color:var(--txt-2);}
/* 排序 / 搜索玻璃 */
.lib-topbar{
  background:rgba(20,21,46,.55) !important;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(167,139,250,.18) !important;
  color:var(--txt);
}
.lib-tab{color:var(--txt-2) !important;border-bottom:2px solid transparent !important;background:transparent !important;}
.lib-tab:hover{background:rgba(167,139,250,.12) !important;color:var(--cyan-bright) !important;}
.lib-tab.active{background:var(--grad-tech) !important;color:#fff !important;border-bottom:none !important;
  box-shadow:0 6px 18px -6px rgba(76,216,224,.55) !important;}
/* 全局按钮渐变 · 青→ */
.btn-gold,.tj-search-big-btn{background:var(--grad-tech) !important;color:#fff !important;border:none !important;
  box-shadow:0 10px 28px -8px rgba(76,216,224,.45),0 6px 18px -6px rgba(167,139,250,.45) !important;}
.btn-gold:hover,.tj-search-big-btn:hover{filter:brightness(1.1);box-shadow:0 14px 32px -8px rgba(76,216,224,.65),0 10px 24px -6px rgba(167,139,250,.65) !important;}
/* 会员金按钮（保留金感配色，但与整体融合） */
.tj-member-btn{
  background:linear-gradient(135deg,#f7d774 0%,#e8b843 50%,#c98a2e 100%) !important;
  color:#5b3c00 !important;
  border:1px solid rgba(255,255,255,.4) !important;
  box-shadow:0 8px 22px rgba(217,154,51,.4),inset 0 1px 0 rgba(255,255,255,.6) !important;
}
.tj-member-btn:hover{color:#4d3400 !important;}
/* Hero 旁大卡片 / 教程卡：深色玻璃 */
.tut-card,.col-feat-card,.lib-card,.ad-card{
  background:rgba(28,28,58,.42) !important;
  border:1px solid rgba(167,139,250,.18) !important;
  box-shadow:0 16px 36px -22px rgba(0,0,0,.6) !important;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.tut-card:hover,.col-feat-card:hover,.lib-card:hover,.ad-card:hover{
  border-color:rgba(0,214,194,.45) !important;
  box-shadow:0 22px 50px -22px rgba(0,214,194,.4),0 0 0 1px rgba(167,139,250,.18) !important;
  transform:translateY(-2px);
}
.tut-card .tut-title,.col-feat-card,.lib-card{color:#fff !important;}
.tut-cover{background:linear-gradient(135deg,#1c1c3a,#2c1d50) !important;}
.tut-cover,.col-feat-cover,.lib-cover{position:relative;overflow:hidden;}
.tut-cover::after,.col-feat-cover::after{content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(0,214,194,.2),rgba(167,139,250,.2));mix-blend-mode:overlay;}
/* 通用白卡片场景：玻璃 */
.tj-side-card,.tut-related-card,.ad-act,.tut-actions,.tut-stat{
  background:rgba(28,28,58,.42) !important;color:var(--txt) !important;
  border:1px solid rgba(167,139,250,.15) !important;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
/* 链接色：v9 深色层遗留的全局强制已弃用，文字链统一见文末「文字链规范层 */
/* 全局文字色（页面正文/段落 */
.tj-layout,.ad-content,.article-content,.tut-content,.cr-content,.ai-content,.landing,.landing-hero,.landing-section,.landing-section-2,.landing-section-3,.landing-section-4,.landing-section-5,.landing-section-6,.lib-section,.col-featured,.ai-section{color:var(--txt) !important;}
.tj-layout h1,.tj-layout h2,.tj-layout h3,.tj-layout h4,.tut-content h2,.tut-content h3,.article-content h2,.article-content h3{color:#fff !important;}
.tj-layout p,.ad-content p,.article-content p,.tut-content p{color:var(--txt-2) !important;}
.tut-content pre{background:rgba(20,21,46,.7) !important;color:var(--cyan-bright) !important;border:1px solid rgba(167,139,250,.18);}
.tut-content blockquote{border-left:3px solid var(--cyan) !important;background:rgba(0,214,194,.08) !important;color:var(--txt-2) !important;}
/* 头像 / 圆形图标渐变 */
.tj-avatar,.tj-sidenav-avatar,.tj-sidenav-logo-icon,.tj-avatar-wrap .tj-avatar{background:var(--grad-tech) !important;color:#fff !important;}
/* 搜索输入 */
.tj-search-box,.tj-search-mini,.lib-search{background:rgba(28,28,58,.5) !important;border:1px solid rgba(167,139,250,.22) !important;color:var(--txt) !important;}
.tj-search-mini:hover{background:rgba(0,214,194,.18) !important;border-color:rgba(0,214,194,.5) !important;color:var(--cyan-bright) !important;}
.tj-search-mini:hover i{color:var(--cyan-bright) !important;}
/* 发布按钮渐变（青→紫 */
.tj-nav-publish-btn{
  background:linear-gradient(135deg,#00d6c2 0%,#8a3bff 100%) !important;color:#fff !important;
  box-shadow:0 8px 24px -8px rgba(76,216,224,.45),0 6px 18px -6px rgba(167,139,250,.45) !important;border:none !important;
}
.tj-nav-publish-btn:hover{filter:brightness(1.08);box-shadow:0 12px 30px -8px rgba(76,216,224,.55),0 10px 22px -6px rgba(167,139,250,.55) !important;color:#fff !important;}
/* 搜索浮层 */
.tj-search-overlay{background:rgba(8,9,26,.78) !important;backdrop-filter:blur(14px);}
.tj-search-panel{background:rgba(20,21,46,.85) !important;border:1px solid rgba(167,139,250,.3) !important;
  box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 0 1px rgba(0,214,194,.18) !important;}
.tj-search-close{background:rgba(167,139,250,.18) !important;color:var(--txt-2) !important;}
.tj-search-close:hover{background:var(--grad-tech) !important;color:#fff !important;}
.tj-search-panel-title{color:#fff !important;}
.tj-search-panel-title i{color:var(--cyan-bright) !important;}
.tj-search-big-row input{background:rgba(11,12,30,.6) !important;border:2px solid rgba(167,139,250,.35) !important;color:#fff !important;}
.tj-search-big-row input:focus{border-color:var(--cyan) !important;box-shadow:0 0 0 4px rgba(0,214,194,.18);}
.tj-search-tag{background:rgba(28,28,58,.6) !important;border:1px solid rgba(167,139,250,.25) !important;color:var(--txt-2) !important;}
.tj-search-tag:hover{background:var(--grad-tech) !important;color:#fff !important;border-color:transparent;}
/* hover 下拉玻璃 */
.tj-nav-hover-drop,.tj-more-menu{
  background:rgba(14,15,36,.92) !important;backdrop-filter:blur(14px);
  border:1px solid rgba(167,139,250,.25) !important;
}
.tj-nav-hover-item,.dropdown-item{color:var(--txt) !important;}
.tj-nav-hover-item:hover,.dropdown-item:hover{background:rgba(167,139,250,.14) !important;color:var(--cyan-bright) !important;}
/* Footer / 整体调暗 */
footer,.landing-footer{background:transparent !important;border-top:1px solid rgba(167,139,250,.15) !important;color:var(--txt-2) !important;}
/* Landing hero 暗调 */
.landing-hero,.landing-section,.landing-section-2,.landing-section-3,.landing-section-4,.landing-section-5,.landing-section-6{
  background:
    radial-gradient(800px 420px at 50% -30%, rgba(167,139,250,.35), transparent 65%),
    radial-gradient(900px 520px at 8% 120%, rgba(0,214,194,.22), transparent 62%),
    linear-gradient(160deg,rgba(20,21,46,.85) 0%,rgba(28,28,58,.6) 45%,rgba(20,21,46,.85) 100%) !important;
  color:#fff !important;border-radius:18px;
}
.landing-hero h2{background:var(--grad-tech-soft);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.landing-card,.landing-section .card,.landing-section-2 .card,.landing-section-3 .card,.landing-section-4 .card,.landing-section-5 .card,.landing-section-6 .card{background:rgba(28,28,58,.5) !important;color:#fff !important;border:1px solid rgba(167,139,250,.18) !important;}
.landing-section h3,.landing-section .card h3,.landing-section-2 h3,.landing-section-3 h3{color:#fff !important;}
.landing-section p,.landing-section .card p{color:var(--txt-2) !important;}

/* ============================================================
   v10 主题修正 · 纯白底色 + 蓝紫渐变强调（logo 色系用做点缀 
   ============================================================ */
body{
  background:
    radial-gradient(1200px 520px at 18% -10%, rgba(0,214,194,.06), transparent 60%),
    radial-gradient(1100px 500px at 88% -8%, rgba(138,59,255,.05), transparent 60%),
    #ffffff !important;
  background-attachment:fixed !important;
  color:#1d1e2c !important;
}
/* Header 纯白玻璃 */
.tj-header{
  background:rgba(255,255,255,.82) !important;
  backdrop-filter:blur(18px) saturate(1.4) !important;
  -webkit-backdrop-filter:blur(18px) saturate(1.4) !important;
  border-bottom:none !important;
  box-shadow:none !important;
  color:#1d1e2c !important;
}
/* 导航：默认深灰黑，激活青→紫 */
.tj-nav-item{color:#24263a !important;background:transparent !important;font-weight:600 !important;}
.tj-nav-item i{color:#3a3d5c !important;}
.tj-nav-item:hover{color:#0b8f83 !important;background:transparent !important;}
.tj-nav-item:hover i{color:#0b8f83 !important;}
.tj-nav-item.active{color:#8a3bff !important;font-weight:700 !important;text-shadow:none !important;}
.tj-nav-item.active i{color:#8a3bff !important;}
.tj-more-toggle{color:#24263a !important;}
/* 发布按钮：青→紫渐变保留 */
.tj-nav-publish-btn{background:linear-gradient(135deg,#00d6c2 0%,#8a3bff 100%) !important;color:#fff !important;border:none !important;}
/* logo：平台名青→紫渐变文字保留、slogan 次级 */
.tj-logo-text strong{color:transparent !important;-webkit-text-fill-color:transparent !important;background:linear-gradient(135deg,#00b5a4 0%,#8a3bff 100%) !important;-webkit-background-clip:text;background-clip:text;}
.tj-logo-text small{color:#8a8ea8 !important;-webkit-text-fill-color:#8a8ea8 !important;}
.tj-logo{border-right:1px solid #eef0f6 !important;}
.tj-logo-icon svg{filter:drop-shadow(0 8px 20px rgba(138,59,255,.18));}
.tj-logo-icon{background:transparent !important;box-shadow:none !important;width:52px !important;height:52px !important;border-radius:14px !important;}
/* 子导航： 透明 + 深字 */
.subnav,.subnav-inner{background:transparent !important;}
.subnav-name{color:#1d1e2c !important;}
.subnav-item{color:#7c7f99 !important;}
.subnav-item:hover{color:#0b8f83 !important;}
.subnav-item.active{color:#8a3bff !important;}
.subnav-item.active::after{background:linear-gradient(90deg,#00d6c2,#8a3bff) !important;}
.tj-announce{background:linear-gradient(135deg,rgba(0,214,194,.06),rgba(138,59,255,.06)) !important;color:#55586f !important;border:1px solid rgba(138,59,255,.12) !important;}
/* Hero：纯白玻璃卡 + 青紫淡光 */
.lib-hero,.col-hero{
  background:
    radial-gradient(700px 340px at 90% -40%, rgba(0,214,194,.10), transparent 60%),
    radial-gradient(800px 380px at -6% 130%, rgba(138,59,255,.10), transparent 62%),
    linear-gradient(135deg,#ffffff 0%,#fbfbff 55%,#ffffff 100%) !important;
  border:1px solid rgba(138,59,255,.16) !important;
  box-shadow:0 18px 50px -32px rgba(138,59,255,.4),inset 0 1px 0 #fff !important;
  color:#1d1e2c !important;
}
.lib-hero::before,.col-hero::before{background:radial-gradient(circle,rgba(138,59,255,.16),transparent 65%);}
.lib-hero::after,.col-hero::after{background:radial-gradient(circle,rgba(0,214,194,.16),transparent 65%);}
.lib-hero-title,.col-hero-title{
  color:#1a1a2e !important;
  background:none !important;-webkit-text-fill-color:#1a1a2e !important;
  font-weight:800 !important;
}
.lib-hero-sub,.col-hero-sub{color:#6c6f8a !important;}
.lib-hero-badge,.col-hero-badge{background:rgba(138,59,255,.08) !important;color:#8a3bff !important;border:1px solid rgba(138,59,255,.25) !important;}
.lib-hero-stats b,.col-hero-stats b{color:#8a3bff !important;}
.lib-hero-th{background:rgba(0,214,194,.06);border-color:rgba(0,214,194,.3);color:#6c6f8a;}
/* topbar/tab */
.lib-topbar{background:#fff !important;border:1px solid rgba(138,59,255,.12) !important;box-shadow:0 8px 24px -18px rgba(138,59,255,.5) !important;}
.lib-tab{color:#7c7f99 !important;background:transparent !important;}
.lib-tab:hover{background:rgba(138,59,255,.06) !important;color:#8a3bff !important;}
.lib-tab.active{background:linear-gradient(135deg,#00d6c2,#8a3bff) !important;color:#fff !important;border-bottom:none !important;box-shadow:0 6px 18px -6px rgba(138,59,255,.5) !important;}
/* 按钮：青→紫渐变强调 */
.btn-gold,.tj-search-big-btn,.tj-member-btn2{background:linear-gradient(135deg,#00d6c2 0%,#8a3bff 100%) !important;color:#fff !important;border:none !important;}
.btn-gold:hover{filter:brightness(1.06);box-shadow:0 12px 30px -10px rgba(138,59,255,.6) !important;}
/* 会员按钮保留 */
.tj-member-btn{background:linear-gradient(135deg,#f7d774 0%,#e8b843 50%,#c98a2e 100%) !important;color:#5b3c00 !important;border:1px solid rgba(255,255,255,.4) !important;}
/* 卡片：白 */
.tut-card,.col-feat-card,.lib-card,.ad-card,.tj-side-card,.tut-actions,.ad-act{
  background:#ffffff !important;
  border:1px solid #f0eef6 !important;
  box-shadow:0 10px 30px -22px rgba(60,40,120,.35) !important;
  backdrop-filter:none !important;
}
.tut-card:hover,.col-feat-card:hover,.lib-card:hover,.ad-card:hover{
  border-color:rgba(138,59,255,.4) !important;
  box-shadow:0 20px 46px -24px rgba(138,59,255,.5) !important;
}
.tut-title,.tut-summary{color:#1a1a2e !important;}
.tut-summary{color:#777a92 !important;}
.tut-card .tut-title{color:#1a1a2e !important;}
.tut-footer,.tut-stats{color:#8a8da6 !important;border-top:1px solid #f4f2f8 !important;}
.tut-tag{background:#f5f4fa !important;color:#8a8da6 !important;}
.tut-cover{background:linear-gradient(135deg,#7a57d9 0%,#8a3bff 55%,#00b5a4 100%) !important;}
.col-feat-cover{background:linear-gradient(135deg,#7a57d9,#8a3bff) !important;}
.tut-cover::after,.col-feat-cover::after{content:none;}
/* 搜索 输入  */
.tj-search-box,.tj-search-mini,.lib-search{background:#fff !important;border:1px solid #e6e4f2 !important;color:#1d1e2c !important;}
.tj-search-box input,.lib-search input{color:#1d1e2c !important;}
.tj-search-mini:hover{background:rgba(138,59,255,.06) !important;border-color:rgba(138,59,255,.35) !important;color:#8a3bff !important;}
.tj-search-mini:hover i{color:#8a3bff !important;}
/* 大搜索弹层白玻璃 */
.tj-search-overlay{background:rgba(255,255,255,.78) !important;backdrop-filter:blur(10px);}
.tj-search-panel{background:#fff !important;border:1px solid rgba(138,59,255,.16) !important;box-shadow:0 30px 80px rgba(60,40,120,.18) !important;}
.tj-search-close{background:#f5f4fa !important;color:#8a8da6 !important;}
.tj-search-close:hover{background:linear-gradient(135deg,#00d6c2,#8a3bff) !important;color:#fff !important;}
.tj-search-panel-title{color:#1a1a2e !important;}
.tj-search-panel-title i{color:#8a3bff !important;}
.tj-search-big-row input{background:#fbfaff !important;border:2px solid rgba(138,59,255,.25) !important;color:#1d1e2c !important;}
.tj-search-big-row input::placeholder{color:#a9abc2;}
.tj-search-tag{background:#f5f4fa !important;border:1px solid #e8e6f5 !important;color:#777a92 !important;}
.tj-search-tag:hover{background:linear-gradient(135deg,#00d6c2,#8a3bff) !important;color:#fff !important;}
/* 下拉白玻 */
.tj-nav-hover-drop,.tj-more-menu,.tj-nav-publish-drop{background:rgba(255,255,255,.97) !important;backdrop-filter:blur(10px);border:1px solid rgba(138,59,255,.14) !important;}
.tj-nav-hover-item,.dropdown-item{color:#3a3d5c !important;}
.tj-nav-hover-item:hover,.dropdown-item:hover{background:rgba(11,143,131,.08) !important;color:#0b8f83 !important;}
/* 正文文本深色 */
.tj-layout h1,.tj-layout h2,.tj-layout h3,.tj-layout h4,.tut-content h2,.tut-content h3,.article-content h2,.article-content h3,.col-hero-title span,.cr-content h1,.ai-content h1,.up-profile h1{color:#1a1a2e !important;background:none !important;-webkit-text-fill-color:#1a1a2e !important;}
.tj-layout p,.ad-content p,.article-content p,.tut-content p{color:#4a4d66 !important;}
.tut-content pre{background:#f6f5fb !important;color:#3a3d5c !important;border:1px solid #ebe9f6;}
.tut-content blockquote{border-left:3px solid #8a3bff !important;background:rgba(138,59,255,.05) !important;color:#4a4d66 !important;}
/* 链接色：全局强紫已弃用，文字链统一见文末「文字链规范层 */
/* 头像渐变青紫 */
.tj-avatar,.tj-avatar-wrap .tj-avatar{background:linear-gradient(135deg,#00d6c2,#8a3bff) !important;color:#fff !important;}
/* Landing hero  + 青紫 */
.landing-hero{
  background:
    radial-gradient(760px 420px at 50% -30%, rgba(0,214,194,.12), transparent 60%),
    radial-gradient(900px 520px at 100% 130%, rgba(138,59,255,.10), transparent 62%),
    linear-gradient(160deg,#ffffff 0%,#fbfbff 55%,#ffffff 100%) !important;
  color:#1a1a2e !important;
}
.landing-hero h1,.landing-hero h2{color:#1a1a2e !important;background:none !important;-webkit-text-fill-color:#1a1a2e !important;}
.landing-section,.landing-section-2,.landing-section-3,.landing-section-4,.landing-section-5,.landing-section-6{background:transparent !important;color:#1a1a2e !important;}
.landing-section .card,.landing-section-2 .card,.landing-section-3 .card,.landing-section-4 .card,.landing-section-5 .card,.landing-section-6 .card{background:#fff !important;border:1px solid #f0eef6 !important;color:#1a1a2e !important;}
.landing-section h3,.landing-section .card h3,.landing-section-2 h3,.landing-section-3 h3{color:#1a1a2e !important;}
.landing-section p,.landing-section .card p{color:#4a4d66 !important;}
/* footer */
footer,.landing-footer{background:transparent !important;border-top:1px solid #f0eef6 !important;color:#8a8da6 !important;}

/* ============================================================
   FINAL POLISH · 主题收敛层（白底轻奢 + 青紫点缀 + 精致设计系统 
   在所有历史主题层之上提供最终一致观 
   ============================================================ */
:root{
  --acc:#7b4dff;           /* 主强调紫 */
  --acc2:#00b5a4;          /* 次强调青 */
  --ink:#1c1e33;           /* 主文 */
  --ink2:#5a5d7a;          /* 次级文字 */
  --ink3:#9a9cb8;          /* 弱文 */
  --line:#eceaf7;          /* 分隔 边框 */
  --line2:#dcd8f0;
  --chip:#f6f4fd;          /* 浅紫 chip */
  --card-bd:rgba(138,59,255,.10);
  --glow:0 18px 50px -30px rgba(123,77,255,.35);
  --radius-lg:18px; --radius-md:14px;
}

/* 字体平滑 */
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}

/* 统一背景更干净：白 + 右上极淡青紫晕（可呼吸留白） */
body{
  background:
    radial-gradient(1000px 480px at 82% -14%, rgba(138,59,255,.055), transparent 62%),
    radial-gradient(900px 440px at -6% -12%, rgba(0,181,164,.045), transparent 60%),
    #ffffff !important;
}
/* 顶栏：纯白（更稳 + 底部极淡紫线 */
.tj-header{background:rgba(255,255,255,.94) !important;backdrop-filter:blur(20px) saturate(1.3) !important;}
/* 主内容垂直留白呼吸感 */
.tj-layout{margin-top:22px !important;}

/* ============ 品牌色精 ============ */
.tj-nav-item.active,.subnav-item.active,.lib-tab.active a,/* keep */
.tj-nav-item:hover{color:#0b8f83 !important;}
.tj-nav-item:hover i{color:#0b8f83 !important;}
.btn-gold,.tj-nav-publish-btn,.tj-search-big-btn,.lib-tab.active,
.tj-sidenav-plus,button.btn-gold{
  background:linear-gradient(135deg,#00b5a4 0%,#7b4dff 100%) !important;
  border:none !important;color:#fff !important;
  box-shadow:0 12px 28px -10px rgba(123,77,255,.55) !important;
}
.btn-gold:hover,.tj-nav-publish-btn:hover{transform:translateY(-1px);box-shadow:0 16px 34px -10px rgba(123,77,255,.65) !important;color:#fff !important;}

/* 通用卡片精修：大圆角、极浅紫底白卡、柔和投影、hover 微抬 */
.tj-side-card,.tut-card,.col-feat-card,.lib-card,.ad-card,
.sq-card,.cr-card,.coop-card,.crs-card,.group-card,.ai-tool-card,.mk-card,.pd-card,.ct-card{
  background:#ffffff !important;
  border:1px solid var(--card-bd) !important;
  border-radius:var(--radius-lg) !important;
  box-shadow:0 6px 20px -12px rgba(30,20,80,.16) !important;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease !important;
}
.tj-side-card:hover,.tut-card:hover,.col-feat-card:hover,.lib-card:hover,.ad-card:hover,.sq-card:hover{
  transform:translateY(-3px) !important;
  border-color:rgba(123,77,255,.32) !important;
  box-shadow:var(--glow) !important;
}

/* 页面 hero：白 + 左上右下大光 + 细腻描边（大气） */
.lib-hero,.col-hero,.ai-hero,.cr-hero,.lib-hero{
  background:
    radial-gradient(900px 420px at 94% -55%, rgba(123,77,255,.10), transparent 62%),
    radial-gradient(760px 400px at -8% 128%, rgba(0,181,164,.09), transparent 60%),
    linear-gradient(135deg,#ffffff 0%,#fbfaff 50%,#ffffff 100%) !important;
  border:1px solid var(--card-bd) !important;
  border-radius:22px !important;
  box-shadow:0 30px 70px -42px rgba(90,60,200,.45), inset 0 1px 0 #fff !important;
}
.lib-hero-title,.col-hero-title,.ai-hero-title,.cr-hero-title{
  color:#191a2e !important;-webkit-text-fill-color:#191a2e !important;
  background:none !important;font-weight:800 !important;letter-spacing:.2px;
}
/* 小标 chip 统一 */
.lib-hero-badge,.col-hero-badge,.ai-hero-badge,.cr-hero-badge,.lib-hero-th,.tut-cat,.lib-tab{
  background:var(--chip) !important;color:#7b4dff !important;border-color:var(--line2) !important;
  font-weight:600 !important;
}
.lib-hero-sub,.col-hero-sub{color:var(--ink2) !important;}

/* ============ Landing 首页精致化（去旧边线分段感，整体连续白） ============ */
.landing{background:#ffffff !important;}
.landing section{border-radius:20px !important;}
.landing .landing-sec-head{text-align:center;}

/* 会员金按钮保 */
.tj-member-btn{background:linear-gradient(135deg,#f7d774,#e8b843 50%,#c98a2e) !important;color:#5b3c00 !important;border:none !important;box-shadow:0 10px 26px -10px rgba(201,138,46,.55) !important;}

/* 细节：链接图标化 hover 平滑 */
a{transition:color .18s ease;}
a:hover{color:#0b8f83;}

/* 输入 focus 青紫 */
input:focus,textarea:focus,select:focus{border-color:#7b4dff !important;box-shadow:0 0 0 4px rgba(123,77,255,.14) !important;outline:none !important;}

/* 删除线空状态等 icon 强调统一 */
.empty i,.lib-empty i{color:var(--line2);}

/* 头像渐变 */
.tj-avatar,.tj-avatar-wrap .tj-avatar,.up-tabs .avatar,.ad-avatar,.comment-avatar{
  background:linear-gradient(135deg,#00b5a4,#7b4dff) !important;color:#fff !important;
}

/* 顶部右侧 icon 按钮 hover */
.tj-icon-btn:hover{background:#f4f1ff !important;color:#7b4dff !important;}
.tj-icon-btn{color:var(--ink2) !important;}

/* Footer 文案层级 */
footer{color:var(--ink3) !important;background:#fcfbfe !important;border-top:1px solid var(--line) !important;}
footer a{color:var(--ink2) !important;}
footer a:hover{color:#0b8f83 !important;}

/* ============================================================
   教程频道 v2 · super-i 风格升级（Hero Banner + 4列大封面卡片流）
   白底轻奢 + 青紫科技渐变
   ============================================================ */

/* ---- Hero Banner：大气渐变氛 + 网格/光斑 ---- */
.tut2-hero{
  position:relative;overflow:hidden;
  border-radius:24px;
  padding:64px 56px 54px;
  margin-bottom:20px;
  background:
    radial-gradient(860px 460px at 88% -40%, rgba(123,77,255,.32), transparent 62%),
    radial-gradient(700px 420px at -8% 128%, rgba(0,181,164,.25), transparent 60%),
    linear-gradient(135deg,#241b52 0%,#2d2466 42%,#0f2b5e 78%,#0e2146 100%) !important;
  color:#fff;
  box-shadow:0 34px 80px -46px rgba(90,60,220,.65);
  border:1px solid rgba(255,255,255,.14);
  isolation:isolate;
}
/* 网格纹理 */
.tut2-hero-grid{position:absolute;inset:0;opacity:.16;z-index:0;
  background-image:linear-gradient(rgba(255,255,255,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.35) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(720px 480px at 70% 10%,#000 30%,transparent 78%);
          mask-image:radial-gradient(720px 480px at 70% 10%,#000 30%,transparent 78%);
}
.tut2-hero-glow{position:absolute;border-radius:50%;filter:blur(46px);z-index:0;opacity:.75;}
.tut2-hero-glow.g1{width:300px;height:300px;right:-60px;top:-90px;background:rgba(0,214,194,.4);}
.tut2-hero-glow.g2{width:360px;height:360px;right:34%;bottom:-150px;background:rgba(167,139,250,.32);}
.tut2-hero-glow.g3{width:220px;height:220px;left:12%;top:-70px;background:rgba(76,120,255,.28);}
.tut2-hero-inner{position:relative;z-index:1;max-width:980px;}
.tut2-hero-chip{
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);
  color:#cfeaff;font-size:.84rem;font-weight:600;letter-spacing:.6px;
  padding:7px 16px;border-radius:100px;backdrop-filter:blur(6px);
  margin-bottom:22px;
}
.tut2-hero-title{
  font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.12;margin:0 0 16px;
  font-weight:800;color:#fff;letter-spacing:.5px;text-shadow:0 4px 30px rgba(0,0,0,.25);
}
.tut2-hero-title span{
  display:block;
  background:linear-gradient(120deg,#7ef3e6 0%,#c7b0ff 55%,#ffd9a8 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  font-weight:800;
}
.tut2-hero-sub{font-size:1.06rem;color:rgba(255,255,255,.78);margin:0 0 30px;max-width:640px;line-height:1.75;}
.tut2-hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:38px;}
.tut2-btn-publish{
  display:inline-flex;align-items:center;gap:8px;
  background:linear-gradient(120deg,#0fd9c6,#7b4dff 70%,#9a5cff);
  color:#fff;font-weight:700;font-size:1rem;
  padding:13px 30px;border-radius:100px;border:none;cursor:pointer;
  text-decoration:none;box-shadow:0 14px 34px -12px rgba(0,214,194,.7);
  transition:transform .2s ease,box-shadow .2s ease;
}
.tut2-btn-publish:hover{transform:translateY(-2px);box-shadow:0 20px 44px -12px rgba(123,77,255,.75);color:#fff;}
.tut2-btn-ghost{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.1);color:#eef1ff;
  font-size:.98rem;padding:12px 26px;border-radius:100px;
  border:1px solid rgba(255,255,255,.28);cursor:pointer;backdrop-filter:blur(6px);
  transition:all .2s;
}
.tut2-btn-ghost:hover{background:rgba(255,255,255,.2);color:#fff;}
.tut2-hero-stats{display:flex;gap:44px;}
.tut2-hero-stats b{display:block;font-size:1.9rem;font-weight:800;background:linear-gradient(120deg,#8ff5ea,#cbb6ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.tut2-hero-stats span{font-size:.82rem;color:rgba(255,255,255,.62);letter-spacing:1px;}

/* ---- 筛选条 ---- */
.tut2-bar{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;
  background:#fff;border:1px solid rgba(138,59,255,.10);
  border-radius:16px;padding:10px 14px;margin-bottom:22px;
  box-shadow:0 12px 34px -24px rgba(90,60,200,.4);
}
.tut2-tabs{display:flex;gap:4px;}
.tut2-tab{
  border:none;background:transparent;color:#6d6f8c;cursor:pointer;
  padding:8px 18px;border-radius:100px;font-size:.9rem;font-weight:600;transition:all .18s;
}
.tut2-tab:hover{background:#f4f1ff;color:#7b4dff;}
.tut2-tab.on{background:linear-gradient(120deg,#00b5a4,#7b4dff);color:#fff;box-shadow:0 8px 20px -8px rgba(123,77,255,.6);}
.tut2-cats{display:flex;gap:6px;flex-wrap:wrap;flex:1;}
.tut2-cat{
  border:1px solid #eceaf7;background:#faf9ff;color:#82849e;cursor:pointer;
  padding:6px 15px;border-radius:100px;font-size:.82rem;transition:all .16s;
}
.tut2-cat:hover{border-color:rgba(123,77,255,.4);color:#7b4dff;}
.tut2-cat.on{background:#7b4dff;border-color:#7b4dff;color:#fff;font-weight:600;}
.tut2-search{display:flex;align-items:center;gap:8px;border:1px solid #e4e1f5;border-radius:100px;padding:8px 16px;background:#fcfbff;width:220px;}
.tut2-search i{color:#a9a6cf;}
.tut2-search input{border:none;outline:none;background:transparent;font-size:.88rem;width:100%;color:#333;}

/* ---- 卡片网格  列大封面 ---- */
.tut2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:22px;}
.tut2-card{
  display:flex;flex-direction:column;overflow:hidden;
  background:#fff;border-radius:20px;text-decoration:none;color:inherit;
  border:1px solid rgba(138,59,255,.08);
  box-shadow:0 8px 26px -18px rgba(40,20,110,.35);
  transition:transform .26s cubic-bezier(.2,.7,.3,1),box-shadow .26s ease,border-color .26s ease;
}
.tut2-card:hover{transform:translateY(-6px);text-decoration:none;color:inherit;
  border-color:rgba(123,77,255,.35);box-shadow:0 30px 60px -28px rgba(90,60,220,.5);}
.tut2-cover{position:relative;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,#1c1c3a,#33206b);}
.tut2-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.tut2-card:hover .tut2-cover img{transform:scale(1.06);}
.tut2-cover-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:3.4rem;color:rgba(255,255,255,.9);
  background:linear-gradient(135deg,#14d6c2 0%,#7b4dff 60%,#9a5cff 100%);text-shadow:0 6px 30px rgba(0,0,0,.3);}
.tut2-hot{position:absolute;top:12px;left:12px;z-index:2;
  background:linear-gradient(120deg,#ff5f6d,#ff2e63);color:#fff;font-size:.7rem;font-weight:800;
  padding:4px 12px;border-radius:100px;box-shadow:0 6px 16px -4px rgba(255,46,99,.6);}
.tut2-badge{position:absolute;top:12px;right:12px;z-index:2;
  background:rgba(14,15,36,.55);backdrop-filter:blur(8px);color:#fff;font-size:.72rem;font-weight:600;
  padding:5px 12px;border-radius:100px;border:1px solid rgba(255,255,255,.3);}
.tut2-play{position:absolute;inset:auto 14px 14px auto;z-index:2;width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,.95);color:#7b4dff;display:flex;align-items:center;justify-content:center;
  opacity:0;transform:translateY(6px);transition:all .24s ease;}
.tut2-card:hover .tut2-play{opacity:1;transform:none;}
.tut2-body{display:flex;flex-direction:column;gap:9px;padding:16px 17px 14px;flex:1;}
.tut2-title{font-size:1.02rem;font-weight:700;color:#1a1c33;line-height:1.45;margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.9em;}
.tut2-summary{font-size:.83rem;color:#8b8daa;line-height:1.6;margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.tut2-tags{display:flex;gap:6px;flex-wrap:wrap;}
.tut2-tags-empty{height:0;}
.tut2-tag{font-size:.72rem;color:#8a86bd;background:#f5f3fe;padding:3px 10px;border-radius:100px;}
.tut2-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;
  border-top:1px solid #f3f1fb;padding-top:11px;margin-top:auto;}
.tut2-author{display:flex;align-items:center;gap:7px;min-width:0;}
.tut2-avatar{width:22px;height:22px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;}
.tut2-aname{font-size:.78rem;color:#4c4e6e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tut2-time{font-size:.74rem;color:#a7a9c4;flex-shrink:0;}
.tut2-counts{display:flex;gap:10px;color:#a7a9c4;font-size:.74rem;flex-shrink:0;}
.tut2-counts i{margin-right:3px;color:#c9c7e4;}

/* 空 */
.tut2-empty{text-align:center;padding:90px 20px;background:#fff;border:1px dashed rgba(123,77,255,.25);border-radius:22px;}
.tut2-empty-icon{font-size:3rem;margin-bottom:12px;}
.tut2-empty p{color:#8b8daa;margin:0 0 18px;}

/* 响应 */
@media (max-width:1023px){
  .tut2-hero{padding:42px 24px 38px;border-radius:18px;}
  .tut2-hero-stats{gap:26px;}
  .tut2-hero-stats b{font-size:1.5rem;}
  .tut2-search{width:100%;margin-top:2px;}
}
@media (max-width:767px){
  .tut2-hero{padding:34px 18px 30px;}
  .tut2-grid{gap:14px;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));}
  .tut2-summary{display:none;}
  .tut2-title{font-size:.92rem;min-height:2.5em;}
}

/* ---- Logo 交互 ---- */
.tj-logo-icon{transition:transform .3s cubic-bezier(.2,.7,.3,1);}
.tj-logo:hover .tj-logo-icon{transform:rotate(-4deg) scale(1.06);}
.tj-logo-icon svg{transition:filter .3s ease;}
.tj-logo:hover .tj-logo-icon svg{filter:drop-shadow(0 8px 22px rgba(138,59,255,.38));}

/* ============================================================
   修复：logo 名称「探金工坊」渐变字遮挡  纯实色深墨字（兼容所有浏览器 
   ============================================================ */
.tj-logo-text strong{
  color:#23254a !important;
  background:none !important;
  -webkit-text-fill-color:#23254a !important;
  background-image:none !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
  font-weight:800 !important;
  text-shadow:none !important;
  position:relative;z-index:2;
}
.tj-logo-name{overflow:visible !important;}
.tj-logo-text strong::selection{color:#fff;background:#7b4dff;}

/* ============================================================
   教程频道 · super-i 风格中间内容区（sp- 体系 
   结构：content-head 标题 + bar2 信息 + guide(tabs+sort+search) + 4列卡 
   ============================================================ */
.sp-zone{display:block;}
.sp-content-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:2px 0 10px;}
.sp-head-title{font-size:clamp(1.7rem,3vw,2.3rem);font-weight:800;color:#171a33;margin:0;letter-spacing:.4px;display:flex;align-items:baseline;gap:12px;}
.sp-head-title em{font-style:normal;font-size:.85rem;color:#9a9cb8;font-weight:500;letter-spacing:0;}
.sp-head-right{display:flex;align-items:center;gap:10px;}
.sp-qidai{
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  height:40px;padding:0 18px;border-radius:50px;
  background:radial-gradient(53% 79% at 97% 92%,rgba(176,255,76,.55) 0%,rgba(225,255,188,.55) 100%),
             radial-gradient(151% 80% at 5% 12%,rgba(180,255,85,.5) 0%,rgba(239,255,218,.5) 100%);
  color:#0e3d04;font-size:.9rem;font-weight:600;
  box-shadow:0 6px 16px -8px rgba(124,203,42,.7), inset 0 0 0 1px rgba(255,255,255,.5);
}
.sp-bar2{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px;}
.sp-lasttime{font-size:.9rem;color:#7c7f99;display:inline-flex;align-items:center;gap:7px;}
.sp-lasttime i{color:#00b5a4;}
.sp-date-chip{
  display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:#8a86bd;
  background:#f5f3fe;border:1px solid #e8e4f7;padding:4px 12px;border-radius:100px;white-space:nowrap;
}
.sp-btn3{
  margin-left:auto;display:inline-flex;align-items:center;gap:7px;
  background:linear-gradient(120deg,#00b5a4,#7b4dff);color:#fff;font-weight:700;font-size:.9rem;
  padding:9px 20px;border-radius:100px;text-decoration:none;border:none;cursor:pointer;white-space:nowrap;
  box-shadow:0 10px 24px -10px rgba(123,77,255,.6);
}
.sp-btn3:hover{filter:brightness(1.07);color:#fff;}
/* guide */
.sp-guide{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px;
  background:#fff;border:1px solid rgba(123,77,255,.10);border-radius:16px;padding:10px 14px;
  box-shadow:0 12px 30px -24px rgba(90,60,200,.5);}
.sp-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1;}
.sp-tabs-all-label{display:inline-flex;align-items:center;color:#c3bfe0;font-size:1rem;margin-right:2px;}
.sp-tab{
  border:1px solid transparent;background:transparent;color:#666a88;cursor:pointer;
  padding:6px 14px;border-radius:100px;font-size:.86rem;font-weight:600;transition:all .16s;white-space:nowrap;
}
.sp-tab:hover{background:#f6f3ff;color:#7b4dff;}
.sp-tab.on{background:#fff;border-color:rgba(123,77,255,.45);color:#7b4dff;box-shadow:0 4px 14px -6px rgba(123,77,255,.4);}
.sp-sort{display:flex;align-items:center;gap:2px;padding:3px;background:#f6f4fb;border-radius:100px;}
.sp-sort-item{border:none;background:transparent;color:#83859f;cursor:pointer;padding:6px 12px;border-radius:100px;font-size:.82rem;font-weight:600;white-space:nowrap;transition:all .16s;}
.sp-sort-item.on{background:#7b4dff;color:#fff;box-shadow:0 6px 14px -6px rgba(123,77,255,.6);}
.sp-search{display:flex;align-items:center;gap:4px;border:1px solid #e4e1f5;border-radius:100px;padding:6px 6px 6px 14px;background:#fcfbff;width:210px;}
.sp-search input{border:none;outline:none;background:transparent;font-size:.88rem;width:100%;color:#2a2b45;}
.sp-search-ic{width:30px;height:30px;border-radius:50%;background:#7b4dff;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.82rem;}
.sp-search-ic:hover{background:#5a24e0;}
/* list */
.sp-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:24px 22px;}
.sp-item{background:#fff;border-radius:18px;overflow:hidden;
  border:1px solid rgba(123,77,255,.08);
  box-shadow:0 10px 28px -20px rgba(40,20,110,.4);
  transition:transform .26s cubic-bezier(.2,.7,.3,1),box-shadow .26s ease;display:flex;flex-direction:column;}
.sp-item:hover{transform:translateY(-4px);box-shadow:0 28px 56px -26px rgba(90,60,220,.55);}
.sp-cover{position:relative;display:block;aspect-ratio:16/9.6;overflow:hidden;background:linear-gradient(135deg,#17c4b1,#7b4dff);text-decoration:none;}
.sp-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.sp-item:hover .sp-cover img{transform:scale(1.05);}
.sp-cover-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:3rem;color:rgba(255,255,255,.92);}
.sp-new{position:absolute;left:12px;top:12px;background:#fff;color:#ff2e5f;font-size:.7rem;font-weight:800;
  padding:3px 10px;border-radius:6px;box-shadow:0 4px 12px -4px rgba(0,0,0,.3);}
.sp-hot{position:absolute;right:12px;top:12px;background:linear-gradient(120deg,#ff5f6d,#ff2e63);color:#fff;
  font-size:.7rem;font-weight:800;padding:3px 10px;border-radius:6px;}
.sp-intr{display:flex;flex-direction:column;gap:10px;padding:14px 16px 13px;flex:1;}
.sp-t1{font-size:1.02rem;font-weight:800;color:#171a33;line-height:1.5;margin:0;text-decoration:none;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:3em;}
.sp-t1:hover{color:#7b4dff;}
.sp-open{display:flex;gap:9px;align-items:flex-start;text-decoration:none;}
.sp-open-arrow{flex-shrink:0;width:28px;height:28px;margin-top:2px;border-radius:8px;background:#f6f3ff;
  color:#7b4dff;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;transition:all .2s;}
.sp-item:hover .sp-open-arrow{background:#7b4dff;color:#fff;transform:rotate(45deg);}
.sp-open-body{min-width:0;display:flex;flex-direction:column;gap:3px;}
.sp-tags{font-size:.78rem;color:#00b5a4;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.sp-abs{font-size:.76rem;color:#a0a2bd;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.sp-meta{display:flex;align-items:center;gap:8px;border-top:1px solid #f2f0fb;padding-top:10px;margin-top:auto;}
.sp-cat-chip{flex-shrink:0;font-size:.7rem;font-weight:700;color:#7b4dff;background:#f4f1ff;padding:3px 9px;border-radius:100px;}
.sp-meta-info{display:flex;align-items:center;gap:5px;min-width:0;overflow:hidden;}
.sp-author{font-size:.76rem;color:#6c6f8a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-dot{color:#c9cbe2;}
.sp-date{font-size:.74rem;color:#a8aac4;white-space:nowrap;}
.sp-counts{margin-left:auto;display:flex;gap:9px;color:#a8aac4;font-size:.74rem;flex-shrink:0;}
.sp-counts i{margin-right:2px;color:#c9cbe2;}
.sp-list-foot{grid-column:1/-1;text-align:center;color:#a0a2bd;font-size:.85rem;padding:26px 0 4px;}
.sp-list-foot a{color:#7b4dff;}
@media (max-width:1023px){
  .sp-search{width:100%;margin-top:4px;}
  .sp-guide{row-gap:8px;}
  .sp-btn3{margin-left:0;}
}
@media (max-width:767px){
  .sp-list{gap:14px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}
  .sp-qidai{height:34px;padding:0 12px;font-size:.78rem;}
  .sp-head-title{font-size:1.35rem;}
  .sp-abs{display:none;}
  .sp-counts{display:none;}
  .sp-t1{font-size:.92rem;min-height:2.7em;}
  .sp-date-chip{display:none;}
}

/* ============================================================
   教程频道 v2 · super-i content-header 结构
   （左：大标题+副文+统计 / 右：会员 发布卡） + bar2 信息 
   ============================================================ */
.sp-content-head{
  display:flex;align-items:stretch;justify-content:space-between;
  gap:26px;flex-wrap:wrap;
  margin:6px 0 14px;
}
.sp-head-main{flex:1;min-width:300px;display:flex;flex-direction:column;justify-content:center;gap:6px;}
.sp-head-chip{
  display:inline-flex;align-items:center;gap:7px;align-self:flex-start;
  padding:6px 14px;border-radius:100px;
  background:rgba(123,77,255,.08);border:1px solid rgba(123,77,255,.22);
  color:#6a2fe0;font-size:.8rem;font-weight:600;letter-spacing:.6px;
}
.sp-head-chip i{color:#7b4dff;}
.sp-head-title{
  font-size:clamp(1.7rem,2.6vw,2.35rem) !important;
  color:#171a33;margin:0;letter-spacing:.4px;line-height:1.18;
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
}
.sp-head-title em{
  font-style:normal;font-weight:700;
  background:linear-gradient(100deg,#00b5a4,#7b4dff);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  font-size:inherit;letter-spacing:0;
}
.sp-head-sub{margin:2px 0 0;color:#77799a;font-size:.98rem;line-height:1.7;}
.sp-head-stats{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap;}
.sp-head-stats span{
  display:inline-flex;align-items:baseline;gap:5px;
  padding:7px 16px;border-radius:12px;
  background:#fff;border:1px solid #eceaf6;
  color:#8c8fb0;font-size:.85rem;box-shadow:0 4px 12px -8px rgba(60,40,120,.14);
}
.sp-head-stats b{font-size:1.12rem;font-weight:800;color:#171a33;font-family:Poppins,Inter,sans-serif;}
.sp-head-stats i{width:1px;height:14px;background:#eceaf6;}

/* ---- 右侧运营卡组（content-header-right ---- */
.sp-head-cards{
  flex-shrink:0;width:min(560px,100%);
  display:flex;align-items:stretch;gap:14px;
}
.sp-vip-card,.sp-pub-card{
  flex:1;min-width:0;position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:3px;
  padding:16px 18px 15px;border-radius:18px;
  text-decoration:none;color:inherit;transition:all .22s cubic-bezier(.16,1,.3,1);
  box-shadow:0 10px 26px -20px rgba(40,20,90,.35);
}
.sp-vip-card{
  background:
    radial-gradient(200px 120px at 100% 0%, rgba(247,215,116,.30), transparent 65%),
    linear-gradient(165deg,#fffcf3 0%,#fff6e3 60%,#fffdf6 100%);
  border:1px solid rgba(217,154,51,.35);
}
.sp-vip-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px -18px rgba(217,154,51,.55);}
.sp-pub-card{
  background:
    radial-gradient(200px 120px at 100% 0%, rgba(0,181,164,.16), transparent 65%),
    radial-gradient(240px 140px at 0% 100%, rgba(123,77,255,.12), transparent 65%),
    linear-gradient(165deg,#fbfbff 0%,#f3efff 60%,#f6fcff 100%);
  border:1px solid rgba(123,77,255,.28);
}
.sp-pub-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px -18px rgba(123,77,255,.55);}
.sp-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.sp-card-k{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 10px;border-radius:100px;
  background:rgba(217,154,51,.16);color:#a37214;border:1px solid rgba(217,154,51,.3);
  font-size:.68rem;font-weight:700;letter-spacing:.5px;
}
.sp-card-k.pub{background:rgba(123,77,255,.1);color:#6a2fe0;border-color:rgba(123,77,255,.26);}
.sp-card-price{font-family:Poppins,Inter,sans-serif;font-weight:800;font-size:1.3rem;color:#b07f16;line-height:1;}
.sp-card-price em{font-style:normal;font-size:.7rem;font-weight:600;color:#c8a64f;margin-left:2px;}
.sp-card-pen{color:#00b5a4;font-size:1.2rem;opacity:.85;}
.sp-card-title{font-size:1.04rem;font-weight:700;color:#1c1e3a;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-vip-card .sp-card-title b{
  background:linear-gradient(100deg,#d9941f,#b97a1c);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.sp-pub-card .sp-card-title b{
  background:linear-gradient(100deg,#00b5a4,#7b4dff);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.sp-card-sub{font-size:.76rem;color:#8a8dad;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:7px;}
.sp-card-feats{font-size:.7rem;color:#a2a4c2;letter-spacing:.3px;}
.sp-card-cta{
  display:inline-flex;align-items:center;justify-content:center;
  padding:6px 15px;border-radius:100px;
  font-size:.78rem;font-weight:700;color:#fff;white-space:nowrap;
  transition:all .18s;
}
.sp-card-cta.cta-gold{background:linear-gradient(135deg,#f7d774,#e0a93f 55%,#c98a2e);box-shadow:0 6px 14px -6px rgba(217,154,51,.65);color:#6b4a08;}
.sp-card-cta.cta-tech{background:linear-gradient(135deg,#00b5a4,#7b4dff);box-shadow:0 6px 14px -6px rgba(123,77,255,.55);}
.sp-vip-card:hover .sp-card-cta.cta-gold{transform:translateX(2px);box-shadow:0 8px 18px -6px rgba(217,154,51,.8);}
.sp-pub-card:hover .sp-card-cta.cta-tech{transform:translateX(2px);box-shadow:0 8px 18px -6px rgba(123,77,255,.75);}
.sp-vip-card:hover,.sp-pub-card:hover{text-decoration:none;color:inherit;}

/* ---- bar2 信息行：左侧内容 + 右侧按钮 ---- */
.sp-bar2{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.sp-bar2-actions{display:inline-flex;align-items:center;gap:8px;margin-left:auto;}
.sp-btn-ghost{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 18px;border-radius:100px;
  background:#fff;border:1px solid #e4e1f2;color:#5a5d80;
  font-size:.88rem;font-weight:600;cursor:pointer;transition:all .18s;
}
.sp-btn-ghost:hover{color:#7b4dff;border-color:#c9bfff;background:#f7f4ff;}

@media (max-width:900px){
  .sp-head-cards{width:100%;}
  .sp-vip-card,.sp-pub-card{padding:13px 14px 12px;}
  .sp-bar2-actions{margin-left:0;width:100%;justify-content:flex-end;}
}
@media (max-width:560px){
  .sp-head-title{font-size:1.4rem !important;}
  .sp-card-title{white-space:normal;}
  .sp-card-sub{white-space:normal;}
}

/* ===== 频道头右侧运营卡组加 ===== */
.sp-content-head{gap:30px;}
.sp-head-cards{width:min(720px,100%);gap:16px;}
.sp-vip-card,.sp-pub-card{padding:20px 22px 18px;border-radius:20px;}
.sp-card-title{font-size:1.12rem;}
.sp-card-sub{font-size:.8rem;}
.sp-card-cta{padding:7px 18px;font-size:.82rem;}
.sp-card-k{font-size:.72rem;padding:4px 12px;}
@media (max-width:1100px){
  .sp-head-cards{width:100%;}
}
@media (max-width:560px){
  .sp-vip-card,.sp-pub-card{padding:14px 16px 13px;}
}

/* ===== 频道头运营卡  三卡（会 / 微信 / 发布 ===== */
.sp-head-cards{width:min(880px,100%);gap:14px;}
.sp-vip-card,.sp-pub-card{flex:1.12;}
.sp-wx-card{flex:1;min-width:0;}
.sp-vip-card,.sp-pub-card,.sp-wx-card{
  display:flex;flex-direction:column;gap:3px;
  padding:16px 16px 14px;border-radius:18px;position:relative;overflow:hidden;
  text-decoration:none;color:inherit;transition:all .22s cubic-bezier(.16,1,.3,1);
  box-shadow:0 10px 26px -20px rgba(40,20,90,.35);
}
/* ⚠️ .sp-wx-card  <button>（点击弹二维码），按钮自 UA 样式必须清掉 
   否则字号/字体/居中与旁边两 <a> 卡不一 */
.sp-wx-card{text-align:left;font-family:inherit;font-size:inherit;}
.sp-wx-card{
  background:
    radial-gradient(150px 100px at 100% 0%, rgba(7,193,96,.14), transparent 65%),
    radial-gradient(180px 110px at 0% 100%, rgba(7,193,96,.08), transparent 65%),
    linear-gradient(165deg,#fbfffc 0%,#f2fbf5 60%,#f8fffb 100%);
  border:1px solid rgba(7,193,96,.3);
  cursor:pointer;
}
.sp-wx-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px -18px rgba(7,193,96,.5);border-color:rgba(7,193,96,.5);}
.sp-card-k.wx{background:rgba(7,193,96,.12);color:#059a4e;border-color:rgba(7,193,96,.32);}
.sp-wx-peop{color:#07c160;font-size:1.15rem;opacity:.85;}
.sp-wx-title{font-size:1.04rem;font-weight:800;color:#12251a;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-wx-sub{font-size:.72rem;color:#7d9a89;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-wx-qr{
  position:relative;align-self:center;
  width:86px;height:86px;margin:7px auto 2px;padding:6px;box-sizing:border-box;
  background:#fff;border-radius:10px;
  box-shadow:0 4px 12px -6px rgba(7,193,96,.35);
  display:block;
}
/* 二维码用后台配置的真图（不再画点阵占位）；contain 保证方图不变形，
   不叠加我们的图标 — 会盖住群码自带的中间标识、影响识 */
.sp-wx-qr img{display:block;width:100%;height:100%;object-fit:contain;border-radius:6px;background:#fff;}
/* 后台还没配二维码时的占位点阵  改动前的观感，纯装饰、不可扫 */
.sp-wx-qr-ph{display:grid;grid-template-columns:repeat(13,1fr);grid-template-rows:repeat(13,1fr);gap:0;}
.sp-wx-qr-ph i{display:block;width:100%;height:100%;}
.sp-wx-qr-ph i.d{background:#1a2620;border-radius:1px;}
.sp-wx-qr-ph .sp-wx-qr-logo{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  pointer-events:none;
}
.sp-wx-qr-ph .sp-wx-qr-logo i{
  width:22px;height:22px;border-radius:7px;font-size:.72rem;
  background:#07c160;color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(7,193,96,.4);
}
.sp-card-cta.cta-wx{background:linear-gradient(135deg,#20cf6f,#07c160 55%,#05a854);box-shadow:0 6px 14px -6px rgba(7,193,96,.55);}
.sp-wx-card:hover .sp-card-cta.cta-wx{transform:translateX(2px);box-shadow:0 8px 18px -6px rgba(7,193,96,.75);}
/* 窄屏：卡组换行占整行（避免三卡过窄） */
@media (max-width:1460px){
  .sp-head-cards{width:100%;}
  .sp-vip-card,.sp-pub-card{flex:1.06;}
}
@media (max-width:560px){
  .sp-head-cards{flex-wrap:wrap;}
  .sp-wx-card{flex:1 1 100%;}
}

/* ===== 频道头卡组扩到容 60% ===== */
.sp-content-head{gap:34px;align-items:center;}
.sp-head-main{flex:1 1 34%;min-width:330px;}
.sp-head-cards{width:auto;flex:1 1 62%;min-width:0;gap:16px;}
.sp-vip-card,.sp-pub-card,.sp-wx-card{padding:20px 22px 18px;border-radius:20px;}
.sp-vip-card,.sp-pub-card{flex:1.1;}
.sp-wx-card{flex:1;padding-top:18px;}
.sp-card-title,.sp-wx-title{font-size:1.1rem;}
.sp-wx-qr{width:96px;height:96px;}
.sp-card-cta{padding:8px 20px;font-size:.84rem;}

/* 卡组更高时标题区顶部对齐卡片（去掉垂直居中错位） */
.sp-content-head{align-items:flex-start;}
.sp-head-main{padding-top:8px;}

/* 卡组更高时标题区顶部对齐卡片（去掉垂直居中错位） */
.sp-content-head{align-items:flex-start;}
.sp-head-main{padding-top:8px;}

/* ===== 微信群卡  左文右码横向紧凑（降低卡高） ===== */
.sp-wx-card{
  flex-direction:row !important;align-items:center !important;
  gap:10px;padding:14px 14px 14px 16px !important;
}
.sp-wx-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.sp-wx-right{
  flex-shrink:0;display:flex;flex-direction:column;
  align-items:center;gap:3px;
  padding:3px 2px 2px;border-left:1px dashed rgba(7,193,96,.25);
}
.sp-wx-qr{width:58px;height:58px;margin:0 !important;padding:4px !important;border-radius:8px;}
.sp-wx-qr-ph i.d{border-radius:0;}
.sp-wx-qr-ph .sp-wx-qr-logo i{width:17px;height:17px;border-radius:5px;font-size:.58rem;}
.sp-wx-scan{font-size:.6rem;font-weight:600;color:#059a4e;white-space:nowrap;letter-spacing:.3px;}
.sp-wx-title{font-size:1.02rem !important;}
.sp-wx-card .sp-card-bottom{margin-top:3px !important;padding-top:3px !important;}
@media (max-width:400px){
  .sp-wx-right{display:none;}
}

/* ===== 频道头三卡整体压矮（压缩内边 行距 ===== */
.sp-head-cards{align-items:stretch;}
.sp-vip-card,.sp-pub-card{padding:13px 16px 12px !important;}
.sp-wx-card{padding:13px 12px 12px 16px !important;}
.sp-vip-card .sp-card-top,.sp-pub-card .sp-card-top,.sp-wx-left .sp-card-top{margin-bottom:2px !important;}
.sp-vip-card .sp-card-title,.sp-pub-card .sp-card-title{font-size:1.05rem !important;line-height:1.3 !important;}
.sp-vip-card .sp-card-sub,.sp-pub-card .sp-card-sub{font-size:.74rem !important;line-height:1.45 !important;}
.sp-vip-card .sp-card-bottom,.sp-pub-card .sp-card-bottom{padding-top:5px !important;margin-top:2px !important;}
.sp-card-cta{padding:6px 16px !important;font-size:.8rem !important;}
.sp-card-k{padding:3px 10px !important;font-size:.68rem !important;}
.sp-wx-qr{width:52px;height:52px;padding:4px;}
.sp-wx-scan{font-size:.56rem;}
.sp-wx-title{font-size:.98rem !important;}
.sp-wx-sub{font-size:.7rem !important;}

/* ===== 频道头三卡整体压矮（压缩内边 行距 ===== */
.sp-head-cards{align-items:stretch;}
.sp-vip-card,.sp-pub-card{padding:13px 16px 12px !important;}
.sp-wx-card{padding:13px 12px 12px 16px !important;}
.sp-vip-card .sp-card-top,.sp-pub-card .sp-card-top,.sp-wx-left .sp-card-top{margin-bottom:2px !important;}
.sp-vip-card .sp-card-title,.sp-pub-card .sp-card-title{font-size:1.05rem !important;line-height:1.3 !important;}
.sp-vip-card .sp-card-sub,.sp-pub-card .sp-card-sub{font-size:.74rem !important;line-height:1.45 !important;}
.sp-vip-card .sp-card-bottom,.sp-pub-card .sp-card-bottom{padding-top:5px !important;margin-top:2px !important;}
.sp-card-cta{padding:6px 16px !important;font-size:.8rem !important;}
.sp-card-k{padding:3px 10px !important;font-size:.68rem !important;}
.sp-wx-qr{width:52px;height:52px;padding:4px;}
.sp-wx-scan{font-size:.56rem;}
.sp-wx-title{font-size:.98rem !important;}
.sp-wx-sub{font-size:.7rem !important;}

/* ============================================================
   修复：卡片标题渐变字乱码  实色（vip/pub  <b> 
   ============================================================ */
.sp-vip-card .sp-card-title b{
  background:none !important;
  -webkit-background-clip:border-box !important;background-clip:border-box !important;
  -webkit-text-fill-color:#c08a1c !important;color:#c08a1c !important;
}
.sp-pub-card .sp-card-title b{
  background:none !important;
  -webkit-background-clip:border-box !important;background-clip:border-box !important;
  -webkit-text-fill-color:#7b4dff !important;color:#7b4dff !important;
}

/* ============================================================
   微信群卡  与会 发布卡完全一致的纵向骨架
   （二维码内嵌 card-top 行右侧， vip 价格位，不另立容器）
   ============================================================ */
.sp-wx-card{
  flex-direction:column !important;
  align-items:stretch !important;
  gap:3px !important;
  padding:13px 16px 12px !important;
}
.sp-wx-card .sp-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px;}
.sp-wx-card .sp-wx-peop,.sp-wx-scan{display:none;}
.sp-wx-card .sp-wx-qr{
  position:relative;
  width:44px;height:44px;margin:0 !important;padding:4px !important;
  border-radius:7px;align-self:center;flex-shrink:0;
  display:block;
}
.sp-wx-card .sp-wx-qr-ph{
  display:grid;grid-template-columns:repeat(13,1fr);grid-template-rows:repeat(13,1fr);
}
.sp-wx-card .sp-wx-qr-ph i.d{border-radius:0;}
.sp-wx-card .sp-wx-qr-ph .sp-wx-qr-logo i{width:14px;height:14px;border-radius:4px;font-size:.5rem;}
.sp-wx-card .sp-wx-title{font-size:1.05rem !important;color:#12251a !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-wx-card .sp-wx-sub{font-size:.74rem !important;color:#7d9a89 !important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-wx-card .sp-card-bottom{padding-top:6px !important;margin-top:auto;}

/* ===== 微信群卡：二维码放中间行右侧，顶部右端为微信图标 ===== */
.sp-wx-top-ic{color:#07c160;font-size:1.25rem;opacity:.95;display:inline-flex;}
.sp-wx-mid{display:flex;align-items:center;gap:10px;margin:1px 0 0;}
.sp-wx-txt{flex:1;min-width:0;}
.sp-wx-card .sp-wx-qr{margin-left:auto !important;}

/* ===== 频道头：卡片组垂直居 + 卡内行距放宽 ===== */
.sp-content-head{align-items:center;}
.sp-vip-card,.sp-pub-card,.sp-wx-card{gap:7px !important;}
.sp-vip-card .sp-card-title,.sp-pub-card .sp-card-title,.sp-wx-title{line-height:1.45 !important;}
.sp-vip-card .sp-card-sub,.sp-pub-card .sp-card-sub,.sp-wx-sub{line-height:1.65 !important;}
.sp-wx-txt .sp-wx-title{margin-bottom:2px;}
.sp-vip-card .sp-card-bottom,.sp-pub-card .sp-card-bottom,.sp-wx-card .sp-card-bottom{
  padding-top:9px !important;margin-top:auto !important;
}
.sp-vip-card .sp-card-top,.sp-pub-card .sp-card-top,.sp-wx-card .sp-card-top{margin-bottom:1px;}

/* 频道头相对上方留白呼 */
.sp-content-head{margin-top:14px;margin-bottom:18px;}

/* 频道头相对上方留白呼 */
.sp-content-head{margin-top:14px;margin-bottom:18px;}

/* ===== 教程子分类行 ===== */
.sp-guide-sub{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin:-4px 0 16px;padding:0 6px;
}
.sp-guide-sub-label{
  display:inline-flex;align-items:center;gap:5px;
  font-size:.76rem;font-weight:700;color:#8a8dad;letter-spacing:.4px;margin-right:2px;
}
.sp-guide-sub-label i{color:#00b5a4;}
.sp-subtab{
  padding:4px 14px;border-radius:100px;
  border:1px solid #e6e2f4;background:#fff;color:#7c80a5;
  font-size:.8rem;font-weight:600;cursor:pointer;
  transition:all .16s;
}
.sp-subtab:hover{color:#00b5a4;border-color:#a7eadf;background:#f2fcf9;}
.sp-subtab.on{
  background:#eefaf7;border-color:#7adbcb;color:#05917f;font-weight:700;
}

/* ============================================================
   教程详情 · 三栏（左目录 / 中正 评论 / 右作者卡  会员锁定
   ============================================================ */
.td-wrap{
  display:grid;
  grid-template-columns:208px minmax(0,1fr) 292px;
  gap:26px;align-items:start;
  max-width:1560px;margin:0 auto;
  padding:20px 26px 70px;
}
.td-side{position:sticky;top:96px;min-width:0;}
.td-main{min-width:0;max-width:900px;margin:0 auto;width:100%;}
.td-right{position:sticky;top:96px;}

.td-card{
  background:#fff;border-radius:18px;border:1px solid #efecf7;
  box-shadow:0 14px 34px -26px rgba(50,30,110,.32);
  overflow:hidden;
}

/* ---------- 左栏 · 目录 ---------- */
.td-left{top:92px;}
.td-toc-card{padding:14px 10px 14px 12px;}
.td-card-title{
  display:flex;align-items:center;gap:7px;
  font-size:.82rem;font-weight:800;color:#3a3d63;letter-spacing:.4px;
  padding:0 8px 10px;border-bottom:1px solid #f3f1fa;
}
.td-card-title i{color:#7b4dff;}
.td-toc{display:flex;flex-direction:column;gap:1px;padding-top:8px;max-height:62vh;overflow:auto;}
.td-toc-item{
  text-align:left;border:none;background:transparent;cursor:pointer;
  font-size:.82rem;color:#7a7da0;line-height:1.45;
  padding:5px 8px 5px 12px;border-radius:8px;position:relative;
  transition:all .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.td-toc-item.lv3{padding-left:24px;font-size:.76rem;color:#989ab8;}
.td-toc-item:hover{background:#e9f7f4;color:#0b8f83;}
.td-toc-item.on{background:#f0ecff;color:#6a2fe0;font-weight:700;}
.td-toc-item.on::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:3px;
  background:linear-gradient(180deg,#00b5a4,#7b4dff);}
/* 目录完整展示（2026-10-09）：被会员墙截断的小节仍列出来，右侧标 🔒 */
.td-toc-item.locked{color:#a9abc8;padding-right:26px;}
.td-toc-item.locked:hover{background:#f6f4ff;color:#6a2fe0;}
.td-toc-item-lock{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.66rem;color:#c2bfd6;}
.td-toc-item.locked:hover .td-toc-item-lock{color:#7b4dff;}

/* ---------- 中栏 · 头部与正 ---------- */
.td-crumb{font-size:.84rem;color:#a3a5c4;margin:2px 0 14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.td-crumb a{color:#8b8eae;text-decoration:none;}
.td-crumb a:hover{color:#0b8f83;}
.td-crumb span{color:#d3d1e4;}
.td-crumb-sub{color:#7b4dff !important;font-weight:600;}
.td-title{
  font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:800;color:#171a33;
  line-height:1.35;letter-spacing:.2px;margin:0 0 10px;
}
.td-summary{font-size:1.02rem;color:#66698c;line-height:1.8;margin:0 0 18px;}
.td-meta{background:#faf9ff;border:1px solid #efecf9;border-radius:14px;padding:10px 14px;margin-bottom:18px;}
.td-cover{border-radius:16px;overflow:hidden;margin-bottom:18px;box-shadow:0 18px 40px -26px rgba(70,40,150,.4);}
/* 正文标题滚动定位偏移 */
.td-body .tut-content h2,.td-body .tut-content h3{scroll-margin-top:100px;}
.td-body{position:relative;}

/* 会员锁定遮罩 */
.td-lock .td-lock-blur{
  position:absolute;left:0;right:0;bottom:0;height:330px;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.72) 38%,#ffffff 88%);
}
/* ⚠️ 2026-09-24：预览正文已由后端截断（只返回预览部分） 
   这里不再 max-height 二次遮挡 — 否则会把后端给的预览又切掉一半 
   锁定提示改由正文下方 .td-unlock-zone 承担 */
.td-lock{position:relative;z-index:2;display:flex;justify-content:center;margin-top:-210px;padding:0 0 8px;pointer-events:none;}
.td-lock-card{
  pointer-events:auto;position:relative;
  width:min(430px,92%);text-align:center;
  background:rgba(255,255,255,.92);backdrop-filter:blur(12px);
  border:1px solid rgba(123,77,255,.22);border-radius:22px;
  padding:26px 28px 24px;
  box-shadow:0 26px 60px -26px rgba(90,40,220,.45),0 0 0 6px rgba(255,255,255,.5);
  animation:tdPop .35s cubic-bezier(.16,1,.3,1);
}
@keyframes tdPop{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
.td-lock-ic{
  width:64px;height:64px;margin:0 auto 12px;border-radius:20px;
  background:linear-gradient(135deg,#f7d774,#e0a93f 55%,#c98a2e);
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.7rem;
  box-shadow:0 12px 26px -10px rgba(217,154,51,.65), inset 0 1px 0 rgba(255,255,255,.5);
}
.td-lock-title{font-size:1.18rem;font-weight:800;color:#23254a;margin-bottom:6px;}
.td-lock-sub{font-size:.82rem;color:#8b8eae;line-height:1.6;margin-bottom:18px;}
.td-lock-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:12px 34px;border-radius:100px;text-decoration:none;
  background:linear-gradient(135deg,#f7d774,#e0a93f 50%,#c98a2e);
  color:#6b4a08;font-weight:800;font-size:.95rem;
  box-shadow:0 10px 24px -8px rgba(217,154,51,.7), inset 0 1px 0 rgba(255,255,255,.6);
  transition:all .2s;
}
.td-lock-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -8px rgba(217,154,51,.85);color:#5c3f05;text-decoration:none;}
.td-lock-login{display:block;margin-top:12px;color:#a3a5c4;font-size:.8rem;text-decoration:underline;}
.td-lock-login:hover{color:#0b8f83;}

/* ---------- 评论 ---------- */
.td-comments{padding:20px 22px;margin-top:26px;}
.td-comments-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.td-comments-head h3{margin:0;font-size:1.05rem;font-weight:800;color:#23254a;}
.td-comments-head h3 i{color:#7b4dff;margin-right:6px;}
.td-comments-head h3 span{color:#a3a5c4;font-weight:600;font-size:.85rem;}
.td-sorts{display:flex;gap:6px;}
.td-sorts button{
  border:1px solid #eceaf6;background:#fff;color:#8b8eae;
  padding:4px 13px;border-radius:100px;font-size:.78rem;cursor:pointer;transition:all .15s;
}
.td-sorts button.on{background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;border-color:transparent;font-weight:600;}
.tcm-form{display:flex;gap:10px;margin-bottom:16px;}
.tcm-form input{
  flex:1;padding:11px 16px;border:1px solid #e6e3f2;border-radius:12px;
  font-size:.9rem;outline:none;transition:all .18s;background:#fcfbff;color:#23254a;
}
.tcm-form input:focus{border-color:#7b4dff;box-shadow:0 0 0 3px rgba(123,77,255,.12);background:#fff;}
.tcm-form button{
  border:none;border-radius:12px;padding:0 20px;cursor:pointer;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;font-weight:700;font-size:.88rem;
  box-shadow:0 8px 18px -8px rgba(123,77,255,.55);transition:all .18s;
}
.tcm-form button:hover{filter:brightness(1.08);}
.tcm-empty{text-align:center;color:#a3a5c4;font-size:.9rem;padding:18px 0;}
.tcm-hot-tag{font-size:.78rem;color:#e07a3c;font-weight:700;margin:4px 0 10px;}
.tcm-list{display:flex;flex-direction:column;}
.tcm-item{display:flex;gap:12px;padding:13px 0;border-top:1px solid #f4f2fb;}
.tcm-item:first-of-type{border-top:none;}
.tcm-avatar{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;
}
.tcm-avatar.sm{width:28px;height:28px;font-size:.75rem;}
.tcm-body{flex:1;min-width:0;}
.tcm-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.tcm-name{font-size:.86rem;font-weight:700;color:#2c2f52;}
.tcm-vip{
  display:inline-flex;align-items:center;gap:3px;font-size:.66rem;font-weight:700;
  color:#a37214;background:linear-gradient(135deg,#fff7dd,#fdeec7);border:1px solid #f0d9a0;
  padding:1px 7px;border-radius:100px;
}
.tcm-time{font-size:.74rem;color:#b0b2cd;margin-left:auto;}
.tcm-text{font-size:.9rem;color:#565a80;line-height:1.75;margin:4px 0 6px;word-break:break-word;}
.tcm-ops{display:flex;gap:14px;}
.tcm-op{border:none;background:transparent;color:#a3a5c4;font-size:.78rem;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:4px;}
.tcm-op:hover{color:#7b4dff;}
.tcm-reply-box{display:flex;gap:8px;margin:8px 0 4px;}
.tcm-reply-box input{flex:1;padding:8px 12px;border:1px solid #e6e3f2;border-radius:10px;font-size:.85rem;outline:none;}
.tcm-reply-box input:focus{border-color:#7b4dff;}
.tcm-reply-box button{border:none;background:#7b4dff;color:#fff;border-radius:10px;padding:0 14px;cursor:pointer;font-size:.82rem;font-weight:600;}
.tcm-item.tcm-sub{background:#faf9ff;border-radius:12px;padding:10px 12px;margin-top:8px;border:1px solid #f0edfb;}

/* ---------- 底部 CTA ---------- */
.td-foot-cta{
  margin-top:28px;padding:26px 24px;border-radius:20px;text-align:center;
  background:
    radial-gradient(300px 160px at 15% -30%, rgba(0,181,164,.14), transparent 60%),
    radial-gradient(320px 180px at 100% 120%, rgba(123,77,255,.16), transparent 62%),
    linear-gradient(160deg,#fff,#f7f4ff);
  border:1px solid rgba(123,77,255,.16);
}
.td-foot-title{font-size:1.06rem;font-weight:800;color:#23254a;margin-bottom:6px;}
.td-foot-sub{font-size:.84rem;color:#8b8eae;margin-bottom:14px;}
.td-foot-btn{
  display:inline-flex;align-items:center;gap:7px;padding:11px 32px;border-radius:100px;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;font-weight:800;font-size:.92rem;
  text-decoration:none;box-shadow:0 10px 24px -8px rgba(123,77,255,.55);transition:all .2s;
}
.td-foot-btn.gold{background:linear-gradient(135deg,#f7d774,#e0a93f 50%,#c98a2e);color:#6b4a08;box-shadow:0 10px 24px -8px rgba(217,154,51,.6);}
.td-foot-btn:hover{transform:translateY(-2px);filter:brightness(1.05);color:#fff;text-decoration:none;}
.td-foot-btn.gold:hover{color:#5c3f05;}

/* ---------- 右栏 · 作者卡 ---------- */
.td-author{position:relative;text-align:center;}
.td-author-cover{height:74px;background:
  radial-gradient(220px 120px at 80% -40%, rgba(0,181,164,.5), transparent 60%),
  radial-gradient(240px 130px at 10% 130%, rgba(123,77,255,.45), transparent 62%),
  linear-gradient(135deg,#1a1c3c,#2c1d52);}
.td-author-in{padding:0 20px 20px;}
.td-author-ava{
  width:72px;height:72px;border-radius:50%;margin:-36px auto 10px;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.7rem;font-weight:800;
  border:4px solid #fff;box-shadow:0 10px 22px -10px rgba(90,40,220,.5);
}
.td-author-name{font-size:1.05rem;font-weight:800;color:#1d1f3d;}
.td-author-vip{
  display:inline-flex;align-items:center;gap:4px;margin-top:6px;
  padding:3px 12px;border-radius:100px;font-size:.72rem;font-weight:700;
  color:#8a5a00;background:linear-gradient(135deg,#ffe9a8,#f7d774);border:1px solid #ecc75c;
}
.td-author-bio{font-size:.8rem;color:#8b8eae;line-height:1.65;margin:10px 0 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.td-author-stats{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid #f3f1fa;border-bottom:1px solid #f3f1fa;padding:10px 0;margin-bottom:14px;}
.td-author-stats b{display:block;font-size:1.02rem;font-weight:800;color:#2c2f52;font-family:Poppins,Inter,sans-serif;}
.td-author-stats span{font-size:.7rem;color:#b0b2cd;}
.td-author-btn{
  display:inline-flex;align-items:center;gap:6px;padding:9px 22px;border-radius:100px;
  border:1px solid #dcd6f5;background:#f7f5ff;color:#6a2fe0;
  font-size:.85rem;font-weight:700;text-decoration:none;transition:all .18s;
}
.td-author-btn:hover{background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;border-color:transparent;text-decoration:none;}
.td-tip{display:flex;align-items:center;gap:10px;padding:13px 16px;margin-top:14px;background:#fffaf0;border-color:#f3e3c4;}
.td-tip-ic{color:#d99a33;font-size:1.05rem;flex-shrink:0;}
.td-tip-txt{font-size:.76rem;color:#9c7b3f;line-height:1.6;}

/* 右栏 · 最新教 */
.td-latest{margin-top:14px;padding:14px 16px 10px;}
.td-latest .td-card-title{padding:0 0 10px;}
.td-latest-list{list-style:none;margin:0;padding:0;}
.td-latest-list li{border-bottom:1px dashed #f0edf9;}
.td-latest-list li:last-child{border-bottom:none;}
.td-latest-list a{
  display:block;padding:8px 2px;color:#55597e;font-size:.85rem;line-height:1.55;
  text-decoration:none;transition:color .15s;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.td-latest-list a:hover{color:#0b8f83;}

/* ---------- 响应 ---------- */
@media (max-width:1280px){
  .td-wrap{grid-template-columns:196px minmax(0,1fr) 272px;gap:20px;padding:16px 18px 60px;}
}
@media (max-width:1080px){
  .td-wrap{grid-template-columns:1fr;max-width:820px;padding:14px 14px 50px;}
  .td-left{display:none;}
  .td-main{max-width:none;}
  .td-right{position:static;}
}
@media (max-width:640px){
  .td-title{font-size:1.35rem;}
  .td-comments{padding:16px 14px;}
  .tcm-form{flex-direction:column;}
  .tcm-form button{padding:11px;}
}

/* 列表发布入口（会员金渐变变体 */
.sp-btn3-gold{background:linear-gradient(135deg,#f7d774,#e0a93f 55%,#c98a2e) !important;color:#6b4a08 !important;box-shadow:0 8px 20px -8px rgba(217,154,51,.6) !important;}

/* ============================================================
   教程详情 v2.1：右侧卡不悬 / 目录常驻 / 双解锁方 / 锁卡高清 
   ============================================================ */
.td-right{position:static !important;}

/* 左目录卡常驻占位 */
.td-toc-empty{
  padding:18px 10px;text-align:center;color:#b0b2cd;
  font-size:.8rem;line-height:1.8;
}

/* 左栏 · 解锁课程卡（底色 v2.2 触发按钮整卡接管 */
.td-unlock-done{
  display:flex;align-items:center;justify-content:center;gap:6px;
  color:#0c8a62;background:linear-gradient(140deg,#e9faf2,#f2fbf7);
  padding:17px 12px;font-size:.86rem;font-weight:700;
}
.td-unlock-done i{color:#0fae72;}

/* 锁卡最高清晰层 */
.td-lock{z-index:60;}
.td-lock-card{
  background:#ffffff !important;
  backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
  box-shadow:0 30px 70px -22px rgba(60,20,120,.5),0 0 0 1px rgba(123,77,255,.16) !important;
  z-index:999;
}
.td-lock-title{color:#171a33;}

/* 锁卡双方 */
.td-lock-ways{display:flex;flex-direction:column;gap:10px;margin:4px 0 6px;}
.td-lock-way{
  display:flex;align-items:center;gap:12px;text-align:left;
  background:#faf9ff;border:1px solid #ece9f7;border-radius:14px;padding:12px 14px;
  transition:all .18s;
}
.td-lock-way:hover{border-color:#d9d1f5;}
.td-lock-way-ic{
  width:44px;height:44px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;color:#fff;
}
.td-lock-way-ic.mem{background:linear-gradient(135deg,#f7d774,#d9a23c);box-shadow:0 6px 14px -6px rgba(217,154,51,.6);}
.td-lock-way-ic.coin{background:linear-gradient(135deg,#00b5a4,#7b4dff);box-shadow:0 6px 14px -6px rgba(123,77,255,.55);}
.td-lock-way-txt{flex:1;min-width:0;}
.td-lock-way-txt b{display:block;font-size:.92rem;color:#23254a;margin-bottom:2px;}
.td-lock-way-txt span{font-size:.74rem;color:#8b8eae;}
.td-lock-way-btn{
  border:none;cursor:pointer;border-radius:100px;padding:8px 18px;
  font-size:.8rem;font-weight:800;text-decoration:none;white-space:nowrap;transition:all .18s;
}
.td-lock-way-btn.mem{background:linear-gradient(135deg,#f7d774,#e0a93f 55%,#c98a2e);color:#6b4a08;box-shadow:0 6px 14px -6px rgba(217,154,51,.6);}
.td-lock-way-btn.mem:hover{transform:translateY(-1px);filter:brightness(1.05);color:#5c3f05;text-decoration:none;}
.td-lock-way-btn.coin{background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;box-shadow:0 6px 14px -6px rgba(123,77,255,.55);}
.td-lock-way-btn.coin:hover{transform:translateY(-1px);filter:brightness(1.06);color:#fff;text-decoration:none;}
.td-lock-way-btn.coin.off{background:#e3e1ee;color:#fff;cursor:not-allowed;box-shadow:none;}
.td-lock-login{margin-top:6px;}
.td-lock-login a{color:#7b4dff;text-decoration:underline;}

/* 管理员改价条 */
.td-admin-price{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin-top:14px;padding:10px 16px;border-radius:12px;
  background:#f4f1ff;border:1px dashed #c9bfff;color:#6a6f94;font-size:.84rem;
}
.td-admin-price i{color:#7b4dff;}
.td-admin-price b{color:#23254a;}
.td-admin-price button{
  border:1px solid #d5ccf5;background:#fff;color:#6a2fe0;border-radius:100px;
  padding:3px 14px;font-size:.78rem;cursor:pointer;font-weight:600;
}
.td-admin-price button.ok{background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;border:none;}
.td-admin-price input{
  width:90px;padding:5px 10px;border:1px solid #d5ccf5;border-radius:8px;font-size:.84rem;outline:none;
}
@media (max-width:1080px){
  .td-lock-ways{flex-direction:row;flex-wrap:wrap;}
  .td-lock-way{flex:1 1 240px;}
}

/* ============================================================
   详情 v2.2：左栏解锁触发按 + 解锁弹窗 + 正文下方自然解锁 
   ============================================================ */
/* 左栏触发按钮 */
.td-unlock-card{margin-top:14px;padding:0;overflow:hidden;border-radius:18px;}
.td-unlock-trigger{
  width:100%;border:none;cursor:pointer;padding:0;
  background:linear-gradient(140deg,#1b1e44 0%,#2c1d52 60%,#17354a 100%);
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:16px 12px 15px;transition:all .22s;position:relative;overflow:hidden;
}
.td-unlock-trigger::before{content:'';position:absolute;inset:0;
  background:radial-gradient(160px 90px at 90% -20%, rgba(0,214,194,.35), transparent 60%),
  radial-gradient(180px 100px at 0% 120%, rgba(167,139,250,.4), transparent 62%);}
.td-unlock-trigger-txt{
  position:relative;display:flex;align-items:center;gap:7px;
  color:#fff;font-size:.98rem;font-weight:800;letter-spacing:.3px;
}
.td-unlock-trigger-txt i{color:#4cd8e0;font-size:1.05rem;}
.td-unlock-trigger:hover{transform:translateY(-2px);box-shadow:0 16px 34px -18px rgba(40,20,110,.6);}
/* 解锁价标注（2026-10-09）：单篇购买价 / 探金币价 + 会员免费，锁卡下方一行 */
.td-unlock-price{
  display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;
  padding:10px 12px;font-size:.78rem;color:#7a7d9c;background:#faf9ff;border-top:1px solid #efedfa;
}
.td-unlock-price b{color:#d9821c;font-size:.95rem;font-weight:800;}
.td-unlock-price em{font-style:normal;color:#a9abc8;}
.td-unlock-price-vip{color:#8a5b00;background:linear-gradient(135deg,#fdf3d8,#f8e6b4);border-radius:100px;padding:2px 9px;font-weight:700;}
/* 解锁区底部的价格说明（把解锁价明确标出来，金币不足时也能看到） */
.tduz-price-note{margin-top:12px;font-size:.76rem;color:#9a9cb8;}
.tdm-way-ic.gold{background:linear-gradient(135deg,#f7d774,#d9a23c);}
.tdm-way-ic.gold i{color:#5c3f05;}
/* 管理员「解锁价设置」卡（2026-10-09 扩展为：单篇购买价 + 探金币价 两行） */
.td-admin-price{flex-direction:column;align-items:stretch;gap:6px;}
.tdap-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:700;color:#5b3fd4;}
.tdap-head span{font-weight:400;color:#9a9cb8;font-size:.76rem;}
.tdap-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 0;}
.tdap-row label{min-width:112px;color:#8b8eae;}
.tdap-row b{color:#23254a;}
.tdap-note{font-style:normal;color:#b0b2cd;font-size:.74rem;}

/* 正文下方自然解锁区（居中小卡 · 柔和融入正文流） */
.td-unlock-zone{
  margin:22px 0 6px;padding:26px 22px 24px;border-radius:16px;text-align:center;
  background:linear-gradient(180deg,#fafaff 0%,#f4f2fd 100%);
  border:1px solid #e9e6f8;
}
.tduz-ic{
  width:52px;height:52px;margin:0 auto 12px;border-radius:16px;
  background:linear-gradient(135deg,#7b5cff,#00b5a4);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;
  box-shadow:0 10px 22px -12px rgba(123,77,255,.5);
}
.tduz-txt b{display:block;font-size:1.02rem;font-weight:800;color:#20224a;margin-bottom:4px;}
.tduz-txt p{margin:0 auto;max-width:460px;font-size:.84rem;color:#8b8eae;line-height:1.75;}
.tduz-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:16px;}
.tduz-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:11px 26px;border-radius:100px;border:none;cursor:pointer;
  font-size:.9rem;font-weight:800;text-decoration:none;transition:all .18s;
}
.tduz-btn.gold{background:linear-gradient(135deg,#f7d774,#e0a93f 55%,#c98a2e);color:#6b4a08;box-shadow:0 10px 24px -10px rgba(217,154,51,.65);}
.tduz-btn.gold:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.05);color:#5c3f05;}
.tduz-btn.gold:disabled{background:#e9e7f2;color:#b9b6cf;box-shadow:none;cursor:not-allowed;}
.tduz-btn.violet{background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;box-shadow:0 10px 24px -10px rgba(123,77,255,.55);}
.tduz-btn.violet:hover{transform:translateY(-2px);filter:brightness(1.06);color:#fff;text-decoration:none;}
.tduz-btn.primary{background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;}
.tduz-btn.primary:hover{color:#fff;text-decoration:none;transform:translateY(-2px);}

/* 解锁弹窗 */
.tdm-mask{
  position:fixed;inset:0;z-index:5000;background:rgba(18,14,40,.55);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;padding:20px;
  animation:tdmFade .18s ease;
}
@keyframes tdmFade{from{opacity:0}to{opacity:1}}
.tdm{
  position:relative;width:min(460px,100%);background:#fff;border-radius:22px;
  padding:30px 30px 26px;text-align:center;
  box-shadow:0 40px 100px -30px rgba(15,5,50,.55);
  animation:tdmPop .28s cubic-bezier(.16,1,.3,1);
}
@keyframes tdmPop{from{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:none}}
.tdm-x{
  position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;
  border:none;background:#f4f2fa;color:#9a97bd;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:all .15s;
}
.tdm-x:hover{background:#eee9ff;color:#6a2fe0;transform:rotate(90deg);}
.tdm-ic{
  width:68px;height:68px;margin:0 auto 14px;border-radius:20px;
  background:linear-gradient(135deg,#1b1e44,#7b4dff);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.7rem;
  box-shadow:0 14px 30px -12px rgba(123,77,255,.6);
}
.tdm-title{font-size:1.25rem;font-weight:800;color:#171a33;}
.tdm-sub{font-size:.8rem;color:#9a97bd;margin:5px 0 20px;}
.tdm-body{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;}
.tdm-way{
  display:flex;align-items:center;gap:12px;text-align:left;
  background:#faf9ff;border:1px solid #ece9f7;border-radius:14px;padding:12px 14px;
}
.tdm-way-ic{width:42px;height:42px;border-radius:12px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.05rem;}
.tdm-way-ic.coin{background:linear-gradient(135deg,#00b5a4,#7b4dff);}
.tdm-way-ic.mem{background:linear-gradient(135deg,#f7d774,#d9a23c);}
.tdm-way-txt{flex:1;min-width:0;}
.tdm-way-txt b{display:block;font-size:.92rem;color:#23254a;}
.tdm-way-txt span{font-size:.76rem;color:#8b8eae;}
.tdm-way-txt em{font-style:normal;font-weight:800;color:#7b4dff;}
.tdm-way-bal{font-size:.7rem;color:#b0b2cd;background:#f1effa;padding:3px 10px;border-radius:100px;white-space:nowrap;}
.tdm-actions{display:flex;gap:10px;}
.tdm-btn{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:12px 10px;border-radius:12px;border:none;cursor:pointer;
  font-size:.88rem;font-weight:800;text-decoration:none;transition:all .18s;
}
.tdm-btn.gold{background:linear-gradient(135deg,#f7d774,#e0a93f 55%,#c98a2e);color:#6b4a08;box-shadow:0 8px 20px -8px rgba(217,154,51,.6);}
.tdm-btn.gold:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05);color:#5c3f05;}
.tdm-btn.gold:disabled{background:#e9e7f2;color:#b9b6cf;box-shadow:none;cursor:not-allowed;}
.tdm-btn.violet{background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;box-shadow:0 8px 20px -8px rgba(123,77,255,.55);}
.tdm-btn.violet:hover{color:#fff;text-decoration:none;transform:translateY(-1px);filter:brightness(1.06);}
.tdm-btn.primary{background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;}
.tdm-btn.primary:hover{color:#fff;text-decoration:none;transform:translateY(-1px);}
@media (max-width:560px){
  .tduz-actions{flex-direction:column;}
  .tduz-btn{width:100%;}
  .tdm{padding:24px 18px 20px;}
}

/* ============================================================
   会员开通收银台（Membership Checkout v1 
   ============================================================ */
.mship-page{max-width:1080px;margin:0 auto;padding:18px 22px 70px;}
.mship-member-badge{
  display:inline-flex;align-items:center;gap:7px;
  background:linear-gradient(135deg,#ffe9a8,#f7d774);color:#6b4a08;
  border:1px solid #ecc75c;border-radius:100px;padding:7px 20px;
  font-weight:800;font-size:.95rem;box-shadow:0 8px 20px -12px rgba(180,130,30,.6);
}
.mship-plan.is-current{border-color:#e6c45c !important;box-shadow:0 14px 34px -18px rgba(180,130,30,.45) !important;}
.mship-plan-tag{
  position:absolute;top:-1px;right:14px;transform:translateY(-50%);
  background:linear-gradient(135deg,#f2c14e,#c9902b);color:#fff;font-size:.68rem;font-weight:800;
  padding:4px 12px;border-radius:100px;box-shadow:0 6px 14px -6px rgba(180,130,30,.6);
}
.mship-cta{border-radius:100px;box-shadow:0 10px 22px -12px rgba(180,130,30,.55);}
.mship-cta:hover{filter:brightness(1.06);transform:translateY(-1px);}
/* 历史档会员提示（月度/季度已下线，存量会员可见 */
.mship-legacy-note{
  display:flex;align-items:flex-start;gap:8px;
  margin:16px 0 4px;padding:12px 16px;border-radius:12px;
  background:#fffaf0;border:1px solid #f3e2b8;color:#8a6a2f;
  font-size:.88rem;line-height:1.7;
}
.mship-legacy-note i{margin-top:3px;color:#c9902b;}

/* 收银台弹 */
.mc-mask{
  position:fixed;inset:0;z-index:6000;background:rgba(24,16,8,.5);
  backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
  display:flex;align-items:center;justify-content:center;padding:18px;
  animation:mcFade .18s ease;
}
@keyframes mcFade{from{opacity:0}to{opacity:1}}
.mc-card{
  position:relative;width:min(430px,100%);max-height:92vh;overflow:auto;
  background:#fff;border-radius:22px;padding:28px 26px 24px;text-align:center;
  box-shadow:0 40px 100px -28px rgba(40,20,5,.5);
  animation:mcPop .28s cubic-bezier(.16,1,.3,1);
}
@keyframes mcPop{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
.mc-x{
  position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;
  border:none;background:#f6f2e8;color:#9a8a5c;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:all .15s;
}
.mc-x:hover{background:#f7eccb;color:#8a5a00;transform:rotate(90deg);}
.mc-title{font-size:1.2rem;font-weight:800;color:#2b2110;}
.mc-sub{font-size:.78rem;color:#b0a283;margin:3px 0 16px;}
.mc-summary{
  background:linear-gradient(160deg,#fffdf5,#fbf3dd);border:1px solid #f0e2bd;
  border-radius:16px;padding:18px 16px;margin-bottom:18px;
}
.mc-sum-name{font-size:.9rem;font-weight:700;color:#8a6a2a;}
.mc-sum-price{font-size:34px;font-weight:800;color:#a3701a;line-height:1.25;margin:2px 0;}
.mc-sum-price span{font-size:14px;font-weight:400;color:#b0a283;}
.mc-sum-desc{font-size:.74rem;color:#b0965c;}

.mc-methods{display:flex;flex-direction:column;gap:10px;margin-bottom:18px;text-align:left;}
.mc-method{
  display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;
  border:1px solid #ece4d0;background:#fffdf8;cursor:pointer;transition:all .15s;
}
.mc-method.on{border-color:#d4a017;background:#fff9ea;box-shadow:0 0 0 3px rgba(212,160,23,.12);}
.mc-method.off{opacity:.62;cursor:not-allowed;}
.mc-method-ic{font-size:1.3rem;width:34px;text-align:center;}
.mc-method-txt{flex:1;min-width:0;}
.mc-method-txt b{display:block;font-size:.9rem;color:#33280f;}
.mc-method-txt small{font-size:.72rem;color:#b0a283;}
.mc-method-radio{font-size:1.15rem;color:#d4a017;}
.mc-method.off .mc-method-radio{color:#c9c2ae;}
.mc-pay-btn{
  width:100%;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border:none;border-radius:100px;padding:13px;font-size:.98rem;font-weight:800;color:#fff;
  background:linear-gradient(135deg,#f2b42e,#cf8f1e);cursor:pointer;
  box-shadow:0 12px 26px -12px rgba(190,130,20,.7);transition:all .18s;
}
.mc-pay-btn:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px);}
.mc-pay-btn:disabled{background:#d8d2c2;box-shadow:none;cursor:not-allowed;}
.mc-safe{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:12px;font-size:.72rem;color:#b0a283;}

/* 成功视图 */
.mc-ok-ic{
  width:72px;height:72px;margin:6px auto 14px;border-radius:50%;
  background:linear-gradient(135deg,#43d17e,#1faa5c);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:2rem;
  box-shadow:0 14px 30px -12px rgba(31,170,92,.55);animation:mcOk .4s cubic-bezier(.16,1,.3,1);
}
@keyframes mcOk{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}
.mc-ok-sub{font-size:.88rem;color:#8a8668;margin:6px 0 16px;}
.mc-ok-box{
  background:#faf7ef;border:1px solid #efe6cf;border-radius:14px;
  padding:6px 16px;margin-bottom:18px;text-align:left;
}
.mc-ok-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px dashed #efe6cf;font-size:.86rem;color:#6f674f;}
.mc-ok-row:last-child{border-bottom:none;}
.mc-ok-row span{color:#b0a283;}
.mc-ok-row b{color:#33280f;font-weight:700;}
.mc-ok-row .mono{font-family:ui-monospace,Consolas,monospace;font-size:.78rem;}
.mc-done-btn{
  width:100%;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border:none;border-radius:100px;padding:13px;font-size:.96rem;font-weight:800;color:#5c3f05;
  background:linear-gradient(135deg,#ffe9a8,#f2c14e);cursor:pointer;transition:all .18s;
}
.mc-done-btn:hover{filter:brightness(1.05);transform:translateY(-1px);}
@media (max-width:560px){
  .mc-card{padding:24px 18px 20px;}
}

/* ============================================================
   文字链规范层 v1 · 白底轻奢（置于最末，作为全站默认 
   设计原则：常态近墨色、融入正文不喧宾；hover/focus 用品牌青(teal)
   #0b8f83 对比  5:1，满 WCAG AA；正文内链常态下划线示可 
   ============================================================ */
a{color:#2b2f52;}
a:hover,a:active{color:#0b8f83;}
a:visited{color:#2b2f52;}
a:focus-visible{outline:2px solid rgba(11,143,131,.55);outline-offset:2px;border-radius:3px;}
/* 富文本正文内的链接：常态下划线 + 深青，hover 加深 */
.tut-content a,.article-content a,.cr-content a,.ai-content a,.ad-content a,
.col-content a,.bootcamp-content a,.lib-section a,.up-bio a,.wb-content a{
  color:#0b7f72;text-decoration:underline;text-decoration-color:rgba(11,143,131,.38);
  text-underline-offset:3px;transition:color .15s ease;
}
.tut-content a:hover,.article-content a:hover,.cr-content a:hover,.ai-content a:hover,
.ad-content a:hover,.col-content a:hover,.bootcamp-content a:hover,.lib-section a:hover,
.up-bio a:hover,.wb-content a:hover{color:#076659;}
/* ============================================================
   专栏频道 v2 · 教程订阅制（内容区最 1400px 
   ============================================================ */
.col-page{max-width:1400px;margin:0 auto;padding:18px 26px 64px;box-sizing:border-box;}
/* Hero：白字深紫渐变（订阅 · 高级感） */
.col-page .col-hero{
  background:
    radial-gradient(520px 260px at 92% -30%, rgba(0,214,194,.35), transparent 60%),
    radial-gradient(640px 320px at -8% 130%, rgba(255,255,255,.08), transparent 60%),
    linear-gradient(135deg,#211a45 0%,#3a2b7a 45%,#5b3fd4 100%);
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
}
.col-page .col-hero-badge{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(6px);}
.col-page .col-hero-badge i{color:#6ff0e2;}
.col-page .col-hero-title{color:#fff;}
.col-page .col-hero-title span{color:#6ff0e2;background:none;-webkit-text-fill-color:#6ff0e2;}
.col-page .col-hero-sub{color:rgba(255,255,255,.72);}
.col-page .col-hero-stats b{color:#fff;}
.col-page .col-hero-stats span{color:rgba(255,255,255,.62);}
.col-page .col-hero-actions .form-input{background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.4);border-radius:10px;}
.col-page .col-hero-actions .btn-primary{background:linear-gradient(135deg,#00d6c2,#a78bfa);border:none;border-radius:10px;color:#fff;font-weight:800;}

/* 卡片价格/订阅 */
.col-meta{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px;}
.col-meta-item{display:inline-flex;align-items:center;gap:4px;font-size:.76rem;color:#8b8eae;background:#f6f4fd;padding:3px 10px;border-radius:100px;}
.col-meta-item.free{background:#e8f9f1;color:#0c8a62;}
.col-price{margin-left:auto;font-size:.74rem;font-weight:800;color:#a37214;background:#fff7e2;border:1px solid #f0dcae;padding:3px 12px;border-radius:100px;white-space:nowrap;}
/* 订阅态胶囊：统一小号 026-10-07 紧凑化）
   原先 padding 11px 26px / .95rem，在 217px 宽的推荐卡上 200px、高 47px，几乎铺满封面右上角 
   列表卡右 171×39 也占了整行高度的 1/4。现在统一 4/11 内边 + .75rem，高  27px */
.col-sub-btn{
  display:inline-flex;align-items:center;gap:4px;border:none;cursor:pointer;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;
  padding:4px 11px;border-radius:100px;font-size:.75rem;font-weight:700;line-height:1.4;white-space:nowrap;
  box-shadow:0 6px 14px -9px rgba(123,77,255,.55);transition:all .18s;
}
.col-sub-btn i{font-size:.8rem;line-height:1;}
.col-sub-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.06);}
.col-sub-btn:disabled{opacity:.7;cursor:not-allowed;}
.col-sub-ok{
  display:inline-flex;align-items:center;gap:4px;
  color:#0c8a62;background:#e8f9f1;border:1px solid #b8ecd9;
  padding:4px 11px;border-radius:100px;font-size:.75rem;font-weight:700;line-height:1.4;white-space:nowrap;
}
.col-sub-ok i{color:#0fae72;font-size:.8rem;line-height:1;}
/* 推荐卡：胶囊贴在封面右上  换毛玻璃白底，既压不住封面也不会与紫色封面糊在一 */
.col-feat-btn{top:8px;right:8px;}
.col-feat-btn .col-sub-ok{
  background:rgba(255,255,255,.92);border-color:rgba(255,255,255,.7);color:#0b6b4c;
  box-shadow:0 2px 8px rgba(23,26,51,.16);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.col-feat-btn .col-sub-btn{
  background:rgba(255,255,255,.94);color:#5f3dc4;
  box-shadow:0 2px 8px rgba(23,26,51,.18);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.col-feat-btn .col-sub-btn:hover:not(:disabled){background:#fff;color:#4c2fc0;filter:none;}

/* 专栏详情 */
.col-detail{max-width:1400px;margin:0 auto;padding:18px 26px 64px;box-sizing:border-box;}
.col-d-hero{position:relative;border-radius:20px;overflow:hidden;margin:12px 0 18px;
  background:
    radial-gradient(560px 280px at 90% -30%, rgba(0,214,194,.3), transparent 60%),
    radial-gradient(700px 340px at -5% 135%, rgba(255,255,255,.06), transparent 62%),
    linear-gradient(135deg,#211a45 0%,#3a2b7a 48%,#5b3fd4 100%);
  color:#fff;padding:26px 30px;box-sizing:border-box;}
.col-d-hero-in{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;}
.col-d-icon{width:74px;height:74px;border-radius:20px;flex-shrink:0;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);
  display:flex;align-items:center;justify-content:center;font-size:2rem;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 14px 28px -14px rgba(0,0,0,.5);}
.col-d-info{flex:1;min-width:260px;}
.col-d-badge{display:inline-block;background:rgba(111,240,226,.16);color:#6ff0e2;border:1px solid rgba(111,240,226,.35);font-size:.72rem;font-weight:700;padding:3px 12px;border-radius:100px;margin-bottom:8px;}
.col-d-title{font-size:1.7rem;font-weight:900;margin:0 0 6px;color:#fff;}
.col-d-desc{font-size:.92rem;color:rgba(255,255,255,.75);margin:0 0 10px;line-height:1.7;max-width:760px;}
.col-d-by{font-size:.8rem;color:rgba(255,255,255,.6);margin-bottom:10px;}
.col-d-stats{display:flex;flex-wrap:wrap;gap:16px;font-size:.82rem;color:rgba(255,255,255,.78);}
.col-d-stats b{color:#fff;font-size:.98rem;}
.col-d-stats .free b{color:#6ff0e2;}
.col-d-act{flex-shrink:0;display:flex;flex-direction:column;gap:8px;align-items:center;padding-top:6px;}
.col-d-sub{
  display:inline-flex;align-items:center;gap:7px;border:none;cursor:pointer;
  background:linear-gradient(135deg,#ffd977,#f2b42e 55%,#cf8f1e);color:#5c3f05;
  padding:12px 26px;border-radius:100px;font-size:.95rem;font-weight:900;white-space:nowrap;
  box-shadow:0 12px 26px -12px rgba(220,160,40,.7);transition:all .18s;
}
.col-d-sub:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05);}
.col-d-sub:disabled{opacity:.7;cursor:not-allowed;}
.col-d-ok{
  display:inline-flex;align-items:center;gap:6px;background:rgba(111,240,226,.14);border:1px solid rgba(111,240,226,.4);
  color:#6ff0e2;padding:11px 20px;border-radius:100px;font-size:.9rem;font-weight:800;
}
.col-d-sub-tip{font-size:.72rem;color:rgba(255,255,255,.55);text-align:center;}

/* ============================================================================
   专栏详情 v2（2026-10-10）
   左侧主区 + 右侧边栏；头部卡标题显式拉回白色
   （全局主题层有 `.tj-layout h1{color:#1a1a2e !important}`，不改会在深色头部里看不见）
   ============================================================================ */
.col-detail{max-width:1440px;margin:0 auto;padding:16px 24px 60px;box-sizing:border-box;}
.col-d-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start;}
.col-d-main{min-width:0;}
.col-d-crumb{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#a3a5c4;margin:2px 0 12px;flex-wrap:wrap;}
.col-d-crumb a{color:#8b8eae;text-decoration:none;}
.col-d-crumb a:hover{color:#5b3fd4;}
.col-d-crumb i{font-size:.62rem;color:#cfcbe4;}
.col-d-crumb span:last-child{color:#6a6d92;font-weight:600;}

/* 头部卡：紧凑 + 明确的白字层级 */
.col-d-hero{position:relative;border-radius:18px;overflow:hidden;margin:0 0 16px;
   background:
     radial-gradient(520px 260px at 92% -34%, rgba(0,214,194,.30), transparent 62%),
     radial-gradient(640px 320px at -8% 128%, rgba(167,139,250,.30), transparent 64%),
     linear-gradient(135deg,#1c1740 0%,#332a72 52%,#5b3fd4 100%);
   color:#fff;padding:22px 24px;box-sizing:border-box;
   box-shadow:0 22px 46px -30px rgba(43,35,80,.85);}
.col-d-hero::after{content:'';position:absolute;right:-60px;top:-70px;width:220px;height:220px;border-radius:50%;
   background:radial-gradient(circle,rgba(255,255,255,.12),transparent 66%);pointer-events:none;}
.col-d-hero-in{position:relative;z-index:1;display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;}
.col-d-icon{width:64px;height:64px;border-radius:16px;flex-shrink:0;overflow:hidden;
   background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);
   display:flex;align-items:center;justify-content:center;font-size:1.7rem;color:#fff;
   box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 14px 26px -14px rgba(0,0,0,.55);}
.col-d-icon .entity-logo-img{width:100%;height:100%;object-fit:cover;border-radius:0;}
.col-d-info{flex:1;min-width:240px;}
.col-d-badge{display:inline-block;background:rgba(111,240,226,.16);color:#6ff0e2;border:1px solid rgba(111,240,226,.35);font-size:.7rem;font-weight:700;padding:3px 11px;border-radius:100px;margin-bottom:7px;}
.col-d-hero .col-d-title{font-size:clamp(1.3rem,2.2vw,1.6rem);font-weight:900;margin:0 0 6px;
   color:#fff !important;background:none !important;-webkit-text-fill-color:#fff !important;line-height:1.3;}
.col-d-hero .col-d-desc{font-size:.88rem;color:rgba(255,255,255,.8) !important;margin:0 0 10px;line-height:1.65;max-width:720px;}
.col-d-stats{display:flex;flex-wrap:wrap;gap:14px;font-size:.78rem;color:rgba(255,255,255,.8);}
.col-d-stats span{display:inline-flex;align-items:center;gap:5px;}
.col-d-stats i{font-size:.8rem;opacity:.85;}
.col-d-stats b{color:#fff;font-size:.9rem;font-weight:800;}
.col-d-stats .free i{color:#6ff0e2;}

/* 文章列表：更紧的行距 + 明显的悬停反馈 */
.col-d-section{background:#fff;border:1px solid #eceaf7;border-radius:16px;padding:16px 18px;
   box-shadow:0 10px 26px -22px rgba(70,40,160,.45);}
.col-d-sec-title{display:flex;align-items:center;gap:8px;font-size:.98rem;font-weight:800;color:#23254a;padding-bottom:10px;border-bottom:1px solid #f3f1fa;margin-bottom:4px;}
.col-d-sec-title i{color:#7b4dff;}
.col-d-sec-title .muted{font-size:.74rem;color:#9a9cb8;font-weight:500;}
.col-d-list{display:flex;flex-direction:column;}
.col-d-item{display:flex;align-items:center;gap:12px;padding:12px 8px;border-bottom:1px solid #f6f4fc;text-decoration:none;color:inherit;transition:background .15s,transform .15s;border-radius:10px;}
.col-d-item:hover{background:#f8f6ff;transform:translateX(2px);}
.col-d-item:last-child{border-bottom:none;}
.col-d-idx{width:30px;text-align:center;flex-shrink:0;font-family:Poppins,ui-monospace,monospace;font-weight:800;font-size:.86rem;color:#c9c4e2;}
.col-d-item:hover .col-d-idx{color:#7b4dff;}
.col-d-item-body{flex:1;min-width:0;}
.col-d-item-title{font-size:.94rem;font-weight:700;color:#23254a;line-height:1.5;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.col-d-item-title:hover{color:#0b8f83;}
.col-d-item-sum{font-size:.8rem;color:#8b8eae;margin-top:4px;line-height:1.6;
   display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.col-d-item-meta{display:flex;align-items:center;gap:12px;margin-top:6px;font-size:.74rem;color:#a9abc8;flex-wrap:wrap;}
.col-d-item-meta i{font-size:.76rem;}
.col-d-item-cat{background:#f3f0ff;color:#6a2fe0;border-radius:6px;padding:1px 7px;font-weight:700;}
.col-d-item-go{flex-shrink:0;color:#c9c4e2;font-size:1.05rem;}
.col-d-item:hover .col-d-item-go{color:#7b4dff;}
.col-d-badge-lock,.col-d-badge-free{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:700;padding:2px 9px;border-radius:100px;}
.col-d-badge-lock{background:#fdf1e3;color:#b5691b;}
.col-d-badge-free{background:#e9f8f2;color:#0c8a62;}

/* ---------- 右侧边栏 ---------- */
.col-d-side{position:sticky;top:14px;display:flex;flex-direction:column;gap:12px;}
.col-ds-card{background:#fff;border:1px solid #eceaf7;border-radius:16px;padding:14px 16px;
   box-shadow:0 10px 26px -22px rgba(70,40,160,.4);}
.col-ds-title{display:flex;align-items:center;gap:7px;font-size:.86rem;font-weight:800;color:#23254a;margin-bottom:10px;}
.col-ds-title i{color:#7b4dff;}
/* 订阅卡 */
.col-ds-subcard{background:
     radial-gradient(220px 120px at 100% 0%, rgba(167,139,250,.16), transparent 62%),
     linear-gradient(160deg,#ffffff,#faf9ff 100%);
   border-color:#e6e2f8;}
.col-ds-price{text-align:center;margin-bottom:10px;}
.col-ds-price em{font-style:normal;font-size:1.7rem;font-weight:900;color:#d9821c;letter-spacing:-.5px;}
.col-ds-price span{display:block;font-size:.74rem;color:#9a9cb8;margin-top:2px;}
.col-ds-price.free em{color:#0fae72;}
.col-ds-price-note{text-align:center;font-size:.72rem;color:#8b8eae;margin:-4px 0 8px;}
.col-ds-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:7px;
   border:none;cursor:pointer;border-radius:100px;padding:11px 16px;font-size:.9rem;font-weight:800;
   color:#5c3f05;background:linear-gradient(135deg,#ffd977,#f2b42e 55%,#cf8f1e);
   box-shadow:0 12px 24px -14px rgba(220,160,40,.75);transition:all .18s;font-family:inherit;}
.col-ds-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05);}
.col-ds-btn:disabled{opacity:.7;cursor:not-allowed;transform:none;}
.col-ds-ok{display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 12px;border-radius:100px;
   background:rgba(0,181,164,.1);border:1px solid rgba(0,181,164,.32);color:#0c8a62;font-size:.86rem;font-weight:800;}
.col-ds-benefits{list-style:none;margin:12px 0 0;padding:10px 0 0;border-top:1px dashed #eae7f6;}
.col-ds-benefits li{display:flex;align-items:flex-start;gap:6px;font-size:.75rem;color:#7a7d9c;line-height:1.7;}
.col-ds-benefits i{color:#0fae72;font-size:.8rem;margin-top:3px;flex:0 0 auto;}
/* 作者卡 */
.col-ds-author{display:flex;align-items:center;gap:10px;}
.col-ds-avatar{width:44px;height:44px;border-radius:50%;flex-shrink:0;overflow:hidden;
   background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;font-weight:800;
   display:flex;align-items:center;justify-content:center;font-size:1rem;}
.col-ds-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.col-ds-author-info{min-width:0;flex:1;}
.col-ds-author-name{font-size:.86rem;font-weight:800;color:#23254a;display:flex;align-items:center;gap:6px;}
.col-ds-vip{font-style:normal;font-size:.64rem;font-weight:700;color:#8a5b00;background:linear-gradient(135deg,#fdf3d8,#f8e6b4);border-radius:100px;padding:1px 7px;display:inline-flex;align-items:center;gap:3px;}
.col-ds-author-bio{font-size:.74rem;color:#9a9cb8;margin-top:3px;line-height:1.55;}
.col-ds-more{display:inline-flex;align-items:center;gap:5px;margin-top:10px;font-size:.78rem;font-weight:700;color:#5b3fd4;text-decoration:none;}
.col-ds-more:hover{color:#3f24a8;}
.col-ds-more i{font-size:.7rem;}
/* 数据卡 */
.col-ds-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.col-ds-stats > div{background:#faf9ff;border:1px solid #f1eefb;border-radius:10px;padding:8px 10px;text-align:center;min-width:0;}
.col-ds-stats b{display:block;font-size:.98rem;font-weight:900;color:#3c2d78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.col-ds-stats span{font-size:.68rem;color:#9a9cb8;}
/* 目录 */
.col-ds-toc{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}
.col-ds-toc a{display:flex;align-items:center;gap:8px;padding:6px 7px;border-radius:8px;text-decoration:none;color:#4a4d66;transition:background .15s,color .15s;}
.col-ds-toc a:hover{background:#f6f4ff;color:#5b3fd4;}
.col-ds-toc em{font-style:normal;font-family:Poppins,ui-monospace,monospace;font-size:.72rem;font-weight:800;color:#c3bfd8;flex:0 0 auto;}
.col-ds-toc span{flex:1;min-width:0;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.col-ds-toc i{font-size:.68rem;color:#d8a24a;flex:0 0 auto;}
.col-ds-toc-more{margin-top:8px;font-size:.7rem;color:#b0b2cd;text-align:center;}
/* 推荐 */
.col-ds-reco{display:flex;flex-direction:column;gap:8px;}
.col-ds-reco-item{display:flex;align-items:center;gap:9px;padding:6px;border-radius:10px;text-decoration:none;transition:background .15s;}
.col-ds-reco-item:hover{background:#f8f6ff;}
.col-ds-reco-logo{width:34px;height:34px;border-radius:10px;flex-shrink:0;overflow:hidden;
   background:linear-gradient(135deg,#2b2350,#5b3fd4);color:#fff;font-size:.95rem;
   display:flex;align-items:center;justify-content:center;}
.col-ds-reco-logo .entity-logo-img{width:100%;height:100%;object-fit:cover;border-radius:0;}
.col-ds-reco-body{min-width:0;flex:1;}
.col-ds-reco-body b{display:block;font-size:.8rem;font-weight:700;color:#23254a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.col-ds-reco-body em{font-style:normal;font-size:.7rem;color:#a9abc8;}
.col-ds-tip{display:flex;gap:6px;align-items:flex-start;font-size:.7rem;color:#a9abc8;line-height:1.6;padding:0 4px;}
.col-ds-tip i{margin-top:2px;flex:0 0 auto;}

/* 实体 LOGO（专栏 / 圈子）：上传图片时铺满头像位 */
.entity-logo-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit;}
/* 发布页「上传 LOGO」控件（创建专栏弹窗 + 创建圈子页共用样式骨架） */
.cnc-opt,.gnew-opt{font-style:normal;font-weight:400;color:#b0b2cd;font-size:.7rem;}
.cnc-logo,.gnew-logo{display:flex;align-items:center;gap:12px;text-align:left;margin:2px 0 4px;}
.cnc-logo-box,.gnew-logo-box{width:64px;height:64px;border-radius:16px;flex-shrink:0;overflow:hidden;
  background:linear-gradient(135deg,#2b2350,#5b3fd4);color:#fff;font-size:1.5rem;font-weight:800;
  display:flex;align-items:center;justify-content:center;border:1px solid #e2ddf5;}
.cnc-logo-box img,.gnew-logo-box img{width:100%;height:100%;object-fit:cover;display:block;}
.cnc-logo-side,.gnew-logo-side{min-width:0;flex:1;}
.cnc-logo-btns,.gnew-logo-btns{display:flex;gap:8px;flex-wrap:wrap;}
.cnc-logo-btn,.gnew-logo-btn{
  display:inline-flex;align-items:center;gap:6px;border:1px solid #d5ccf5;background:#fff;color:#6a2fe0;
  border-radius:100px;padding:6px 14px;font-size:.78rem;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s;}
.cnc-logo-btn:hover:not(:disabled),.gnew-logo-btn:hover:not(:disabled){background:#f6f2ff;border-color:#b9a6f5;}
.cnc-logo-btn:disabled,.gnew-logo-btn:disabled{opacity:.6;cursor:not-allowed;}
.cnc-logo-btn.ghost,.gnew-logo-btn.ghost{color:#8b8eae;border-color:#e6e3f4;}
.cnc-logo-btn.ghost:hover,.gnew-logo-btn.ghost:hover{color:#e03131;border-color:#ffc9c9;background:#fff5f5;}
.cnc-logo-tip,.gnew-logo-tip{margin:6px 0 0;font-size:.72rem;color:#9a9cb8;line-height:1.6;}
/* 侧栏圈子 / 发布框圈子：小 LOGO 位（支持上传图） */
.tj-side-circle-logo{width:18px;height:18px;border-radius:5px;flex-shrink:0;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;color:#7b4dff;font-size:.82rem;}
.pub-group-logo{width:22px;height:22px;border-radius:7px;flex-shrink:0;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;color:var(--tj-gold-dark);font-size:1rem;background:#f8f6ff;}
.pub-group-logo .entity-logo-img{border-radius:7px;}

@media (max-width:1100px){
  .col-detail{padding:14px 16px 48px;}
  .col-d-wrap{grid-template-columns:minmax(0,1fr);}
  .col-d-side{position:static;}
  .col-d-hero{padding:18px 18px;}
}

.col-d-section{background:#fff;border:1px solid #eceaf7;border-radius:18px;padding:20px 22px;box-shadow:0 12px 30px -24px rgba(70,40,160,.4);}
.col-d-sec-title{display:flex;align-items:center;gap:8px;font-size:1.05rem;font-weight:800;color:#23254a;padding-bottom:12px;border-bottom:1px solid #f3f1fa;margin-bottom:8px;}
.col-d-sec-title i{color:#7b4dff;}
.col-d-sec-title .muted{font-size:.78rem;color:#9a9cb8;font-weight:500;}
.col-d-list{display:flex;flex-direction:column;}
.col-d-item{display:flex;align-items:center;gap:14px;padding:14px 6px;border-bottom:1px solid #f6f4fc;text-decoration:none;color:inherit;transition:background .15s;border-radius:10px;}
.col-d-item:hover{background:#faf9ff;}
.col-d-item:last-child{border-bottom:none;}
.col-d-idx{width:34px;text-align:center;flex-shrink:0;font-family:Poppins,ui-monospace,monospace;font-weight:800;font-size:.9rem;color:#c9c4e2;}
.col-d-item-body{flex:1;min-width:0;}
.col-d-item-title{font-size:.98rem;font-weight:700;color:#23254a;line-height:1.5;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.col-d-item-title:hover{color:#0b8f83;}
.col-d-badge-free{display:inline-flex;align-items:center;gap:3px;font-size:.66rem;font-weight:800;color:#0c8a62;background:#e8f9f1;border:1px solid #b8ecd9;padding:2px 9px;border-radius:100px;}
.col-d-badge-lock{display:inline-flex;align-items:center;gap:3px;font-size:.66rem;font-weight:800;color:#8a5a00;background:#fff7e2;border:1px solid #f0dcae;padding:2px 9px;border-radius:100px;}
.col-d-item-sum{font-size:.82rem;color:#8b8eae;margin-top:3px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.col-d-item-meta{display:flex;gap:12px;font-size:.74rem;color:#b0b2cd;margin-top:6px;align-items:center;}
.col-d-item-cat{color:#6a2fe0;background:#f5f2ff;padding:2px 10px;border-radius:100px;}
.col-d-item-go{font-size:1.25rem;color:#c9c4e2;flex-shrink:0;transition:all .15s;}
.col-d-item:hover .col-d-item-go{color:#0b8f83;transform:translateX(2px);}

@media (max-width:760px){
  .col-page,.col-detail{padding:14px 14px 50px;}
  .col-main{grid-template-columns:1fr;}
  .col-d-hero{padding:20px 18px;}
  .col-d-act{width:100%;align-items:stretch;}
}
/* 教程详情：所属专 chip + 解锁弹窗订阅 */
.td-col-chip{
  display:inline-flex;align-items:center;gap:6px;
  background:#f6f4fd;border:1px solid #e0daf5;color:#5b3fd4;
  padding:5px 14px;border-radius:100px;font-size:.82rem;font-weight:700;text-decoration:none;
  transition:all .15s;
}
.td-col-chip:hover{background:#5b3fd4;color:#fff;border-color:#5b3fd4;}
.tdm-way.hot{border:1px solid #d9d1f5;background:linear-gradient(135deg,#faf9ff,#f3efff);}
.tdm-way-ic.col{background:linear-gradient(135deg,#2b2350,#5b3fd4);box-shadow:0 6px 14px -6px rgba(91,63,212,.55);}
/* 发布教程 · 新建专栏弹窗 */
.cnc-mask{position:fixed;inset:0;z-index:6400;background:rgba(24,16,8,.5);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px;animation:mcFade .18s ease;}
.cnc-card{position:relative;width:min(520px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;padding:28px 26px 22px;text-align:center;box-shadow:0 40px 100px -28px rgba(40,20,5,.5);animation:mcPop .28s cubic-bezier(.16,1,.3,1);}
.cnc-x{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;border:none;background:#f5f4fa;color:#8b8eae;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.cnc-x:hover{background:#f1eefe;color:#5b3fd4;transform:rotate(90deg);}
.cnc-ic{width:64px;height:64px;margin:0 auto 12px;border-radius:18px;background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.7rem;box-shadow:0 12px 26px -10px rgba(123,77,255,.55);}
.cnc-title{font-size:1.2rem;font-weight:800;color:#23254a;}
.cnc-sub{font-size:.78rem;color:#9a9cb8;margin:4px auto 18px;max-width:400px;line-height:1.6;}
.cnc-fields{text-align:left;}
.cnc-label{display:block;font-size:.8rem;font-weight:700;color:#6b6f94;margin:12px 0 6px;}
.cnc-input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #e2e0ee;border-radius:10px;font-size:.9rem;outline:none;background:#fff;transition:border-color .15s;}
.cnc-input:focus{border-color:#7b4dff;box-shadow:0 0 0 3px rgba(123,77,255,.1);}
textarea.cnc-input{resize:none;}
.cnc-row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.cnc-preview{background:#faf9ff;border:1px solid #e9e5f9;border-radius:12px;padding:10px 14px;margin-top:23px;text-align:left;}
.cnc-pv-label{font-size:.72rem;font-weight:800;color:#7b4dff;letter-spacing:1px;}
.cnc-pv-origin{font-size:.84rem;color:#8b8eae;margin-top:4px;}
.cnc-pv-origin b{color:#23254a;font-size:1.05rem;}
.cnc-pv-member{margin-top:3px;font-size:.84rem;color:#0c8a62;}
.cnc-pv-member b{font-size:1.25rem;color:#0fae72;}
.cnc-pv-member em{font-style:normal;font-size:.74rem;color:#8b8eae;}
.cnc-pv-member.off{color:#9a9cb8;}
.cnc-rule{font-size:.72rem;color:#b0a283;background:#fffaf0;border:1px solid #f5e7c2;border-radius:10px;padding:8px 12px;margin:14px 0 4px;line-height:1.6;}
/* 收费方式二选一卡片 026-10-08）：会员免费 / 会员付费 */
.cnc-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.cnc-mode{
  display:flex;flex-direction:column;gap:5px;text-align:left;
  padding:11px 13px;border-radius:12px;border:1px solid #e8e4f6;background:#fbfaff;
  font-family:inherit;cursor:pointer;transition:all .18s;
}
.cnc-mode i{font-size:1.05rem;color:#a5a8c4;}
.cnc-mode b{font-size:.86rem;font-weight:800;color:#23254a;}
.cnc-mode em{font-style:normal;font-size:.72rem;line-height:1.5;color:#8b8eae;}
.cnc-mode:hover{border-color:#cdbdfa;}
.cnc-mode.on{border-color:#7b4dff;background:linear-gradient(165deg,#f9f6ff,#f2edff);box-shadow:0 10px 22px -16px rgba(123,77,255,.7);}
.cnc-mode.on i{color:#7b4dff;}
.cnc-mode.on b{color:#5b3fd4;}
.cnc-free-tip{
  display:flex;align-items:center;gap:7px;margin-top:23px;padding:11px 13px;border-radius:12px;
  background:#f1fbf6;border:1px dashed #b8ecd9;color:#0c8a62;font-size:.78rem;font-weight:600;line-height:1.5;
}
.cnc-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;}
.cnc-cancel{padding:10px 22px;border-radius:100px;border:1px solid #e5e5e5;background:#fff;color:#8b8eae;cursor:pointer;font-size:.88rem;}
.cnc-create{padding:10px 24px;border-radius:100px;border:none;background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;cursor:pointer;font-size:.9rem;font-weight:800;display:inline-flex;align-items:center;gap:6px;box-shadow:0 10px 22px -10px rgba(123,77,255,.6);transition:all .18s;}
.cnc-create:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05);}
.cnc-create:disabled{opacity:.7;cursor:not-allowed;}
/* 教程详情解锁 · 会员价提 */
.tdz-member-tip{color:#a37214 !important;background:#fff7e2;border:1px solid #f0dcae;border-radius:100px;display:inline-block;padding:3px 12px;margin-top:6px !important;}
.tdz-member-tip i{color:#d4a017;}
@media (max-width:560px){.cnc-row2{grid-template-columns:1fr;}.cnc-card{padding:24px 18px 18px;}}
/* ============================================================
   专栏 v3 · 收录文章制（hero 运营 + 文章付费墙）
   ============================================================ */
/* Hero 拆分两栏：左频道信息 + 右运营卡（复用教 sp-head-cards 卡片 */
.col-hero.col-hero-split{display:flex;align-items:stretch;justify-content:space-between;gap:26px;flex-wrap:wrap;}
.col-hero-split .col-hero-inner{flex:1;min-width:320px;}
.col-hero-cards{width:min(540px,100%);}
.col-hero-cards .sp-pub-card{box-shadow:0 14px 30px -22px rgba(0,0,0,.55);}
/* 导航：我的专 tab 强调 */
.sp-tab-mine{border-color:rgba(0,181,164,.4) !important;background:rgba(0,181,164,.08) !important;color:#0a8f83 !important;}
.sp-tab-mine.on{background:linear-gradient(135deg,#00b5a4,#7b4dff) !important;color:#fff !important;border-color:transparent !important;box-shadow:0 8px 20px -8px rgba(0,181,164,.6) !important;}
.sp-tab em{font-style:normal;font-size:.72rem;opacity:.72;margin-left:3px;}

/* 文章编辑器：收录专栏提示 */
.ad-col-tip{
  margin-top:8px;padding:9px 12px;border-radius:10px;font-size:.78rem;line-height:1.6;
  background:#f5f2ff;border:1px solid #e4ddfb;color:#5b3fd4;
}
.ad-col-tip i{margin-right:5px;}
.ad-col-tip b{color:#3a2b7a;}
.ad-col-tip.muted{background:#f7f7f5;border-color:#ecebe6;color:#8b8eae;}
.ad-col-new{white-space:nowrap;font-size:.8rem;}

/* 文章详情：收录专栏标 */
.ad-col-chip-row{margin:2px 0 14px;}
.ad-col-chip{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  padding:7px 16px;border-radius:100px;
  background:linear-gradient(135deg,#f7f5ff,#f0fbff);
  border:1px solid #e2dbf8;color:#5b3fd4;font-size:.84rem;font-weight:700;
  transition:all .18s;
}
.ad-col-chip:hover{border-color:#bcaef5;box-shadow:0 8px 20px -12px rgba(91,63,212,.5);color:#4a2fc0;}
.ad-col-chip i{color:#7b4dff;}
.ad-col-chip em{font-style:normal;font-size:.72rem;font-weight:800;padding:2px 9px;border-radius:100px;}
.ad-col-chip em.ok{background:#e8f9f1;color:#0c8a62;border:1px solid #b8ecd9;}
.ad-col-chip em.lock{background:#fff7e2;color:#8a5a00;border:1px solid #f0dcae;}

/* 文章付费墙：正文渐隐 + 解锁 */
.ad-body.ad-locked{
  position:relative;max-height:520px;overflow:hidden;
  mask-image:linear-gradient(180deg,#000 0%,#000 52%,rgba(0,0,0,.35) 82%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 52%,rgba(0,0,0,.35) 82%,transparent 100%);
}
.ad-lock-zone{position:relative;margin:6px 0 22px;}
.ad-lock-glow{
  position:absolute;inset:-30px 0 auto 0;height:120px;
  background:radial-gradient(60% 100% at 50% 0%, rgba(123,77,255,.18), transparent 70%);
  pointer-events:none;
}
.ad-lock-in{
  position:relative;border-radius:18px;padding:24px 26px 22px;text-align:center;
  background:
    radial-gradient(420px 200px at 100% 0%, rgba(0,181,164,.12), transparent 62%),
    radial-gradient(460px 220px at 0% 100%, rgba(123,77,255,.14), transparent 62%),
    linear-gradient(165deg,#fbfaff,#f5f1ff 60%,#f6fcff);
  border:1px solid #e3dbf8;
  box-shadow:0 24px 60px -34px rgba(70,40,160,.5);
}
.ad-lock-ic{
  width:56px;height:56px;margin:0 auto 12px;border-radius:16px;
  background:linear-gradient(135deg,#2b2350,#5b3fd4);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.4rem;
  box-shadow:0 12px 26px -12px rgba(91,63,212,.65);
}
.ad-lock-txt b{display:block;font-size:1.06rem;color:#23254a;margin-bottom:6px;}
.ad-lock-txt p{margin:0 auto;max-width:560px;font-size:.88rem;color:#77799a;line-height:1.75;}
.ad-lock-txt strong{color:#a37214;font-weight:800;}
.ad-lock-act{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px;flex-wrap:wrap;}
.ad-lock-btn{
  display:inline-flex;align-items:center;gap:7px;border:none;cursor:pointer;
  padding:12px 26px;border-radius:100px;font-size:.95rem;font-weight:900;color:#5c3f05;
  background:linear-gradient(135deg,#ffd977,#f2b42e 55%,#cf8f1e);
  box-shadow:0 14px 30px -14px rgba(220,160,40,.75);transition:all .18s;
}
.ad-lock-btn:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05);}
.ad-lock-btn:disabled{opacity:.7;cursor:not-allowed;}
.ad-lock-link{
  display:inline-flex;align-items:center;gap:5px;text-decoration:none;
  padding:11px 20px;border-radius:100px;font-size:.88rem;font-weight:700;
  background:#fff;border:1px solid #e2dbf8;color:#5b3fd4;transition:all .18s;
}
.ad-lock-link:hover{border-color:#bcaef5;background:#f7f5ff;color:#4a2fc0;}
.ad-lock-member{
  margin-top:12px;display:inline-flex;align-items:center;gap:6px;
  font-size:.8rem;font-weight:700;color:#a37214;
  background:#fff7e2;border:1px solid #f0dcae;border-radius:100px;padding:5px 14px;
}
.ad-lock-member i{color:#d4a017;}

@media (max-width:900px){
  .col-hero-cards{width:100%;}
  .ad-lock-in{padding:20px 16px 18px;}
  .ad-lock-act{flex-direction:column;align-items:stretch;}
  .ad-lock-btn,.ad-lock-link{justify-content:center;}
}

/* ============================================================
   专栏 v4 · hero 卡片比例 2:1 + 全宽导航 + 标题 + 广场 1400
   ============================================================ */
/* 1) hero 右侧卡片：宽高比 2:1（不细长、不过高 
   注意：sp-head-cards 原为 flex+stretch，会拉伸卡片高度 aspect-ratio 失效   grid + align-items:start */
.col-hero-cards{
  width:min(496px,100%);
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:14px;align-items:start;
}
.col-hero-cards .sp-pub-card{
  aspect-ratio:2 / 1;
  height:auto;
  justify-content:space-between;
  padding:12px 15px 10px;
  border-radius:16px;
}
.col-hero-cards .sp-card-top{margin-bottom:2px;}
.col-hero-cards .sp-card-k{padding:2px 9px;font-size:.66rem;}
.col-hero-cards .sp-card-title{font-size:.96rem;}
.col-hero-cards .sp-card-sub{font-size:.71rem;}
.col-hero-cards .sp-card-bottom{padding-top:4px;}
.col-hero-cards .sp-card-feats{font-size:.66rem;}
.col-hero-cards .sp-card-cta{padding:5px 13px;font-size:.74rem;}
/* 2) 导航位于 hero 下方全宽：与内容区对齐更紧凑 */
.col-page > .sp-guide{margin-top:2px;margin-bottom:18px;}
/* 3) 专栏名称固定黑色（避免继承主题色/链接色） */
.col-item-name,.col-item-name *{color:#111 !important;}
a.col-item:hover .col-item-name,a.col-item:hover .col-item-name *{color:#111 !important;}
/* 4) 广场 square）内容区最大宽 1400px */
.sq-page{width:100%;max-width:1400px;margin:0 auto;}
@media (max-width:900px){
  .col-hero-cards{width:100%;grid-template-columns:1fr;}
  .col-hero-cards .sp-pub-card{aspect-ratio:auto;min-height:100px;}
}

/* 专栏 v4.1 · hero 分栏宽度强约束（卡组固定 496，左侧自适应 */
.col-page .col-hero-split .col-hero-inner{flex:1 1 380px;min-width:0;}
.col-page .col-hero-cards{flex:0 0 496px;width:496px;max-width:496px;box-sizing:border-box;}
@media (max-width:900px){
  .col-page .col-hero-cards{flex:1 1 auto;width:100%;max-width:100%;}
  .col-page .col-hero-split .col-hero-inner{flex:1 1 100%;}
}

/* ============================================================
   专栏 v5 · hero 紧凑 白卡主题适配) + 统计黑字 + 卡片与父容器等高
   ============================================================ */
/* 主题收敛层把 .col-hero 定为白卡浅底：这里统一文字/间距为浅底可读方案并收紧高度 */
.col-page .col-hero{padding:17px 22px;margin-bottom:14px;border-radius:18px;}
.col-page .col-hero-inner{display:flex;flex-direction:column;justify-content:center;}
.col-page .col-hero-badge{
  padding:4px 11px;font-size:.72rem;margin-bottom:7px;font-weight:700;
  background:rgba(138,59,255,.08);border:1px solid rgba(138,59,255,.2);color:#6a2fe0;
}
.col-page .col-hero-badge i{color:#7b4dff;}
.col-page .col-hero-title{font-size:clamp(1.22rem,1.85vw,1.6rem);margin:0 0 4px;line-height:1.25;}
.col-page .col-hero-title span{color:#6a2fe0;-webkit-text-fill-color:#6a2fe0;background:none;}
.col-page .col-hero-sub{font-size:.83rem;margin:0 0 11px;color:#77799a;line-height:1.6;}
/* 统计：数字黑 + 标签深灰（白卡上清晰可见 */
.col-page .col-hero-stats{gap:10px;margin:0;}
.col-page .col-hero-stats > div{
  display:inline-flex;align-items:baseline;gap:5px;
  padding:5px 13px;border-radius:11px;background:#fff;border:1px solid #eceaf6;
  box-shadow:0 4px 12px -8px rgba(60,40,120,.14);
}
.col-page .col-hero-stats b{color:#171a33 !important;font-size:1.06rem;font-weight:800;font-family:Poppins,Inter,sans-serif;display:inline;}
.col-page .col-hero-stats span{color:#8b8eae !important;font-size:.73rem;display:inline;}
/* 右侧卡片组： hero 左栏等高（stretch），卡片维持 2:1 — 长高与父容器贴合 */
.col-page .col-hero-split{align-items:stretch;gap:22px;}
.col-page .col-hero-cards{
  display:flex;gap:12px;
  align-items:stretch;align-self:stretch;height:auto;
  flex:0 0 auto;width:auto;max-width:none;
}
.col-page .col-hero-cards .sp-pub-card{
  flex:0 0 auto;height:100%;width:auto;
  aspect-ratio:2 / 1;
  min-width:196px;max-width:none;
  padding:11px 14px 9px;border-radius:15px;
}
.col-page .col-hero-cards .sp-card-title{font-size:.92rem;}
.col-page .col-hero-cards .sp-card-sub{font-size:.69rem;}
.col-page .col-hero-cards .sp-card-cta{padding:4px 12px;font-size:.72rem;}
@media (max-width:900px){
  .col-page .col-hero-cards{flex-direction:column;width:100%;max-width:100%;}
  .col-page .col-hero-cards .sp-pub-card{aspect-ratio:auto;height:auto;min-height:96px;max-width:none;}
}
/* 广场右侧边栏：固定在视口内，不随页面滚动（内部可独立滚动 */
.tj-sidebar-right{
  max-height:calc(100vh - 104px);
  overflow-y:auto;overscroll-behavior:contain;
  padding-right:2px;scrollbar-width:thin;
}
.tj-sidebar-right::-webkit-scrollbar{width:6px;}
.tj-sidebar-right::-webkit-scrollbar-thumb{background:rgba(138,59,255,.22);border-radius:100px;}
.tj-sidebar-right::-webkit-scrollbar-track{background:transparent;}

/* ============================================================
   专栏 v6 · hero 对齐教程频道范式（sp-content-head + sp-bar2，舒展间距）
   ============================================================ */
.col-page .col-hero{padding:22px 26px 18px;border-radius:20px;}
.col-page .col-hero .sp-content-head{gap:26px;margin:0;}
.col-page .col-hero .sp-head-main{gap:7px;min-width:300px;}
.col-page .col-hero .sp-head-chip{font-size:.78rem;padding:6px 14px;}
.col-page .col-hero .sp-head-title{font-size:clamp(1.5rem,2.2vw,2rem) !important;line-height:1.2;}
.col-page .col-hero .sp-head-sub{margin:2px 0 0;font-size:.92rem;color:#77799a;line-height:1.75;max-width:760px;}
.col-page .col-hero .sp-head-stats{margin-top:10px;gap:10px;}
.col-page .col-hero .sp-head-stats span{padding:7px 16px;border-radius:12px;background:#fff;border:1px solid #eceaf6;color:#8c8fb0;font-size:.84rem;box-shadow:0 4px 12px -8px rgba(60,40,120,.14);}
.col-page .col-hero .sp-head-stats b{color:#171a33;font-size:1.1rem;font-family:Poppins,Inter,sans-serif;font-weight:800;}
.col-page .col-hero .sp-head-stats i{width:1px;height:14px;background:#eceaf6;}
/* 右卡组：与左栏等高（沿用 v5 flex + 2:1 */
.col-page .col-hero .sp-head-cards{gap:14px;}
.col-page .col-hero .col-hero-cards{align-self:stretch;}
/* 信息行：与主区留出呼 + 虚线分隔 */
.col-page .col-hero .sp-bar2{margin:16px 0 0;padding-top:13px;border-top:1px dashed #f0eefa;}
.col-page .col-hero .sp-btn3{padding:8px 18px;border-radius:100px;font-size:.86rem;}
@media (max-width:900px){
  .col-page .col-hero{padding:18px 16px 14px;}
  .col-page .col-hero .sp-content-head{gap:16px;}
  .col-page .col-hero .sp-head-stats span{padding:6px 12px;font-size:.78rem;}
}

/* ============================================================
   专栏 v7 · hero 右卡组适配父容器（宽度驱动 + 严格 2:1，不再溢出被裁）
   根因：v5 卡片高度驱动宽度（height:100% + aspect-ratio），卡组总宽 736 > hero 可用空间  overflow:hidden 裁掉右卡
   ============================================================ */
.col-page .col-hero .sp-content-head{align-items:center;}
.col-page .col-hero .sp-head-cards{
  flex:0 0 auto;
  width:min(660px,50%);
  max-width:50%;
  align-self:center;
  height:auto;
  gap:14px;
}
.col-page .col-hero-cards .sp-pub-card{
  flex:1 1 0;
  min-width:0;
  width:auto;
  height:auto;
  max-width:none;
  aspect-ratio:2 / 1;
  padding:12px 15px 10px;
}
@media (max-width:1200px){
  .col-page .col-hero .sp-head-cards{width:min(580px,52%);max-width:52%;}
}
@media (max-width:900px){
  .col-page .col-hero .sp-head-cards{width:100%;max-width:100%;align-self:stretch;flex-direction:column;}
  .col-page .col-hero-cards .sp-pub-card{flex:1 1 auto;min-height:96px;aspect-ratio:auto;}
}

/* ============================================================
   专栏 v8 · hero 右卡组对齐「教程频道」的缩放策略 026-10-08 
   — 修「屏幕变窄后卡片中间文字被遮挡 
   根因：v5/v7 给卡片锁 aspect-ratio:2/1  高度恒等于宽度的一半）。屏幕一窄，卡宽变小  
   高度同比变小  卡内 flex 子项被压扁：实测 1241px 时标题只 9px、副标题 7px（行高却 20px），
   1100px 时直接压 0  文字溢出自己的盒子、与下方一行叠在一起 
   教程频道同类卡片**没有固定比例**、高度由内容撑开，所以任何宽度都不被压（实测恒定 165px） 
   这里换成同一策略：高度内容驱 + 宽度随容器缩放；放不下时 .sp-content-head  flex-wrap
   整组换行铺满（和教程频道一致） 
   ============================================================ */
.col-page .col-hero .sp-head-cards{
  flex:0 1 auto;
  width:min(660px,100%);
  max-width:100%;
  align-self:center;
  height:auto;
  gap:14px;
}
.col-page .col-hero-cards .sp-pub-card{
  flex:1 1 0;
  width:auto;
  height:auto;
  min-width:0;
  max-width:none;
  aspect-ratio:auto;
  padding:12px 15px 10px;
}
/* 兜底：卡内四行永远不参与压缩。万一以后又被谁加上固定高度，也只会多出留白，不会文字叠字 */
.col-page .col-hero-cards .sp-card-top,
.col-page .col-hero-cards .sp-card-title,
.col-page .col-hero-cards .sp-card-sub,
.col-page .col-hero-cards .sp-card-bottom{flex:0 0 auto;}
@media (max-width:1200px){
  .col-page .col-hero .sp-head-cards{width:min(580px,100%);max-width:100%;}
}
@media (max-width:900px){
  .col-page .col-hero .sp-head-cards{width:100%;max-width:100%;align-self:stretch;flex-direction:column;}
  .col-page .col-hero-cards .sp-pub-card{flex:1 1 auto;min-height:96px;}
}

/* ============================================================
   专栏 v9 · hero 两卡配色区分 + 文案靠左 + 收费方式维度 026-10-08 
    「创建专栏」卡 <button>，UA 默认 text-align:center  卡内标题/副标题被居中 
      与旁边那 <a> 卡不一致；这里统一靠左 
    两张卡原来共用一套紫青渐变，视觉上分不清；改 创建专栏= / 写文 青 
   ⚠️ 修饰类名不要 .pub-create/.pub-write — 3730 行附近已有一个老组件在 
      `.pub-write`（inline-flex + align-items:center + 蓝色文字），撞上后写文章卡的内容
      会被整块居中、和左边卡对不齐 026-10-08 踩过），故改 .card-create/.card-write 
   ============================================================ */
.sp-head-cards .sp-pub-card{text-align:left;align-items:stretch;}
.col-hero-cards .sp-pub-card.card-create{
  background:
    radial-gradient(200px 120px at 100% 0%, rgba(123,77,255,.20), transparent 65%),
    radial-gradient(240px 140px at 0% 100%, rgba(167,139,250,.16), transparent 65%),
    linear-gradient(165deg,#fbfaff 0%,#f2edff 60%,#f8f6ff 100%);
  border-color:rgba(123,77,255,.32);
}
.col-hero-cards .sp-pub-card.card-create:hover{box-shadow:0 16px 34px -18px rgba(123,77,255,.6);}
.col-hero-cards .sp-pub-card.card-create .sp-card-k{background:rgba(123,77,255,.12);color:#6a2fe0;border-color:rgba(123,77,255,.3);}
.col-hero-cards .sp-pub-card.card-create .sp-card-pen{color:#7b4dff;}
.col-hero-cards .sp-pub-card.card-create .sp-card-title b{background:linear-gradient(100deg,#7b4dff,#a78bfa);}
.col-hero-cards .sp-pub-card.card-create .sp-card-cta.cta-tech{
  background:linear-gradient(135deg,#7b4dff,#a78bfa);
  box-shadow:0 6px 14px -6px rgba(123,77,255,.6);
}
.col-hero-cards .sp-pub-card.card-write{
  background:
    radial-gradient(200px 120px at 100% 0%, rgba(0,181,164,.20), transparent 65%),
    radial-gradient(240px 140px at 0% 100%, rgba(34,193,168,.14), transparent 65%),
    linear-gradient(165deg,#f9ffff 0%,#eefbf8 60%,#f7fdfc 100%);
  border-color:rgba(0,181,164,.34);
}
.col-hero-cards .sp-pub-card.card-write:hover{box-shadow:0 16px 34px -18px rgba(0,181,164,.55);}
.col-hero-cards .sp-pub-card.card-write .sp-card-k{background:rgba(0,181,164,.12);color:#0a8f83;border-color:rgba(0,181,164,.3);}
.col-hero-cards .sp-pub-card.card-write .sp-card-pen{color:#00b5a4;}
.col-hero-cards .sp-pub-card.card-write .sp-card-title b{background:linear-gradient(100deg,#00b5a4,#22c1a8);}
.col-hero-cards .sp-pub-card.card-write .sp-card-cta.cta-tech{
  background:linear-gradient(135deg,#00b5a4,#22c1a8);
  box-shadow:0 6px 14px -6px rgba(0,181,164,.55);
}
/* 收费方式维度行（会员免费 / 会员付费）：与「子分类」同一套行样式，主色用紫以区别于青色的子分 */
.sp-guide-paymode .sp-guide-sub-label i{color:#7b4dff;}
.sp-guide-paymode .sp-subtab:hover{color:#7b4dff;border-color:#c9bfff;background:#f6f2ff;}
.sp-guide-paymode .sp-subtab.on{background:#f1ecff;border-color:#b9a6f7;color:#5b3fd4;font-weight:700;}
/* 卡片上的收费方式徽标（会员免费）用绿色，与「订 ¥xx」的金色价格区分开 */
.col-meta-item.free i{color:#0fae72;}

/* ============================================================
   专栏 v10 · hero 卡片区不再换行（2026-10-08）
   - Issue: when the viewport narrows, the card group was pushed onto a second row under the
     left text (measured at 1201-1225px and <=1024px). Cause: .sp-content-head is flex-wrap:wrap
     and the sum "left text basis (34%) + gap + card group basis" exceeded the container by only
     3-4px, which is enough to wrap the whole group.
   - Fix: keep this row on one line (nowrap) and shrink instead. The card group gets min-width:0
     so it can compress, the left text keeps its 300px floor. The deficit is only a few px, so
     the visual result is virtually unchanged; card text already has ellipsis.
   - Note: the hero is hidden below 1024px (H5 layout), so nowrap cannot overflow small screens.
   ============================================================ */
.col-page .col-hero .sp-content-head{flex-wrap:nowrap;}
.col-page .col-hero .sp-head-cards{flex:0 1 auto;min-width:0;}
.col-page .col-hero .sp-head-main{flex:1 1 34%;min-width:300px;}

/* ============================================================
   发布页 v1 · 教程/文章编辑器共用（状态胶囊 + 草稿恢复提示 + 自动保存文案）
   ============================================================ */
.te-status{display:inline-flex;align-items:center;margin-left:10px;padding:2px 10px;border-radius:100px;font-size:.72rem;font-weight:700;vertical-align:middle;}
.te-status-draft{background:#f4f4f6;color:#8b8eae;}
.te-status-sched{background:#f1ecff;color:#5b3fd4;}
.te-status-ok{background:#e8f8f2;color:#0fae72;}
.te-restore{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:11px 16px;border-radius:12px;background:#f6f2ff;border:1px solid #ded1ff;color:#5b3fd4;font-size:.86rem;}
.te-restore i{font-size:1rem;}
.te-restore button{margin-left:auto;border:1px solid #c9bfff;background:#fff;color:#5b3fd4;font-size:.78rem;font-weight:700;padding:5px 12px;border-radius:100px;cursor:pointer;}
.te-restore button:hover{background:#f1ecff;}
.te-autosave{font-size:.78rem;color:#a3a5c4;}
.te-autosave.err{color:#e03131;}
.push-date-tip{margin-top:8px;font-size:.8rem;color:#999;}

/* ============================================================
   广场 v1 · 主色对齐教程频道（紫 #7b4dff +  #00b5a4  快捷入口
   ============================================================ */
/* 频道 chips */
.sq-page .wb-channel{background:#f6f4fb;color:#6b6f94;border:1px solid transparent;transition:all .18s;}
.sq-page .wb-channel:hover{background:#f1ecff;color:#6a2fe0;}
.sq-page .wb-channel.active{
  background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;font-weight:700;
  box-shadow:0 8px 18px -10px rgba(123,77,255,.65);
}
.sq-page .wb-channel.active i{color:#fff;}
/* 排序 */
.sq-page .wb-sort{color:#83859f;transition:all .16s;}
.sq-page .wb-sort:hover{color:#6a2fe0;}
.sq-page .wb-sort.active{color:#6a2fe0;font-weight:700;background:#f3efff;box-shadow:inset 0 0 0 1px rgba(123,77,255,.3);}
/* 发布 */
.sq-page .pub2-submit{background:linear-gradient(135deg,#00b5a4,#7b4dff);box-shadow:0 8px 18px -10px rgba(123,77,255,.6);}
.sq-page .pub2-submit:hover{background:linear-gradient(135deg,#00a896,#6a37f0);transform:translateY(-1px);box-shadow:0 10px 22px -10px rgba(123,77,255,.75);}
.sq-page .pub2-icon:hover{background:#f6f3ff;color:#6a2fe0;}
.sq-page .pub2-group{border-color:rgba(123,77,255,.3);background:#faf9ff;color:#6a2fe0;}
.sq-page .pub2-group:hover{background:#f3efff;border-style:solid;}
.sq-page .pub2-group.active{background:#efe9ff;border-color:rgba(123,77,255,.5);color:#5b3fd4;}

/* 发布框下方快捷入口（发帖 / 写文 / 创建圈子 / 我的圈子 */
.pub2-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px;}
.pub2-quick-item{
  display:flex;align-items:center;gap:10px;text-align:left;
  padding:11px 14px;border-radius:14px;cursor:pointer;
  background:#fff;border:1px solid #eceaf6;transition:all .2s cubic-bezier(.16,1,.3,1);
  box-shadow:0 6px 16px -14px rgba(60,40,120,.4);
}
.pub2-quick-item > i:first-child{
  width:34px;height:34px;flex-shrink:0;border-radius:11px;
  display:flex;align-items:center;justify-content:center;font-size:1rem;color:#fff;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);
  box-shadow:0 8px 16px -10px rgba(123,77,255,.7);
}
.pub2-quick-item.q-article > i:first-child{background:linear-gradient(135deg,#7b4dff,#a78bfa);}
.pub2-quick-item.q-groupNew > i:first-child{background:linear-gradient(135deg,#00d6c2,#00b5a4);}
.pub2-quick-item.q-groupMy > i:first-child{background:linear-gradient(135deg,#f2b42e,#d4941a);}
.pub2-quick-txt{display:flex;flex-direction:column;min-width:0;flex:1;}
.pub2-quick-txt b{font-size:.88rem;color:#1c1e3a;font-weight:700;line-height:1.3;}
.pub2-quick-txt em{font-style:normal;font-size:.7rem;color:#9a9cb8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pub2-quick-arrow{font-size:.72rem;color:#c9c4e2;transition:all .18s;}
.pub2-quick-item:hover{border-color:rgba(123,77,255,.35);transform:translateY(-2px);box-shadow:0 14px 28px -18px rgba(123,77,255,.55);}
.pub2-quick-item:hover .pub2-quick-arrow{color:#7b4dff;transform:translateX(2px);}
@media (max-width:900px){
  .pub2-quick{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .pub2-quick{grid-template-columns:1fr;}
}

/* ============================================================
   发帖 / 创建圈子 / 我的圈子 页面（pin-new 共用骨架 
   ============================================================ */
.pin-new{max-width:940px;margin:0 auto;padding:26px 22px 64px;}
.pin-new-head{margin-bottom:16px;}
.pin-new-chip{
  display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:100px;
  background:rgba(123,77,255,.08);border:1px solid rgba(123,77,255,.22);color:#6a2fe0;
  font-size:.78rem;font-weight:700;letter-spacing:.4px;
}
.pin-new-chip i{color:#7b4dff;}
.pin-new-title{font-size:clamp(1.35rem,2vw,1.75rem);color:#171a33;font-weight:800;margin:10px 0 4px;}
.pin-new-sub{margin:0;color:#77799a;font-size:.9rem;line-height:1.7;}
.pin-new-card{
  background:#fff;border:1px solid #eceaf6;border-radius:18px;padding:20px 22px;
  box-shadow:0 20px 50px -38px rgba(60,40,120,.45);
}
.pin-new-field{margin-bottom:16px;}
.pin-new-label{display:block;font-size:.82rem;font-weight:700;color:#6b6f94;margin-bottom:7px;}
.pin-new-label em{font-style:normal;color:#ef4444;}
.pin-new-input{
  width:100%;box-sizing:border-box;padding:11px 13px;border:1px solid #e2e0ee;border-radius:11px;
  font-size:.9rem;color:#22243c;outline:none;background:#fff;transition:border-color .15s,box-shadow .15s;
}
.pin-new-input:focus{border-color:#7b4dff;box-shadow:0 0 0 3px rgba(123,77,255,.1);}
.pin-new-textarea{resize:vertical;min-height:120px;line-height:1.75;font-family:inherit;}
.pin-new-count{text-align:right;font-size:.72rem;color:#b0b2cd;margin-top:4px;}
/* 圈子选择 */
.pin-new-groups{display:flex;flex-wrap:wrap;gap:8px;}
.pin-new-group{
  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:100px;cursor:pointer;
  background:#faf9ff;border:1px solid #e6e1f8;color:#5c5f7e;font-size:.84rem;font-weight:600;transition:all .16s;
}
.pin-new-group i{color:#7b4dff;}
.pin-new-group em{font-style:normal;font-size:.7rem;color:#a2a4c2;}
.pin-new-group:hover{border-color:rgba(123,77,255,.4);background:#f4f0ff;}
.pin-new-group.active{background:linear-gradient(135deg,#00b5a4,#7b4dff);border-color:transparent;color:#fff;box-shadow:0 8px 18px -10px rgba(123,77,255,.65);}
.pin-new-group.active i,.pin-new-group.active em{color:#fff;}
/* 图片 */
.pin-new-imgs{display:flex;flex-wrap:wrap;gap:10px;}
.pin-new-img{position:relative;width:96px;height:96px;border-radius:12px;overflow:hidden;border:1px solid #eceaf6;}
.pin-new-img img{width:100%;height:100%;object-fit:cover;display:block;}
.pin-new-img button{
  position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(24,18,40,.6);color:#fff;font-size:.7rem;display:flex;align-items:center;justify-content:center;
}
.pin-new-img-add{
  width:96px;height:96px;border-radius:12px;cursor:pointer;
  border:1px dashed rgba(123,77,255,.4);background:#faf9ff;color:#6a2fe0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:.72rem;transition:all .16s;
}
.pin-new-img-add:hover{background:#f3efff;border-style:solid;}
.pin-new-img-add i{font-size:1.1rem;}
/* 话题 */
.pin-new-tags{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.pin-new-tag{
  display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:100px;
  background:#f3efff;color:#6a2fe0;font-size:.8rem;font-weight:600;
}
.pin-new-tag i{cursor:pointer;font-size:.7rem;opacity:.7;}
.pin-new-tag i:hover{opacity:1;}
.pin-new-tag-input{
  flex:1;min-width:150px;padding:8px 12px;border:1px dashed #dcd8ef;border-radius:100px;
  font-size:.82rem;outline:none;background:#fcfbff;
}
.pin-new-tag-input:focus{border-color:#7b4dff;border-style:solid;}
/* 操作 */
.pin-new-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid #f3f1fa;}
.pin-new-cancel{padding:11px 24px;border-radius:100px;border:1px solid #e5e5e5;background:#fff;color:#8b8eae;text-decoration:none;font-size:.88rem;}
.pin-new-cancel:hover{background:#fafafa;color:#666;}
.pin-new-submit{
  padding:11px 28px;border-radius:100px;border:none;cursor:pointer;color:#fff;font-size:.92rem;font-weight:800;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);box-shadow:0 12px 26px -14px rgba(123,77,255,.7);
  display:inline-flex;align-items:center;gap:7px;transition:all .18s;
}
.pin-new-submit:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05);}
.pin-new-submit:disabled{opacity:.65;cursor:not-allowed;}

/* 创建圈子：图标与分类选择 */
.gnew-icons{display:flex;flex-wrap:wrap;gap:8px;}
.gnew-icon{
  width:42px;height:42px;border-radius:12px;cursor:pointer;font-size:1.05rem;
  border:1px solid #eceaf6;background:#fff;color:#6b6f94;transition:all .16s;
  display:flex;align-items:center;justify-content:center;
}
.gnew-icon:hover{border-color:rgba(123,77,255,.4);color:#6a2fe0;background:#faf9ff;}
.gnew-icon.active{background:linear-gradient(135deg,#00b5a4,#7b4dff);border-color:transparent;color:#fff;box-shadow:0 8px 18px -10px rgba(123,77,255,.65);}
.gnew-cats{display:flex;flex-wrap:wrap;gap:8px;}
.gnew-cat{
  padding:7px 16px;border-radius:100px;cursor:pointer;font-size:.83rem;font-weight:600;
  border:1px solid #e6e1f8;background:#faf9ff;color:#5c5f7e;transition:all .16s;
}
.gnew-cat:hover{border-color:rgba(123,77,255,.4);color:#6a2fe0;}
.gnew-cat.active{background:linear-gradient(135deg,#00b5a4,#7b4dff);border-color:transparent;color:#fff;}

/* 我的圈子 */
.gmy-tabs{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.gmy-tab{
  padding:8px 16px;border-radius:100px;cursor:pointer;font-size:.85rem;font-weight:600;
  border:1px solid #eceaf6;background:#fff;color:#83859f;transition:all .16s;
}
.gmy-tab:hover{color:#6a2fe0;border-color:rgba(123,77,255,.35);}
.gmy-tab.active{background:linear-gradient(135deg,#00b5a4,#7b4dff);border-color:transparent;color:#fff;box-shadow:0 8px 18px -10px rgba(123,77,255,.6);}
.gmy-new{
  margin-left:auto;display:inline-flex;align-items:center;gap:6px;text-decoration:none;
  padding:9px 20px;border-radius:100px;font-size:.87rem;font-weight:800;color:#fff;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);box-shadow:0 10px 22px -12px rgba(123,77,255,.7);
}
.gmy-new:hover{transform:translateY(-1px);color:#fff;filter:brightness(1.05);}
.gmy-list{display:flex;flex-direction:column;gap:12px;}
.gmy-item{
  display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:16px;
  background:#fff;border:1px solid #eceaf6;transition:all .18s;
  box-shadow:0 10px 26px -24px rgba(60,40,120,.4);
}
.gmy-item:hover{border-color:rgba(123,77,255,.3);transform:translateY(-2px);box-shadow:0 18px 34px -24px rgba(123,77,255,.5);}
.gmy-avatar{
  width:48px;height:48px;border-radius:14px;flex-shrink:0;text-decoration:none;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;overflow:hidden;
}
.gmy-avatar.sm{width:32px;height:32px;border-radius:10px;font-size:.88rem;}
.gmy-avatar img{width:100%;height:100%;object-fit:cover;}
.gmy-body{flex:1;min-width:0;}
.gmy-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.gmy-name{font-size:1rem;font-weight:800;color:#171a33;text-decoration:none;}
.gmy-name:hover{color:#6a2fe0;}
.gmy-cat{font-size:.68rem;font-weight:700;color:#6a2fe0;background:#f3efff;padding:2px 10px;border-radius:100px;}
.gmy-owner{font-size:.68rem;font-weight:700;color:#8a5a00;background:#fff7e2;border:1px solid #f0dcae;padding:2px 10px;border-radius:100px;}
.gmy-desc{font-size:.82rem;color:#8b8eae;margin:4px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gmy-meta{display:flex;gap:14px;font-size:.75rem;color:#a2a4c2;}
.gmy-meta i{margin-right:3px;}
.gmy-actions{display:flex;gap:8px;flex-shrink:0;}
.gmy-btn{
  padding:8px 18px;border-radius:100px;cursor:pointer;font-size:.83rem;font-weight:700;text-decoration:none;
  border:1px solid #e6e1f8;background:#fff;color:#5c5f7e;transition:all .16s;
}
.gmy-btn:hover{border-color:rgba(123,77,255,.4);color:#6a2fe0;background:#faf9ff;}
.gmy-btn.primary{background:linear-gradient(135deg,#00b5a4,#7b4dff);border-color:transparent;color:#fff;}
.gmy-btn.primary:hover{filter:brightness(1.05);color:#fff;transform:translateY(-1px);}
.gmy-btn.sm{padding:6px 14px;font-size:.78rem;}
.gmy-btn:disabled{opacity:.6;cursor:not-allowed;}
.gmy-reco{margin-top:22px;background:#fff;border:1px solid #eceaf6;border-radius:16px;padding:16px 18px;}
.gmy-reco-title{font-size:.95rem;font-weight:800;color:#23254a;margin-bottom:12px;}
.gmy-reco-title i{color:#f2b42e;margin-right:6px;}
.gmy-reco-list{display:flex;flex-direction:column;gap:10px;}
.gmy-reco-item{display:flex;align-items:center;gap:10px;}
.gmy-reco-name{font-size:.88rem;font-weight:700;color:#23254a;text-decoration:none;flex:1;min-width:0;}
.gmy-reco-name:hover{color:#6a2fe0;}
.gmy-reco-meta{font-size:.75rem;color:#a2a4c2;}
@media (max-width:640px){
  .pin-new{padding:18px 14px 56px;}
  .gmy-item{flex-direction:column;align-items:stretch;}
  .gmy-actions{justify-content:flex-end;}
  .gmy-new{margin-left:0;width:100%;justify-content:center;}
}

/* ============================================================
   广场 v2 · 发帖 #标签高亮 + 圈子弹窗 + 右栏改为 热榜/热门标签（不 fixed 
   ============================================================ */
/* 0) 右栏：取消固定定位（随页面滚动），恢复自然高 */
.tj-sidebar-right{position:static !important;top:auto !important;max-height:none !important;overflow:visible !important;}
.tj-sidebar-right::-webkit-scrollbar{width:0;}

/* 1) 正文 #标签 蓝色高亮：textarea 透明文字 + 背后镜像 */
.pin-hl-wrap{position:relative;}
.pin-hl{
  position:absolute;inset:1px;padding:11px 13px;box-sizing:border-box;
  font-family:inherit;font-size:.9rem;line-height:1.75;letter-spacing:normal;
  white-space:pre-wrap;word-break:break-word;overflow:hidden;
  color:#22243c;pointer-events:none;
}
.pin-hl .pin-tag-hl{color:#1e88e5;font-weight:700;}
.pin-new-textarea.pin-ta{position:relative;background:transparent;color:transparent;caret-color:#171a33;}
.pin-new-textarea.pin-ta::selection{background:rgba(123,77,255,.18);color:transparent;}
.pin-tag-demo{color:#1e88e5;font-weight:700;background:#eef4ff;border-radius:6px;padding:1px 6px;}
.pin-tag-chip{
  display:inline-block;font-style:normal;font-size:.74rem;font-weight:700;color:#1e88e5;
  background:#eef4ff;border-radius:100px;padding:2px 9px;margin-left:5px;
}
.pin-new-count{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;}

/* 2) 圈子选择触发按钮 */
.pin-new-picker{
  width:100%;display:flex;align-items:center;gap:11px;text-align:left;cursor:pointer;
  padding:11px 14px;border-radius:12px;border:1px solid #e2e0ee;background:#fff;transition:all .16s;
}
.pin-new-picker:hover{border-color:rgba(123,77,255,.4);background:#faf9ff;}
.pin-new-picker-ic{
  width:34px;height:34px;flex-shrink:0;border-radius:10px;color:#fff;font-size:.95rem;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.pin-new-picker-ic.ghost{background:#f3efff;color:#6a2fe0;}
.pin-new-picker-ic img{width:100%;height:100%;object-fit:cover;}
.pin-new-picker-txt{flex:1;min-width:0;display:flex;flex-direction:column;}
.pin-new-picker-txt b{font-size:.92rem;color:#1c1e3a;font-weight:700;}
.pin-new-picker-txt em{font-style:normal;font-size:.73rem;color:#9a9cb8;}
.pin-new-picker-op{
  display:inline-flex;align-items:center;gap:3px;font-size:.8rem;font-weight:700;color:#6a2fe0;
  background:#f3efff;border-radius:100px;padding:5px 12px;flex-shrink:0;
}

/* 3) 圈子弹窗（搜 + 滚动加载更多 */
.gpk-mask{
  position:fixed;inset:0;z-index:6000;background:rgba(24,18,40,.42);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.gpk-card{
  width:min(560px,100%);max-height:86vh;display:flex;flex-direction:column;
  background:#fff;border-radius:18px;overflow:hidden;
  box-shadow:0 40px 90px -30px rgba(40,20,90,.5);animation:mcPop .26s cubic-bezier(.16,1,.3,1);
}
.gpk-head{display:flex;align-items:center;gap:10px;padding:16px 18px 10px;}
.gpk-title{flex:1;display:flex;align-items:center;gap:8px;font-size:1rem;font-weight:800;color:#171a33;}
.gpk-title i{color:#7b4dff;}
.gpk-title em{font-style:normal;font-size:.72rem;font-weight:600;color:#9a9cb8;}
.gpk-x{width:32px;height:32px;border-radius:50%;border:none;background:#f5f4fa;color:#8b8eae;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.gpk-x:hover{background:#f1eefe;color:#5b3fd4;transform:rotate(90deg);}
.gpk-search{
  margin:0 18px 10px;display:flex;align-items:center;gap:8px;
  padding:9px 14px;border-radius:100px;background:#f8f7fd;border:1px solid #eceaf6;
}
.gpk-search > i{color:#9a9cb8;font-size:.9rem;}
.gpk-search input{flex:1;border:none;outline:none;background:transparent;font-size:.88rem;color:#22243c;}
.gpk-search > i:last-child{cursor:pointer;}
.gpk-list{flex:1;overflow-y:auto;padding:4px 12px 8px;scrollbar-width:thin;}
.gpk-list::-webkit-scrollbar{width:6px;}
.gpk-list::-webkit-scrollbar-thumb{background:rgba(123,77,255,.22);border-radius:100px;}
.gpk-item{
  width:100%;display:flex;align-items:center;gap:11px;text-align:left;cursor:pointer;
  padding:10px 12px;border-radius:12px;border:1px solid transparent;background:transparent;transition:all .15s;
}
.gpk-item:hover{background:#faf9ff;border-color:#eceaf6;}
.gpk-item.active{background:#f4f0ff;border-color:rgba(123,77,255,.35);}
.gpk-item-ic{
  width:38px;height:38px;flex-shrink:0;border-radius:11px;color:#fff;font-size:1rem;overflow:hidden;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);display:flex;align-items:center;justify-content:center;
}
.gpk-item-ic.ghost{background:#f3efff;color:#6a2fe0;}
.gpk-item-ic img{width:100%;height:100%;object-fit:cover;}
.gpk-item-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.gpk-item-txt b{font-size:.9rem;color:#1c1e3a;font-weight:700;display:flex;align-items:center;gap:6px;}
.gpk-item-txt em{font-style:normal;font-size:.73rem;color:#9a9cb8;}
.gpk-cat{font-size:.66rem;font-weight:700;color:#6a2fe0;background:#f3efff;padding:1px 8px;border-radius:100px;}
.gpk-check{color:#7b4dff;font-size:1.05rem;}
.gpk-empty{padding:26px 10px;text-align:center;font-size:.84rem;color:#a2a4c2;}
.gpk-more{
  width:100%;margin:6px 0 2px;padding:10px;border-radius:12px;cursor:pointer;
  border:1px dashed #dcd8ef;background:#fcfbff;color:#6a2fe0;font-size:.82rem;font-weight:700;
}
.gpk-more:hover{background:#f6f3ff;border-style:solid;}
.gpk-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-top:1px solid #f3f1fa;background:#fcfbff;}
.gpk-create{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-size:.84rem;font-weight:800;color:#fff;padding:8px 16px;border-radius:100px;background:linear-gradient(135deg,#00b5a4,#7b4dff);}
.gpk-tip{font-size:.72rem;color:#a2a4c2;}

/* 4) 广场右栏：热榜排 + 热门标签 */
.sq-side-login{padding:6px 22px;border-radius:100px;font-size:.85rem;font-weight:700;color:#fff;text-decoration:none;background:linear-gradient(135deg,#00b5a4,#7b4dff);}
.sq-side-reg{padding:6px 22px;border-radius:100px;font-size:.85rem;font-weight:700;color:#6a2fe0;text-decoration:none;background:#fff;border:1px solid rgba(123,77,255,.3);}
.sq-side-sub{font-style:normal;font-size:.7rem;font-weight:600;color:#a2a4c2;margin-left:4px;}
.sq-side-more{font-size:.72rem;color:#8b8eae;text-decoration:none;}
.sq-side-more:hover{color:#6a2fe0;}
.sq-side-empty{padding:14px 4px;font-size:.8rem;color:#c2c4d8;text-align:center;}
.sq-ic-hot{color:#f2612f;margin-right:6px;}
.sq-ic-tag{color:#7b4dff;margin-right:6px;}
.sq-hot-item{
  display:flex;align-items:center;gap:9px;padding:8px 8px;border-radius:10px;
  text-decoration:none;color:inherit;transition:background .15s;
}
.sq-hot-item:hover{background:#faf9ff;}
.sq-hot-num{
  width:20px;flex-shrink:0;text-align:center;font-family:Poppins,Inter,sans-serif;
  font-size:.8rem;font-weight:800;color:#c2c4d8;
}
.sq-hot-num.top{color:#fff;background:linear-gradient(135deg,#00b5a4,#7b4dff);border-radius:6px;padding:1px 0;}
.sq-hot-num.top:nth-child(1){background:linear-gradient(135deg,#f2612f,#e0432c);}
.sq-hot-title{flex:1;min-width:0;font-size:.83rem;color:#2a2b45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sq-hot-item:hover .sq-hot-title{color:#6a2fe0;}
.sq-hot-meta{font-size:.7rem;color:#b0b2cd;flex-shrink:0;}
.sq-tag-cloud{display:flex;flex-wrap:wrap;gap:7px;padding:12px 14px 14px;}
.sq-tag{
  display:inline-flex;align-items:center;gap:5px;cursor:pointer;
  padding:6px 12px;border-radius:100px;font-size:.79rem;font-weight:600;
  background:#f8f7fd;border:1px solid #eceaf6;color:#5c5f7e;transition:all .16s;
}
.sq-tag:hover{background:#f3efff;border-color:rgba(123,77,255,.35);color:#6a2fe0;}
.sq-tag em{font-style:normal;font-size:.68rem;color:#a2a4c2;}
@media (max-width:640px){
  .gpk-card{max-height:92vh;}
  .pin-new-picker-txt b{font-size:.88rem;}
}

/* ============================================================
   广场 v10 · 发布 #标签 / 悬浮面板 / 内联图片（紫青主色）
   ============================================================ */
.pub2-outer{position:relative;}

/* 工具栏图标选中 */
.pub2-icon.on{background:rgba(123,77,255,.1);color:#6a2fe0;}

/* 图片：上传后插入到输入框正下 — 左侧与「用户头像」左对齐  row1  18px 内边距） */
.pub2-images-inline{
  padding:2px 18px 6px 18px;
  margin-top:0;
}
.pub2-images-inline .pub-img-item{width:92px;height:92px;}
.pub2-images-inline .pub-img-item img{
  width:100%;height:100%;object-fit:cover;border-radius:10px;
  border:1px solid #eceaf6;
}
.pub2-images-inline .pub-img-del{
  position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;
  border:none;background:rgba(0,0,0,.55);color:#fff;font-size:.7rem;line-height:1;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
}
.pub2-images-inline .pub-img-del:hover{background:#e5484d;}

/* 编辑器内蓝色话题标签 */
.pub2-tag{color:#1772f6;background:rgba(23,114,246,.09);border-radius:5px;padding:0 4px;font-weight:600;}
.pub2-editor a{color:#1772f6;text-decoration:underline;text-underline-offset:2px;}

/* ---------- 悬浮面板（链接：贴在工具栏下方） ---------- */
.pub2-link-panel{
  position:absolute;left:16px;right:16px;z-index:80;
  background:#fff;border:1px solid #eceaf6;border-radius:14px;
  box-shadow:0 22px 48px -20px rgba(60,40,120,.35),0 2px 8px rgba(60,40,120,.06);
  padding:12px 14px 14px;
  animation:pubPanelIn .18s cubic-bezier(.16,1,.3,1);
}
@keyframes pubPanelIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}

.pub2-panel-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-bottom:9px;margin-bottom:10px;border-bottom:1px dashed #f0eefa;
}
.pub2-panel-head > span{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:700;color:#1c1e3a;}
.pub2-panel-head > span i{color:#7b4dff;}
.pub2-panel-head > em{font-style:normal;font-size:.7rem;color:#a3a5c0;}

/* 标签 chips（长矩形内横向自动换行） */
.pub2-tag-list{display:flex;flex-wrap:wrap;gap:8px;max-height:148px;overflow-y:auto;}
.pub2-tag-chip{
  border:1px solid #e2e0ee;background:#faf9ff;color:#4a4d6b;
  font-size:.78rem;font-weight:600;padding:6px 13px;border-radius:100px;
  cursor:pointer;transition:all .16s;
}
.pub2-tag-chip:hover{
  border-color:#7b4dff;background:rgba(123,77,255,.08);color:#6a2fe0;
  transform:translateY(-1px);
}

/* 链接表单 */
.pub2-link-form{display:flex;flex-direction:column;gap:9px;}
.pub2-link-input{
  width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid #e2e0ee;
  border-radius:10px;font-size:.84rem;outline:none;background:#fdfdff;color:#1c1e3a;
  transition:border-color .15s,box-shadow .15s;
}
.pub2-link-input:focus{border-color:#7b4dff;box-shadow:0 0 0 3px rgba(123,77,255,.1);}
.pub2-link-acts{display:flex;gap:8px;justify-content:flex-end;}
.pub2-link-cancel{
  padding:7px 16px;border-radius:100px;border:1px solid #e5e5ee;background:#fff;
  color:#8a8dab;font-size:.8rem;cursor:pointer;
}
.pub2-link-cancel:hover{background:#f7f7fb;}
.pub2-link-ok{
  display:inline-flex;align-items:center;gap:5px;padding:7px 18px;border-radius:100px;border:none;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;font-size:.8rem;font-weight:700;
  cursor:pointer;box-shadow:0 8px 18px -10px rgba(123,77,255,.7);
}
.pub2-link-ok:hover{filter:brightness(1.06);}

@media (max-width:640px){
  .pub2-images-inline{padding:2px 12px 6px 12px;}
  .pub2-link-panel{left:10px;right:10px;}
}

/* ============================================================
   广场 v12 · 话题标签「长矩形」快捷弹 
   ── 贴在标签图标正下方、无遮罩、可快速选择 + 自定义创 
   ============================================================ */
.pub2-tag-pop{
  position:absolute;z-index:90;
  width:520px;max-width:calc(100% - 16px);
  box-sizing:border-box;
  background:#fff;border:1px solid #eceaf6;border-radius:14px;
  box-shadow:0 22px 48px -20px rgba(60,40,120,.36),0 2px 8px rgba(60,40,120,.06);
  padding:11px 14px 10px;
  animation:pubPopIn .16s cubic-bezier(.16,1,.3,1);
}
@keyframes pubPopIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}

.pub2-tag-pop-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-bottom:8px;margin-bottom:10px;border-bottom:1px dashed #f0eefa;
}
.pub2-tag-pop-head > span{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;color:#1c1e3a;}
.pub2-tag-pop-head > span i{color:#f2871a;}
.pub2-tag-pop-head > em{font-style:normal;font-size:.68rem;color:#a3a5c0;}

.pub2-tag-pop .pub2-tag-list{max-height:106px;overflow-y:auto;padding-right:2px;}
.pub2-tag-pop .pub2-tag-list::-webkit-scrollbar{width:5px;}
.pub2-tag-pop .pub2-tag-list::-webkit-scrollbar-thumb{background:rgba(123,77,255,.22);border-radius:100px;}

/* 自定义创建标 */
.pub2-tag-custom{
  display:flex;align-items:center;gap:8px;
  margin-top:11px;padding:6px 8px 6px 12px;
  border:1px dashed #d9d3f2;border-radius:100px;background:#faf9ff;
  transition:border-color .16s,background .16s;
}
.pub2-tag-custom:focus-within{border-style:solid;border-color:#7b4dff;background:#fff;box-shadow:0 0 0 3px rgba(123,77,255,.09);}
.pub2-tag-custom > i{color:#a3a5c0;font-size:.8rem;}
.pub2-tag-custom input{
  flex:1;min-width:0;border:none;outline:none;background:transparent;
  font-size:.82rem;color:#1c1e3a;
}
.pub2-tag-custom input::placeholder{color:#b9bbd0;}
.pub2-tag-add{
  flex-shrink:0;border:none;border-radius:100px;cursor:pointer;
  padding:5px 14px;font-size:.76rem;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);
  box-shadow:0 8px 16px -10px rgba(123,77,255,.7);
  transition:filter .16s,opacity .16s;
}
.pub2-tag-add:hover{filter:brightness(1.07);}
.pub2-tag-add:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;}

.pub2-tag-pop-foot{
  display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:9px;
  border-top:1px dashed #f0eefa;font-size:.68rem;color:#a3a5c0;
}
.pub2-tag-pop-foot i{color:#7b4dff;}

@media (max-width:640px){
  .pub2-tag-pop{width:calc(100% - 24px);left:12px !important;}
}

/* ============================================================
   广场 v13 · 「同步到圈子」弹窗修 
    漂移：@keyframes pubFade 写了 transform，把居中 transform:translate(-50%,-50%) 覆盖 
       弹窗先出现在右下角、动画结束才跳回正中。改用保留居中的专用关键帧 
    文字看不见：末尾深色主题 body{color:var(--txt)!important}  --txt=#e7e9f7（近白）
       白底弹窗上变成白字。这里显式声明深色文字 
   ============================================================ */
@keyframes pubModalCenterIn{
  /* 关键：translate(-50%,-50%) 全程保持不变（否则中心会位移=漂移），只做以中心为原点的缩 */
  from{opacity:0;transform:translate(-50%,-50%) scale(.96);}
  to{opacity:1;transform:translate(-50%,-50%) scale(1);}
}
.pub-group-modal{
  animation:pubModalCenterIn .2s cubic-bezier(.16,1,.3,1);
  color:#1c1e3a;
}
/* 弹窗内文字统一深色（白底可读） */
.pub-group-modal .pub-group-modal-head,
.pub-group-modal .pub-group-modal-head span{color:#1c1e3a !important;}
.pub-group-modal .pub-group-list > div > span{color:#1c1e3a !important;}
.pub-group-modal .pub-group-list > div > span.muted,
.pub-group-modal .pub-group-list > div > span.small{color:#9a9cb8 !important;}
.pub-group-modal .pub-group-search input{color:#1c1e3a !important;}
.pub-group-modal .pub-group-search input::placeholder{color:#b9bbd0 !important;}
.pub-group-modal .pub-group-search i{color:#9a9cb8 !important;}
/*  hover 反馈（原样式依赖 .pub-group-item，但列表项用的是内联 div，补上更清晰 */
.pub-group-modal .pub-group-list > div:hover{background:#f7f6fd;}

/* ============================================================
   广场 v14 · 表情「多行多列」长矩形弹框（按钮下 absolute 弹出，无遮罩 
   ============================================================ */
.pub2-emoji-pop{
  position:absolute;z-index:92;
  width:520px;max-width:calc(100% - 16px);
  box-sizing:border-box;
  background:#fff;border:1px solid #eceaf6;border-radius:14px;
  box-shadow:0 22px 48px -20px rgba(60,40,120,.36),0 2px 8px rgba(60,40,120,.06);
  padding:11px 14px 10px;
  animation:pubPopIn .16s cubic-bezier(.16,1,.3,1);
}
.pub2-emoji-pop-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-bottom:8px;margin-bottom:9px;border-bottom:1px dashed #f0eefa;
}
.pub2-emoji-pop-head > span{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;color:#1c1e3a;}
.pub2-emoji-pop-head > span i{color:#f2871a;font-size:.9rem;}
.pub2-emoji-pop-head > em{font-style:normal;font-size:.68rem;color:#a3a5c0;}

/* 多行多列网格 0  × 4 行（40 个），超出可 */
.pub2-emoji-grid{
  display:grid;grid-template-columns:repeat(10,1fr);gap:2px;
  max-height:168px;overflow-y:auto;padding-right:2px;
}
.pub2-emoji-grid::-webkit-scrollbar{width:5px;}
.pub2-emoji-grid::-webkit-scrollbar-thumb{background:rgba(123,77,255,.22);border-radius:100px;}
.pub2-emoji-btn{
  width:100%;aspect-ratio:1/1;min-height:40px;
  border:none;background:transparent;border-radius:9px;cursor:pointer;
  font-size:1.16rem;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:background .12s,transform .12s;
}
.pub2-emoji-btn:hover{background:rgba(123,77,255,.1);transform:scale(1.14);}
.pub2-emoji-btn:active{transform:scale(.96);}

@media (max-width:640px){
  .pub2-emoji-pop{width:calc(100% - 24px);left:12px !important;}
  .pub2-emoji-grid{grid-template-columns:repeat(8,1fr);}
}

/* ============================================================
   广场 v15 · 发布框额度提示（可上传图片张 / 剩余字数 
   ============================================================ */
.pub2-meta{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  padding:0 18px 9px; /* 与头像左对齐 */
  font-size:.72rem;color:#8b8eae;
}
.pub2-meta-item{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 11px;border-radius:100px;
  background:#f7f6fd;border:1px solid #eceaf6;
  transition:all .18s;
}
.pub2-meta-item b{font-weight:800;font-size:.78rem;color:#3a3d5c;font-family:Poppins,Inter,sans-serif;}
.pub2-meta-item.img i{color:#1772f6;font-size:.78rem;}
.pub2-meta-item.char i{color:#7b4dff;font-size:.78rem;}
/* 剩余字数偏少  琥珀色提醒；用完  红色 */
.pub2-meta-item.char.warn{background:#fff8e8;border-color:#f3e0b5;color:#a5771a;}
.pub2-meta-item.char.warn b{color:#c8860d;}
.pub2-meta-item.char.full{background:#fdeceb;border-color:#f6cfcb;color:#c0392b;}
.pub2-meta-item.char.full b{color:#d92d20;}
.pub2-meta-item.img.full{background:#fdeceb;border-color:#f6cfcb;color:#c0392b;}
.pub2-meta-item.img.full b{color:#d92d20;}
.pub2-meta-hint{
  display:inline-flex;align-items:center;gap:4px;margin-left:auto;
  font-size:.68rem;color:#b0b2cd;
}
.pub2-meta-hint i{font-size:.7rem;color:#c3c5da;}
@media (max-width:640px){
  .pub2-meta{padding:0 12px 8px;}
  .pub2-meta-hint{display:none;}
}

/* ============================================================
   广场 v16 · 额度提示移至右下 + 无限加载哨兵
   ============================================================ */
.pub2-meta{
  justify-content:flex-end;   /* 只在右下角展 */
  padding:0 18px 8px;
}
/* 无限加载哨兵 */
.wb-more{
  display:flex;align-items:center;justify-content:center;
  padding:18px 0 22px;font-size:.78rem;color:#b0b2cd;
}
.wb-more-loading{display:inline-flex;align-items:center;gap:6px;color:#7b4dff;}
.wb-more-loading i{animation:wbSpin 1s linear infinite;font-size:.9rem;}
@keyframes wbSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.wb-more-tip{color:#c3c5da;}
.wb-more-end{
  display:inline-flex;align-items:center;gap:8px;color:#b9bbd0;letter-spacing:.02em;
}

/* ============================================================
   广场 v17 · 标签体系（卡片标 chips + /tag/:id 标签详情页）
   ============================================================ */
/* 列表卡片内的标签 chips */
.topic-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px;}
.topic-chip{
  display:inline-flex;align-items:center;
  padding:3px 11px;border-radius:100px;
  font-size:.74rem;font-weight:600;
  color:#1772f6;background:rgba(23,114,246,.08);
  border:1px solid rgba(23,114,246,.16);
  text-decoration:none;transition:all .16s;
}
.topic-chip:hover{background:rgba(23,114,246,.16);border-color:rgba(23,114,246,.34);color:#0f5ec9;transform:translateY(-1px);}

/* 详情页标 chips 变为链接后保持原视觉 */
a.pd-tag-link,a.tj-tag{text-decoration:none;cursor:pointer;transition:all .16s;}
a.pd-tag-link:hover{filter:brightness(.92);transform:translateY(-1px);}
a.tj-tag:hover{filter:brightness(.92);transform:translateY(-1px);}

/* ---------- /tag/:id 标签详情 ---------- */
.topic-page{max-width:1000px;margin:0 auto;padding:18px 16px 40px;}
.topic-back{
  display:inline-flex;align-items:center;gap:6px;
  border:none;background:transparent;color:#8b8eae;
  font-size:.82rem;cursor:pointer;padding:4px 0;margin-bottom:10px;transition:color .16s;
}
.topic-back:hover{color:#6a2fe0;}

.topic-hero{
  display:flex;align-items:center;gap:22px;flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(123,77,255,.07),rgba(0,181,164,.06));
  border:1px solid #eceaf6;border-radius:18px;
  padding:20px 24px;margin-bottom:14px;
}
.topic-hero-main{flex:1;min-width:280px;}
.topic-hero-badge{
  display:inline-flex;align-items:center;gap:4px;
  padding:4px 12px;border-radius:100px;margin-bottom:9px;
  background:rgba(123,77,255,.1);border:1px solid rgba(123,77,255,.2);
  color:#6a2fe0;font-size:.72rem;font-weight:700;
}
.topic-hero-title{margin:0 0 5px;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:800;color:#171a33;line-height:1.2;word-break:break-all;}
.topic-hero-sub{margin:0 0 12px;font-size:.86rem;color:#8b8eae;line-height:1.7;}
.topic-hero-stats{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.topic-hero-stats span{
  padding:5px 14px;border-radius:11px;background:#fff;
  border:1px solid #eceaf6;color:#8c8fb0;font-size:.8rem;
  box-shadow:0 4px 12px -8px rgba(60,40,120,.14);
}
.topic-hero-stats b{color:#171a33;font-size:1.02rem;font-weight:800;font-family:Poppins,Inter,sans-serif;}
.topic-hero-stats span em{font-style:normal;font-size:.68rem;color:#b9bbd0;margin-left:2px;}
.topic-hero-stats i{width:1px;height:14px;background:#eceaf6;}
.topic-hero-act{display:flex;gap:8px;}
.topic-hero-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 18px;border-radius:100px;border:none;cursor:pointer;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;
  font-size:.82rem;font-weight:700;text-decoration:none;
  box-shadow:0 10px 22px -12px rgba(123,77,255,.7);transition:filter .16s,transform .16s;
}
.topic-hero-btn:hover{filter:brightness(1.07);transform:translateY(-1px);color:#fff;}
.topic-hero-btn.ghost{
  background:#fff;color:#6a2fe0;border:1px solid #e2ddf6;box-shadow:none;
}
.topic-hero-btn.ghost:hover{background:#f7f5ff;border-color:#c9bfff;}

/* 相关标签 */
.topic-related{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:11px 16px;margin-bottom:12px;
  background:#fff;border:1px solid #eceaf6;border-radius:14px;
}
.topic-related-title{
  display:inline-flex;align-items:center;gap:5px;
  font-size:.78rem;font-weight:700;color:#8a8dab;white-space:nowrap;
}
.topic-related-title i{color:#7b4dff;}
.topic-related .topic-chips{margin:0;}
@media (max-width:640px){
  .topic-hero{padding:16px;}
  .topic-hero-act{width:100%;}
}

/* ============================================================
   广场 v19 · 排序 Tab 图标同色 + 卡片图片贴吧式交互（展开/旋转/大图预览 
   ============================================================ */
/* 排序 Tab：bi 图标颜色与文字始终保持一 */
.wb-sort{display:inline-flex;align-items:center;gap:4px;}
.wb-sort i{font-size:.85rem;color:inherit;line-height:1;}

/* ---------- 缩略态：单图大图 / 多图九宫 ---------- */
.wb-imgs{margin:2px 0 4px;}
.wb-img-thumb{
  border:none;padding:0;background:none;cursor:pointer;
  display:block;border-radius:10px;overflow:hidden;position:relative;
  transition:transform .16s,box-shadow .16s;
}
.wb-img-thumb:hover{transform:translateY(-1px);box-shadow:0 8px 20px -12px rgba(50,35,110,.4);}
.wb-img-thumb img{display:block;}
.wb-imgs-1 .wb-img-thumb{width:100%;max-width:460px;} /* button 宽度默认 fit-content，需显式 100% */
.wb-imgs-1 .wb-img-thumb img{width:100%;max-height:300px;object-fit:cover;}
.wb-imgs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-width:560px;}
.wb-imgs-grid .wb-img-thumb{aspect-ratio:1/1;}
.wb-imgs-grid .wb-img-thumb img{width:100%;height:100%;object-fit:cover;}

/* ---------- 展开态（贴吧同款工具栏：收起/查看原图/向左旋转/向右旋转 ---------- */
.wb-img-exp{
  background:#f7f6fd;border:1px solid #eceaf6;border-radius:12px;
  padding:9px 12px 12px;margin:2px 0 4px;
}
.wb-img-exp-bar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:9px;}
.wb-img-exp-bar button{
  border:none;background:transparent;color:#4a4d68;
  font-size:.78rem;font-weight:600;padding:5px 10px;border-radius:8px;cursor:pointer;
  display:inline-flex;align-items:center;transition:all .15s;
}
.wb-img-exp-bar button:hover{background:#fff;color:#6a2fe0;box-shadow:0 2px 8px rgba(60,40,120,.1);}
.wb-img-exp-bar button i{font-size:.85rem;}
.wb-img-exp-stage{
  display:flex;align-items:center;justify-content:center;
  cursor:zoom-in;min-height:120px;
}
.wb-img-exp-stage img{
  max-width:100%;max-height:520px;border-radius:8px;
  transition:transform .25s ease;
  box-shadow:0 6px 22px -12px rgba(40,30,90,.32);
}
.wb-img-exp-thumbs{
  display:flex;gap:6px;flex-wrap:wrap;
  margin-top:10px;padding-top:10px;border-top:1px dashed #e6e2f4;
}
.wb-img-exp-thumbs button{
  width:46px;height:46px;padding:0;
  border:2px solid transparent;border-radius:8px;overflow:hidden;
  cursor:pointer;background:none;opacity:.6;transition:all .15s;
}
.wb-img-exp-thumbs button:hover{opacity:1;}
.wb-img-exp-thumbs button.on{border-color:#7b4dff;opacity:1;}
.wb-img-exp-thumbs button img{width:100%;height:100%;object-fit:cover;display:block;}

/* ---------- 全屏大图预览（点击任意处关闭 ---------- */
.wb-lightbox{
  position:fixed;inset:0;z-index:9999;
  background:rgba(12,10,26,.88);
  display:flex;align-items:center;justify-content:center;
  cursor:zoom-out;padding:24px;
  animation:wbLbIn .18s ease;
}
@keyframes wbLbIn{from{opacity:0}to{opacity:1}}
.wb-lightbox img{
  max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);
  border-radius:6px;box-shadow:0 24px 80px rgba(0,0,0,.6);
  transition:transform .25s ease;
}
@media (max-width:640px){
  .wb-imgs-grid{gap:4px;}
  .wb-lightbox{padding:12px;}
  .wb-lightbox img{max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);}
}

/* ============================================================
   顶部导航：图标颜色始终与文字保持一致（v20 
   ── 历史多层主题冲突 tj-nav-item.active 文字被后层改成青 #0b8f83 
      图标却仍是上一层的紫色 #8a3bff；默认态图标还有独立色 + opacity .92 
      统一 color:inherit，让图标自动跟随所在链接的文字色（默认/hover/选中全态一致） 
   ============================================================ */
.tj-nav-item i:not(.tj-nav-arrow),
.tj-nav-hover-item i:not(.tj-nav-arrow){
  color:inherit !important;
  opacity:1 !important;
}
/* 下拉项选中态同样跟随（若存在） */
.tj-nav-hover-item.active i:not(.tj-nav-arrow){color:inherit !important;}

/* ============================================================
   顶部导航箭头：与文字同色 + 展开时朝上（v21 
   ============================================================ */
/* 注意特异性：历史层有 .tj-nav-item i / .tj-nav-item.active i ,2,1）带 !important 
   这里必须 i.tj-nav-arrow 提升特异性才能覆 */
.tj-nav-item i.tj-nav-arrow,
.tj-nav-item:hover i.tj-nav-arrow,
.tj-nav-item.active i.tj-nav-arrow,
.tj-nav-hover-item i.tj-nav-arrow,
.tj-nav-publish-btn i.tj-nav-arrow{
  color:inherit !important;
  opacity:1 !important;
  transition:transform .2s cubic-bezier(.16,1,.3,1), color .2s;
}
/* 下拉菜单出现  箭头旋转 180°（chevron-down  up）；移开自动回正 */
.tj-nav-hover:hover .tj-nav-arrow,
.tj-nav-publish.open .tj-nav-arrow{transform:rotate(180deg);}
@media (prefers-reduced-motion:reduce){
  .tj-nav-arrow{transition:none;}
}

/* ============================================================
   广场 v23 · 发布框：聚焦展开「标题行  去掉聚焦橙色描边
   ============================================================ */
/* 标题行（第一行，选填）：字号/字重高于正文，形成两行结 */
.pub2-title{
  width:100%;box-sizing:border-box;
  border:none;background:transparent;
  font-size:1.02rem;font-weight:700;color:#1c1e3a;
  padding:2px 2px 6px;margin-bottom:2px;
  font-family:inherit;line-height:1.5;
}
.pub2-title::placeholder{color:#b8b8b8;font-weight:600;}
/* 去掉聚焦后的描边：既要清全局 :focus-visible 的橙 outline 
   也要清主题层 input:focus 加的紫色光环 box-shadow(0 0 0 4px rgba(123,77,255,.14)) */
.pub2-title:focus,
.pub2-title:focus-visible{
  outline:none !important;
  box-shadow:none !important;
  border-color:transparent !important;
  background:transparent !important;
}
.pub2-editor:focus,
.pub2-editor:focus-visible{outline-color:transparent !important;}

/* ============================================================
   广场 v29 · 卡片底部动作条（ 收藏 + 时间 +  + 参与讨论 
   + 帖子详情「讨论模式」（楼层 / 讨论区标题）
   ============================================================ */
.wb-acts{display:flex;align-items:center;gap:10px;margin-top:10px;}
.wb-acts-left{display:flex;gap:8px;}
.wb-act-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 14px;border:none;border-radius:8px;
  background:#f5f5f7;color:#555;font-size:.78rem;font-weight:700;
  cursor:pointer;transition:all .15s;white-space:nowrap;
}
.wb-act-btn:hover{background:#eceef2;color:#1a1a1a;transform:translateY(-1px);}
.wb-act-btn.on{color:#1772f6;background:rgba(23,114,246,.08);}
.wb-act-btn.on:hover{background:rgba(23,114,246,.14);}
.wb-act-btn b{font-weight:800;}
.wb-acts-mid{display:flex;align-items:center;gap:4px;min-width:0;}
.wb-acts-time{color:#999;font-size:.78rem;white-space:nowrap;}
.wb-acts-more{position:relative;}
.wb-acts-more > button{
  border:none;background:none;color:#999;font-size:1rem;cursor:pointer;
  padding:2px 8px;border-radius:6px;line-height:1;transition:all .15s;
}
.wb-acts-more > button:hover{background:#f0f0f2;color:#333;}
.wb-acts-pop{
  position:absolute;top:calc(100% + 6px);left:0;z-index:60;
  background:#fff;border:1px solid #eceaf6;box-shadow:0 12px 30px rgba(30,20,70,.14);
  border-radius:10px;padding:6px;min-width:132px;
  animation:pubPopIn .16s cubic-bezier(.16,1,.3,1);
}
.wb-acts-pop button{
  display:flex;align-items:center;gap:8px;width:100%;
  border:none;background:none;padding:8px 10px;
  font-size:.8rem;color:#444;cursor:pointer;border-radius:6px;text-align:left;
}
.wb-acts-pop button:hover{background:#f6f5fb;color:#6a2fe0;}
.wb-acts-discuss{
  margin-left:auto;display:inline-flex;align-items:center;gap:4px;
  border:none;background:none;color:#1772f6;
  font-size:.84rem;font-weight:700;cursor:pointer;
  padding:6px 10px;border-radius:8px;transition:all .15s;white-space:nowrap;
}
.wb-acts-discuss:hover{background:rgba(23,114,246,.07);}
.wb-acts-discuss i{font-size:.72rem;transition:transform .15s;}
.wb-acts-discuss:hover i{transform:translateX(2px);}
@media (max-width:640px){
  .wb-acts{gap:6px;flex-wrap:wrap;}
  .wb-act-btn{padding:5px 10px;font-size:.74rem;}
  .wb-acts-time{display:none;}
}

/* 帖子详情 · 讨论模式楼层 */
.pd-cmt-floor{
  font-style:normal;font-weight:700;color:#9a9cb8;
  background:#f4f3fa;border-radius:6px;padding:1px 7px;margin-right:6px;
  font-size:.7rem;
}
.pd-cmt-title i{color:#1772f6;margin-right:5px;}

/* ============================================================
   广场 v32 · 列表卡片信息层级优化
    图片统一小图（单图也小） 正文截断 + 阅读更多 + 点击正文跳详 
     移到卡片右上角（有圈子条时在「加入」右侧） 时间移到「收藏」右侧（短格式）
   ============================================================ */
/*  缩略图统一小图 */
.wb-imgs{max-width:420px;}
.wb-imgs-1 .wb-img-thumb{width:200px;max-width:200px;}
.wb-imgs-1 .wb-img-thumb img{width:100%;height:150px;object-fit:cover;}
.wb-imgs-grid{max-width:420px;}

/*  正文：截 + 阅读更多（蓝 */
.wb-text{
  margin:0 0 8px;font-size:.9rem;line-height:1.7;color:#3d4059;
  white-space:pre-wrap;word-break:break-word;cursor:pointer;transition:color .15s;
}
.wb-text:hover{color:#1b1d33;}
.wb-text-ellipsis{color:#9a9cb8;}
.wb-readmore{
  border:none;background:none;padding:0 0 0 6px;margin:0;
  color:#1772f6;font-size:.86rem;font-weight:700;cursor:pointer;
  transition:color .15s;vertical-align:baseline;
}
.wb-readmore:hover{color:#0f5ec9;text-decoration:underline;}
.wb-readmore.collapse{color:#9a9cb8;font-weight:600;}
.wb-readmore.collapse:hover{color:#6a2fe0;}

/*   更多：卡片右上角（wb-item 定位基准 */
.wb-more-wrap{position:absolute;top:12px;right:12px;z-index:20;}
.wb-item{position:relative;}
.wb-more-btn{
  width:30px;height:30px;border:none;border-radius:8px;
  background:transparent;color:#b0b2cd;font-size:1.1rem;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .15s;
}
.wb-more-btn:hover{background:#f3f2f9;color:#6a2fe0;}
.wb-more-pop{
  position:absolute;top:calc(100% + 6px);right:0;z-index:60;
  background:#fff;border:1px solid #eceaf6;box-shadow:0 12px 30px rgba(30,20,70,.14);
  border-radius:10px;padding:6px;min-width:132px;
  animation:pubPopIn .16s cubic-bezier(.16,1,.3,1);
}
.wb-more-pop button{
  display:flex;align-items:center;gap:8px;width:100%;
  border:none;background:none;padding:8px 10px;
  font-size:.8rem;color:#444;cursor:pointer;border-radius:6px;text-align:left;
}
.wb-more-pop button:hover{background:#f6f5fb;color:#6a2fe0;}
/* 圈子条内 ⋯（挂在「加入」右侧，不绝对定位） */
.wb-group-bar .wb-more-wrap{position:relative;top:0;right:0;flex-shrink:0;}

/*  时间放在「收藏」右 */
.wb-acts-left{display:flex;align-items:center;gap:8px;}
.wb-acts-time{
  font-size:.76rem;color:#a3a5c0;white-space:nowrap;
  margin-left:2px;
}
@media (max-width:640px){
  .wb-imgs-1 .wb-img-thumb{width:150px;max-width:150px;}
  .wb-imgs-1 .wb-img-thumb img{height:112px;}
}

/* ============================================================
   广场 v33 · 卡片：点赞人展示 + 卡内讨论区（参考图片样式）
   ============================================================ */
/* 文字正文不再是链接光 */
.wb-text{cursor:default;}

/*  / 讨论 / 收藏 + 时间 一 */
.wb-acts-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.wb-act-btn.on{color:#1772f6;background:rgba(23,114,246,.08);}

/* 点赞人：昵称顿号串联 + 「等 N 人觉得很赞 */
.wb-likers{
  display:flex;align-items:flex-start;gap:6px;
  margin-top:8px;padding:7px 0 2px;
  font-size:.76rem;color:#8b8eae;line-height:1.6;
}
.wb-likers i{color:#1772f6;font-size:.78rem;margin-top:2px;}
.wb-likers span{word-break:break-all;}

/* 卡内讨论 */
.wb-discuss{margin-top:10px;}
.wb-discuss-editor{
  background:#f7f7f9;border:1px solid #eceaf6;border-radius:12px;
  padding:12px 12px 10px;
}
.wb-discuss-input{
  width:100%;box-sizing:border-box;border:none;outline:none;background:transparent;
  font-size:.88rem;line-height:1.7;color:#1c1e3a;resize:vertical;min-height:44px;
  font-family:inherit;
}
.wb-discuss-input::placeholder{color:#b9bbd0;}
.wb-discuss-bar{display:flex;align-items:center;gap:8px;margin-top:8px;}
.wb-discuss-icons{display:flex;align-items:center;gap:4px;}
.wb-discuss-icons button{
  width:30px;height:30px;border:none;border-radius:8px;background:transparent;
  color:#a3a5c0;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:all .15s;
}
.wb-discuss-icons button:hover{background:#eee9fb;color:#6a2fe0;}
.wb-discuss-send{
  margin-left:auto;border:none;border-radius:8px;cursor:pointer;
  padding:8px 22px;font-size:.86rem;font-weight:700;color:#fff;
  background:#1772f6;transition:all .15s;
}
.wb-discuss-send:hover:not(:disabled){background:#0f5ec9;transform:translateY(-1px);}
.wb-discuss-send:disabled{opacity:.5;cursor:not-allowed;transform:none;}

.wb-discuss-empty{
  margin-top:10px;padding:16px 12px;text-align:center;
  font-size:.8rem;color:#b0b2cd;
  background:#fff;border:1px solid #f0eef8;border-radius:10px;
}
.wb-discuss-list{list-style:none;margin:10px 0 0;padding:0;}
.wb-discuss-item{
  padding:9px 2px;border-bottom:1px solid #f5f3fb;
  display:flex;align-items:flex-start;gap:10px;
}
.wb-discuss-item:last-child{border-bottom:none;}
.wb-discuss-main{flex:1;min-width:0;font-size:.84rem;line-height:1.7;color:#3d4059;word-break:break-word;}
.wb-discuss-name{font-weight:700;color:#5a5d7d;}
.wb-discuss-sep{color:#b0b2cd;}
.wb-discuss-meta{
  display:flex;align-items:center;gap:8px;flex-shrink:0;
  font-size:.72rem;color:#b9bbd0;padding-top:2px;
}
.wb-discuss-meta i{font-size:.82rem;cursor:pointer;}
.wb-discuss-meta i:hover{color:#1772f6;}
.wb-discuss-meta b{color:#8b8eae;font-weight:700;}
@media (max-width:640px){
  .wb-discuss-send{padding:8px 16px;}
  .wb-discuss-meta span{display:none;}
}

/* ============================================================
   广场 v34 · 卡片正文富文 + 评论直接展示（楼中楼可点 回复 
   ============================================================ */
/* ---------- 正文富文本（按原格式渲染 ---------- */
.wb-text-wrap{display:block;}
.wb-rich{font-size:.9rem;line-height:1.75;color:#3d4059;word-break:break-word;}
.wb-rich p{margin:0 0 8px;}
.wb-rich p:last-child{margin-bottom:0;}
.wb-rich b,.wb-rich strong{font-weight:700;color:#1c1e3a;}
.wb-rich i,.wb-rich em{font-style:italic;}
.wb-rich u{text-decoration:underline;}
.wb-rich s,.wb-rich del{text-decoration:line-through;color:#9a9cb8;}
.wb-rich ul,.wb-rich ol{margin:6px 0 8px;padding-left:22px;}
.wb-rich li{margin:2px 0;}
.wb-rich blockquote{
  margin:8px 0;padding:6px 12px;border-left:3px solid #d9d3f2;
  background:#faf9ff;color:#5a5d7d;border-radius:0 8px 8px 0;
}
.wb-rich h1,.wb-rich h2,.wb-rich h3,.wb-rich h4,.wb-rich h5,.wb-rich h6{
  font-size:1rem;font-weight:700;color:#1c1e3a;margin:10px 0 6px;line-height:1.4;
}
.wb-rich a{color:#1772f6;text-decoration:none;}
.wb-rich a:hover{text-decoration:underline;}
.wb-rich img{max-width:100%;border-radius:8px;margin:6px 0;display:block;}
.wb-rich .pub2-tag{color:#1772f6;font-weight:600;background:none;padding:0;}
.wb-rich pre,.wb-rich code{
  background:#f6f5fb;border-radius:6px;padding:2px 6px;font-size:.84rem;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}
.wb-rich pre{padding:10px 12px;overflow-x:auto;}
.wb-rich pre code{background:none;padding:0;}
.wb-rich hr{border:none;border-top:1px solid #eceaf6;margin:10px 0;}
.wb-rich table{border-collapse:collapse;margin:8px 0;max-width:100%;}
.wb-rich td,.wb-rich th{border:1px solid #eceaf6;padding:4px 8px;font-size:.84rem;}

/* ---------- 评论区（卡片内直接展示） ----------
   2026-10-10 改版：原来评论直接裸贴在「点赞人」下面、和正文同底色，
   读起来像一条「断层」。现在整块做成浅色面板（圆角 + 描边 + 内边距），
   评论、翻页、输入框都在同一张面板里，视觉上自成一段。 */
.wb-cmts{margin-top:12px;padding:6px 14px 12px;border-radius:14px;
  background:linear-gradient(180deg,#fbfaff,#f8f7fe);
  border:1px solid #efecfa;}
.wb-cmts:empty{display:none;padding:0;border:none;background:none;}
.wb-cmt-list{list-style:none;margin:0;padding:0;}
.wb-cmt{display:flex;gap:9px;padding:9px 0;border-top:1px dashed #efeafb;}
.wb-cmt:first-child{border-top:none;padding-top:6px;}
.wb-cmt-avatar{
  width:30px;height:30px;border-radius:50%;overflow:hidden;flex-shrink:0;
  background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:.82rem;
}
.wb-cmt-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.wb-cmt-body{flex:1;min-width:0;}
.wb-cmt-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.wb-cmt-name{font-size:.8rem;font-weight:700;color:#5a5d7d;}
.wb-cmt-at{font-size:.72rem;color:#8b8eae;}
.wb-cmt-text{
  margin-top:3px;font-size:.86rem;line-height:1.7;color:#3d4059;
  word-break:break-word;white-space:pre-wrap;
}
.wb-cmt-meta{display:flex;align-items:center;gap:14px;margin-top:4px;font-size:.72rem;color:#b0b2cd;}
.wb-cmt-time{color:#b9bbd0;}
.wb-cmt-like{
  border:none;background:none;padding:0;color:#b0b2cd;cursor:pointer;
  display:inline-flex;align-items:center;gap:3px;font-size:.74rem;
  transition:color .15s;font-family:inherit;
}
.wb-cmt-like:hover{color:#1772f6;}
.wb-cmt-like.on{color:#1772f6;font-weight:700;}
.wb-cmt-like b{font-weight:800;}
.wb-cmt-reply{
  border:none;background:none;padding:0;color:#b0b2cd;cursor:pointer;
  font-size:.74rem;transition:color .15s;font-family:inherit;
}
.wb-cmt-reply:hover{color:#6a2fe0;}
.wb-cmt-replybox{display:flex;gap:6px;margin-top:7px;}
.wb-cmt-replyinput{
  flex:1;min-width:0;border:1px solid #e6e3f4;border-radius:100px;
  padding:5px 12px;font-size:.78rem;color:#1c1e3a;outline:none;
  background:#faf9ff;transition:all .16s;font-family:inherit;
}
.wb-cmt-replyinput:focus{border-color:#7b4dff;background:#fff;box-shadow:0 0 0 3px rgba(123,77,255,.09);}
.wb-cmt-replysend{
  border:none;border-radius:100px;padding:5px 14px;font-size:.76rem;font-weight:700;
  color:#fff;background:#1772f6;cursor:pointer;flex-shrink:0;transition:all .15s;
}
.wb-cmt-replysend:hover:not(:disabled){background:#0f5ec9;}
.wb-cmt-replysend:disabled{opacity:.45;cursor:not-allowed;}
/* 楼中楼缩 */
.wb-cmt-children{
  list-style:none;margin:4px 0 0;padding:6px 0 0 10px;
  border-left:2px solid #e9e4f8;
}
.wb-cmt-child{border-top:1px dashed #f0ecfa;}
.wb-cmt-child:first-child{border-top:none;padding-top:2px;}
.wb-cmt-child .wb-cmt-avatar{width:24px;height:24px;font-size:.7rem;}
.wb-cmt-more{
  display:inline-flex;align-items:center;gap:4px;margin-top:10px;
  border:none;background:none;padding:2px 0;color:#1772f6;
  font-size:.78rem;font-weight:700;cursor:pointer;font-family:inherit;
}
.wb-cmt-more:hover{text-decoration:underline;}
.wb-cmt-more.collapse{color:#9a9cb8;font-weight:600;}
.wb-cmt-more i{font-size:.7rem;}
/* 评论输入框（常驻） */
.wb-cmt-editor{
  display:flex;align-items:center;gap:8px;margin-top:10px;
  padding:5px 5px 5px 14px;border:1px solid #eceaf6;border-radius:100px;
  background:#fff;transition:border-color .16s,background .16s;
}
.wb-cmt-editor:focus-within{border-color:#7b4dff;background:#fff;box-shadow:0 0 0 3px rgba(123,77,255,.07);}
.wb-cmt-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:.84rem;color:#1c1e3a;font-family:inherit;}
.wb-cmt-input::placeholder{color:#b9bbd0;}
.wb-cmt-send{
  border:none;border-radius:100px;padding:6px 18px;font-size:.8rem;font-weight:700;
  color:#fff;background:#1772f6;cursor:pointer;flex-shrink:0;transition:all .15s;
}
.wb-cmt-send:hover:not(:disabled){background:#0f5ec9;transform:translateY(-1px);}
.wb-cmt-send:disabled{opacity:.45;cursor:not-allowed;transform:none;}
@media (max-width:640px){
  .wb-cmt-meta{gap:10px;}
  .wb-cmt-send{padding:6px 14px;}
}

/* ============================================================
   广场 v35 · 评论框（默认隐藏 / 表情 + 图片  评论图片 + 分页
   ============================================================ */
/* 评论输入框：改为多行容器（图片区 + 输入 + 工具行） */
.wb-cmt-editor{
  display:block;                 /* 覆盖 v34  flex 胶囊布局 */
  margin-top:10px;padding:10px 12px;
  border:1px solid #eceaf6;border-radius:14px;background:#fafaf8;
  transition:border-color .16s,background .16s;
}
.wb-cmt-editor:focus-within{border-color:#7b4dff;background:#fff;box-shadow:0 0 0 3px rgba(123,77,255,.07);}
.wb-cmt-editor-imgs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.wb-cmt-editor-img{position:relative;width:56px;height:56px;border-radius:8px;overflow:hidden;border:1px solid #eceaf6;}
.wb-cmt-editor-img img{width:100%;height:100%;object-fit:cover;display:block;}
.wb-cmt-editor-img button{
  position:absolute;top:1px;right:1px;width:16px;height:16px;padding:0;
  border:none;border-radius:50%;background:rgba(20,16,40,.62);color:#fff;
  font-size:.56rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.wb-cmt-editor-img button:hover{background:#d92d20;}
.wb-cmt-editor-row{display:flex;align-items:center;gap:8px;}
.wb-cmt-input{
  flex:1;min-width:0;border:none;outline:none;background:transparent;
  font-size:.86rem;color:#1c1e3a;font-family:inherit;padding:2px 0;
}
.wb-cmt-input::placeholder{color:#b9bbd0;}
.wb-cmt-editor-bar{
  display:flex;align-items:center;gap:6px;margin-top:8px;padding-top:8px;
  border-top:1px dashed #f0eefa;
}
.wb-cmt-tool{
  width:30px;height:30px;border:none;border-radius:8px;background:transparent;
  color:#a3a5c0;font-size:1rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:all .15s;
}
.wb-cmt-tool:hover{background:#eee9fb;color:#6a2fe0;}
.wb-cmt-tool.on{background:#eee9fb;color:#6a2fe0;}
.wb-cmt-editor-hint{margin-left:auto;font-size:.7rem;color:#b9bbd0;}
.wb-cmt-close{
  border:none;background:none;color:#9a9cb8;font-size:.75rem;
  cursor:pointer;font-family:inherit;transition:color .15s;
}
.wb-cmt-close:hover{color:#6a2fe0;}
.wb-cmt-emoji-pop{
  display:grid;grid-template-columns:repeat(10,1fr);gap:2px;
  margin-top:8px;padding:8px;max-height:132px;overflow-y:auto;
  background:#fff;border:1px solid #eceaf6;border-radius:10px;
}
.wb-cmt-emoji-pop::-webkit-scrollbar{width:5px;}
.wb-cmt-emoji-pop::-webkit-scrollbar-thumb{background:rgba(123,77,255,.22);border-radius:100px;}
.wb-cmt-emoji-pop button{
  border:none;background:none;font-size:1.05rem;cursor:pointer;
  border-radius:8px;padding:4px 0;line-height:1.2;
  transition:background .12s,transform .12s;
}
.wb-cmt-emoji-pop button:hover{background:rgba(123,77,255,.1);transform:scale(1.12);}

/* 评论图片（展示） */
.wb-cmt-imgs{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.wb-cmt-imgs button{
  border:1px solid #f0eef8;padding:0;background:none;cursor:zoom-in;
  width:76px;height:76px;border-radius:8px;overflow:hidden;
  transition:transform .15s,box-shadow .15s;
}
.wb-cmt-imgs button:hover{transform:translateY(-1px);box-shadow:0 6px 16px -10px rgba(50,35,110,.4);}
.wb-cmt-imgs.one button{width:132px;height:104px;}
.wb-cmt-imgs img{width:100%;height:100%;object-fit:cover;display:block;}
.wb-cmt-preview{
  position:fixed;inset:0;z-index:9999;background:rgba(12,10,26,.88);
  display:flex;align-items:center;justify-content:center;
  cursor:zoom-out;padding:24px;animation:wbLbIn .18s ease;
}
.wb-cmt-preview img{
  max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);
  border-radius:6px;box-shadow:0 24px 80px rgba(0,0,0,.6);
}
@media (max-width:640px){
  .wb-cmt-emoji-pop{grid-template-columns:repeat(8,1fr);}
  .wb-cmt-editor-hint{display:none;}
}

/* ============================================================
   广场 v36 · 评论页码分页 + 子评论回复工具（表情/图片 
   ============================================================ */
.wb-cmt-pager{
  display:flex;align-items:center;gap:5px;flex-wrap:wrap;
  margin-top:10px;padding-top:10px;border-top:1px solid #f6f4fc;
}
.wb-pager-btn{
  min-width:30px;height:30px;padding:0 8px;
  border:1px solid #eceaf6;border-radius:8px;background:#fff;
  color:#5a5d7d;font-size:.78rem;font-weight:700;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  font-family:inherit;transition:all .15s;
}
.wb-pager-btn:hover:not(:disabled){border-color:#c9bfff;background:#f7f5ff;color:#6a2fe0;}
.wb-pager-btn.on{
  background:linear-gradient(135deg,#00b5a4,#7b4dff);border-color:transparent;
  color:#fff;box-shadow:0 8px 16px -10px rgba(123,77,255,.7);
}
.wb-pager-btn:disabled{opacity:.5;cursor:not-allowed;}
.wb-pager-nav{
  width:30px;height:30px;padding:0;
  border:1px solid #eceaf6;border-radius:8px;background:#fff;
  color:#8b8eae;font-size:.78rem;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:all .15s;
}
.wb-pager-nav:hover:not(:disabled){border-color:#c9bfff;color:#6a2fe0;background:#f7f5ff;}
.wb-pager-nav:disabled{opacity:.42;cursor:not-allowed;}
.wb-pager-dots{color:#c3c5da;font-size:.78rem;padding:0 2px;user-select:none;}
.wb-pager-info{margin-left:auto;font-size:.72rem;color:#b0b2cd;}
.wb-pager-collapse{
  border:none;background:none;color:#9a9cb8;font-size:.75rem;
  cursor:pointer;font-family:inherit;transition:color .15s;
}
.wb-pager-collapse:hover{color:#6a2fe0;}

/* 子评论回复框内的工具行（图片 / 表情 */
.wb-cmt-reply-tools{display:flex;align-items:center;gap:4px;margin-top:6px;}
.wb-cmt-reply-tools .wb-cmt-tool{width:28px;height:28px;font-size:.95rem;}
@media (max-width:640px){
  .wb-pager-info{display:none;}
}

/* ============================================================
   广场 v38 · 主色调统一（对齐教程频道： #7b4dff /  #00b5a4 / 金为 VIP 点缀 
   ── 教程频道主色：主 #7b4dff（浅 #f6f3ff / 描边 #e4e1f5），标题 #171a33 
      次要文字 #83859f~#a8aac4；广场原先混用暖 #e8744a / 橙红渐变 
      与本频道不协调，此处统一收敛到紫青体系 
   ============================================================ */

/* ----------  顶部导航「发布」按钮：缩小紧致 ---------- */
.tj-nav-publish-btn{
  padding:7px 14px !important;
  border-radius:10px !important;
  font-size:.86rem !important;
  font-weight:700 !important;
  gap:4px !important;
  margin-right:2px !important;
  box-shadow:0 6px 16px -9px rgba(123,77,255,.55) !important;
}
.tj-nav-publish-btn > i:not(.tj-nav-arrow){font-size:.78rem !important;}
.tj-nav-publish-btn i.tj-nav-arrow{font-size:.58rem !important;}
.tj-nav-publish-btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px -11px rgba(123,77,255,.66) !important;}
/* 发布下拉菜单：贴合频道主 */
.tj-publish-menu{
  border-radius:12px !important;border:1px solid #eceaf6 !important;
  min-width:148px !important;padding:6px !important;
  box-shadow:0 18px 42px -22px rgba(60,40,120,.45) !important;
}
.tj-publish-menu .dropdown-item{
  border-radius:8px !important;font-size:.86rem !important;font-weight:600 !important;
  color:#3d4059 !important;padding:9px 12px !important;transition:all .15s;
}
.tj-publish-menu .dropdown-item:hover{background:#f6f3ff !important;color:#6a2fe0 !important;}

/* ----------  左栏：暖  主紫（与教程频道一致） ---------- */
.tj-side-tab{color:#666a88 !important;}
.tj-side-tab i{color:#c0bfd8 !important;}
.tj-side-tab:hover{color:#7b4dff !important;background:#f6f3ff !important;}
.tj-side-tab.active{color:#6a2fe0 !important;background:#f4f1ff !important;font-weight:700 !important;}
.tj-side-tab:hover i,.tj-side-tab.active i{color:#7b4dff !important;}
.tj-side-circle-item:hover{background:#f6f3ff !important;color:#6a2fe0 !important;}
.tj-side-action-item:hover{color:#6a2fe0 !important;background:#f6f3ff !important;}
.tj-side-action-item:hover i{color:#7b4dff !important;}
.tj-side-card{border-radius:14px !important;border:1px solid #eef0f6 !important;box-shadow:0 6px 20px -18px rgba(60,40,120,.5) !important;}

/* ----------  右栏：热榜名次收敛到紫青体系（原 1 名橙红） ---------- */
.sq-hot-num.top:nth-child(1){background:linear-gradient(135deg,#7b4dff,#a78bfa) !important;}
.sq-hot-num.top:nth-child(2){background:linear-gradient(135deg,#00b5a4,#00d6c2) !important;}
.sq-hot-num.top:nth-child(3){background:linear-gradient(135deg,#a78bfa,#c4b5fd) !important;}
.tj-sidebar-right .tj-side-card > div > i,
.tj-sidebar-right .tj-side-card span > i{color:#7b4dff;}

/* ----------  内容区卡片：圆角/描边/阴影对齐教程频道 ---------- */
.wb-item-wrap{
  border-radius:14px !important;
  border:1px solid #eef0f6 !important;
  box-shadow:0 6px 20px -19px rgba(60,40,120,.55) !important;
  transition:border-color .2s,box-shadow .2s;
}
.wb-item-wrap:hover{
  border-color:#e4ddf7 !important;
  box-shadow:0 16px 34px -24px rgba(60,40,120,.6) !important;
}
/* 发布框与左栏卡片同一套圆角语言 */
.pub-box.pub2{border-radius:14px !important;border:1px solid #eef0f6 !important;box-shadow:0 6px 20px -19px rgba(60,40,120,.5) !important;}
.pub2-quick-item{border-radius:12px !important;}
/* 排序 tab 统一主紫 */
.wb-sort.active{color:#6a2fe0 !important;}
.wb-sort:hover{color:#6a2fe0 !important;}
/* 频道标签统一（去掉暖色差异） */
.wb-channel-tag{border-radius:100px;}

/* ============================================================
   广场 v38b · 暖色残留统一（圈子图 / 加入 / 同步到圈 / 热榜名次 
   ============================================================ */
/* 左栏圈子图标：金  主紫（hover 加深 */
.tj-side-circle-item i{color:#a99ee0 !important;}
.tj-side-circle-item:hover i{color:#7b4dff !important;}
.tj-side-circle-more i{color:#c0bfd8 !important;}
/* 圈子条「加入」按钮：暖橙  主紫 */
.wb-group-join{
  border-color:rgba(123,77,255,.42) !important;color:#6a2fe0 !important;
  background:#fff !important;font-weight:700 !important;
}
.wb-group-join:hover{background:#f6f3ff !important;border-color:#7b4dff !important;}
.wb-group-join.joined{border-color:rgba(46,201,122,.5) !important;color:#1fb06a !important;background:#f0fcf4 !important;}
.wb-group-join:disabled{cursor:default;opacity:1;}
/* 发布框「同步到圈子」：金色  青（次要操作色，与主紫区分层次） */
.pub2-group{
  border-color:rgba(0,181,164,.45) !important;background:#f7fdfc !important;color:#0f8d80 !important;
}
.pub2-group:hover{border-color:#00b5a4 !important;background:#eefaf8 !important;}
.pub2-group.active{background:linear-gradient(135deg,#00b5a4,#00d6c2) !important;border-color:transparent !important;color:#fff !important;}
/* 右栏热榜名次：按列表序区分层次（ /  / 浅紫），替代原橙红第 1  */
.sq-hot-list > .sq-hot-item:nth-child(1) .sq-hot-num.top{background:linear-gradient(135deg,#7b4dff,#a78bfa) !important;}
.sq-hot-list > .sq-hot-item:nth-child(2) .sq-hot-num.top{background:linear-gradient(135deg,#00b5a4,#00d6c2) !important;}
.sq-hot-list > .sq-hot-item:nth-child(3) .sq-hot-num.top{background:linear-gradient(135deg,#a78bfa,#c4b5fd) !important;}
.sq-hot-item:hover{background:#f6f3ff !important;}
.sq-hot-item:hover .sq-hot-title{color:#6a2fe0 !important;}

/* 热榜名次层次修正（容器实 .tj-side-card-body  热榜标题火苗图标统一主紫 */
.tj-side-card-body > .sq-hot-item:nth-child(1) .sq-hot-num.top{background:linear-gradient(135deg,#7b4dff,#a78bfa) !important;}
.tj-side-card-body > .sq-hot-item:nth-child(2) .sq-hot-num.top{background:linear-gradient(135deg,#00b5a4,#00d6c2) !important;}
.tj-side-card-body > .sq-hot-item:nth-child(3) .sq-hot-num.top{background:linear-gradient(135deg,#a78bfa,#c4b5fd) !important;}
.sq-ic-hot{color:#7b4dff !important;}

/* ===== v40：Logo slogan 文案加长 4 字）后的排版收敛 =====
   原则：字 字号随视口阶梯收敛，保证 slogan 不被压缩变形、顶栏导航不被挤 */
.tj-logo-slogan{font-size:.92rem;letter-spacing:1.4px;}
@media (max-width:1700px){
  .tj-logo-slogan{font-size:.84rem;letter-spacing:1px;}
  .tj-logo-name{gap:8px;}
}
@media (max-width:1500px){
  .tj-logo-slogan{font-size:.78rem;letter-spacing:.6px;}
}
/*  400 再显示会挤出导航（实 1366 溢出 33px）→ slogan 让位给功能导 */
@media (max-width:1400px){
  .tj-logo-slogan{display:none;}
}

/* ===== v41：顶部导航下拉项「选中态」只改背景色 =====
   要求：点击菜单后仅以背景色区分选中，文字色/图标 字重均与默认态一致 
   注意历史层有 .tj-nav-hover-item:hover（青字） .tj-nav-hover-item.active（橙 加粗），
   这里同特异 + 后置 + !important 覆盖，并 :hover 组合一并声明以防悬停时回退 */
.tj-nav-hover-item.active,
.tj-nav-hover-item.active:hover{
  background:rgba(11,143,131,.14) !important; /*  hover 同色系、略深，形成 hover<active 层次 */
  color:#3a3d5c !important;                   /* = 默认项文字色，不变色 */
  font-weight:400 !important;                 /* 不加 */
}
.tj-nav-hover-item.active i:not(.tj-nav-arrow){color:inherit !important;}

/* ===== v45：频道内容区统一最大宽 1400px（与广场 /square  .sq-page 对齐 =====
   范围 groups gf-layout） groups/all gb-all-page） contacts  /cooperation contacts-page 
   写法 .sq-page{width:100%;max-width:1400px;margin:0 auto} 保持一致；
    400 视口 width:100% 自然生效，无需额外断点 */
.gf-layout,
.gb-all-page,
.contacts-page{
  width:100%;
  max-width:1400px;
  margin-left:auto;
  margin-right:auto;
}

/* ============================================================
   v48 · 首页 Landing 视觉重做 lp2 命名空间 
   定位：一个聚集年轻创业者的实战社群
   结构：深 Hero  五大频道  会员专享内容预览  会员权益（对 + 两档）→ 底部 CTA
   配色：紫 #7b4dff /  #00b5a4 / 深紫 #14112a~#241b4d；金色仅用于会员
   ⚠️ 全站有深色主题层 body{color:var(--txt)!important}（近白） 所有文字必须显式声 color
   ⚠️ 不复 .landing-hero（其 !important 的暖橙奶油背景）
   ============================================================ */

/* ---------- Hero：深色沉 ---------- */
.lp2-hero{
  position:relative;overflow:hidden;text-align:center;
  padding:92px 24px 78px;
  background:linear-gradient(165deg,#14112a 0%,#1c1740 45%,#241b4d 100%);
  color:#fff;
}
.lp2-hero-glow{position:absolute;border-radius:50%;pointer-events:none;}
.lp2-hero-glow.a{width:720px;height:720px;top:-320px;left:50%;transform:translateX(-50%);
  background:radial-gradient(circle, rgba(123,77,255,.42), transparent 66%);}
.lp2-hero-glow.b{width:560px;height:560px;bottom:-300px;left:12%;
  background:radial-gradient(circle, rgba(0,181,164,.30), transparent 68%);}
.lp2-hero-grid{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(circle at 50% 34%, #000 12%, transparent 74%);
  -webkit-mask-image:radial-gradient(circle at 50% 34%, #000 12%, transparent 74%);
}
.lp2-hero-inner{position:relative;max-width:900px;margin:0 auto;}
.lp2-badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 18px;border-radius:100px;margin-bottom:26px;
  background:rgba(255,255,255,.07);border:1px solid rgba(167,139,250,.36);
  color:#ddd6ff;font-weight:700;font-size:.86rem;letter-spacing:.2px;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.lp2-h1{
  margin:0 0 22px;color:#fff;font-weight:900;
  font-size:clamp(2.2rem,4.9vw,3.6rem);line-height:1.16;letter-spacing:-.8px;
}
.lp2-h1 em{
  font-style:normal;
  background:linear-gradient(110deg,#c4b5fd,#7b4dff 38%,#00b5a4);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.lp2-sub{
  margin:0 auto 36px;max-width:680px;
  font-size:1.1rem;line-height:1.88;color:#a9a6c8;
}
.lp2-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.lp2-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:13px 30px;border-radius:100px;border:1px solid transparent;
  font-weight:800;font-size:1rem;text-decoration:none;cursor:pointer;
  transition:transform .2s, box-shadow .2s, background .2s, border-color .2s, color .2s;
}
.lp2-btn i{font-size:.88rem;transition:transform .2s;}
.lp2-btn:hover i{transform:translateX(3px);}
.lp2-btn-lg{padding:15px 42px;font-size:1.05rem;}
.lp2-btn-primary{
  /* 渐变两端都压深： #7b4dff 00b5a4 的青色端与白字仅 2.58:1（WCAG AA 需 4.5:1 */
  background:linear-gradient(135deg,#6d3ce8,#007a70);color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.28);
  box-shadow:0 12px 30px -14px rgba(109,60,232,.95);
}
.lp2-btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 38px -14px rgba(109,60,232,1);}
.lp2-btn-ghost{
  background:rgba(255,255,255,.10);color:#f3f0ff;border-color:rgba(180,158,255,.55);
}
.lp2-btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#a78bfa;color:#fff;}
.lp2-stats{
  display:flex;justify-content:center;flex-wrap:wrap;margin-top:56px;
  border:1px solid rgba(255,255,255,.10);border-radius:18px;
  background:rgba(255,255,255,.04);padding:22px 8px;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.lp2-stat{flex:1 1 150px;padding:0 16px;border-right:1px solid rgba(255,255,255,.08);}
.lp2-stat:last-child{border-right:none;}
.lp2-stat-n{font-size:1.62rem;font-weight:900;color:#fff;letter-spacing:-.5px;}
.lp2-stat-l{font-size:.84rem;color:#9b98bd;margin-top:6px;}

/* ---------- 通用区块 ---------- */
.lp2-sec{padding:82px 24px;max-width:1240px;margin:0 auto;}
.lp2-head{text-align:center;margin-bottom:46px;}
.lp2-tag{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 16px;border-radius:100px;
  background:#f6f3ff;color:#6a2fe0;font-weight:700;font-size:.82rem;letter-spacing:.3px;
}
.lp2-tag-lock{background:#f1ecff;color:#5b3fd4;}
.lp2-tag-gold{background:rgba(242,193,78,.16);color:#f2c14e;}
.lp2-h2{
  margin:16px 0 0;color:#171a33;font-weight:900;
  font-size:clamp(1.55rem,2.7vw,2.05rem);letter-spacing:-.5px;line-height:1.3;
}
.lp2-h2-light{color:#fff;}
.lp2-sub2{
  margin:14px auto 0;max-width:680px;
  color:#6b6d88;font-size:1.02rem;line-height:1.82;
}
.lp2-sub2-light{color:#a9a6c8;}

/* ---------- 频道 ---------- */
.lp2-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.lp2-card{
  position:relative;display:flex;flex-direction:column;overflow:hidden;
  background:#fff;border:1px solid #ece9f8;border-radius:18px;
  padding:28px 26px 24px;text-decoration:none;
  box-shadow:0 3px 14px -8px rgba(20,20,46,.12);
  transition:transform .22s, box-shadow .22s, border-color .22s;
}
.lp2-card-bar{
  position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,#7b4dff,#a78bfa);
}
.lp2-card-cyan .lp2-card-bar{background:linear-gradient(90deg,#00b5a4,#00d6c2);}
.lp2-card-vip .lp2-card-bar{background:linear-gradient(90deg,#f2c14e,#c9902b);}
.lp2-card-no{
  position:absolute;top:14px;right:20px;
  font-size:2.6rem;font-weight:900;line-height:1;letter-spacing:-2px;
  color:#f4f2fd;pointer-events:none;
}
.lp2-card-ic{
  width:48px;height:48px;border-radius:14px;margin-bottom:18px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.36rem;
}
.lp2-ic-purple{background:linear-gradient(135deg,#7b4dff,#a78bfa);}
.lp2-ic-cyan{background:linear-gradient(135deg,#00b5a4,#00d6c2);}
.lp2-ic-gold{background:linear-gradient(135deg,#f2c14e,#c9902b);}
.lp2-card-name{margin:0 0 8px;font-size:1.16rem;font-weight:800;color:#171a33;}
.lp2-card-tag{margin:0 0 16px;font-size:.9rem;font-weight:600;color:#6a2fe0;line-height:1.6;}
.lp2-card-pts{
  list-style:none;margin:0 0 20px;padding:0;flex:1;
  display:flex;flex-direction:column;gap:9px;
}
.lp2-card-pts li{position:relative;padding-left:16px;font-size:.87rem;color:#7b7d96;line-height:1.66;}
.lp2-card-pts li::before{
  content:'';position:absolute;left:0;top:.6em;
  width:5px;height:5px;border-radius:50%;background:#c4b5fd;
}
.lp2-card-cyan .lp2-card-pts li::before{background:#7fdcd0;}
.lp2-card-go{display:inline-flex;align-items:center;gap:6px;font-size:.87rem;font-weight:700;color:#6a2fe0;}
.lp2-card-go i{font-size:.82rem;transition:transform .2s;}
.lp2-card:hover{transform:translateY(-4px);border-color:#d9d2fb;box-shadow:0 22px 40px -24px rgba(123,77,255,.6);}
.lp2-card:hover .lp2-card-go i{transform:translateX(4px);}

/* 会员卡（深色 */
.lp2-card-vip{background:linear-gradient(158deg,#241b4d 0%,#161231 100%);border-color:#312a63;}
.lp2-card-vip .lp2-card-name{color:#fff;}
.lp2-card-vip .lp2-card-tag{color:#c9b6ff;}
.lp2-card-vip .lp2-card-no{color:rgba(255,255,255,.07);}
.lp2-card-vip .lp2-card-pts li{color:#b3b0d2;}
.lp2-card-vip .lp2-card-pts li::before{background:#f2c14e;}
.lp2-card-vip .lp2-card-go{color:#f2c14e;}
.lp2-card-vip:hover{border-color:#4f3f96;box-shadow:0 22px 40px -24px rgba(36,27,77,.95);}

/* ---------- 会员专享内容预览 ---------- */
.lp2-peek{padding:76px 24px;background:linear-gradient(180deg,#faf9ff 0%,#f4f1ff 100%);}
.lp2-peek-inner{
  max-width:1180px;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:52px;align-items:center;
}
.lp2-peek-left .lp2-h2{text-align:left;}
.lp2-peek-left .lp2-sub2{text-align:left;margin-left:0;}
.lp2-peek-left .lp2-btn{margin-top:28px;}
.lp2-peek-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.lp2-peek-item{
  display:flex;align-items:center;gap:12px;
  background:#fff;border:1px solid #e8e6f5;border-radius:14px;
  padding:15px 18px;box-shadow:0 3px 12px -8px rgba(20,20,46,.14);
}
.lp2-peek-kind{flex-shrink:0;padding:3px 10px;border-radius:8px;font-size:.74rem;font-weight:800;letter-spacing:.2px;}
.lp2-kind-purple{background:#f1ecff;color:#6a2fe0;}
.lp2-kind-cyan{background:#e8faf7;color:#0f8d80;}
.lp2-peek-title{
  flex:1;min-width:0;font-size:.92rem;color:#3a3d5c;font-weight:600;line-height:1.55;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.lp2-peek-lock{color:#c9c6dd;font-size:.86rem;flex-shrink:0;}

/* ---------- 会员权益（深色） ---------- */
.lp2-member{padding:84px 24px 90px;background:linear-gradient(155deg,#14112a 0%,#241b4d 58%,#0f1730 100%);}
.lp2-member-inner{max-width:1080px;margin:0 auto;}
.lp2-cmp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:26px;}
.lp2-cmp-col{
  border-radius:18px;padding:26px 26px 22px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.11);
}
.lp2-cmp-vip{background:rgba(242,193,78,.08);border-color:rgba(242,193,78,.38);}
.lp2-cmp-name{font-size:.92rem;font-weight:700;color:#c9c6e4;margin-bottom:8px;}
.lp2-cmp-vip .lp2-cmp-name{color:#f2c14e;}
.lp2-cmp-price{font-size:1.7rem;font-weight:900;color:#fff;letter-spacing:-.6px;margin-bottom:16px;}
.lp2-cmp-price span{font-size:.82rem;font-weight:500;color:#9b98bd;letter-spacing:0;}
.lp2-cmp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.lp2-cmp-list li{display:flex;gap:9px;font-size:.88rem;color:#b3b0d2;line-height:1.6;}
.lp2-cmp-list i{flex-shrink:0;margin-top:2px;color:#6f6a99;}
.lp2-cmp-vip .lp2-cmp-list li{color:#e2ddf5;}
.lp2-cmp-vip .lp2-cmp-list i{color:#f2c14e;}

.lp2-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.lp2-plan{
  position:relative;border-radius:18px;padding:30px 28px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
}
.lp2-plan-hot{
  /* 金色渐变整体提亮 + 文字改深棕：白字在任何金底上最高仅 ~4.0:1，达不到 AA */
  background:linear-gradient(155deg,#f7d27a,#e0aa3e);border-color:transparent;
  box-shadow:0 22px 44px -24px rgba(201,144,43,.95);
}
.lp2-plan-flag{
  position:absolute;top:-12px;right:22px;
  padding:4px 13px;border-radius:100px;
  background:#7b4dff;color:#fff;font-size:.74rem;font-weight:800;
}
.lp2-plan-name{font-size:.95rem;font-weight:700;color:#e8e5f7;margin-bottom:12px;}
.lp2-plan-hot .lp2-plan-name{color:#5c3f05;}
.lp2-plan-price{font-size:2.35rem;font-weight:900;color:#fff;letter-spacing:-1px;}
.lp2-plan-price span{font-size:.9rem;font-weight:500;opacity:.72;letter-spacing:0;}
.lp2-plan-hot .lp2-plan-price{color:#4a3200;}
.lp2-plan-hot .lp2-plan-price span{color:#6b4a12;opacity:1;}
.lp2-plan-note{font-size:.82rem;color:#9b98bd;margin:9px 0 20px;}
.lp2-plan-hot .lp2-plan-note{color:#6b4a12;}
.lp2-btn-hot{background:#fff;color:#8a6119;width:100%;padding:12px 0;font-size:.93rem;}
.lp2-btn-hot:hover{background:#fffaf0;transform:translateY(-1px);}
.lp2-btn-plain{background:rgba(255,255,255,.14);color:#fff;width:100%;padding:12px 0;font-size:.93rem;}
.lp2-btn-plain:hover{background:rgba(255,255,255,.22);}
.lp2-perks{display:flex;flex-wrap:wrap;gap:11px 30px;justify-content:center;margin-top:46px;}
.lp2-perk{display:inline-flex;align-items:center;gap:7px;color:#b3b0d2;font-size:.89rem;}
.lp2-perk i{color:#f2c14e;font-size:.86rem;}

/* ---------- 底部 CTA ---------- */
.lp2-final{padding:88px 24px;text-align:center;}
.lp2-final .lp2-sub2{margin-bottom:32px;}

/* ---------- 响应 ---------- */
@media (max-width:1024px){
  .lp2-hero{padding:68px 20px 60px;}
  .lp2-sec{padding:64px 20px;}
  .lp2-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .lp2-peek-inner{grid-template-columns:1fr;gap:34px;}
  .lp2-peek-left{text-align:center;}
  .lp2-peek-left .lp2-h2,.lp2-peek-left .lp2-sub2{text-align:center;}
  .lp2-member{padding:64px 20px 70px;}
  .lp2-stats{gap:16px 0;padding:20px 4px;}
}
@media (max-width:820px){
  .lp2-cmp,.lp2-plans{grid-template-columns:1fr;}
}
@media (max-width:767px){
  .lp2-hero{padding:50px 18px 46px;}
  .lp2-h1{letter-spacing:-.4px;}
  .lp2-sub{font-size:1rem;}
  .lp2-grid{grid-template-columns:1fr;}
  .lp2-stat{flex:1 1 45%;border-right:none;}
  .lp2-stat-n{font-size:1.4rem;}
  .lp2-sec{padding:50px 18px;}
  .lp2-peek{padding:50px 18px;}
  .lp2-final{padding:58px 18px;}
  .lp2-cta{flex-direction:column;}
  .lp2-cta .lp2-btn,.lp2-peek-left .lp2-btn,.lp2-final .lp2-btn{width:100%;}
  .lp2-peek-title{white-space:normal;}
}

/* ============================================================
   v48 · 会员中心 membership）宣传页化——专属样 
   复用 .lp2-* 视觉语言；Hero 需全宽出血，故解除 .mship-page 的宽度限 
   ============================================================ */
.mship-page{max-width:none !important;padding:0 !important;}

/* Hero 内的会员状态徽标间 */
.mship-hero .lp2-cta{margin-bottom:0;}

/* 历史档提示（居中容器 */
.mship-legacy-wrap{max-width:1080px;margin:0 auto;padding:22px 24px 0;}
.mship-legacy-wrap .mship-legacy-note{margin:0;}

/* ---------- 权益网格 ---------- */
.mship-perks{padding:80px 24px;background:#fff;}
.mship-perks-inner{max-width:1080px;margin:0 auto;}
.mship-perk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.mship-perk{
  display:flex;gap:16px;align-items:flex-start;
  background:#fff;border:1px solid #ece9f8;border-radius:16px;padding:22px 22px 20px;
  box-shadow:0 3px 14px -8px rgba(20,20,46,.10);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.mship-perk:hover{transform:translateY(-3px);border-color:#d9d2fb;box-shadow:0 18px 34px -24px rgba(123,77,255,.55);}
.mship-perk-ic{
  width:44px;height:44px;border-radius:13px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.24rem;
}
.mship-perk-txt{min-width:0;}
.mship-perk-name{font-size:1.02rem;font-weight:800;color:#171a33;margin-bottom:6px;}
.mship-perk-desc{font-size:.87rem;color:#7b7d96;line-height:1.68;}

/* ---------- 套餐 ---------- */
.mship-plan-current{
  position:absolute;top:-12px;left:22px;
  padding:4px 13px;border-radius:100px;
  background:#fff;color:#8a6119;font-size:.74rem;font-weight:800;
  box-shadow:0 4px 12px -6px rgba(0,0,0,.3);
}
.mship-plan-feats{display:flex;flex-direction:column;gap:9px;margin:0 0 20px;}
.mship-plan-feat{display:flex;gap:9px;font-size:.86rem;line-height:1.6;color:#d6d3ee;}
.lp2-plan-hot .mship-plan-feat{color:#5c3f05;}
.mship-plan-feat i{flex-shrink:0;margin-top:3px;font-size:.84rem;color:#f2c14e;}
.lp2-plan-hot .mship-plan-feat i{color:#8a6119;}
.mship-after{margin:26px 0 0;text-align:center;font-size:.82rem;color:#9b98bd;}

/* ---------- 常见问题 ---------- */
.mship-faq{padding:80px 24px 90px;background:linear-gradient(180deg,#faf9ff,#f4f1ff);}
.mship-faq-inner{max-width:840px;margin:0 auto;}
.mship-faq-list{display:flex;flex-direction:column;gap:12px;}
.mship-faq-item{
  background:#fff;border:1px solid #ece9f8;border-radius:14px;overflow:hidden;
  transition:border-color .2s, box-shadow .2s;
}
.mship-faq-item.open{border-color:#d9d2fb;box-shadow:0 14px 30px -22px rgba(123,77,255,.55);}
.mship-faq-q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:18px 22px;background:none;border:none;cursor:pointer;text-align:left;
  font-size:.98rem;font-weight:700;color:#171a33;font-family:inherit;
}
.mship-faq-q i{flex-shrink:0;color:#6a2fe0;font-size:.9rem;}
.mship-faq-a{padding:0 22px 20px;font-size:.9rem;line-height:1.82;color:#6b6d88;}

/* ---------- 会员页响应式 ---------- */
@media (max-width:900px){
  .mship-perk-grid{grid-template-columns:1fr;}
}
@media (max-width:767px){
  .mship-perks,.mship-faq{padding:52px 18px;}
  .mship-perk{padding:18px;}
  .mship-faq-q{padding:16px 18px;font-size:.94rem;}
  .mship-faq-a{padding:0 18px 18px;}
}

/* ============================================================
   v50 · 顶栏控件高度统一 + 首页/会员页按钮提 
   ============================================================ */

/* ----------  顶栏右侧控件统一 40px  ----------
   改前实测 600 视口）：搜索图标 46 / 发布 36 / 开通会 47 / 登录 42 / 注册 40 — 高度全不一 
   统一 40px，并统一文字字号 .9rem（纯图标按钮除外 */
.tj-header-right .tj-search-mini,
.tj-header-right .tj-nav-publish-btn,
.tj-header-right .tj-member-btn,
.tj-header-right .tj-icon-btn,
.tj-header-right .btn-ghost,
.tj-header-right .btn-gold{
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:1 !important;
  box-sizing:border-box !important;
  font-size:.9rem !important;
}
.tj-header-right .tj-search-mini{width:40px !important;font-size:1.05rem !important;}
.tj-header-right .tj-nav-publish-btn{padding-left:14px !important;padding-right:14px !important;}
.tj-header-right .tj-member-btn{padding-left:18px !important;padding-right:18px !important;}
.tj-header-right .btn-ghost,
.tj-header-right .btn-gold{padding-left:18px !important;padding-right:18px !important;}
/* 已登录态的图标按钮（会 / 消息）同样对 40×40 */
.tj-header-right .tj-icon-btn{width:40px !important;height:40px !important;font-size:1.05rem !important;}
/* 头像与右侧区基线对齐（避免与 40px 控件错位 */
.tj-header-right{display:flex !important;align-items:center !important;}
.tj-header-right .tj-avatar,
.tj-header-right .tj-avatar-wrap{height:40px !important;display:inline-flex !important;align-items:center !important;}

/* ----------  首页/会员页按钮：提亮 + 改白底深 ----------
   用户反馈「按钮颜色太深、文字看不清」：上一版为压对比度把主按钮渐变青色端压 #007a70（发黑） 
   次按钮用半透明白底（在深色背景上边界不清）。改为：主按钮走明亮紫系，次要按钮白底深字 */

/* 主按钮：亮紫  靛蓝 7b4dff 4.83:1 / #4f46e5 6.28:1，两端均达标且明亮） */
.lp2-btn-primary{
  background:linear-gradient(135deg,#7b4dff,#4f46e5) !important;
  color:#fff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.18) !important;
  box-shadow:0 12px 30px -14px rgba(123,77,255,.85) !important;
}
.lp2-btn-primary:hover{box-shadow:0 18px 38px -14px rgba(123,77,255,1) !important;}

/* 次要按钮（Hero「了解会员权益  会员页「先去广场看看」）：白 + 深紫字（8.47:1 */
.lp2-btn-ghost{
  background:#fff !important;
  color:#4a2ec4 !important;
  border-color:transparent !important;
}
.lp2-btn-ghost:hover{background:#f4f1ff !important;color:#3f24ad !important;}

/* 套餐次要按钮（会员区「免费注册后开通」）：白 + 深紫字，与金卡的深金字呼 */
.lp2-btn-plain{
  background:#fff !important;
  color:#4a2ec4 !important;
}
.lp2-btn-plain:hover{background:#f4f1ff !important;}

/* 顶栏「开通会员」金色按钮：文字加深 #3d2800（原 #5b3c00 在金色渐变上 3.42:1 */
.tj-header-right .tj-member-btn{color:#3d2800 !important;}

/* 顶栏「注册」：旧规则挂的是暖橙渐变 f47b4f e8744a），白字 2.58:1
    换成站内主色紫渐变（最差端 4.83:1），同时去掉暖橙残留 */
.tj-header-right .btn-gold{
  background:linear-gradient(135deg,#7b4dff,#4f46e5) !important;
  color:#fff !important;
  border:none !important;
  box-shadow:0 8px 20px -12px rgba(123,77,255,.9) !important;
}
.tj-header-right .btn-gold:hover{filter:brightness(1.06);}
/* 顶栏「登录」：白底描边按钮，字色已是近黑，仅统一描边 */
.tj-header-right .btn-ghost{border-color:#e0dcf5 !important;}

/* 顶栏「发布」：恢复渐变底（按用户要求） 
   原渐 #00b5a4 7b4dff 的青色端白字 2.4:1  青色端压 #00857a .53:1），紫端保持 #7b4dff .83:1），
   方向与原版一致（左上  右下紫），并加轻文字阴影增强小字号可读 */
.tj-header-right .tj-nav-publish-btn{
  background:linear-gradient(135deg,#00857a,#7b4dff) !important;
  color:#fff !important;
  border:none !important;
  text-shadow:0 1px 2px rgba(0,0,0,.25) !important;
  box-shadow:0 8px 20px -12px rgba(0,133,122,.85) !important;
}
.tj-header-right .tj-nav-publish-btn:hover{filter:brightness(1.07);}
.tj-header-right .tj-nav-publish-btn .tj-nav-arrow{color:rgba(255,255,255,.85) !important;}

/* ============================================================
   v53 · 个人中心 /me
   布局参考：全宽封面 + 悬浮头像 + 昵称/等级/签名 + 左菜 + 右内 
   配色沿用站内紫青体系；文字色  .5:1（AA 
   ============================================================ */
.me-page{max-width:1080px;margin:0 auto;padding:22px 22px 70px;}

/* ---------- 封面（顶部横幅：只放背景图与上传按钮，不放任何文字） ---------- */
.me-cover{
  position:relative;height:200px;overflow:hidden;
  border:1px solid transparent;border-bottom:0; /* 与下方信息卡的外框对 */
  border-radius:18px 18px 0 0;
  background:
    radial-gradient(620px 240px at 18% -10%, rgba(0,181,164,.45), transparent 62%),
    radial-gradient(720px 280px at 88% 112%, rgba(167,139,250,.5), transparent 66%),
    linear-gradient(135deg,#3a1e8f 0%,#5b3fd4 46%,#0f8d80 100%);
  background-size:cover;background-position:center;
}
/* 真实封面图：网格纹理让位，改为顶部压暗，保证右上角按钮可 */
.me-cover.has-img::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(12,10,28,.44) 0%,rgba(12,10,28,.04) 46%,rgba(12,10,28,.26) 100%);
}
.me-cover.has-img .me-cover-mask{display:none;}
.me-cover-mask{
  position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(circle at 28% 18%, #000 18%, transparent 76%);
  -webkit-mask-image:radial-gradient(circle at 28% 18%, #000 18%, transparent 76%);
}
.me-cover-actions{position:absolute;top:16px;right:16px;display:flex;gap:8px;z-index:2;}
.me-cover-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.55);
  background:rgba(20,17,42,.45);color:#fff;font-size:.84rem;font-weight:600;font-family:inherit;
  cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:all .18s;
}
.me-cover-btn:hover{background:rgba(20,17,42,.66);border-color:#fff;}

/* ---------- 信息卡（封面下方，昵 签名/数据全部落在白底上） ---------- */
.me-head{
  position:relative;display:flex;gap:20px;align-items:flex-end;
  padding:0 28px 24px;
  background:#fff;border:1px solid #ece9f8;border-top:0;
  border-radius:0 0 18px 18px;
}
.me-avatar-box{position:relative;flex-shrink:0;margin-top:-44px;}
.me-avatar{
  width:144px;height:144px;border-radius:20px;overflow:hidden;
  border:4px solid #fff;background:linear-gradient(135deg,#7b4dff,#00b5a4);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:2.6rem;font-weight:800;
  box-shadow:0 16px 34px -20px rgba(20,20,46,.55);
}
.me-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.me-avatar-btn{
  position:absolute;right:6px;bottom:6px;width:32px;height:32px;border-radius:10px;
  border:2px solid #fff;background:#fff;color:#6a2fe0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:.88rem;
  box-shadow:0 6px 14px -8px rgba(20,20,46,.55);transition:all .16s;
}
.me-avatar-btn:hover{background:#f6f3ff;}
.me-head-info{flex:1;min-width:0;padding-bottom:2px;}
.me-name-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.me-name{margin:0;font-size:1.6rem;font-weight:900;color:#171a33;letter-spacing:-.4px;}
.me-level{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 10px;border-radius:8px;background:#f1ecff;color:#5b3fd4;
  font-size:.76rem;font-weight:700;
}
.me-level.sm{font-size:.72rem;padding:2px 8px;margin-left:8px;}

/* ---------- 身份标签里的 LV.N 026-10-01 ---------
   全站身份标签都由 components/LevelTag.jsx 渲染 span class="lv-badge 各页原有类名"><em class="lv-n">LV.2</em>铁匠</span>
   LV.N 做成嵌套的浅底小块：既能在小字号 .66rem 的名片卡）上分辨 
   又不抢等级名的视觉主导。颜色一律继承外层（各页的等级色不同），不写死 */
.lv-badge{display:inline-flex;align-items:center;gap:4px;}
.lv-n{
  font-style:normal;font-size:.92em;font-weight:800;letter-spacing:.02em;
  padding:1px 5px;border-radius:100px;background:rgba(91,63,212,.14);
  color:inherit;
}
/* 顶栏用户菜单里的等级：原来是纯文字，这里保持无底色，只让 LV.N 有块 */
.level .lv-n{background:rgba(91,63,212,.12);}
/* me-profile 概览里图 + 标签并排 */
.me-level .lv-badge{margin-left:4px;}

/* ============================================================
   积分中心 me?tab=checkin 
   ============================================================ */
.pts-page{display:flex;flex-direction:column;gap:14px;}

/* ---------- 我的积分与等 ---------- */
.pts-hero{
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding:18px 20px;border-radius:16px;border:1px solid #ece9f8;
  background:linear-gradient(135deg,#f8f5ff,#f2fbfa 70%,#fff);
}
.pts-hero-num{display:flex;align-items:baseline;gap:8px;}
.pts-hero-num b{font-size:2rem;font-weight:800;color:#5b3fd4;line-height:1;}
.pts-hero-num span{font-size:.8rem;color:#6b6d88;}
.pts-hero-lv{display:flex;align-items:center;gap:10px;margin-top:8px;}
.pts-progress{margin-top:12px;min-width:260px;flex:1;max-width:520px;}
/* hero 里的「当前可 / 累计签到」小字（与「累计所得」区分开 */
.pts-hero-bal{font-size:.78rem;color:#6b6d88;border-left:1px solid #e4e1f5;padding-left:10px;}
.pts-hero-bal b{color:#5b3fd4;}

/* ---------- 规则（默认展开，不再折叠） ---------- */
.pts-rules-open{margin-top:16px;border-top:1px dashed #ece9f8;padding-top:14px;}
.pts-rules-title{margin:0 0 8px;font-size:.86rem;font-weight:800;color:#171a33;display:flex;align-items:center;gap:6px;}
.pts-rules-title i{color:#7b4dff;}
.pts-rules-open ul{margin:0 0 14px;padding-left:18px;font-size:.8rem;line-height:2;color:#4a4d66;}
.pts-rules-open ul b{color:#5b3fd4;}
.pts-tier-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  font-size:.8rem;font-weight:700;color:#6b6d88;margin-bottom:10px;
}
.pts-tier-head b{color:#5b3fd4;}
/* 20 档按材质族分 5 列展示，一眼看出「我在哪一族、离下一族多远 */
.pts-tiers{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,minmax(0,1fr)));gap:12px;}
.pts-tier-fam{background:#fcfcfe;border:1px solid #f1eefb;border-radius:12px;padding:10px 11px;}
.pts-tier-fam-head{margin-bottom:7px;}
.pts-tier-fam-head b{display:block;font-size:.82rem;font-weight:800;color:#171a33;}
.pts-tier-fam-head em{display:block;font-style:normal;font-size:.7rem;color:#6b6d88;margin-top:2px;line-height:1.5;}
.pts-tier{
  display:flex;align-items:center;gap:6px;padding:5px 7px;border-radius:8px;
  font-size:.74rem;color:#4a4d66;
}
.pts-tier + .pts-tier{margin-top:2px;}
.pts-tier.on{background:#f1ecff;color:#5b3fd4;font-weight:800;}
.pts-tier-no{
  flex:0 0 auto;font-size:.66rem;font-weight:800;letter-spacing:.02em;
  background:rgba(91,63,212,.12);color:inherit;padding:1px 5px;border-radius:100px;
}
.pts-tier-name{flex:1;min-width:0;}
.pts-tier-min{flex:0 0 auto;font-size:.68rem;color:#8b8aa8;}
.pts-tier.on .pts-tier-min{color:#5b3fd4;}
.pts-tier-me{flex:0 0 auto;font-size:.64rem;font-weight:800;background:#5b3fd4;color:#fff;padding:1px 6px;border-radius:100px;}
.pts-bar{height:10px;border-radius:100px;background:#ece9f8;overflow:hidden;}
.pts-bar i{display:block;height:100%;border-radius:100px;background:linear-gradient(90deg,#7b4dff,#00b5a4);transition:width .5s ease;}
.pts-bar-tip{margin-top:7px;font-size:.78rem;color:#6b6d88;}
.pts-bar-tip b{color:#5b3fd4;}

/* ---------- 签到：日 + 连签 ---------- */
.pts-checkin{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;align-items:start;}
/* 说明：这 1fr 已经写了 minmax(0, ，全站凡 grid 里的 1fr 都应如此 */
/* 说明：这 1fr 已经写了 minmax(0, ，全站凡 grid 里的 1fr 都应如此 */
.pts-card{background:#fff;border:1px solid #ece9f8;border-radius:14px;padding:16px 18px;}
.pts-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.pts-card-head h3{margin:0;font-size:.95rem;font-weight:800;color:#171a33;display:flex;align-items:center;gap:7px;}
.pts-card-head h3 i{color:#7b4dff;}
.pts-month{font-size:.8rem;color:#6b6d88;font-weight:700;}

/* repeat(7,minmax(0,1fr))：裸 1fr 会被 25 分」这种小字撑宽，窄屏 20px）尤其明 */
.pts-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;}
.pts-cal-w{text-align:center;font-size:.72rem;font-weight:700;color:#a8aac4;padding-bottom:2px;}
.pts-day{
  position:relative;aspect-ratio:1/1;border-radius:10px;border:1px solid #eef0f6;background:#fcfcfe;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  font-size:.78rem;color:#6b6d88;
}
.pts-day.empty{border:0;background:transparent;}
.pts-day.on{background:#f1ecff;border-color:#ddd6f7;color:#5b3fd4;font-weight:800;}
.pts-day.today{border-color:#7b4dff;box-shadow:0 0 0 2px rgba(123,77,255,.14);}
.pts-day em{font-style:normal;font-size:.6rem;font-weight:700;color:#5b3fd4;}
.pts-day.future{color:#c9cad9;background:#fafafd;}
.pts-cal-foot{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.78rem;color:#6b6d88;}

/* 连签里程 */
.pts-streak{display:flex;flex-direction:column;gap:10px;}
.pts-streak-top{display:flex;align-items:center;gap:8px;}
.pts-streak-top b{font-size:1.7rem;font-weight:800;color:#e8744a;line-height:1;}
.pts-streak-top span{font-size:.78rem;color:#6b6d88;}
.pts-ms{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;background:#fbfaff;border:1px solid #f1eefb;font-size:.78rem;color:#4a4d66;}
.pts-ms b{color:#5b3fd4;}
.pts-ms.hit{background:#f0fbfa;border-color:#d6f2ee;color:#0a6b61;}
.pts-ms.hit b{color:#0a6b61;}

.pts-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:42px;padding:0 18px;border:0;border-radius:11px;
  background:#5b3fd4;color:#fff;font-family:inherit;font-size:.88rem;font-weight:800;
  cursor:pointer;transition:all .16s;
}
.pts-btn:hover:not(:disabled){background:#4a2ec4;}
.pts-btn:disabled{background:#f5f4fa;color:#8b8aa8;cursor:not-allowed;}
.pts-btn.wide{width:100%;}
.pts-btn.ghost{background:#fff;border:1px solid #e4e1f5;color:#5b3fd4;}
.pts-btn.ghost:hover{background:#faf9ff;}

/* ---------- 任务列表 ---------- */
.pts-tasks{display:flex;flex-direction:column;gap:2px;}
.pts-task{
  display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid #f4f2fb;
}
.pts-task:last-child{border-bottom:0;}
.pts-task-ic{
  flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:#f5f4fa;color:#4a4d66;
  display:flex;align-items:center;justify-content:center;font-size:.95rem;
}
.pts-task-main{flex:1;min-width:0;}
.pts-task-main b{display:block;font-size:.86rem;font-weight:700;color:#171a33;}
.pts-task-main em{display:block;font-style:normal;font-size:.75rem;color:#6b6d88;margin-top:2px;}
.pts-task-pt{flex:0 0 auto;font-size:.84rem;font-weight:800;color:#5b3fd4;white-space:nowrap;}
.pts-task-pt.done{color:#8b8aa8;}
.pts-task-act{flex:0 0 auto;}
.pts-task-do{
  height:30px;padding:0 13px;border-radius:9px;border:1px solid #ddd6f7;background:#f1ecff;
  color:#5b3fd4;font-family:inherit;font-size:.78rem;font-weight:800;cursor:pointer;
}
.pts-task-do:hover{background:#e8e0ff;}
.pts-task-done{font-size:.76rem;font-weight:700;color:#0a6b61;display:inline-flex;align-items:center;gap:4px;}
.pts-task-cnt{font-size:.72rem;color:#a8aac4;margin-left:4px;}

/* ---------- 规则说明（可折叠 ---------- */
.pts-rules{margin-top:10px;border-top:1px dashed #ece9f8;padding-top:12px;}
.pts-rules summary{cursor:pointer;font-size:.84rem;font-weight:800;color:#5b3fd4;list-style:none;display:flex;align-items:center;gap:6px;}
.pts-rules summary::-webkit-details-marker{display:none;}
.pts-rules ul{margin:10px 0 0;padding-left:18px;font-size:.8rem;line-height:2;color:#4a4d66;}
.pts-rules ul b{color:#5b3fd4;}
.pts-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:.8rem;}
.pts-table th,.pts-table td{padding:7px 10px;border-bottom:1px solid #f4f2fb;text-align:left;color:#4a4d66;}
.pts-table th{font-weight:800;color:#171a33;background:#fbfaff;}
.pts-table td b{color:#5b3fd4;}

/* ============================================================
   道具商城 me?tab=shop  /shop 共用 
   ============================================================ */
.shop-page{display:flex;flex-direction:column;gap:14px;}
.shop-bar{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:14px 18px;border-radius:14px;border:1px solid #ece9f8;background:#fff;
}
.shop-bar-pts{display:flex;align-items:baseline;gap:7px;}
.shop-bar-pts b{font-size:1.35rem;font-weight:800;color:#5b3fd4;}
.shop-bar-pts span{font-size:.78rem;color:#6b6d88;}
.shop-owned{font-size:.78rem;font-weight:700;color:#0a6b61;background:#f0fbfa;border:1px solid #d6f2ee;padding:5px 11px;border-radius:100px;}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:12px;}
.shop-item{
  display:flex;flex-direction:column;gap:9px;padding:15px 16px;
  background:#fff;border:1px solid #ece9f8;border-radius:14px;transition:box-shadow .18s,border-color .18s;
}
.shop-item:hover{border-color:#ddd6f7;box-shadow:0 14px 30px -26px rgba(123,77,255,.8);}
.shop-item-top{display:flex;align-items:center;gap:10px;}
.shop-item-ic{
  flex:0 0 38px;width:38px;height:38px;border-radius:11px;
  background:linear-gradient(135deg,#f1ecff,#f0fbfa);color:#5b3fd4;
  display:flex;align-items:center;justify-content:center;font-size:1.05rem;
}
.shop-item-top b{font-size:.9rem;font-weight:800;color:#171a33;}
.shop-item-own{margin-left:auto;font-size:.72rem;font-weight:800;color:#0a6b61;background:#f0fbfa;padding:2px 8px;border-radius:100px;}
.shop-item p{margin:0;font-size:.78rem;line-height:1.7;color:#6b6d88;flex:1;}
.shop-price{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:9px;border-top:1px solid #f4f2fb;}
.shop-price-pt{font-size:.82rem;font-weight:800;color:#5b3fd4;}
.shop-price-pt small{display:block;font-size:.68rem;font-weight:600;color:#a8aac4;margin-top:2px;}
.shop-btns{display:flex;gap:7px;}
.shop-btn{
  height:32px;padding:0 12px;border-radius:9px;border:1px solid transparent;
  font-family:inherit;font-size:.78rem;font-weight:800;cursor:pointer;transition:all .16s;
  display:inline-flex;align-items:center;gap:5px;
}
.shop-btn.pt{background:#5b3fd4;color:#fff;}
.shop-btn.pt:hover:not(:disabled){background:#4a2ec4;}
.shop-btn.cash{background:#fff;border-color:#ddd6f7;color:#5b3fd4;}
.shop-btn.cash:hover:not(:disabled){background:#faf9ff;}
.shop-btn:disabled{background:#f5f4fa;border-color:#f5f4fa;color:#a8aac4;cursor:not-allowed;}
.shop-btn.use{background:#f0fbfa;border-color:#d6f2ee;color:#0a6b61;}
.shop-btn.use:hover:not(:disabled){background:#e2f6f3;}

/* 使用道具的弹 */
.shop-modal-mask{position:fixed;inset:0;background:rgba(20,20,46,.45);display:flex;align-items:center;justify-content:center;z-index:1200;padding:20px;}
.shop-modal{width:100%;max-width:520px;max-height:80vh;overflow:auto;background:#fff;border-radius:16px;padding:20px;}
.shop-modal h3{margin:0 0 4px;font-size:1rem;font-weight:800;color:#171a33;}
.shop-modal p.hint{margin:0 0 14px;font-size:.78rem;color:#6b6d88;}
.shop-target{
  display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:11px;
  border:1px solid #ece9f8;background:#fff;margin-bottom:8px;cursor:pointer;transition:all .15s;
  width:100%;text-align:left;font-family:inherit;
}
.shop-target:hover{border-color:#cdbcfb;background:#faf9ff;}
.shop-target-main{flex:1;min-width:0;}
.shop-target-main b{display:block;font-size:.84rem;font-weight:700;color:#171a33;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.shop-target-main em{display:block;font-style:normal;font-size:.72rem;color:#6b6d88;margin-top:2px;}
.shop-target-tag{flex:0 0 auto;font-size:.7rem;font-weight:800;color:#5b3fd4;background:#f1ecff;padding:2px 8px;border-radius:100px;}
.shop-empty{padding:30px 0;text-align:center;font-size:.84rem;color:#6b6d88;}

@media (max-width:820px){
  /* ⚠️ minmax(0,1fr) 而不 1fr —  .me-body 那段注释，同一个坑 */
  .pts-checkin{grid-template-columns:minmax(0,1fr);}
  .pts-hero{flex-direction:column;align-items:flex-start;}
  .pts-progress{max-width:none;width:100%;}
}
@media (max-width:520px){
  .pts-tiers{grid-template-columns:minmax(0,1fr);}
  .pts-hero-bal{border-left:0;padding-left:0;}
  .pts-day{font-size:.72rem;border-radius:8px;}
  .pts-card{padding:13px 13px;}
  .shop-grid{grid-template-columns:minmax(0,1fr);}
  .pts-task-pt{font-size:.78rem;}
}
.me-vip{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 10px;border-radius:8px;
  background:linear-gradient(135deg,#f7d27a,#e0aa3e);color:#5c3f05;
  font-size:.76rem;font-weight:800;
}
.me-bio{margin:8px 0 0;color:#5b5d78;font-size:.94rem;line-height:1.6;}
.me-head-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:12px;font-size:.86rem;color:#5b5d78;}
.me-head-meta span{display:inline-flex;align-items:center;gap:6px;}
.me-head-meta i{color:#8b8aa8;font-size:.9rem;}
.me-head-meta b{color:#171a33;font-weight:800;}
.me-head-actions{flex-shrink:0;display:flex;gap:10px;padding-bottom:2px;}

/* ---------- 主体 ---------- */
.me-body{display:grid;grid-template-columns:200px minmax(0,1fr);gap:18px;margin-top:18px;align-items:start;}
.me-nav{
  background:#fff;border:1px solid #ece9f8;border-radius:16px;padding:8px;
  display:flex;flex-direction:column;gap:2px;position:sticky;top:76px;
}
.me-nav-item{
  display:flex;align-items:center;gap:12px;width:100%;
  padding:12px 14px;border-radius:11px;border:none;background:none;cursor:pointer;
  color:#3a3d5c;font-size:.93rem;font-weight:600;font-family:inherit;text-align:left;
  transition:background .16s,color .16s;
}
.me-nav-item > i:first-child{font-size:1.06rem;color:#8b8aa8;width:20px;text-align:center;}
.me-nav-item span{flex:1;}
.me-nav-arrow{font-size:.72rem;color:#c9c6dd;transition:transform .16s;}
.me-nav-item:hover{background:#f8f6ff;}
.me-nav-item:hover .me-nav-arrow{transform:translateX(2px);}
.me-nav-item.on{background:#f1ecff;color:#5b3fd4;}
.me-nav-item.on > i:first-child{color:#6a2fe0;}

.me-content{background:#fff;border:1px solid #ece9f8;border-radius:16px;padding:26px 28px 30px;min-height:420px;}
.me-sec-title{
  display:flex;align-items:center;gap:10px;
  font-size:.9rem;font-weight:700;color:#6b6d88;letter-spacing:.3px;margin-bottom:18px;
}
.me-count{font-weight:600;color:#6b6d88;font-size:.82rem;}

/* ---------- 统计 ---------- */
.me-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:28px;}
.me-stat{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:14px 10px;border:1px solid #ece9f8;border-radius:14px;background:#fbfaff;
  cursor:pointer;font-family:inherit;transition:all .18s;
}
.me-stat:hover{border-color:#d9d2fb;background:#f6f3ff;}
.me-stat b{font-size:1.4rem;font-weight:900;color:#171a33;}
.me-stat span{font-size:.82rem;color:#6b6d88;}

/* ---------- 资料字段 ---------- */
.me-fields{margin:0;}
.me-field{display:flex;gap:20px;padding:15px 0;border-bottom:1px solid #f2f0fb;align-items:flex-start;}
.me-field:last-child{border-bottom:none;}
.me-field dt{flex:0 0 150px;font-weight:700;color:#3a3d5c;font-size:.94rem;}
.me-field dd{margin:0;flex:1;color:#171a33;font-size:.94rem;word-break:break-word;}
.me-hint{display:block;margin-top:4px;font-style:normal;font-size:.8rem;color:#6b6d88;}

/* ---------- 表单 ---------- */
.me-form{display:flex;flex-direction:column;gap:16px;}
.me-form-row{display:flex;gap:20px;align-items:center;}
.me-form-row > span{flex:0 0 150px;font-weight:700;color:#3a3d5c;font-size:.94rem;}
.me-form-row .form-input{flex:1;min-width:0;}
.me-radio{display:flex;gap:8px;}
.me-radio-item{
  padding:7px 18px;border-radius:100px;border:1px solid #e4e1f5;background:#fff;
  color:#5b5d78;font-size:.88rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .16s;
}
.me-radio-item.on{background:#f1ecff;border-color:#c9b8ff;color:#5b3fd4;}

/* ---------- 按钮 ---------- */
.me-actions{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap;}
.me-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:11px 24px;border-radius:100px;border:1px solid transparent;
  font-weight:700;font-size:.92rem;text-decoration:none;cursor:pointer;font-family:inherit;transition:all .18s;
}
.me-btn-primary{background:linear-gradient(135deg,#7b4dff,#4f46e5);color:#fff;box-shadow:0 10px 24px -14px rgba(123,77,255,.9);}
.me-btn-primary:hover{transform:translateY(-1px);box-shadow:0 14px 30px -14px rgba(123,77,255,1);}
.me-btn-ghost{background:#fff;border-color:#e4e1f5;color:#3a3d5c;}
.me-btn-ghost:hover{border-color:#c9b8ff;color:#5b3fd4;background:#faf9ff;}
.me-tip{display:flex;align-items:center;gap:6px;margin:18px 0 0;font-size:.84rem;color:#6b6d88;}

/* ---------- 列表 ---------- */
.me-list{display:flex;flex-direction:column;gap:10px;}
.me-item{
  display:flex;gap:12px;align-items:center;padding:16px 18px;
  border:1px solid #ece9f8;border-radius:14px;background:#fff;text-decoration:none;transition:all .18s;
}
.me-item:hover{border-color:#d9d2fb;background:#fdfcff;}
.me-item-main{flex:1;min-width:0;}
.me-item-title{display:flex;align-items:center;gap:8px;font-size:.96rem;font-weight:700;color:#171a33;margin-bottom:6px;}
.me-item-sub{
  font-size:.86rem;color:#6b6d88;line-height:1.6;margin-bottom:8px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.me-item-meta{display:flex;gap:16px;font-size:.8rem;color:#6b6d88;flex-wrap:wrap;align-items:center;}
.me-item-time{margin-left:auto;color:#6b6d88;}
.me-item-kind{flex-shrink:0;padding:3px 10px;border-radius:8px;background:#f1ecff;color:#5b3fd4;font-size:.74rem;font-weight:800;}
.me-item-kind.art{background:#e8faf7;color:#0f8d80;}
.me-item-amount{flex-shrink:0;font-size:1.02rem;font-weight:900;color:#171a33;}
.me-order-status{margin-left:6px;padding:2px 8px;border-radius:6px;background:#f2f0fb;color:#5b5d78;font-size:.72rem;font-weight:700;}
.me-order-status.ok{background:#e8faf7;color:#0f8d80;}

/* ---------- 人物卡片 ---------- */
.me-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.me-person{
  display:flex;gap:12px;align-items:center;padding:14px 16px;
  border:1px solid #ece9f8;border-radius:14px;text-decoration:none;transition:all .18s;
}
.me-person:hover{border-color:#d9d2fb;background:#fdfcff;}
.me-person-avatar{
  width:46px;height:46px;border-radius:12px;overflow:hidden;flex-shrink:0;
  background:linear-gradient(135deg,#7b4dff,#00b5a4);
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:1.1rem;
}
.me-person-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.me-person-main{flex:1;min-width:0;}
.me-person-name{display:flex;align-items:center;font-weight:800;color:#171a33;font-size:.94rem;}
.me-person-bio{margin-top:4px;font-size:.82rem;color:#6b6d88;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.me-person-fans{flex-shrink:0;text-align:center;font-weight:800;color:#171a33;font-size:.92rem;}
.me-person-fans em{display:block;font-style:normal;font-size:.72rem;color:#6b6d88;font-weight:500;}

/* ---------- 空 ---------- */
.me-empty{padding:60px 20px;text-align:center;color:#6b6d88;}
.me-empty-ic{font-size:2.4rem;color:#d9d6ee;margin-bottom:12px;}
.me-empty p{margin:0 0 18px;font-size:.94rem;}
.me-more{margin-top:18px;text-align:center;}

/* ---------- 响应 ---------- */
@media (max-width:900px){
  /* ⚠️ 必须 minmax(0,1fr)，不能写 1fr 
     1fr 等价 minmax(auto,1fr)， auto  *尊重子项的最小内容宽 * — 于是
     横向滚动菜单（内 1380px）把列撑 774px，整个页面横向溢 410px 
     实测：写 1fr  getComputedStyle(.me-body).gridTemplateColumns = "774px" 
     这是「横向滚动容器放 grid/flex 里」的通用坑，另一个常见修法是给子项加 min-width:0 */
  .me-body{grid-template-columns:minmax(0,1fr);}
  /* ⚠️ 横向滚动的菜单必须带 min-width:0 / max-width:100% 
     否则滚动容器会被内容撑宽（实测内 1380px、容 774px、页面溢 410px），
     表现是整页横向滚动而不是菜单内部滚动 
     页签 11 个加 13 个（签到 / 道具商城）后越过了临界点 */
  .me-nav{position:static;flex-direction:row;overflow-x:auto;gap:4px;min-width:0;max-width:100%;
          -webkit-overflow-scrolling:touch;scrollbar-width:thin;}
  .me-nav::-webkit-scrollbar{height:4px;}
  .me-nav::-webkit-scrollbar-thumb{background:#e4e1f5;border-radius:100px;}
  .me-nav-item{width:auto;flex:0 0 auto;white-space:nowrap;padding:10px 14px;}
  .me-nav-arrow{display:none;}
  .me-people{grid-template-columns:1fr;}
}
@media (max-width:767px){
  .me-page{padding:14px 14px 56px;}
  .me-cover{height:150px;border-radius:16px 16px 0 0;}
  .me-head{flex-wrap:wrap;padding:0 18px 18px;gap:14px;border-radius:0 0 16px 16px;}
  .me-avatar-box{margin-top:-30px;}
  .me-head-info{flex:1 1 130px;padding-bottom:0;}
  .me-head-actions{flex:1 1 100%;padding-bottom:0;}
  .me-head-actions .me-btn{width:100%;justify-content:center;}
  .me-avatar{width:96px;height:96px;font-size:2rem;border-width:3px;}
  .me-avatar-btn{width:28px;height:28px;}
  .me-name{font-size:1.3rem;}
  .me-head-meta{gap:14px;font-size:.82rem;}
  .me-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:22px;}
  .me-content{padding:20px 18px 24px;min-height:auto;}
  .me-field,.me-form-row{flex-direction:column;gap:8px;align-items:flex-start;}
  .me-field dt,.me-form-row > span{flex:none;}
  .me-form-row .form-input{width:100%;}
  .me-item{flex-wrap:wrap;}
  .me-item-time{margin-left:0;}
}

/* ============================================================
   v54 · 个人中心：三账户体系（余 / 探金 / 积分  钱包
   金额正负色均 AA 校验 0a6b61（入账，5.4:1） c0392b（出账，5.7:1 
   ============================================================ */

/* ---------- 概览：账户卡 ---------- */
.me-accounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:30px;}
.me-account{position:relative;overflow:hidden;border:1px solid #ece9f8;border-radius:16px;padding:18px 20px 16px;background:#fff;}
.me-account::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#7b4dff,#a78bfa);}
.me-account.tone-gold::before{background:linear-gradient(90deg,#f7d27a,#e0aa3e);}
.me-account.tone-cyan::before{background:linear-gradient(90deg,#00b5a4,#00d6c2);}
.me-account-top{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.me-account-ic{
  width:30px;height:30px;border-radius:9px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:.92rem;
  background:linear-gradient(135deg,#7b4dff,#a78bfa);
}
.tone-gold .me-account-ic{background:linear-gradient(135deg,#f2c14e,#c9902b);}
.tone-cyan .me-account-ic{background:linear-gradient(135deg,#00b5a4,#00d6c2);}
.me-account-name{font-size:.9rem;font-weight:700;color:#3a3d5c;}
.me-account-val{font-size:1.7rem;font-weight:900;color:#171a33;letter-spacing:-.5px;line-height:1.2;}
.me-account-val em{font-style:normal;font-size:.82rem;font-weight:600;color:#6b6d88;margin-left:4px;}
.me-account-desc{margin-top:6px;font-size:.8rem;color:#6b6d88;line-height:1.5;}
.me-account-ops{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
.me-mini-btn{
  padding:6px 14px;border-radius:100px;border:1px solid #e4e1f5;background:#fff;
  color:#3a3d5c;font-size:.82rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .16s;
}
.me-mini-btn:hover{border-color:#c9b8ff;color:#5b3fd4;background:#faf9ff;}
.me-mini-btn.ghost{background:#f6f3ff;border-color:transparent;color:#5b3fd4;}
.me-mini-btn.ghost:hover{background:#efe9ff;}

/* ---------- 概览：快捷操 ---------- */
.me-quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.me-quick-item{
  display:flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 12px;border:1px solid #ece9f8;border-radius:12px;background:#fff;
  color:#3a3d5c;font-size:.9rem;font-weight:700;font-family:inherit;cursor:pointer;
  text-decoration:none;transition:all .16s;
}
.me-quick-item:hover{border-color:#c9b8ff;background:#faf9ff;color:#5b3fd4;}
.me-quick-item i{font-size:1.05rem;color:#7b4dff;}

/* ---------- 钱包：账户总览 ---------- */
.me-wallet-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.me-wcard{
  display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:16px;
  border:1px solid #ece9f8;background:linear-gradient(160deg,#fbfaff,#f6f3ff);
}
.me-wcard.tone-gold{background:linear-gradient(160deg,#fffaf0,#fff5e2);border-color:#f3e2b8;}
.me-wcard.tone-cyan{background:linear-gradient(160deg,#f2fcfb,#e8faf7);border-color:#cfeae6;}
.me-wcard-name{display:flex;align-items:center;gap:6px;font-size:.88rem;font-weight:700;color:#3a3d5c;}
.me-wcard-name i{color:#7b4dff;}
.me-wcard.tone-gold .me-wcard-name i{color:#c9902b;}
.me-wcard.tone-cyan .me-wcard-name i{color:#0a6b61;}
.me-wcard-val{font-size:1.8rem;font-weight:900;color:#171a33;letter-spacing:-.6px;}
.me-wcard-desc{font-size:.78rem;color:#6b6d88;line-height:1.5;}
.me-wallet-ops{display:flex;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap;}
.me-wallet-sum{margin-left:auto;font-size:.82rem;color:#6b6d88;}

/* ---------- 钱包：充 / 提现面板 ---------- */
.me-panel{margin-top:18px;border:1px solid #e4e1f5;border-radius:16px;background:#fbfaff;padding:20px 22px;}
.me-panel-head{display:flex;align-items:center;justify-content:space-between;font-weight:800;color:#171a33;font-size:1rem;margin-bottom:10px;}
.me-panel-x{border:none;background:none;font-size:1.4rem;line-height:1;color:#6b6d88;cursor:pointer;padding:0 4px;font-family:inherit;}
.me-panel-x:hover{color:#171a33;}
.me-panel-tip{margin:0 0 14px;font-size:.84rem;color:#6b6d88;line-height:1.7;}
.me-panel-quick{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.me-panel-chip{
  padding:7px 16px;border-radius:100px;border:1px solid #e4e1f5;background:#fff;
  color:#3a3d5c;font-size:.86rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .16s;
}
.me-panel-chip:hover{border-color:#c9b8ff;}
.me-panel-chip.on{background:#f1ecff;border-color:#c9b8ff;color:#5b3fd4;}
.me-panel-row{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
.me-panel-row > span{flex:0 0 48px;font-weight:700;color:#3a3d5c;font-size:.9rem;}
.me-panel-row .form-input{flex:1;min-width:0;}
.me-panel-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.me-panel-balance{font-size:.84rem;color:#6b6d88;}

/* ---------- 流水金额 / 标签 ---------- */
.me-item-amount em{display:block;font-style:normal;font-size:.72rem;font-weight:500;color:#6b6d88;margin-top:3px;}
.me-item-amount.in{color:#0a6b61;}
.me-item-amount.out{color:#c0392b;}
.me-item-kind.in{background:#e8faf7;color:#0a6b61;}
.me-item-kind.out{background:#fdecea;color:#c0392b;}
.me-tag{padding:2px 8px;border-radius:6px;background:#f6f3ff;color:#5b3fd4;font-size:.74rem;font-weight:700;}
.me-order-status.ok{background:#e8faf7;color:#0a6b61;}

/* ---------- 响应 ---------- */
@media (max-width:900px){
  .me-accounts,.me-wallet-cards{grid-template-columns:1fr;}
  .me-quick{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:767px){
  .me-wallet-ops{gap:10px;}
  .me-wallet-sum{margin-left:0;width:100%;}
  .me-panel{padding:16px 16px;}
  .me-panel-row{flex-direction:column;align-items:flex-start;gap:8px;}
  .me-panel-row > span{flex:none;}
  .me-panel-row .form-input{width:100%;}
}






/* ============================================================
   统一支付弹层（支付宝 / 余额）— .paym-*
   白底弹窗，文字色全部显式声明深色（规避全局深色主题层的 !important 
   对比度：正文 #5b5d78/ 7.0:1、标 #171a33/ 15.9:1（≥AA 
   ============================================================ */
.paym-mask{
  position:fixed;inset:0;z-index:1200;
  background:rgba(16,14,32,.5);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:20px;
  animation:paymFade .18s ease;
}
@keyframes paymFade{from{opacity:0}to{opacity:1}}
.paym-card{
  position:relative;width:100%;max-width:430px;
  background:#fff;border-radius:18px;padding:26px 26px 20px;
  box-shadow:0 30px 70px -30px rgba(16,14,32,.6);
  animation:paymIn .22s cubic-bezier(.2,.8,.3,1);
}
@keyframes paymIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.paym-x{
  position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:10px;
  border:0;background:#f4f2fb;color:#5b5d78;cursor:pointer;font-size:.86rem;
  display:flex;align-items:center;justify-content:center;transition:all .16s;
}
.paym-x:hover{background:#ece8fa;color:#3f2fa8;}
.paym-loading{display:flex;align-items:center;justify-content:center;min-height:200px;}

.paym-head{text-align:center;margin-bottom:16px;}
.paym-kicker{font-size:.76rem;font-weight:700;color:#6a2fe0;letter-spacing:1.4px;}
.paym-title{margin:6px 0 0;font-size:1.16rem;font-weight:800;color:#171a33;}

.paym-amount{
  display:flex;align-items:baseline;justify-content:center;gap:10px;
  padding:16px 0 18px;border-bottom:1px dashed #e8e5f5;margin-bottom:18px;
}
.paym-amount.sm{padding:12px 0 14px;margin-bottom:14px;}
.paym-amount-label{font-size:.84rem;color:#5b5d78;}
.paym-amount-val{font-size:2.1rem;font-weight:900;color:#171a33;letter-spacing:-.6px;}
.paym-amount.sm .paym-amount-val{font-size:1.5rem;}

.paym-methods{display:flex;flex-direction:column;gap:10px;margin-bottom:18px;}
.paym-method{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:13px 14px;border-radius:12px;border:1.5px solid #e8e5f5;background:#fff;
  cursor:pointer;font-family:inherit;transition:all .16s;
}
.paym-method:hover:not(.off){border-color:#c9b8ff;background:#faf9ff;}
.paym-method.on{border-color:#7b4dff;background:#f8f6ff;box-shadow:0 0 0 3px rgba(123,77,255,.1);}
.paym-method.off{opacity:.55;cursor:not-allowed;}
.paym-method-ic{
  width:38px;height:38px;border-radius:11px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:1.15rem;
}
.paym-method-ic.alipay{background:#e8f2ff;color:#1566d1;}
.paym-method-ic.balance{background:#f1ecff;color:#5b3fd4;}
.paym-method-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.paym-method-txt b{font-size:.94rem;font-weight:700;color:#171a33;}
.paym-method-txt em{font-style:normal;font-size:.78rem;color:#5b5d78;}
.paym-radio{
  width:18px;height:18px;border-radius:50%;border:2px solid #d6d3e8;flex-shrink:0;transition:all .16s;
}
.paym-radio.on{border-color:#7b4dff;background:#7b4dff;box-shadow:inset 0 0 0 3px #fff;}

.paym-err{
  display:flex;align-items:center;gap:8px;
  padding:10px 12px;border-radius:10px;background:#fdecec;color:#a3231e;
  font-size:.84rem;margin-bottom:14px;
}
.paym-actions{display:flex;flex-direction:column;gap:9px;}
.paym-btn{
  width:100%;padding:13px 0;border-radius:12px;border:1.5px solid transparent;
  font-family:inherit;font-size:.95rem;font-weight:700;cursor:pointer;transition:all .16s;
}
.paym-btn:disabled{opacity:.6;cursor:not-allowed;}
.paym-btn-primary{background:linear-gradient(135deg,#7b4dff,#4f46e5);color:#fff;box-shadow:0 12px 26px -14px rgba(123,77,255,.9);}
.paym-btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 16px 32px -14px rgba(123,77,255,1);}
.paym-btn-ghost{background:#fff;border-color:#e4e1f5;color:#3a3d5c;}
.paym-btn-ghost:hover:not(:disabled){border-color:#c9b8ff;background:#faf9ff;color:#5b3fd4;}
.paym-tip{margin:12px 0 0;text-align:center;font-size:.76rem;color:#5b5d78;}
.paym-tip i{color:#2f855a;margin-right:3px;}

.paym-waiting{display:flex;align-items:center;gap:14px;padding:18px;border-radius:14px;background:#faf9ff;border:1px solid #ece9f8;margin-bottom:16px;}
.paym-spin{
  width:30px;height:30px;border-radius:50%;flex-shrink:0;
  border:3px solid #ddd6f7;border-top-color:#7b4dff;animation:paymSpin .8s linear infinite;
}
@keyframes paymSpin{to{transform:rotate(360deg)}}
.paym-waiting-txt{display:flex;flex-direction:column;gap:3px;}
.paym-waiting-txt b{font-size:.9rem;color:#171a33;}
.paym-waiting-txt em{font-style:normal;font-size:.78rem;color:#5b5d78;line-height:1.5;}
.paym-dev{
  width:100%;margin-top:10px;padding:10px 0;border-radius:10px;
  border:1px dashed #d9a13a;background:#fffaf0;color:#8a5a00;
  font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer;
}
.paym-dev:hover{background:#fff4dd;}
.paym-link{
  width:100%;margin-top:10px;border:0;background:none;color:#5b5d78;
  font-family:inherit;font-size:.82rem;cursor:pointer;text-decoration:underline;
}
.paym-link:hover{color:#a3231e;}

.paym-ok{text-align:center;padding:8px 0 20px;}
.paym-ok-ic{
  width:62px;height:62px;border-radius:50%;margin:0 auto 14px;
  display:flex;align-items:center;justify-content:center;font-size:1.7rem;
  background:linear-gradient(135deg,#22c55e,#15803d);color:#fff;
  box-shadow:0 16px 32px -18px rgba(21,128,61,.9);
}
.paym-ok.fail .paym-ok-ic{background:linear-gradient(135deg,#f0a23c,#c2410c);box-shadow:0 16px 32px -18px rgba(194,65,12,.85);}
.paym-ok-title{margin:0;font-size:1.24rem;font-weight:800;color:#171a33;}
.paym-ok-sub{margin:7px 0 0;font-size:.86rem;color:#5b5d78;line-height:1.6;}
.paym-sum{margin:0 0 20px;border-top:1px dashed #e8e5f5;}
.paym-sum > div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px dashed #e8e5f5;}
.paym-sum dt{font-size:.82rem;color:#5b5d78;flex-shrink:0;}
.paym-sum dd{margin:0;font-size:.86rem;color:#171a33;text-align:right;word-break:break-all;}
.paym-sum dd.strong{font-weight:800;font-size:1rem;}
.paym-sum dd.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;}

@media (max-width:767px){
  .paym-mask{padding:0;align-items:flex-end;}
  .paym-card{max-width:none;border-radius:18px 18px 0 0;padding:22px 18px 24px;animation:paymUp .24s cubic-bezier(.2,.8,.3,1);}
  @keyframes paymUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
  .paym-amount-val{font-size:1.8rem;}
}

/* ============================================================
   支付结果页（/pay/result）— .payr-*
   ============================================================ */
.payr-page{max-width:560px;margin:0 auto;padding:56px 22px 80px;text-align:center;}
.payr-card{background:#fff;border:1px solid #ece9f8;border-radius:20px;padding:38px 30px;box-shadow:0 24px 60px -34px rgba(20,20,46,.35);}
.payr-ic{
  width:74px;height:74px;border-radius:50%;margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;font-size:2rem;color:#fff;
}
.payr-ic.ok{background:linear-gradient(135deg,#22c55e,#15803d);box-shadow:0 18px 36px -20px rgba(21,128,61,.9);}
.payr-ic.pending{background:linear-gradient(135deg,#7b4dff,#4f46e5);box-shadow:0 18px 36px -20px rgba(123,77,255,.9);}
.payr-ic.fail{background:linear-gradient(135deg,#f0a23c,#c2410c);box-shadow:0 18px 36px -20px rgba(194,65,12,.85);}
.payr-title{margin:0 0 8px;font-size:1.5rem;font-weight:900;color:#171a33;letter-spacing:-.3px;}
.payr-sub{margin:0 auto 24px;max-width:400px;font-size:.92rem;color:#5b5d78;line-height:1.7;}
.payr-order{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:10px;background:#f8f6ff;color:#4b3fa8;font-size:.82rem;margin-bottom:24px;}
.payr-order b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;}
.payr-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.payr-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:12px 26px;border-radius:12px;font-family:inherit;font-size:.92rem;font-weight:700;cursor:pointer;border:1.5px solid transparent;text-decoration:none;transition:all .16s;}
.payr-btn-primary{background:linear-gradient(135deg,#7b4dff,#4f46e5);color:#fff;box-shadow:0 12px 26px -14px rgba(123,77,255,.9);}
.payr-btn-primary:hover{transform:translateY(-1px);color:#fff;}
.payr-btn-ghost{background:#fff;border-color:#e4e1f5;color:#3a3d5c;}
.payr-btn-ghost:hover{border-color:#c9b8ff;color:#5b3fd4;background:#faf9ff;}
@media (max-width:767px){
  .payr-page{padding:28px 14px 60px;}
  .payr-card{padding:28px 20px;border-radius:16px;}
  .payr-title{font-size:1.3rem;}
  .payr-actions{flex-direction:column;}
  .payr-btn{width:100%;}
}

/* ============================================================
   补齐 Bootstrap 显示工具类（项目未加 Bootstrap CSS，这些类原本完全失效 
   — 侧边 / 头像文字 / 统计条在手机上未被隐藏，导致横向溢出
   ============================================================ */
@media (max-width:767px){
  .d-none{display:none !important;}
  .d-md-block{display:none !important;}
  .d-md-flex{display:none !important;}
}
@media (max-width:991px){
  .d-lg-block{display:none !important;}
}
/* 窄屏顶栏：只保留「搜 / 发布 / 会员 / 消息 / 头像」等核心控件 */
@media (max-width:767px){
  .tj-header-inner{gap:8px !important;padding:0 10px !important;}
  .tj-header-right{gap:8px !important;flex-shrink:0;}
  .tj-header-right .btn-ghost,
  .tj-header-right .btn-gold{padding-left:12px !important;padding-right:12px !important;font-size:.82rem !important;}
  .tj-avatar-wrap{gap:0 !important;}
}

/* 窄屏顶栏（≤640px）：logo 只留图标、导航可横滑、发布按钮收成图 — 消除横向溢出 */
@media (max-width:640px){
  .tj-header-inner{gap:6px !important;padding:0 10px !important;}
  .tj-logo{gap:6px !important;padding-right:6px !important;border-right:none !important;}
  .tj-logo-text{display:none !important;}
  .tj-logo-icon{width:34px !important;height:34px !important;font-size:1.1rem !important;}
  .tj-nav{min-width:0 !important;flex:1 1 auto !important;overflow-x:auto !important;}
  .tj-header-right{flex-shrink:0 !important;gap:6px !important;}
  .tj-nav-publish-btn{font-size:0 !important;padding:0 !important;width:40px !important;justify-content:center !important;}
  .tj-nav-publish-btn i{font-size:1.05rem !important;}
  .tj-header-right .tj-icon-btn{width:36px !important;height:36px !important;}
  .tj-header-right .btn-ghost,
  .tj-header-right .btn-gold{padding-left:10px !important;padding-right:10px !important;font-size:.8rem !important;}
}

/* 窄屏收尾：广场主列可收缩 wb-imgs  420px 上限会撑破容器）、专栏排序条可横 */
@media (max-width:767px){
  .wb-imgs{max-width:100% !important;}
  .wb-feed,.wb-top-bar,.wb-item-wrap,.wb-item{max-width:100%;min-width:0;}
  .sp-sort{max-width:100%;overflow-x:auto;scrollbar-width:none;justify-content:flex-start;}
  .sp-sort::-webkit-scrollbar{display:none;}
}

/* ============================================================
   会员频道 v2 026-09-16 升级 
    全出血布局：背景铺满视口，内容容器 1400px（与站内频道一致）
    深色区标题修复：.tj-layout 下有亮色主题层强 h1-h4  #1a1a2e!important 
       -webkit-text-fill-color 会被子元素继  深色 Hero 里的标题彻底隐形 
      这里用更高特异度覆写回白 渐变（必须同时重 text-fill-color） 
    新增三段：会员专享内容预 / 免费 vs 会员对比 / 这几类人最适合
   ============================================================ */

/* ---------- 全出血布局 ---------- */
.tj-layout-bleed{padding:0 !important;max-width:none !important;margin-top:0 !important;display:block !important;}
.tj-layout-bleed .tj-main{padding:0 !important;margin:0 !important;max-width:none !important;}
.mship-wrap{width:100%;max-width:1400px;margin:0 auto;padding:0 24px;box-sizing:border-box;}
.mship-wrap-narrow{max-width:960px;}

/* ----------  深色区标题恢复可 ---------- */
.tj-layout .mship-hero .lp2-h1,
.tj-layout .mship-hero h1,
.tj-layout .mship-plans-wrap .lp2-h2,
.tj-layout .mship-plans-wrap h2{
  color:#fff !important;-webkit-text-fill-color:#fff !important;
  background:none !important;background-image:none !important;
}
/* 渐变文字（仅 em）需单独 text-fill-color 还回去，否则渐变被填成纯 */
.tj-layout .mship-hero .lp2-h1 em{
  background:linear-gradient(110deg,#ddd6ff,#a78bfa 40%,#2ee6d0) !important;
  -webkit-background-clip:text !important;background-clip:text !important;
  -webkit-text-fill-color:transparent !important;color:transparent !important;
}
/* 深色区内的浅色辅助文字也一并兜底（防继承到亮色主题层的深色 */
.tj-layout .mship-hero .lp2-sub,
.tj-layout .mship-plans-wrap .lp2-sub2{color:#b6b3d4 !important;}
.tj-layout .mship-hero .lp2-badge{color:#ddd6ff !important;}
.lp2-h2-light{color:#fff;}

/* ---------- Hero 增强 ---------- */
.mship-hero-inner{max-width:1240px;}
.mship-hero-sub{max-width:720px;}
.mship-gold{color:#f7d27a;font-weight:800;}
.mship-trust{
  display:flex;justify-content:center;flex-wrap:wrap;gap:10px 26px;
  margin:26px 0 0;padding:0;list-style:none;
}
.mship-trust li{
  display:inline-flex;align-items:center;gap:7px;
  font-size:.86rem;color:#c9c5e6;
}
.mship-trust li i{color:#2ee6d0;font-size:1rem;}
.mship-hero-stats{margin-top:34px;}
.mship-stat-accent .lp2-stat-n{color:#2ee6d0;}

/* ---------- 会员专享内容预览 ---------- */
.mship-peek{padding:84px 0;background:#fff;border-bottom:1px solid #f2f0fb;}
.mship-peek-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:16px;
}
.mship-peek-card{
  position:relative;overflow:hidden;
  border:1px solid #ece9f8;border-radius:16px;background:#fff;
  padding:18px 18px 20px;
  box-shadow:0 4px 16px -12px rgba(20,20,46,.4);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.mship-peek-card:hover{transform:translateY(-3px);border-color:#ddd6f7;box-shadow:0 18px 34px -22px rgba(123,77,255,.65);}
.mship-peek-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;}
.mship-peek-tag{
  font-size:.72rem;font-weight:800;padding:3px 9px;border-radius:7px;
}
.mship-peek-tag.t-purple{background:#f1ecff;color:#5b3fd4;}
.mship-peek-tag.t-cyan{background:#e2f7f4;color:#0a6b61;}
.mship-peek-lock{
  display:inline-flex;align-items:center;gap:4px;
  font-size:.72rem;font-weight:700;color:#6f6519;
}
.mship-peek-lock i{font-size:.7rem;}
.mship-peek-title{font-size:.95rem;font-weight:700;color:#171a33;line-height:1.5;margin-bottom:8px;}
.mship-peek-meta{font-size:.78rem;color:#5b5d78;line-height:1.5;}
.mship-peek-blur{
  position:absolute;left:0;right:0;bottom:0;height:42px;
  background:linear-gradient(180deg,rgba(255,255,255,0),#fff 72%);
  display:flex;align-items:flex-end;justify-content:center;
  padding-bottom:8px;color:#b7aee0;font-size:.8rem;pointer-events:none;
}

/* ---------- 权益网格   + 量化徽标 ---------- */
.mship-perks{padding:84px 0;background:linear-gradient(180deg,#faf9ff,#fff);}
.mship-perk-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
.mship-perk-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.mship-perk-badge{
  font-style:normal;font-size:.68rem;font-weight:800;
  padding:2px 7px;border-radius:6px;white-space:nowrap;
}
.mship-perk-badge.t-purple{background:#f1ecff;color:#5b3fd4;}
.mship-perk-badge.t-cyan{background:#e2f7f4;color:#0a6b61;}

/* ---------- 免费 vs 会员 对比 ---------- */
.mship-cmp{padding:84px 0;background:#fff;}
.mship-cmp-table{
  border:1px solid #ece9f8;border-radius:18px;overflow:hidden;background:#fff;
  box-shadow:0 10px 34px -26px rgba(20,20,46,.5);
}
.mship-cmp-head,
.mship-cmp-row{
  display:grid;grid-template-columns:minmax(0,1fr) 190px 210px;align-items:center;
}
.mship-cmp-head{
  background:linear-gradient(135deg,#f6f3ff,#f0fbff);
  border-bottom:1px solid #ece9f8;
  font-size:.84rem;font-weight:800;
}
.mship-cmp-head .c-label{padding:15px 22px;color:#5b5d78;}
.mship-cmp-head .c-free,.mship-cmp-head .c-vip{padding:15px 12px;text-align:center;}
.mship-cmp-head .c-free{color:#5b5d78;}
.mship-cmp-head .c-vip{color:#5b3fd4;}
.mship-cmp-head .c-vip i{margin-right:4px;}
.mship-cmp-row{border-bottom:1px solid #f4f2fb;transition:background .15s;}
.mship-cmp-row:last-child{border-bottom:0;}
.mship-cmp-row:hover{background:#faf9ff;}
.mship-cmp-row .c-label{padding:14px 22px;font-size:.9rem;color:#2b2e4a;}
.mship-cmp-row .c-free,.mship-cmp-row .c-vip{
  padding:14px 12px;text-align:center;font-size:.86rem;
}
.mship-cmp-row .c-free{color:#5b5d78;}
.mship-cmp-row .c-vip{color:#171a33;font-weight:700;background:rgba(123,77,255,.04);}
.c-yes{color:#0a6b61;font-size:1.05rem;}
.c-no{color:#8a8aa3;font-size:1.05rem;}
.mship-cmp-note{
  margin:16px 0 0;text-align:center;font-size:.8rem;color:#5b5d78;
}
.mship-cmp-note i{margin-right:5px;color:#6a2fe0;}

/* ---------- 套餐 ---------- */
.mship-plans-wrap{padding:88px 0 92px;}
.lp2-plan-daily{
  font-size:.82rem;color:#b0add0;margin:2px 0 0;
}
.lp2-plan-daily b{color:#2ee6d0;font-weight:800;}
.lp2-plan-hot .lp2-plan-daily{color:#6b4a12;}
.lp2-plan-hot .lp2-plan-daily b{color:#5c3f05;}
.mship-plan-trust{
  display:flex;justify-content:center;flex-wrap:wrap;gap:10px 26px;
  margin:30px 0 0;padding:0;list-style:none;
}
.mship-plan-trust li{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;color:#b6b3d4 !important;}
.mship-plan-trust li i{color:#2ee6d0;}
.mship-after{color:#a9a6c8 !important;}

/* ---------- 这几类人最适合 ---------- */
.mship-who{padding:84px 0;background:linear-gradient(180deg,#faf9ff,#f4f1ff);}
.mship-who-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.mship-who-card{
  background:#fff;border:1px solid #ece9f8;border-radius:18px;
  padding:26px 24px 22px;display:flex;flex-direction:column;
  box-shadow:0 6px 20px -16px rgba(20,20,46,.5);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.mship-who-card:hover{transform:translateY(-3px);border-color:#ddd6f7;box-shadow:0 20px 40px -26px rgba(123,77,255,.7);}
.mship-who-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.mship-who-ic{
  width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;
}
.mship-who-stage{font-size:.74rem;font-weight:800;padding:3px 10px;border-radius:100px;}
.mship-who-stage.t-purple{background:#f1ecff;color:#5b3fd4;}
.mship-who-stage.t-cyan{background:#e2f7f4;color:#0a6b61;}
.mship-who-name{font-size:1.06rem;font-weight:800;color:#171a33;margin-bottom:8px;}
.mship-who-desc{margin:0 0 18px;font-size:.9rem;line-height:1.7;color:#5b5d78;flex:1;}
.mship-who-link{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.88rem;font-weight:700;color:#5b3fd4;text-decoration:none;
}
.mship-who-link:hover{color:#6a2fe0;gap:9px;}
.mship-who-cta{display:flex;justify-content:center;margin-top:34px;}

/* ---------- FAQ / 历史 ---------- */
.mship-faq{padding:84px 0 96px;background:#fff;}
.mship-legacy-wrap{max-width:960px;padding-top:26px;padding-bottom:0;}

/* ---------- 响应 ---------- */
@media (max-width:1199px){
  .mship-perk-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .mship-peek-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .mship-who-grid{grid-template-columns:1fr;gap:14px;}
}
@media (max-width:991px){
  .mship-peek-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .mship-cmp-head,.mship-cmp-row{grid-template-columns:minmax(0,1fr) 130px 150px;}
  .mship-cmp-head .c-label,.mship-cmp-row .c-label{padding-left:16px;padding-right:12px;}
}
@media (max-width:767px){
  .mship-wrap{padding:0 16px;}
  .mship-peek,.mship-perks,.mship-cmp,.mship-who{padding:56px 0;}
  .mship-plans-wrap{padding:60px 0 66px;}
  .mship-faq{padding:52px 0 66px;}
  .mship-hero{padding:52px 18px 48px;}
  .mship-trust,.mship-plan-trust{gap:8px 16px;}
  .mship-trust li,.mship-plan-trust li{font-size:.8rem;}
  .mship-peek-grid{grid-template-columns:1fr;}
  .mship-cmp-head,.mship-cmp-row{grid-template-columns:minmax(0,1fr) 92px 104px;}
  .mship-cmp-head .c-label,.mship-cmp-row .c-label{font-size:.84rem;padding:12px;}
  .mship-cmp-row .c-free,.mship-cmp-row .c-vip{font-size:.78rem;padding:12px 6px;}
}
@media (max-width:480px){
  .mship-perk-grid{grid-template-columns:1fr;}
  .mship-cmp-head,.mship-cmp-row{grid-template-columns:minmax(0,1fr) 76px 86px;}
  .mship-cmp-row .c-label{font-size:.8rem;}
}

/* ---------- 会员 v2 · 修正 026-09-16 ----------
    亮色主题层有 `.tj-layout p{color:#4a4d66 !important}`（特异度 0,1,1），
      单用 .mship-after 这类单类选择器压不过  深色区必须用 (0,2,1) 以上的选择 
    .mship-perk-desc 原色 #7b7d96 在白底仅 4.03:1，未 AA */
.tj-layout .mship-hero p,
.tj-layout .mship-plans-wrap p{color:#b6b3d4 !important;}
.tj-layout .mship-plans-wrap .mship-after{color:#a9a6c8 !important;}
.mship-perk-desc{color:#5f6178;}

/* ---------- 会员 v2 · 比例微调 ----------
   全出血区块内，卡片区收窄到舒适阅读宽度（避免 1400 下卡片过于扁平、右侧大量留白） */
.mship-plans-wrap .lp2-plans{max-width:1080px;margin-left:auto;margin-right:auto;}
.mship-who-grid{max-width:1200px;margin-left:auto;margin-right:auto;}
.mship-cmp-table{max-width:1200px;margin-left:auto;margin-right:auto;}
@media (max-width:767px){
  .mship-plans-wrap .lp2-plans,.mship-who-grid,.mship-cmp-table{max-width:none;}
}

/* ============================================================
   顶栏右侧 · 会员入口 / 头像 / 身份 026-09-17 重做 
   原问题： 会员图标是裸金色轮廓，无容器、无状态区 
           头像被主题层 height:40px!important 拉成 32×40 椭圆
           头像忽略 user.avatar，永远只显示首字 
           等级 10.4px 浅金文字，白底上仅约 2.6:1
   ============================================================ */

/* ---------- 会员入口 0px 高度，与右侧其它控件对齐 ---------- */
.tj-header-right .tj-member-entry{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:40px !important;min-height:40px !important;max-height:40px !important;
  padding:0 11px;border-radius:12px;
  background:linear-gradient(135deg,#fff7e3,#ffe9b8);
  border:1px solid #f0d894;
  color:#8a6119 !important;                 /* 深金 / 淡金  .1:1 */
  font-size:.88rem;font-weight:800;text-decoration:none;
  position:relative;flex-shrink:0;
  transition:background .18s, border-color .18s, transform .18s;
}
.tj-header-right .tj-member-entry:hover{
  background:linear-gradient(135deg,#ffefc9,#ffdf95);border-color:#e3c069;
  transform:translateY(-1px);color:#7a5410 !important;text-decoration:none;
}
.tj-header-right .tj-member-entry i{font-size:1.02rem;}
.tj-header-right .tj-member-entry .txt{display:none;white-space:nowrap;}

/* 已开通会员：金色实底（金底配深棕，绝不用白字  对勾角标 */
.tj-header-right .tj-member-entry.is-vip{
  background:linear-gradient(135deg,#f8d97e,#dda436);
  border-color:#cfa347;color:#5c3f05 !important;
  box-shadow:0 6px 16px -8px rgba(217,164,54,.9);
}
.tj-header-right .tj-member-entry.is-vip:hover{background:linear-gradient(135deg,#fbe08f,#d69b2c);color:#4a3200 !important;}
.tj-header-right .tj-member-entry.is-vip::after{
  content:'\2713';
  position:absolute;right:-4px;bottom:-4px;
  width:16px;height:16px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#0a6b61;color:#fff;font-size:.6rem;font-weight:900;line-height:1;
  border:2px solid #fff;box-shadow:0 2px 6px -2px rgba(10,107,97,.8);
}

/* ---------- 头像：修正被压扁 + 支持真实头像 ---------- */
.tj-header-right .tj-avatar,
.tj-header-right .tj-avatar-wrap .tj-avatar{
  width:40px !important;height:40px !important;min-width:40px;
  border-radius:50% !important;
  border:2px solid #e6e3f5 !important;
  object-fit:cover !important;
  flex:0 0 auto;
}
/* 首字母占位（仅在无真实头像时出现 */
.tj-avatar-txt{
  display:inline-flex;align-items:center;justify-content:center;
  font-size:1rem;font-weight:800;line-height:1;
  background:linear-gradient(135deg,#7b4dff,#00b5a4) !important;
  color:#fff !important;-webkit-text-fill-color:#fff;
}
/* 会员头像加金色描边环，身份一眼可 */
.tj-avatar-wrap.is-vip .tj-avatar{
  border-color:#e8c56a !important;
  box-shadow:0 0 0 2px rgba(232,197,106,.3);
}

/* ---------- 头像右侧的昵 / 身份 ---------- */
.tj-avatar-wrap{
  gap:9px !important;padding:3px 8px 3px 4px !important;border-radius:100px !important;
  transition:background .18s !important;
}
.tj-avatar-wrap:hover{background:#f5f2ff !important;}
.tj-avatar-info{display:flex;flex-direction:column;gap:2px;min-width:0;line-height:1.2 !important;}
.tj-avatar-info .name{
  font-size:.84rem !important;font-weight:700 !important;
  color:#1a1a2e !important;max-width:120px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
/* 等级改成小胶囊：深金 / 淡金  .1:1，比原来的浅金小字可读得 */
.tj-avatar-info .level{
  display:inline-flex;align-items:center;align-self:flex-start;
  padding:1px 7px;border-radius:100px;
  background:#fdf6e3;color:#8a6119 !important;
  font-size:.64rem !important;font-weight:700 !important;letter-spacing:.2px;
}
.tj-avatar-info .level:empty{display:none;}
.tj-avatar-caret{font-size:.58rem !important;color:#9b98bd !important;margin-left:1px;transition:transform .18s;}
.tj-avatar-wrap[aria-expanded="true"] .tj-avatar-caret{transform:rotate(180deg);}

/* 宽屏（≥1600px）顶栏有富余空间时，会员入口补上文字 */
@media (min-width:1600px){
  .tj-header-right .tj-member-entry{padding:0 14px;}
  .tj-header-right .tj-member-entry .txt{display:inline;}
}

/* ============================================================
   人脉 v2 026-09-17 
   视觉令牌与教程频道一致：主紫 #7b4dff /  #00b5a4 / 标题 #171a33
   卡片 14px 圆角 + #eef0f6 描边 + 紫调阴影；筛 chips 选中态用实紫底白字（4.83:1 
   注意：项目有亮色主题层用 !important 强制 p/h 颜色，深色文字需显式声明
   ============================================================ */

.contacts-page{width:100%;padding:0 0 70px;}
.ct-wrap{width:100%;max-width:1400px;margin:0 auto;padding:0 24px;box-sizing:border-box;}

/* ---------- 页头 ---------- */
.ct-hero{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;
  padding:26px 0 20px;
}
.ct-hero-main{min-width:0;}
.ct-hero-title{margin:0 0 6px;font-size:1.7rem;font-weight:900;color:#171a33;letter-spacing:-.5px;}
.ct-hero-sub{margin:0;font-size:.92rem;color:#5b5d78;}
.ct-hero-side{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.ct-quota{
  min-width:180px;padding:10px 14px;border-radius:14px;
  background:#fff;border:1px solid #ece9f8;box-shadow:0 4px 14px -10px rgba(123,77,255,.5);
}
.ct-quota-line{display:flex;align-items:center;justify-content:space-between;font-size:.8rem;color:#5b5d78;}
.ct-quota-line b{font-size:.92rem;font-weight:800;color:#171a33;}
.ct-quota-bar{height:5px;border-radius:100px;background:#f1eefb;overflow:hidden;margin:7px 0 5px;}
.ct-quota-bar i{display:block;height:100%;border-radius:100px;background:linear-gradient(90deg,#7b4dff,#00b5a4);transition:width .3s;}
.ct-quota-tip{font-size:.72rem;color:#6b6d88;}

.ct-btn-main{
  display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 18px;border-radius:12px;
  border:0;background:linear-gradient(135deg,#7b4dff,#4f46e5);color:#fff;
  font-family:inherit;font-size:.9rem;font-weight:700;cursor:pointer;
  box-shadow:0 10px 22px -12px rgba(123,77,255,.9);transition:all .18s;
}
.ct-btn-main:hover{transform:translateY(-1px);box-shadow:0 14px 28px -12px rgba(123,77,255,1);}
.ct-btn-ghost{
  display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 16px;border-radius:12px;
  border:1px solid #e4e1f5;background:#fff;color:#3a3d5c;
  font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .18s;text-decoration:none;
}
.ct-btn-ghost:hover{border-color:#c9b8ff;background:#faf9ff;color:#5b3fd4;}
.ct-btn-ghost:disabled{opacity:.6;cursor:not-allowed;}

/* ---------- 搜索 ---------- */
.ct-search-row{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
.ct-search-box{
  position:relative;flex:1;min-width:0;display:flex;align-items:center;
  height:46px;border-radius:14px;background:#fff;border:1.5px solid #ece9f8;
  transition:border-color .18s, box-shadow .18s;
}
.ct-search-box:focus-within{border-color:#b9a5ff;box-shadow:0 0 0 4px rgba(123,77,255,.1);}
.ct-search-box > i{position:absolute;left:15px;color:#6b6d88;font-size:1rem;}
.ct-search-box input{
  flex:1;min-width:0;height:100%;border:0;background:transparent;outline:none;
  padding:0 40px 0 42px;font-family:inherit;font-size:.94rem;color:#171a33;
}
.ct-search-box input::placeholder{color:#6b6d88;}
.ct-search-clear{
  position:absolute;right:10px;width:26px;height:26px;border-radius:8px;border:0;
  background:#f4f2fb;color:#5b5d78;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.74rem;
}
.ct-search-clear:hover{background:#ece8fa;color:#3f2fa8;}

/* ---------- 筛选区 ---------- */

/* ----------   结果」的候选项 026-10-01 ---------
   行业 / 地域改为「全量分类」后，绝大多数选项当前 0 人 
   这些项必须仍然可见（用户才知道平台支持哪些分类、也能主动去筛） 
   但要弱化，避免一屏全是同等重量的按钮 
   弱化不等于低对比度：#6b6d88 on #fff  4.97:1，仍 AA */
/* 选中态优先于 0 结果态（同特异度，靠这条把顺序固定下来） */
/* ----------   结果」的候选项 026-10-01 ---------
   行业 / 地域改为「全量分类」后，绝大多数选项当前 0 人 
   这些项必须仍然可见（用户才知道平台支持哪些分类、也能主动去筛） 
   但要弱化，避免一屏全是同等重量的按钮 
   弱化不等于低对比度：#6b6d88 on #fff  4.97:1，仍 AA */
/* 选中态优先于 0 结果态（同特异度，靠这条把顺序固定下来） */

/* ---------- 主体两列 ---------- */
.ct-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start;}
.ct-main{min-width:0;}
.ct-main-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.ct-count{font-size:.86rem;color:#5b5d78;}
.ct-count b{color:#171a33;font-weight:800;}
.ct-active-filters{display:flex;gap:6px;flex-wrap:wrap;}
.ct-tag{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 10px;border-radius:100px;border:1px solid #ddd6f7;background:#f8f6ff;
  color:#5b3fd4;font-family:inherit;font-size:.76rem;font-weight:600;cursor:pointer;
}
.ct-tag:hover{background:#f1ecff;}
.ct-tag i{font-size:.66rem;}

/* ---------- 名片 ---------- */
.ct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;}
.ctc-card{
  position:relative;display:flex;flex-direction:column;
  background:#fff;border:1px solid #eef0f6;border-radius:14px;
  padding:18px 18px 16px;overflow:hidden;
  box-shadow:0 2px 10px -8px rgba(123,77,255,.55);
  transition:transform .2s, box-shadow .2s, border-color .2s;
}
.ctc-card:hover{transform:translateY(-3px);border-color:#ddd6f7;box-shadow:0 18px 34px -22px rgba(123,77,255,.85);}
/* 名片顶部渐变细带（名片感 */
.ctc-band{
  position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,#7b4dff,#00b5a4);
  opacity:.9;
}
.ctc-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;}
.ctc-avatar{
  width:52px;height:52px;border-radius:50%;flex:0 0 auto;object-fit:cover;
  border:2px solid #ece9f8;
}
.ctc-avatar-txt{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#7b4dff,#00857a) !important;color:#fff !important;
  -webkit-text-fill-color:#fff;font-size:1.2rem;font-weight:800;
}
.ctc-avatar.vip{border-color:#e8c56a;box-shadow:0 0 0 2px rgba(232,197,106,.3);}
.ctc-id{flex:1;min-width:0;}
.ctc-name{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-size:1rem;font-weight:800;color:#171a33;
}
.ctc-name > span{flex:0 0 auto;}
.ctc-vip{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:6px;
  background:linear-gradient(135deg,#f7d27a,#dda436);color:#5c3f05 !important;
  font-size:.62rem;
}
.ctc-level{
  padding:1px 7px;border-radius:100px;background:#f1ecff;color:#5b3fd4 !important;
  font-size:.66rem;font-weight:700;
}
.ctc-pos{
  margin-top:5px;font-size:.82rem;color:#5b5d78;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.ctc-pos b{color:#2b2e4a;font-weight:700;}
.ctc-fav{
  flex:0 0 auto;width:30px;height:30px;border-radius:9px;border:1px solid #ece9f8;background:#fff;
  color:#8b8aa8;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.86rem;
  transition:all .16s;
}
.ctc-fav:hover{border-color:#c9b8ff;color:#5b3fd4;background:#faf9ff;}
.ctc-fav.on{background:#f8f6ff;border-color:#ddd6f7;color:#7b4dff;}

.ctc-brand{
  display:inline-flex;align-items:center;gap:6px;align-self:flex-start;
  padding:3px 10px;border-radius:8px;margin-bottom:9px;
  background:#f8f6ff;color:#5b3fd4 !important;font-size:.76rem;font-weight:700;
}
.ctc-bio{
  margin:0 0 12px;font-size:.86rem;line-height:1.65;color:#5b5d78;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  flex:1;
}
.ctc-meta{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding-top:11px;border-top:1px solid #f4f2fb;margin-bottom:12px;
  font-size:.78rem;color:#6b6d88;
}
.ctc-meta i{margin-right:3px;}
.ctc-region{display:inline-flex;align-items:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* ---------- 名片卡片上的「所属行业」（2026-10-01 ---------
   行业和「地域」同属分类属性，放同一行（meta 行左侧）便于扫读 
   ⚠️ 刻意用中性灰药丸而不是彩色：一屏十几张卡，彩色药丸会立刻把版式花掉 
   对比度：#4a4d66 on #f5f4fa  7.5:1，远 AA */
.ctc-meta-left{display:inline-flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap;}
.ctc-industry{
  display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;
  padding:2px 8px;border-radius:7px;background:#f5f4fa;color:#4a4d66;
  font-weight:700;white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis;
}
/* 行业名可能很长（「政务公共服务」）+ 地域也长  允许 meta 行换行，别把「下载数」挤出卡 
   ⚠️  .ctc-card 提升特异度：本块位置 .ctc-meta 定义之前，同特异度会被后面的规则盖掉 */
.ctc-card .ctc-meta{flex-wrap:wrap;}
.ctc-dl{display:inline-flex;align-items:center;flex:0 0 auto;}
.ctc-actions{display:flex;gap:9px;}
.ctc-btn{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;
  height:36px;border-radius:11px;border:1px solid transparent;
  font-family:inherit;font-size:.84rem;font-weight:700;cursor:pointer;
  text-decoration:none;transition:all .16s;
}
.ctc-btn-ghost{background:#fff;border-color:#e4e1f5;color:#3a3d5c;}
.ctc-btn-ghost:hover{border-color:#c9b8ff;background:#faf9ff;color:#5b3fd4;}
.ctc-btn-primary{background:linear-gradient(135deg,#7b4dff,#4f46e5);color:#fff;box-shadow:0 8px 18px -12px rgba(123,77,255,.95);}
.ctc-btn-primary:hover{transform:translateY(-1px);}
.ctc-btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;}

.ct-empty{padding:56px 20px;}
.ct-more{display:flex;justify-content:center;margin-top:20px;}
.ct-more .ct-btn-ghost{min-width:180px;justify-content:center;}

/* ---------- 右侧边栏 ---------- */
.ct-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:16px;}
.ct-side-card{
  background:#fff;border:1px solid #ece9f8;border-radius:14px;padding:16px;
  box-shadow:0 2px 10px -8px rgba(20,20,46,.4);
}
.ct-side-title{
  display:flex;align-items:center;gap:7px;
  font-size:.86rem;font-weight:800;color:#171a33;margin-bottom:12px;
}
.ct-side-title i{color:#7b4dff;}
.ct-steps{margin:0 0 14px;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;}
.ct-steps li{display:flex;gap:9px;font-size:.8rem;line-height:1.55;color:#5b5d78;}
.ct-steps b{
  flex:0 0 auto;width:18px;height:18px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:#f1ecff;color:#5b3fd4;font-size:.68rem;font-weight:800;
}
.ct-side-btn{
  width:100%;height:36px;border-radius:11px;border:1px solid #e4e1f5;background:#fff;
  color:#5b3fd4;font-family:inherit;font-size:.84rem;font-weight:700;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .16s;
}
.ct-side-btn:hover{border-color:#c9b8ff;background:#faf9ff;}
.ct-side-tags{display:flex;flex-wrap:wrap;gap:6px;}
.ct-side-tag{
  padding:3px 10px;border-radius:100px;border:1px solid #ece9f8;background:#faf9ff;
  color:#5b5d78;font-family:inherit;font-size:.76rem;cursor:pointer;transition:all .16s;
}
.ct-side-tag:hover{border-color:#c9b8ff;color:#5b3fd4;background:#f1ecff;}

.ct-latest{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;}
.ct-latest-item{display:flex;align-items:center;gap:9px;text-decoration:none;}
.ct-latest-av{width:32px;height:32px;border-radius:50%;flex:0 0 auto;object-fit:cover;border:1px solid #ece9f8;}
.ct-latest-av.txt{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#7b4dff,#00857a) !important;color:#fff !important;
  -webkit-text-fill-color:#fff;font-size:.82rem;font-weight:800;
}
.ct-latest-info{min-width:0;display:flex;flex-direction:column;gap:1px;}
.ct-latest-info b{font-size:.82rem;font-weight:700;color:#171a33;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ct-latest-info em{font-style:normal;font-size:.72rem;color:#6b6d88;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ct-latest-item:hover .ct-latest-info b{color:#5b3fd4;}

.ct-side-links{display:flex;gap:8px;margin-bottom:8px;}
/* 侧栏「我的记录」的计数角标 026-10-01：收 下载的完整列表已独立成页，这里只做计数与最近几条） */
.ct-side-link em{
  font-style:normal;font-size:.72rem;font-weight:800;
  padding:1px 6px;border-radius:100px;background:#f1ecff;color:#5b3fd4;
}

/* ---------- 人脉库「我的」三件套 026-10-01 ---------
   /contacts/edit · /contacts/collect · /contacts/download 共用一个外壳：
   面包  页头  子导航（复用 .bz-tabs，与 /biz/me 同一视觉语言）→ 内容区 
   对比度：#5b3fd4 on #f1ecff  7.0:1 6b6d88 on #fff  4.97:1，均 ≥AA */

/* 页头右侧「我的收 / 我的下载 / 我的名片」同一 */
.ct-hero-btns{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}

/* 三件套外壳：面包屑之后不再需要大段上边距 */
.ct-mine-wrap{padding-bottom:0;}
.ct-mine-hero{padding-top:4px;}
.ct-mine-wrap .bz-tabs{margin-bottom:16px;}
/* 子导航的胶囊高度与页头按钮对齐，避免一行两个高 */
.ct-mine-wrap .bz-tab{height:38px;}

/* 「我的收 / 我的下载」空态里的主按钮：ct-btn-main 默认 inline-flex，居中要显式 */
.ct-mine-wrap .bz-empty .ct-btn-main{display:inline-flex;}

.ct-side-link{
  flex:1;height:34px;border-radius:10px;border:1px solid #ece9f8;background:#fff;
  color:#5b5d78;font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:5px;transition:all .16s;
}
.ct-side-link:hover{border-color:#c9b8ff;color:#5b3fd4;background:#faf9ff;}
.ct-side-link.on{background:#f1ecff;border-color:#ddd6f7;color:#5b3fd4;}
.ct-mini-list{margin:6px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px;}
.ct-mini-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.78rem;}
.ct-mini-list a{color:#2b2e4a;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ct-mini-list a:hover{color:#5b3fd4;}
.ct-mini-list em{font-style:normal;color:#6b6d88;flex:0 0 auto;}
.ct-mini-empty{color:#6b6d88 !important;font-size:.78rem;}

/* ---------- 响应 ---------- */
@media (max-width:1199px){
  .ct-body{grid-template-columns:minmax(0,1fr) 260px;}
  .ct-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));}
}
@media (max-width:991px){
  .ct-body{grid-template-columns:minmax(0,1fr);}
  .ct-side{position:static;}
}
@media (max-width:767px){
  .ct-wrap{padding:0 16px;}
  .contacts-page{padding-bottom:56px;}
  .ct-hero{padding:18px 0 14px;gap:14px;}
  .ct-hero-title{font-size:1.4rem;}
  .ct-hero-side{width:100%;}
  .ct-quota{flex:1;min-width:0;}
  .ct-search-row{flex-wrap:wrap;}
  .ct-search-box{flex:1 1 100%;}
  .ct-grid{grid-template-columns:1fr;gap:13px;}
  /* 筛选面板换成了 FilterPanel（bz3 视觉），移动端只收紧内边距与标签宽度 */
  .ct-fpanel{padding:2px 14px;}
  .ct-fpanel .bz3-flabel{min-width:64px;flex-basis:64px;font-size:.78rem;}
  .ctc-card{padding:16px 15px 14px;}
}

/* ---------- 我的名片（编辑页 ---------- */
.ct-edit-wrap{max-width:1180px;}
.ct-edit-back{margin:18px 0 10px;}
.ct-edit-back .ct-btn-ghost{height:36px;}
.ct-edit-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start;}
.ct-edit-main{min-width:0;}
.ct-edit-head{margin-bottom:16px;}
.ct-edit-card{
  background:#fff;border:1px solid #ece9f8;border-radius:16px;padding:22px 22px 24px;
  box-shadow:0 4px 18px -14px rgba(20,20,46,.5);
}
.ct-req{color:#c0392b;font-weight:800;}
.ct-field{margin-bottom:17px;}
.ct-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.ct-label{display:block;margin-bottom:7px;font-size:.86rem;font-weight:700;color:#2b2e4a;}
.ct-hint-inline{font-size:.76rem;font-weight:500;color:#6b6d88;}
.ct-hint{margin-top:7px;font-size:.76rem;color:#6b6d88;}
.ct-counter{margin-top:6px;text-align:right;font-size:.74rem;color:#6b6d88;}
.ct-avatar-row{display:flex;align-items:center;gap:16px;}
.ct-edit-avatar{
  width:72px;height:72px;border-radius:50%;object-fit:cover;flex:0 0 auto;
  border:2px solid #ece9f8;
}
.ct-edit-avatar.txt{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#7b4dff,#00857a) !important;color:#fff !important;
  -webkit-text-fill-color:#fff;font-size:1.7rem;font-weight:800;
}
.ct-checkbox{
  display:flex;align-items:flex-start;gap:9px;margin:4px 0 18px;
  font-size:.86rem;color:#2b2e4a;cursor:pointer;line-height:1.6;
}
.ct-checkbox input{margin-top:3px;flex:0 0 auto;accent-color:#7b4dff;}
.ct-submit{
  width:100%;height:46px;border:0;border-radius:12px;
  background:linear-gradient(135deg,#7b4dff,#4f46e5);color:#fff;
  font-family:inherit;font-size:.96rem;font-weight:800;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  box-shadow:0 12px 26px -14px rgba(123,77,255,.95);transition:all .18s;
}
.ct-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 16px 32px -14px rgba(123,77,255,1);}
.ct-submit:disabled{opacity:.65;cursor:not-allowed;}

.ct-edit-side{position:sticky;top:16px;}
.ct-preview-label{
  display:inline-flex;align-items:center;gap:6px;margin-bottom:10px;
  font-size:.82rem;font-weight:800;color:#5b3fd4;
}
.ct-preview-tip{margin:12px 0 0;font-size:.78rem;line-height:1.6;color:#6b6d88;}
.ct-edit-side .ctc-btn{pointer-events:none;} /* 仅编辑页「名片预览」里的按钮不可点 — 
   写成全局类会连列表页名片的「查看名 / 下载名片」一起禁用（已踩坑） */

@media (max-width:991px){
  .ct-edit-grid{grid-template-columns:minmax(0,1fr);}
  .ct-edit-side{position:static;}
}
@media (max-width:767px){
  .ct-edit-card{padding:18px 16px 20px;border-radius:14px;}
  .ct-field-row{grid-template-columns:minmax(0,1fr);}
}

/* ---------- 人脉名片详情 + 右侧边栏 ---------- */
/* ---------- 名片详情：内容区最 1000px 026-10-01 ---------
   原先 1400 宽的 ct-wrap，正文被拉得很长、阅读视线跨度太大 
    .ct-wrap.ctd-wrap 提高特异度，避免被前面的 .ct-wrap 覆盖 */
.ct-wrap.ctd-wrap{max-width:1000px;}

.ctd-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start;}
.ctd-main{min-width:0;}
.ctd-card{
  position:relative;background:#fff;border:1px solid #ece9f8;border-radius:16px;
  padding:26px 26px 22px;overflow:hidden;
  box-shadow:0 6px 22px -18px rgba(123,77,255,.75);
}
.ctd-band{position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#7b4dff,#00b5a4);}
.ctd-head{display:flex;align-items:flex-start;gap:18px;padding-bottom:20px;border-bottom:1px solid #f4f2fb;}
.ctd-avatar{
  width:84px;height:84px;border-radius:50%;flex:0 0 auto;object-fit:cover;
  border:3px solid #ece9f8;
}
.ctd-avatar-txt{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#7b4dff,#00857a) !important;color:#fff !important;
  -webkit-text-fill-color:#fff;font-size:2rem;font-weight:800;
}
.ctd-avatar.vip{border-color:#e8c56a;box-shadow:0 0 0 3px rgba(232,197,106,.28);}
.ctd-id{flex:1;min-width:0;}
.ctd-name{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  margin:0 0 8px;font-size:1.4rem;font-weight:900;color:#171a33;letter-spacing:-.3px;
}
.ctd-vip{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 10px;border-radius:100px;
  background:linear-gradient(135deg,#f8d97e,#dda436);color:#5c3f05 !important;
  font-size:.72rem;font-weight:800;
}
.ctd-level{
  padding:2px 9px;border-radius:100px;background:#f1ecff;color:#5b3fd4 !important;
  font-size:.72rem;font-weight:700;
}
.ctd-pos{margin:0 0 10px;font-size:.94rem;color:#5b5d78;line-height:1.6;}
.ctd-pos b{color:#2b2e4a;font-weight:700;}
.ctd-brand{
  display:inline-flex;align-items:center;gap:5px;margin-left:8px;
  padding:2px 9px;border-radius:8px;background:#f8f6ff;color:#5b3fd4 !important;
  font-size:.76rem;font-weight:700;
  white-space:nowrap;
}
.ctd-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:.82rem;color:#6b6d88;}
/* 详情页名片也带行业（与列表卡片同构）；同上，中性灰药丸、对比度 7.5:1 */
.ctd-industry{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 10px;border-radius:8px;background:#f5f4fa;color:#4a4d66;
  font-weight:700;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis;
}
/* 解锁有效期提示（2026-10-01）：解锁 24 小时内可见，到期自动回到锁定态 
   把「还剩多 / 到期会再计一次次数」写清楚，否则用户会以为永久解锁或莫名又锁上 
   对比度：#0a6b61 on #f0fbfa  6.1:1，过 AA */
.ctd-unlock-tip{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  margin:0 0 12px;padding:9px 12px;border-radius:10px;
  background:#f0fbfa;border:1px solid #d6f2ee;
  font-size:.8rem;font-weight:600;color:#0a6b61;
}
.ctd-unlock-tip b{font-weight:800;}
.ctd-meta i{margin-right:4px;}
.ctd-fav{
  flex:0 0 auto;width:38px;height:38px;border-radius:11px;border:1px solid #ece9f8;background:#fff;
  color:#8b8aa8;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .16s;
}
.ctd-fav:hover{border-color:#c9b8ff;color:#5b3fd4;background:#faf9ff;}
.ctd-fav.on{background:#f8f6ff;border-color:#ddd6f7;color:#7b4dff;}

.ctd-sec{padding:18px 0;border-bottom:1px solid #f8f6fc;}
.ctd-sec:last-of-type{border-bottom:0;}
.ctd-label{
  display:flex;align-items:center;gap:7px;margin-bottom:9px;
  font-size:.82rem;font-weight:800;color:#5b3fd4;letter-spacing:.2px;
}
.ctd-label i{font-size:.94rem;}
.ctd-val{font-size:.92rem;line-height:1.8;color:#2b2e4a;white-space:pre-wrap;word-break:break-word;}
.ctd-phone{font-size:1.1rem;font-weight:800;color:#0a6b61;letter-spacing:.6px;}
.ctd-locked{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  padding:12px 14px;border-radius:12px;background:#faf9ff;border:1px dashed #ddd6f7;
  font-size:.86rem;color:#5b5d78;
}
.ctd-locked i{color:#7b4dff;}
.ctd-locked-link{color:#5b3fd4;font-weight:700;text-decoration:none;}
.ctd-locked-link:hover{text-decoration:underline;}

.ctd-foot{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding-top:18px;border-top:1px solid #f4f2fb;
}
.ctd-quota-tip{font-size:.8rem;color:#6b6d88;}
.ctd-quota-tip a{color:#5b3fd4;font-weight:700;}

/* 侧边 */
.ctd-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:16px;}
.ctd-mini-list{display:flex;flex-direction:column;gap:12px;margin-bottom:12px;}
.ctd-mini{display:flex;align-items:flex-start;gap:10px;text-decoration:none;}
.ctd-mini-av{width:38px;height:38px;border-radius:50%;flex:0 0 auto;object-fit:cover;border:1px solid #ece9f8;}
.ctd-mini-av.txt{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#7b4dff,#00857a) !important;color:#fff !important;
  -webkit-text-fill-color:#fff;font-size:.92rem;font-weight:800;
}
.ctd-mini-info{min-width:0;display:flex;flex-direction:column;gap:2px;}
.ctd-mini-info b{
  display:flex;align-items:center;gap:4px;
  font-size:.84rem;font-weight:700;color:#171a33;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ctd-mini-gem{color:#d99a33;font-size:.7rem;}
.ctd-mini-info em{
  font-style:normal;font-size:.74rem;color:#6b6d88;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:190px;
}
.ctd-mini-region{color:#6b6d88 !important;}
.ctd-mini:hover .ctd-mini-info b{color:#5b3fd4;}
.ctd-links{display:flex;flex-direction:column;gap:8px;}
.ctd-side .ct-side-btn{width:100%;text-decoration:none;}

@media (max-width:991px){
  .ctd-layout{grid-template-columns:minmax(0,1fr);}
  .ctd-side{position:static;}
}
@media (max-width:767px){
  .ctd-card{padding:20px 16px 18px;border-radius:14px;}
  .ctd-head{gap:13px;padding-bottom:16px;}
  .ctd-avatar{width:64px;height:64px;}
  .ctd-avatar-txt{font-size:1.6rem;}
  .ctd-name{font-size:1.16rem;}
  .ctd-foot{gap:10px;}
  .ctd-foot .ct-btn-main{flex:1;justify-content:center;}
}

/* ---------- 通用头像兜底（图挂了 / 未设  首字母渐变底 ---------- */
.tj-avatar-fallback{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#7b4dff,#00857a) !important;
  color:#fff !important;-webkit-text-fill-color:#fff;
  font-weight:800;line-height:1;font-size:1.05rem;letter-spacing:0;
}
.tj-header-right .tj-avatar-wrap .tj-avatar-fallback{font-size:1rem;}
.ctc-avatar.tj-avatar-fallback{font-size:1.2rem;}
.ctd-avatar.tj-avatar-fallback{font-size:2rem;}
.ctd-mini-av.tj-avatar-fallback{font-size:.92rem;}
.ct-edit-avatar.tj-avatar-fallback{font-size:1.7rem;}
.ct-latest-av.tj-avatar-fallback{font-size:.82rem;}

/* ---------- 通用头像兜底（图挂了 / 未设  首字母渐变底 ---------- */
.tj-avatar-fallback{
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#7b4dff,#00857a) !important;
  color:#fff !important;-webkit-text-fill-color:#fff;
  font-weight:800;line-height:1;font-size:1.05rem;letter-spacing:0;
}
.tj-header-right .tj-avatar-wrap .tj-avatar-fallback{font-size:1rem;}
.ctc-avatar.tj-avatar-fallback{font-size:1.2rem;}
.ctd-avatar.tj-avatar-fallback{font-size:2rem;}
.ctd-mini-av.tj-avatar-fallback{font-size:.92rem;}
.ct-edit-avatar.tj-avatar-fallback{font-size:1.7rem;}
.ct-latest-av.tj-avatar-fallback{font-size:.82rem;}

/* ---------- 修正：旧人脉库样式遗 .ct-btn-ghost{flex:1}（约 4732 行） 
   新页面复用同名类时会被撑 — 在非「均分按钮」场景显式复 ---------- */
.ct-search-row .ct-btn-ghost,
.ct-edit-back .ct-btn-ghost,
.ctd-foot .ct-btn-ghost,
.ct-more .ct-btn-ghost,
.ct-avatar-row .ct-btn-ghost{flex:0 0 auto;}
.ctd-foot .ct-btn-main{flex:0 0 auto;}

/* ---------- 修正：旧人脉库样式遗 .ct-btn-ghost{flex:1}（约 4732 行） 
   新页面复用同名类时会被撑 — 在非「均分按钮」场景显式复 ---------- */
.ct-search-row .ct-btn-ghost,
.ct-edit-back .ct-btn-ghost,
.ctd-foot .ct-btn-ghost,
.ct-more .ct-btn-ghost,
.ct-avatar-row .ct-btn-ghost{flex:0 0 auto;}
.ctd-foot .ct-btn-main{flex:0 0 auto;}

/* ============================================================
   名片 · 可点 + 下载后展示联系方式（2026-09-17 修）
   修复：① .ctc-btn  pointer-events:none 曾全局生效  名片按钮全不可点
         整张名片卡可点进详情（补齐键盘可达性）
         「下载名片」原来只扣额度不返回联系方式  现在下载后就地展 
   ============================================================ */
.ctc-card.ctc-clickable{cursor:pointer;}
.ctc-card.ctc-clickable:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}

/* 下载后解锁的联系方式 */
.ctc-contact{
  display:flex;align-items:center;gap:8px;
  margin:0 0 12px;padding:9px 11px;border-radius:10px;
  background:#f0fbf9;border:1px solid #cdeee8;
}
.ctc-contact-ic{color:#0a6b61;font-size:.84rem;flex:0 0 auto;}
.ctc-contact-num{
  font-size:.9rem;font-weight:800;color:#0a6b61;letter-spacing:.4px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}
.ctc-contact-copy{
  margin-left:auto;flex:0 0 auto;
  border:1px solid #b9e2db;background:#fff;color:#0a6b61;
  font-family:inherit;font-size:.74rem;font-weight:700;cursor:pointer;
  padding:3px 9px;border-radius:8px;transition:all .16s;
}
.ctc-contact-copy:hover{background:#e8f7f4;border-color:#93d5ca;}

/* 非会员时的引导按钮（金底 + 深棕字，与站内金色规范一致） */
.ctc-btn-vip{
  background:linear-gradient(135deg,#fff7e3,#ffe9b8);
  border-color:#f0d894;color:#8a6119;
}
.ctc-btn-vip:hover{background:linear-gradient(135deg,#ffefc9,#ffdf95);border-color:#e3c069;color:#7a5410;transform:translateY(-1px);}

/* 触屏设备：hover 抬升会引起「点一下先跳样式」的迟滞感，按下即给反馈 */
@media (hover:none){
  .ctc-card.ctc-clickable:active{transform:scale(.995);border-color:#ddd6f7;}
}
@media (max-width:767px){
  .ctc-contact-num{font-size:.84rem;}
}

/* 详情页：非会员时的下载引导按钮（金底深棕字，与站内金色规范一致） */
.ctd-foot .ctd-btn-vip{
  background:linear-gradient(135deg,#fff7e3,#ffe9b8) !important;
  border-color:#f0d894 !important;color:#8a6119 !important;
  box-shadow:none;
}
.ctd-foot .ctd-btn-vip:hover{background:linear-gradient(135deg,#ffefc9,#ffdf95) !important;color:#7a5410 !important;transform:translateY(-1px);}
.ctd-foot .ctd-btn-vip i{color:#c99a2e;}

/* 额度进度条：用完时转警示色（原来满格仍是紫青渐变，易误读成「额度充足」） */
.ct-quota-bar.full i{background:linear-gradient(90deg,#f0a23c,#e0704a) !important;}
.ct-quota-tip.out{color:#b4541f !important;font-weight:600;}
.ct-quota-line b.out{color:#b4541f;}

/* ============================================================
   人脉 · 视觉降噪 026-09-17 
   问题：一 16 个紫色实 渐变元素（卡 10 个「下载名片」全紫渐变）
         高饱和色出现频次过高，观感塑料、不自然
   原则：① 卡片是重复元素（一 10+ 张），卡内一律中性化
         强调色只留给「页面级唯一主操作」与「选中态 
         去渐变、去彩色投影，全部改平色
   ============================================================ */

/* ----------  名片卡按钮：中性化 ---------- */
/* 主操作「下载名片」：浅灰 + 深字，仅 hover 时才泛紫 */
.ctc-btn-primary{
  background:#f5f4fa;
  border-color:#e8e6f2;
  color:#2b2e4a;
  box-shadow:none;
}
.ctc-btn-primary:hover:not(:disabled){
  background:#eeebfa;border-color:#cdbcfb;color:#5b3fd4;
  transform:translateY(-1px);box-shadow:none;
}
.ctc-btn-primary:disabled{background:#f5f4fa;border-color:#e8e6f2;color:#9b98b5;opacity:1;}

/* 次操作「查看名片」：无边框文字按钮（整卡本来就可点，无需再抢注意力） */
.ctc-btn-ghost{
  background:transparent;border-color:transparent;color:#6b6d88;
}
.ctc-btn-ghost:hover{
  background:#f4f2fb;border-color:transparent;color:#5b3fd4;
}

/* 会员引导按钮：去掉金色渐变，改浅金底实色（仍有区分度但不刺眼 */
.ctc-btn-vip{background:#fdf7e8;border-color:#f0e3c2;color:#8a6119;}
.ctc-btn-vip:hover{background:#fbf0d8;border-color:#e5d2a3;color:#7a5410;}

/* ----------  筛 chips：选中态改「浅 + 深字 + 描边 ---------- */

/* ----------  页面主按钮：去渐变改平色 ---------- */
.ct-btn-main{
  background:#5b3fd4;
  box-shadow:0 6px 16px -12px rgba(91,63,212,.75);
}
.ct-btn-main:hover{
  background:#4c33bd;
  transform:translateY(-1px);
  box-shadow:0 10px 20px -12px rgba(91,63,212,.85);
}
/* hero 里的「我的名片」降级为描边（侧栏已有同名入口，不必双主按钮 */
.ct-hero-side .ct-btn-main{
  background:#fff;border:1px solid #e2e0ec;color:#2b2e4a;box-shadow:none;font-weight:600;
}
.ct-hero-side .ct-btn-main:hover{
  background:#f7f6fb;border-color:#cdbcfb;color:#5b3fd4;
}

/* ----------  卡片：中性投 + 更淡的顶部渐变带 ---------- */
.ctc-card:hover{
  transform:translateY(-2px);
  border-color:#e4e1ef;
  box-shadow:0 10px 24px -20px rgba(20,20,46,.45);
}
.ctc-band{
  height:3px;
  background:linear-gradient(90deg,#a98fff,#7ed7cd);
  opacity:.55;
}

/* ----------  额度进度条：青色平色（不再用青紫渐变 ---------- */
.ct-quota-bar i{background:#00b5a4;}
.ct-quota-bar.full i{background:#e0704a;}

/* ----------  卡片收藏 / 品牌标签：再轻一 ---------- */
.ctc-brand{background:#f7f5fd;color:#5b3fd4;}
.ctc-fav:hover{border-color:#cdbcfb;color:#5b3fd4;background:#faf9ff;}

/* ----------  侧栏按钮：hover 才显 ---------- */
.ct-side-btn{color:#2b2e4a;border-color:#e2e0ec;font-weight:600;}
.ct-side-btn:hover{border-color:#cdbcfb;background:#f9f8fe;color:#5b3fd4;}

/* ============================================================
   全局对比度修正（2026-09-17，审计发现）
    「今日」标签：金底配白字仅 2.38:1 — 违反站内铁律「金底永不配白字 
    logo 下方小字：旧 #999  3.22:1，未 AA 正文标准
   ============================================================ */
.tj-announce .label{color:#4a3200 !important;}          /* 金底(#d4a017) + 深棕 = 5.7:1 */
.tj-logo-text small{color:#6b6d88 !important;}          /* 浅灰  站内次要 = 5.06:1 */

/* ============================================================
   登录 / 注册 · 左品牌图 + 右表单（.authl-* 
   布局参 tuimao.cn，配色与图标改用探金工坊规范 
   - 深色区与首页 Hero 同色 14112a  #1c1740  #241b4d  紫青光斑
   - 图标统一 Bootstrap Icons（弃 emoji）；数据取真实接口，不编 
   对比度：#fff on #1c1740  15:1 9b98bd 5.8:1 2ee6d0 10:1（均 ≥AA 
   ============================================================ */
.authl-wrap{
  min-height:calc(100vh - 140px);
  display:flex;align-items:center;justify-content:center;
  padding:48px 24px;
}
.authl-card{
  display:flex;width:100%;max-width:1040px;margin:0 auto;
  background:#fff;border:1px solid #f0eef6;border-radius:20px;overflow:hidden;
  box-shadow:0 20px 60px -28px rgba(20,17,42,.28);
  animation:authlIn .32s cubic-bezier(.2,.8,.3,1);
}
@keyframes authlIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- 左：品牌视觉 ---------- */
.authl-visual{
  position:relative;flex:1;min-height:560px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(165deg,#14112a 0%,#1c1740 45%,#241b4d 100%);
}
.authl-glow{position:absolute;border-radius:50%;pointer-events:none;}
.authl-glow.a{
  width:520px;height:520px;top:-220px;left:50%;transform:translateX(-50%);
  background:radial-gradient(circle, rgba(123,77,255,.45), transparent 66%);
}
.authl-glow.b{
  width:440px;height:440px;bottom:-240px;left:6%;
  background:radial-gradient(circle, rgba(0,181,164,.32), transparent 68%);
}
.authl-grid{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
                   linear-gradient(90deg, rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(circle at 50% 42%, #000 10%, transparent 76%);
  mask-image:radial-gradient(circle at 50% 42%, #000 10%, transparent 76%);
}
.authl-visual-inner{position:relative;z-index:1;text-align:center;padding:40px 36px;}

.authl-mark{
  width:80px;height:80px;border-radius:20px;margin:0 auto 22px;
  display:flex;align-items:center;justify-content:center;
  font-size:2.1rem;color:#fff;
  background:linear-gradient(135deg,#7b4dff,#00b5a4);
  box-shadow:0 14px 34px -14px rgba(123,77,255,.9);
}
.authl-h2{
  margin:0 0 12px;font-size:1.75rem;font-weight:900;line-height:1.35;color:#fff;
  letter-spacing:-.3px;
}
.authl-h2 em{
  font-style:normal;
  background:linear-gradient(110deg,#a78bfa,#2ee6d0);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.authl-desc{
  margin:0 auto;max-width:330px;
  font-size:.875rem;line-height:1.85;color:#9b98bd;
}
.authl-stats{display:flex;justify-content:center;gap:26px;margin-top:28px;}
.authl-stat{text-align:center;}
.authl-stat b{
  display:block;font-size:1.35rem;font-weight:800;color:#2ee6d0;line-height:1.2;
}
.authl-stat span{display:block;margin-top:3px;font-size:.7rem;color:#9b98bd;}

/* ---------- 右：表单 ---------- */
.authl-panel{
  width:440px;min-width:440px;padding:50px 46px;
  display:flex;flex-direction:column;justify-content:center;
}
.authl-title{
  margin:0 0 6px !important;font-size:1.5rem;font-weight:800;
  color:#171a33 !important;letter-spacing:-.2px;
}
.authl-sub{margin:0 0 22px;font-size:.875rem;color:#6b6d88;}
.authl-panel form .form-group:last-of-type{margin-bottom:20px;}
.authl-foot{
  margin-top:18px;padding-top:16px;border-top:1px solid #f2f0f8;
  text-align:center;font-size:.82rem;color:#6b6d88;
}
.authl-foot a{color:#5b3fd4;font-weight:700;text-decoration:none;}
.authl-foot a:hover{text-decoration:underline;}

/* ---------- 响应式：收起左侧 ---------- */
@media (max-width:1023px){
  .authl-card{max-width:460px;}
  .authl-visual{display:none;}
  .authl-panel{width:100%;min-width:0;padding:40px 32px;}
}
@media (max-width:640px){
  .authl-wrap{padding:24px 14px;min-height:calc(100vh - 120px);}
  .authl-card{border-radius:16px;}
  .authl-panel{padding:32px 22px;}
  .authl-title{font-size:1.32rem;}
}

/* ---------- 认证页精 ---------- */
/* 深色区质感：网格纹理与底部青光略加强，避免大面积纯色显得 */
.authl-grid{opacity:.75;}
.authl-glow.b{background:radial-gradient(circle, rgba(0,181,164,.40), transparent 68%);}

/* 表单里的「发送验证码」：站内 .btn-ghost 偏素，这里给它一个明确的按钮边界 */
.authl-panel .btn-ghost{
  border:1px solid #e0dcf2;background:#faf9ff;color:#5b3fd4;font-weight:700;
}
.authl-panel .btn-ghost:hover:not(:disabled){border-color:#c9b8ff;background:#f4f1ff;}
.authl-panel .btn-ghost:disabled{background:#f6f5fa;border-color:#eae7f3;color:#9b98b5;}

/* 字段间距在分栏布局里可以略收紧 */
.authl-panel .form-group{margin-bottom:15px;}

/* 认证页页脚：主题覆盖层有 `footer{color:var(--ink3)!important}`（约 7154 行，2.6:1），
   内联色压不过 — 用更高的选择器特异度把颜色拿回来 ,1,0  0,0,1 */
.authl-page-foot{color:#6b6d88 !important;}

/* 认证页页脚：主题覆盖层有 `footer{color:var(--ink3)!important}`（约 7154 行，2.6:1），
   内联色压不过 — 用更高的选择器特异度把颜色拿回来 ,1,0  0,0,1 */

/* ============================================================
   基本信息完善 welcome-profile）— .wp-*
   注册/登录后若未完善资料则引导至此：上传头 + 设置昵称
   ============================================================ */
.wp-wrap{max-width:520px;margin:0 auto;padding:40px 20px 72px;}
.wp-card{
  background:#fff;border:1px solid #ece9f8;border-radius:18px;padding:30px 30px 24px;
  box-shadow:0 18px 50px -34px rgba(20,20,46,.38);
}
.wp-head{margin-bottom:22px;}
.wp-title{margin:0 0 6px;font-size:1.42rem;font-weight:800;color:#171a33;letter-spacing:-.2px;}
.wp-sub{margin:0;font-size:.86rem;line-height:1.7;color:#6b6d88;}

.wp-avatar-row{
  display:flex;align-items:center;gap:18px;
  padding:16px;border-radius:14px;background:#faf9ff;border:1px solid #f0edfa;margin-bottom:20px;
}
.wp-avatar{
  width:76px;height:76px;border-radius:50%;flex:0 0 auto;object-fit:cover;
  border:2px solid #fff;box-shadow:0 6px 16px -10px rgba(123,77,255,.75);
}
.wp-avatar-side{min-width:0;}
.wp-upload{
  display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:10px;
  border:1px solid #e0dcf2;background:#fff;color:#5b3fd4;
  font-family:inherit;font-size:.84rem;font-weight:700;cursor:pointer;transition:all .16s;
}
.wp-upload:hover:not(:disabled){border-color:#c9b8ff;background:#f7f5ff;}
.wp-upload:disabled{opacity:.6;cursor:not-allowed;}
.wp-hint{margin:7px 0 0;font-size:.74rem;line-height:1.6;color:#6b6d88;}

.wp-skip{
  display:block;width:100%;margin-top:10px;padding:9px 0;border:0;background:none;
  color:#6b6d88;font-family:inherit;font-size:.82rem;cursor:pointer;
}
.wp-skip:hover:not(:disabled){color:#5b3fd4;text-decoration:underline;}

@media (max-width:640px){
  .wp-wrap{padding:20px 14px 48px;}
  .wp-card{padding:22px 18px 20px;border-radius:14px;}
  .wp-avatar-row{gap:14px;padding:14px;}
  .wp-avatar{width:64px;height:64px;}
  .wp-title{font-size:1.24rem;}
}

/* ============================================================
   个人中心 · 设置区子选项卡（编辑资料 / 修改密码 026-09-18
   选中态沿用站内口径：浅紫 #f2eeff + 深紫 #5b3fd4 + 描边（非实底 
   ============================================================ */
.me-subtabs{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap;}
.me-subtab{
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 18px;border-radius:100px;border:1px solid #e4e1f5;background:#fff;
  color:#5b5d78;font-family:inherit;font-size:.88rem;font-weight:600;
  cursor:pointer;transition:all .16s;
}
.me-subtab:hover{border-color:#cdbcfb;background:#faf9ff;color:#5b3fd4;}
.me-subtab.on{background:#f2eeff;border-color:#cdbcfb;color:#5b3fd4;}
.me-subtab i{font-size:.95rem;}
.me-subtab:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}
@media (max-width:640px){
  .me-subtabs{gap:8px;margin-bottom:16px;}
  .me-subtab{padding:8px 14px;font-size:.84rem;}
}

/* ============================================================
   管理后台 /manage — .mg-* 026-09-18 
   沿用站内令牌：主 #7b4dff、选中态浅紫底 #f2eeff+深紫字、卡 14px 圆角
   表格里的操作按钮是重复元  全部中性化（浅底深字） 
   只有页面级主操作用平色紫 #5b3fd4
   ============================================================ */
.mg-layout{display:flex;min-height:100vh;background:#f7f6fb;}
.mg-side{
  width:216px;flex:0 0 216px;background:#fff;border-right:1px solid #eeeaf6;
  display:flex;flex-direction:column;padding:18px 12px;position:sticky;top:0;height:100vh;overflow:auto;
}
.mg-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 16px;border-bottom:1px solid #f2eefa;margin-bottom:14px;}
.mg-brand i{font-size:1.4rem;color:#5b3fd4;}
.mg-brand b{display:block;font-size:.95rem;color:#171a33;}
.mg-brand span{display:block;font-size:.74rem;color:#6b6d88;}
.mg-nav{flex:1;}
.mg-nav-title{font-size:.72rem;font-weight:700;color:#6b6d88;letter-spacing:.5px;padding:12px 10px 6px;}
.mg-nav-item{
  display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:10px;
  color:#2b2e4a;font-size:.87rem;font-weight:600;text-decoration:none;transition:all .15s;
}
.mg-nav-item:hover{background:#f7f5fd;color:#5b3fd4;}
.mg-nav-item.on{background:#f2eeff;color:#5b3fd4;}
.mg-nav-item i{font-size:.95rem;}
.mg-back{margin-top:14px;padding:9px 11px;border-radius:10px;font-size:.8rem;color:#6b6d88;text-decoration:none;border-top:1px solid #f2eefa;}
.mg-back:hover{color:#5b3fd4;}

.mg-main{flex:1;min-width:0;display:flex;flex-direction:column;}
.mg-top{display:flex;align-items:center;justify-content:space-between;gap:12px;height:60px;padding:0 22px;background:#fff;border-bottom:1px solid #eeeaf6;position:sticky;top:0;z-index:5;}
.mg-top-title{font-size:1rem;font-weight:800;color:#171a33;}
.mg-top-right{display:flex;align-items:center;gap:12px;}
.mg-who{font-size:.84rem;color:#2b2e4a;display:flex;align-items:center;gap:6px;}
.mg-tag{font-style:normal;font-size:.7rem;font-weight:700;padding:2px 7px;border-radius:6px;background:#f2eeff;color:#5b3fd4;margin-left:4px;}
.mg-tag.super{background:#fdf6e3;color:#8a6119;}
.mg-tag.gold{background:#fdf6e3;color:#8a6119;}
.mg-tag.danger{background:#fdeceb;color:#b0281f;}
/* 导航菜单访问权限：需登录 */
.mg-tag.blue{background:#eaf1fd;color:#1e5bb8;}
.mg-body{padding:20px 22px 60px;}

/* 统计 */
.mg-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:18px;}
.mg-card.stat{background:#fff;border:1px solid #ece9f8;border-radius:14px;padding:16px;display:flex;align-items:center;gap:12px;}
.mg-card.stat i{font-size:1.5rem;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#f5f4fa;color:#5b3fd4;}
.mg-card.stat.cyan i{background:#eafaf7;color:#0a6b61;}
.mg-card.stat.gold i{background:#fdf6e3;color:#8a6119;}
.mg-card.stat.green i{background:#eaf7ee;color:#1d7a3c;}
.mg-card.stat.blue i{background:#eef2ff;color:#3f4fd4;}
.mg-card.stat b{display:block;font-size:1.3rem;font-weight:800;color:#171a33;line-height:1.2;}
.mg-card.stat span{font-size:.78rem;color:#6b6d88;}

/* 面板 */
.mg-panel{background:#fff;border:1px solid #ece9f8;border-radius:14px;padding:18px;margin-bottom:18px;}
.mg-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.mg-panel-head h3{margin:0;font-size:.96rem;font-weight:800;color:#171a33;}
.mg-search{width:220px;}
.mg-head-tools{display:flex;gap:8px;}

/* 按钮 */
.mg-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:36px;padding:0 14px;border-radius:10px;border:1px solid transparent;font-family:inherit;font-size:.84rem;font-weight:700;cursor:pointer;transition:all .15s;}
.mg-btn.primary{background:#5b3fd4;color:#fff;}
.mg-btn.primary:hover:not(:disabled){background:#4c33bd;}
.mg-btn.ghost{background:#fff;border-color:#e2e0ec;color:#2b2e4a;}
.mg-btn.ghost:hover:not(:disabled){border-color:#cdbcfb;background:#faf9ff;color:#5b3fd4;}
.mg-btn.danger{background:#fdeceb;border-color:#f6d5d2;color:#b0281f;}
.mg-btn.danger:hover:not(:disabled){background:#fbdfdd;}
.mg-btn.sm{height:30px;padding:0 10px;font-size:.78rem;border-radius:8px;}
.mg-btn.block{width:100%;height:42px;}
.mg-btn:disabled{opacity:.6;cursor:not-allowed;}

/* 表格 */
.mg-table{width:100%;border-collapse:collapse;font-size:.85rem;}
.mg-table th{text-align:left;padding:10px 12px;background:#faf9fe;color:#6b6d88;font-weight:700;font-size:.78rem;border-bottom:1px solid #efeaf8;white-space:nowrap;}
.mg-table td{padding:11px 12px;border-bottom:1px solid #f4f1fa;color:#2b2e4a;vertical-align:middle;}
.mg-table tr:hover td{background:#fcfbff;}
.mg-table td.muted{color:#6b6d88;}
.mg-ellipsis{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mg-empty{padding:26px 0;text-align:center;color:#6b6d88;font-size:.85rem;}
.mg-tree{color:#c3bde0;margin-right:4px;}
.mg-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px;font-size:.82rem;color:#6b6d88;}

/* 表单 */
.mg-form{display:flex;flex-direction:column;gap:14px;}
.mg-form.two{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.mg-field{display:flex;flex-direction:column;gap:6px;}
.mg-field > span{font-size:.82rem;font-weight:700;color:#3a3d5c;}
.mg-field .form-input{width:100%;}
.mg-hint{font-size:.74rem;color:#6b6d88;}
.mg-secret{font-style:normal;font-size:.68rem;background:#fdeceb;color:#b0281f;padding:1px 6px;border-radius:5px;margin-left:6px;}
.mg-note{margin:14px 0 0;font-size:.8rem;line-height:1.7;color:#6b6d88;}
.mg-note b{color:#b0281f;}

/* Tabs */
.mg-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.mg-tab{padding:8px 16px;border-radius:100px;border:1px solid #e4e1f5;background:#fff;color:#5b5d78;font-family:inherit;font-size:.84rem;font-weight:600;cursor:pointer;transition:all .15s;}
.mg-tab:hover{border-color:#cdbcfb;color:#5b3fd4;}
.mg-tab.on{background:#f2eeff;border-color:#cdbcfb;color:#5b3fd4;}

/* 权限勾 */
.mg-perm{margin-top:16px;display:flex;flex-direction:column;gap:12px;}
.mg-perm-group{border:1px solid #f0edfa;border-radius:12px;padding:12px 14px;background:#fcfbff;}
.mg-perm-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.mg-perm-title b{font-size:.85rem;color:#171a33;}
.mg-perm-items{display:flex;flex-wrap:wrap;gap:8px;}
.mg-check{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;border:1px solid #e6e3f2;background:#fff;cursor:pointer;font-size:.8rem;color:#2b2e4a;}
.mg-check.on{border-color:#cdbcfb;background:#f2eeff;color:#5b3fd4;}
.mg-check code{font-size:.68rem;color:#6b6d88;}

/* 趋势 */
.mg-trend{display:flex;flex-direction:column;gap:8px;}
.mg-trend-row{display:flex;align-items:center;gap:12px;}
.mg-trend-day{width:46px;font-size:.78rem;color:#6b6d88;}
.mg-trend-bar{flex:1;height:12px;border-radius:6px;background:#f2f0f8;overflow:hidden;}
.mg-trend-bar i{display:block;height:100%;background:#7b4dff;border-radius:6px;}
.mg-trend-num{width:34px;text-align:right;font-size:.8rem;color:#2b2e4a;font-weight:700;}

/* 套餐 */
.mg-plan-list{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px;}
.mg-plan-item{flex:1;min-width:200px;border:1px solid #ece9f8;border-radius:12px;padding:14px;background:#fcfbff;}
.mg-plan-item.hot{border-color:#f0d894;background:#fffdf6;}
.mg-plan-item b{display:block;font-size:.92rem;color:#171a33;margin-bottom:4px;}
.mg-plan-item span{font-size:.8rem;color:#6b6d88;}

/* 提示 */
.mg-alert{border-radius:10px;padding:11px 14px;font-size:.84rem;margin-bottom:14px;}
.mg-alert.err{background:#fdeceb;color:#b0281f;border:1px solid #f6d5d2;}

/* 登录 */
.mg-login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#f7f6fb;}
.mg-login-card{width:100%;max-width:420px;background:#fff;border:1px solid #ece9f8;border-radius:18px;padding:32px 30px;box-shadow:0 20px 50px -34px rgba(20,17,42,.4);}
.mg-login-head{text-align:center;margin-bottom:22px;}
.mg-login-mark{width:64px;height:64px;border-radius:18px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;font-size:1.7rem;color:#fff;background:linear-gradient(135deg,#7b4dff,#00b5a4);box-shadow:0 12px 26px -14px rgba(123,77,255,.9);}
.mg-login-head h1{margin:0 0 6px;font-size:1.2rem;font-weight:800;color:#171a33;}
.mg-login-head p{margin:0;font-size:.82rem;line-height:1.6;color:#6b6d88;}
.mg-login-card .mg-field{margin-bottom:14px;}
.mg-login-tip{margin:16px 0 0;font-size:.76rem;line-height:1.7;color:#6b6d88;}

/* 响应 */
@media (max-width:1023px){
  .mg-layout{flex-direction:column;}
  .mg-side{width:100%;flex:none;height:auto;position:static;flex-direction:row;align-items:center;gap:10px;overflow-x:auto;border-right:0;border-bottom:1px solid #eeeaf6;padding:10px 12px;}
  .mg-brand{border:0;margin:0;padding:0 8px 0 0;}
  .mg-nav{display:flex;gap:6px;}
  .mg-nav-title{display:none;}
  .mg-nav-item{white-space:nowrap;}
  .mg-back{margin:0;padding:0 8px;border:0;white-space:nowrap;}
  .mg-body{padding:16px 14px 48px;}
  .mg-form.two{grid-template-columns:1fr;}
  .mg-search{width:100%;}
  .mg-table{font-size:.8rem;}
  .mg-ellipsis{max-width:160px;}
}

/* 后台会员页：套餐权益清单 */
.mg-plan-feats{margin:8px 0 0;padding-left:16px;font-size:.76rem;line-height:1.85;color:#5b5d78;}
.mg-plan-feats li{list-style:disc;}

/* ============================================================
   资源对接频道 /biz（BizConnect）— .bz-* 026-09-19 
   定位：轻量双边信息撮合（企业 / 个人 双身 + 双轨认证 
   配色沿用站内令牌：主 #7b4dff、青 #00b5a4、标 #171a33、次 #6b6d88
   🔑 卡片按钮中性化；强调色只给页面级主操作
   ============================================================ */
.bz-page{width:100%;max-width:1400px;margin:0 auto;padding:0 20px 64px;}

/* ---------- 频道 ---------- */
.bz-hero{
  margin:0 -20px 24px;padding:38px 20px 30px;
  background:linear-gradient(135deg,#f6f3ff,#f0fbfa 60%,#fff);
  border-bottom:1px solid #ece9f8;
}
.bz-hero-inner{max-width:1400px;margin:0 auto;}
.bz-hero-tag{
  display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;
  padding:5px 12px;border-radius:100px;background:#fff;border:1px solid #e4e1f5;
  font-size:.76rem;font-weight:700;color:#5b3fd4;
}
.bz-hero h1{margin:0 0 10px;font-size:1.9rem;font-weight:900;color:#171a33;letter-spacing:-.4px;}
.bz-hero h1 em{font-style:normal;font-size:1rem;font-weight:700;color:#8a86b8;letter-spacing:.5px;margin-left:8px;}
.bz-hero p{margin:0;max-width:760px;font-size:.9rem;line-height:1.85;color:#5b5d78;}
.bz-hero p b{color:#171a33;}
.bz-hero-stats{display:flex;gap:34px;margin-top:20px;}
.bz-hero-stats div{text-align:left;}
.bz-hero-stats b{display:block;font-size:1.5rem;font-weight:900;color:#5b3fd4;line-height:1.15;}
.bz-hero-stats span{font-size:.76rem;color:#6b6d88;}

/* ---------- 落地页：两张大卡 ---------- */
.bz-gate{margin-bottom:26px;}
.bz-gate-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.bz-gate-card{
  background:#fff;border:1px solid #ece9f8;border-radius:18px;padding:26px;
  box-shadow:0 16px 40px -34px rgba(20,20,46,.4);
}
.bz-gate-card.co{border-top:3px solid #7b4dff;}
.bz-gate-card.ta{border-top:3px solid #00b5a4;}
.bz-gate-ic{
  width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;color:#fff;margin-bottom:14px;
}
.bz-gate-card.co .bz-gate-ic{background:linear-gradient(135deg,#7b4dff,#5b3fd4);}
.bz-gate-card.ta .bz-gate-ic{background:linear-gradient(135deg,#00b5a4,#0a6b61);}
.bz-gate-card h3{margin:0 0 6px;font-size:1.15rem;font-weight:800;color:#171a33;}
.bz-gate-lead{margin:0 0 10px;font-size:.86rem;font-weight:700;color:#5b3fd4;}
.bz-gate-card.ta .bz-gate-lead{color:#0a6b61;}
.bz-gate-desc{margin:0 0 16px;font-size:.84rem;line-height:1.8;color:#5b5d78;}
.bz-gate-desc b{color:#171a33;}
.bz-gate-fee{display:flex;align-items:baseline;gap:6px;margin-bottom:14px;padding-top:14px;border-top:1px dashed #ece9f8;}
.bz-gate-fee b{font-size:1.6rem;font-weight:900;color:#171a33;}
.bz-gate-fee span{font-size:.8rem;color:#6b6d88;}
.bz-gate-tip{margin:10px 0 0;font-size:.74rem;line-height:1.6;color:#6b6d88;}

/* ---------- 双身份栏 ---------- */
.bz-rolebar{margin-bottom:16px;}
.bz-rolebar-inner{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:12px 14px;background:#fff;border:1px solid #ece9f8;border-radius:14px;
}
.bz-roles{display:flex;gap:8px;background:#f7f6fb;border-radius:12px;padding:4px;}
.bz-role{
  display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border:0;border-radius:9px;
  background:transparent;color:#5b5d78;font-family:inherit;font-size:.86rem;font-weight:700;
  cursor:pointer;transition:all .16s;
}
.bz-role:hover{color:#5b3fd4;}
.bz-role.on{background:#fff;color:#5b3fd4;box-shadow:0 1px 3px rgba(0,0,0,.06);}
.bz-rolebar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.bz-v{
  font-style:normal;font-size:.68rem;font-weight:800;padding:2px 6px;border-radius:6px;margin-left:2px;
}
.bz-v.v-blue{background:#eef2ff;color:#3f4fd4;}
.bz-v.v-gold{background:#fdf6e3;color:#8a6119;}

/* 认证提示 */
.bz-notice{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin-bottom:16px;padding:12px 16px;border-radius:12px;
  background:#fffbeb;border:1px solid #f5e6bf;font-size:.82rem;line-height:1.7;color:#6b4a12;
}
.bz-notice i{font-size:1rem;color:#c99a2e;}
.bz-notice b{color:#5c3f05;}
.bz-notice .bz-btn{margin-left:auto;}

/* ---------- 面板 ---------- */
.bz-mine{margin-bottom:18px;}
.bz-panel{background:#fff;border:1px solid #ece9f8;border-radius:14px;padding:18px;margin-bottom:18px;}
.bz-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.bz-panel-head h3{margin:0;font-size:.96rem;font-weight:800;color:#171a33;}
.bz-count{font-size:.78rem;font-weight:700;color:#6b6d88;background:#f5f4fa;padding:3px 10px;border-radius:100px;}
.bz-side-title{margin:0 0 12px;font-size:.88rem;font-weight:800;color:#171a33;}
.bz-hint{font-size:.76rem;color:#6b6d88;display:inline-flex;align-items:center;gap:5px;}
.bz-empty{padding:22px 0;text-align:center;font-size:.84rem;color:#6b6d88;}
.bz-empty.big{padding:46px 0;}
.bz-note{margin:10px 0 0;font-size:.78rem;line-height:1.75;color:#6b6d88;}
.bz-note b{color:#b4541f;}
.bz-alert{border-radius:12px;padding:14px 16px;font-size:.85rem;}
.bz-alert.err{background:#fdeceb;color:#b0281f;border:1px solid #f6d5d2;}

/* 列表 */
.bz-my-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.bz-my-list li{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;
  background:#fcfbff;border:1px solid #f2f0f8;font-size:.84rem;flex-wrap:wrap;
}
.bz-my-title{color:#2b2e4a;font-weight:700;text-decoration:none;flex:1;min-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
a.bz-my-title:hover{color:#5b3fd4;}
.bz-my-meta{font-size:.76rem;color:#6b6d88;}
.bz-st{font-size:.7rem;font-weight:800;padding:3px 9px;border-radius:100px;background:#f2eeff;color:#5b3fd4;}
.bz-st.bidding,.bz-st.pending{background:#eef2ff;color:#3f4fd4;}
.bz-st.awarded,.bz-st.approved,.bz-st.offer{background:#eaf7ee;color:#1d7a3c;}
.bz-st.rejected,.bz-st.expired{background:#fdeceb;color:#b0281f;}
.bz-st.reviewing,.bz-st.shortlisted,.bz-st.interview{background:#fdf6e3;color:#8a6119;}

/* ---------- 分栏 tab + 列表 ---------- */
.bz-board{margin-top:6px;}
.bz-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.bz-tab{
  display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:100px;
  border:1px solid #e4e1f5;background:#fff;color:#5b5d78;
  font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .16s;
}
.bz-tab:hover{border-color:#cdbcfb;color:#5b3fd4;}
.bz-tab.on{background:#f2eeff;border-color:#cdbcfb;color:#5b3fd4;}
.bz-search{
  margin-left:auto;min-width:200px;padding:9px 14px;border-radius:100px;
  border:1px solid #e4e1f5;background:#fff;font-family:inherit;font-size:.83rem;color:#2b2e4a;
}
.bz-search:focus{outline:none;border-color:#cdbcfb;box-shadow:0 0 0 3px rgba(123,77,255,.1);}

.bz-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;}
.bz-card{
  display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:14px;
  background:#fff;border:1px solid #ece9f8;text-decoration:none;transition:all .18s;
}
.bz-card:hover{border-color:#ddd6f7;box-shadow:0 12px 26px -22px rgba(20,20,46,.5);transform:translateY(-2px);}
.bz-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.bz-card-head h4{
  margin:0;font-size:.96rem;font-weight:800;color:#171a33;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.bz-card-sum{margin:0;font-size:.8rem;line-height:1.7;color:#6b6d88;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.bz-card-tags{display:flex;gap:6px;flex-wrap:wrap;}
.bz-chip{
  font-style:normal;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:7px;
  background:#f2eeff;color:#5b3fd4;
}
.bz-chip.ghost{background:#f5f4fa;color:#6b6d88;}
.bz-chip.warn{background:#fdf6e3;color:#8a6119;}
.bz-chip.on{background:#5b3fd4;color:#fff;}
a.bz-chip{text-decoration:none;}
.bz-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:10px;border-top:1px solid #f4f1fa;}
.bz-budget{font-size:.92rem;font-weight:900;color:#0a6b61;}
.bz-budget-lg{margin:10px 0;font-size:1.3rem;font-weight:900;color:#0a6b61;}
.bz-card-meta{font-size:.74rem;color:#6b6d88;}

/* ---------- 详情 ---------- */
.bz-crumb{display:flex;align-items:center;gap:6px;padding:18px 0 14px;font-size:.8rem;color:#6b6d88;}
.bz-crumb a{color:#5b3fd4;text-decoration:none;font-weight:700;}
.bz-crumb i{font-size:.7rem;color:#c3bde0;}
.bz-detail{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start;}
.bz-detail-main{min-width:0;}
.bz-detail-side{position:sticky;top:76px;}
.bz-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;}
.bz-detail-head h1{margin:0;font-size:1.32rem;font-weight:900;color:#171a33;line-height:1.4;}
.bz-detail-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.bz-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:0 0 18px;padding:14px;border-radius:12px;background:#faf9fe;}
.bz-facts dt{font-size:.72rem;color:#6b6d88;margin-bottom:4px;}
.bz-facts dd{margin:0;font-size:.9rem;font-weight:800;color:#171a33;}
.bz-sec{margin-top:18px;padding-top:16px;border-top:1px solid #f4f1fa;}
.bz-sec h3{margin:0 0 10px;font-size:.9rem;font-weight:800;color:#171a33;}
.bz-pre{margin:0;font-size:.86rem;line-height:1.9;color:#3a3d5c;white-space:pre-wrap;word-break:break-word;}
.bz-pre.sm{font-size:.82rem;color:#5b5d78;margin-top:8px;padding:10px 12px;background:#faf9fe;border-radius:10px;}

/* 付费 */
.bz-locked{display:flex;gap:14px;margin-top:16px;padding:18px;border-radius:14px;background:#faf9fe;border:1px dashed #ddd6f7;}
.bz-locked > i{font-size:1.4rem;color:#8b7bd8;}
.bz-locked b{display:block;font-size:.9rem;color:#171a33;margin-bottom:6px;}
.bz-locked p{margin:0 0 12px;font-size:.82rem;line-height:1.75;color:#5b5d78;}
.bz-locked b{color:#5b3fd4;}

/* 投标列表 */
.bz-bids{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.bz-bids li{padding:14px;border-radius:12px;border:1px solid #f0edfa;background:#fcfbff;}
.bz-bids li.awarded{border-color:#b7e4c7;background:#f6fdf8;}
.bz-bid-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap;}
.bz-bid-head b{font-size:.88rem;color:#171a33;}
.bz-bid-meta{font-size:.76rem;color:#6b6d88;margin-bottom:8px;}
.bz-bid-activity li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.bz-bid-activity li b{font-size:.84rem;color:#25283d;}
.bz-bid-activity li time{margin-left:auto;font-size:.75rem;color:#777b91;}
.bz-biz-records{display:flex;flex-direction:column;gap:8px;margin-top:14px;}
.bz-biz-records h4{margin:0;font-size:.84rem;color:#25283d;}
.bz-biz-record{display:grid;grid-template-columns:minmax(100px,auto) 1fr auto;align-items:start;gap:6px 12px;padding:10px 0;border-top:1px solid #eeedf2;font-size:.8rem;color:#4f5265;}
.bz-biz-record b{color:#25283d;}
.bz-biz-record small{font-size:.72rem;color:#85889a;}
.bz-biz-record p{grid-column:1/-1;margin:0;color:#285c53;line-height:1.6;}
.bz-biz-record p small{margin-left:6px;}
.bz-biz-records + .bz-biz-records{padding-top:12px;border-top:1px solid #eeedf2;}
.bz-form .bz-note{display:block;}

/* 企业信息 */
.bz-company{display:flex;gap:12px;align-items:center;}
.bz-company-logo{
  width:44px;height:44px;border-radius:12px;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;font-size:1.2rem;
  background:#f2eeff;color:#5b3fd4;
}
.bz-company b{font-size:.9rem;color:#171a33;}
.bz-company-meta{font-size:.74rem;color:#6b6d88;margin-top:3px;}

/* ---------- 表单 ---------- */
.bz-form{display:flex;flex-direction:column;gap:14px;}
.bz-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.bz-field{display:flex;flex-direction:column;gap:6px;}
.bz-field > span{font-size:.82rem;font-weight:700;color:#3a3d5c;}
.bz-field .form-input{width:100%;}
.bz-mini{max-width:200px;}
.bz-checks{display:flex;gap:16px;flex-wrap:wrap;padding:12px 14px;border-radius:12px;background:#faf9fe;}
.bz-check{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;color:#3a3d5c;cursor:pointer;}
.bz-form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px;}
.bz-kind-switch{display:flex;gap:6px;flex-wrap:wrap;}
.bz-publish{max-width:900px;}

/* ---------- 按钮 ---------- */
.bz-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:40px;padding:0 18px;border-radius:10px;border:1px solid transparent;
  font-family:inherit;font-size:.86rem;font-weight:700;cursor:pointer;
  text-decoration:none;transition:all .16s;
}
.bz-btn.primary{background:#5b3fd4;color:#fff;}
.bz-btn.primary:hover:not(:disabled){background:#4c33bd;transform:translateY(-1px);}
.bz-btn.ghost{background:#fff;border-color:#e2e0ec;color:#2b2e4a;}
.bz-btn.ghost:hover:not(:disabled){border-color:#cdbcfb;background:#faf9ff;color:#5b3fd4;}
.bz-btn.sm{height:32px;padding:0 12px;font-size:.78rem;border-radius:8px;}
.bz-btn.block{width:100%;}
.bz-btn:disabled{opacity:.6;cursor:not-allowed;}
.bz-btn:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}

/* ---------- 认证 ---------- */
.bz-verify{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.bz-verify-card{background:#fff;border:1px solid #ece9f8;border-radius:16px;padding:22px;}
.bz-verify-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.bz-verify-head i{font-size:1.5rem;color:#5b3fd4;}
.bz-verify-head b{display:block;font-size:.98rem;color:#171a33;}
.bz-verify-head span{display:block;font-size:.76rem;color:#6b6d88;margin-top:2px;}
.bz-verify-fee{margin-bottom:12px;font-size:1.7rem;font-weight:900;color:#171a33;}
.bz-verify-fee span{font-size:.82rem;font-weight:600;color:#6b6d88;}
.bz-verify-list{margin:0 0 16px;padding-left:18px;font-size:.82rem;line-height:2;color:#5b5d78;}
.bz-verify-list li{list-style:disc;}
.bz-verify > .bz-panel{grid-column:1 / -1;}

/* ---------- 响应 ---------- */
@media (max-width:1023px){
  .bz-gate-cards{grid-template-columns:1fr;}
  .bz-detail{grid-template-columns:1fr;}
  .bz-detail-side{position:static;}
  .bz-verify{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .bz-page{padding:0 14px 48px;}
  .bz-hero{margin:0 -14px 18px;padding:26px 14px 22px;}
  .bz-hero h1{font-size:1.5rem;}
  .bz-hero h1 em{display:block;margin:6px 0 0;font-size:.86rem;}
  .bz-hero-stats{gap:20px;}
  .bz-hero-stats b{font-size:1.25rem;}
  .bz-gate-card{padding:20px;border-radius:14px;}
  .bz-grid2{grid-template-columns:1fr;}
  .bz-list{grid-template-columns:1fr;}
  .bz-search{margin-left:0;width:100%;}
  .bz-rolebar-inner{padding:10px;}
  .bz-role{padding:8px 12px;font-size:.8rem;}
  .bz-detail-head h1{font-size:1.15rem;}
}

/* ============================================================
   资源对接频道 · 改版 026-09-19 参考图重构）— .bz2-*
   设计语言取自参考图：极简白底、大留白、大圆角卡片、胶囊按钮 
    清单式选择卡、分步向导、绿色语义（完成/通过 
   主色仍用站内令牌（紫 #5b3fd4），语义色用站内青绿 #00b5a4
   ============================================================ */

/* ---------- 页面骨架 ---------- */
.bz2-page{width:100%;max-width:1080px;margin:0 auto;padding:34px 20px 72px;}
/* 列表页容器（2026-10-03：加宽到 1280，让页头标题与右侧按钮（含「发布」）能同排放下） */
.bz2-page.wide{max-width:1280px;}
.bz2-page.form{max-width:860px;}

.bz2-title{
  margin:0 0 10px;text-align:center;font-size:2rem;font-weight:900;color:#171a33;letter-spacing:-.5px;line-height:1.3;
}
.bz2-sub{margin:0 0 34px;text-align:center;font-size:.86rem;color:#6b6d88;line-height:1.7;}

/* 返回 / 面包 */
.bz2-back{
  display:inline-flex;align-items:center;gap:6px;margin-bottom:18px;padding:7px 14px;
  border-radius:100px;border:1px solid #ececf3;background:#fff;
  font-size:.8rem;font-weight:700;color:#5b5d78;text-decoration:none;transition:all .16s;
}
.bz2-back:hover{border-color:#cdbcfb;color:#5b3fd4;}

/* ---------- 身份选择（参考图 1 ---------- */
.bz2-roles{display:flex;align-items:stretch;gap:20px;}
.bz2-role{
  flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:36px 30px 30px;background:#fff;border:1px solid #ececf3;border-radius:22px;
  transition:all .2s;
}
.bz2-role:hover{border-color:#d8d3ee;box-shadow:0 16px 40px -34px rgba(20,20,46,.5);}
.bz2-role-ic{
  width:96px;height:96px;border-radius:26px;display:flex;align-items:center;justify-content:center;
  font-size:3rem;margin-bottom:20px;background:#f6f5fc;
}
.bz2-role.co .bz2-role-ic{color:#5b3fd4;}
.bz2-role.ta .bz2-role-ic{color:#00b5a4;}
.bz2-role h3{margin:0 0 12px;font-size:1.35rem;font-weight:900;color:#171a33;}
.bz2-role-desc{margin:0 0 20px;font-size:.86rem;line-height:1.85;color:#6b6d88;}
.bz2-role-feats{
  list-style:none;margin:0 0 26px;padding:0;width:100%;max-width:320px;text-align:left;
  display:flex;flex-direction:column;gap:10px;
}
.bz2-role-feats li{display:flex;align-items:flex-start;gap:8px;font-size:.84rem;color:#3a3d5c;line-height:1.6;}
.bz2-role-feats i{color:#00b5a4;font-size:.9rem;margin-top:2px;flex:0 0 auto;}
.bz2-role-fee{
  margin:auto 0 18px;font-size:.8rem;color:#6b6d88;
}
.bz2-role-fee b{font-size:1.5rem;font-weight:900;color:#171a33;}
.bz2-or{
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;
  font-size:.82rem;font-weight:800;color:#b9bcd2;letter-spacing:1px;
}

/* ---------- 类型选择（参考图 2 ---------- */
.bz2-kinds{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.bz2-kind{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:34px 26px 26px;background:#fff;border:1px solid #ececf3;border-radius:22px;
  cursor:pointer;transition:all .2s;text-decoration:none;
}
.bz2-kind:hover{border-color:#c9ecd9;background:#fbfefc;}
.bz2-kind.on{border:2px solid #86d9a8;background:#fbfffc;}
.bz2-kind-ic{font-size:3rem;line-height:1;margin-bottom:18px;}
.bz2-kind h3{margin:0 0 10px;font-size:1.2rem;font-weight:900;color:#171a33;}
.bz2-kind p{margin:0 0 6px;font-size:.83rem;line-height:1.8;color:#6b6d88;}
.bz2-kind-tip{margin-top:14px;font-size:.78rem;color:#0a7a63;line-height:1.7;}
.bz2-foot-tip{margin-top:22px;text-align:center;font-size:.78rem;color:#6b6d88;}

/* ---------- 表单（参考图 3 / 4 ---------- */
.bz2-card{
  background:#fff;border:1px solid #ececf3;border-radius:22px;overflow:hidden;
}
.bz2-card-head{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:14px 24px;background:#f7fdf9;border-bottom:1px solid #e6f5ec;
  font-size:.84rem;font-weight:700;color:#0a7a63;
}
.bz2-card-head .grow{flex:1;}
.bz2-quota{
  display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:100px;
  background:#fff;border:1px solid #d6efe0;font-size:.76rem;font-weight:700;color:#0a7a63;
}
.bz2-card-body{padding:26px 24px 28px;}

.bz2-field{display:flex;flex-direction:column;gap:9px;margin-bottom:22px;}
.bz2-label{font-size:.9rem;font-weight:800;color:#171a33;}
.bz2-req{color:#c0392b;margin-left:2px;}
.bz2-hint{font-size:.76rem;color:#6b6d88;font-weight:400;margin-left:6px;}
.bz2-input{
  width:100%;padding:14px 16px;border-radius:12px;border:1px solid #e4e4ee;background:#fff;
  font-family:inherit;font-size:.88rem;color:#171a33;transition:all .16s;
}
.bz2-input::placeholder{color:#6b6d88;}
.bz2-input:focus{outline:none;border-color:#a99ce8;box-shadow:0 0 0 3px rgba(123,77,255,.1);}
textarea.bz2-input{min-height:150px;resize:vertical;line-height:1.8;}
.bz2-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}

/* chips（多选领域） */
.bz2-chips{display:flex;flex-wrap:wrap;gap:10px;}
.bz2-chip{
  padding:10px 20px;border-radius:100px;border:1px solid #e4e4ee;background:#fff;
  font-family:inherit;font-size:.85rem;font-weight:600;color:#3a3d5c;cursor:pointer;transition:all .16s;
}
.bz2-chip:hover{border-color:#c9bcf5;}
.bz2-chip.on{border:1.5px solid #171a33;color:#171a33;font-weight:800;background:#fbfbfd;}
.bz2-chip.on::after{content:"✓";font-size:.78rem;}

/* 双选项按钮（需求类 / 工作类型 / 接单类型 */
.bz2-choices{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.bz2-choice{
  padding:18px 16px;border-radius:14px;border:1px solid #e4e4ee;background:#fff;
  font-family:inherit;font-size:.88rem;font-weight:700;color:#3a3d5c;
  cursor:pointer;transition:all .16s;text-align:center;line-height:1.6;
}
.bz2-choice small{display:block;margin-top:4px;font-size:.74rem;font-weight:400;color:#6b6d88;}
.bz2-choice:hover{border-color:#c9bcf5;}
.bz2-choice.on{border:2px solid #171a33;color:#171a33;background:#fbfbfd;}

/* 步骤条（参考图 5-8 */
.bz2-steps{
  display:flex;align-items:flex-start;justify-content:center;gap:0;margin:0 0 26px;
}
.bz2-step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;}
.bz2-step-dot{
  width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:#eaeaf2;color:#4a4d66;font-size:.8rem;font-weight:800;z-index:1;
}
.bz2-step-label{margin-top:8px;font-size:.78rem;color:#6b6d88;font-weight:600;}
.bz2-step.done .bz2-step-dot{background:#00b5a4;color:#fff;}
.bz2-step.done .bz2-step-label{color:#0a7a63;}
.bz2-step.cur .bz2-step-dot{background:#171a33;color:#fff;}
.bz2-step.cur .bz2-step-label{color:#171a33;font-weight:800;}
.bz2-step::before{
  content:"";position:absolute;top:15px;left:-50%;width:100%;height:2px;background:#eeeef4;
}
.bz2-step:first-child::before{display:none;}
.bz2-step.done::before,.bz2-step.cur::before{background:#9fe3cf;}

.bz2-step-title{
  display:inline-block;margin-bottom:22px;padding:7px 14px;border-radius:9px;
  background:#fbfaf5;border:1px solid #f0eddd;
  font-size:.84rem;font-weight:800;color:#6b6d88;
}
.bz2-step-body{padding:24px;}

/* 作品上传 */
.bz2-uploads{display:flex;flex-direction:column;gap:12px;}
.bz2-upload{
  display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;
  border:1px solid #ececf3;background:#fbfbfd;
}
.bz2-upload-idx{width:26px;font-size:.84rem;font-weight:800;color:#6b6d88;}
.bz2-upload-thumb{
  width:64px;height:64px;border-radius:10px;flex:0 0 auto;object-fit:cover;background:#eaeaf2;
  display:flex;align-items:center;justify-content:center;color:#6b6d88;font-size:1.3rem;
}
.bz2-upload-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;}
.bz2-upload-del{
  flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:1px solid #ececf3;background:#fff;
  color:#6b6d88;cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.bz2-upload-del:hover{border-color:#f6d5d2;color:#b0281f;}
.bz2-upload-add{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  padding:26px;border-radius:14px;border:1px dashed #ddd8ee;background:#fcfcfe;
  color:#6b6d88;font-size:.84rem;cursor:pointer;font-family:inherit;
}
.bz2-upload-add:hover{border-color:#c9bcf5;color:#5b3fd4;}
.bz2-upload-add i{font-size:1.5rem;}

/* 滑块（日报价 */
.bz2-slider-row{display:flex;align-items:center;gap:16px;}
.bz2-slider{flex:1;accent-color:#171a33;height:4px;}
.bz2-slider-val{font-size:1.15rem;font-weight:900;color:#171a33;min-width:110px;text-align:center;}
.bz2-slider-range{display:flex;justify-content:space-between;font-size:.72rem;color:#6b6d88;margin-top:6px;}

/* 提示 */
.bz2-note{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:0 0 22px;padding:14px 18px;border-radius:14px;
  background:#f7fdf9;border:1px solid #dff2e8;font-size:.8rem;line-height:1.75;color:#0a7a63;
}
.bz2-note.warn{background:#fffdf3;border-color:#f5e9c8;color:#6b4a12;}
.bz2-note i{font-size:1rem;}
.bz2-note a{color:#5b3fd4;font-weight:700;}

/* 按钮 */
.bz2-actions{display:flex;justify-content:center;gap:14px;margin-top:26px;flex-wrap:wrap;}
.bz2-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:50px;padding:0 40px;border-radius:100px;border:1px solid transparent;
  font-family:inherit;font-size:.9rem;font-weight:800;cursor:pointer;text-decoration:none;transition:all .16s;
}
.bz2-btn.primary{background:#171a33;color:#fff;}
.bz2-btn.primary:hover:not(:disabled){background:#000;}
.bz2-btn.ghost{background:#fff;border-color:#e4e4ee;color:#2b2e4a;}
.bz2-btn.ghost:hover:not(:disabled){border-color:#c9bcf5;color:#5b3fd4;}
.bz2-btn.block{width:100%;}
.bz2-btn:disabled{opacity:.5;cursor:not-allowed;}
.bz2-btn:focus-visible{outline:2px solid #7b4dff;outline-offset:3px;}

/* 富文本工具条（外观对齐参考图，功能为原生 */
.bz2-rte{border:1px solid #e4e4ee;border-radius:14px;overflow:hidden;}
.bz2-rte-bar{
  display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:8px 10px;
  background:#fbfbfd;border-bottom:1px solid #ececf3;
}
.bz2-rte-bar button{
  width:32px;height:32px;border-radius:8px;border:0;background:transparent;color:#5b5d78;
  cursor:pointer;font-size:.9rem;font-family:inherit;
}
.bz2-rte-bar button:hover{background:#f0eefb;color:#5b3fd4;}
.bz2-rte textarea{border:0;border-radius:0;min-height:190px;}
.bz2-rte textarea:focus{box-shadow:none;}

/* 空 / 提示 */
.bz2-empty{padding:46px 0;text-align:center;font-size:.86rem;color:#6b6d88;}
.bz2-alert{
  display:flex;align-items:center;gap:8px;padding:14px 18px;border-radius:14px;
  background:#fdeceb;color:#b0281f;border:1px solid #f6d5d2;font-size:.84rem;
}

/* ---------- 响应 ---------- */
@media (max-width:860px){
  .bz2-title{font-size:1.6rem;}
  .bz2-roles{flex-direction:column;}
  .bz2-or{padding:6px 0;}
  .bz2-kinds{grid-template-columns:1fr;}
  .bz2-grid2{grid-template-columns:1fr;}
  .bz2-choices{grid-template-columns:1fr;}
  .bz2-page{padding:22px 14px 56px;}
  .bz2-card-body{padding:20px 16px 24px;}
  .bz2-step-body{padding:18px 16px;}
  .bz2-role{padding:28px 20px 24px;}
  .bz2-role-ic{width:76px;height:76px;font-size:2.4rem;border-radius:22px;}
  .bz2-step-label{font-size:.68rem;}
  .bz2-btn{height:46px;padding:0 24px;font-size:.86rem;}
  .bz2-actions{gap:10px;}
}

/* ---------- 列表页（已选身份） ---------- */
.bz2-rolebar{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px;
}
.bz2-roles2{display:flex;gap:6px;background:#f7f6fb;border-radius:100px;padding:4px;}
.bz2-rbtn{
  display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border:0;border-radius:100px;
  background:transparent;color:#6b6d88;font-family:inherit;font-size:.85rem;font-weight:700;
  cursor:pointer;transition:all .16s;
}
.bz2-rbtn:hover{color:#5b3fd4;}
.bz2-rbtn.on{background:#fff;color:#171a33;box-shadow:0 1px 4px rgba(20,20,46,.1);}
.bz2-rolebar-actions{display:flex;gap:8px;flex-wrap:wrap;}
.bz2-v{
  font-style:normal;font-size:.66rem;font-weight:800;padding:2px 7px;border-radius:6px;margin-left:3px;
}
.bz2-v.blue{background:#eef2ff;color:#3f4fd4;}
.bz2-v.gold{background:#fdf6e3;color:#8a6119;}

.bz2-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:20px;}
.bz2-tab{
  display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:100px;
  border:1px solid #e4e4ee;background:#fff;color:#5b5d78;
  font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .16s;
}
.bz2-tab:hover{border-color:#c9bcf5;color:#5b3fd4;}
.bz2-tab.on{background:#171a33;border-color:#171a33;color:#fff;}
/* ---------- 列表页页头（2026-10-03：与人脉 /contacts 同构 ----------
   ⚠️ nowrap + 右侧操作不收缩：保证「我的发 认证/投 收到的投 + 发布 
   始终与标题同一行；宽度不够时由 .bz2-me-inline  .bz2-me-compact 接管 */
.bz2-hero{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:nowrap;
  padding:26px 0 20px;
}
.bz2-hero-main{min-width:0;}
.bz2-hero-title{margin:0 0 6px;font-size:1.7rem;font-weight:900;color:#171a33;letter-spacing:-.5px;}
.bz2-hero-sub{margin:0;font-size:.92rem;color:#5b5d78;}
.bz2-hero-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;flex:0 0 auto;}

/* 页头右上：宽屏平 / 窄屏下拉 */
.bz2-me-inline{display:flex;align-items:center;gap:8px;}
.bz2-me-compact{display:none;position:relative;}
.bz2-me-menu{
  position:absolute;right:0;top:calc(100% + 8px);z-index:40;min-width:196px;
  background:#fff;border:1px solid #ece9f8;border-radius:14px;padding:6px;
  box-shadow:0 18px 40px -18px rgba(23,26,51,.35);
}
.bz2-me-item{
  display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:10px;
  font-size:.86rem;font-weight:600;color:#2b2e4a;text-decoration:none;
}
.bz2-me-item:hover{background:#f7f5ff;color:#5b3fd4;}

/* 宽度不足以平铺时  收进「我的」下拉（标题与「发布」仍在同一行） */
@media (max-width:1180px){
  .bz2-me-inline{display:none;}
  .bz2-me-compact{display:block;}
}
@media (max-width:640px){
  .bz2-hero{align-items:center;gap:14px;}
  .bz2-hero-title{font-size:1.4rem;}
  .bz2-hero-sub{display:none;}
}

/* ---------- 列表页搜索（独立一行，位于子导航上方） ---------- */
.bz2-search-row{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.bz2-search-box{
  position:relative;flex:1;min-width:0;display:flex;align-items:center;
  height:52px;border-radius:14px;background:#fff;border:1.5px solid #ece9f8;
  transition:border-color .18s, box-shadow .18s;
}
.bz2-search-box:focus-within{border-color:#b9a5ff;box-shadow:0 0 0 4px rgba(123,77,255,.1);}
.bz2-search-box > i{position:absolute;left:16px;color:#6b6d88;font-size:1.05rem;}
.bz2-search-box input{
  flex:1;min-width:0;height:100%;border:0;background:transparent;outline:none;
  padding:0 44px 0 46px;font-family:inherit;font-size:1rem;color:#171a33;
}
.bz2-search-box input::placeholder{color:#6b6d88;}
.bz2-search-clear{
  position:absolute;right:11px;width:28px;height:28px;border-radius:8px;border:0;
  background:#f4f2fb;color:#5b5d78;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.76rem;
}
.bz2-search-clear:hover{background:#ece8fa;color:#3f2fa8;}
.bz2-search-btn{
  display:inline-flex;align-items:center;gap:7px;height:52px;padding:0 26px;border-radius:14px;border:0;
  background:linear-gradient(135deg,#7b4dff,#4f46e5);color:#fff;
  font-family:inherit;font-size:.95rem;font-weight:700;cursor:pointer;white-space:nowrap;
  box-shadow:0 10px 22px -12px rgba(123,77,255,.9);transition:all .18s;
}
.bz2-search-btn:hover{transform:translateY(-1px);box-shadow:0 14px 28px -12px rgba(123,77,255,1);}
@media (max-width:640px){
  .bz2-search-btn{padding:0 16px;}
  .bz2-search-btn i{display:none;}
}

/* ---------- 全局登录 / 注册弹窗 026-10-03 ---------- */
/* ⚠️ 遮罩必须高于顶部导航 tj-header  z-index:1000）及各业务弹窗（1200 500），
   否则导航会“浮”在遮罩之上仍可点击 026-10-03 修） */
.authm-mask{
  position:fixed;inset:0;z-index:6800;background:rgba(17,19,40,.5);
  display:flex;align-items:center;justify-content:center;padding:20px;
  animation:authmFade .16s ease;
}
@keyframes authmFade{from{opacity:0}to{opacity:1}}
.authm-card{
  position:relative;width:100%;max-width:420px;max-height:88vh;overflow-y:auto;
  background:#fff;border-radius:18px;padding:26px 24px 22px;
  box-shadow:0 30px 70px -25px rgba(17,19,40,.55);
  animation:authmPop .18s ease;
}
@keyframes authmPop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.authm-close{
  position:absolute;right:14px;top:14px;width:32px;height:32px;border:0;border-radius:10px;
  background:#f4f2fb;color:#5b5d78;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.8rem;
}
.authm-close:hover{background:#ece8fa;color:#3f2fa8;}
.authm-head{margin-bottom:16px;}
.authm-head h3{margin:0 0 6px;font-size:1.28rem;font-weight:900;color:#171a33;}
.authm-head p{margin:0;font-size:.84rem;color:#6b6d88;}

.authm-tabs{display:flex;gap:6px;padding:4px;border-radius:10px;background:#f4f2fb;border:1px solid #ece9f8;margin-bottom:18px;}
.authm-tab{
  flex:1;height:36px;border:0;border-radius:8px;background:transparent;
  font-family:inherit;font-size:.9rem;font-weight:700;color:#6b6d88;cursor:pointer;transition:all .16s;
}
.authm-tab:hover{color:#5b3fd4;}
.authm-tab.on{background:#fff;color:#5b3fd4;box-shadow:0 1px 3px rgba(23,26,51,.1);}

.authm-modes{display:flex;gap:14px;margin-bottom:14px;}
.authm-mode{
  border:0;background:transparent;padding:0 0 4px;cursor:pointer;
  font-family:inherit;font-size:.84rem;font-weight:700;color:#8a8ca0;
  border-bottom:2px solid transparent;transition:all .16s;
}
.authm-mode:hover{color:#5b3fd4;}
.authm-mode.on{color:#5b3fd4;border-bottom-color:#7b4dff;}

.authm-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.authm-field > span{font-size:.82rem;font-weight:700;color:#3a3d5c;}
.authm-field > span em{font-style:normal;font-weight:600;color:#8a8ca0;}
.authm-code-row{display:flex;gap:10px;align-items:center;}
.authm-code-row .form-input{flex:1;min-width:0;}
.authm-code-btn{
  flex:0 0 auto;min-width:104px;height:42px;padding:0 12px;border-radius:10px;
  border:1px solid #e4e1f5;background:#fff;color:#3a3d5c;white-space:nowrap;
  font-family:inherit;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .16s;
}
.authm-code-btn:hover:not(:disabled){border-color:#c9b8ff;background:#faf9ff;color:#5b3fd4;}
.authm-code-btn:disabled{opacity:.6;cursor:not-allowed;}

.authm-foot{margin:14px 0 0;text-align:center;font-size:.82rem;color:#6b6d88;}
.authm-foot button{
  border:0;background:transparent;padding:0;cursor:pointer;
  font-family:inherit;font-size:.82rem;font-weight:700;color:#5b3fd4;
}
.authm-foot button:hover{text-decoration:underline;}

@media (max-width:480px){
  .authm-card{padding:22px 18px 18px;border-radius:16px;}
  .authm-code-btn{min-width:88px;}
}

/* ---------- 会员专属提示弹窗 ---------- */
.mgm-card{
  position:relative;width:100%;max-width:400px;text-align:center;
  background:#fff;border-radius:18px;padding:30px 24px 22px;
  /* 加权益清单后卡片变高，窄/矮屏幕上要能滚动，否则底部按钮会被挤出可视区 */
  max-height:calc(100vh - 40px);overflow-y:auto;
  box-shadow:0 30px 70px -25px rgba(17,19,40,.55);
  animation:authmPop .18s ease;
}
.mgm-ic{font-size:2rem;color:#7b4dff;}
.mgm-card h3{margin:12px 0 8px;font-size:1.16rem;font-weight:900;color:#171a33;}
.mgm-card p{margin:0 0 14px;font-size:.85rem;line-height:1.8;color:#5b5d78;}
/* 会员权益清单  条小胶囊，替代原来的一整段文字（更好扫读） */
.mgm-perks{
  list-style:none;margin:0 0 18px;padding:0;
  display:flex;flex-direction:column;gap:8px;text-align:left;
}
.mgm-perks li{
  display:flex;align-items:center;gap:8px;
  font-size:.8rem;font-weight:600;color:#3f4159;
  background:#f7f5ff;border:1px solid #ece8fa;border-radius:10px;padding:8px 12px;
}
.mgm-perks li i{color:#7b4dff;font-size:.92rem;flex-shrink:0;}
.mgm-later{
  display:block;width:100%;margin-top:10px;border:0;background:none;padding:6px 0;
  font-family:inherit;font-size:.82rem;font-weight:600;color:#8a8ca0;cursor:pointer;
}
.mgm-later:hover{color:#5b3fd4;}

/* 行内文字按钮（如「请先登录后操作」里的「登录」） */
.bz-linkbtn{
  border:0;background:none;padding:0;margin:0;cursor:pointer;
  font-family:inherit;font-size:inherit;font-weight:700;color:#5b3fd4;
}
.bz-linkbtn:hover{text-decoration:underline;}

/* ---------- 未登录占位（LoginRequired：进入即弹登录弹窗） ---------- */
.lgr-wrap{display:flex;align-items:center;justify-content:center;padding:56px 20px;}
.lgr-card{
  width:100%;max-width:420px;text-align:center;
  padding:30px 26px;border-radius:18px;
  background:#fff;border:1px solid #ece9f8;box-shadow:0 18px 44px -26px rgba(23,26,51,.45);
}
.lgr-ic{font-size:1.9rem;color:#7b4dff;}
.lgr-card h3{margin:12px 0 8px;font-size:1.12rem;font-weight:900;color:#171a33;}
.lgr-card p{margin:0 0 18px;font-size:.86rem;line-height:1.75;color:#5b5d78;}
.lgr-card .btn{min-width:160px;}

.bz2-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;}
.bz2-item{
  display:flex;flex-direction:column;gap:12px;padding:22px;border-radius:18px;
  background:#fff;border:1px solid #ececf3;text-decoration:none;transition:all .18s;
}
.bz2-item:hover{border-color:#d8d3ee;box-shadow:0 14px 34px -28px rgba(20,20,46,.5);transform:translateY(-2px);}
.bz2-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.bz2-item-head h4{
  margin:0;font-size:.98rem;font-weight:800;color:#171a33;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.bz2-item-sum{
  margin:0;font-size:.82rem;line-height:1.7;color:#6b6d88;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.bz2-badge{
  flex:0 0 auto;font-size:.7rem;font-weight:800;padding:3px 10px;border-radius:100px;
  background:#f2eeff;color:#5b3fd4;
}
.bz2-badge.ghost{background:#f5f5f9;color:#6b6d88;}
.bz2-item-tags{display:flex;gap:6px;flex-wrap:wrap;}
.bz2-item-tags em{
  font-style:normal;font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:100px;
  background:#f7f7fb;color:#6b6d88;
}
/* 行业标签：一 10+ 张卡片，行业是「上下文」不是「强调」，
   所以只比普通标签深一档（#3c3f5c / #e9eaf2 = 8.4:1），不引入新 */
.bz2-item-tags em.ind{background:#e9eaf2;color:#3c3f5c;font-weight:700;}
.bz2-item-foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:auto;padding-top:12px;border-top:1px solid #f4f4f8;
}
.bz2-price{font-size:.95rem;font-weight:900;color:#0a7a63;}
.bz2-item-meta{font-size:.75rem;color:#6b6d88;}

.bz2-btn.sm{height:38px;padding:0 18px;font-size:.82rem;}

@media (max-width:860px){
  .bz2-list{grid-template-columns:1fr;}
  .bz2-search{margin-left:0;width:100%;}
  .bz2-rolebar{gap:10px;}
  .bz2-rolebar-actions{width:100%;}
}

/* ============================================================
   资源对接频道 · v3 扩展样式 026-09-19 
   覆盖  类发布表 / 5 类详情差异化 / 人才完整简 /
        互评与对比模 / 工作台「我的发布  后台频道运营
   ⚠️ 对比度：正文 #4a4d66 起，次要 #6b6d88，禁止浅 #6b6d88
   ============================================================ */

/* ----------  类型选择卡：5 张自适应网格 ---------- */
.bz2-kinds.grid {
  display: grid;
  /* 5 张卡：固 3   3 + 2，比 auto-fit  4 + 1（留一张孤卡）更均 */
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  max-width: 1040px;
  margin: 0 auto;
}
@media (max-width: 1023px) { .bz2-kinds.grid { grid-template-columns: repeat(2, 1fr); max-width: 720px; } }
.bz2-kinds.grid .bz2-kind { padding: 24px 20px; }
.bz2-kind-ic i { font-size: 1.7rem; }
.bz2-kind.on { border-color: #cdbcfb; box-shadow: 0 8px 26px -20px rgba(91, 63, 212, .55); }

/* ----------  表单零件 ---------- */
.bz2-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.bz2-input[rows] { resize: vertical; line-height: 1.7; }

.bz2-toggles { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.bz2-toggle {
  display: flex; align-items: flex-start; gap: 10px; text-align: left;
  padding: 12px 14px; border-radius: 12px; border: 1px solid #ececf3; background: #fff;
  font-family: inherit; cursor: pointer; transition: all .15s;
}
.bz2-toggle:hover { border-color: #cdbcfb; background: #faf9ff; }
.bz2-toggle.on { border-color: #cdbcfb; background: #f2eeff; }
.bz2-toggle-box {
  width: 18px; height: 18px; flex: 0 0 18px; border-radius: 6px; margin-top: 1px;
  border: 1.5px solid #d8d5e6; background: #fff;
  display: flex; align-items: center; justify-content: center; font-size: .7rem; color: #fff;
}
.bz2-toggle.on .bz2-toggle-box { background: #5b3fd4; border-color: #5b3fd4; }
.bz2-toggle-txt b { display: block; font-size: .86rem; font-weight: 700; color: #171a33; }
.bz2-toggle-txt em { display: block; margin-top: 2px; font-style: normal; font-size: .74rem; color: #6b6d88; }

.bz2-rte-tpl {
  width: auto; padding: 0 10px; margin-left: 6px; height: 30px; border-radius: 8px;
  border: 1px solid #e2e0ec; background: #fff; color: #5b3fd4;
  font-family: inherit; font-size: .78rem; font-weight: 700; cursor: pointer;
}
.bz2-rte-tpl:hover { border-color: #cdbcfb; background: #f7f5ff; }

/* ----------  详情页：结构化字 ---------- */
.bz-lead { margin: 12px 0 4px; font-size: .92rem; line-height: 1.8; color: #4a4d66; }
.bz-chip.ok { background: #eafaf7; border-color: #cdeee8; color: #0a6b61; }
.bz-chip.warn { background: #fdf6e3; border-color: #f0e3c2; color: #8a6119; }
.bz-chip i { margin-right: 3px; }

.bz-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.bz-res { padding: 14px 16px; border-radius: 12px; border: 1px solid #ececf3; background: #fbfbfe; }
.bz-res span { display: block; font-size: .78rem; font-weight: 800; color: #6b6d88; margin-bottom: 6px; }
.bz-res p { margin: 0; font-size: .9rem; line-height: 1.8; color: #2b2e4a; white-space: pre-wrap; }
.bz-res.given { border-color: #cdeee8; background: #f4fbf9; }
.bz-res.given span { color: #0a6b61; }
.bz-res.want { border-color: #e4e1f5; background: #faf9ff; }
.bz-res.want span { color: #5b3fd4; }

.bz-done {
  display: flex; align-items: center; gap: 8px; margin-top: 10px;
  padding: 11px 14px; border-radius: 10px; background: #f0fbf9;
  border: 1px solid #cdeee8; color: #0a6b61; font-size: .86rem; font-weight: 700;
}
.bz-side-list { list-style: none; margin: 0; padding: 0; }
.bz-side-list li {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 0; border-bottom: 1px dashed #f0edfa; font-size: .84rem; color: #6b6d88;
}
.bz-side-list li:last-child { border-bottom: 0; }
.bz-side-list b { color: #171a33; }

/* ----------  人才：技 / 两套薪酬 / 作品 ---------- */
.bz-skills { display: flex; flex-wrap: wrap; gap: 10px; }
.bz-skill {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-radius: 10px; border: 1px solid #ececf3; background: #fbfbfe;
}
.bz-skill b { font-size: .86rem; color: #171a33; }
.bz-skill em {
  font-style: normal; font-size: .7rem; font-weight: 700; padding: 2px 7px; border-radius: 6px;
  background: #f2eeff; color: #5b3fd4;
}
.bz-skill span { font-size: .74rem; color: #6b6d88; }

.bz-pay { padding: 14px 16px; border-radius: 12px; border: 1px solid #ececf3; background: #fbfbfe; }
.bz-pay-title {
  display: flex; align-items: center; gap: 6px; margin-bottom: 8px;
  font-size: .82rem; font-weight: 800; color: #171a33;
}
.bz-pay ul { margin: 0; padding-left: 18px; }
.bz-pay li { font-size: .84rem; line-height: 1.9; color: #4a4d66; }

.bz-exp { padding: 10px 0; border-bottom: 1px dashed #f0edfa; }
.bz-exp:last-child { border-bottom: 0; }
.bz-exp b { font-size: .88rem; color: #171a33; }
.bz-exp em { display: block; margin: 2px 0 4px; font-style: normal; font-size: .76rem; color: #6b6d88; }
.bz-exp p { margin: 0; font-size: .86rem; line-height: 1.8; color: #4a4d66; }
.bz-exp-result { color: #0a6b61 !important; font-weight: 600; }
.bz-exp a { display: inline-block; margin-top: 4px; font-size: .8rem; color: #5b3fd4; }

.bz-portfolio { display: flex; flex-wrap: wrap; gap: 10px; }
.bz-work {
  display: inline-flex; align-items: center; gap: 8px; max-width: 260px;
  padding: 10px 13px; border-radius: 10px; border: 1px solid #ececf3; background: #fbfbfe;
  color: #2b2e4a; font-size: .84rem; text-decoration: none; transition: all .15s;
}
.bz-work:hover { border-color: #cdbcfb; background: #f7f5ff; color: #5b3fd4; }
.bz-work span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bz-contact {
  display: flex; align-items: center; gap: 8px; padding: 11px 14px; border-radius: 10px;
  background: #f0fbf9; border: 1px solid #cdeee8; color: #0a6b61; font-size: .9rem; font-weight: 800;
}
.bz-score { font-size: 1.1rem; color: #8a6119; }

/* ----------  互评 ---------- */
.bz-review-form { margin-top: 4px; }
.bz-stars-input { display: flex; align-items: center; gap: 4px; }
.bz-stars-input button {
  border: 0; background: none; padding: 0 2px; cursor: pointer;
  font-size: 1.2rem; color: #ddd9ea; transition: color .12s;
}
.bz-stars-input button.on { color: #e8a838; }
.bz-stars-input span { margin-left: 8px; font-size: .82rem; font-weight: 700; color: #8a6119; }

.bz-reviews { display: flex; flex-direction: column; gap: 12px; }
.bz-review { padding: 12px 14px; border-radius: 12px; border: 1px solid #ececf3; background: #fbfbfe; }
.bz-review-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.bz-review-head b { font-size: .86rem; color: #171a33; }
.bz-stars { font-size: .82rem; color: #e8a838; letter-spacing: 1px; }
.bz-stars em { font-style: normal; color: #ddd9ea; }
.bz-review p { margin: 6px 0 0; font-size: .84rem; line-height: 1.8; color: #4a4d66; }

/* ----------  评标对比模式 ---------- */
.bz-compare { margin-bottom: 14px; padding: 14px; border-radius: 12px; border: 1px solid #e4e1f5; background: #faf9ff; }
.bz-cmp-table { overflow-x: auto; margin-top: 10px; }
.bz-cmp-table table { width: 100%; border-collapse: collapse; font-size: .82rem; background: #fff; border-radius: 10px; }
.bz-cmp-table th, .bz-cmp-table td {
  padding: 9px 11px; border-bottom: 1px solid #f2f0f8; text-align: left; vertical-align: top; color: #2b2e4a;
}
.bz-cmp-table th { background: #f7f5ff; color: #5b3fd4; font-weight: 800; white-space: nowrap; }
.bz-cmp-table td:first-child { width: 96px; color: #6b6d88; font-weight: 700; }
.bz-cmp-plan { max-width: 220px; white-space: pre-wrap; line-height: 1.7; }
.bz-cmp-pick { margin-right: 8px; display: inline-flex; align-items: center; }
.bz-bid-owner {
  margin: 8px 0; padding: 9px 12px; border-radius: 10px;
  background: #f0fbf9; border: 1px solid #cdeee8; color: #0a6b61; font-size: .82rem;
}

/* ----------  工作台「我的发布 ---------- */
.bz-sub-title {
  display: flex; align-items: center; gap: 6px; margin: 8px 0 10px;
  font-size: .88rem; font-weight: 800; color: #171a33;
}
.bz-inline { display: flex; gap: 8px; }
.bz-inline .form-input { flex: 1; min-width: 0; }
.bz-mini { width: auto !important; min-width: 96px; }

.bz-tabs.sm { margin-bottom: 14px; }
.bz-tabs.sm .bz-tab { padding: 6px 13px; font-size: .8rem; }

.bz-pub-list { list-style: none; margin: 0; padding: 0; }
.bz-pub-list li {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 13px 0; border-bottom: 1px solid #f4f1fa;
}
.bz-pub-list li:last-child { border-bottom: 0; }
.bz-pub-main { min-width: 0; flex: 1; }
.bz-pub-title { display: flex; align-items: center; gap: 8px; }
.bz-pub-title a {
  font-size: .9rem; font-weight: 700; color: #171a33; text-decoration: none;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.bz-pub-title a:hover { color: #5b3fd4; text-decoration: underline; }
.bz-pub-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 6px; }
.bz-pub-meta em { font-style: normal; font-size: .76rem; color: #6b6d88; }
.bz-pub-actions { display: flex; gap: 6px; flex: 0 0 auto; }
.bz-st {
  display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 100px;
  font-size: .72rem; font-weight: 700; background: #f2eeff; color: #5b3fd4;
}
.bz-st.awarded { background: #f0fbf9; color: #0a6b61; }
.bz-st.closed, .bz-st.offline { background: #f4f3f8; color: #6b6d88; }
.bz-st.reviewing { background: #fdf6e3; color: #8a6119; }

/* ----------  后台：频道看 ---------- */
.mg-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.mg-metric { padding: 16px; border-radius: 12px; border: 1px solid #ece9f8; background: #fcfbff; }
.mg-metric > span { display: block; font-size: .78rem; font-weight: 700; color: #6b6d88; }
.mg-metric > b { display: block; margin: 6px 0 6px; font-size: 1.5rem; font-weight: 800; color: #171a33; line-height: 1.1; }
.mg-metric p { margin: 0; font-size: .78rem; line-height: 1.7; color: #6b6d88; }

.mg-bars { display: flex; flex-direction: column; gap: 10px; }
.mg-bar-row { display: flex; align-items: center; gap: 12px; }
.mg-bar-label { width: 62px; font-size: .82rem; color: #2b2e4a; font-weight: 600; }
.mg-bar { flex: 1; height: 14px; border-radius: 7px; background: #f2f0f8; overflow: hidden; }
.mg-bar i { display: block; height: 100%; border-radius: 7px; background: #7b4dff; }
.mg-bar-num { width: 40px; text-align: right; font-size: .82rem; font-weight: 700; color: #171a33; }
.mg-mini { width: auto !important; min-width: 128px; }
.mg-hint { font-size: .78rem; color: #6b6d88; }

/* ----------  响应 ---------- */
@media (max-width: 900px) {
  .bz2-grid3 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .bz2-kinds.grid { grid-template-columns: 1fr; }
  .bz2-grid3, .bz-grid2 { grid-template-columns: 1fr; }
  .bz2-toggles { grid-template-columns: 1fr; }
  .bz-cmp-table table { font-size: .78rem; }
  .bz-pub-list li { flex-direction: column; align-items: flex-start; gap: 10px; }
  .mg-bar-label { width: 52px; }
}

/* ============================================================
   资源对接 · 二级导航 026-09-19 
   层级：大厅切  子导航（商单/合作/活动/企服/招聘）→ 二级导航（分类筛选）
   ⚠️ 对比度：标签 #6b6d88 .06:1）、未选中 #4a4d66 .5:1）、选中 #5b3fd4
   ============================================================ */
.bz2-rbtn{text-decoration:none;}          /* 大厅切换已由 button 改为页面链接（a */
.bz2-rbtn:visited{color:#6b6d88;}
.bz2-rbtn.on:visited{color:#171a33;}

.bz2-subnav{
  display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;
  margin:-4px 0 18px;padding:13px 16px;border-radius:14px;
  background:#fbfbfe;border:1px solid #f0eef6;
}
.bz2-subnav-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.bz2-subnav-sep{width:1px;height:18px;background:#e8e5f2;}
.bz2-subnav-label{
  flex:0 0 auto;font-size:.78rem;font-weight:800;color:#6b6d88;letter-spacing:.2px;
}
.bz2-subnav-items{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.bz2-subnav-item{
  padding:5px 13px;border-radius:100px;border:1px solid transparent;background:transparent;
  color:#4a4d66;font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s;
}
.bz2-subnav-item:hover{background:#f2eeff;color:#5b3fd4;}
.bz2-subnav-item.on{
  background:#fff;border-color:#cdbcfb;color:#5b3fd4;font-weight:700;
  box-shadow:0 2px 8px -6px rgba(91,63,212,.7);
}
.bz2-subnav-item:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}

/* 空态补充说明（例如「人才市场只展示审核通过入驻的服务者」） */
.bz2-empty-hint{
  display:block;margin-top:8px;font-size:.78rem;color:#6b6d88;
}
.bz2-empty-hint b{color:#5b3fd4;}

/* ============================================================
   列表通用筛选条（行业分 + 城市分类 
   2026-09-19 新增，用 /biz  /biz/talent
   对比度：#4a4d66/#fbfbfe 7.5:1 · #5b3fd4/#fff 6.7:1 · 数量 #6b6d88  .8:1
   ============================================================ */
.bz2-filter{
  display:flex;flex-direction:column;gap:2px;
  margin:0 0 18px;padding:4px 16px;border-radius:14px;
  background:#fbfbfe;border:1px solid #f0eef6;
}
.bz2-filter-row{
  display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;
  padding:10px 0;border-bottom:1px solid #f4f2fa;
}
.bz2-filter-row:last-child{border-bottom:0;}
.bz2-filter-row.sub{background:#fdfcff;margin:0 -16px;padding-left:16px;padding-right:16px;}
.bz2-filter-label{
  flex:0 0 auto;min-width:60px;padding-top:5px;
  font-size:.78rem;font-weight:800;color:#6b6d88;letter-spacing:.2px;
}
.bz2-filter-row.picked .bz2-filter-label{color:#5b3fd4;}
.bz2-filter-items{display:flex;align-items:center;gap:7px;flex-wrap:wrap;flex:1;min-width:0;}

.bz2-fchip{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 12px;border-radius:100px;border:1px solid transparent;background:transparent;
  color:#4a4d66;font-family:inherit;font-size:.82rem;font-weight:600;
  cursor:pointer;transition:all .15s;
}
.bz2-fchip.sm{padding:3px 10px;font-size:.78rem;}
.bz2-fchip:hover{background:#f2eeff;color:#5b3fd4;}
.bz2-fchip.on{
  background:#fff;border-color:#cdbcfb;color:#5b3fd4;font-weight:700;
  box-shadow:0 2px 8px -6px rgba(91,63,212,.7);
}
.bz2-fchip:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}
/* 数量角标：三种底都要 AA — 
   默认 #fbfbfe .99:1）、选中 #fff、hover  #f2eeff .25:1 
   ⚠️ 早先 #6b6d88 时， hover  #f2eeff 上只 4.43:1（差 0.07 不达标） */
.bz2-fchip-n{
  font-style:normal;font-size:.68rem;font-weight:700;color:#4a4d66;
}
.bz2-fchip.on .bz2-fchip-n{color:#5b3fd4;}

.bz2-fmore{
  display:inline-flex;align-items:center;gap:3px;
  padding:4px 10px;border:0;background:transparent;border-radius:100px;
  color:#5b3fd4;font-family:inherit;font-size:.78rem;font-weight:700;cursor:pointer;
}
.bz2-fmore:hover{background:#f2eeff;}
.bz2-fmore:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}
.bz2-fmore i{font-size:.7rem;}
.bz2-fempty{font-size:.78rem;color:#6b6d88;}

.bz2-ftag{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 9px;border-radius:8px;border:1px solid #cdbcfb;background:#f2eeff;
  color:#5b3fd4;font-family:inherit;font-size:.76rem;font-weight:700;cursor:pointer;
}
.bz2-ftag:hover{background:#e8e0ff;}
.bz2-ftag:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}
.bz2-ftag i{font-size:.7rem;}

/* 「已入驻」等带图标的小徽 */
.bz2-badge i{font-size:.72rem;margin-right:3px;}

@media (max-width:767px){
  .bz2-subnav{padding:11px 12px;gap:10px;}
  .bz2-subnav-sep{display:none;}
  .bz2-subnav-group{width:100%;}
  .bz2-subnav-item{padding:5px 11px;font-size:.78rem;}

  /* 筛选条：标签独占一行，chips 横向铺满并允许换行（390px 下不横向溢出 */
  .bz2-filter{padding:2px 12px;}
  .bz2-filter-row{gap:6px;padding:9px 0;}
  .bz2-filter-row.sub{margin:0 -12px;padding-left:12px;padding-right:12px;}
  .bz2-filter-label{min-width:0;width:100%;padding-top:0;}
  .bz2-fchip{padding:4px 10px;font-size:.78rem;}
  .bz2-fchip-n{font-size:.64rem;}
}

/* 「已入驻 / 已认证」类信任标识：用站内认证青绿，与紫色状态标（竞标中）区 */
.bz2-badge.ok{background:#eafaf7;color:#0a6b61;}

/* 后台：驳回原因就地填 */
.mg-reject{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;
  padding:12px 14px;border-radius:12px;background:#fdf6e3;border:1px solid #f0e3c2;
}
.mg-reject > span{font-size:.8rem;font-weight:700;color:#8a6119;}
.mg-reject .form-input{flex:1;min-width:240px;}
.mg-tag.ok{background:#eafaf7;color:#0a6b61;}

/* ==========================================================================
   /biz 资源对接频道 · 图文卡片改版 026-09-22）— .bz3-*
   参考「多行筛选面 + 排序 + 左侧图文卡片 + 右侧榜单」的信息结构重构 
   配色沿用本站主色 5b3fd4 紫），不引入参考图的绿色，避免与全 VI 打架 
   ========================================================================== */

/* ---------- 两栏骨架 ---------- */
.bz3-body{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px;align-items:start;}
.bz3-main{min-width:0;}

/* ---------- 筛选面 ---------- */
.bz3-filter{background:#fff;border:1px solid #ececf3;border-radius:16px;padding:4px 18px;margin-bottom:16px;}
.bz3-frow{display:flex;align-items:flex-start;gap:14px;padding:11px 0;border-bottom:1px solid #f4f4f8;}
.bz3-frow:last-child{border-bottom:0;}
.bz3-frow.sub{background:#fdfcff;margin:0 -18px;padding-left:18px;padding-right:18px;}
.bz3-frow.picked .bz3-flabel{color:#5b3fd4;}
.bz3-flabel{flex:0 0 72px;font-size:.82rem;font-weight:700;color:#6b6d88;line-height:26px;padding-top:1px;}
.bz3-fitems{display:flex;align-items:center;gap:7px;flex-wrap:wrap;flex:1;min-width:0;}
.bz3-fempty{font-size:.78rem;color:#6b6d88;}

/* 分类行：下划线标签（对应参考图的「合作类型」行），与下 chips 形成层次 */
.bz3-ftab{
  padding:5px 11px;border:0;border-bottom:2px solid transparent;background:transparent;
  color:#4a4d66;font-family:inherit;font-size:.84rem;font-weight:600;
  cursor:pointer;transition:color .15s,border-color .15s;line-height:1.5;
}
.bz3-ftab:hover{color:#5b3fd4;}
.bz3-ftab.on{color:#5b3fd4;font-weight:800;border-bottom-color:#5b3fd4;}
.bz3-ftab:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}

/* 资源 / 行业 / 地区：胶囊标 */
.bz3-chip{
  display:inline-flex;align-items:center;
  padding:4px 12px;border-radius:8px;border:1px solid transparent;background:#f5f5f9;
  color:#4a4d66;font-family:inherit;font-size:.8rem;font-weight:600;
  cursor:pointer;transition:all .15s;
}
.bz3-chip:hover{background:#f2eeff;color:#5b3fd4;}
.bz3-chip.on{background:#5b3fd4;border-color:#5b3fd4;color:#fff;font-weight:700;}
.bz3-chip:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}
/* 数量角标：默认底 #f5f5f9 .4:1）、hover  #f2eeff .25:1） 
   选中 #5b3fd4  #e9e3ff .3:1）— 三态都 WCAG AA */
.bz3-chip-n{font-style:normal;font-size:.68rem;font-weight:700;color:#4a4d66;margin-left:5px;}
.bz3-chip.on .bz3-chip-n{color:#e9e3ff;}

.bz3-more{
  display:inline-flex;align-items:center;gap:3px;
  padding:4px 10px;border:0;background:transparent;border-radius:8px;
  color:#5b3fd4;font-family:inherit;font-size:.78rem;font-weight:700;cursor:pointer;
}
.bz3-more:hover{background:#f2eeff;}
.bz3-more:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}
.bz3-more i{font-size:.7rem;}

/* ---------- 人脉 /contacts 的筛选面板（复用 bz3 面板视觉 ---------
   2026-10-01：与「资源对接 /biz」统一成同一套筛选面板（components/FilterPanel.jsx） 
   这里只做两处排版微调，不改配色（bz3 的三态对比度已经验过：默 7.4:1 / hover 7.25:1 / 选中 5.3:1） */
.ct-fpanel .bz3-flabel{min-width:88px;}
/* 面板下方的一行数据说明（地域覆盖范围 */
.ct-fpanel-note{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  margin:-6px 0 16px;padding:0 4px;
  font-size:.78rem;color:#6b6d88;
}
.ct-fpanel-note i{color:#5b3fd4;}

.bz3-fpicked{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 9px;border-radius:8px;border:1px solid #cdbcfb;background:#f2eeff;
  color:#5b3fd4;font-family:inherit;font-size:.76rem;font-weight:700;cursor:pointer;
}
.bz3-fpicked:hover{background:#e8e0ff;}
.bz3-fpicked:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}
.bz3-fpicked i{font-size:.7rem;}

/* ---------- 排序 ---------- */
.bz3-sortbar{
  display:flex;align-items:center;gap:2px;flex-wrap:wrap;
  padding:0 2px 11px;border-bottom:1px solid #f0f0f6;margin-bottom:14px;
}
.bz3-sort{
  position:relative;padding:6px 14px;border:0;border-radius:8px;background:transparent;
  color:#4a4d66;font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s;
}
/* 分隔竖线：用伪元素挂在相邻按钮之间，不参与按钮自身的盒模 */
.bz3-sort + .bz3-sort::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:1px;height:12px;background:#ececf3;
}
.bz3-sort:hover{color:#5b3fd4;background:#f7f5ff;}
.bz3-sort.on{color:#5b3fd4;font-weight:800;background:#f2eeff;}
.bz3-sort:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}
.bz3-sort-total{margin-left:auto;font-size:.78rem;color:#6b6d88;padding-right:2px;}
.bz3-sort-total b{color:#5b3fd4;font-weight:800;}

/* ---------- 图文卡片 ---------- */
.bz3-list{display:flex;flex-direction:column;gap:12px;}
.bz3-card{
  display:flex;gap:16px;padding:16px 18px;background:#fff;
  border:1px solid #ececf3;border-radius:14px;text-decoration:none;transition:all .18s;
}
.bz3-card:hover{border-color:#d8d3ee;box-shadow:0 16px 34px -28px rgba(20,20,46,.55);transform:translateY(-1px);}
/* 左侧 = 发布人用户头像（圆形）。注 display 不写在这个选择器上 
   .tj-avatar-fallback（首字兜底）依赖自己 display:inline-flex 来居中，
   而本块在样式表末尾，同权重下会把它的 display 覆盖掉，导致首字贴左上 
   因此按「img / span 兜底」分别声明 */
.bz3-avatar{
  flex:0 0 76px;width:76px;height:76px;border-radius:50%;
  object-fit:cover;background:#f5f5f9;overflow:hidden;
}
img.bz3-avatar{display:block;}
.bz3-avatar.tj-avatar-fallback{display:inline-flex;font-size:1.6rem;}
.bz3-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px;}

.bz3-card-title{
  display:flex;align-items:center;gap:8px;margin:0;flex-wrap:wrap;
  font-size:.95rem;font-weight:800;color:#171a33;line-height:1.5;
}
.bz3-card-title-text{
  min-width:0;overflow:hidden;text-overflow:ellipsis;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;
}
.bz3-free{
  flex:0 0 auto;font-size:.7rem;font-weight:800;padding:2px 8px;border-radius:5px;
  background:#eafaf7;color:#0a6b61;border:1px solid #b7e8df;
}
.bz3-st{flex:0 0 auto;font-size:.7rem;font-weight:800;padding:2px 8px;border-radius:5px;background:#f5f5f9;color:#6b6d88;}
.bz3-st-bidding{background:#fff4e8;color:#a35a00;}
.bz3-st-reviewing{background:#eef3ff;color:#2b56b8;}
.bz3-st-awarded{background:#eafaf7;color:#0a6b61;}

.bz3-facts{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-size:.78rem;color:#4a4d66;
}
.bz3-facts-main{display:flex;gap:18px;flex-wrap:wrap;min-width:0;}
.bz3-fact i{font-style:normal;color:#6b6d88;font-weight:600;}
.bz3-facts-side{color:#6b6d88;flex:0 0 auto;}
/* 发布人昵称：一行里唯一加粗的元素，让「谁发的」第一时间可辨 */
.bz3-who{color:#3c3f5c;font-weight:800;}

.bz3-row{display:flex;align-items:flex-start;gap:8px;font-size:.78rem;}
.bz3-row-label{flex:0 0 auto;color:#6b6d88;font-weight:700;line-height:22px;}
.bz3-row-tags{display:flex;gap:6px;flex-wrap:wrap;}
.bz3-tag{
  font-style:normal;font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:6px;
  background:#f2eeff;color:#5b3fd4;
}
.bz3-tag.need{background:#eef0f7;color:#3c3f5c;}
.bz3-tag.ghost{background:transparent;border:1px solid #e8e5f2;color:#6b6d88;}

.bz3-card-foot{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:auto;padding-top:10px;border-top:1px solid #f4f4f8;
}
.bz3-badges{display:flex;gap:8px;flex-wrap:wrap;}
.bz3-v{display:inline-flex;align-items:center;gap:4px;font-style:normal;font-size:.72rem;font-weight:800;padding:3px 9px;border-radius:6px;}
.bz3-v.blue{background:#eef3ff;color:#2b56b8;}
.bz3-v.gold{background:#fff6e5;color:#95600a;}
.bz3-v i{font-size:.7rem;}
.bz3-stats{display:flex;align-items:center;gap:16px;font-size:.76rem;color:#6b6d88;}
.bz3-stat{display:inline-flex;align-items:center;gap:5px;font-style:normal;}
.bz3-stat i{font-size:.82rem;color:#6b6d88;}
.bz3-fav{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 8px;border:0;border-radius:6px;background:transparent;
  color:#6b6d88;font-family:inherit;font-size:.76rem;font-weight:600;cursor:pointer;transition:all .15s;
}
.bz3-fav:hover{background:#f2eeff;color:#5b3fd4;}
.bz3-fav.on{color:#5b3fd4;font-weight:800;}
.bz3-fav.on i{color:#5b3fd4;}
.bz3-fav:disabled{cursor:default;opacity:.7;}
.bz3-fav:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}

/* ---------- 右侧榜单 ---------- */
.bz3-side{position:sticky;top:16px;display:flex;flex-direction:column;gap:14px;}
.bz3-side-block{background:#fff;border:1px solid #ececf3;border-radius:14px;padding:14px 16px 4px;}
.bz3-side-title{
  margin:0 0 4px;padding-bottom:9px;border-bottom:1px solid #f0f0f6;
  font-size:.88rem;font-weight:800;color:#171a33;
}
.bz3-side-list{list-style:none;margin:0;padding:0;}
.bz3-side-list li{border-bottom:1px solid #f6f6fa;}
.bz3-side-list li:last-child{border-bottom:0;}
.bz3-side-list a{display:block;padding:9px 0;text-decoration:none;}
.bz3-side-text{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-size:.8rem;line-height:1.55;color:#3c3f5c;font-weight:600;
}
.bz3-side-list a:hover .bz3-side-text{color:#5b3fd4;}
.bz3-side-meta{display:block;margin-top:4px;font-size:.7rem;color:#6b6d88;}

/* ---------- 响应 ---------- */
@media (max-width:1024px){
  .bz3-body{grid-template-columns:1fr;}
  .bz3-side{position:static;}
}
@media (max-width:640px){
  .bz3-frow{flex-direction:column;gap:6px;}
  .bz3-flabel{flex:0 0 auto;line-height:1.4;}
  .bz3-card{gap:12px;padding:14px;}
  .bz3-avatar{flex:0 0 56px;width:56px;height:56px;}
  .bz3-avatar.tj-avatar-fallback{font-size:1.2rem;}
  .bz3-facts{flex-direction:column;align-items:flex-start;gap:6px;}
  .bz3-facts-main{gap:12px;}
  .bz3-facts-side{font-size:.74rem;}
  .bz3-card-foot{flex-wrap:wrap;gap:8px;}
  .bz3-card-title-text{-webkit-line-clamp:2;}
  .bz3-sort{padding:6px 10px;font-size:.8rem;}
}

/* ==========================================================================
   AI工具导航频道 /tools 026-09-24）— .nav3-*
   首页（分类分 + 4 列卡片）/ 分类列表 / 详情页（hero + 正文 + 侧栏 
   配色沿用全站主色 7b4dff 紫），不引入参考图的绿色，避免与全 VI 打架 
   ========================================================================== */

.nav3-page{width:100%;max-width:1200px;margin:0 auto;padding:22px 20px 72px;}

/* ---------- 面包 ---------- */
.nav3-crumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:.82rem;color:#6b6d88;margin-bottom:16px;}
.nav3-crumb a{color:#6b6d88;text-decoration:none;}
.nav3-crumb a:hover{color:#7b4dff;}
.nav3-crumb i{font-size:.62rem;color:#b9bacb;}
.nav3-crumb span{color:#3c3f5c;font-weight:600;}

/* ---------- 首页 hero ---------- */
.nav3-hero{margin-bottom:22px;}
.nav3-hero-title{margin:0 0 6px;font-size:1.6rem;font-weight:900;color:#171a33;letter-spacing:-.4px;}
.nav3-hero-sub{margin:0;font-size:.86rem;color:#6b6d88;}

/* ---------- 分类分组 ---------- */
.nav3-group{margin-bottom:32px;}
.nav3-group-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.nav3-group-icon{
  flex:0 0 auto;width:28px;height:28px;border-radius:8px;display:inline-flex;
  align-items:center;justify-content:center;color:#fff;font-size:.86rem;
}
.nav3-group-name{margin:0;font-size:1.06rem;font-weight:800;color:#171a33;}
.nav3-group-desc{font-size:.78rem;color:#8a8ca6;}
.nav3-group-more{
  margin-left:auto;font-size:.8rem;font-weight:700;color:#7b4dff;text-decoration:none;
  display:inline-flex;align-items:center;gap:2px;padding:4px 8px;border-radius:8px;transition:background .15s;
}
.nav3-group-more:hover{background:#f2eeff;}
.nav3-group-more i{font-size:.68rem;}

/* ---------- 卡片栅格 ---------- */
.nav3-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
.nav3-grid-lg{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}

/* ---------- 工具卡片 ---------- */
.nav3-card{
  display:flex;flex-direction:column;background:#fff;border:1px solid #ececf3;
  border-radius:12px;overflow:hidden;text-decoration:none;transition:all .18s;
}
.nav3-card:hover{border-color:#d8d3ee;box-shadow:0 16px 34px -26px rgba(20,20,46,.5);transform:translateY(-2px);}
.nav3-cover{
  position:relative;width:100%;aspect-ratio:16/10;background:#f5f5f9;overflow:hidden;
  border-bottom:1px solid #f2f2f7;
}
.nav3-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.nav3-cover-fb{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:2.2rem;font-weight:900;
}
.nav3-card-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1;}
.nav3-card-name{
  margin:0;font-size:.95rem;font-weight:800;color:#171a33;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}
.nav3-card-desc{
  margin:0;font-size:.78rem;line-height:1.65;color:#6b6d88;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.nav3-card-sub{font-size:.72rem;color:#8a8ca6;}

/* ---------- 分类页头 ---------- */
.nav3-cat-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
.nav3-cat-title{flex:1;min-width:180px;}
.nav3-cat-title h1{margin:0 0 4px;font-size:1.34rem;font-weight:900;color:#171a33;}
.nav3-cat-title p{margin:0;font-size:.82rem;color:#6b6d88;}
.nav3-cat-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.nav3-count{font-size:.8rem;color:#6b6d88;white-space:nowrap;}
.nav3-count b{color:#7b4dff;font-weight:800;}

.nav3-search{
  display:flex;align-items:center;gap:7px;height:36px;padding:0 12px;
  background:#fff;border:1px solid #ececf3;border-radius:10px;
}
.nav3-search:focus-within{border-color:#cdbcfb;box-shadow:0 0 0 3px rgba(123,77,255,.10);}
.nav3-search i{color:#8a8ca6;font-size:.86rem;}
.nav3-search input{
  border:0;outline:0;background:transparent;font-family:inherit;font-size:.83rem;
  color:#3c3f5c;width:150px;
}

/* ---------- 排序 ---------- */
.nav3-sortbar{display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding-bottom:11px;border-bottom:1px solid #f0f0f6;margin-bottom:16px;}
.nav3-sort{
  padding:6px 14px;border:0;border-radius:8px;background:transparent;color:#4a4d66;
  font-family:inherit;font-size:.83rem;font-weight:600;cursor:pointer;transition:all .15s;
}
.nav3-sort:hover{color:#7b4dff;background:#f7f5ff;}
.nav3-sort.on{color:#7b4dff;font-weight:800;background:#f2eeff;}
.nav3-sort:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}

/* ---------- 详情 hero ---------- */
.nav3-dhero{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  background:#fff;border:1px solid #ececf3;border-radius:16px;padding:20px 22px;
}
.nav3-dhero-logo{
  flex:0 0 64px;width:64px;height:64px;border-radius:14px;object-fit:cover;display:block;
  background:#f5f5f9;box-shadow:0 8px 20px -14px rgba(20,20,46,.6);
}
/* Logo 组件的默认尺寸（调用方用 .nav3-dhero-logo / .nav3-row-logo 覆盖 */
.nav3-logo{width:36px;height:36px;border-radius:10px;object-fit:cover;display:block;background:#f5f5f9;}
.nav3-logo-fb{
  display:inline-flex;align-items:center;justify-content:center;
  color:#fff;font-weight:900;font-size:1.6rem;
}
.nav3-dhero-main{flex:1;min-width:200px;}
.nav3-dhero-name{margin:0 0 5px;font-size:1.5rem;font-weight:900;color:#171a33;letter-spacing:-.3px;}
.nav3-dhero-sub{margin:0;font-size:.85rem;color:#6b6d88;}
.nav3-dhero-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;}
.nav3-tag{
  font-style:normal;font-size:.72rem;font-weight:600;padding:3px 10px;border-radius:6px;
  background:#f5f5f9;color:#5b5e78;
}
.nav3-tag.cat{background:#f2eeff;color:#7b4dff;font-weight:700;}
.nav3-visit{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;
  height:42px;padding:0 22px;border-radius:10px;text-decoration:none;
  background:#7b4dff;color:#fff;font-size:.88rem;font-weight:800;
  box-shadow:0 12px 26px -16px rgba(123,77,255,.9);transition:all .18s;
}
.nav3-visit:hover{background:#6a38f0;transform:translateY(-1px);}
.nav3-dhero-summary{margin:16px 0 0;font-size:.9rem;line-height:1.9;color:#4a4d66;}

/* ---------- 详情正文 + 侧栏 ---------- */
.nav3-dbody{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start;margin-top:22px;}

.nav3-article{
  background:#fff;border:1px solid #ececf3;border-radius:16px;padding:26px 28px;
  font-size:.92rem;line-height:1.95;color:#3c3f5c;min-width:0;
}
.nav3-article h2{
  font-size:1.06rem;font-weight:800;color:#171a33;margin:26px 0 10px;
  padding-left:11px;border-left:3px solid #7b4dff;line-height:1.5;
}
.nav3-article h2:first-child{margin-top:0;}
.nav3-article h3{font-size:.96rem;font-weight:800;color:#171a33;margin:20px 0 8px;}
.nav3-article p{margin:0 0 13px;}
.nav3-article ul,.nav3-article ol{margin:0 0 13px;padding-left:22px;}
.nav3-article li{margin-bottom:6px;}
.nav3-article strong{color:#171a33;font-weight:800;}
.nav3-article a{color:#7b4dff;text-decoration:none;border-bottom:1px solid #d9cdfd;}
.nav3-article a:hover{border-bottom-color:#7b4dff;}
.nav3-article figure{margin:18px 0;}
.nav3-article figure img{width:100%;border-radius:12px;display:block;border:1px solid #ececf3;}
.nav3-article figcaption{font-size:.75rem;color:#8a8ca6;text-align:center;margin-top:8px;}

.nav3-side{display:flex;flex-direction:column;gap:14px;position:sticky;top:16px;}
.nav3-side-block{background:#fff;border:1px solid #ececf3;border-radius:14px;padding:16px 16px 14px;}
.nav3-side-title{
  margin:0 0 11px;padding-left:10px;border-left:3px solid #7b4dff;
  font-size:.88rem;font-weight:800;color:#171a33;line-height:1.4;
}
.nav3-side-text{margin:0 0 12px;font-size:.78rem;line-height:1.85;color:#6b6d88;}
.nav3-side-stats{list-style:none;margin:0 0 12px;padding:0;display:flex;gap:10px;}
.nav3-side-stats li{
  flex:1;background:#faf9ff;border:1px solid #f0ecff;border-radius:10px;
  padding:9px 6px;text-align:center;
}
.nav3-side-stats b{display:block;font-size:.95rem;font-weight:900;color:#7b4dff;}
.nav3-side-stats span{font-size:.7rem;color:#8a8ca6;}
.nav3-side-btn{
  display:block;text-align:center;padding:9px 12px;border-radius:9px;
  background:#7b4dff;color:#fff;font-size:.82rem;font-weight:800;text-decoration:none;transition:all .15s;
}
.nav3-side-btn:hover{background:#6a38f0;}
.nav3-side-btn.ghost{background:#f2eeff;color:#7b4dff;}
.nav3-side-btn.ghost:hover{background:#e8e0ff;}

.nav3-side-list{display:flex;flex-direction:column;}
.nav3-row{display:flex;align-items:center;gap:10px;padding:8px 0;text-decoration:none;border-bottom:1px solid #f6f6fa;}
.nav3-row:last-child{border-bottom:0;}
.nav3-row-logo{flex:0 0 34px;width:34px;height:34px;border-radius:9px;object-fit:cover;background:#f5f5f9;}
.nav3-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.nav3-row-name{
  font-size:.82rem;font-weight:700;color:#3c3f5c;font-style:normal;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.nav3-row:hover .nav3-row-name{color:#7b4dff;}
.nav3-row-meta{
  font-size:.7rem;color:#8a8ca6;font-style:normal;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* ---------- 分页 / 空 / 按钮 ---------- */
.nav3-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:28px;flex-wrap:wrap;}
.nav3-pager-info{font-size:.82rem;color:#6b6d88;}
.nav3-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:0 16px;height:38px;border-radius:9px;border:1px solid #7b4dff;background:#7b4dff;
  color:#fff;font-family:inherit;font-size:.83rem;font-weight:700;cursor:pointer;text-decoration:none;
  transition:all .15s;
}
.nav3-btn:hover{background:#6a38f0;}
.nav3-btn:disabled{background:#f2f2f7;border-color:#ececf3;color:#b9bacb;cursor:not-allowed;}
.nav3-btn.ghost{background:#fff;color:#7b4dff;}
.nav3-btn.ghost:hover{background:#f2eeff;}
.nav3-empty{
  background:#fff;border:1px solid #ececf3;border-radius:16px;padding:48px 20px;text-align:center;
}
.nav3-empty i{font-size:2rem;color:#c9c9dc;}
.nav3-empty p{margin:12px 0 0;font-size:.88rem;color:#6b6d88;}
.nav3-empty-tip{font-size:.78rem !important;color:#a0a2b8 !important;}
.nav3-empty .nav3-btn{margin-top:16px;}

.nav3-footer-note{
  margin:34px 0 0;padding-top:18px;border-top:1px solid #f0f0f6;
  font-size:.78rem;line-height:1.9;color:#8a8ca6;
}
.nav3-footer-note a{color:#7b4dff;text-decoration:none;}

/* ---------- 响应 ---------- */
@media (max-width:1080px){
  .nav3-dbody{grid-template-columns:1fr;}
  .nav3-side{position:static;}
}
@media (max-width:900px){
  .nav3-grid,.nav3-grid-lg{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:680px){
  .nav3-grid,.nav3-grid-lg{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .nav3-hero-title{font-size:1.32rem;}
  .nav3-dhero{padding:16px;}
  .nav3-dhero-logo{flex:0 0 52px;width:52px;height:52px;border-radius:12px;}
  .nav3-dhero-name{font-size:1.2rem;}
  .nav3-visit{width:100%;justify-content:center;}
  .nav3-article{padding:18px 16px;}
  .nav3-cat-tools{width:100%;}
  .nav3-search{flex:1;}
  .nav3-search input{width:100%;}
}
@media (max-width:420px){
  .nav3-grid,.nav3-grid-lg{grid-template-columns:1fr;}
}

/* ==========================================================================
   AI工具导航 · 左侧悬浮导航 + 详情页评论区 026-09-24 追加 
   ========================================================================== */

/* 有左侧导航后主内容变窄，把频道页放宽一点，保证 4 列卡片仍有可读宽 */
.nav3-page{max-width:1320px;}

/* ---------- 左侧悬浮导航 ---------- */
.nav3-layout{display:grid;grid-template-columns:208px minmax(0,1fr);gap:24px;align-items:start;}
.nav3-main{min-width:0;}

.nav3-lnav{
  position:sticky;top:16px;
  background:#fff;border:1px solid #ececf3;border-radius:14px;
  padding:13px 11px;
  /* 分类多时在导航内部滚动，而不是把整块拉得比正文还 */
  max-height:calc(100vh - 32px);overflow:auto;
}
.nav3-lnav-head{
  display:flex;align-items:baseline;gap:6px;
  padding:0 7px 10px;margin-bottom:7px;border-bottom:1px solid #f2f2f7;
}
.nav3-lnav-title{font-size:.88rem;font-weight:900;color:#171a33;letter-spacing:-.2px;}
.nav3-lnav-total{font-size:.68rem;color:#8a8ca6;margin-left:auto;}

.nav3-lnav-list{display:flex;flex-direction:column;gap:2px;}
.nav3-lnav-item{
  display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:9px;
  text-decoration:none;color:#4a4d66;font-size:.82rem;font-weight:600;
  transition:background .15s,color .15s;
}
.nav3-lnav-item:hover{background:#f7f5ff;color:#7b4dff;}
.nav3-lnav-item.on{background:#f2eeff;color:#7b4dff;font-weight:800;}
.nav3-lnav-item:focus-visible{outline:2px solid #7b4dff;outline-offset:1px;}

.nav3-lnav-ico{
  flex:0 0 24px;width:24px;height:24px;border-radius:7px;
  display:inline-flex;align-items:center;justify-content:center;
  color:#fff;font-size:.72rem;
}
.nav3-lnav-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nav3-lnav-n{font-size:.68rem;font-weight:700;color:#aaaabd;}
.nav3-lnav-item.on .nav3-lnav-n{color:#7b4dff;}

.nav3-lnav-sep{height:1px;background:#f2f2f7;margin:8px 7px 7px;}

.nav3-lnav-foot{
  display:flex;align-items:center;gap:6px;
  margin-top:10px;padding:9px 8px 2px;border-top:1px solid #f2f2f7;
  font-size:.7rem;color:#a0a2b8;
}
.nav3-lnav-foot i{color:#f59e0b;}

/* ---------- 详情页：正文 + 评论区同宽一 ---------- */
.nav3-dmain{display:flex;flex-direction:column;gap:20px;min-width:0;}

/* ---------- 评论区（复用全站 .tcm-* 样式，这里只补容器与差异部分 ---------- */
.nav3-cm{background:#fff;border:1px solid #ececf3;border-radius:16px;padding:20px 22px;}
.nav3-cm-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;margin-bottom:14px;
}
.nav3-cm-title{margin:0;font-size:1.02rem;font-weight:800;color:#171a33;}
.nav3-cm-title i{color:#7b4dff;margin-right:6px;}
.nav3-cm-title span{color:#a0a2b8;font-weight:600;font-size:.84rem;margin-left:3px;}
.nav3-cm-sorts{display:flex;gap:2px;}
.nav3-cm-sorts .nav3-sort{padding:4px 12px;font-size:.78rem;}

/* 未登录时输入框旁显示「登录」而不是不可点的发表按 */
.nav3-cm-login{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:76px;padding:0 18px;height:42px;border-radius:12px;
  background:#7b4dff;color:#fff;font-size:.86rem;font-weight:700;text-decoration:none;
  transition:background .18s;
}
.nav3-cm-login:hover{background:#6a38f0;}
.nav3-cm .tcm-form input:disabled{background:#fafafd;color:#a0a2b8;cursor:not-allowed;}
/* 最热标签本身是 div，会 .tcm-item:first-of-type 失效 — 这里直接按相邻关系去掉首条分隔线 */
.nav3-cm .tcm-hot-tag + .tcm-item{border-top:0;}
.nav3-cm .tcm-op.on{color:#7b4dff;font-weight:700;}

/* ---------- 响应 ---------- */
@media (max-width:1180px){
  .nav3-layout{grid-template-columns:176px minmax(0,1fr);gap:18px;}
}
@media (max-width:1080px){
  /* 窄屏把左侧导航折成上方横向可滑的一条，省下的是正文宽度 */
  .nav3-layout{grid-template-columns:1fr;gap:14px;}
  .nav3-lnav{position:static;max-height:none;padding:10px 10px 8px;}
  .nav3-lnav-head{padding-bottom:8px;margin-bottom:8px;}
  .nav3-lnav-list{flex-direction:row;gap:6px;overflow-x:auto;padding-bottom:3px;}
  .nav3-lnav-item{flex:0 0 auto;padding:7px 12px;}
  .nav3-lnav-sep,.nav3-lnav-foot{display:none;}
}
@media (max-width:680px){
  .nav3-cm{padding:16px 15px;}
  .nav3-cm-title{font-size:.96rem;}
}

/* ============================================================
   项目（副业机会库）频 /project  ·  2026-09-29
   ------------------------------------------------------------
   定位：解决「我不知道该做什么副业」— 卡片先给「投 收益/难度」，
         详情页给深色亮点框（适合 + 三列关键信息），再给「学教程 / 接商单」两个出口 

   令牌沿用站内：主 #7b4dff / 深紫 #5b3fd4 / 浅紫 #f2eeff /  #00b5a4
                标题 #171a33 / 正文 #4a4d66 / 次要 #6b6d88
                卡片圆角 14px + 描边 #ece9f5

   对比度（  AA，正文要 4.5:1）：
     #4a4d66 / #fff      = 8.25:1   #6b6d88 / #fff      = 5.05:1
      / #7b4dff        = 4.83:1    / #5b3fd4        = 6.70:1
     #4f3bb8 / #f2eeff   = 6.93:1   #0a6b61 / #e8f7f5   = 5.81:1
     #9c4a0f / #fff1e8   = 5.59:1   #1d4ed8 / #eef4ff   = 6.07:1
     #8a6119 / #fdf3e2   = 5.07:1
   ⚠️ 深色亮点框内一律不 h1~h4 / p（主题覆盖层会把它们强制成深色字 
      深字落深底直接隐形），只 div/span/b 并显式写色 
      框内可用色：正文 #e8e6f5 / 标签 #b6b3d4 .91:1  强调 #2ee6d0
   ============================================================ */

.pj-page {
  /* 2026-09-29 按要求改成纯白（ #f7f7fb */
  background: #fff;
  min-height: 60vh;
  padding-bottom: 56px;
}
.pj-wrap {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 32px;
}

/* ---------------- 页头 ---------------- */
.pj-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding: 28px 0 20px;
}
.pj-hero-title {
  font-size: 1.9rem;
  font-weight: 900;
  letter-spacing: -.4px;
  margin: 0 0 8px;
  color: #171a33;
}
.pj-hero-sub {
  margin: 0 0 14px;
  max-width: 720px;
  font-size: .92rem;
  line-height: 1.7;
  color: #4a4d66;
}
.pj-hero-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  font-size: .82rem;
  color: #6b6d88;
}
.pj-hero-stats b {
  color: #4f3bb8;
  font-size: 1rem;
  font-weight: 800;
  margin-right: 2px;
}
.pj-hero-stats span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.pj-hero-stats i {
  color: #7b4dff;
}
.pj-hero-side {
  display: flex;
  align-items: center;
  gap: 10px;
}
.pj-publish-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 42px;
  padding: 0 20px;
  border-radius: 12px;
  background: #5b3fd4;
  color: #fff;
  font-size: .92rem;
  font-weight: 700;
  text-decoration: none;
  transition: background .18s ease, transform .18s ease;
}
.pj-publish-btn:hover {
  background: #4a2ec4;
  color: #fff;
  transform: translateY(-1px);
}
.pj-hero-side-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 42px;
  padding: 0 16px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #e4e1f5;
  color: #4f3bb8;
  font-size: .9rem;
  font-weight: 600;
  text-decoration: none;
}
.pj-hero-side-link:hover {
  border-color: #c9bff0;
  background: #faf8ff;
  color: #4f3bb8;
}

/* ---------------- 三行筛 ---------------- */
.pj-filters {
  background: #fff;
  border: 1px solid #ece9f5;
  border-radius: 14px;
  padding: 14px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pj-frow {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-height: 30px;
}
.pj-flabel {
  flex: 0 0 68px;
  font-size: .82rem;
  font-weight: 700;
  color: #6b6d88;
  line-height: 28px;
}
.pj-chips {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.pj-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 28px;
  padding: 0 11px;
  border-radius: 8px;
  background: #f7f7fb;
  border: 1px solid transparent;
  color: #4a4d66;
  font-size: .82rem;
  cursor: pointer;
  transition: all .15s ease;
}
.pj-chip:hover {
  background: #f2eeff;
  color: #4f3bb8;
}
.pj-chip i {
  font-style: normal;
  font-size: .72rem;
  color: #6b6d88;
}
.pj-chip.on {
  background: #f2eeff;
  border-color: #d6cdf7;
  color: #4f3bb8;
  font-weight: 700;
}
.pj-chip.on i {
  color: #4f3bb8;
}
.pj-chip-pick i {
  color: #7b4dff;
}
.pj-chip-clear {
  color: #6b6d88;
  background: #fff;
  border-color: #ece9f5;
}
.pj-chip-clear:hover {
  background: #fff1f1;
  color: #b42318;
}

/* ---------------- 主体：左 rail + 卡片网格 ---------------- */
.pj-body {
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 20px;
  margin-top: 18px;
  align-items: start;
}
.pj-rail {
  position: sticky;
  top: 80px;
  background: #fff;
  border: 1px solid #ece9f5;
  border-radius: 14px;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pj-rail-head {
  font-size: .74rem;
  font-weight: 700;
  color: #6b6d88;
  padding: 4px 8px 8px;
  letter-spacing: .04em;
}
.pj-rail-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 8px 10px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #4a4d66;
  font-size: .84rem;
  text-align: left;
  cursor: pointer;
  transition: all .15s ease;
}
.pj-rail-item:hover {
  background: #f7f7fb;
  color: #4f3bb8;
}
.pj-rail-item i {
  font-style: normal;
  font-size: .72rem;
  color: #6b6d88;
}
.pj-rail-item.on {
  background: #f2eeff;
  color: #4f3bb8;
  font-weight: 700;
}
.pj-rail-item.on i {
  color: #4f3bb8;
}
.pj-rail-foot {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed #ece9f5;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.pj-rail-diff {
  border: 0;
  background: transparent;
  text-align: left;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: .78rem;
  color: #6b6d88;
  cursor: pointer;
}
.pj-rail-diff:hover {
  background: #f7f7fb;
  color: #4f3bb8;
}
.pj-rail-diff.on {
  background: #e8f7f5;
  color: #0a6b61;
  font-weight: 700;
}

/* 区块 + 排序 */
.pj-sec-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.pj-sec-head h2 {
  margin: 0;
  font-size: 1.06rem;
  font-weight: 800;
  color: #171a33;
}
.pj-sec-count {
  font-size: .8rem;
  color: #6b6d88;
}
.pj-sort {
  margin-left: auto;
  display: inline-flex;
  background: #fff;
  border: 1px solid #ece9f5;
  border-radius: 10px;
  padding: 2px;
}
.pj-sort-btn {
  border: 0;
  background: transparent;
  padding: 5px 12px;
  border-radius: 8px;
  font-size: .8rem;
  color: #6b6d88;
  cursor: pointer;
}
.pj-sort-btn:hover {
  color: #4f3bb8;
}
.pj-sort-btn.on {
  background: #f2eeff;
  color: #4f3bb8;
  font-weight: 700;
}

/* 卡片网格 */
.pj-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.pj-grid-4 {
  grid-template-columns: repeat(4, 1fr);
}
.pj-card {
  background: #fff;
  border: 1px solid #ece9f5;
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.pj-card:hover {
  box-shadow: 0 12px 28px -18px rgba(31, 24, 84, .35);
  border-color: #e0d9f8;
  transform: translateY(-2px);
}
.pj-card-link {
  text-decoration: none;
  color: inherit;
  display: block;
}
.pj-card-cover {
  position: relative;
  aspect-ratio: 16 / 10;
  background: #f4f4f8;
  overflow: hidden;
}
.pj-cover-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pj-cover-ph {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #6b6d88;
  font-size: .8rem;
}
.pj-cover-ph i {
  font-size: 1.9rem;
  color: #7b4dff;
  opacity: .75;
}
.pj-cat-chip {
  position: absolute;
  left: 10px;
  top: 10px;
  padding: 3px 9px;
  border-radius: 7px;
  font-size: .74rem;
  font-weight: 700;
}
.pj-feat-chip {
  position: absolute;
  right: 10px;
  top: 10px;
  padding: 3px 9px;
  border-radius: 7px;
  background: #fff;
  color: #8a6119;
  font-size: .74rem;
  font-weight: 700;
}
.pj-card-title {
  margin: 12px 14px 6px;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.4;
  color: #171a33;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pj-card-sum {
  margin: 0 14px 10px;
  font-size: .82rem;
  line-height: 1.6;
  color: #6b6d88;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.pj-card-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin: 0 14px 10px;
  padding-top: 10px;
  border-top: 1px dashed #ece9f5;
  font-size: .76rem;
  color: #4a4d66;
}
.pj-card-facts span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.pj-card-facts i {
  color: #7b4dff;
}
.pj-card-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: auto 14px 12px;
  padding-top: 8px;
  font-size: .76rem;
  color: #6b6d88;
}
.pj-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.pj-meta-item i {
  color: #a3a5c4;
}
.pj-meta-date {
  margin-right: auto;
}
.pj-fav {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  border: 0;
  background: transparent;
  color: #6b6d88;
  font-size: .76rem;
  cursor: pointer;
  padding: 2px 4px;
  border-radius: 6px;
}
.pj-fav:hover {
  background: #fff1f1;
  color: #d92d20;
}
.pj-fav.on {
  color: #d92d20;
  font-weight: 700;
}

/* 骨架 */
.pj-card-sk {
  padding-bottom: 14px;
}
.pj-sk-cover {
  aspect-ratio: 16 / 10;
  background: linear-gradient(90deg, #f2f2f7 25%, #ececf3 37%, #f2f2f7 63%);
  background-size: 400% 100%;
  animation: pj-shine 1.4s ease infinite;
}
.pj-sk-line {
  height: 11px;
  border-radius: 6px;
  margin: 12px 14px 0;
  background: linear-gradient(90deg, #f2f2f7 25%, #ececf3 37%, #f2f2f7 63%);
  background-size: 400% 100%;
  animation: pj-shine 1.4s ease infinite;
}
.pj-sk-block {
  height: 180px;
  border-radius: 12px;
  margin-top: 14px;
  background: linear-gradient(90deg, #f2f2f7 25%, #ececf3 37%, #f2f2f7 63%);
  background-size: 400% 100%;
  animation: pj-shine 1.4s ease infinite;
}
.w80 { width: 80%; }
.w60 { width: 60%; }
.w40 { width: 40%; }
@keyframes pj-shine {
  0% { background-position: 100% 0; }
  100% { background-position: 0 0; }
}

/* 加载更多 / 空 */
.pj-more {
  display: block;
  width: 100%;
  margin-top: 22px;
  height: 46px;
  border-radius: 12px;
  border: 1px solid #e4e1f5;
  background: #fff;
  color: #4f3bb8;
  font-size: .92rem;
  font-weight: 700;
  cursor: pointer;
  transition: all .18s ease;
}
.pj-more:hover:not(:disabled) {
  background: #faf8ff;
  border-color: #c9bff0;
}
.pj-more:disabled {
  color: #83859f;
  cursor: default;
}
.pj-end {
  margin-top: 22px;
  text-align: center;
  font-size: .82rem;
  color: #6b6d88;
}
.pj-empty {
  background: #fff;
  border: 1px solid #ece9f5;
  border-radius: 14px;
  padding: 56px 20px;
  text-align: center;
  color: #6b6d88;
}
.pj-empty i {
  font-size: 2.4rem;
  color: #c9c9d8;
  display: block;
  margin-bottom: 10px;
}
.pj-empty b {
  display: block;
  font-size: 1rem;
  color: #171a33;
  margin-bottom: 6px;
}
.pj-empty p {
  margin: 0 0 14px;
  font-size: .86rem;
}
.pj-empty-btn {
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 18px;
  border-radius: 10px;
  background: #5b3fd4;
  color: #fff;
  font-size: .86rem;
  font-weight: 700;
  text-decoration: none;
  border: 0;
  cursor: pointer;
}
.pj-empty-btn:hover {
  background: #4a2ec4;
  color: #fff;
}

/* 区块头右侧的「查看更多」文字按钮（近期热门项目用） */
.pj-link-btn {
  margin-left: auto;
  font-size: .82rem;
  color: #4f3bb8;
  text-decoration: none;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.pj-link-btn:hover {
  color: #4a2ec4;
}

.pj-hot {
  margin-top: 30px;
}

/* ---------------- 详情 ---------------- */
.pj-detail-wrap {
  padding-top: 16px;
}
.pj-crumb {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: .8rem;
  color: #6b6d88;
  margin-bottom: 14px;
}
.pj-crumb a {
  color: #6b6d88;
  text-decoration: none;
}
.pj-crumb a:hover {
  color: #4f3bb8;
}
.pj-crumb i {
  font-size: .7rem;
  color: #c9c9d8;
}
.pj-crumb span {
  color: #4a4d66;
  max-width: 460px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pj-crumb-center {
  justify-content: center;
}
.pj-detail-skel {
  background: #fff;
  border: 1px solid #ece9f5;
  border-radius: 14px;
  padding: 24px;
}

.pj-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  align-items: start;
}
.pj-detail-main {
  background: #fff;
  border: 1px solid #ece9f5;
  border-radius: 14px;
  padding: 24px 28px 30px;
  min-width: 0;
}
.pj-detail-tabs {
  display: flex;
  gap: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f1f0f7;
  margin-bottom: 18px;
}
.pj-dtab {
  font-size: .84rem;
  color: #6b6d88;
  text-decoration: none;
}
.pj-dtab:hover {
  color: #4f3bb8;
}
.pj-detail-title {
  margin: 0 0 12px;
  font-size: 1.72rem;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: -.3px;
  color: #171a33;
}
.pj-detail-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  font-size: .82rem;
  color: #4a4d66;
}
.pj-rate-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 28px;
  padding: 0 11px;
  border-radius: 8px;
  border: 1px solid #f0dcae;
  background: #fffaf0;
  color: #8a6119;
  font-size: .8rem;
  font-weight: 700;
  cursor: pointer;
}
.pj-rate-btn:hover {
  background: #fff3d9;
}
.pj-dmeta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #6b6d88;
}
.pj-dmeta-item i {
  color: #a3a5c4;
}
.pj-dmeta-date {
  margin-left: auto;
  color: #6b6d88;
}
.pj-rater {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: 11px;
  background: #fffaf0;
  border: 1px solid #f6e6c4;
  font-size: .82rem;
  color: #6b4a12;
}
.pj-rater-star {
  border: 0;
  background: transparent;
  color: #e0d5bb;
  font-size: 1.05rem;
  cursor: pointer;
  padding: 0 1px;
}
.pj-rater-star.on {
  color: #d4a017;
}
.pj-rater-cancel {
  margin-left: auto;
  border: 0;
  background: transparent;
  color: #6b6d88;
  font-size: .8rem;
  cursor: pointer;
}

/* 深色亮点 — 这个项目适不适合 */
.pj-hl {
  margin: 20px 0 6px;
  border-radius: 14px;
  padding: 18px 22px 16px;
  background:
    radial-gradient(520px 200px at 88% -40%, rgba(123, 77, 255, .42), transparent 62%),
    linear-gradient(135deg, #221d47 0%, #2b2456 58%, #262047 100%);
  border: 1px solid rgba(255, 255, 255, .08);
}
.pj-hl-top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.pj-hl-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .84rem;
  font-weight: 800;
  letter-spacing: .02em;
  color: #2ee6d0;
}
.pj-hl-badge {
  margin-left: auto;
  padding: 3px 11px;
  border-radius: 8px;
  font-size: .76rem;
  font-weight: 700;
}
.pj-hl-suitable {
  font-size: .96rem;
  line-height: 1.72;
  color: #e8e6f5;
  margin-bottom: 16px;
}
.pj-hl-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, .1);
}
.pj-hl-cell {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}
.pj-hl-k {
  font-size: .74rem;
  color: #b6b3d4;
}
.pj-hl-v {
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.4;
  word-break: break-word;
}
.pj-hl-skills {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 14px;
  padding-top: 13px;
  border-top: 1px solid rgba(255, 255, 255, .1);
}
.pj-hl-skill {
  font-style: normal;
  padding: 3px 10px;
  border-radius: 7px;
  background: rgba(255, 255, 255, .1);
  color: #dcd9f0;
  font-size: .78rem;
}

/* 详情正文 */
.pj-detail-sum {
  margin: 18px 0 0;
  padding: 14px 16px;
  border-radius: 12px;
  background: #fafafd;
  border-left: 3px solid #7b4dff;
  font-size: .94rem;
  line-height: 1.75;
  color: #2b2e4a;
}
.pj-detail-body {
  margin-top: 18px;
  font-size: .95rem;
  line-height: 1.85;
  color: #2b2e4a;
}
.pj-detail-body h2 {
  font-size: 1.12rem;
  font-weight: 800;
  margin: 26px 0 10px;
  padding-left: 11px;
  border-left: 3px solid #7b4dff;
  color: #171a33;
}
.pj-detail-body h3 {
  font-size: 1rem;
  font-weight: 700;
  margin: 20px 0 8px;
  color: #171a33;
}
.pj-detail-body p {
  margin: 0 0 12px;
  color: #2b2e4a;
}
.pj-detail-body ol,
.pj-detail-body ul {
  margin: 0 0 14px;
  padding-left: 22px;
}
.pj-detail-body li {
  margin-bottom: 7px;
  color: #2b2e4a;
}
.pj-detail-body img {
  max-width: 100%;
  border-radius: 10px;
  display: block;
  margin: 14px 0;
}
.pj-detail-body blockquote {
  margin: 14px 0;
  padding: 12px 16px;
  border-left: 3px solid #00b5a4;
  border-radius: 0 10px 10px 0;
  background: #f0faf8;
  color: #1f4b47;
}
.pj-body-empty {
  padding: 30px;
  text-align: center;
  color: #6b6d88;
  background: #fafafd;
  border-radius: 12px;
}
.pj-detail-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}
.pj-tag {
  font-size: .8rem;
  color: #4f3bb8;
  background: #f2eeff;
  padding: 4px 11px;
  border-radius: 8px;
  text-decoration: none;
}
.pj-tag:hover {
  background: #e6ddfd;
  color: #4a2ec4;
}

/* 评论 */
.pj-comments {
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid #f1f0f7;
}
.pj-cm-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 14px;
}
.pj-cm-head h2 {
  margin: 0;
  font-size: 1.06rem;
  font-weight: 800;
  color: #171a33;
}
.pj-cm-head span {
  font-size: .8rem;
  color: #6b6d88;
}
.pj-cm-form {
  display: flex;
  gap: 10px;
  margin-bottom: 18px;
}
.pj-cm-input-wrap {
  flex: 1;
  min-width: 0;
}
.pj-cm-input {
  width: 100%;
  border: 1px solid #e4e1f5;
  border-radius: 11px;
  padding: 10px 12px;
  font-size: .88rem;
  line-height: 1.6;
  resize: vertical;
  color: #2b2e4a;
  font-family: inherit;
  outline: none;
}
.pj-cm-input:focus {
  border-color: #7b4dff;
  box-shadow: 0 0 0 3px rgba(123, 77, 255, .12);
}
.pj-cm-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
}
.pj-cm-count {
  margin-left: auto;
  font-size: .74rem;
  color: #6b6d88;
}
.pj-cm-send {
  height: 34px;
  padding: 0 16px;
  border-radius: 9px;
  border: 0;
  background: #5b3fd4;
  color: #fff;
  font-size: .84rem;
  font-weight: 700;
  cursor: pointer;
}
.pj-cm-send:hover:not(:disabled) {
  background: #4a2ec4;
}
.pj-cm-send:disabled {
  background: #d8d6e6;
  color: #83859f;
  cursor: default;
}
.pj-cm-empty {
  padding: 24px;
  text-align: center;
  font-size: .86rem;
  color: #6b6d88;
  background: #fafafd;
  border-radius: 12px;
}
.pj-cm-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pj-cm-item {
  display: flex;
  gap: 10px;
}
.pj-cm-body {
  flex: 1;
  min-width: 0;
}
.pj-cm-user {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 3px;
}
.pj-cm-user b {
  font-size: .84rem;
  color: #171a33;
}
.pj-cm-user span {
  font-size: .74rem;
  color: #6b6d88;
}
.pj-cm-text {
  font-size: .88rem;
  line-height: 1.7;
  color: #2b2e4a;
  white-space: pre-wrap;
  word-break: break-word;
}

/* ---------------- 详情页右 ---------------- */
.pj-detail-side {
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: sticky;
  top: 80px;
}
.pj-side-card {
  background: #fff;
  border: 1px solid #ece9f5;
  border-radius: 14px;
  padding: 16px;
}
.pj-side-title {
  font-size: .8rem
;
  font-weight: 800;
  color: #6b6d88;
  letter-spacing: .03em;
  margin-bottom: 12px;
}
.pj-author {
  display: flex;
  align-items: center;
  gap: 10px;
}
.pj-author-txt {
  min-width: 0;
}
.pj-author-txt b {
  display: block;
  font-size: .92rem;
  font-weight: 800;
  color: #171a33;
}
.pj-author-txt span {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: .76rem;
  color: #6b6d88;
  line-height: 1.5;
}
.pj-author-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}
.pj-abtn {
  flex: 1;
  height: 34px;
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .84rem;
  font-weight: 700;
  text-decoration: none;
}
.pj-abtn.ghost {
  background: #fff;
  border: 1px solid #e4e1f5;
  color: #4f3bb8;
}
.pj-abtn.ghost:hover {
  background: #faf8ff;
  border-color: #c9bff0;
  color: #4a2ec4;
}
.pj-abtn.solid {
  background: #5b3fd4;
  color: #fff;
}
.pj-abtn.solid:hover {
  background: #4a2ec4;
  color: #fff;
}
.pj-rel-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.pj-rel-item {
  display: flex;
  gap: 10px;
  text-decoration: none;
  color: inherit;
  padding: 6px;
  border-radius: 10px;
}
.pj-rel-item:hover {
  background: #fafafd;
}
.pj-rel-thumb {
  flex: 0 0 52px;
  width: 52px;
  height: 40px;
  border-radius: 8px;
  overflow: hidden;
  background: #f2eeff;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #7b4dff;
}
.pj-rel-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pj-rel-txt {
  min-width: 0;
}
.pj-rel-txt b {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: .82rem;
  font-weight: 700;
  color: #171a33;
  line-height: 1.4;
}
.pj-rel-txt span {
  display: block;
  margin-top: 2px;
  font-size: .72rem;
  color: #6b6d88;
}

/* ---------------- 发布 ---------------- */
.pj-ed-page {
  background: #eef3fa;
}
.pj-ed-wrap {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 20px 20px 60px;
}
.pj-ed-loading {
  padding: 60px;
  text-align: center;
  color: #6b6d88;
}
.pj-ed-cover-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin: 10px 0 22px;
}
.pj-ed-cover {
  width: 104px;
  height: 104px;
  border-radius: 16px;
  border: 1px dashed #b9c6dd;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  overflow: hidden;
  position: relative;
  padding: 0;
  transition: border-color .18s ease, background .18s ease;
}
.pj-ed-cover:hover {
  border-color: #7b4dff;
  background: #faf8ff;
}
.pj-ed-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pj-ed-cover-plus {
  font-size: 1.8rem;
  color: #83859f;
}
.pj-ed-cover-mask {
  position: absolute;
  inset: 0;
  background: rgba(23, 26, 51, .55);
  color: #fff;
  font-size: .78rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pj-ed-cover-tip {
  font-size: .76rem;
  color: #6b6d88;
}
.pj-ed-row {
  background: #fff;
  border: 1px solid #e8eef7;
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 12px;
  position: relative;
}
.pj-ed-row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.pj-ed-row-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.pj-ed-col {
  min-width: 0;
}
.pj-ed-label {
  display: block;
  font-size: .84rem;
  font-weight: 700;
  color: #171a33;
  margin-bottom: 8px;
}
.pj-ed-label i {
  color: #d92d20;
  font-style: normal;
}
.pj-ed-input,
.pj-ed-textarea,
.pj-ed-select {
  width: 100%;
  border: 1px solid #e4e9f2;
  border-radius: 9px;
  padding: 9px 12px;
  font-size: .88rem;
  color: #2b2e4a;
  font-family: inherit;
  background: #fff;
  outline: none;
}
.pj-ed-input:focus,
.pj-ed-textarea:focus,
.pj-ed-select:focus {
  border-color: #7b4dff;
  box-shadow: 0 0 0 3px rgba(123, 77, 255, .1);
}
.pj-ed-textarea {
  resize: vertical;
  line-height: 1.65;
}
.pj-ed-count {
  position: absolute;
  right: 26px;
  bottom: 14px;
  font-size: .72rem;
  color: #83859f;
}
.pj-ed-hint {
  margin-top: 6px;
  font-size: .74rem;
  color: #6b6d88;
}
.pj-ed-editor {
  border-radius: 10px;
  overflow: hidden;
}
.pj-ed-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
}
.pj-ed-submit {
  height: 46px;
  padding: 0 40px;
  border-radius: 12px;
  border: 0;
  background: #5b3fd4;
  color: #fff;
  font-size: .96rem;
  font-weight: 800;
  cursor: pointer;
}
.pj-ed-submit:hover:not(:disabled) {
  background: #4a2ec4;
}
.pj-ed-submit:disabled {
  background: #c9c4e4;
  cursor: default;
}
.pj-ed-cancel {
  height: 46px;
  padding: 0 24px;
  border-radius: 12px;
  border: 1px solid #dfe4ee;
  background: #fff;
  color: #4a4d66;
  font-size: .92rem;
  cursor: pointer;
}
.pj-ed-cancel:hover {
  background: #f7f8fb;
}

/* ---------------- 响应 ---------------- */
@media (max-width: 1200px) {
  .pj-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .pj-grid-4 {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 1024px) {
  .pj-body {
    grid-template-columns: 1fr;
  }
  .pj-rail {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
  }
  .pj-rail-head {
    display: none;
  }
  .pj-rail-foot {
    margin: 0;
    padding: 0;
    border: 0;
    flex-direction: row;
    gap: 6px;
  }
  .pj-detail {
    grid-template-columns: 1fr;
  }
  .pj-detail-side {
    position: static;
  }
}
@media (max-width: 768px) {
  .pj-wrap {
    padding: 0 16px;
  }
  .pj-hero {
    padding: 18px 0 14px;
  }
  .pj-hero-title {
    font-size: 1.42rem;
  }
  .pj-hero-side {
    width: 100%;
  }
  .pj-publish-btn,
  .pj-hero-side-link {
    flex: 1;
    justify-content: center;
  }
  .pj-flabel {
    flex: 0 0 100%;
    line-height: 1.4;
  }
  .pj-frow {
    flex-direction: column;
    gap: 6px;
  }
  .pj-grid,
  .pj-grid-4 {
    grid-template-columns: 1fr;
  }
  .pj-detail-main {
    padding: 18px 16px 22px;
  }
  .pj-detail-title {
    font-size: 1.26rem;
  }
  .pj-hl {
    padding: 15px 16px 14px;
  }
  .pj-hl-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .pj-ed-row-2,
  .pj-ed-row-3 {
    grid-template-columns: 1fr;
  }
  .pj-ed-wrap {
    padding: 14px 14px 50px;
  }
  .pj-sec-head {
    flex-wrap: wrap;
  }
  .pj-sort {
    margin-left: 0;
    width: 100%;
    justify-content: space-between;
  }
}

/* ============================================================
   2026-09-29 补充：纯白底上的「表面分层  头像尺寸修复
   ------------------------------------------------------------
    页面背景改纯白后，白底白卡会失去层次  给所有卡 面板加一层极轻投影，
      边界线也 #eef0f6 提到 #ece9f5（对比仍是「几乎看不见的浅线」，只做轮廓 
    ⚠️ UserAvatar **没有 size 这个 prop**（只 src/name/className/vip） 
       size 会被静默忽略 — 头像于是 flex 行里同时 
      `align-items:stretch` 纵向拉伸、被 `flex-shrink` 横向压扁 
      实测被压 17×48 的一条，视觉上完全错位 
      现在 UserAvatar **已支 size prop**（会 width/height/flexShrink 一次写全） 
      所以项目频道统一 size；下面这两组 className 尺寸是「没 size 时」的兜底 
      inline style 优先级更高，两者取同一个值不会打架 
   ============================================================ */

.pj-card,
.pj-filters,
.pj-rail,
.pj-side-card,
.pj-detail-main,
.pj-empty {
  box-shadow: 0 1px 2px rgba(23, 26, 51, .045);
}
.pj-card:hover {
  box-shadow: 0 12px 28px -18px rgba(31, 24, 84, .35);
}

/* 评论区头像：flex 里必 flex:0 0 auto，否则会被压 */
.pj-cm-av {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pj-cm-av.tj-avatar-fallback {
  font-size: .92rem;
}
/* 发布者卡头像 */
.pj-author-av {
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  object-fit: cover;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pj-author-av.tj-avatar-fallback {
  font-size: 1.16rem;
}

/* 头像与文字首行对齐（原来 stretch，头像被拉到整行高） */
.pj-cm-form,
.pj-cm-item {
  align-items: flex-start;
}
/* ============================================================
   认证链路  ·  2026-09-29
   ------------------------------------------------------------
    BizVerifyGate（认证选择弹层      .bvg-*
    BizVerify（认证信息填 确认页）    .bv-*
   ------------------------------------------------------------
   配色沿用站内令牌：主 #5b3fd4 /  #00b5a4；正 #23254a、次 #6b6f94（白 5.6:1） 
   ⚠️ 主题覆盖层（.tj-layout h1,h2,h3,h4 !important）会把标题压 #1a1a2e 
      本页背景是浅色，正好合适；但深色底上的标题必须显式声明白色，这里没有深色区 
   ============================================================ */

/* ----------------  认证选择弹层 ---------------- */
.bvg-mask{position:fixed;inset:0;z-index:6500;background:rgba(24,16,8,.5);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px;animation:mcFade .18s ease;}
.bvg-card{position:relative;width:min(560px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;padding:30px 26px 22px;box-shadow:0 40px 100px -28px rgba(40,20,5,.5);animation:mcPop .28s cubic-bezier(.16,1,.3,1);}
.bvg-x{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;border:none;background:#f5f4fa;color:#8b8eae;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.bvg-x:hover{background:#f1eefe;color:#5b3fd4;transform:rotate(90deg);}
.bvg-ic{width:60px;height:60px;margin:0 auto 12px;border-radius:18px;background:linear-gradient(135deg,#00b5a4,#7b4dff);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.6rem;box-shadow:0 12px 26px -10px rgba(123,77,255,.55);}
.bvg-title{font-size:1.16rem;font-weight:800;color:#23254a;text-align:center;}
.bvg-sub{font-size:.8rem;color:#6b6f94;margin:8px auto 20px;max-width:430px;line-height:1.7;text-align:center;}
.bvg-sub b{color:#5b3fd4;}
.bvg-opts{display:flex;flex-direction:column;gap:12px;}
.bvg-opt{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid #e2e0ee;border-radius:14px;background:#fff;cursor:pointer;text-align:left;transition:all .18s;}
.bvg-opt:hover{border-color:#b9a7fb;background:#faf9ff;transform:translateY(-1px);box-shadow:0 10px 24px -16px rgba(91,63,212,.5);}
.bvg-opt-ic{flex:0 0 42px;width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;}
.bvg-opt-ic.blue{background:#eef4ff;color:#1d4ed8;}
.bvg-opt-ic.gold{background:#fdf3e2;color:#8a6119;}
.bvg-opt-body{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0;}
.bvg-opt-body b{font-size:.95rem;color:#23254a;}
.bvg-opt-body em{font-size:.74rem;font-style:normal;color:#6b6f94;}
.bvg-opt-li{font-size:.74rem;color:#0a6b61;display:flex;align-items:center;gap:4px;}
.bvg-opt-fee{flex:0 0 auto;font-size:1.05rem;font-weight:800;color:#5b3fd4;}
.bvg-opt-fee i{font-size:.68rem;font-weight:600;font-style:normal;color:#6b6f94;}
.bvg-foot{margin:18px 0 0;font-size:.74rem;color:#6b6f94;text-align:center;line-height:1.7;}

/* ----------------  认证 ---------------- */
.bv-head{margin:6px 0 0;}
.bv-title{font-size:1.6rem;font-weight:800;margin:0 0 6px;}
.bv-sub{font-size:.84rem;color:#6b6f94;margin:0 0 18px;line-height:1.7;}
.bv-sub b{color:#5b3fd4;}
.bv-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;}
.bv-tab{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 18px;border-radius:10px;border:1px solid #e2e0ec;background:#fff;color:#2b2e4a;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s;}
.bv-tab:hover{border-color:#cdbcfb;color:#5b3fd4;}
.bv-tab.on{background:#f2eeff;border-color:#b9a7fb;color:#4c33bd;}

.bv-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start;}
.bv-main{display:flex;flex-direction:column;gap:16px;min-width:0;}
.bv-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:76px;}
.bv-card{background:#fff;border:1px solid #ececf5;border-radius:14px;padding:20px;box-shadow:0 1px 2px rgba(23,26,51,.045);}
.bv-card-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.bv-card-head h3{margin:0;font-size:1rem;}
.bv-tag{display:inline-flex;align-items:center;gap:4px;font-size:.7rem;font-weight:600;color:#0a6b61;background:#e8f7f5;border-radius:99px;padding:3px 10px;}
.bv-side-title{margin:0 0 8px;font-size:.92rem;}
.bv-note{font-size:.78rem;color:#6b6f94;line-height:1.75;margin:0 0 14px;}
.bv-note b{color:#2b2e4a;}
.bv-note a{color:#5b3fd4;font-weight:600;text-decoration:none;}
.bv-note a:hover{text-decoration:underline;}

.bv-field{display:block;margin-bottom:14px;}
.bv-field > span{display:block;font-size:.8rem;font-weight:700;color:#2b2e4a;margin-bottom:6px;}
.bv-field > span i{color:#c0392b;font-style:normal;}
.bv-field .form-input{width:100%;box-sizing:border-box;}
.bv-hint{font-size:.72rem;color:#6b6f94;}
.bv-upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.bv-upload > i{width:64px;height:64px;border-radius:10px;background:#f7f6fc;color:#8b8eae;display:flex;align-items:center;justify-content:center;font-size:1.4rem;}
.bv-upload-img{width:96px;height:64px;object-fit:cover;border-radius:10px;border:1px solid #ececf5;}
.bv-upload label.bz-btn{cursor:pointer;}

.bv-kv{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 18px;}
.bv-kv li{display:flex;justify-content:space-between;gap:10px;font-size:.8rem;border-bottom:1px dashed #ececf5;padding-bottom:8px;}
.bv-kv li span{color:#6b6f94;}
.bv-kv li b{color:#23254a;font-weight:600;text-align:right;word-break:break-all;}

.bv-plan{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.bv-plan-ic{flex:0 0 40px;width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;}
.bv-plan-ic.blue{background:#eef4ff;color:#1d4ed8;}
.bv-plan-ic.gold{background:#fdf3e2;color:#8a6119;}
.bv-plan b{display:block;font-size:.95rem;color:#23254a;}
.bv-plan em{font-size:.73rem;font-style:normal;color:#6b6f94;}
.bv-fee{display:flex;align-items:baseline;gap:6px;padding:12px 0;border-top:1px solid #ececf5;border-bottom:1px solid #ececf5;margin-bottom:12px;}
.bv-fee b{font-size:1.5rem;color:#5b3fd4;font-weight:800;}
.bv-fee span{font-size:.74rem;color:#6b6f94;}
.bv-rights{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:7px;}
.bv-rights li{display:flex;align-items:flex-start;gap:6px;font-size:.78rem;color:#2b2e4a;line-height:1.6;}
.bv-rights li i{color:#0a6b61;margin-top:2px;}
.bv-foot{margin:10px 0 0;font-size:.72rem;color:#6b6f94;text-align:center;line-height:1.7;}
.bv-foot i{color:#8a6119;}
.bv-foot b{color:#2b2e4a;}
.bv-link{border:0;background:none;color:#5b3fd4;font-weight:700;cursor:pointer;padding:0 2px;font-size:inherit;}
.bv-link:hover{text-decoration:underline;}

.bv-banner{display:flex;gap:10px;align-items:flex-start;font-size:.78rem;line-height:1.7;border-radius:10px;padding:12px 14px;margin-bottom:14px;}
.bv-banner i{font-size:1rem;margin-top:1px;}
.bv-banner.warn{background:#fdf7ea;border:1px solid #f0dfb8;color:#6b4a12;}
.bv-banner.err{background:#fdf0ee;border:1px solid #f3cec8;color:#9c2e1f;}
.bv-banner b{color:inherit;}

.bv-done{background:#fff;border:1px solid #ececf5;border-radius:16px;padding:44px 24px;text-align:center;box-shadow:0 1px 2px rgba(23,26,51,.045);}
.bv-done-ic{width:76px;height:76px;margin:0 auto 16px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;}
.bv-done-ic.blue{background:#eef4ff;color:#1d4ed8;}
.bv-done-ic.gold{background:#fdf3e2;color:#8a6119;}
.bv-done h2{margin:0 0 8px;font-size:1.24rem;}
.bv-done > p{font-size:.84rem;color:#6b6f94;margin:0 auto 22px;max-width:460px;line-height:1.75;}
.bv-done-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:16px;}
.bv-done .bv-note{max-width:460px;margin:0 auto;}

/* 联系方式（需 / 发布物详情右侧） */
.bz-contact{margin-top:4px;}
.bz-contact-lock{display:flex;flex-direction:column;gap:8px;}
.bz-contact-lock p{margin:0;font-size:.78rem;color:#6b6f94;line-height:1.7;}
.bz-contact-val{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f7f6fc;border:1px solid #ececf5;border-radius:10px;padding:10px 12px;font-size:.86rem;font-weight:700;color:#23254a;word-break:break-all;}
.bz-contact-val i{color:#0a6b61;flex:0 0 auto;}

@media (max-width:960px){
  .bv-grid{grid-template-columns:1fr;}
  .bv-side{position:static;}
}
@media (max-width:640px){
  .bvg-card{padding:24px 18px 18px;border-radius:16px;}
  .bvg-opt{flex-wrap:wrap;}
  .bvg-opt-fee{width:100%;text-align:right;}
  .bv-card{padding:16px;}
  .bv-title{font-size:1.3rem;}
  .bv-done{padding:32px 16px;}
}

/* ============================================================
   我的认证（个人中 /me?tab=verify） 2026-09-30
   ------------------------------------------------------------
   两级结构 
      选择 .bv-pick-*  — 两张「企业认 / 个人认证」介绍卡 
      填写 .bv-single  — **单栏**（前一版是「左表单 + 右价格卡」两栏，已被要求改掉 
   配色沿用站内令牌：主 #7b4dff / 成功 #0a6b61；卡片圆 16 + 淡紫描边 + 柔和投影 
   对比度：#2b2e4a 白底  2:1  #6b6f94 白底  .6:1  .bv-free  #0a6b61（白 7.4:1 
   ============================================================ */

/* ---------------- 未登 / 空 ---------------- */
.bv-empty{
  display:flex;align-items:center;gap:8px;
  padding:22px;border-radius:14px;
  background:#fff;border:1px solid #eceaf6;color:#6b6f94;font-size:.86rem;
}
.bv-empty a{color:#5b3fd4;font-weight:700;}

/* ----------------  选择级：两张介绍卡片 ---------------- */
.bv-pick-lead{
  margin:0 0 16px;font-size:.84rem;line-height:1.75;color:#6b6f94;
}
.bv-pick-lead b{color:#2b2e4a;}
.bv-free{color:#0a6b61;}

.bv-pick-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(282px,1fr));gap:18px;
}
.bv-pick-card{
  position:relative;display:flex;flex-direction:column;
  background:#fff;border:1px solid #eceaf6;border-radius:16px;padding:22px;
  box-shadow:0 10px 26px -22px rgba(40,20,110,.5);
  transition:border-color .18s,box-shadow .18s,transform .18s;
}
.bv-pick-card:hover{
  border-color:#d9cdfb;transform:translateY(-2px);
  box-shadow:0 18px 36px -22px rgba(123,77,255,.5);
}
.bv-pick-card.done{border-color:#c6e9dd;background:#fbfefc;}
.bv-pick-card > .bv-plan-ic{align-self:flex-start;}
.bv-pick-ok{
  position:absolute;top:14px;right:14px;
  display:inline-flex;align-items:center;gap:4px;
  font-size:.7rem;font-weight:700;color:#0a6b61;
  background:#e8f7f5;border-radius:99px;padding:3px 10px;
}
.bv-pick-title{margin:12px 0 4px;font-size:1.08rem;}
.bv-pick-sub{margin:0;font-size:.78rem;color:#6b6f94;line-height:1.6;}
.bv-pick-rights{
  list-style:none;margin:14px 0 18px;padding:0;
  display:flex;flex-direction:column;gap:7px;flex:1;
}
.bv-pick-rights li{display:flex;align-items:flex-start;gap:6px;font-size:.8rem;color:#2b2e4a;line-height:1.6;}
.bv-pick-rights li i{color:#0a6b61;margin-top:2px;}

/* ----------------  填写级：单栏 ---------------- */
.bv-single{display:flex;flex-direction:column;gap:16px;}
.bv-back{
  align-self:flex-start;display:inline-flex;align-items:center;gap:6px;
  border:0;background:none;padding:0;margin-bottom:-4px;
  color:#6b6f94;font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;
  transition:color .16s;
}
.bv-back:hover{color:#5b3fd4;}
.bv-back i{font-size:.8rem;}

.bv-form-head{display:flex;align-items:center;gap:12px;}
.bv-form-title{margin:0;font-size:1.16rem;}
.bv-form-sub{font-style:normal;font-size:.76rem;color:#6b6f94;}

.bv-submit-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:2px;}
.bv-submit-bar .bz-btn.primary{height:46px;padding:0 36px;}
.bv-submit-bar .bv-foot{margin:0;text-align:left;}

@media (max-width:640px){
  .bv-pick-card{padding:18px;}
  .bv-pick-title{font-size:1rem;}
  .bv-submit-bar .bz-btn.primary{width:100%;padding:0;}
}

/* 认证已免费（2026-09-30）：弹层里原来的 ¥价格 改为「免费」标 */
.bvg-opt-fee.bvg-opt-free{color:#0a6b61;}
/* ============================================================
   名片卡片 v2 026-09-30）：顶部「金系渐变封面  头像居中
   — 需求：上半部分做渐变背景、logo 居中、logo 下方依次 
      昵称 / 职业 / 公司名称；相邻卡片的封面配色不同（金系）
   — 实现 ctc-top 用负 margin 出血抵消 .ctc-card  padding 
      整块铺满卡片上半部；层次感用 CSS radial-gradient 光斑叠加
      （不引外链图片，避免额外请求 404 
   — 对比度：昵称 #3d2800 对最浅金 11.9:1 / 最深金 8.2:1 
      副文 #5c3f05 对最深金 5.5:1 — 全部 ≥AA(4.5:1)
   ============================================================ */
.ctc-top{
  position:relative;
  margin:-18px -18px 13px;          /* 出血：抵 .ctc-card  18px padding */
  padding:24px 16px 18px;
  text-align:center;
  overflow:hidden;
  background:linear-gradient(135deg,#f9e7b3 0%,#e3c06a 100%);
}
/* 柔光斑：做出渐变「背景图」的层次 */
.ctc-top::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(130px 84px at 16% 8%, rgba(255,255,255,.55), transparent 72%),
    radial-gradient(150px 96px at 88% 2%, rgba(255,255,255,.40), transparent 74%),
    radial-gradient(160px 100px at 52% 118%, rgba(255,255,255,.26), transparent 72%);
}
/* 相邻卡片封面不同色：5 套金系循 — 任意列数 /2/3/4 列）下同行相邻都不同 */
.ct-grid > .ctc-card:nth-child(5n+2) .ctc-top{background:linear-gradient(135deg,#fbe3bd 0%,#e8b877 100%);}
.ct-grid > .ctc-card:nth-child(5n+3) .ctc-top{background:linear-gradient(135deg,#f5ecc4 0%,#ddc47e 100%);}
.ct-grid > .ctc-card:nth-child(5n+4) .ctc-top{background:linear-gradient(135deg,#fdeacb 0%,#e9c184 100%);}
.ct-grid > .ctc-card:nth-child(5n+5) .ctc-top{background:linear-gradient(135deg,#f8eeb8 0%,#dfc886 100%);}

.ctc-top .ctc-avatar{
  margin:0 auto 10px;display:block;position:relative;z-index:1;
  border:3px solid rgba(255,255,255,.94);
  box-shadow:0 10px 20px -10px rgba(92,63,5,.55);
}
.ctc-top .ctc-avatar.vip{
  border-color:#fff;
  box-shadow:0 0 0 3px rgba(255,255,255,.6), 0 10px 20px -10px rgba(92,63,5,.55);
}
.ctc-top .ctc-name{
  justify-content:center;position:relative;z-index:1;
  color:#3d2800;font-size:1.04rem;font-weight:800;
}
.ctc-top .ctc-pos{
  margin-top:5px;position:relative;z-index:1;
  color:#5c3f05;font-size:.82rem;font-weight:600;line-height:1.5;
  -webkit-line-clamp:2;
}
.ctc-top .ctc-pos b{color:#3d2800;font-weight:800;}
/* 封面区里的徽章统一「白 + 深棕字」：浅金上清晰，也不跟主色抢 */
.ctc-top .ctc-level{background:rgba(255,255,255,.86);color:#5c3f05 !important;}
.ctc-top .ctc-vip{background:linear-gradient(135deg,#fff,#fdf1d2);color:#8a6119 !important;}
/* 收藏按钮移到封面右上 */
.ctc-top .ctc-fav{
  position:absolute;top:10px;right:10px;z-index:2;
  background:rgba(255,255,255,.86);border-color:rgba(255,255,255,.72);color:#7a5a10;
}
.ctc-top .ctc-fav:hover{background:#fff;border-color:#fff;color:#5c3f05;}
.ctc-top .ctc-fav.on{background:#fff;border-color:#fff;color:#b8860b;}

/* 下半部分容器：让 .ctc-bio  flex:1 继续把操作区推到卡片底部 */
.ctc-body{display:flex;flex-direction:column;flex:1;min-width:0;}

@media (max-width:767px){
  /* ⚠️ 断点与数值都必须 .ctc-card  <=767px  padding 6px 15px 14px）对齐：
     对不齐时负边距会超出内边距，超出部分被卡 overflow:hidden 裁掉  封面被切边 
     实测踩过一次：封面 338 vs 卡片 334 */
  .ctc-top{margin:-16px -15px 12px;padding:20px 14px 16px;}
}
/* ============================================================
   搜索频道 /search 026-09-30 新增 
   顶部导航搜索浮层提交后落到这里；7 个选项卡（综合 + 六类内容） 
   配色沿用站内：主 #7b4dff / 标题 #171a33 / 次要 #6b6d88 /
   卡片 14px 圆角 + #eef0f6 描边。正文对比度均已  .5:1 
   ============================================================ */
.sr-page{width:100%;max-width:1400px;margin:0 auto;padding:0 24px 70px;box-sizing:border-box;}

/* ---------- 面包 ---------- */
.sr-crumb{display:flex;align-items:center;gap:7px;font-size:.8rem;color:#83859f;padding:16px 0 14px;}
.sr-crumb a{color:#6b6d88;text-decoration:none;}
.sr-crumb a:hover{color:#5b3fd4;}
.sr-crumb i{font-size:.62rem;color:#b9bad2;}

/* ---------- 头部搜索 ---------- */
.sr-hero{
  position:relative;overflow:hidden;padding:26px 28px 28px;border-radius:16px;
  background:linear-gradient(135deg,#f6f3ff 0%,#eef7f6 100%);
  border:1px solid #e4e1f5;
}
.sr-h1{display:flex;align-items:center;gap:9px;margin:0 0 6px;font-size:1.5rem;font-weight:800;color:#171a33;}
.sr-h1 i{color:#7b4dff;}
.sr-sub{margin:0 0 16px;font-size:.86rem;color:#6b6d88;}
.sr-box{
  display:flex;align-items:center;gap:10px;max-width:720px;
  background:#fff;border:1px solid #e4e1f5;border-radius:13px;padding:6px 6px 6px 14px;
  box-shadow:0 12px 26px -22px rgba(123,77,255,.9);
  transition:border-color .16s, box-shadow .16s;
}
.sr-box:focus-within{border-color:#c9b8ff;box-shadow:0 0 0 3px rgba(123,77,255,.12);}
.sr-box-ic{color:#a8aac4;font-size:1rem;flex:0 0 auto;}
.sr-input{
  flex:1;min-width:0;border:0;outline:none;background:transparent;
  font-family:inherit;font-size:.95rem;color:#171a33;padding:8px 0;
}
.sr-input::placeholder{color:#9a9cb8;}
.sr-btn{
  flex:0 0 auto;height:40px;padding:0 24px;border:0;border-radius:10px;cursor:pointer;
  background:linear-gradient(135deg,#7b4dff,#4f46e5);color:#fff;
  font-family:inherit;font-size:.9rem;font-weight:700;
  transition:transform .16s, box-shadow .16s;
}
.sr-btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px -14px rgba(123,77,255,1);}

/* ---------- 选项 ---------- */
.sr-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:20px 0 14px;}
.sr-tab{
  display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 15px;border-radius:10px;
  border:1px solid transparent;background:transparent;cursor:pointer;
  font-family:inherit;font-size:.87rem;font-weight:600;color:#5b5d78;transition:all .16s;
}
.sr-tab:hover{background:#f6f3ff;color:#5b3fd4;}
.sr-tab.on{background:#f2eeff;border-color:#ddd6f7;color:#4a2ec4;font-weight:700;}
.sr-tab-n{
  font-style:normal;font-size:.72rem;font-weight:700;padding:1px 6px;border-radius:100px;
  background:#ece9f8;color:#5b5d78;
}
.sr-tab.on .sr-tab-n{background:#7b4dff;color:#fff;}

/* ---------- 结果计数 ---------- */
.sr-count{margin:0 0 12px;font-size:.84rem;color:#6b6d88;}
.sr-count b{color:#4a2ec4;font-weight:800;}
.sr-count-all{margin-left:8px;color:#83859f;}
.sr-count-all button{
  border:0;background:transparent;padding:0;cursor:pointer;font-family:inherit;font-size:.84rem;
  font-weight:700;color:#5b3fd4;text-decoration:underline;text-underline-offset:2px;
}

/* ---------- 结果列表 ---------- */
.sr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.sr-item{
  display:flex;align-items:flex-start;gap:14px;
  background:#fff;border:1px solid #eef0f6;border-radius:14px;padding:16px 18px;
  transition:border-color .16s, box-shadow .16s, transform .16s;
}
.sr-item:hover{border-color:#ddd6f7;box-shadow:0 16px 30px -24px rgba(123,77,255,.85);transform:translateY(-1px);}
.sr-ic{
  flex:0 0 auto;width:42px;height:42px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;font-size:1.05rem;
}
/* 六类内容各一个色（浅 + 深图标，  .5:1 */
.k-tut{background:#ece9ff;color:#4a2ec4;}
.k-art{background:#e2f5f2;color:#0a6b61;}
.k-col{background:#fdf0e3;color:#8a4b12;}
.k-sq{background:#e8f0ff;color:#1d4ed8;}
.k-coop{background:#fdeaea;color:#b3261e;}
.k-ct{background:#fdf3d2;color:#7a5a10;}

.sr-main{flex:1;min-width:0;}
.sr-title{
  font-size:1rem;font-weight:700;color:#171a33;text-decoration:none;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.sr-title:hover{color:#5b3fd4;}
.sr-mark{background:linear-gradient(180deg,transparent 58%,#ffe08a 58%);color:inherit;padding:0 1px;border-radius:2px;}
.sr-sum{
  margin:6px 0 0;font-size:.86rem;line-height:1.65;color:#5b5d78;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.sr-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:9px;font-size:.78rem;color:#6b6d88;}
.sr-meta i{margin-right:4px;font-size:.76rem;}
.sr-kind{padding:2px 8px;border-radius:7px;font-size:.72rem;font-weight:700;}
.sr-ava{flex:0 0 auto;border:2px solid #f1ecff;margin-top:2px;}

/* ---------- 空 ---------- */
.sr-empty{text-align:center;padding:56px 20px;background:#fff;border:1px solid #eef0f6;border-radius:16px;}
.sr-empty > i{font-size:2.2rem;color:#c9c8dd;}
.sr-empty p{margin:14px 0 0;font-size:.92rem;color:#5b5d78;}
.sr-empty p b{color:#171a33;}
.sr-empty .sr-hot{justify-content:center;margin-top:16px;}
.sr-empty-sub{font-size:.82rem;color:#83859f;margin-top:6px;}

/* ---------- 起始态（还没搜） ---------- */
.sr-start{background:#fff;border:1px solid #eef0f6;border-radius:16px;padding:28px 26px;}
.sr-start-t{margin:0 0 12px;font-size:.86rem;font-weight:700;color:#171a33;}
.sr-start-t + .sr-hot{margin-bottom:24px;}
.sr-start-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;}
.sr-start-card{
  display:inline-flex;align-items:center;gap:9px;height:52px;padding:0 16px;border-radius:12px;
  background:#faf9ff;border:1px solid #eef0f6;color:#2b2e4a;
  font-size:.88rem;font-weight:700;text-decoration:none;transition:all .16s;
}
.sr-start-card:hover{border-color:#c9b8ff;background:#f6f3ff;color:#4a2ec4;transform:translateY(-1px);}
.sr-start-card i{color:#7b4dff;font-size:1rem;}

/* ---------- 热门标签 ---------- */
.sr-hot{display:flex;flex-wrap:wrap;gap:8px;}
.sr-hot-tag{
  height:32px;padding:0 14px;border-radius:100px;cursor:pointer;font-family:inherit;
  font-size:.82rem;font-weight:600;color:#5b3fd4;background:#f6f3ff;border:1px solid #e4e1f5;
  transition:all .16s;
}
.sr-hot-tag:hover{background:#7b4dff;border-color:#7b4dff;color:#fff;}

@media (max-width:640px){
  .sr-page{padding:0 14px 50px;}
  .sr-hero{padding:20px 16px 22px;border-radius:14px;}
  .sr-h1{font-size:1.28rem;}
  .sr-box{padding:5px 5px 5px 12px;}
  .sr-btn{padding:0 16px;font-size:.86rem;}
  .sr-tabs{gap:4px;}
  .sr-tab{height:34px;padding:0 12px;font-size:.83rem;}
  .sr-item{padding:14px;gap:11px;}
  .sr-ic{width:36px;height:36px;font-size:.95rem;border-radius:10px;}
  .sr-start{padding:22px 16px;}
}
/* ---------- 默认头像 026-09-30 ----------
   未上传头像时全站展示的默认图。补一层浅底：默认图是带透明通道 PNG 
   直接铺在深色 彩色背景上会糊掉、看不出是个人形 */
.tj-avatar-default{background:#f1f0f7;}

/* 后台「系统设置」里的图片上传控件（默认头像 / 站点 LOGO / 企业 LOGO */
.mg-upload{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.mg-upload-thumb{
  width:76px;height:76px;border-radius:12px;flex:0 0 auto;
  border:1px solid #e6e4f0;background:#faf9ff;object-fit:cover;display:block;
}
.mg-upload-empty{
  width:76px;height:76px;border-radius:12px;flex:0 0 auto;
  border:1px dashed #d8d5e8;background:#faf9ff;color:#9a9cb8;
  display:flex;align-items:center;justify-content:center;font-size:1.3rem;
}
.mg-upload-ops{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.mg-upload-path{
  font-size:.78rem;color:#83859f;max-width:420px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;
}
/* ---------- /me 头像 026-09-30 ---------
    页面上方大头像改 UserAvatar（未上传时显示默认头像）
    编辑资料里新增「个人头像」上传行 */
.me-avatar .me-avatar-fill{width:100%;height:100%;object-fit:cover;display:block;border-radius:0;}
.me-form-row-avatar{align-items:flex-start;}
.me-avatar-upload{display:flex;align-items:center;gap:14px;flex:1;min-width:0;}
.me-avatar-preview{flex:0 0 auto;border:1px solid #e9e7f4;background:#faf9ff;}
.me-avatar-upload-ops{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:0;}
.me-avatar-hint{font-size:.76rem;color:#83859f;width:100%;}
/* ---------- /contacts/edit 名片联系方式 026-09-30 --------- */
.ct-contact-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:8px;align-items:start;}
/* 三个联系方式输入各带「可 label」（2026-09-30）：placeholder 不能 label  — 用户一输入就丢失字段含义 */
.ct-contact-field{display:block;}
.ct-contact-tag{
  display:flex;align-items:center;gap:5px;margin-bottom:6px;
  font-size:.8rem;font-weight:600;color:#4a4d66;
}
.ct-contact-tag i{color:#5b3fd4;font-size:.85rem;flex:0 0 auto;}
.ct-contact-note{
  font-size:.78rem;color:#6b6d88;line-height:1.6;margin-top:8px;
  display:flex;align-items:flex-start;gap:6px;
}
.ct-contact-note i{color:#5b3fd4;flex:0 0 auto;margin-top:2px;}
.ct-contact-note b{color:#3a3d5c;font-weight:700;}
@media (max-width:640px){
  .ct-contact-grid{grid-template-columns:1fr;}
}
/* ---------- 名片详情：联系方式三件套 026-09-30 ---------
   默认锁定  点「查看联系方式」解锁后展示手机 / 微信 / 邮箱，每行可复制 
   对比度：#6b6d88 on #faf9ff  .3:1 171a33  3:1 5b3fd4 on #f2eeff  :1，均 ≥AA */
.ctd-contacts{display:flex;flex-direction:column;gap:10px;}
.ctd-contact-row{
  display:flex;align-items:center;gap:10px;
  padding:11px 14px;border-radius:12px;
  background:#faf9ff;border:1px solid #eef0f6;
}
.ctd-contact-row > i{color:#5b3fd4;font-size:.95rem;flex:0 0 auto;}
.ctd-contact-label{flex:0 0 62px;font-size:.8rem;font-weight:600;color:#6b6d88;}
.ctd-contact-val{
  flex:1;min-width:0;font-size:.95rem;font-weight:700;color:#171a33;
  letter-spacing:.3px;word-break:break-all;
}
.ctd-copy{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;
  height:28px;padding:0 10px;border-radius:8px;cursor:pointer;font-family:inherit;
  font-size:.76rem;font-weight:700;color:#5b3fd4;
  background:#f2eeff;border:1px solid #e4e1f5;transition:all .16s;
}
.ctd-copy:hover{background:#7b4dff;border-color:#7b4dff;color:#fff;}
/* 锁定态里的「查看联系方式」按钮独占一行，避免和提示文字挤在一 */
.ctd-locked .ct-btn-main{flex:1 1 100%;}
@media (max-width:560px){
  .ctd-contact-row{flex-wrap:wrap;}
  .ctd-contact-label{flex:0 0 auto;}
  .ctd-contact-val{flex:1 1 100%;}
}

/* ===== 材质配色等级标签 026-10-01 第三版：100 档） =====
   等级名只 5 个材质（    紫），用浅底+深字区分，全部留有对比度余量 
   正文  4.5:1。⚠ 金色一律深棕字，绝不用白字（金底白字只 1.67:1） */
.lv-badge.lv-band-copper{background:#f7f1e8;color:#6b4a12;}
.lv-badge.lv-band-iron{background:#eef1f6;color:#39424f;}
.lv-badge.lv-band-silver{background:#e9eff8;color:#2f4a72;}
.lv-badge.lv-band-gold{background:#fdf3dc;color:#7a5a12;}
.lv-badge.lv-band-purple{background:#f1ecff;color:#4a2ec4;}
.lv-badge.prof-lv{padding:3px 12px;font-size:.8rem;font-weight:600;}

/* ===== 等级一览：5 个材质区 × 20 级（100 档） ===== */
.pts-tier-band{background:#fcfcfe;border:1px solid #f1eefb;border-radius:12px;padding:10px 11px;}
.pts-tier-band.cur{border-color:#ddd3f7;background:#fbfaff;}
.pts-tier-band-head{margin-bottom:7px;}
.pts-tier-band-head b{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:800;color:#171a33;}
.pts-tier-band-rg{font-size:.66rem;font-weight:700;color:#5b3fd4;background:#f1ecff;padding:1px 6px;border-radius:100px;}
.pts-tier-band-head em{display:block;font-style:normal;font-size:.7rem;color:#6b6d88;margin-top:3px;line-height:1.5;}
.pts-tier-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 4px;}
.pts-tier{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:3px 6px;border-radius:7px;font-size:.7rem;color:#4a4d66;}
.pts-tier + .pts-tier{margin-top:0;}
.pts-tier.on{background:#f1ecff;color:#5b3fd4;font-weight:800;}
.pts-tier-no{flex:0 0 auto;font-weight:800;letter-spacing:.01em;}
.pts-tier-min{flex:0 0 auto;font-size:.66rem;color:#8b8aa8;}
.pts-tier.on .pts-tier-min{color:#5b3fd4;}
.pts-tier-me{flex:0 0 auto;font-size:.62rem;font-weight:800;background:#5b3fd4;color:#fff;padding:0 5px;border-radius:100px;}

/* ===== 邀请好友（/me?tab=invite 026-10-01 ===== */
.inv-wrap{display:flex;flex-direction:column;gap:14px;}
.inv-hero{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;
  background:linear-gradient(135deg,#f6f3ff,#f2fbfa);border:1px solid #e4e1f5;
  border-radius:14px;padding:18px 20px;
}
.inv-hero-main h3{margin:0 0 6px;font-size:1rem;font-weight:800;color:#171a33;display:flex;align-items:center;gap:7px;}
.inv-hero-main h3 i{color:#7b4dff;}
.inv-hero-main p{margin:0;font-size:.82rem;line-height:1.7;color:#4a4d66;max-width:560px;}
.inv-rates{display:flex;gap:10px;}
.inv-rate{
  background:#fff;border:1px solid #e4e1f5;border-radius:12px;padding:10px 14px;text-align:center;min-width:104px;
}
.inv-rate b{display:block;font-size:1.35rem;font-weight:800;color:#5b3fd4;line-height:1.2;}
.inv-rate span{display:block;font-size:.76rem;font-weight:700;color:#171a33;margin-top:2px;}
.inv-rate em{display:block;font-style:normal;font-size:.68rem;color:#6b6d88;margin-top:2px;}
.inv-off{grid-column:1 / -1;margin:0;font-size:.76rem;color:#8a6119;background:#fdf7e8;border:1px solid #f0e2bd;border-radius:9px;padding:7px 10px;}
.inv-card{background:#fff;border:1px solid #eef0f6;border-radius:14px;padding:15px 16px;}
.inv-title{margin:0 0 12px;font-size:.88rem;font-weight:800;color:#171a33;display:flex;align-items:center;gap:7px;}
.inv-title i{color:#7b4dff;}
.inv-mats{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;}
.inv-mat label{display:block;font-size:.74rem;font-weight:700;color:#6b6d88;margin-bottom:5px;}
.inv-copy-row{display:flex;gap:8px;align-items:center;}
.inv-code{
  flex:0 0 auto;font-size:1.05rem;font-weight:800;letter-spacing:.14em;color:#4a2ec4;
  background:#f4f1ff;border:1px dashed #cfc4f5;border-radius:10px;padding:8px 14px;
}
.inv-link{
  flex:1;min-width:0;font-size:.8rem;color:#2b2e4a;background:#fbfbfe;
  border:1px solid #e4e1f5;border-radius:10px;padding:9px 11px;
}
.inv-link:focus{outline:none;border-color:#7b4dff;box-shadow:0 0 0 3px rgba(123,77,255,.12);}
.inv-btn{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  font-size:.78rem;font-weight:700;color:#2b2e4a;background:#f5f4fa;border:1px solid #e4e1f5;
  border-radius:10px;padding:9px 13px;cursor:pointer;transition:all .15s ease;
}
.inv-btn:hover{background:#f1ecff;border-color:#cfc4f5;color:#4a2ec4;}
.inv-btn.primary{background:#5b3fd4;border-color:#5b3fd4;color:#fff;}
.inv-btn.primary:hover{background:#4a2ec4;border-color:#4a2ec4;color:#fff;}
.inv-btn:disabled{opacity:.6;cursor:not-allowed;}
.inv-qr{display:flex;gap:16px;align-items:center;margin-top:14px;padding-top:14px;border-top:1px dashed #ece9f8;}
.inv-qr-box{flex:0 0 auto;background:#fff;border:1px solid #eef0f6;border-radius:12px;padding:8px;line-height:0;}
.inv-qr-tip{min-width:0;display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:#4a4d66;line-height:1.65;}
.inv-qr-tip b{font-size:.84rem;color:#171a33;}
.inv-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,minmax(0,1fr)));gap:10px;}
.inv-stat{background:#fff;border:1px solid #eef0f6;border-radius:12px;padding:12px 14px;}
.inv-stat span{display:block;font-size:.74rem;color:#6b6d88;}
.inv-stat b{display:block;font-size:1.25rem;font-weight:800;color:#171a33;margin-top:3px;line-height:1.2;}
.inv-stat b.gold{color:#8a6119;}
.inv-inviter{display:flex;align-items:center;gap:11px;}
.inv-ava{
  flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:#f1ecff;color:#4a2ec4;
  display:flex;align-items:center;justify-content:center;font-weight:800;
}
.inv-ava.sm{width:32px;height:32px;font-size:.84rem;}
.inv-inviter-name{display:flex;align-items:center;gap:7px;font-weight:700;color:#171a33;font-size:.9rem;}
.inv-bind p{margin:0 0 9px;}
.inv-list{display:flex;flex-direction:column;}
.inv-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-top:1px solid #f4f5f9;}
.inv-row:first-child{border-top:0;}
.inv-row-main{flex:1;min-width:0;}
.inv-row-name{display:flex;align-items:center;gap:7px;font-weight:700;color:#171a33;font-size:.86rem;flex-wrap:wrap;}
.inv-row-amt{flex:0 0 auto;text-align:right;display:flex;flex-direction:column;gap:1px;}
.inv-row-amt b{color:#0a6b61;font-size:.9rem;}
.inv-lv{font-size:.68rem;padding:1px 7px;}
.inv-depth{
  font-style:normal;font-size:.64rem;font-weight:800;padding:1px 6px;border-radius:100px;
  background:#f5f4fa;color:#4a4d66;
}
.inv-depth.d1{background:#eef2ff;color:#3730a3;}
.inv-depth.d2{background:#f5f4fa;color:#4a4d66;}
.inv-table{display:flex;flex-direction:column;font-size:.78rem;}
.inv-tr{display:grid;grid-template-columns:88px minmax(0,1fr) minmax(0,1.5fr) 68px 68px;gap:8px;align-items:center;padding:8px 0;border-top:1px solid #f4f5f9;}
.inv-tr:first-child{border-top:0;}
.inv-th{color:#6b6d88;font-weight:700;font-size:.72rem;}
.inv-tr .gold{color:#8a6119;font-weight:700;}
.inv-tr em{display:inline-block;margin-left:6px;}
.inv-empty{margin:4px 0;font-size:.8rem;color:#6b6d88;}
.inv-note{margin:12px 0 0;font-size:.74rem;color:#6b6d88;line-height:1.7;background:#fbfbfe;border-radius:9px;padding:8px 10px;}
.inv-note i{color:#7b4dff;}

@media (max-width:820px){
  .inv-hero{grid-template-columns:minmax(0,1fr);}
  .inv-rates{justify-content:flex-start;}
  .inv-qr{flex-direction:column;align-items:flex-start;}
}
@media (max-width:560px){
  .pts-tier-list{grid-template-columns:repeat(2,minmax(0,1fr));}
  .inv-rate{min-width:0;flex:1;}
  .inv-rates{width:100%;}
  .inv-copy-row{flex-wrap:wrap;}
  .inv-link{flex:1 1 100%;}
  .inv-tr{grid-template-columns:70px minmax(0,1fr) 60px 60px;}
  .inv-tr span:nth-child(3){display:none;}
}

/* ===== 邀请赚现金 · 独立页面 me/invite 026-10-02 =====
   页面宽度 /me 一致（1080），两个页面之间来回跳不会「宽度跳一下」 */
.inv-page{max-width:1080px;margin:0 auto;padding:22px 22px 70px;}
.inv-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;}
.inv-head-main{min-width:0;}
.inv-h1{margin:0 0 6px;font-size:1.32rem;font-weight:800;color:#171a33;display:flex;align-items:center;gap:8px;}
.inv-h1 i{color:#7b4dff;}
.inv-sub{margin:0;font-size:.84rem;line-height:1.75;color:#4a4d66;max-width:660px;}
.inv-sub b{color:#5b3fd4;}
.inv-back{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  font-size:.78rem;font-weight:700;color:#2b2e4a;background:#f5f4fa;border:1px solid #e4e1f5;
  border-radius:10px;padding:8px 12px;text-decoration:none;transition:all .15s ease;
}
.inv-back:hover{background:#f1ecff;border-color:#cfc4f5;color:#4a2ec4;}

/* ---------- 顶部选项卡（ /biz 的下划线标签同一套视觉语言 ---------- */
.inv-tabbar{
  display:flex;align-items:flex-end;justify-content:space-between;gap:12px;
  border-bottom:1px solid #eef0f6;margin-bottom:14px;
}
.inv-tabs{
  display:flex;gap:2px;min-width:0;max-width:100%;overflow-x:auto;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;
}
.inv-tabs::-webkit-scrollbar{height:4px;}
.inv-tabs::-webkit-scrollbar-thumb{background:#e4e1f5;border-radius:100px;}
.inv-tab{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  padding:8px 12px;border:0;border-bottom:2px solid transparent;background:transparent;
  color:#4a4d66;font-family:inherit;font-size:.86rem;font-weight:600;
  cursor:pointer;transition:color .15s,border-color .15s;line-height:1.5;
}
.inv-tab:hover{color:#5b3fd4;}
.inv-tab.on{color:#5b3fd4;font-weight:800;border-bottom-color:#5b3fd4;}
.inv-tab:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}
.inv-tab i{font-size:.95rem;}
.inv-tab-badge{
  font-style:normal;font-size:.66rem;font-weight:800;line-height:1.6;
  background:#f1ecff;color:#4a2ec4;padding:0 6px;border-radius:100px;
}
.inv-tab.on .inv-tab-badge{background:#5b3fd4;color:#fff;}
.inv-tabbar-rate{flex:0 0 auto;font-size:.74rem;color:#6b6d88;padding-bottom:8px;white-space:nowrap;}
.inv-tabbar-rate b{color:#5b3fd4;font-weight:800;}

/* ---------- 数据统计：趋势图 ---------- */
.inv-stat-sub{display:block;font-style:normal;font-size:.68rem;color:#6b6d88;margin-top:2px;}
.inv-trend{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end;padding-top:6px;}
.inv-trend-col{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;}
.inv-trend-amt{font-size:.66rem;color:#6b6d88;height:14px;white-space:nowrap;}
.inv-trend-bar{
  width:100%;height:96px;background:#f7f6fc;border-radius:8px;
  display:flex;align-items:flex-end;overflow:hidden;
}
.inv-trend-bar i{display:block;width:100%;background:linear-gradient(180deg,#8b6bf0,#5b3fd4);border-radius:8px 8px 0 0;transition:height .3s ease;}
.inv-trend-day{font-size:.66rem;color:#6b6d88;}

/* ---------- 我的下线：筛 ---------- */
.inv-team-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px;}
.inv-team-head .inv-title{margin:0;}
.inv-team-filter{display:flex;gap:6px;flex-wrap:wrap;}
.inv-fchip{
  flex:0 0 auto;font-size:.74rem;font-weight:700;color:#4a4d66;
  background:#f5f4fa;border:1px solid #e4e1f5;border-radius:100px;padding:4px 11px;
  cursor:pointer;transition:all .15s ease;font-family:inherit;
}
.inv-fchip:hover{background:#f1ecff;border-color:#cfc4f5;color:#4a2ec4;}
.inv-fchip.on{background:#f2eeff;border-color:#7b4dff;color:#4a2ec4;}
.inv-fchip:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}

/* ---------- 收益明细：汇总行 + 规则列表 ---------- */
.inv-income-sum{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,minmax(0,1fr)));gap:10px;
  background:#fbfbfe;border:1px solid #f1eefb;border-radius:12px;padding:12px 14px;margin-bottom:12px;
}
.inv-income-sum span{display:block;font-size:.72rem;color:#6b6d88;}
.inv-income-sum b{display:block;font-size:1rem;font-weight:800;color:#171a33;margin-top:2px;}
.inv-income-sum b.gold{color:#8a6119;}
.inv-rules{margin:0;padding-left:18px;font-size:.8rem;line-height:1.95;color:#4a4d66;}
.inv-rules b{color:#5b3fd4;}
.inv-rate.plain b{font-size:1.05rem;color:#0a6b61;}
.inv-rate.plain em{color:#6b6d88;}

@media (max-width:820px){
  .inv-head{flex-direction:column;}
  .inv-h1{font-size:1.18rem;}
}
@media (max-width:640px){
  .inv-page{padding:16px 14px 60px;}
  /* 选项卡横向滚动（窄屏放不 5 个）——⚠ 滚动容器必须 min-width:0/max-width:100% 
     否则会被内容撑宽、把整页顶出横向滚动 */
  .inv-tabbar{flex-direction:column;align-items:stretch;gap:4px;}
  .inv-tabs{width:100%;}
  .inv-tab{padding:8px 10px;font-size:.82rem;}
  .inv-tabbar-rate{padding:0 0 8px 2px;}
  .inv-rates{flex-wrap:wrap;}
  .inv-rate{flex:1 1 45%;}
  .inv-trend{gap:5px;}
  .inv-trend-bar{height:78px;}
  .inv-trend-amt{font-size:.6rem;}
  .inv-income-sum{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
}

/* ---------- 登录方式切换 026-10-03：密码登 / 验证码登录） ---------- */
/* 位于手机号字段上方；默认选中「密码登录 */
.login-mode-tabs{
  display:flex;gap:6px;margin:0 0 18px;padding:4px;border-radius:10px;
  background:#f4f2fb;border:1px solid #ece9f8;
}
.login-mode-tab{
  flex:1;height:36px;border:0;border-radius:8px;background:transparent;
  font-family:inherit;font-size:.86rem;font-weight:700;color:#6b6d88;
  cursor:pointer;transition:all .16s;
}
.login-mode-tab:hover{color:#5b3fd4;}
.login-mode-tab.on{
  background:#fff;color:#5b3fd4;box-shadow:0 1px 3px rgba(23,26,51,.10);
}
.login-mode-tab:focus-visible{outline:2px solid #7b4dff;outline-offset:2px;}

/* 验证码输入行：输入框自适应 + 右侧「获取验证码」按 */
.login-code-row{display:flex;gap:10px;align-items:center;}
.login-code-row .form-input{flex:1;min-width:0;}
.login-code-btn{white-space:nowrap;min-width:112px;height:42px;padding:0 14px;}
.login-code-tip{display:block;margin-top:8px;font-size:.76rem;color:#8a8ca0;}


/* ============================================================
   顶部导航响应式（2026-10-03 
    768~1199px：顶部导航尾部几项被遮挡  收进右侧≡「更多」下 
    <768px（H5）：两行 — 
        第一行：Logo + 搜索 + 登录/注册（或头像 
        第二行：左侧频道菜单（横向可滑）、右侧发布按 
   ============================================================ */

/* ----  「更 ⌄」下拉（仅在 <1200px 且有被隐藏项时渲染，且放 .tj-nav 内部最后一项）
   ⚠️ 2026-10-07：由  图标改成「更 + 箭头」的导航项样式，**点击 / 悬停都能展开**
      （它不是一个频道、没有自己的页面，所以是按钮而非链接） 
   位置：原来它 .tj-nav  *兄弟节点**， <1700  .tj-nav  flex:1 + 菜单靠左 
   于是  浮在「菜单结尾」与「右侧操作区」之间的空档里（实测 1100px：菜单结束于 488 
   按钮却在 613）。现在把它放 .tj-nav 里当最后一项：
     · <1200：菜单靠左（justify-content:flex-start）→ 「更多」紧跟在最后一项后面；
     ·  200：本来就没有溢出项（不渲染），导航仍是原来的 flex:1 + 靠右，外观零变化 */
.tj-nav-more{position:relative;display:flex;align-items:center;flex:0 0 auto;margin-left:2px;}
/* 按钮本体复用 .tj-nav-item 的尺 / 配色 / 悬停态（ Layout.jsx  className），
   这里只清 <button> 自带 UA 样式 */
.tj-nav-more-btn{border:0;background:transparent;font-family:inherit;line-height:normal;cursor:pointer;}
.tj-nav-more-btn:hover,.tj-nav-more.open .tj-nav-more-btn{color:var(--tj-gold-dark);background:#fffbeb;}
.tj-nav-more-btn .tj-nav-arrow{transition:transform .2s;}
.tj-nav-more.open .tj-nav-more-btn .tj-nav-arrow{transform:rotate(180deg);}
/* 悬停桥：下拉与按钮之间有 10px 间距，鼠标下移时会先经过这条透明带；
   没有它，指针一离开按钮就判定为移出  菜单在鼠标到达前就收起来 */
.tj-nav-more.open::after{
  content:'';position:absolute;right:0;top:100%;width:220px;max-width:70vw;height:12px;
}
.tj-nav-more-drop{
  position:absolute;top:calc(100% + 10px);right:0;min-width:196px;max-height:70vh;overflow-y:auto;z-index:1200;
  background:#fff;border:1px solid #f0efe9;border-radius:14px;
  box-shadow:0 18px 44px rgba(20,20,46,.16);padding:8px;
}
.tj-nav-more-group + .tj-nav-more-group{border-top:1px solid #f6f4ef;margin-top:4px;padding-top:4px;}
.tj-nav-more-item{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;
  color:#3a3d5c;font-size:.94rem;font-weight:700;text-decoration:none;white-space:nowrap;
}
.tj-nav-more-item i{width:18px;text-align:center;color:#9a9aab;}
.tj-nav-more-item:hover{background:#fff1ea;color:#e8744a;text-decoration:none;}
.tj-nav-more-item.active{background:#fff8e1;color:#e8744a;}
.tj-nav-more-sub{
  display:block;padding:7px 12px 7px 40px;border-radius:8px;
  color:#6b6d88;font-size:.86rem;text-decoration:none;white-space:nowrap;
}
.tj-nav-more-sub:hover{background:#f7f6f2;color:#e8744a;text-decoration:none;}
.tj-nav-more-sub.active{color:#e8744a;font-weight:700;}

/* ----  H5 两行布局 ----
   第一行：Logo（图 + 平台名） …………… [搜索图标][发布][登录/注册]
   第二行：频道菜单整行铺开（横向可滑） 尽量多显示几 
   ⚠️  CSS Grid  grid-template-areas 明确「两行两块」，不要 flex order + wrap 
      flex 换行是按 flex-basis 算的，实测在 480px 会出现「导航留在第一行、发布单独掉第二行」 
      .tj-header-h5  JS  <768px 时挂 <header> 上（与渲染结构同一个判断） */

/* ⚠️⚠️ 先作废一条历史规则：
      @media(max-width:768px){ .tj-nav > .tj-nav-item:nth-child(n+2){display:none} }
      — 它的意图是「窄屏顶栏只留第一个菜单项」，但现在：
        · <1200px 尾部菜单已由 ≡「更多」下拉承接；
        · H5 的菜单整行横滑，本身就能滚 
      不作废的话：390px 只剩 2 项（ hover 的第 2 项起全被隐藏），768px 也会少一项 
      选择器要写到同样 3 层级（带 :nth-child）才能压过它 */
.tj-nav > .tj-nav-item:nth-child(n),
.tj-nav > .tj-nav-hover:nth-child(n){display:flex !important;}

.tj-header-h5 .tj-header-inner{
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:
    "logo actions"
    "nav  nav";
  align-items:center;
  height:auto !important;min-height:0;
  padding:8px 12px !important;
  gap:6px 8px;
}
.tj-header-h5 .tj-header-inner > .tj-logo{grid-area:logo;flex:0 0 auto;padding-right:0;border-right:none;gap:8px;min-width:0;}
.tj-header-h5 .tj-header-inner > .tj-header-right{grid-area:actions;justify-self:end;margin-left:0 !important;gap:6px;flex-wrap:nowrap;}
.tj-header-h5 .tj-header-inner > .tj-nav{
  grid-area:nav;min-width:0;
  justify-content:flex-start !important;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
  border-top:1px solid #f6f4ef;padding-top:6px;
}
.tj-header-h5 .tj-header-inner > .tj-nav::-webkit-scrollbar{display:none;}

/* H5 第一行右区：搜索图标（点开居中大搜索）+ 发布 + 单一「登 注册 */
.tj-header-h5 .tj-header-right .tj-search-mini{
  display:flex !important;
  width:34px !important;height:34px !important;min-height:34px !important;max-height:34px !important;
  border-radius:10px !important;font-size:.95rem !important;
}
.tj-header-h5 .tj-header-right .tj-nav-publish .tj-nav-publish-btn{
  width:auto !important;
  height:34px !important;min-height:34px !important;max-height:34px !important;
  padding:0 10px !important;font-size:.82rem !important;border-radius:10px !important;
  white-space:nowrap;gap:3px;
}
.tj-header-h5 .tj-header-right .tj-nav-publish .tj-nav-publish-btn i{font-size:.95rem !important;}
/* ⚠️ 2026-10-04：H5 顶栏右上角的「登 注册」单按钮已按要求去掉 
   原来 `.tj-h5-authbtn` 样式随之删除（未登录时该位置留空） */
/* 会员入口 / 通知铃铛 H5 收起（个人中心与底部 tab 都有入口 
   ⚠️ 必须 3 层选择器：文件 v50 那段 2  + !important 统一了这些控件的 display */
.tj-header-h5 .tj-header-right .tj-member-btn,
.tj-header-h5 .tj-header-right .tj-member-entry,
.tj-header-h5 .tj-header-right .tj-icon-btn{display:none !important;}
/* H5 登录后也收起右上角头像（2026-10-04 按要求）：身份入口改为底部导航「我的」显示头像，
   退出登录在 /me  设置 里（ Me.jsx）。顶栏只留「搜索图 + 发布」 */
.tj-header-h5 .tj-header-right .tj-avatar-wrap{display:none !important;}

/* 底部导航「我的」登录后显示头像（替 person 图标 
   ⚠️ 尺寸/对齐关键：其 tab 的图标是 <i> 字形，原本行盒高 34.56px（font-size1.35rem × line-height1.6），
      而头像只 20px+3px — 两者不一致会让「我的」的标签比其 tab 高出一截，整体看着不协调 
      这里把图标与头像**统一 24px 方框 + 3px 下边 *，标签基线就对齐了；
      圆环 24px  21.6px 的字形也是光学上更接近的大小 
   ⚠️ UserAvatar 可能渲染 <img>、默认头 <img>，或首字母兜 <span class="tj-avatar-fallback"> 
      三种都要能居中（尺寸的行 style  UserAvatar  size=24 给出） */
.tab-bar .tab-item > i{display:block;font-size:1.35rem;line-height:24px;height:24px;margin:0 0 3px;}
.tab-bar .tab-item .tab-avatar{display:block;width:24px;height:24px;border-radius:50%;object-fit:cover;margin:0 auto 3px;}
.tab-bar .tab-item .tj-avatar-fallback{display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#00d6c2,#8a3bff);color:#fff;font-size:.72rem;font-weight:800;line-height:1;}

@media (max-width:767px){
  /* 导航项收紧：第二行整行都给了菜单，尽量多塞几 */
  .tj-nav{gap:0 !important;}
  .tj-nav-item{padding:7px 6px !important;font-size:.85rem !important;gap:4px !important;}
  .tj-nav-item i{font-size:.95rem !important;}
  /* 触摸屏没 hover：隐藏下拉箭 */
  .tj-nav-arrow{display:none !important;}

  /* Logo：图 + 平台名都要露出来（盖  40px 那条 `.tj-logo-text{display:none}`），slogan 收起 */
  .tj-logo-icon{width:32px !important;height:32px !important;font-size:1.05rem !important;border-radius:10px !important;}
  .tj-header-h5 .tj-logo .tj-logo-text{display:block !important;min-width:0 !important;line-height:1.1;}
  .tj-header-h5 .tj-logo .tj-logo-text strong{font-size:.98rem !important;}
  .tj-header-h5 .tj-logo .tj-logo-slogan,
  .tj-header-h5 .tj-logo .tj-logo-text small{display:none !important;}
  .tj-header-h5 .tj-logo-name{gap:6px;}

  /* 登录态头像收 */
  .tj-avatar-wrap .tj-avatar{width:32px;height:32px;}

  /* 居中大搜索浮层：小屏留白收紧 */
  .tj-search-panel{padding:20px 16px 16px;width:min(680px,94vw);}
  .tj-search-big-row input{font-size:.95rem;}
}
/* ---------- 搜索浮层遮罩 026-10-03 定稿：黑色半透明 + 全屏 ----------
   两个坑都出在这里 
   1) 颜色：文件里有两 !important 覆盖 980 深色 / 7113 白色），最终生效的是白色，
      所以必须写在文件末 + !important 才能定为「黑色半透明」 
      ⚠️ 透明 2026-10-03 按要求从 .6 调到 **.1**（只轻微压暗，页面内容仍看得清） 
   2) 尺寸：它原先渲染 <header> 里， .tj-header  backdrop-filter（滚动时还有 transform），
      二者都会让 fixed 定位相对「头部」而不是视  遮罩退化成头部大小（实 382x133） 
      根治 Layout.jsx：改 React Portal 挂到 <body>；这里补上兜底尺寸 */
.tj-search-overlay{
  position:fixed !important;inset:0 !important;
  width:100% !important;height:100% !important;
  background:rgba(0,0,0,.1) !important;
  backdrop-filter:blur(6px) !important;-webkit-backdrop-filter:blur(6px) !important;
  z-index:9200 !important;
  display:flex !important;justify-content:center !important;align-items:flex-start !important;
  padding-top:17vh;
  animation:authmFade .16s ease;
}
@media (max-width:767px){ .tj-search-overlay{padding-top:12vh;} }

/* ---------- 登录/注册弹窗的内联提示条 026-10-04 ----------
   为什么不 toast：弹窗由根部 AuthModalProvider 渲染，ToastProvider  Layout 内部（更下层），
   弹窗不属于它的子  useToast() 拿到的是 Toast.jsx 的静 no-op 兑底值 
   于是「密码输错了」什么提示都没有。改成弹窗内自己渲染提示条 */
.authm-msg{
  display:flex;align-items:flex-start;gap:7px;margin:0 0 12px;padding:9px 12px;
  border-radius:10px;font-size:.82rem;font-weight:600;line-height:1.5;
}
.authm-msg i{font-size:.95rem;line-height:1.35;flex:0 0 auto;}
.authm-msg.err{background:#fdeceb;color:#b0281f;}
.authm-msg.ok{background:#eafaf7;color:#0a6b61;}

/* /me 设置页的「退出登录」（2026-10-09 重做位置）
   原来夹在「子选项卡」和「设置表单」之间 —— 一条整宽分隔线 + 靠左的红色胶囊按钮，
   视觉上像多出来的第三个选项卡。现在沉到设置面板最下方：
   与「保存修改 / 确认修改」同一列左对齐，上方一条分隔线，右侧跟一句说明。 */
.me-logout-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:28px 0 0;padding-top:20px;border-top:1px solid #f0eef6;}
.me-logout-btn{color:#b0281f !important;border-color:#f3d6d3 !important;}
.me-logout-btn:hover{background:#fdeceb !important;color:#8f1f18 !important;}
.me-logout-hint{font-size:.82rem;color:#a3a5c4;}
@media (max-width:767px){
  /* 窄屏：按钮整行铺开更好点，说明文字换到下一行 */
  .me-logout-row{gap:8px;}
  .me-logout-hint{flex:1 0 100%;}
}

/* ============ 移动端个人主 /mine 的沉浸式布局 026-10-04 ============
   Layout.jsx 已经不给 /mine 渲染 Header 与滚动通知条了，但 .tj-layout 本身
   还带着 `margin-top:22px !important` 和左 28px 内边 — 封面会被顶下来一条白边 
   不再「贴顶全出血」。这里统一清掉（必须加 !important，因为原规则 !important） */
.tj-layout-mine{margin-top:0 !important;padding:0 !important;max-width:none !important;}

/* ============================================================================
   H5 顶栏改造（2026-10-04 
    第二行不再放**全站**频道菜单（教程/专栏/广场/资源对接/人脉库）
      — 底部 tab 已经 教程/专栏/广场/资源对接/我的，两处完全重复、白占一行 
    第二行改成放**当前频道自己的子导航**：频道页（教 专栏）用 Portal  
      `.sp-tabs` 送进 `#tj-h5-subnav`，见 components/ChannelSubnav.jsx 
      ⚠️ 挂载点常驻在 DOM（SSR 就有），所以这里默 display:none，只 H5 打开 
      ⚠️ 空的时候必须整行收起（:empty）：/square biz me 这些没有子导航的页面
         不能留一条空白行 
   ============================================================================ */
.tj-header-subnav{display:none;}

.tj-header-h5 .tj-header-inner > .tj-nav{display:none !important;}

.tj-header-h5 .tj-header-inner > .tj-header-subnav{
  display:flex !important;grid-area:nav;min-width:0;
  justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
  border-top:1px solid #f6f4ef;padding-top:6px;
}
.tj-header-h5 .tj-header-inner > .tj-header-subnav:empty{
  display:none !important;border-top:none;padding-top:0;
}
.tj-header-h5 .tj-header-inner > .tj-header-subnav::-webkit-scrollbar{display:none;}
/* 页面里的 .sp-tabs 是卡片里的一 chips（会换行 + flex:1），搬进顶栏后要变成
   单行横滑（PC 上不受影响：这些选择器都 .tj-header-h5 前缀 */
.tj-header-h5 .tj-header-subnav .sp-tabs{
  flex:0 0 auto;flex-wrap:nowrap;gap:4px;min-width:0;margin:0;padding:0;
  background:transparent;border:none;box-shadow:none;
}
.tj-header-h5 .tj-header-subnav .sp-sort{
  flex:0 0 auto;margin-left:6px;padding:2px;background:#f6f4fb;
}
.tj-header-h5 .tj-header-subnav .sp-sort-item{padding:4px 10px !important;font-size:.78rem !important;}
.tj-header-h5 .tj-header-subnav .sp-tab{
  padding:5px 12px !important;font-size:.82rem !important;flex:0 0 auto;
}

/* 微信群二维码弹窗 026-10-07）：教程频道「邀请加入微信群」卡片点击后弹出 
   二维码来自后台「系统设  站点信息  微信群二维码」，代码里不写死 */
.wxm-card{
  position:relative;width:100%;max-width:340px;text-align:center;
  background:#fff;border-radius:18px;padding:26px 24px 20px;
  box-shadow:0 30px 70px -25px rgba(17,19,40,.55);
  animation:authmPop .18s ease;
}
.wxm-head{margin-bottom:14px;}
.wxm-ic{
  display:inline-flex;align-items:center;justify-content:center;
  width:46px;height:46px;border-radius:14px;margin-bottom:10px;
  background:rgba(7,193,96,.12);color:#07c160;font-size:1.4rem;
}
.wxm-head h3{margin:0 0 6px;font-size:1.12rem;font-weight:900;color:#171a33;}
.wxm-head p{margin:0;font-size:.8rem;color:#7d9a89;}
.wxm-qr{
  width:216px;height:216px;margin:0 auto;padding:10px;box-sizing:border-box;
  background:#fff;border:1px solid #eef0f6;border-radius:14px;
  box-shadow:0 10px 26px -18px rgba(7,193,96,.55);
}
.wxm-qr img{display:block;width:100%;height:100%;object-fit:contain;border-radius:8px;}
/* 后台还没配二维码：占位块（不画假二维码，避免误导用户去扫 */
.wxm-qr.wxm-qr-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  background:#f7fbf8;border-style:dashed;border-color:rgba(7,193,96,.35);box-shadow:none;
}
.wxm-qr.wxm-qr-empty i{font-size:2.6rem;color:rgba(7,193,96,.55);}
.wxm-qr.wxm-qr-empty span{font-size:.82rem;font-weight:700;color:#6f8f7f;}
.wxm-tip{margin:14px 0 0;font-size:.78rem;line-height:1.7;color:#5b5d78;}
.wxm-tip i{color:#07c160;margin-right:4px;}
@media (max-width:400px){
  .wxm-qr{width:180px;height:180px;}
}

/* H5：右下角悬浮「发布」按钮收 — 顶栏第一行已经有  发布」，
   它还会浮在内容卡片上挡住文字（教 专栏页实测被遮住一个卡片按钮） */
@media (max-width:1023px){
  .tj-write-btn{display:none !important;}

  /* 分类 chips 与排序被搬到顶栏后，页面这行只剩搜索框：
     让它铺满整行，避免左边空一大块、右边只剩一个小输入框 */
  .sp-guide{flex-wrap:nowrap;gap:8px;}
  .sp-guide .sp-search{flex:1 1 100%;width:auto;min-width:0;}
}

/* ============================================================================
   /me 移动端：隐藏顶部「封 + 头像 + 昵称 + 简 + 操作按钮」这一大块
    026-10-04 按要求）— 手机上打开 /me  /me?tab=xxx 只留主内容区 
   ⚠️ 只加  023px，PC 端展示完全不变；
   ⚠️ 必须写在文件末尾：文件里 767px 那段还有 .me-page/.me-cover/.me-head 的规则，
      同优先级下靠「后面的赢」 
   ============================================================================ */
@media (max-width:1023px){
  .me-cover{display:none !important;}
  .me-head{display:none !important;}
  .me-page{padding:12px 12px 70px !important;}
  .me-body{margin-top:0 !important;}
}

/* ============================================================================
   教程 / 专栏：H5 隐藏「频道子导航」与「子分类／列表」之间的那几块（2026-10-04 
   — 顶部频道 banner（标 + 统计 + 会员/微信 讲师投稿三张卡）、信息行、搜索行 
   手机上这两页现在的层次变成：
     顶栏第一行（logo / 搜索 / 发布）→ 顶栏第二行（频道子导航）
      子分  列表
   ⚠️ 只加  023px，且选择器都限定「这两个页面根节点的直接子级 
       sp-zone = Tutorial col-page = Column），PC 端与其它页面完全不受影响 
   ⚠️ 教程页的 .sp-content-head/.sp-bar2/.sp-guide 都是 .sp-zone 的直接子级；
      专栏页的 .sp-content-head/.sp-bar2 被包 .col-hero 里，所以要整块隐藏 .col-hero 
   ============================================================================ */
@media (max-width:1023px){
  /* ⚠️ 2026-10-04 调整：只藏「频道大 banner / 信息行」，**不再 .sp-guide** — 
     排序条（推荐/最 热门/精选）原来跟着 chips 一起被搬进顶栏，结果在手机上被横滑到看不见 
     现在留在页面里，由下面的 order 排到「分 / 子分类」下方 */
  .sp-zone > .sp-content-head,
  .sp-zone > .sp-bar2,
  .col-page > .col-hero{display:none !important;}

  /* 排序条：去掉卡片外壳，做成一条紧凑横滑行；搜索框仍收起（顶栏已有全局搜索 */
  .sp-zone > .sp-guide,.col-page > .sp-guide{
    display:flex !important;flex-wrap:nowrap !important;align-items:center;gap:8px;
    background:transparent !important;border:none !important;box-shadow:none !important;
    padding:0 !important;margin:0 0 10px !important;
    overflow-x:auto;overflow-y:hidden;scrollbar-width:none;min-width:0;max-width:100%;
  }
  .sp-zone > .sp-guide::-webkit-scrollbar,.col-page > .sp-guide::-webkit-scrollbar{display:none;}
  .sp-zone > .sp-guide > .sp-sort,.col-page > .sp-guide > .sp-sort{flex:0 0 auto;margin:0;}
  .sp-zone > .sp-guide .sp-search,.col-page > .sp-guide .sp-search{display:none !important;}
  /* 教程页顺序：子分  排序  列表 sp-zone 平时 block，这里临时做列向 flex 才排得动 */
  .sp-zone{display:flex;flex-direction:column;}
  .sp-zone > .sp-guide-sub{order:1;}
  .sp-zone > .sp-guide{order:2;}
  .sp-zone > .sp-list{order:3;}
  .sp-zone > .sp-list-foot{order:4;}
}

/* ============================================================================
   移动端频道页统一优化 026-10-04 
   原则（对齐移动端设计习惯）：
      首屏尽量留给内容 — 桌面端的「多行标签墙 / 快捷筛选」在手机上一律变成单行横向可滑；
      左右留白与顶栏对齐（12px），不要再出现「顶 12px / 内容 28px」的错位 
      同一个动作在手机上只留一个入口（发布类入口顶栏已有） 
      触屏没有 hover，不依赖悬停浮层 
   ⚠️ 整个块都  023px 里，PC 端布局一行都不变 
   ============================================================================ */
@media (max-width:1023px){
  /*  容器留白对齐顶栏 */
  .tj-layout:not(.tj-layout-bleed):not(.tj-layout-mine){padding-left:12px !important;padding-right:12px !important;}

  /*  多行「标签墙 / 快捷筛选」→ 单行横滑（省 100~200px 首屏高度 
        · .pj-chips    项目库「热门搜 / 分类筛选 
        · .bz3-fitems  人脉库「行业」筛 
        · .ct-side-tags 人脉库侧栏标 
        · .ai-topbar   AI-Hub 顶部筛选栏 */
  .pj-chips,.bz3-fitems,.ct-side-tags,.ai-topbar{
    flex-wrap:nowrap !important;
    overflow-x:auto;overflow-y:hidden;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
    /* ⚠️ 必须 min-width:0 + max-width:100%：横向滚动容器放 flex/grid 里时 
       不写这两句会把祖先撑宽（实测人脉 项目库整页横向溢 1011px / 789px） 
       同坑 .me-nav 那段注释 */
    min-width:0;max-width:100%;
  }
  .pj-chips::-webkit-scrollbar,.bz3-fitems::-webkit-scrollbar,.ct-side-tags::-webkit-scrollbar,.ai-topbar::-webkit-scrollbar{display:none;}
  .pj-chips > *,.bz3-fitems > *,.ct-side-tags > *,.ai-topbar > *{flex:0 0 auto;white-space:nowrap;}

  /*  人脉库：搜索 + 搜索按钮并排（原来是上下两行，白 40px */
  .ct-search-row{flex-direction:row !important;flex-wrap:nowrap !important;align-items:center;gap:8px;}
  .ct-search-box{flex:1 1 auto;min-width:0;}
  .ct-search-row > .ct-btn-main{flex:0 0 auto;width:auto;padding:0 18px;}

  /*  广场：移动端一行式发布入口 */
  .pub2-h5-entry{
    display:flex;align-items:center;gap:10px;
    background:#fff;border:1px solid rgba(123,77,255,.10);border-radius:14px;
    padding:10px 14px;margin:0 0 12px;text-decoration:none;
    box-shadow:0 10px 26px -22px rgba(90,60,200,.5);
  }
  .pub2-h5-entry:active{background:#faf9ff;}
  .pub2-h5-ava{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:0 0 auto;}
  .pub2-h5-ava-ph{
    display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg,#00d6c2,#8a3bff);color:#fff;
    font-weight:800;font-size:.95rem;line-height:1;
  }
  .pub2-h5-ph{flex:1 1 auto;min-width:0;color:#9a9aab;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .pub2-h5-ic{color:#7b4dff;font-size:1rem;flex:0 0 auto;}

  /*  兜底：主内容区里的「多列网格」在手机上一律压成单列 
       有的页面列宽写死了（ /cooperation  `.contacts-layout` 算出 380.8px 固定列） 
        390px 屏上必然把页面撑出横向滚动条（实测溢 11px） 
       grid-template-columns  flex 容器无效，所以整条规则是安全的、不会误伤 */
  .tj-main .contacts-layout,.tj-main .cp-grid,.tj-main .nav3-layout,.tj-main .nav3-grid,
  .tj-main .gf-layout,.tj-main .ai-layout,.tj-main .col-main,.tj-main .pj-wrap{
    grid-template-columns:minmax(0,1fr) !important;
  }

  /*  频道页大标题在手机上收一 */
  .sp-content-head h2,.pj-hero-title,.ct-hero-title,.col-hero-title{font-size:1.35rem !important;line-height:1.3 !important;}
}

/* ============================================================================
   教程 / 专栏：列表页 + 详情 的移动端重排 026-10-04 
   实测问题 90px）：
     · 教程列表 *双列**，每张卡只有 172px 宽：标题 3 行、分 作 日期挤成两行 
     · 专栏「头部推荐」是竖着堆的 3  248px 大卡（共 767px），首屏全是推荐 
     · 专栏列表卡的文字区被右侧「订阅」按钮（171px）挤到只 **37px  *，文字逐字换行 
       一张卡 553px 
     · 专栏详情页头部卡 469px（大图标 + 5 行简 + 3 行统计竖 + 整宽按钮）；
     · 教程详情页操作条按钮 57px 高、侧栏提示卡等 
   全部只在  023px 生效，PC 布局与体验不变 
   ============================================================================ */
@media (max-width:1023px){
  /* ---------- 教程列表：改成「左文右图」单列列 ---------- */
  .sp-list{grid-template-columns:minmax(0,1fr) !important;gap:12px !important;}
  .sp-item{flex-direction:row !important;}
  .sp-cover{
    order:2;flex:0 0 112px;width:112px;
    height:84px !important;aspect-ratio:auto !important;
    border-radius:12px;margin:12px 12px 12px 0;align-self:flex-start;
  }
  .sp-cover-ph{font-size:1.5rem;}
  .sp-new{left:6px;top:6px;font-size:.62rem;padding:2px 7px;}
  .sp-intr{order:1;padding:12px 4px 12px 14px;gap:7px;}
  .sp-t1{font-size:.95rem;line-height:1.45;min-height:0;}
  .sp-abs{-webkit-line-clamp:1;}
  .sp-meta{flex-wrap:nowrap;overflow:hidden;gap:6px;}
  .sp-meta-info{min-width:0;overflow:hidden;}
  .sp-author,.sp-date{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

  /* ---------- 教程详情：头部与操作条收 ---------- */
  .td-wrap{padding-left:0 !important;padding-right:0 !important;}
  .td-crumb{font-size:.76rem;margin-bottom:6px;}
  .td-title{font-size:1.26rem !important;line-height:1.35 !important;}
  .td-summary{font-size:.86rem;line-height:1.6;}
  .tut-meta.td-meta{padding:10px 12px !important;gap:8px !important;border-radius:12px;}
  .tut-actions.td-actions{padding:10px 12px !important;gap:8px !important;border-radius:12px;}
  .tut-actions .tut-act-btn{height:40px !important;min-height:40px !important;padding:0 14px !important;font-size:.84rem !important;}
  .td-side .td-tip{display:none !important;}
  .td-side .td-card{padding:14px !important;}

  /* ---------- 专栏列表：头部推荐改「横向滑 + 大卡片」（2026-10-04 调整 ----------
     原先一行挤 5 个（每列 66px），文字逐字换行、可读性极差 
     现改为横向滚动，一屏约 2.2 张（每张 44%、宽 150~230px），左右滑动查看更多 */
  .col-featured{
    display:flex !important;grid-template-columns:none !important;
    overflow-x:auto;overflow-y:hidden;gap:10px;
    padding-bottom:4px;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .col-featured::-webkit-scrollbar{display:none;}
  .col-feat-card{
    flex:0 0 44%;min-width:150px;max-width:230px;
    scroll-snap-align:start;border-radius:14px;
  }
  .col-feat-cover{height:clamp(88px,26vw,120px);font-size:2rem;}
  .col-feat-body{padding:10px 12px 12px;text-align:left;}
  /* 卡片变大后可以容纳作 简介，订阅按钮仍隐藏（整卡可点进详情订阅，避免窄卡溢出 */
  .col-feat-author{font-size:.72rem;}
  .col-feat-author span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .col-feat-desc{font-size:.76rem;-webkit-line-clamp:2;}
  .col-feat-btn{display:none !important;}
  .col-feat-name{font-size:.95rem;line-height:1.35;font-weight:800;text-align:left;}
  .col-feat-body .col-meta{justify-content:flex-start;gap:6px;font-size:.72rem;margin-top:8px;flex-wrap:wrap;overflow:visible;}
  .col-feat-body .col-meta-item{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .col-feat-body .col-price{margin-left:0;font-size:.68rem;padding:2px 9px;}

  /* ---------- 专栏列表：一列多行（2026-10-04 修正 — 之前误做成一 5 个密集网格） ----------
     ⚠️ 曾经的坑：右侧订阅按 171px + 头像 60px 把中间文字区挤到 37px（文字逐字换行、卡 553px），
        所以这里给文字 `flex:1 1 calc(100% - 68px)`（独占一行），订阅按钮换到第二行、左对齐 */
  /* 页面留白收小 tj-layout 12px + .col-page 14px 会变成一 26px，手机上太空 */
  .col-page{
    margin-left:-12px !important;margin-right:-12px !important;
    padding:10px 10px 64px !important;
  }
  .col-list{display:flex !important;flex-direction:column !important;gap:10px !important;}
  .col-item{
    flex-direction:row !important;flex-wrap:wrap !important;align-items:flex-start !important;
    padding:12px !important;gap:10px !important;border-radius:14px;
  }
  .col-item:hover{transform:none;}
  .col-item > .col-avatar{width:46px;height:46px;font-size:1.15rem;flex:0 0 auto;}
  .col-item > div:nth-child(2){flex:1 1 calc(100% - 68px) !important;min-width:0 !important;}
  .col-item-name{font-size:.96rem;}
  .col-item-by{font-size:.76rem;}
  .col-item-desc{font-size:.82rem;line-height:1.55;-webkit-line-clamp:2;}
  .col-item .col-meta{justify-content:flex-start;gap:12px;font-size:.74rem;width:auto;max-width:100%;}
  .col-item .col-meta-item{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .col-item-tags{font-size:.7rem;gap:4px;}
  .col-item-sub{flex:0 0 100% !important;align-self:flex-start !important;margin-top:2px;}
  .col-item-sub .col-sub-ok,
  .col-item-sub .col-sub-btn{
    width:auto;display:inline-flex;justify-content:center;
    padding:7px 16px !important;font-size:.8rem !important;
  }

  /* ---------- 专栏详情：头部大卡压 ---------- */
  .col-detail{padding:12px 12px 70px !important;}
  .col-d-hero{padding:14px 14px 16px !important;border-radius:16px !important;}
  .col-d-hero-in{gap:10px !important;}
  .col-d-icon{width:52px !important;height:52px !important;font-size:1.5rem !important;border-radius:14px !important;}
  .col-d-badge{font-size:.68rem;padding:2px 8px;}
  .col-d-title{font-size:1.2rem !important;line-height:1.32 !important;}
  .col-d-desc{font-size:.84rem;line-height:1.6;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .col-d-stats{flex-wrap:nowrap;overflow-x:auto;gap:8px;font-size:.74rem;scrollbar-width:none;}
  .col-d-stats::-webkit-scrollbar{display:none;}
  .col-d-stats > *{flex:0 0 auto;}
  .col-d-act{margin-top:8px;}
  .col-d-ok{width:auto !important;padding:8px 16px !important;font-size:.84rem;align-self:flex-start;}
}

/* ============================================================================
   页脚 026-10-07 视觉重做：深 · 大气 
   · 背景：深墨蓝渐变 + 左上紫光 / 右下青光 + 顶部渐变亮线
   · 结构：品牌（logo / 站名 / 副标题）  频道（后 /manage/menus 驱动 
           + 底栏（版 · 备案 · 回到顶部 
   · 频道规则仍不变：只保留五大频道，后台隐藏频道后页脚自动同 
   ⚠️ 主题覆盖层有多条 `footer{... !important}`（第 7013 / 7163 / 7274 行） 
      且还 `footer a{color:... !important}` — 本段一律用 `.tj-footer …` 类选择 + !important 
       *更高优先 *盖住；别再改回元素选择器，否则深底会被浅色主题刷回白底黑字 
   ============================================================================ */
.tj-footer{
  position:relative;overflow:hidden;isolation:isolate;
  margin-top:56px;padding:0 0 26px;
  background:linear-gradient(168deg,#191c40 0%,#111329 46%,#0a0b19 100%) !important;
  border-top:none !important;
  color:#a7adcc !important;font-size:.83rem;
}
/* 左上紫光 + 右下青光 */
.tj-footer::before{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(640px 320px at 8% -34%,rgba(123,77,255,.34),transparent 64%),
    radial-gradient(560px 300px at 92% 120%,rgba(43,246,222,.15),transparent 68%);
}
/* 顶部渐变亮线 */
.tj-footer-accent{
  position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,transparent 0%,#7b4dff 24%,#2bf6de 60%,transparent 100%);
  opacity:.9;
}
.tj-footer-inner{
  max-width:1080px;margin:0 auto;padding:46px 32px 4px;
  display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:28px 48px;align-items:start;
}
/* ---- 品牌 ---- */
.tj-footer-logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none;}
.tj-footer-logo-mark{width:46px;height:46px;flex:0 0 auto;display:block;
  filter:drop-shadow(0 10px 24px rgba(138,59,255,.45));}
.tj-footer-logo-mark svg{width:100%;height:100%;display:block;}
.tj-footer-logo-img{width:46px;height:46px;flex:0 0 auto;object-fit:contain;border-radius:12px;
  box-shadow:0 10px 26px rgba(0,0,0,.35);}
.tj-footer-logo-name{
  font-size:1.34rem;font-weight:800;letter-spacing:.4px;
  background:linear-gradient(120deg,#ffffff 0%,#cfc8ff 48%,#82f2e2 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent !important;-webkit-text-fill-color:transparent;
}
.tj-footer-slogan{margin:14px 0 0;line-height:1.8;color:#8f96b8 !important;max-width:36em;}
/* ---- 频道 ---- */
.tj-footer-col{justify-self:end;}
.tj-footer-title{
  font-size:.72rem;font-weight:700;letter-spacing:2.6px;text-transform:uppercase;
  color:#6e75a2 !important;margin-bottom:18px;
}
.tj-footer-links{display:flex;flex-wrap:wrap;gap:12px 28px;}
.tj-footer-link{
  position:relative;color:#c3c9e3 !important;text-decoration:none;
  padding-bottom:3px;transition:color .18s;
}
/* 悬停时从左到右展开的渐变下划线 */
.tj-footer-link::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,#7b4dff,#2bf6de);
  transform:scaleX(0);transform-origin:left;transition:transform .24s;
}
.tj-footer-link:hover{color:#ffffff !important;}
.tj-footer-link:hover::after{transform:scaleX(1);}
/* ---- 底栏 ---- */
.tj-footer-bottom{
  max-width:1080px;margin:30px auto 0;padding:18px 32px 0;
  border-top:1px solid rgba(255,255,255,.09);
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
}
.tj-footer-copy{color:#7d84a8 !important;font-size:.76rem;line-height:1.8;}
.tj-footer-icp{margin-left:14px;font-style:normal;color:#6f7699 !important;}
.tj-footer-top{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 15px;border-radius:100px;cursor:pointer;font-family:inherit;font-size:.75rem;
  border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);
  color:#c3c9e3 !important;transition:all .18s;
}
.tj-footer-top:hover{
  background:rgba(123,77,255,.24);border-color:rgba(123,77,255,.55);color:#fff !important;
  transform:translateY(-1px);
}
/* ---- 移动 ---- */
@media (max-width:768px){
  .tj-footer{margin-top:36px;padding-bottom:86px;}   /* 给固定底栏（.tab-bar）留 */
  .tj-footer-inner{grid-template-columns:1fr;gap:26px;padding:32px 20px 4px;}
  .tj-footer-col{justify-self:start;width:100%;}
  .tj-footer-title{margin-bottom:14px;}
  .tj-footer-links{gap:11px 22px;}
  .tj-footer-slogan{max-width:none;}
  .tj-footer-bottom{margin:22px 20px 0;padding:16px 0 0;flex-direction:column;align-items:flex-start;}
  .tj-footer-icp{margin-left:0;display:block;}
}

/* ============================================================================
   自定义站 LOGO（后台「系统设  站点信息  网站 LOGO」）
   2026-10-06：原先顶 Logo 写死成内 SVG，后台配了也不生效 
   · 图片等比缩放 .tj-logo-icon 的尺寸内（contain），不改宽高、不裁切 
   · 自定 LOGO 取消悬停旋转（品牌图标旋转很怪） 
   ============================================================================ */
.tj-logo-img{width:100%;height:100%;object-fit:contain;display:block;}
.tj-logo:hover .tj-logo-icon-img{transform:none;}

/* ============================================================================
   密码框右侧「眼睛」按钮（2026-10-07 
   登录 / 注册入口（弹 AuthModal  /login register 页）的密码框统一改用
   components/PasswordInput.jsx：最右侧一枚眼睛图标，点击切换 明文 / 密文 
   · .pwd-wrap 只做定位容器，input 仍是 .form-input（尺 配色/聚焦态全部照旧） 
     只是右侧留出 40px 给图标；
   · 按钮 type="button"，不会误提交表单 
   · 顺手关掉 Edge 自带的密码显示按钮，避免出现两只眼睛 
   ============================================================================ */
.pwd-wrap{position:relative;display:flex;align-items:stretch;width:100%;}
.pwd-wrap > .form-input{width:100%;padding-right:40px;}
.pwd-wrap .form-input::-ms-reveal,
.pwd-wrap .form-input::-ms-clear{display:none;}
.pwd-eye{
  position:absolute;top:0;right:0;bottom:0;width:40px;
  display:flex;align-items:center;justify-content:center;
  padding:0;border:none;border-radius:10px;background:transparent;
  color:#9aa0b4;font-size:1rem;line-height:1;cursor:pointer;transition:color .15s,background .15s;
}
.pwd-eye:hover{color:#5b3fd4;background:rgba(91,63,212,.08);}
.pwd-eye:active{color:#5b3fd4;}
.pwd-eye:focus-visible{outline:2px solid rgba(123,77,255,.5);outline-offset:-2px;}

/* ============================================================================
   今日通知条 v1（2026-10-09）
   「今日」金标签 + 中间滚动文案（后台可配）+ 右侧「查看详情」（配了链接才出现）
   + 实时统计（N 篇精华帖子 / N 篇教程 / N 个专栏，≥768px 才展示）
   说明：统计数字由客户端拉 /api/site/stats 后渲染，首帧不占位（SSR 不请求后端）
   ============================================================================ */
.tj-announce-more{
  flex-shrink:0;display:inline-flex;align-items:center;gap:2px;
  padding:3px 10px;border-radius:999px;
  background:rgba(138,59,255,.10);border:1px solid rgba(138,59,255,.22);
  color:#6d28d9 !important;font-size:.76rem;font-weight:600;line-height:1.5;
  white-space:nowrap;text-decoration:none;
  transition:background .18s,color .18s,border-color .18s;
}
.tj-announce-more:hover{background:#8a3bff;border-color:#8a3bff;color:#fff !important;}
.tj-announce-more i{font-size:.68rem;}
.tj-announce .stats span{white-space:nowrap;}
@media (max-width:767px){
  .tj-announce-inner{gap:10px;}
  .tj-announce-more{padding:2px 8px;font-size:.72rem;}
}