diff --git a/public/css/social.css b/public/css/social.css
deleted file mode 100644
index c7ed7ab..0000000
--- a/public/css/social.css
+++ /dev/null
@@ -1,1654 +0,0 @@
-/* ═══════════════════════════════════════════════════════════
- Zektyc Social — Complete Redesign v2
- ═══════════════════════════════════════════════════════════ */
-
-/* Override body flex from main site style.css */
-body.social-page {
- display: block;
- flex-direction: unset;
-}
-body.social-page > *:first-child { margin-top: 0; }
-
-/* ── SVG Icons ── */
-.social-icon {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- width: 20px;
- height: 20px;
- flex-shrink: 0;
- vertical-align: middle;
-}
-.social-icon svg {
- width: 100%;
- height: 100%;
- fill: none;
- stroke: currentColor;
- stroke-width: 2;
- stroke-linecap: round;
- stroke-linejoin: round;
-}
-
-/* ── Social Header ── */
-.social-header {
- position: sticky;
- top: 0;
- z-index: 90;
- background: var(--bg);
- border-bottom: 1px solid var(--border);
- padding: 0 clamp(12px, 3vw, 32px);
- height: 56px;
- display: flex;
- align-items: center;
- gap: 16px;
-}
-
-.social-logo {
- font-weight: 800;
- font-size: 17px;
- letter-spacing: -0.5px;
- color: var(--text);
- white-space: nowrap;
- cursor: pointer;
- text-decoration: none;
- display: flex;
- align-items: center;
- gap: 8px;
-}
-.social-logo:hover { text-decoration: none; }
-.social-logo svg {
- width: 24px;
- height: 24px;
- fill: var(--text);
-}
-.social-logo-img {
- width: 24px;
- height: 24px;
-}
-
-.social-header-search {
- flex: 1;
- max-width: 400px;
- position: relative;
-}
-.social-header-search-icon {
- position: absolute;
- left: 12px;
- top: 50%;
- transform: translateY(-50%);
- width: 16px;
- height: 16px;
- color: var(--text-muted);
- pointer-events: none;
-}
-.social-header-search-icon svg {
- width: 100%;
- height: 100%;
- fill: none;
- stroke: currentColor;
- stroke-width: 2;
- stroke-linecap: round;
- stroke-linejoin: round;
-}
-.social-header-search input {
- width: 100%;
- padding: 8px 14px 8px 36px;
- border: 1px solid var(--border);
- border-radius: 20px;
- font-size: 14px;
- background: var(--bg-soft);
- color: var(--text);
- font-family: inherit;
- transition: border-color 0.2s, background 0.2s;
-}
-.social-header-search input:focus {
- outline: none;
- border-color: var(--accent);
- background: var(--bg-card);
-}
-
-.social-header-nav {
- display: flex;
- align-items: center;
- gap: 2px;
- margin-left: auto;
-}
-.social-header-nav a,
-.social-header-nav button {
- color: var(--text-muted);
- font-size: 14px;
- font-weight: 500;
- padding: 8px 14px;
- border-radius: 8px;
- text-decoration: none;
- white-space: nowrap;
- background: none;
- border: none;
- cursor: pointer;
- font-family: inherit;
- position: relative;
- transition: color 0.15s, background 0.15s;
- display: flex;
- align-items: center;
- gap: 6px;
-}
-.social-header-nav a:hover,
-.social-header-nav button:hover {
- color: var(--text);
- background: var(--accent-soft);
- text-decoration: none;
-}
-.social-header-nav .nav-active {
- color: var(--text);
- font-weight: 700;
-}
-.social-header-nav .nav-icon {
- font-size: 17px;
- line-height: 1;
-}
-
-.nav-badge {
- position: absolute;
- top: 2px;
- right: 4px;
- background: #d32f2f;
- color: #fff;
- font-size: 10px;
- min-width: 16px;
- height: 16px;
- border-radius: 8px;
- display: flex;
- align-items: center;
- justify-content: center;
- font-weight: 700;
- line-height: 1;
-}
-
-.social-header-user {
- display: flex;
- align-items: center;
- gap: 8px;
- margin-left: 8px;
-}
-.social-header-avatar {
- width: 32px;
- height: 32px;
- border-radius: 50%;
- background: var(--accent-soft);
- color: var(--accent);
- display: flex;
- align-items: center;
- justify-content: center;
- font-weight: 700;
- font-size: 13px;
- cursor: pointer;
- border: 2px solid transparent;
- transition: border-color 0.2s;
-}
-.social-header-avatar:hover { border-color: var(--accent); }
-
-.social-mobile-toggle {
- display: none;
- background: none;
- border: none;
- color: var(--text);
- font-size: 20px;
- cursor: pointer;
- padding: 4px 8px;
- border-radius: 6px;
-}
-.social-mobile-toggle:hover { background: var(--accent-soft); }
-
-/* ── 3-Column Layout ── */
-.social-layout {
- display: grid;
- grid-template-columns: 260px minmax(0, 1fr) 300px;
- gap: 0;
- max-width: 1200px;
- margin: 0 auto;
- min-height: calc(100vh - 56px);
-}
-
-.social-sidebar-left {
- position: sticky;
- top: 56px;
- height: calc(100vh - 56px);
- overflow-y: auto;
- padding: 16px 12px 16px 16px;
- border-right: 1px solid var(--border);
-}
-.social-sidebar-right {
- position: sticky;
- top: 56px;
- height: calc(100vh - 56px);
- overflow-y: auto;
- padding: 16px 16px 16px 12px;
- border-left: 1px solid var(--border);
-}
-
-.social-main {
- padding: 16px 20px;
- min-width: 0;
-}
-
-/* ── Sidebar Widgets ── */
-.sidebar-widget {
- background: var(--bg-card);
- border: 1px solid var(--border);
- border-radius: 12px;
- padding: 16px;
- margin-bottom: 16px;
-}
-.sidebar-widget h3 {
- font-size: 15px;
- font-weight: 700;
- margin-bottom: 12px;
-}
-
-/* Left sidebar — profile mini */
-.sidebar-profile {
- display: flex;
- align-items: center;
- gap: 12px;
- padding: 14px;
- margin-bottom: 16px;
- cursor: pointer;
- border-radius: 12px;
- transition: background 0.15s;
-}
-.sidebar-profile:hover { background: var(--accent-soft); }
-.sidebar-profile-avatar {
- width: 44px;
- height: 44px;
- border-radius: 50%;
- background: var(--accent-soft);
- color: var(--accent);
- display: flex;
- align-items: center;
- justify-content: center;
- font-weight: 700;
- font-size: 18px;
- flex-shrink: 0;
- overflow: hidden;
-}
-.sidebar-profile-avatar img {
- width: 100%;
- height: 100%;
- object-fit: cover;
-}
-.sidebar-profile-name { font-weight: 700; font-size: 14px; }
-.sidebar-profile-handle { font-size: 12px; color: var(--text-muted); }
-
-.sidebar-nav-link {
- display: flex;
- align-items: center;
- gap: 12px;
- padding: 10px 14px;
- border-radius: 10px;
- color: var(--text);
- font-size: 15px;
- font-weight: 500;
- text-decoration: none;
- transition: background 0.15s;
- cursor: pointer;
-}
-.sidebar-nav-link:hover {
- background: var(--accent-soft);
- text-decoration: none;
-}
-.sidebar-nav-link.active {
- font-weight: 700;
- background: var(--accent-soft);
-}
-.sidebar-nav-icon { font-size: 18px; width: 24px; text-align: center; }
-.sidebar-nav-label { flex: 1; }
-.sidebar-nav-badge {
- background: var(--accent);
- color: var(--bg);
- font-size: 11px;
- font-weight: 700;
- padding: 1px 7px;
- border-radius: 10px;
- min-width: 20px;
- text-align: center;
-}
-
-.sidebar-cta {
- display: block;
- width: 100%;
- padding: 12px;
- border: none;
- border-radius: 10px;
- background: var(--accent);
- color: var(--bg);
- font-size: 15px;
- font-weight: 700;
- cursor: pointer;
- font-family: inherit;
- transition: opacity 0.15s;
- text-align: center;
-}
-.sidebar-cta:hover { opacity: 0.85; }
-
-/* Right sidebar — suggestions, trending */
-.sidebar-user-item {
- display: flex;
- align-items: center;
- gap: 10px;
- padding: 10px 0;
-}
-.sidebar-user-item + .sidebar-user-item {
- border-top: 1px solid var(--border);
-}
-.sidebar-user-avatar {
- width: 36px;
- height: 36px;
- border-radius: 50%;
- background: var(--accent-soft);
- color: var(--accent);
- display: flex;
- align-items: center;
- justify-content: center;
- font-weight: 700;
- font-size: 14px;
- flex-shrink: 0;
- cursor: pointer;
-}
-.sidebar-user-name {
- font-weight: 600;
- font-size: 13px;
- cursor: pointer;
-}
-.sidebar-user-name:hover { text-decoration: underline; }
-.sidebar-user-bio {
- font-size: 12px;
- color: var(--text-muted);
- line-height: 1.3;
- margin-top: 1px;
-}
-.sidebar-follow-btn {
- margin-left: auto;
- padding: 5px 14px;
- border-radius: 20px;
- border: 1px solid var(--text);
- background: transparent;
- color: var(--text);
- font-size: 12px;
- font-weight: 700;
- cursor: pointer;
- font-family: inherit;
- white-space: nowrap;
- transition: background 0.15s, color 0.15s;
-}
-.sidebar-follow-btn:hover {
- background: var(--text);
- color: var(--bg);
-}
-.sidebar-follow-btn.following {
- border-color: var(--border);
- color: var(--text-muted);
-}
-.sidebar-follow-btn.following:hover {
- border-color: #d32f2f;
- color: #d32f2f;
- background: transparent;
-}
-
-.sidebar-footer {
- font-size: 11px;
- color: var(--text-muted);
- line-height: 1.6;
- padding: 12px 0;
-}
-.sidebar-footer a {
- color: var(--text-muted);
- margin-right: 8px;
-}
-.sidebar-footer a:hover { color: var(--text); text-decoration: underline; }
-
-/* ── Feed / Compose ── */
-.compose-box {
- background: var(--bg-card);
- border: 1px solid var(--border);
- border-radius: 12px;
- padding: 16px;
- margin-bottom: 16px;
-}
-.compose-row {
- display: flex;
- gap: 12px;
- align-items: flex-start;
-}
-.compose-avatar {
- width: 40px;
- height: 40px;
- border-radius: 50%;
- background: var(--accent-soft);
- color: var(--accent);
- display: flex;
- align-items: center;
- justify-content: center;
- font-weight: 700;
- font-size: 16px;
- flex-shrink: 0;
- overflow: hidden;
-}
-.compose-avatar img {
- width: 100%;
- height: 100%;
- object-fit: cover;
-}
-.compose-input-wrap { flex: 1; min-width: 0; }
-.compose-input-wrap textarea {
- width: 100%;
- border: none;
- background: none;
- color: var(--text);
- font-size: 16px;
- font-family: inherit;
- resize: none;
- min-height: 56px;
- line-height: 1.5;
- padding: 8px 0;
-}
-.compose-input-wrap textarea:focus { outline: none; }
-.compose-input-wrap textarea::placeholder { color: var(--text-muted); }
-
-.compose-footer {
- display: flex;
- align-items: center;
- justify-content: space-between;
- margin-top: 12px;
- padding-top: 12px;
- border-top: 1px solid var(--border);
-}
-.compose-meta {
- display: flex;
- align-items: center;
- gap: 12px;
-}
-.compose-counter {
- font-size: 13px;
- color: var(--text-muted);
-}
-.compose-counter.warn { color: #f57c00; }
-.compose-counter.over { color: #d32f2f; font-weight: 700; }
-.compose-vis-select {
- padding: 5px 10px;
- border: 1px solid var(--border);
- border-radius: 6px;
- font-size: 12px;
- background: var(--bg-card);
- color: var(--text);
- font-family: inherit;
- cursor: pointer;
-}
-.compose-actions {
- display: flex;
- align-items: center;
- gap: 8px;
-}
-
-/* ── Post Cards ── */
-.post-card {
- background: var(--bg-card);
- border: 1px solid var(--border);
- border-radius: 12px;
- padding: 16px;
- margin-bottom: 12px;
- transition: border-color 0.15s;
-}
-.post-card:hover { border-color: rgba(255,255,255,0.15); }
-
-.post-top {
- display: flex;
- align-items: center;
- gap: 10px;
- margin-bottom: 10px;
-}
-.post-avatar {
- width: 40px;
- height: 40px;
- border-radius: 50%;
- background: var(--accent-soft);
- color: var(--accent);
- display: flex;
- align-items: center;
- justify-content: center;
- font-weight: 700;
- font-size: 16px;
- flex-shrink: 0;
- cursor: pointer;
- overflow: hidden;
-}
-.post-avatar-img img {
- width: 100%;
- height: 100%;
- object-fit: cover;
- border-radius: 50%;
-}
-.avatar-upload-area {
- display: flex;
- align-items: center;
- gap: 20px;
-}
-.avatar-upload-actions {
- display: flex;
- flex-direction: column;
- gap: 4px;
-}
-.avatar-upload-label {
- cursor: pointer;
- display: inline-block;
-}
-.avatar-upload-input {
- display: none;
-}
-.text-error { color: var(--danger); }
-.text-success { color: #2e7d32; }
-.post-user-info { flex: 1; min-width: 0; }
-.post-username {
- font-weight: 700;
- font-size: 14px;
- cursor: pointer;
-}
-.post-username:hover { text-decoration: underline; }
-.post-handle {
- font-size: 12px;
- color: var(--text-muted);
- margin-left: 6px;
- font-weight: 400;
-}
-.post-timestamp {
- font-size: 12px;
- color: var(--text-muted);
- display: block;
- margin-top: 2px;
-}
-.post-dot {
- font-size: 12px;
- color: var(--text-muted);
-}
-.post-vis-badge {
- font-size: 11px;
- padding: 2px 8px;
- border-radius: 10px;
- background: var(--accent-soft);
- color: var(--text-muted);
-}
-
-.post-content {
- font-size: 15px;
- line-height: 1.55;
- white-space: pre-wrap;
- word-break: break-word;
- margin-bottom: 12px;
-}
-
-.post-image {
- width: 100%;
- border-radius: 10px;
- max-height: 450px;
- object-fit: cover;
- margin-bottom: 12px;
-}
-
-.post-verified-badge {
- display: inline-flex;
- align-items: center;
- gap: 4px;
- font-size: 11px;
- color: #2e7d32;
- background: rgba(46, 125, 50, 0.1);
- padding: 2px 8px;
- border-radius: 10px;
- font-weight: 600;
-}
-.post-pending-badge {
- display: inline-flex;
- align-items: center;
- gap: 4px;
- font-size: 11px;
- color: #f57c00;
- background: rgba(245, 124, 0, 0.1);
- padding: 2px 8px;
- border-radius: 10px;
- font-weight: 600;
-}
-
-/* ── Verified badges ── */
-.verified-badge {
- display: inline-flex;
- align-items: center;
- vertical-align: middle;
- margin-left: 4px;
- text-decoration: none;
- color: inherit;
- cursor: default;
-}
-.verified-badge .social-icon {
- width: 18px;
- height: 18px;
-}
-.profile-name .verified-badge .social-icon {
- width: 22px;
- height: 22px;
-}
-.verified-verifier {
- display: inline-flex;
- align-items: center;
- margin-left: 4px;
- text-decoration: none;
- color: inherit;
- cursor: pointer;
-}
-.verified-verifier:hover {
- opacity: 0.8;
-}
-.verified-verifier-avatar {
- width: 18px;
- height: 18px;
- border-radius: 50%;
- object-fit: cover;
-}
-.verified-verifier-letter {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- width: 18px;
- height: 18px;
- border-radius: 50%;
- background: #666;
- color: #fff;
- font-size: 10px;
- font-weight: 600;
-}
-.profile-name .verified-verifier-avatar {
- width: 22px;
- height: 22px;
-}
-.profile-name .verified-verifier-letter {
- width: 22px;
- height: 22px;
- font-size: 12px;
-}
-
-/* ── Verification requests ── */
-.verify-requests-section {
- margin-bottom: 20px;
-}
-.verify-request-item {
- display: flex;
- align-items: center;
- gap: 12px;
- padding: 12px 16px;
- background: var(--bg-card);
- border: 1px solid var(--border);
- border-radius: 10px;
- margin-bottom: 8px;
-}
-.verify-request-info {
- flex: 1;
- font-size: 14px;
- line-height: 1.4;
-}
-.verify-request-actions {
- display: flex;
- gap: 6px;
- flex-shrink: 0;
-}
-.btn-gold {
- background: #f5a623;
- color: #000;
- border-color: #f5a623;
-}
-.btn-gold:hover {
- background: #e6951a;
-}
-
-/* ── Post Actions ── */
-.post-actions {
- display: flex;
- align-items: center;
- gap: 4px;
- padding-top: 4px;
-}
-.post-action {
- display: flex;
- align-items: center;
- gap: 6px;
- padding: 6px 12px;
- border: none;
- background: none;
- color: var(--text-muted);
- font-size: 13px;
- font-family: inherit;
- cursor: pointer;
- border-radius: 8px;
- transition: background 0.15s, color 0.15s;
- white-space: nowrap;
-}
-.post-action:hover { background: var(--accent-soft); color: var(--text); }
-.post-action.liked { color: #d32f2f; }
-.post-action.liked:hover { background: rgba(211, 47, 47, 0.1); }
-.post-action.disliked { color: #666; }
-.post-action.disliked:hover { background: rgba(102, 102, 102, 0.1); }
-.post-action-icon { font-size: 16px; line-height: 1; }
-.post-action-count { font-size: 13px; }
-
-/* ── Comments (inline) ── */
-.post-comments-section {
- display: none;
- margin-top: 12px;
- padding-top: 12px;
- border-top: 1px solid var(--border);
-}
-.post-comments-section.open { display: block; }
-
-.comment-item {
- display: flex;
- gap: 8px;
- padding: 8px 0;
-}
-.comment-item + .comment-item { border-top: 1px solid var(--border); }
-.comment-avatar {
- width: 28px;
- height: 28px;
- border-radius: 50%;
- background: var(--accent-soft);
- color: var(--accent);
- display: flex;
- align-items: center;
- justify-content: center;
- font-weight: 700;
- font-size: 11px;
- flex-shrink: 0;
-}
-.comment-body { flex: 1; min-width: 0; }
-.comment-header {
- display: flex;
- align-items: center;
- gap: 6px;
- margin-bottom: 2px;
-}
-.comment-author { font-weight: 600; font-size: 13px; }
-.comment-time { font-size: 11px; color: var(--text-muted); }
-.comment-text { font-size: 13px; line-height: 1.4; }
-.comment-delete-btn {
- margin-left: auto;
- font-size: 11px;
- color: var(--text-muted);
- background: none;
- border: none;
- cursor: pointer;
- padding: 2px 4px;
-}
-.comment-delete-btn:hover { color: #d32f2f; }
-
-.comment-compose {
- display: flex;
- gap: 8px;
- margin-top: 8px;
-}
-.comment-compose input {
- flex: 1;
- padding: 8px 12px;
- border: 1px solid var(--border);
- border-radius: 20px;
- font-size: 13px;
- background: var(--bg-soft);
- color: var(--text);
- font-family: inherit;
-}
-.comment-compose input:focus { outline: none; border-color: var(--accent); }
-
-/* ── Community Notes ── */
-.post-notes-section { margin-top: 8px; }
-.note-item {
- padding: 8px 12px;
- background: var(--bg-soft);
- border-radius: 8px;
- margin-top: 6px;
- font-size: 13px;
-}
-.note-author { font-weight: 600; font-size: 12px; margin-bottom: 2px; }
-.note-text { color: var(--text-muted); }
-.note-empty { font-size: 12px; color: var(--text-muted); padding: 4px 0; }
-
-/* ── Empty State ── */
-.empty-state {
- text-align: center;
- padding: 60px 24px;
-}
-.empty-state-icon {
- font-size: 56px;
- margin-bottom: 16px;
- opacity: 0.8;
-}
-.empty-state h3 {
- font-size: 20px;
- font-weight: 700;
- margin-bottom: 8px;
-}
-.empty-state p {
- color: var(--text-muted);
- font-size: 14px;
- line-height: 1.5;
- max-width: 360px;
- margin: 0 auto;
-}
-.empty-state .social-btn {
- margin-top: 20px;
-}
-
-/* ── Auth Cards ── */
-.auth-card {
- max-width: 420px;
- margin: 40px auto;
- background: var(--bg-card);
- border: 1px solid var(--border);
- border-radius: 16px;
- padding: 32px 28px;
-}
-.auth-card h2 {
- font-size: 22px;
- font-weight: 800;
- text-align: center;
- margin-bottom: 20px;
-}
-.auth-card .form-group {
- margin-bottom: 16px;
-}
-.auth-card .form-group label {
- display: block;
- margin-bottom: 6px;
- font-size: 13px;
- font-weight: 600;
-}
-.auth-card .form-group input,
-.auth-card .form-group select,
-.auth-card .form-group textarea {
- width: 100%;
- padding: 10px 14px;
- border: 1px solid var(--border);
- border-radius: 10px;
- font-size: 14px;
- background: var(--bg-soft);
- color: var(--text);
- font-family: inherit;
- box-sizing: border-box;
- transition: border-color 0.2s;
-}
-.auth-card .form-group input:focus,
-.auth-card .form-group textarea:focus,
-.auth-card .form-group select:focus {
- outline: none;
- border-color: var(--accent);
-}
-.auth-card .form-group textarea {
- resize: vertical;
- min-height: 80px;
-}
-.auth-card .form-hint {
- font-size: 11px;
- color: var(--text-muted);
- margin-top: 4px;
-}
-.auth-card .auth-footer {
- text-align: center;
- margin-top: 16px;
- font-size: 13px;
- color: var(--text-muted);
-}
-.auth-card .auth-footer a {
- color: var(--text);
- font-weight: 600;
-}
-
-/* ── Buttons ── */
-.btn-primary {
- display: inline-flex;
- align-items: center;
- justify-content: center;
- width: 100%;
- padding: 11px 20px;
- border: none;
- border-radius: 10px;
- background: var(--accent);
- color: var(--bg);
- font-size: 15px;
- font-weight: 700;
- cursor: pointer;
- font-family: inherit;
- transition: opacity 0.15s;
-}
-.btn-primary:hover { opacity: 0.85; }
-.btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
-.btn-primary-sm {
- padding: 7px 16px;
- font-size: 13px;
- border-radius: 8px;
- width: auto;
-}
-.btn-outline {
- background: transparent;
- color: var(--text);
- border: 1px solid var(--border);
-}
-.btn-outline:hover {
- border-color: var(--text-muted);
- opacity: 1;
-}
-.btn-danger {
- background: #d32f2f;
- color: #fff;
- border-color: #d32f2f;
-}
-.btn-ghost {
- background: transparent;
- color: var(--text-muted);
- border: none;
- padding: 6px 10px;
- font-size: 13px;
-}
-.btn-ghost:hover { color: var(--text); }
-
-/* ── Forms (general) ── */
-.form-error {
- color: #d32f2f;
- font-size: 13px;
- margin-top: 6px;
- padding: 8px 12px;
- background: rgba(211, 47, 47, 0.08);
- border-radius: 8px;
-}
-.form-success {
- color: #2e7d32;
- font-size: 13px;
- margin-top: 6px;
- padding: 8px 12px;
- background: rgba(46, 125, 50, 0.08);
- border-radius: 8px;
-}
-
-/* ── Password Strength ── */
-.strength-bar {
- height: 4px;
- background: var(--border);
- border-radius: 2px;
- margin-top: 8px;
- overflow: hidden;
-}
-.strength-fill {
- height: 100%;
- border-radius: 2px;
- transition: width 0.3s, background 0.3s;
-}
-.strength-label {
- font-size: 12px;
- margin-top: 4px;
- color: var(--text-muted);
-}
-
-/* ── Privacy Choice ── */
-.privacy-grid {
- display: flex;
- flex-direction: column;
- gap: 12px;
-}
-.privacy-card {
- border: 2px solid var(--border);
- border-radius: 12px;
- padding: 20px;
- cursor: pointer;
- transition: border-color 0.2s, background 0.2s;
- position: relative;
-}
-.privacy-card:hover { border-color: var(--text-muted); }
-.privacy-card.selected {
- border-color: var(--accent);
- background: var(--accent-soft);
-}
-.privacy-card-icon { font-size: 28px; margin-bottom: 8px; }
-.privacy-card h3 { font-size: 16px; margin-bottom: 4px; }
-.privacy-card p { font-size: 13px; color: var(--text-muted); margin-bottom: 0; }
-.privacy-card ul {
- margin-top: 10px;
- padding-left: 18px;
- font-size: 12px;
- color: var(--text-muted);
-}
-.privacy-card ul li { margin-top: 4px; }
-.privacy-card-check {
- position: absolute;
- top: 16px;
- right: 16px;
- width: 22px;
- height: 22px;
- border: 2px solid var(--border);
- border-radius: 50%;
- display: flex;
- align-items: center;
- justify-content: center;
- transition: border-color 0.2s, background 0.2s;
-}
-.privacy-card.selected .privacy-card-check {
- border-color: var(--accent);
- background: var(--accent);
- color: var(--bg);
-}
-
-/* ── Profile ── */
-.profile-card {
- background: var(--bg-card);
- border: 1px solid var(--border);
- border-radius: 12px;
- overflow: hidden;
-}
-.profile-banner {
- height: 140px;
- background: linear-gradient(135deg, var(--accent-soft) 0%, var(--bg-soft) 100%);
- position: relative;
-}
-.profile-main {
- padding: 0 20px 20px;
- position: relative;
-}
-.profile-avatar-lg {
- width: 80px;
- height: 80px;
- border-radius: 50%;
- background: var(--accent-soft);
- color: var(--accent);
- display: flex;
- align-items: center;
- justify-content: center;
- font-weight: 800;
- font-size: 32px;
- border: 4px solid var(--bg-card);
- margin-top: -40px;
- position: relative;
- overflow: hidden;
-}
-.profile-avatar-lg img {
- width: 100%;
- height: 100%;
- object-fit: cover;
-}
-.profile-name {
- font-size: 20px;
- font-weight: 800;
- margin-top: 10px;
-}
-.profile-handle {
- font-size: 14px;
- color: var(--text-muted);
- margin-top: 2px;
-}
-.profile-role-tag {
- display: inline-block;
- font-size: 11px;
- font-weight: 600;
- padding: 2px 10px;
- border-radius: 10px;
- background: var(--accent-soft);
- color: var(--text-muted);
- margin-top: 4px;
-}
-.profile-bio {
- font-size: 14px;
- color: var(--text);
- margin-top: 12px;
- line-height: 1.5;
-}
-.profile-stats-row {
- display: flex;
- gap: 24px;
- margin-top: 16px;
- padding-top: 16px;
- border-top: 1px solid var(--border);
-}
-.profile-stat { text-align: left; }
-.profile-stat-value {
- font-weight: 700;
- font-size: 16px;
-}
-.profile-stat-label {
- font-size: 12px;
- color: var(--text-muted);
- margin-left: 4px;
-}
-.profile-actions-row {
- display: flex;
- gap: 8px;
- margin-top: 16px;
-}
-.profile-badges-grid {
- display: flex;
- flex-wrap: wrap;
- gap: 6px;
- margin-top: 12px;
-}
-.profile-badge {
- display: inline-flex;
- align-items: center;
- gap: 4px;
- padding: 4px 12px;
- border: 1px solid var(--border);
- border-radius: 20px;
- font-size: 12px;
- font-weight: 500;
-}
-
-/* ── Settings ── */
-.settings-card {
- background: var(--bg-card);
- border: 1px solid var(--border);
- border-radius: 12px;
- padding: 20px;
- margin-bottom: 12px;
-}
-.settings-card h3 {
- font-size: 16px;
- font-weight: 700;
- margin-bottom: 14px;
-}
-.settings-row {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- padding: 12px 0;
- border-bottom: 1px solid var(--border);
- gap: 16px;
-}
-.settings-row:last-child { border-bottom: none; }
-.settings-label { font-size: 14px; font-weight: 500; }
-.settings-desc { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
-.settings-input {
- padding: 8px 12px;
- border: 1px solid var(--border);
- border-radius: 8px;
- font-size: 14px;
- background: var(--bg-soft);
- color: var(--text);
- font-family: inherit;
- min-width: 200px;
-}
-.settings-input:focus { outline: none; border-color: var(--accent); }
-.settings-textarea {
- width: 100%;
- padding: 8px 12px;
- border: 1px solid var(--border);
- border-radius: 8px;
- font-size: 14px;
- background: var(--bg-soft);
- color: var(--text);
- font-family: inherit;
- resize: vertical;
- min-height: 60px;
-}
-.settings-textarea:focus { outline: none; border-color: var(--accent); }
-
-/* ── Messages ── */
-.msg-list-item {
- display: flex;
- align-items: center;
- gap: 12px;
- padding: 14px 16px;
- border-bottom: 1px solid var(--border);
- cursor: pointer;
- transition: background 0.15s;
-}
-.msg-list-item:hover { background: var(--accent-soft); }
-.msg-list-avatar {
- width: 44px;
- height: 44px;
- border-radius: 50%;
- background: var(--accent-soft);
- color: var(--accent);
- display: flex;
- align-items: center;
- justify-content: center;
- font-weight: 700;
- font-size: 17px;
- flex-shrink: 0;
-}
-.msg-list-info { flex: 1; min-width: 0; }
-.msg-list-name { font-weight: 600; font-size: 14px; }
-.msg-list-preview {
- font-size: 13px;
- color: var(--text-muted);
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-.msg-list-meta { text-align: right; flex-shrink: 0; }
-.msg-list-time { font-size: 11px; color: var(--text-muted); }
-.msg-list-unread {
- background: var(--accent);
- color: var(--bg);
- font-size: 10px;
- font-weight: 700;
- min-width: 18px;
- height: 18px;
- border-radius: 9px;
- display: flex;
- align-items: center;
- justify-content: center;
- margin-top: 4px;
- margin-left: auto;
-}
-
-.chat-window {
- display: flex;
- flex-direction: column;
- height: calc(100vh - 56px - 40px);
-}
-.chat-messages {
- flex: 1;
- overflow-y: auto;
- padding: 16px 0;
- display: flex;
- flex-direction: column;
- gap: 4px;
-}
-.chat-bubble {
- max-width: 75%;
- padding: 10px 14px;
- border-radius: 18px;
- font-size: 14px;
- line-height: 1.45;
- word-break: break-word;
-}
-.chat-sent {
- align-self: flex-end;
- background: var(--accent);
- color: var(--bg);
- border-bottom-right-radius: 4px;
-}
-.chat-received {
- align-self: flex-start;
- background: var(--bg-soft);
- border: 1px solid var(--border);
- border-bottom-left-radius: 4px;
-}
-.chat-time {
- font-size: 10px;
- opacity: 0.6;
- margin-top: 3px;
- text-align: right;
-}
-.chat-input-bar {
- display: flex;
- gap: 8px;
- padding: 12px 0;
- border-top: 1px solid var(--border);
-}
-.chat-input-bar input {
- flex: 1;
- padding: 10px 16px;
- border: 1px solid var(--border);
- border-radius: 24px;
- font-size: 14px;
- background: var(--bg-soft);
- color: var(--text);
- font-family: inherit;
-}
-.chat-input-bar input:focus { outline: none; border-color: var(--accent); }
-
-/* ── Notifications ── */
-.notif-item {
- display: flex;
- align-items: flex-start;
- gap: 12px;
- padding: 14px 16px;
- border-bottom: 1px solid var(--border);
- transition: background 0.15s;
- cursor: pointer;
-}
-.notif-item:hover { background: var(--accent-soft); }
-.notif-item.unread {
- background: rgba(255,255,255,0.03);
- border-left: 3px solid var(--accent);
- padding-left: 13px;
-}
-.notif-icon { font-size: 20px; flex-shrink: 0; margin-top: 2px; }
-.notif-body { flex: 1; min-width: 0; }
-.notif-text { font-size: 14px; line-height: 1.4; }
-.notif-text strong { font-weight: 700; }
-.notif-time { font-size: 12px; color: var(--text-muted); margin-top: 3px; }
-.notif-actions {
- display: flex;
- gap: 8px;
- flex-shrink: 0;
- margin-top: 6px;
-}
-.notif-actions button { cursor: pointer; }
-
-/* ── Moderation ── */
-.mod-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- margin-bottom: 16px;
-}
-.mod-tabs {
- display: flex;
- gap: 4px;
- border-bottom: 1px solid var(--border);
- margin-bottom: 16px;
-}
-.mod-tab {
- padding: 10px 18px;
- border: none;
- background: none;
- font-size: 14px;
- font-weight: 500;
- color: var(--text-muted);
- cursor: pointer;
- border-bottom: 2px solid transparent;
- font-family: inherit;
- transition: color 0.15s;
-}
-.mod-tab:hover { color: var(--text); }
-.mod-tab.active {
- color: var(--text);
- font-weight: 700;
- border-bottom-color: var(--accent);
-}
-.mod-card {
- background: var(--bg-card);
- border: 1px solid var(--border);
- border-radius: 10px;
- padding: 14px;
- margin-bottom: 10px;
-}
-.mod-card-header {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-bottom: 8px;
-}
-.mod-card-author { font-weight: 700; font-size: 14px; }
-.mod-card-time { font-size: 12px; color: var(--text-muted); }
-.mod-card-body {
- font-size: 14px;
- line-height: 1.45;
- white-space: pre-wrap;
- margin-bottom: 10px;
-}
-.mod-card-meta {
- font-size: 12px;
- color: var(--text-muted);
- margin-bottom: 8px;
-}
-.mod-card-actions {
- display: flex;
- gap: 8px;
-}
-
-/* ── Tabs ── */
-.tabs {
- display: flex;
- gap: 0;
- border-bottom: 1px solid var(--border);
- margin-bottom: 16px;
-}
-.tab-btn {
- padding: 10px 18px;
- border: none;
- background: none;
- font-size: 14px;
- color: var(--text-muted);
- cursor: pointer;
- border-bottom: 2px solid transparent;
- font-family: inherit;
- transition: color 0.15s;
-}
-.tab-btn:hover { color: var(--text); }
-.tab-btn.active {
- color: var(--text);
- font-weight: 700;
- border-bottom-color: var(--accent);
-}
-
-/* ── Spinner ── */
-.social-spinner {
- display: flex;
- justify-content: center;
- gap: 6px;
- padding: 40px 0;
-}
-.spinner-dot {
- width: 8px;
- height: 8px;
- border-radius: 50%;
- background: var(--text-muted);
- animation: dotPulse 1.2s ease-in-out infinite;
-}
-.spinner-dot:nth-child(2) { animation-delay: 0.15s; }
-.spinner-dot:nth-child(3) { animation-delay: 0.3s; }
-@keyframes dotPulse {
- 0%, 80%, 100% { opacity: 0.3; transform: scale(0.8); }
- 40% { opacity: 1; transform: scale(1); }
-}
-
-/* ── Warning / Info boxes ── */
-.warning-box {
- background: rgba(245, 124, 0, 0.12);
- border: 1px solid rgba(245, 124, 0, 0.3);
- color: var(--text);
- padding: 14px 16px;
- border-radius: 10px;
- margin: 14px 0;
- font-size: 13px;
- line-height: 1.5;
-}
-.warning-box strong { display: block; margin-bottom: 4px; }
-.info-box {
- border: 1px solid var(--border);
- padding: 12px 16px;
- border-radius: 10px;
- margin: 14px 0;
- font-size: 13px;
- color: var(--text-muted);
- line-height: 1.5;
-}
-
-/* ── Checkbox / Terms ── */
-.tos-check {
- display: flex;
- align-items: flex-start;
- gap: 10px;
- margin: 16px 0;
- cursor: pointer;
-}
-.tos-check input[type="checkbox"] {
- margin-top: 3px;
- width: 16px;
- height: 16px;
- accent-color: var(--accent);
- flex-shrink: 0;
-}
-.tos-check span {
- font-size: 13px;
- line-height: 1.4;
-}
-.tos-check a { font-weight: 600; }
-
-/* ── Search results ── */
-.search-result-item {
- display: flex;
- align-items: center;
- gap: 12px;
- padding: 12px 16px;
- border-bottom: 1px solid var(--border);
- cursor: pointer;
- transition: background 0.15s;
-}
-.search-result-item:hover { background: var(--accent-soft); }
-
-/* ── Connection items ── */
-.conn-item {
- display: flex;
- align-items: center;
- gap: 12px;
- padding: 12px 16px;
- border-bottom: 1px solid var(--border);
-}
-.conn-item:last-child { border-bottom: none; }
-.conn-info { flex: 1; min-width: 0; }
-.conn-name { font-weight: 600; font-size: 14px; }
-.conn-actions { display: flex; gap: 6px; }
-
-/* ── Emoji picker ── */
-.compose-input-wrap { position: relative; }
-.emoji-picker {
- display: flex;
- flex-wrap: wrap;
- gap: 4px;
- padding: 8px;
- background: var(--bg2);
- border: 1px solid var(--border);
- border-radius: 8px;
- margin-top: 6px;
-}
-.emoji-pick {
- font-size: 20px;
- cursor: pointer;
- padding: 4px;
- border-radius: 4px;
- transition: background 0.15s;
-}
-.emoji-pick:hover { background: var(--border); }
-.compose-emoji-btn {
- background: none;
- border: none;
- cursor: pointer;
- color: var(--text-secondary);
- padding: 4px;
- border-radius: 4px;
- display: flex;
- align-items: center;
- transition: color 0.15s;
-}
-.compose-emoji-btn:hover { color: var(--accent); }
-
-/* ── Utility classes (CSP-safe, no inline styles) ── */
-.mt-4 { margin-top: 4px; }
-.mt-8 { margin-top: 8px; }
-.mt-12 { margin-top: 12px; }
-.mt-16 { margin-top: 16px; }
-.mt-20 { margin-top: 20px; }
-.mt-24 { margin-top: 24px; }
-.mb-4 { margin-bottom: 4px; }
-.mb-8 { margin-bottom: 8px; }
-.mb-12 { margin-bottom: 12px; }
-.mb-16 { margin-bottom: 16px; }
-.mv-12 { margin: 12px 0; }
-.mv-16 { margin: 16px 0; }
-.pt-12 { padding-top: 12px; }
-.p-16 { padding: 16px; }
-.p-24 { padding: 24px; }
-.p-30 { padding: 30px; }
-.p-40 { padding: 40px; }
-.pv-12 { padding-top: 12px; padding-bottom: 12px; }
-.ph-16 { padding-left: 16px; padding-right: 16px; }
-.text-center { text-align: center; }
-.text-left { text-align: left; }
-.text-sm { font-size: 13px; }
-.text-xs { font-size: 12px; }
-.text-base { font-size: 14px; }
-.text-muted { color: var(--text-muted); }
-.text-warning { color: #f57c00; }
-.font-600 { font-weight: 600; }
-.hidden { display: none; }
-.mw-200 { max-width: 200px; }
-.mw-520 { max-width: 520px; }
-.w-full { width: 100%; min-width: 0; }
-.lh-15 { line-height: 1.5; }
-.lh-13 { line-height: 1.3; }
-
-/* ── Textarea auto-resize ── */
-.auto-resize {
- field-sizing: content;
- min-height: 56px;
- max-height: 200px;
- resize: none;
-}
-
-/* ── Chat window ── */
-.chat-header-row {
- display: flex;
- align-items: center;
- gap: 10px;
- padding-bottom: 12px;
- border-bottom: 1px solid var(--border);
-}
-.chat-header-name {
- margin: 0;
- font-size: 17px;
-}
-
-.notif-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- margin-bottom: 16px;
-}
-
-/* ── Responsive ── */
-@media (max-width: 1024px) {
- .social-layout {
- grid-template-columns: 1fr;
- }
- .social-sidebar-left,
- .social-sidebar-right {
- display: none;
- }
- .social-main {
- padding: 12px;
- }
-}
-
-@media (max-width: 768px) {
- .social-header {
- padding: 0 12px;
- gap: 8px;
- }
- .social-header-search { display: none; }
- .social-mobile-toggle { display: block; }
- .social-header-nav {
- display: none;
- position: absolute;
- top: 100%;
- left: 0;
- right: 0;
- background: var(--bg);
- border-bottom: 1px solid var(--border);
- padding: 8px;
- flex-direction: column;
- z-index: 100;
- box-shadow: 0 8px 24px rgba(0,0,0,0.3);
- }
- .social-header-nav.open { display: flex; }
- .social-header-nav a,
- .social-header-nav button {
- width: 100%;
- text-align: left;
- padding: 12px 16px;
- border-radius: 8px;
- }
- .post-card { padding: 14px; }
- .compose-box { padding: 14px; }
- .chat-bubble { max-width: 85%; }
-}
-
-@media (max-width: 480px) {
- .social-main { padding: 8px; }
- .post-actions { flex-wrap: wrap; }
- .post-action { padding: 6px 8px; font-size: 12px; }
- .auth-card { margin: 16px; padding: 24px 20px; }
- .profile-banner { height: 100px; }
- .profile-avatar-lg { width: 64px; height: 64px; font-size: 26px; }
-}
diff --git a/public/css/style.css b/public/css/style.css
index 89725e4..081b3a3 100644
--- a/public/css/style.css
+++ b/public/css/style.css
@@ -907,10 +907,6 @@ a.contact-value:hover {
margin: 0;
}
-.footer-back {
- color: var(--text-muted, #888);
-}
-
.footer-icon {
vertical-align: -2px;
}
diff --git a/public/js/components.js b/public/js/components.js
index 4fa97c2..b6ad9ad 100644
--- a/public/js/components.js
+++ b/public/js/components.js
@@ -10,8 +10,6 @@
function path() { return location.pathname; }
function lang() { return /^\/en(\/|$)/.test(path()) ? 'en' : 'fr'; }
function isHome() { var p = path(); return p === '/' || p === '/index.html' || p === '/en/' || p === '/en/index.html'; }
- function isFpTest() { return /\/fingerprint-test/.test(path()); }
- function isSocial() { return /\/social/.test(path()); }
function frLink() {
var p = path();
@@ -39,16 +37,7 @@
html += '';
html += '';
- if (isSocial()) {
- html += '';
- } else {
- html += '