.account-switcher{position:relative}.account-switcher-trigger{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;min-height:var(--touch-min);padding:0 .25rem;color:var(--text-muted);background:transparent;border:none;cursor:pointer}.account-switcher-trigger:hover{color:var(--text)}.account-switcher-chevron{font-size:.75rem;line-height:1}.account-switcher-menu{position:absolute;top:calc(100% + .35rem);right:0;z-index:200;width:min(18rem,calc(100vw - 2rem));padding:var(--space-sm);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 12px 32px #00000059}.account-switcher-title{margin:0 0 var(--space-sm);padding:0 var(--space-xs);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.account-switcher-list{list-style:none;margin:0;padding:0}.account-switcher-list li{margin-bottom:.25rem}.account-switcher-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:.5rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text);text-align:left;cursor:pointer}.account-switcher-item:hover,.account-switcher-item.active{background:#ffffff0f}.account-switcher-item-text{display:flex;flex-direction:column;min-width:0;flex:1}.account-switcher-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-switcher-handle{font-size:.8125rem;color:var(--text-muted)}.account-switcher-active{font-size:.6875rem;font-weight:600;color:var(--accent);text-transform:uppercase}.account-switcher-loading{color:var(--text-muted)}.account-switcher-remove{margin-left:2.75rem;padding:.15rem 0;border:none;background:none;color:var(--text-muted);font-size:.75rem;cursor:pointer}.account-switcher-remove:hover{color:var(--danger)}.account-switcher-actions{display:flex;flex-direction:column;gap:.35rem;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border)}.account-switcher-link{display:block;padding:.45rem .5rem;border-radius:var(--radius-sm);color:var(--accent);font-weight:500;text-decoration:none}.account-switcher-link:hover{background:#ffffff0a;text-decoration:none}.account-switcher-footer{display:flex;flex-direction:column;gap:.25rem;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border)}.account-switcher-logout,.account-switcher-logout-all{padding:.45rem .5rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);text-align:left;cursor:pointer}.account-switcher-logout:hover,.account-switcher-logout-all:hover{background:#ffffff0a;color:var(--text)}.account-switcher-logout-all{color:var(--danger)}.brand-logo-link{display:inline-flex;align-items:center;flex-shrink:0;text-decoration:none}.brand-logo-link:hover{text-decoration:none;opacity:.88}.brand-logo{display:block;object-fit:contain}.brand-logo-nav.brand-logo-logo{height:1.75rem;width:auto}.brand-logo-nav.brand-logo-icon{height:1.75rem;width:1.75rem}.brand-logo-auth.brand-logo-logo{height:2.5rem;width:auto;margin:0 auto var(--space-sm)}.brand-logo-auth.brand-logo-icon{height:3rem;width:3rem;margin:0 auto var(--space-sm)}.brand-logo-inline.brand-logo-logo{height:1.25rem;width:auto;vertical-align:middle}.navbar{position:sticky;top:0;z-index:100;background:#0f1117eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding-top:calc(env(safe-area-inset-top,0px) + var(--mobile-top-inset))}.navbar-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-height:var(--nav-height);padding-bottom:.5rem;overflow:visible}.navbar-brand{font-weight:700;font-size:1.125rem;color:var(--text);text-decoration:none;flex-shrink:0}.navbar-brand:hover{text-decoration:none}.navbar-links{display:none;gap:1.25rem}.navbar-links a{color:var(--text-muted);font-weight:500;text-decoration:none;padding:.35rem 0}.navbar-links a:hover,.navbar-links a.active{color:var(--text);text-decoration:none}.navbar-links a.active{font-weight:600}.notif-link{position:relative}.badge{position:absolute;top:-6px;right:-10px;background:var(--danger);color:#fff;font-size:.65rem;font-weight:700;padding:2px 5px;border-radius:999px;min-width:16px;text-align:center;line-height:1.2}.navbar-user{display:flex;align-items:center;gap:.35rem;flex-shrink:0;overflow:visible}.user-chip{display:flex;align-items:center;gap:var(--space-sm);color:var(--text);text-decoration:none;padding:.15rem}.user-chip:hover{text-decoration:none}.user-chip .avatar,.user-chip .avatar-placeholder{width:36px;height:36px;min-width:36px;min-height:36px}.user-chip .avatar-placeholder{line-height:36px;font-size:.9rem}.user-chip-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}.user-chip-name{font-size:.875rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip-handle{font-size:.75rem;color:var(--text-muted)}.navbar-logout{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text-muted)}.navbar-logout:hover{background:var(--surface-hover);color:var(--text)}.navbar-logout svg{display:block;width:20px;height:20px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#1a1d27f5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);justify-content:space-between;align-items:stretch;gap:0;padding:.4rem .25rem calc(.5rem + env(safe-area-inset-bottom,0px));z-index:100;overflow:visible}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.2rem;flex:1 1 0;min-width:0;color:var(--text-muted);font-weight:500;text-decoration:none;padding:.2rem .1rem;border-radius:var(--radius-sm);position:relative;overflow:visible}.mobile-nav-item:hover{text-decoration:none;color:var(--text)}.mobile-nav-item.active{color:var(--primary)}.mobile-nav-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;overflow:visible}.mobile-nav-icon svg{display:block;width:22px;height:22px}.mobile-nav-label{font-size:.625rem;line-height:1.2;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-nav-badge{position:absolute;top:0;left:50%;transform:translate(6px);background:var(--danger);color:#fff;font-size:.55rem;font-weight:700;padding:1px 4px;border-radius:999px;min-width:14px;text-align:center;line-height:1.3;pointer-events:none}@media (min-width: 768px){.navbar{padding-top:env(safe-area-inset-top,0px)}.navbar-inner{padding-bottom:0}.navbar-brand{font-size:1.25rem}.navbar-links{display:flex}.mobile-nav{display:none}.navbar-user{gap:var(--space-sm)}.user-chip .avatar,.user-chip .avatar-placeholder{width:40px;height:40px;min-width:40px;min-height:40px}.user-chip .avatar-placeholder{line-height:40px;font-size:1rem}}.site-footer{margin-top:auto;padding:var(--space-lg) var(--space-md);padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);text-align:center}.site-footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-sm)}.site-footer-nav a{color:var(--text-muted);font-size:.875rem;text-decoration:none}.site-footer-nav a:hover{color:var(--primary);text-decoration:underline}.site-footer-copy{color:var(--text-muted);font-size:.75rem}.app-layout:has(.mobile-nav) .site-footer{padding-bottom:calc(var(--bottom-nav-height) + var(--space-lg) + env(safe-area-inset-bottom,0px))}.create-post{margin-bottom:var(--space-lg)}.create-post textarea{width:100%;padding:var(--space-sm) 0;border:none;background:transparent;color:var(--text);resize:vertical;min-height:4.5rem;margin-bottom:var(--space-sm);font-size:1rem}.create-post textarea:focus{outline:none}.create-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.create-actions-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.file-label{cursor:pointer;min-height:var(--touch-min);display:inline-flex;align-items:center}.create-preview{border-radius:var(--radius-sm);margin-bottom:var(--space-sm);width:100%}.create-preview-image{max-height:200px;object-fit:cover}.create-preview-video-wrap{aspect-ratio:9 / 16;max-width:min(100%,280px);margin:0 auto var(--space-sm);background:#000;border-radius:var(--radius-sm);overflow:hidden}.create-preview-video{width:100%;height:100%;object-fit:cover;display:block}.create-aspect-hint{color:var(--text-muted);font-size:.875rem;margin:0 0 var(--space-sm)}@media (min-width: 640px){.create-actions{flex-direction:row;justify-content:space-between;align-items:center}.create-preview-image{max-height:240px}}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#000000a6;display:flex;align-items:flex-end;justify-content:center;padding:0;animation:confirm-fade-in .15s ease-out}.confirm-modal{width:100%;max-width:100%;border-radius:var(--radius) var(--radius) 0 0;padding:var(--space-lg) var(--space-md);padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0px));animation:confirm-slide-up .2s ease-out}.confirm-modal-title{font-size:1.125rem;font-weight:700;margin-bottom:var(--space-sm);line-height:1.3}.confirm-modal-message{color:var(--text-muted);font-size:.9375rem;margin-bottom:var(--space-lg);line-height:1.5}.confirm-modal-error{color:var(--danger);font-size:.875rem;margin-bottom:var(--space-md)}.confirm-modal-actions{display:flex;flex-direction:column-reverse;gap:var(--space-sm)}.confirm-modal-actions .btn{width:100%;min-height:var(--touch-min)}@keyframes confirm-fade-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-slide-up{0%{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}@media (min-width: 640px){.confirm-modal-overlay{align-items:center;padding:var(--space-md)}.confirm-modal{width:min(380px,100%);border-radius:var(--radius);padding:var(--space-lg);animation:confirm-scale-in .2s ease-out}.confirm-modal-actions{flex-direction:row;justify-content:flex-end}.confirm-modal-actions .btn{width:auto;min-width:6rem}}@keyframes confirm-scale-in{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.post-card{margin-bottom:var(--space-md)}.post-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-sm)}.post-author{display:flex;gap:var(--space-sm);align-items:center;color:var(--text);text-decoration:none;flex:1;min-width:0}.post-author:hover{text-decoration:none}.post-author strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.post-author-handle{display:block;font-size:.8rem;font-weight:500;color:var(--text-muted)}.post-time{display:block;font-size:.8rem;color:var(--text-muted)}.post-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);width:100%}.post-content{white-space:pre-wrap;margin-bottom:var(--space-sm);word-break:break-word}.post-image{border-radius:var(--radius-sm);margin-bottom:var(--space-sm);max-height:360px;object-fit:cover;width:100%}.post-video-wrap{aspect-ratio:9 / 16;max-width:min(100%,360px);margin:0 auto var(--space-sm);background:#000;border-radius:var(--radius-sm);overflow:hidden}.post-video{width:100%;height:100%;object-fit:cover;display:block}.post-footer{display:flex;gap:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--border)}.like-btn,.comment-btn{color:var(--text-muted);font-weight:500;min-height:var(--touch-min);padding:.35rem .5rem;border-radius:var(--radius-sm)}.like-btn.liked{color:var(--danger)}.comments-section{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border)}.comments-heading{display:flex;align-items:center;gap:var(--space-sm);font-size:.95rem;font-weight:600;margin-bottom:var(--space-md);color:var(--text)}.comments-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .4rem;border-radius:999px;background:var(--surface-hover);color:var(--text-muted);font-size:.75rem;font-weight:600}.comments-empty{text-align:center;color:var(--text-muted);font-size:.875rem;padding:var(--space-md) var(--space-sm)}.comment-composer{margin-bottom:var(--space-lg)}.comment-composer-row{display:flex;align-items:flex-start;gap:var(--space-sm)}.comment-composer-avatar{flex-shrink:0;margin-top:.15rem}.comment-composer-body{flex:1;min-width:0;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.comment-composer-body textarea{width:100%;min-height:4.5rem;padding:.75rem;border:none;background:transparent;color:var(--text);resize:vertical;line-height:1.45}.comment-composer-body textarea:focus{outline:none}.comment-composer-body:focus-within{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.comment-attachment-preview{position:relative;display:inline-block;margin:0 .75rem .5rem}.comment-attachment-preview img{width:88px;height:88px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border)}.comment-attachment-remove{position:absolute;top:-.35rem;right:-.35rem;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center}.comment-composer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:.5rem .75rem;border-top:1px solid var(--border);background:#0000001f}.comment-toolbar-btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:500;color:var(--text-muted);cursor:pointer;padding:.35rem .5rem;border-radius:var(--radius-sm)}.comment-toolbar-btn:hover{color:var(--text);background:var(--surface-hover)}.comment-submit-btn{min-height:2rem;padding:.35rem .85rem}.comment-submit-error{color:var(--danger);font-size:.8rem;padding:0 .75rem .65rem}.comments-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-md)}.comment-row{display:flex;align-items:flex-start;gap:var(--space-sm)}.comment-row-avatar{flex-shrink:0;text-decoration:none}.comment-bubble{flex:1;min-width:0;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.65rem .75rem}.comment-bubble-editing{padding:.75rem}.comment-bubble-header{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;margin-bottom:.25rem}.comment-author-name{font-weight:600;font-size:.875rem;color:var(--text);text-decoration:none}.comment-author-handle{font-size:.75rem;color:var(--text-muted)}.comment-author-name:hover{color:var(--primary);text-decoration:none}.comment-time{font-size:.75rem;color:var(--text-muted)}.comment-text{font-size:.9rem;line-height:1.45;color:var(--text);white-space:pre-wrap;word-break:break-word;margin:0}.comment-image{display:block;max-width:min(100%,240px);max-height:240px;margin-top:.5rem;border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border)}.comment-image-attached{margin-top:0;margin-bottom:.5rem;opacity:.85}.comment-bubble-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.5rem;padding-top:.45rem;border-top:1px solid var(--border)}.comment-bubble-actions button{font-size:.75rem;font-weight:500;color:var(--text-muted);padding:0;min-height:unset}.comment-bubble-actions button:hover{color:var(--primary);text-decoration:underline}.comment-bubble-actions .comment-action-danger:hover{color:var(--danger)}.comment-edit{width:100%}.comment-edit textarea{width:100%;padding:.65rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;min-height:3.5rem;resize:vertical;margin-bottom:var(--space-sm)}.comment-edit textarea:focus{outline:2px solid var(--primary);outline-offset:0}.comment-edit-error{color:var(--danger);font-size:.8rem;margin-bottom:var(--space-sm)}.comment-edit-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.edit-form textarea{width:100%;padding:.65rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);margin-bottom:var(--space-sm);min-height:5rem}.edit-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}@media (min-width: 640px){.post-header{flex-wrap:nowrap}.post-actions{width:auto;flex-shrink:0}.post-image{max-height:480px}}@media (min-width: 768px){.post-card{margin-bottom:var(--space-md)}}.auth-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + var(--mobile-top-inset) + var(--space-md)) var(--space-md) var(--space-md)}.auth-page-register{align-items:flex-start;padding-top:calc(env(safe-area-inset-top,0px) + var(--mobile-top-inset) + var(--space-lg));padding-bottom:var(--space-xl)}.auth-card{width:100%;max-width:400px}.auth-card-register{max-width:440px}.auth-header{margin-bottom:var(--space-lg);text-align:center}.auth-brand{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);background:#6366f11f;border:1px solid rgba(99,102,241,.25);border-radius:999px;padding:.25rem .65rem;margin-bottom:var(--space-sm)}.auth-card h1{font-size:1.35rem;margin-bottom:.25rem;font-weight:600;letter-spacing:-.02em}.auth-sub{color:var(--text-muted);margin-bottom:0;font-size:.925rem;line-height:1.45}.auth-card:not(.auth-card-register) .auth-sub{margin-bottom:var(--space-lg)}.auth-notice{margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:#3b82f61f;color:var(--text);font-size:.9375rem;line-height:1.45}.auth-form{display:flex;flex-direction:column}.auth-btn{width:100%;margin-top:var(--space-xs);min-height:var(--touch-min);font-weight:600}.auth-switch{text-align:center;margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border);font-size:.9rem;color:var(--text-muted)}.auth-switch a{font-weight:500}.form-section{border:none;margin:0 0 var(--space-md);padding:0;min-width:0}.form-section:last-of-type{margin-bottom:var(--space-sm)}.form-section:disabled{opacity:.72}.form-section-label{display:block;font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-sm);padding:0}.form-group:last-child{margin-bottom:0}.form-group.has-error input{border-color:var(--danger)}.form-group.has-error input:focus{outline-color:var(--danger)}.field-error{color:var(--danger);font-size:.8rem;line-height:1.35;margin-top:.35rem}.form-hint{font-size:.8rem;color:var(--text-muted);margin-top:.35rem;line-height:1.35}.terms-group{margin-bottom:var(--space-md)}.terms-group.has-error .terms-checkbox{color:var(--text)}.terms-checkbox{display:flex;align-items:flex-start;gap:var(--space-sm);font-size:.875rem;color:var(--text-muted);line-height:1.45;cursor:pointer}.terms-checkbox input{margin-top:.2rem;flex-shrink:0;width:1rem;height:1rem;min-height:unset;accent-color:var(--primary)}.terms-group.has-error .terms-checkbox input{outline:1px solid var(--danger);outline-offset:1px}.terms-checkbox a{color:var(--primary);font-weight:500}.form-banner-error{background:#ef44441a;border:1px solid rgba(239,68,68,.35);color:#fca5a5;font-size:.875rem;line-height:1.4;padding:.65rem .85rem;border-radius:var(--radius-sm);margin-bottom:var(--space-md)}.form-banner-error-action a{color:#fecaca;font-weight:600}@media (min-width: 640px){.auth-page-register{align-items:center;padding-top:calc(env(safe-area-inset-top,0px) + var(--mobile-top-inset) + var(--space-md))}.auth-card-register{padding:var(--space-lg)}.auth-card h1{font-size:1.5rem}}.register-handle-field{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);overflow:hidden;margin-bottom:.35rem}.register-handle-field .profile-username-prefix{padding:.65rem 0 .65rem .75rem;color:var(--text-muted);font-weight:500}.register-handle-field input{flex:1;min-width:0;border:none;background:transparent;color:var(--text);font:inherit;padding:.65rem .75rem .65rem 0;min-height:var(--touch-min)}.register-handle-field input:focus{outline:none}.form-group.has-error .register-handle-field{border-color:var(--danger)}.register-handle-field:focus-within{outline:2px solid var(--primary);outline-offset:0}.form-group.has-error .register-handle-field:focus-within{outline-color:var(--danger)}.account-picker-list{list-style:none;margin:0 0 var(--space-md);padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.account-picker-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);cursor:pointer;text-align:left}.account-picker-item:hover{border-color:var(--accent)}.account-picker-text{display:flex;flex-direction:column;min-width:0}.account-picker-name{font-weight:600}.account-picker-handle{font-size:.875rem;color:var(--text-muted)}.account-picker-deleted{color:var(--accent);font-weight:500}.birth-date-input{width:100%}.birth-date-fields{display:grid;grid-template-columns:.9fr 1.4fr .7fr;gap:var(--space-sm)}.birth-date-field{min-width:0}.birth-date-sublabel{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:.25rem}.birth-date-field select{width:100%;min-height:var(--touch-min);padding:.65rem 2rem .65rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%239aa3b5' d='M1.41 0 6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.birth-date-field select:focus{outline:2px solid var(--primary);outline-offset:0}.birth-date-field select:disabled{opacity:.55;cursor:not-allowed}.birth-date-input.has-error .birth-date-field select{border-color:var(--danger)}.birth-date-input.has-error .birth-date-field select:focus{outline-color:var(--danger)}.birth-date-field select option{background:var(--surface);color:var(--text)}@media (max-width: 380px){.birth-date-fields{grid-template-columns:1fr}}.follow-list-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding:0}.follow-list-modal{width:100%;max-height:85dvh;border-radius:var(--radius) var(--radius) 0 0;display:flex;flex-direction:column;padding:var(--space-md);padding-bottom:calc(var(--space-md) + env(safe-area-inset-bottom,0px))}.follow-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.follow-list-close{font-size:1.5rem;color:var(--text-muted);line-height:1;min-width:var(--touch-min);min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center}.follow-list{list-style:none;overflow-y:auto;-webkit-overflow-scrolling:touch}.follow-list-user{display:flex;gap:var(--space-sm);align-items:center;padding:var(--space-sm) 0;min-height:var(--touch-min);border-top:1px solid var(--border);color:var(--text);text-decoration:none}.follow-list-user div{min-width:0}.follow-list-user strong{display:block}.follow-list-handle{display:block;font-size:.8rem;color:var(--text-muted);font-weight:500}.follow-list-user span{display:block;font-size:.85rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width: 640px){.follow-list-overlay{align-items:center;padding:var(--space-md)}.follow-list-modal{width:min(400px,100%);max-height:70vh;border-radius:var(--radius);padding-bottom:var(--space-md)}}.profile-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-md);margin-bottom:var(--space-xl)}.profile-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.profile-info{width:100%}.profile-info h1,.profile-name{font-size:1.35rem;margin-bottom:.15rem;word-break:break-word;font-weight:600;letter-spacing:-.02em}.profile-handle{color:var(--text-muted);font-size:.95rem;margin-bottom:var(--space-sm)}.profile-bio{color:var(--text-muted);margin-bottom:var(--space-md);word-break:break-word}.profile-stats{display:flex;justify-content:center;gap:var(--space-lg);margin-bottom:var(--space-sm)}.stat-btn{background:none;border:none;color:var(--text-muted);font-size:.9rem;cursor:pointer;padding:var(--space-sm);min-height:var(--touch-min)}.stat-btn strong{color:var(--text);margin-right:.25rem}.stat-btn:hover{text-decoration:underline}.profile-actions{display:flex;justify-content:center;gap:var(--space-sm);flex-wrap:wrap}.bio-edit textarea{width:100%;padding:.5rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);margin-bottom:var(--space-sm);min-height:5rem}.bio-edit .btn{margin-right:var(--space-sm);margin-bottom:var(--space-sm)}.profile-edit{width:100%;margin-bottom:var(--space-md);text-align:left}.profile-edit-label{display:block;font-size:.8rem;font-weight:600;color:var(--text-muted);margin-bottom:.35rem}.profile-name-input{width:100%;min-height:var(--touch-min);padding:.65rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);margin-bottom:.25rem}.profile-name-input:focus{outline:2px solid var(--primary);outline-offset:0}.profile-edit-hint{font-size:.75rem;color:var(--text-muted);margin-bottom:var(--space-md);line-height:1.35}.profile-username-field{display:flex;align-items:center;margin-bottom:.25rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);overflow:hidden}.profile-username-prefix{padding:.65rem 0 .65rem .75rem;color:var(--text-muted);font-weight:500}.profile-username-field input{flex:1;min-width:0;border:none;background:transparent;color:var(--text);font:inherit;padding:.65rem .75rem .65rem 0;min-height:var(--touch-min)}.profile-username-field input:focus{outline:none}.profile-username-field:focus-within{outline:2px solid var(--primary);outline-offset:0}.profile-edit textarea{width:100%;padding:.65rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);margin-bottom:var(--space-sm);min-height:5rem;resize:vertical}.profile-edit textarea:focus{outline:2px solid var(--primary);outline-offset:0}.profile-edit-error{color:var(--danger);font-size:.85rem;margin-bottom:var(--space-sm)}.profile-edit-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.profile-posts-title{font-size:1.1rem;margin-bottom:var(--space-md)}.avatar-upload{cursor:pointer}.profile-danger{margin-top:var(--space-lg);border-color:#ef444459}.profile-danger-title{font-size:1rem;margin-bottom:var(--space-sm);color:var(--danger)}.profile-danger-text{color:var(--text-muted);font-size:.9375rem;margin-bottom:var(--space-md);line-height:1.5}.btn-danger{background:var(--danger);color:#fff;border:none}.btn-danger:hover{filter:brightness(1.08)}.profile-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:var(--space-md);background:#000000a6}.profile-modal{width:min(100%,24rem);padding:var(--space-lg)}.profile-modal h2{margin-bottom:var(--space-sm);font-size:1.125rem}.profile-modal-text{color:var(--text-muted);font-size:.9375rem;margin-bottom:var(--space-md);line-height:1.5}@media (min-width: 640px){.profile-header{flex-direction:row;align-items:flex-start;text-align:left}.profile-stats,.profile-actions{justify-content:flex-start}.profile-info h1,.profile-name{font-size:1.5rem}}.search-user-row{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-md);margin-bottom:var(--space-sm)}.search-user-info{min-width:0}.search-user-info a{font-weight:600;font-size:1rem}.search-user-handle{color:var(--text-muted);font-size:.85rem;margin-top:.1rem}.search-user-bio{color:var(--text-muted);font-size:.9rem;margin-top:.25rem;word-break:break-word}@media (min-width: 640px){.search-user-row{flex-direction:row;align-items:center;justify-content:space-between}}.messages-layout{display:grid;grid-template-columns:1fr;gap:var(--space-md);min-height:calc(100dvh - var(--nav-height) - var(--bottom-nav-height) - 2rem)}.messages-layout .conversations-list{display:flex;flex-direction:column;max-height:none;padding:0;overflow:hidden}.messages-layout .chat-panel{display:none;flex-direction:column;max-height:calc(100dvh - var(--nav-height) - var(--bottom-nav-height) - 1rem);padding:0;overflow:hidden}.messages-layout.show-chat .conversations-list{display:none}.messages-layout.show-chat .chat-panel{display:flex}.conversations-header{padding:var(--space-md) var(--space-md) var(--space-sm)}.conversations-list h2{font-size:1.25rem;margin:0}.convo-search{margin:0 var(--space-md) var(--space-sm);padding:.6rem .85rem;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--text);width:calc(100% - 2rem);min-height:var(--touch-min)}.convo-search:focus{outline:2px solid var(--primary);outline-offset:0}.conversations-list .empty-state{padding:var(--space-xl) var(--space-md)}.convo-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;min-height:var(--touch-min);padding:.85rem var(--space-md);border-radius:0;text-align:left;color:var(--text);border:none;background:none;border-bottom:1px solid var(--border)}.convo-item:hover,.convo-item.active{background:var(--surface-hover)}.convo-item.unread .convo-preview{color:var(--text);font-weight:600}.convo-meta{flex:1;min-width:0}.convo-top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:.15rem}.convo-time{font-size:.75rem;color:var(--text-muted);flex-shrink:0}.convo-preview{display:block;font-size:.85rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unread-dot{background:var(--primary);color:#fff;font-size:.7rem;font-weight:700;padding:2px 7px;border-radius:999px;min-width:20px;text-align:center;flex-shrink:0}.chat-empty,.chat-thread-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-xl) var(--space-md);color:var(--text-muted)}.chat-empty-icon{font-size:2.5rem;margin-bottom:var(--space-md)}.chat-empty h3{color:var(--text);margin-bottom:var(--space-sm)}.chat-header{display:flex;align-items:center;gap:var(--space-sm);padding:.85rem var(--space-md);border-bottom:1px solid var(--border);min-height:var(--nav-height)}.chat-back{font-size:1.35rem;color:var(--text);padding:.35rem .5rem;min-width:var(--touch-min);min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center}.chat-header-user{display:flex;align-items:center;gap:var(--space-sm);color:var(--text);text-decoration:none;min-width:0}.chat-header-user span{display:block;font-size:.8rem;color:var(--text-muted)}.chat-messages{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:.35rem;padding:var(--space-md)}.chat-date-divider{display:flex;justify-content:center;margin:.75rem 0}.chat-date-divider span{font-size:.75rem;color:var(--text-muted);background:var(--surface);padding:.25rem .75rem;border-radius:999px;border:1px solid var(--border)}.chat-row{display:flex;align-items:flex-end;gap:var(--space-sm);max-width:90%}.chat-row.mine{align-self:flex-end;flex-direction:row-reverse}.chat-row.theirs{align-self:flex-start}.chat-bubble{padding:.55rem .85rem;border-radius:18px;font-size:.95rem;max-width:100%}.chat-bubble time{display:block;font-size:.65rem;margin-top:.25rem;opacity:.75;text-align:right}.chat-bubble.mine{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.chat-bubble.theirs{background:var(--surface-hover);color:var(--text);border-bottom-left-radius:4px}.chat-bubble.pending{opacity:.7}.chat-input{display:flex;align-items:flex-end;gap:var(--space-sm);padding:.85rem var(--space-md);padding-bottom:calc(.85rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--surface)}.chat-input textarea{flex:1;padding:.65rem .9rem;border-radius:20px;border:1px solid var(--border);background:var(--bg);color:var(--text);resize:none;min-height:42px;max-height:120px;line-height:1.4;font-family:inherit}.chat-input textarea:focus{outline:2px solid var(--primary);outline-offset:0}.chat-file-input{display:none}.chat-send-error{padding:var(--space-sm) var(--space-md) 0;color:var(--danger);font-size:.875rem}.chat-attach-btn{flex-shrink:0;min-width:var(--touch-min);min-height:var(--touch-min);padding:.5rem;font-size:1.1rem;line-height:1}.chat-attachment-preview{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-top:1px solid var(--border);background:var(--bg)}.preview-thumb{width:56px;height:56px;object-fit:cover;border-radius:var(--radius-sm)}.preview-file{font-size:.9rem;color:var(--text-muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-remove{margin-left:auto;font-size:1.25rem;color:var(--text-muted);padding:.25rem .5rem;line-height:1;min-width:var(--touch-min);min-height:var(--touch-min)}.preview-remove:hover{color:var(--danger)}.msg-attachment-image{display:block;margin-top:.35rem}.msg-attachment-image img{max-width:min(220px,100%);max-height:220px;border-radius:10px;object-fit:cover}.msg-attachment-file{display:flex;align-items:center;gap:var(--space-sm);margin-top:.35rem;padding:var(--space-sm) .75rem;border-radius:var(--radius-sm);background:#00000026;color:inherit;text-decoration:none;font-size:.9rem}.chat-bubble.theirs .msg-attachment-file{background:var(--bg)}.msg-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-bubble p{margin:0;white-space:pre-wrap;word-break:break-word}.chat-bubble p+.msg-attachment-image,.chat-bubble p+.msg-attachment-file{margin-top:var(--space-sm)}@media (min-width: 768px){.messages-layout{grid-template-columns:300px 1fr;min-height:calc(100dvh - var(--nav-height) - 4rem)}.messages-layout .conversations-list{max-height:calc(100dvh - var(--nav-height) - 4rem)}.messages-layout .chat-panel{display:flex;max-height:calc(100dvh - var(--nav-height) - 4rem)}.messages-layout.show-chat .conversations-list{display:flex}.chat-back{display:none}.chat-row{max-width:75%}}@media (min-width: 1024px){.messages-layout{grid-template-columns:320px 1fr}}.legal-page{max-width:680px;margin:0 auto;padding:var(--space-md);padding-bottom:var(--space-xl)}.legal-page h1{font-size:1.5rem;margin-bottom:var(--space-sm)}.legal-updated{color:var(--text-muted);font-size:.875rem;margin-bottom:var(--space-xl)}.legal-page h2{font-size:1.1rem;margin:var(--space-lg) 0 var(--space-sm)}.legal-page p,.legal-page li{color:var(--text-muted);line-height:1.6;margin-bottom:var(--space-sm)}.legal-page ul{padding-left:1.25rem;margin-bottom:var(--space-md)}.legal-page a{color:var(--primary)}.legal-back{display:inline-block;margin-bottom:var(--space-md);color:var(--text-muted);font-size:.9rem}.email-verify-banner{display:flex;flex-direction:column;gap:var(--space-sm);margin:0 auto var(--space-md);max-width:var(--content-max);padding:var(--space-md);background:#6366f11f;border:1px solid rgba(99,102,241,.35);border-radius:var(--radius)}.email-verify-banner-text{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;color:var(--text-muted);line-height:1.45}.email-verify-banner-text strong{color:var(--text)}.email-verify-banner-feedback{color:var(--success);font-size:.8rem}.email-verify-banner-error{color:var(--danger);font-size:.8rem}.email-verify-banner-btn{align-self:flex-start;min-height:var(--touch-min)}@media (min-width: 640px){.email-verify-banner{flex-direction:row;align-items:center;justify-content:space-between}}.verify-email-card{text-align:center}.verify-email-icon{width:3rem;height:3rem;margin:0 auto var(--space-md);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.35rem;font-weight:700}.verify-email-icon-success{background:#22c55e26;color:var(--success);border:1px solid rgba(34,197,94,.35)}.verify-email-icon-error{background:#ef44441f;color:var(--danger);border:1px solid rgba(239,68,68,.35)}.verify-email-card .auth-sub{margin-bottom:var(--space-lg)}.verify-email-dev-hint{font-size:.85rem!important;margin-top:calc(-1 * var(--space-sm));margin-bottom:var(--space-md)!important}.verify-email-dev-hint code{font-size:.8rem}:root{--bg: #0f1117;--surface: #1a1d27;--surface-hover: #222633;--border: #2d3348;--text: #e8eaef;--text-muted: #9aa3b5;--primary: #6366f1;--primary-hover: #5558e3;--danger: #ef4444;--success: #22c55e;--radius: 12px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(0, 0, 0, .25);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--touch-min: 44px;--nav-height: 52px;--bottom-nav-height: 56px;--mobile-top-inset: 1rem;--content-max: 680px;--wide-max: 1100px;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;color:var(--text);background:var(--bg);-webkit-tap-highlight-color:transparent}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{min-height:100vh;min-height:100dvh;overflow-x:hidden}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none;touch-action:manipulation}img{max-width:100%;display:block}.container{width:100%;max-width:var(--content-max);margin:0 auto;padding:0 var(--space-md)}.container-wide{width:100%;max-width:var(--wide-max);margin:0 auto;padding:0 var(--space-md)}.app-layout{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.main-content{flex:1;padding:var(--space-md) 0 calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + var(--space-lg));padding-top:calc(var(--mobile-top-inset) + var(--space-sm))}.page-title{font-size:1.25rem;font-weight:700;margin-bottom:var(--space-md);line-height:1.3}.home-banner{margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);background:#ffffff0f;color:var(--text-muted);font-size:.9375rem;line-height:1.45}.home-banner-success{background:#22c55e1f;color:var(--text)}.page-section{margin-bottom:var(--space-xl)}.page-section-title{font-size:1rem;font-weight:600;margin-bottom:var(--space-sm)}.hide-mobile{display:none!important}.hide-desktop{display:revert}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:var(--touch-min);padding:.6rem 1.1rem;border-radius:999px;font-weight:600;font-size:.9375rem;transition:background .15s,transform .1s;white-space:nowrap}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-hover)}.btn-danger{background:#ef444426;color:var(--danger)}.btn-sm{min-height:36px;padding:.35rem .75rem;font-size:.875rem}.btn-icon{min-width:var(--touch-min);padding:.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md);box-shadow:var(--shadow)}.card-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm)}.form-group{margin-bottom:var(--space-md)}.form-group label{display:block;margin-bottom:.35rem;font-size:.875rem;color:var(--text-muted)}.form-group input,.form-group textarea{width:100%;min-height:var(--touch-min);padding:.65rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text)}.form-group textarea{min-height:6rem;resize:vertical}.form-group input:focus,.form-group textarea:focus{outline:2px solid var(--primary);outline-offset:0}.search-form{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.search-form input{width:100%;min-height:var(--touch-min);padding:.65rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text)}.search-form input:focus{outline:2px solid var(--primary);outline-offset:0}.error-msg{color:var(--danger);font-size:.875rem;margin-top:var(--space-sm)}.empty-state{text-align:center;padding:var(--space-xl) var(--space-md);color:var(--text-muted)}.avatar{width:40px;height:40px;min-width:40px;min-height:40px;border-radius:50%;object-fit:cover;background:var(--border);flex-shrink:0}.avatar-lg{width:80px;height:80px;min-width:80px;min-height:80px;font-size:2rem}.avatar-sm{width:28px;height:28px;min-width:28px;min-height:28px;font-size:.7rem}.avatar-placeholder{display:block;text-align:center;line-height:40px;font-weight:700;font-size:1rem;color:#fff;background:linear-gradient(135deg,var(--primary),#a855f7);overflow:hidden;-webkit-user-select:none;user-select:none}.avatar-lg.avatar-placeholder{line-height:80px}.avatar-sm.avatar-placeholder{line-height:28px}.notif-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm)}.notif-item{display:flex;gap:var(--space-sm);align-items:flex-start}.notif-item.unread-notif{border-color:var(--primary);background:#6366f114}.notif-meta{font-size:.8rem;color:var(--text-muted);margin-top:.15rem}.admin-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm);margin-bottom:var(--space-xl)}.admin-stat{text-align:center}.admin-stat-value{font-size:1.35rem;font-weight:700}.admin-stat-label{color:var(--text-muted);font-size:.8rem;text-transform:capitalize}.admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table{width:100%;min-width:520px;border-collapse:collapse;font-size:.875rem}.admin-table th,.admin-table td{padding:.65rem .5rem;text-align:left}.admin-table thead tr{color:var(--text-muted)}.admin-table tbody tr{border-top:1px solid var(--border)}.admin-post-card{margin-bottom:var(--space-sm)}.admin-post-row{display:flex;flex-direction:column;gap:var(--space-md)}.admin-post-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}@media (min-width: 640px){.page-title{font-size:1.5rem}.avatar-lg{width:96px;height:96px;min-width:96px;min-height:96px;font-size:2.25rem}.avatar-lg.avatar-placeholder{line-height:96px}.search-form{flex-direction:row;align-items:stretch}.search-form input{flex:1}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-md)}.admin-post-row{flex-direction:row;justify-content:space-between;align-items:flex-start}}@media (min-width: 768px){:root{--mobile-top-inset: 0px}.hide-mobile{display:revert!important}.hide-desktop{display:none!important}.main-content{padding:var(--space-lg) 0 var(--space-xl)}.card{padding:var(--space-md) var(--space-lg)}}
