:root{--bg-primary:#0f0f0f;--bg-secondary:#1a1a1b;--bg-elevated:#272729;--bg-elevated-hover:#3a3a3c;--text-primary:#d7dadc;--text-secondary:#818384;--accent:#4fbf67;--accent-hover:#3da856;--accent-muted:#2a3a2a;--danger:#ff4500;--danger-bg:#3a1a1a;--border:#343536;--border-hover:#555;--orange:#ff4500;--blue:#7193ff;--purple:#a78bfa;--sp-xs:4px;--sp-sm:8px;--sp-md:12px;--sp-lg:16px;--sp-xl:24px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--transition-fast:.15s ease;--transition-normal:.25s ease;--text-xs:11px;--text-sm:12px;--text-md:14px;--text-lg:16px;--text-xl:18px;--text-2xl:22px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-size:var(--text-md)}button.vote-chip{border:1px solid var(--border);cursor:pointer;font:inherit}button.vote-chip.active{border-color:var(--accent);color:var(--accent)}.comments-section-title{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--sp-sm);text-transform:uppercase;letter-spacing:.5px}.field-label{font-size:var(--text-sm);color:var(--text-secondary);margin:var(--sp-md) 0 var(--sp-xs);font-weight:500;display:block}.text-input,.textarea-input,select.text-input{background:var(--bg-elevated);width:100%;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-sm) var(--sp-md);font-size:var(--text-md);box-sizing:border-box;font-family:inherit}.textarea-input{resize:vertical;min-height:120px}.field-row{gap:var(--sp-sm);margin-bottom:var(--sp-sm);flex-wrap:wrap;align-items:center;display:flex}.form-actions{gap:var(--sp-md);margin-top:var(--sp-lg);flex-wrap:wrap;display:flex}.tabs-like-row{gap:var(--sp-xs);margin-bottom:var(--sp-sm);flex-wrap:wrap;display:flex}.hint{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--sp-sm)}.feed-toolbar{margin-bottom:var(--sp-md)}.meta-chip{font-size:var(--text-sm);color:var(--text-secondary)}.user-tag-pill{font-size:var(--text-sm);color:var(--accent);margin-left:auto}.tag-desc{font-size:var(--text-sm);color:var(--text-secondary);margin-top:var(--sp-xs);display:block}.tag-row-actions,.draft-actions,.notif-actions{gap:var(--sp-sm);flex-wrap:wrap;display:flex}.attachment-thumb{border-radius:var(--radius-sm);max-width:100%;display:block}.attachment-thumb-hit{cursor:pointer;background:0 0;border:none;width:100%;padding:0}.attachment-thumb-missing{padding:var(--sp-xl);text-align:center;color:var(--text-secondary)}.tag-filter-bar{margin-bottom:var(--sp-lg)}.tag-filter-actions{gap:var(--sp-sm);margin-top:var(--sp-sm);flex-wrap:wrap;display:flex}.tag-filter-title h3{margin:0}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-md);padding:var(--sp-xl);text-align:center;color:var(--text-secondary);margin-bottom:var(--sp-md)}.gallery-grid{gap:var(--sp-md);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));display:grid}.bg-filter-row{gap:var(--sp-xs);margin-bottom:var(--sp-md);flex-wrap:wrap;display:flex}.profile-actions,.profile-self-tools,.profile-other-tools{gap:var(--sp-sm);margin-top:var(--sp-md);flex-wrap:wrap;display:flex}.profile-header-card h2{margin:0 0 var(--sp-xs)}.header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:var(--sp-md) var(--sp-xl);align-items:center;gap:var(--sp-lg);z-index:10;box-shadow:var(--shadow-sm);display:flex;position:sticky;top:0}.header-brand{align-items:center;gap:var(--sp-sm);display:flex}.header-logo{object-fit:contain;border-radius:var(--radius-sm);flex-shrink:0;width:40px;height:40px}.header h1{font-size:var(--text-2xl);color:var(--orange);font-weight:700;line-height:1.3}.header .env{font-size:var(--text-sm);background:var(--orange);color:#fff;padding:2px var(--sp-sm);border-radius:var(--radius-sm);font-weight:600}.header .stats{font-size:var(--text-md);color:var(--text-secondary)}.header .search-toggle-btn{padding:4px 8px;font-size:14px}.header .search-bar{flex:1;align-items:center;gap:8px;max-width:400px;display:flex}.header .search-bar input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--text-sm);flex:1;padding:6px 10px}.header .search-bar input::placeholder{color:var(--text-secondary)}.header .right{align-items:center;gap:var(--sp-md);flex-wrap:wrap;justify-content:flex-end;margin-left:auto;display:flex}.header .feed-scope-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);align-items:stretch;display:inline-flex;overflow:hidden}.header .feed-scope-btn{font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;padding:5px 12px}.header .feed-scope-btn+.feed-scope-btn{border-left:1px solid var(--border)}.header .feed-scope-btn:hover{color:var(--text-primary);background:var(--bg-elevated-hover)}.header .feed-scope-btn.active{background:var(--bg-elevated);color:var(--orange);font-weight:600}.header .swagger-link{font-size:var(--text-sm);color:var(--text-secondary);padding:var(--sp-xs) var(--sp-sm);border-radius:var(--radius-sm);transition:color var(--transition-fast);text-decoration:none}.header .swagger-link:hover{color:var(--accent)}.swagger-iframe{border-radius:var(--radius-md);background:var(--bg-primary);border:none;width:100%;min-height:calc(100vh - 180px)}#swagger-ui{border-radius:var(--radius-md);padding:var(--sp-lg);background:#fff;min-height:calc(100vh - 180px)}.auth-bar{align-items:center;gap:var(--sp-sm);display:flex}.auth-bar select{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);padding:var(--sp-xs) var(--sp-sm);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:border-color var(--transition-fast)}.auth-bar select:focus{border-color:var(--accent);outline:none}.auth-bar .user-label{font-size:var(--text-sm);color:var(--accent);font-weight:500}.auth-bar .logged-out{color:var(--text-secondary)}.notif-badge{background:var(--orange);color:#fff;font-size:var(--text-xs);border-radius:var(--radius-full);cursor:pointer;transition:transform var(--transition-fast);padding:1px 6px;font-weight:700}.notif-badge:hover{transform:scale(1.05)}.notif-badge:empty{display:none}.nav-tab .notif-badge{margin-left:6px}.nav-tabs{background:var(--bg-secondary);border-bottom:1px solid var(--border);gap:0;display:flex;overflow-x:auto}.nav-tabs.is-hidden{display:none}.nav-tab{font-size:var(--text-md);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);border-bottom:3px solid #0000;padding:10px 20px}.nav-tab:hover{color:var(--text-primary);background:var(--bg-elevated)}.nav-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:500}.container{max-width:800px;padding:var(--sp-lg);margin:0 auto}.feed-frame{gap:var(--sp-lg);flex-direction:column;display:flex}.feed-frame .card{margin-bottom:0}.post-frame-section{border-top:1px solid var(--border)}.post-frame-label{padding:var(--sp-xs) var(--sp-lg) 0;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-weight:600}.post-frame-title{padding:0 var(--sp-lg) var(--sp-sm)}.post-frame-title .thread-title,.post-frame-content .thread-content{padding-top:var(--sp-xs)}.card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:var(--sp-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);overflow:hidden}.card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.card-header{padding:var(--sp-md) var(--sp-lg);align-items:center;gap:var(--sp-sm);font-size:var(--text-sm);color:var(--text-secondary);display:flex}.card-header .author{color:var(--text-primary);font-weight:500}.card-header .time{margin-left:auto}.thread-detail-header{align-items:center;gap:var(--sp-sm);grid-template-columns:1fr auto 1fr;display:grid}.thread-detail-header .thread-header-meta{align-items:center;gap:var(--sp-sm);min-width:0;display:flex}.thread-detail-header .thread-header-save-btn{font-size:var(--text-xs);flex-shrink:0;margin-left:auto;padding:4px 10px}.thread-detail-header .thread-header-owner-actions{justify-content:center;align-items:center;gap:var(--sp-sm);flex-wrap:wrap;display:flex}.thread-detail-header .time{justify-self:end;margin-left:0}.thread-header-edit-btn,.thread-header-delete-btn{font-size:var(--text-xs);padding:4px 10px}.card-footer{padding:var(--sp-sm) var(--sp-lg);border-top:1px solid var(--border);gap:var(--sp-lg);font-size:var(--text-md);color:var(--text-secondary);align-items:center;display:flex}.card-section{padding:var(--sp-md) var(--sp-lg);border-top:1px solid var(--border)}.avatar{background:var(--border);color:var(--text-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.badge{font-size:var(--text-xs);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.3px;padding:2px 6px;font-weight:600}.role-member{color:#4fbf4f;background:#1a3a1a}.role-trusted{color:var(--blue);background:#1a2a3a}.role-moderator{color:#ff8b60;background:#3a2a1a}.role-admin{background:var(--danger-bg);color:var(--danger)}.role-super_admin{color:#b07aff;background:#2a1a3a}.badge-type{color:var(--blue);background:#1a2a3a}.badge-status{font-size:var(--text-xs);border-radius:var(--radius-sm);padding:2px 6px}.status-pending{color:#e8d44d;background:#3a3a1a}.status-verified{color:#4fbf4f;background:#1a3a1a}.status-warned{color:#ff8b60;background:#3a2a1a}.status-suspended,.status-comment_suspended{background:var(--danger-bg);color:var(--danger)}.badge-visibility{font-size:var(--text-xs);border-radius:var(--radius-sm);color:var(--purple);background:#2a2a3a;padding:2px 6px}.thread-title{padding:var(--sp-sm) var(--sp-lg) var(--sp-xs);font-size:var(--text-xl);color:var(--text-primary);cursor:pointer;transition:color var(--transition-fast);font-weight:600}.thread-title:hover{color:var(--accent)}.reading-time{font-size:var(--text-xs);color:var(--text-secondary);padding:0 var(--sp-lg) var(--sp-xs);margin-top:-2px}.thread-content{padding:0 var(--sp-lg) var(--sp-sm);font-size:var(--text-md);color:var(--text-secondary);white-space:pre-wrap;word-break:break-word}.youtube-embed-wrap{max-width:min(560px,100%);margin:var(--sp-md) 0;aspect-ratio:16/9;background:var(--bg-elevated);border-radius:var(--radius-md);display:block;overflow:hidden}.youtube-embed-wrap .youtube-embed{border:0;width:100%;height:100%;display:block}.youtube-embed-wrap .youtube-embed-fallback{font-size:var(--text-sm);color:var(--text-secondary);padding:var(--sp-xs) var(--sp-sm) var(--sp-sm);word-break:break-all;display:block}.thread-frame{margin:0 var(--sp-lg) var(--sp-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);overflow:hidden}.thread-frame-title{padding:var(--sp-xs) var(--sp-md);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border);font-weight:600}.thread-frame-body{padding:var(--sp-sm) var(--sp-md);font-size:var(--text-sm);color:var(--text-primary)}.thread-summary-frame .thread-frame-body{color:#a8d4a8;white-space:pre-line}.thread-comments-summary-frame .thread-frame-body{color:#b8c4d4;white-space:pre-line}.frame-empty{color:var(--text-secondary);font-style:italic}.thread-tags-frame .thread-tags{flex-wrap:wrap;align-items:center;gap:6px;padding:0;display:flex}.thread-images{padding:var(--sp-xs) var(--sp-lg) var(--sp-sm);box-sizing:border-box;width:100%}.thread-images--single{display:block}.thread-images-single-hit{border-radius:var(--radius-md);cursor:zoom-in;text-align:center;background:#0d0d0d;border:none;width:100%;margin:0;padding:0;line-height:0;display:block;overflow:hidden}.thread-images--single .thread-images-single-hit img,.post-attachment-carousel-slide .thread-images-single-hit img{object-fit:contain;vertical-align:middle;width:100%;height:auto;max-height:min(70vh,520px);display:inline-block}.thread-images--single .thread-images-single-hit{border:1px solid var(--border);transition:border-color var(--transition-fast)}.thread-images--single .thread-images-single-hit:hover{border-color:var(--accent)}.post-attachment-carousel{padding-bottom:var(--sp-sm);display:block}.post-attachment-carousel-viewport{border-radius:var(--radius-md);border:1px solid var(--border);background:#0d0d0d;position:relative;overflow:hidden}.post-attachment-carousel-track{will-change:transform;width:100%;transition:transform .28s ease-out;display:flex}.post-attachment-carousel-slide{flex:0 0 100%;justify-content:center;align-items:center;min-width:0;display:flex}.post-attachment-carousel-img-btn{width:100%}.post-attachment-carousel-arrow{z-index:2;color:#fff;cursor:pointer;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin:0;padding:0;font-size:26px;line-height:1;transition:background .15s,opacity .15s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.post-attachment-carousel-arrow:hover{background:#000000b8}.post-attachment-carousel-prev{left:8px}.post-attachment-carousel-next{right:8px}.post-attachment-carousel-indicators{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:10px;padding:0 4px;display:flex}.post-attachment-carousel-indicator{cursor:pointer;background:#ffffff47;border:none;border-radius:2px;width:14px;height:8px;padding:0;transition:background .15s,transform .15s}.post-attachment-carousel-indicator:hover{background:#ffffff73}.post-attachment-carousel-indicator.is-active{background:#fff;transform:scaleY(1.35);box-shadow:0 0 0 1px #ffffff40}.thread-bg{border-radius:var(--radius-md);z-index:0;pointer-events:none;background-position:50%;background-size:cover;position:absolute;inset:0}.thread-bg:after{content:"";border-radius:var(--radius-md);background:linear-gradient(#0d11178c 0%,#0d1117d1 50%,#0d1117f2 100%);position:absolute;inset:0}.card.has-bg{background:0 0;position:relative}.card.has-bg>:not(.thread-bg){z-index:1;position:relative}.card.has-bg .card-header,.card.has-bg .card-footer,.card.has-bg .card-section,.card.has-bg .post-frame-section,.card.has-bg .comments-section{background:#0d1117f2}.card.has-bg .post-frame-section{border-top-color:#ffffff14}.card.has-bg .post-frame-section.post-frame-title,.card.has-bg .post-frame-section.post-frame-content{margin:0 var(--sp-lg) var(--sp-sm);border-radius:var(--radius-md);background:#0d11171a;border-top-color:#0000;overflow:hidden}.card.has-bg .post-frame-section.post-frame-title .post-frame-label,.card.has-bg .post-frame-section.post-frame-content .post-frame-label{padding:var(--sp-xs) var(--sp-md) 0}.card.has-bg .post-frame-section.post-frame-title .thread-title{padding:var(--sp-xs) var(--sp-md) var(--sp-sm)}.card.has-bg .post-frame-section.post-frame-title .reading-time{padding:0 var(--sp-md) var(--sp-xs)}.card.has-bg .post-frame-section.post-frame-content .thread-content{padding:var(--sp-xs) var(--sp-md) var(--sp-sm)}.card.has-bg .card-footer,.card.has-bg .comments-section{border-top-color:#ffffff14}.card.has-bg .comment,.card.has-bg .thread-frame{background:#0d1117f2;border-color:#ffffff14}.card.has-bg .thread-frame-title{background:#0d1117eb;border-bottom-color:#ffffff14}.card.has-bg .tag,.card.has-bg .vote-chip{background:#0d1117f2}.card.has-bg textarea,.card.has-bg select{background:#0d1117f2!important;border-color:#ffffff1f!important}.thread-tags{flex-wrap:wrap;align-items:center;gap:6px;padding:0;display:flex}.tag{font-size:var(--text-sm);background:var(--bg-elevated);color:var(--accent);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast);padding:2px 10px}.tag:hover{background:var(--bg-elevated-hover)}.tag-followed{border:1px solid var(--accent)}.tag-muted{border:1px solid var(--text-secondary);opacity:.8}.tag-remove{cursor:pointer;color:var(--text-secondary);font-size:var(--text-xs);margin-left:2px}.tag-remove:hover{color:var(--danger)}.tag-filter-bar{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-md) var(--sp-lg);margin-bottom:var(--sp-md);align-items:center;gap:10px;display:flex}.tag-filter-bar .tag-active{font-size:var(--text-lg);background:var(--accent);color:var(--bg-primary);border-radius:var(--radius-full);padding:3px 14px;font-weight:600}.tag-filter-bar .tag-count{font-size:var(--text-md);color:var(--text-secondary);margin-left:auto}.stat{align-items:center;gap:var(--sp-xs);display:flex}.likes{color:var(--orange)}.votes-section{padding:var(--sp-sm) var(--sp-lg);border-top:1px solid var(--border)}.votes-section h4{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--sp-xs);text-transform:uppercase;letter-spacing:.5px}.vote-chip{align-items:center;gap:var(--sp-xs);font-size:var(--text-sm);background:var(--bg-elevated);padding:2px var(--sp-sm);border-radius:var(--radius-full);margin:2px var(--sp-xs) 2px 0;color:var(--text-primary);display:inline-flex}.vote-chip .up{color:var(--orange)}.vote-chip .down{color:var(--blue)}.comments-section{padding:var(--sp-sm) var(--sp-lg) var(--sp-md);border-top:1px solid var(--border)}.comments-section h4{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--sp-sm);text-transform:uppercase;letter-spacing:.5px}.comment{background:var(--bg-elevated);border-radius:var(--radius-md);padding:10px var(--sp-md);margin-bottom:var(--sp-sm);border-left:3px solid var(--border);transition:background var(--transition-normal), border-color var(--transition-normal)}.comment-highlight{background:var(--accent-muted);border-left-color:var(--accent);animation:3s ease-out comment-flash}@keyframes comment-flash{0%,30%{border-left-color:var(--accent);background:#2a4a2a}to{background:var(--bg-elevated);border-left-color:var(--border)}}.comment-thread{margin-bottom:var(--sp-xs)}.comment-replies{margin-left:var(--sp-xl);padding-left:var(--sp-md);border-left:2px solid var(--border);opacity:.95}.comment-header{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--sp-xs);align-items:center;gap:6px;display:flex}.comment-header .author{color:var(--accent);font-weight:500}.comment-body{font-size:var(--text-md);color:var(--text-primary);white-space:pre-wrap}.comment-images{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.comment-images img{border-radius:var(--radius-sm);object-fit:cover;max-width:150px;max-height:100px}.comment-votes{gap:var(--sp-xs);flex-wrap:wrap;margin-top:6px;display:flex}.comment-footer{gap:var(--sp-sm);flex-wrap:wrap;align-items:center;margin-top:6px;display:flex}.reply-form{margin-top:var(--sp-sm);border-top:1px solid var(--border);padding-top:var(--sp-sm);transition:padding var(--transition-fast)}.reply-form textarea{background:var(--bg-secondary);width:100%;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-md);resize:vertical;min-height:44px;transition:border-color var(--transition-fast);padding:6px 10px;font-family:inherit}.reply-form textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #4fbf6726}.reply-form .reply-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.action-btn{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);transition:all var(--transition-fast);background:0 0;padding:3px 10px}.action-btn:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.action-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.action-btn.active{color:var(--accent);border-color:var(--accent)}.action-btn.liked{color:var(--orange);border-color:var(--orange)}.action-btn.disliked{color:var(--blue);border-color:var(--blue)}.action-btn.danger{color:var(--danger)}.action-btn.danger:hover{background:var(--danger-bg);border-color:var(--danger)}.action-btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.3)}.more-menu{margin-left:auto;display:inline-flex;position:relative}.more-menu-btn{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);letter-spacing:2px;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;padding:2px 8px;font-size:18px;line-height:1}.more-menu-btn:hover{color:var(--text-primary);background:var(--bg-elevated);border-color:var(--border)}.more-dropdown{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);min-width:160px;box-shadow:var(--shadow-md);z-index:20;margin-top:4px;display:none;position:absolute;top:100%;right:0;overflow:hidden}.more-dropdown.open{display:block}.more-dropdown-item{width:100%;color:var(--text-primary);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;padding:8px 14px;display:block}.more-dropdown-item:hover{background:var(--bg-elevated-hover)}.more-dropdown-item.danger{color:var(--danger)}.more-dropdown-item.danger:hover{background:var(--danger-bg)}.more-dropdown-sep{background:var(--border);height:1px;margin:2px 0}.submit-btn{background:linear-gradient(180deg, var(--accent) 0%, var(--accent-hover) 100%);color:var(--bg-primary);padding:var(--sp-sm) var(--sp-xl);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-md);transition:filter var(--transition-fast), box-shadow var(--transition-fast);border:none;font-weight:600}.submit-btn:hover{filter:brightness(1.1);box-shadow:var(--shadow-sm)}.submit-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.submit-btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.5)}.back-btn{border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-md);margin-bottom:var(--sp-md);transition:background var(--transition-fast);background:0 0;padding:6px 14px;display:none}.back-btn:hover{background:var(--bg-elevated)}.back-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.back-btn.visible{align-items:center;gap:6px;display:inline-flex}.form-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-lg);margin-bottom:var(--sp-md)}.form-card h3{font-size:var(--text-md);color:var(--text-primary);margin-bottom:var(--sp-md);font-weight:600}.user-prompts-feed{gap:var(--sp-xs);flex-direction:column;max-height:160px;display:flex;overflow-y:auto}.user-prompt-row{padding:var(--sp-sm) var(--sp-md);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast)}.user-prompt-row:hover{background:var(--bg-elevated-hover);border-color:var(--border-hover);color:var(--text-primary)}.form-group{margin-bottom:10px}.form-group label{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--sp-xs);font-weight:500;display:block}.form-group input,.form-group textarea,.form-group select{background:var(--bg-elevated);width:100%;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-sm) var(--sp-md);font-size:var(--text-md);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);font-family:inherit}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-secondary);opacity:.7;font-style:italic}.form-group textarea{resize:vertical;min-height:80px}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #4fbf6726}.form-row{gap:var(--sp-sm);flex-wrap:wrap;align-items:end;display:flex}.form-row .form-group{flex:1;min-width:120px}.enhance-btn{white-space:nowrap;letter-spacing:.3px;font-weight:600;font-size:var(--text-xs)!important;color:#b07aff!important;background:linear-gradient(135deg,#7c3aed26,#4f46e526)!important;border-color:#7c3aed59!important;padding:4px 10px!important}.enhance-btn:hover{color:#c9a0ff!important;background:linear-gradient(135deg,#7c3aed40,#4f46e540)!important;border-color:#7c3aed80!important}.enhance-btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.3)}.summary-preview{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-sm) var(--sp-md);font-size:var(--text-sm);color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;min-height:40px;font-style:italic}.summary-preview.has-content{color:#a8d4a8;font-style:normal}.tag-chips-wrap{flex-wrap:wrap;gap:6px;min-height:28px;display:flex}.tag-chip{color:#c4b5fd;font-size:var(--text-xs);letter-spacing:.3px;white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast);background:linear-gradient(135deg,#6366f12e,#8b5cf62e);border:1px solid #8b5cf659;border-radius:999px;align-items:center;gap:4px;padding:3px 8px 3px 10px;font-weight:600;display:inline-flex}.tag-chip:hover{background:linear-gradient(135deg,#6366f147,#8b5cf647);border-color:#8b5cf68c}.tag-chip-x{cursor:pointer;color:#c4b5fd8c;transition:color var(--transition-fast);font-size:14px;font-weight:700;line-height:1}.tag-chip-x:hover{color:#f87171}.emoji-picker-wrap{display:inline-block;position:relative}.emoji-picker-btn{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);padding:6px 10px;font-size:18px;line-height:1}.emoji-picker-btn:hover{background:var(--bg-elevated-hover);border-color:var(--border-hover)}.emoji-picker-popover{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-sm);width:280px;max-height:220px;box-shadow:var(--shadow-lg);z-index:100;margin-bottom:4px;display:none;position:absolute;bottom:100%;left:0;overflow-y:auto}.emoji-picker-popover.open{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.emoji-pick-item{cursor:pointer;text-align:center;border-radius:var(--radius-sm);transition:background var(--transition-fast);padding:4px;font-size:20px}.emoji-pick-item:hover{background:var(--bg-elevated-hover)}.tag-form{align-items:center;gap:var(--sp-xs);display:inline-flex}.tag-form input{background:var(--bg-elevated);width:100px;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--text-sm);transition:border-color var(--transition-fast);padding:2px 10px}.tag-form input:focus{border-color:var(--accent);outline:none}.tag-add-btn{background:var(--accent);color:var(--bg-primary);cursor:pointer;width:20px;height:20px;font-size:var(--text-md);transition:filter var(--transition-fast);border:none;border-radius:50%;justify-content:center;align-items:center;line-height:1;display:flex}.tag-add-btn:hover{filter:brightness(1.1)}.ai-bg-section{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-md)}.bg-tabs{margin-bottom:var(--sp-md);border-bottom:2px solid var(--border);gap:0;display:flex}.bg-tab{padding:var(--sp-sm) var(--sp-md);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;font-weight:500}.bg-tab:hover{color:var(--text-primary)}.bg-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.bg-tab-content{display:none}.bg-tab-content.active{display:block}.bg-upload-zone{border:2px dashed var(--border);border-radius:var(--radius-md);padding:var(--sp-lg);text-align:center;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast)}.bg-upload-zone:hover{border-color:var(--accent);background:#4fbf670d}.ai-bg-controls{gap:var(--sp-sm);flex-wrap:wrap;align-items:center;display:flex}.ai-bg-controls select{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);min-width:140px;padding:6px 8px}.ai-bg-btn{white-space:nowrap;font-weight:600;color:#fff!important;background:linear-gradient(135deg,#7c3aed,#4f46e5)!important;border:none!important}.ai-bg-btn:hover{filter:brightness(1.15)}.ai-bg-btn:disabled{opacity:.5;cursor:not-allowed}.ai-bg-preview{margin-top:var(--sp-md)}.ai-bg-preview-inner{border-radius:var(--radius-md);border:1px solid var(--border);position:relative;overflow:hidden}.ai-bg-preview-inner img{object-fit:cover;width:100%;max-height:240px;display:block}.ai-bg-preview-actions{top:var(--sp-sm);right:var(--sp-sm);gap:var(--sp-xs);display:flex;position:absolute}.ai-bg-preview-actions .action-btn{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:var(--text-xs);border-radius:var(--radius-sm);background:#000000b3;padding:4px 8px}.ai-bg-preview-actions .danger-text{color:var(--danger)}.ai-bg-meta{margin-top:var(--sp-xs);font-size:var(--text-xs);color:var(--text-secondary)}.ai-bg-meta b{color:var(--text-primary);font-weight:500}.ai-bg-loading{align-items:center;gap:var(--sp-sm);margin-top:var(--sp-md);color:var(--text-secondary);font-size:var(--text-sm);display:flex}.ai-bg-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite ai-spin}@keyframes ai-spin{to{transform:rotate(360deg)}}.bg-library-hint{font-size:var(--text-xs);color:var(--text-secondary);margin-bottom:var(--sp-sm);line-height:1.45}.bg-library-grid{gap:var(--sp-sm);max-height:220px;margin-bottom:var(--sp-sm);grid-template-columns:repeat(auto-fill,minmax(88px,1fr));display:grid;overflow-y:auto}.bg-library-item{border:2px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:var(--bg-secondary);aspect-ratio:16/10;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);margin:0;padding:0;display:block;position:relative;overflow:visible}.bg-library-item img{object-fit:cover;vertical-align:middle;border-radius:calc(var(--radius-sm) - 2px);width:100%;height:100%;display:block}.bg-library-item:hover{border-color:var(--accent)}.bg-library-item.selected{border-color:var(--accent);box-shadow:0 0 0 2px #4fbf6759}.bg-library-ai-badge{letter-spacing:.04em;color:#fff;pointer-events:none;background:#7c3aedeb;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;line-height:1.2;position:absolute;bottom:4px;left:4px}.bg-gallery-page{max-width:960px;margin:0 auto}.bg-gallery-header{margin-bottom:var(--sp-md);justify-content:space-between;align-items:flex-start;display:flex}.bg-gallery-header h3{margin:0 0 var(--sp-xs)}.bg-gallery-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.bg-gallery-filters{gap:var(--sp-xs);margin-bottom:var(--sp-lg);flex-wrap:wrap;display:flex}.bg-gallery-filter-btn{font-size:var(--text-sm);padding:var(--sp-xs) var(--sp-md);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-weight:600}.bg-gallery-filter-btn:hover{border-color:var(--accent);color:var(--text-primary)}.bg-gallery-filter-btn.active{background:var(--accent);color:var(--bg-primary);border-color:var(--accent)}.bg-gallery-grid{gap:var(--sp-md);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.bg-gallery-card{border-radius:var(--radius-md);cursor:pointer;border:1px solid var(--border);background:var(--bg-elevated);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);overflow:hidden}.bg-gallery-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.bg-gallery-card-img{aspect-ratio:16/10;position:relative;overflow:hidden}.bg-gallery-card-img img{object-fit:cover;width:100%;height:100%;display:block}.bg-gallery-ai-badge,.bg-gallery-catalog-badge{letter-spacing:.04em;color:#fff;pointer-events:none;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700;line-height:1.3;position:absolute;bottom:6px;left:6px}.bg-gallery-ai-badge{background:#7c3aedeb}.bg-gallery-catalog-badge{background:#3b82f6d9}.bg-gallery-card-info{padding:var(--sp-xs) var(--sp-sm);justify-content:space-between;align-items:center;display:flex}.bg-gallery-card-name{font-size:var(--text-xs);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.bg-gallery-card-date{font-size:var(--text-xs);color:var(--text-secondary);margin-left:var(--sp-sm);white-space:nowrap}.bg-gallery-card-tags{padding:var(--sp-xs) var(--sp-sm);background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;display:flex}.bg-gallery-tag{border-radius:var(--radius-full);background:var(--bg-elevated);color:var(--accent);white-space:nowrap;padding:1px 7px;font-size:10px;font-weight:600}.bg-gallery-count{margin-top:var(--sp-md);font-size:var(--text-sm);color:var(--text-secondary);text-align:right}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-md);padding:var(--sp-xl);text-align:center;cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary);font-size:var(--text-md)}.upload-zone:hover{border-color:var(--accent);color:var(--text-primary);box-shadow:0 0 0 1px #4fbf6733}.upload-zone.dragover{border-color:var(--accent);background:var(--accent-muted);box-shadow:0 0 12px #4fbf6740}.upload-preview{gap:var(--sp-sm);margin-top:var(--sp-sm);flex-wrap:wrap;display:flex}.upload-preview img{object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border);width:80px;height:80px}.edit-attach-list{margin-bottom:var(--sp-sm)}.edit-attach-kept{gap:var(--sp-sm);margin-bottom:var(--sp-sm);flex-wrap:wrap;display:flex}.edit-attach-chip{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:4px;padding:4px;display:inline-flex;position:relative;overflow:hidden}.edit-attach-chip img{object-fit:cover;border-radius:4px;width:48px;height:48px}.edit-attach-chip span{font-size:var(--text-xs);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:80px;overflow:hidden}.edit-attach-remove{color:#fff;cursor:pointer;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:14px;line-height:1;display:flex;position:absolute;top:2px;right:2px}.edit-attach-remove:hover{background:var(--danger)}.profile-header{text-align:center;padding:var(--sp-xl)}.profile-avatar{background:var(--border);width:80px;height:80px;margin:0 auto var(--sp-md);border:3px solid var(--border);box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;font-size:28px;font-weight:600;display:flex;overflow:hidden}.profile-avatar img{object-fit:cover;width:100%;height:100%}.profile-bg{background:var(--bg-elevated);border-radius:var(--radius-md) var(--radius-md) 0 0;height:120px;margin:calc(-1 * var(--sp-lg)) calc(-1 * var(--sp-lg)) 0;background-position:50%;background-size:cover}.profile-user-tag-wrap{margin-top:6px;font-size:15px}.profile-user-tag{letter-spacing:.02em;font-size:15px;font-weight:600}.profile-user-tag-hint{color:var(--text-secondary);max-width:420px;margin-top:8px;margin-left:auto;margin-right:auto;font-size:12px;line-height:1.45}.profile-user-tag-input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-base);width:100%;max-width:320px;color:var(--text-primary);text-align:center;margin:8px auto 0;padding:8px 12px;font-size:14px;display:block}.notif-item{padding:10px var(--sp-lg);border-bottom:1px solid var(--bg-elevated);cursor:pointer;transition:background var(--transition-fast);border-left:3px solid #0000;align-items:center;gap:10px;display:flex}.notif-item:hover{background:var(--bg-elevated)}.notif-item.unread{background:var(--accent-muted);border-left-color:var(--accent)}.notif-item .notif-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite notif-pulse}.notif-item .notif-dot.read{background:0 0;animation:none}@keyframes notif-pulse{0%,to{opacity:1}50%{opacity:.5}}.notif-item .notif-text{font-size:var(--text-md);flex:1}.notif-item .notif-time{font-size:var(--text-xs);color:var(--text-secondary)}.notif-item .notif-clear{border:1px solid var(--border);color:var(--text-secondary);font-size:var(--text-xs);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:4px 8px}.notif-item .notif-clear:hover{color:var(--text-primary);border-color:var(--border-hover)}.notif-link{color:var(--accent);cursor:pointer}.notif-link:hover{text-decoration:underline}button.user-tag-link{font:inherit;color:var(--accent);cursor:pointer;text-align:inherit;vertical-align:baseline;background:0 0;border:none;margin:0;padding:0;display:inline}button.user-tag-link:hover,button.user-tag-link:focus-visible{outline:none;text-decoration:underline}button.user-tag-link.profile-user-tag.is-profile-handle{letter-spacing:.02em;font-weight:600}.attachments-header{justify-content:space-between;align-items:flex-start;gap:var(--sp-lg);display:flex}.attachment-feed{gap:var(--sp-md);flex-direction:column;display:flex}.attachment-card{gap:var(--sp-md);padding:var(--sp-md);grid-template-columns:140px 1fr;align-items:center;display:grid}.attachment-media img{object-fit:cover;border-radius:var(--radius-sm);background:var(--bg-elevated);cursor:pointer;width:140px;height:140px}.attachment-meta{flex-direction:column;gap:6px;display:flex}.attachment-title{font-size:var(--text-md);font-weight:600}.attachment-subtitle{font-size:var(--text-sm);color:var(--text-secondary)}.attachment-actions{gap:var(--sp-sm);display:flex}.dropzone{border:1px dashed var(--border);border-radius:var(--radius-sm);text-align:center;color:var(--text-secondary);background:var(--bg-elevated);padding:12px}.dropzone.dragover{border-color:var(--accent);color:var(--text-primary)}.user-card{align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-lg);border-bottom:1px solid var(--bg-elevated);transition:background var(--transition-fast);display:flex}.card.focused{border-color:var(--accent);box-shadow:0 0 0 2px #7193ff33}.user-card:hover{background:var(--bg-elevated)}.user-card .user-info{flex:1}.user-card .user-name{font-size:var(--text-md);font-weight:500}.user-card .user-email{font-size:var(--text-sm);color:var(--text-secondary)}.loading{text-align:center;color:var(--text-secondary);padding:40px}.app-boot-placeholder,.app-route-loading{animation:1.1s ease-in-out infinite app-route-pulse}@keyframes app-route-pulse{0%,to{opacity:.72}50%{opacity:1}}.error{text-align:center;color:var(--danger);padding:40px}.empty{text-align:center;color:var(--text-secondary);font-size:var(--text-md);padding:30px}.section-title{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--sp-sm);padding:0 var(--sp-xs)}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:50;background:#000c;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-xl);width:90%;max-width:500px;max-height:80vh;box-shadow:var(--shadow-lg);overflow-y:auto}.modal h3{margin-bottom:var(--sp-lg);font-size:var(--text-lg);font-weight:600}.modal-close{float:right;color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;font-size:20px}.modal-close:hover{color:var(--text-primary)}.img-lightbox{-webkit-backdrop-filter:blur(8px);z-index:60;cursor:pointer;background:#000000e6;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.img-lightbox.open{display:flex}.img-lightbox img{border-radius:var(--radius-md);max-width:90vw;max-height:90vh;box-shadow:var(--shadow-lg)}.offline-banner{background:var(--danger);color:#fff;padding:var(--sp-sm) var(--sp-lg);font-size:var(--text-sm);text-align:center;z-index:90;box-shadow:var(--shadow-md);font-weight:500;position:fixed;top:0;left:0;right:0}body.is-offline{padding-top:44px}.global-error-banner{background:var(--danger);color:#fff;padding:var(--sp-sm) var(--sp-lg);font-size:var(--text-sm);z-index:85;box-shadow:var(--shadow-md);justify-content:space-between;align-items:center;gap:12px;font-weight:500;display:flex;position:fixed;top:0;left:0;right:0}.global-error-banner[style*="display: none"]{display:none!important}.global-error-dismiss{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;flex-shrink:0;width:28px;height:28px;font-size:18px;line-height:1}.global-error-dismiss:hover{background:#ffffff4d}body.has-global-error{padding-top:44px}body.has-global-error.is-offline{padding-top:88px}.toast{background:var(--accent);color:var(--bg-primary);padding:var(--sp-sm) var(--sp-xl);border-radius:var(--radius-md);font-size:var(--text-md);z-index:100;opacity:0;transition:opacity var(--transition-normal), transform var(--transition-normal);pointer-events:none;box-shadow:var(--shadow-md);border-left:4px solid #0003;font-weight:600;position:fixed;bottom:20px;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toast.error{background:var(--danger);color:#fff;border-left-color:#0003}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}::selection{color:var(--text-primary);background:#4fbf674d}
