*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary:#0d0d0d;--bg-secondary:#1a1a1a;--bg-tertiary:#262626;--text-primary:#e5e5e5;--text-secondary:#a3a3a3;--accent:#3b82f6;--accent-hover:#60a5fa;--border:#404040;--danger:#ef4444;--success:#22c55e}body,html{min-height:100vh;background:var(--bg-primary);color:var(--text-primary);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.container{max-width:1400px;margin:0 auto;padding:20px}header{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:1px solid var(--border);margin-bottom:30px}header h1{font-size:1.5rem;font-weight:700;letter-spacing:-.5px}header h1 span{color:var(--accent)}.nav-links{display:flex;gap:20px}.nav-links a{color:var(--text-secondary);text-decoration:none;font-size:.9rem;transition:color .2s}.nav-links a:hover{color:var(--text-primary)}.create-form{background:var(--bg-secondary);border:1px solid var(--border);padding:20px;margin-bottom:30px}.create-form h2{font-size:1.1rem;margin-bottom:15px;font-weight:600}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-bottom:12px}@media (max-width:600px){.form-row{grid-template-columns:1fr}}.create-form input,.create-form textarea{width:100%;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);padding:12px;font-family:inherit;font-size:.95rem;transition:border-color .2s}.create-form input:focus,.create-form textarea:focus{outline:none;border-color:var(--accent)}.create-form textarea{min-height:100px;resize:vertical}.form-actions{display:flex;gap:12px;margin-top:15px}.btn{padding:12px 24px;border:none;font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:var(--accent);color:white}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.file-input{display:flex;align-items:center;gap:10px}.file-input label{color:var(--text-secondary);font-size:.9rem}.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:20px;gap:20px}@media (max-width:600px){.catalog{grid-template-columns:repeat(2,1fr);gap:12px}}@media (min-width:900px){.catalog{grid-template-columns:repeat(4,1fr)}}@media (min-width:1200px){.catalog{grid-template-columns:repeat(5,1fr)}}.thread-card{background:var(--bg-secondary);border:1px solid var(--border);overflow:hidden;cursor:pointer;transition:transform .2s,border-color .2s}.thread-card:hover{transform:translateY(-2px);border-color:var(--accent)}.thread-image{width:100%;aspect-ratio:1;background:var(--bg-tertiary);object-fit:cover;display:block}.thread-info{padding:12px}.thread-subject{font-size:.95rem;font-weight:600;margin-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread-meta{font-size:.8rem;color:var(--text-secondary)}.thread-preview{display:none;position:fixed;max-width:400px;background:var(--bg-secondary);border:1px solid var(--border);padding:15px;z-index:1000;box-shadow:0 4px 20px rgba(0,0,0,.5);font-size:.9rem;line-height:1.6}.thread-preview.visible{display:block}.quote-ref{color:var(--accent);cursor:pointer}.quote-ref:hover{text-decoration:underline}.fab{display:none;position:fixed;bottom:20px;right:20px;width:56px;height:56px;background:var(--accent);border:none;border-radius:50%;cursor:pointer;box-shadow:0 4px 15px rgba(59,130,246,.4);z-index:100}@media (max-width:600px){.fab{display:flex;align-items:center;justify-content:center}}.fab svg{width:24px;height:24px;fill:white}.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:1000;align-items:center;justify-content:center;padding:20px}.modal.visible{display:flex}.modal-content{background:var(--bg-secondary);border:1px solid var(--border);max-width:600px;width:100%;max-height:80vh;overflow-y:auto;padding:20px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-close{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;cursor:pointer}.thread-view{padding:20px}.thread-op{background:var(--bg-secondary);border:1px solid var(--border);padding:15px;margin-bottom:20px}.thread-op-header{display:flex;gap:15px;margin-bottom:12px}.thread-op-image{max-width:300px;max-height:300px;object-fit:contain;cursor:pointer}.thread-op-image.expanded{max-width:100%;max-height:none}.thread-op-content{flex:1 1}.thread-op-subject{font-size:1.1rem;font-weight:700;margin-bottom:8px}.thread-op-comment{line-height:1.6;white-space:pre-wrap}.reply{background:var(--bg-tertiary);border:1px solid var(--border);padding:12px;margin-bottom:10px}.reply-header{display:flex;gap:10px;margin-bottom:8px;font-size:.85rem;color:var(--text-secondary)}.reply-image{max-width:150px;max-height:150px;object-fit:contain;cursor:pointer;margin-top:8px}.reply-image.expanded{max-width:100%;max-height:none}.reply-form{background:var(--bg-secondary);border:1px solid var(--border);padding:15px;margin-top:20px}.reply-form textarea{width:100%;min-height:80px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);padding:12px;font-family:inherit;font-size:.95rem;resize:vertical;margin-bottom:12px}.reply-form textarea:focus{outline:none;border-color:var(--accent)}.pending{opacity:.6;border-style:dashed}.loading{text-align:center;padding:40px;color:var(--text-secondary)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.loading:after{content:"...";animation:pulse 1s infinite}.reactions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.reaction-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);padding:4px 8px;font-size:.85rem;cursor:pointer;border-radius:4px;transition:all .2s}.reaction-btn:hover{border-color:var(--accent);color:var(--text-primary)}.reaction-btn.active{border-color:var(--accent);background:var(--accent);color:white}.thread-op-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-top:12px}.thread-op-footer .reactions{margin-top:0}.gallery-mode .thread-op{display:none}.gallery-mode .reply-image{max-width:100%;max-height:400px}