/* page-index.css - page-specific styles for index.html (feed). Shared: tokens/base/components/layout/responsive. */

.feed-column {
            border-left: 1px solid var(--border);
            padding: 24px;
            max-width: 680px;
            width: 100%;
        }

.feed-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 20px;
        }

.feed-header h1 {
            font-size: 1.4rem;
            font-weight: 800;
        }

.feed-tabs {
            display: flex;
            gap: 4px;
            background: var(--bg-surface);
            padding: 4px;
            border-radius: var(--radius-md);
            border: 1px solid var(--border);
        }

.feed-tab {
            padding: 6px 14px;
            border-radius: var(--radius-sm);
            border: none;
            background: transparent;
            color: var(--text-secondary);
            font-size: 0.88rem;
            font-weight: 600;
            transition: all var(--transition);
        }

.feed-tab:hover {
            color: var(--text-primary);
        }

.feed-tab.active {
            background: var(--primary);
            color: #000;
            font-weight: 700;
        }

.composer {
            background: var(--bg-surface);
            border-radius: var(--radius-lg);
            border: 1px solid var(--border);
            padding: 16px;
            margin-bottom: 24px;
            transition: border-color var(--transition);
        }

.composer:focus-within {
            border-color: rgba(0, 214, 143, 0.4);
            box-shadow: 0 0 0 3px rgba(0, 214, 143, 0.08);
        }

.composer-row {
            display: flex;
            gap: 12px;
            align-items: flex-start;
        }

.composer-avatar {
            width: 42px;
            height: 42px;
            border-radius: var(--radius-full);
            object-fit: cover;
            flex-shrink: 0;
            border: 2px solid var(--border);
        }

.composer-body {
            flex: 1;
        }

.composer-textarea {
            width: 100%;
            background: transparent;
            border: none;
            color: var(--text-primary);
            font-family: inherit;
            font-size: 1rem;
            line-height: 1.6;
            resize: none;
            outline: none;
            min-height: 60px;
        }

.composer-textarea::placeholder {
            color: var(--text-muted);
        }

.composer-code-area {
            display: none;
            margin-top: 10px;
            background: var(--bg-base);
            border: 1px solid var(--border);
            border-radius: var(--radius-md);
            overflow: hidden;
        }

.composer-code-area.visible {
            display: block;
        }

.code-lang-select {
            background: var(--bg-surface-2);
            color: var(--text-secondary);
            border: none;
            border-bottom: 1px solid var(--border);
            padding: 6px 12px;
            width: 100%;
            font-family: inherit;
            font-size: 0.82rem;
            outline: none;
        }

.composer-code-input {
            width: 100%;
            background: transparent;
            border: none;
            color: var(--primary);
            font-family: 'Courier New', Courier, monospace;
            font-size: 0.9rem;
            padding: 10px 12px;
            resize: vertical;
            min-height: 100px;
            outline: none;
            direction: ltr;
            text-align: left;
        }

.composer-footer {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-top: 12px;
            padding-top: 12px;
            border-top: 1px solid var(--border-subtle);
        }

.composer-tools {
            display: flex;
            gap: 6px;
        }

.tool-btn {
            width: 34px;
            height: 34px;
            border-radius: var(--radius-sm);
            border: 1px solid transparent;
            background: transparent;
            color: var(--text-secondary);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.15rem;
            transition: all var(--transition);
        }

.tool-btn:hover {
            background: var(--bg-hover);
            color: var(--primary);
            border-color: var(--border);
        }

.tool-btn.active {
            background: var(--primary-dim);
            color: var(--primary);
            border-color: rgba(0, 214, 143, 0.3);
        }

.post-card {
            background: var(--bg-surface);
            border-radius: var(--radius-lg);
            border: 1px solid var(--border);
            padding: 20px;
            margin-bottom: 16px;
            transition: border-color var(--transition), box-shadow var(--transition);
            position: relative;
        }

.post-card:hover {
            border-color: rgba(255, 255, 255, 0.14);
            box-shadow: var(--shadow-card);
        }

.post-header {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 14px;
        }

.post-avatar {
            width: 44px;
            height: 44px;
            border-radius: var(--radius-full);
            object-fit: cover;
            border: 2px solid var(--border);
            flex-shrink: 0;
            cursor: pointer;
        }

.post-meta {
            flex: 1;
            min-width: 0;
        }

.post-author-name {
            font-weight: 700;
            font-size: 0.98rem;
            cursor: pointer;
        }

.post-author-name:hover {
            color: var(--primary);
        }

.post-author-handle {
            font-size: 0.82rem;
            color: var(--text-muted);
            margin-right: 4px;
        }

.post-time {
            font-size: 0.78rem;
            color: var(--text-muted);
        }

.post-badge {
            font-size: 0.72rem;
            padding: 3px 8px;
            border-radius: var(--radius-full);
            font-weight: 700;
            display: inline-flex;
            align-items: center;
            gap: 4px;
        }

.badge-code {
            background: rgba(56, 189, 248, 0.15);
            color: var(--blue);
            border: 1px solid rgba(56, 189, 248, 0.3);
        }

.badge-poll {
            background: rgba(167, 139, 250, 0.15);
            color: var(--violet);
            border: 1px solid rgba(167, 139, 250, 0.3);
        }

.post-content {
            font-size: 0.98rem;
            line-height: 1.7;
            margin-bottom: 14px;
            white-space: pre-wrap;
            word-break: break-word;
        }

.code-block {
            background: #080c14;
            border-radius: var(--radius-md);
            border: 1px solid rgba(255, 255, 255, 0.08);
            margin: 12px 0;
            overflow: hidden;
            direction: ltr;
            text-align: left;
        }

.code-block-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 7px 14px;
            background: var(--bg-surface-2);
            border-bottom: 1px solid var(--border);
            font-size: 0.78rem;
            color: var(--text-muted);
        }

.code-lang-badge {
            font-weight: 700;
            text-transform: uppercase;
            color: var(--primary);
            font-size: 0.72rem;
        }

.copy-btn {
            background: transparent;
            border: none;
            color: var(--text-secondary);
            font-size: 0.8rem;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 4px;
            padding: 2px 8px;
            border-radius: var(--radius-sm);
            transition: all var(--transition);
        }

.copy-btn:hover {
            background: var(--bg-hover);
            color: var(--text-primary);
        }

.code-block pre {
            padding: 14px;
            overflow-x: auto;
            font-family: 'Consolas', 'Fira Code', 'Courier New', monospace;
            font-size: 0.88rem;
            line-height: 1.55;
            color: #d1fae5;
        }

.post-actions {
            display: flex;
            align-items: center;
            gap: 6px;
            padding-top: 12px;
            border-top: 1px solid var(--border-subtle);
        }

.action-btn {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 6px 12px;
            border-radius: var(--radius-full);
            border: 1px solid transparent;
            background: transparent;
            color: var(--text-secondary);
            font-size: 0.85rem;
            font-weight: 600;
            transition: all var(--transition);
        }

.action-btn:hover {
            background: var(--bg-hover);
            color: var(--text-primary);
        }

.action-btn.upvoted {
            color: var(--primary);
            background: var(--primary-dim);
            border-color: rgba(0, 214, 143, 0.3);
        }

.action-btn.bookmarked {
            color: var(--blue);
            background: rgba(56, 189, 248, 0.15);
            border-color: rgba(56, 189, 248, 0.3);
        }

.action-btn.delete-btn:hover {
            color: var(--red);
            background: rgba(248, 113, 113, 0.15);
        }

.widget-card {
            background: var(--bg-surface);
            border-radius: var(--radius-lg);
            border: 1px solid var(--border);
            padding: 16px;
        }

.widget-title {
            font-size: 1rem;
            font-weight: 800;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

.trending-item {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 7px 0;
            border-bottom: 1px solid var(--border-subtle);
        }

.trending-item:last-child { border-bottom: none; }

.trending-num {
            font-size: 0.82rem;
            color: var(--text-muted);
            font-weight: 700;
            width: 16px;
        }

.trending-info { flex: 1; }

.trending-tag { font-size: 0.88rem; font-weight: 700; color: var(--primary); }

.trending-count { font-size: 0.76rem; color: var(--text-muted); }

.dev-card {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 8px 0;
            border-bottom: 1px solid var(--border-subtle);
        }

.dev-card:last-child { border-bottom: none; }

.dev-avatar {
            width: 38px;
            height: 38px;
            border-radius: var(--radius-full);
            object-fit: cover;
            border: 2px solid var(--border);
            flex-shrink: 0;
        }

.dev-name { font-weight: 700; font-size: 0.88rem; }

.dev-specialty { font-size: 0.76rem; color: var(--text-muted); }

.follow-btn {
            margin-right: auto;
            padding: 4px 12px;
            border-radius: var(--radius-full);
            border: 1px solid var(--primary);
            background: transparent;
            color: var(--primary);
            font-size: 0.8rem;
            font-weight: 700;
            cursor: pointer;
            transition: all var(--transition);
            font-family: inherit;
        }

.follow-btn:hover { background: var(--primary); color: #000; }

.stats-grid-sm {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 10px;
            margin-top: 8px;
        }

.stat-card-sm {
            background: var(--bg-surface-2);
            padding: 10px;
            border-radius: var(--radius-md);
            text-align: center;
            border: 1px solid var(--border-subtle);
        }

.stat-card-sm .stat-num {
            font-size: 1.2rem;
            font-weight: 900;
            color: var(--primary);
        }

.stat-card-sm .stat-lbl {
            font-size: 0.75rem;
            color: var(--text-muted);
        }

.post-card { animation: fadeInUp 0.35s ease both; }

@media (max-width: 768px) {
.composer-card { padding: 14px !important; }

.satr-code-block pre { max-height: 280px; }
}
