*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#0f0f1a;--card:#1a1a2e;--card-hover:#222240;--accent:#5b6abf;--accent-hover:#6e7dd4;--text:#e0e0e0;--text-dim:#888;--border:#2a2a40;--danger:#c0392b;--success:#27ae60;--radius:12px}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6}
a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}

/* Header */
header{background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px)}
.header-inner{max-width:700px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between}
.logo{font-size:1.3rem;font-weight:700;color:var(--text)!important;letter-spacing:-0.5px}
#nav-user{display:flex;align-items:center;gap:12px;font-size:.9rem}
#nav-user a{color:var(--text-dim)}#nav-user a:hover{color:var(--text)}

/* Main */
main{max-width:700px;margin:0 auto;padding:20px}

/* Composer */
.composer{background:var(--card);border-radius:var(--radius);padding:20px;margin-bottom:24px;border:1px solid var(--border)}
.composer textarea{width:100%;background:transparent;border:1px solid var(--border);border-radius:8px;padding:12px;color:var(--text);font-size:1rem;resize:vertical;min-height:80px;font-family:inherit}
.composer textarea:focus{outline:none;border-color:var(--accent)}
.composer-actions{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
.composer-actions input[type="text"]{flex:1;min-width:150px;background:transparent;border:1px solid var(--border);border-radius:8px;padding:8px 12px;color:var(--text);font-size:.85rem}
.composer-actions input[type="text"]:focus{outline:none;border-color:var(--accent)}
.file-label{cursor:pointer;padding:8px 14px;border-radius:8px;background:var(--border);color:var(--text-dim);font-size:.85rem;transition:.2s}
.file-label:hover{background:var(--accent);color:#fff}
.file-label input{display:none}
.file-preview{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.file-preview span{background:var(--border);padding:4px 10px;border-radius:6px;font-size:.8rem;color:var(--text-dim)}

/* Buttons */
.btn{padding:8px 20px;border-radius:8px;border:none;cursor:pointer;font-size:.9rem;font-weight:600;transition:.2s}
.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}
.btn-sm{padding:4px 10px;font-size:.8rem;border-radius:6px}
.btn-ghost{background:transparent;color:var(--text-dim);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}

/* Post */
.post{background:var(--card);border-radius:var(--radius);padding:20px;margin-bottom:16px;border:1px solid var(--border);transition:.2s}
.post:hover{border-color:var(--accent);background:var(--card-hover)}
.post-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;color:#fff;flex-shrink:0}
.post-meta{font-size:.85rem;color:var(--text-dim)}
.post-meta .username{color:var(--text);font-weight:600;cursor:pointer}
.post-meta .username:hover{color:var(--accent)}
.post-content{margin-bottom:12px;white-space:pre-wrap;word-break:break-word}

/* Media */
.post-media{margin-bottom:12px;display:flex;flex-direction:column;gap:10px}
.post-media img{max-width:100%;border-radius:8px;cursor:pointer}
.post-media video,.post-media audio{width:100%;border-radius:8px}
.post-media canvas{max-width:100%;border-radius:8px;background:#000}
.pdf-container{background:#222;border-radius:8px;padding:10px;text-align:center}
.pdf-nav{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:8px}
.pdf-nav button{background:var(--accent);color:#fff;border:none;padding:4px 12px;border-radius:6px;cursor:pointer}

/* Tags */
.post-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.tag-chip{display:inline-flex;align-items:center;gap:6px;background:var(--border);border-radius:20px;padding:4px 12px;font-size:.8rem;transition:.2s}
.tag-chip:hover{background:var(--accent);color:#fff}
.tag-name{color:var(--text)}
.tag-vote{cursor:pointer;opacity:.6;transition:.2s;font-size:.75rem}.tag-vote:hover{opacity:1}
.tag-vote.active-up{color:var(--success);opacity:1}
.tag-vote.active-down{color:var(--danger);opacity:1}
.tag-score{font-size:.75rem;color:var(--text-dim);min-width:16px;text-align:center}
.add-tag-inline{display:inline-flex;align-items:center;gap:4px}
.add-tag-inline input{background:transparent;border:1px solid var(--border);border-radius:20px;padding:4px 10px;color:var(--text);font-size:.8rem;width:100px}
.add-tag-inline input:focus{outline:none;border-color:var(--accent)}

/* Comments */
.post-footer{display:flex;align-items:center;gap:16px;font-size:.85rem;color:var(--text-dim)}
.post-footer span{cursor:pointer;transition:.2s}.post-footer span:hover{color:var(--accent)}
.comments-section{margin-top:12px;border-top:1px solid var(--border);padding-top:12px}
.comment{padding:8px 0;border-bottom:1px solid var(--border);font-size:.9rem}
.comment:last-child{border-bottom:none}
.comment-header{font-size:.8rem;color:var(--text-dim);margin-bottom:4px}
.comment-header .username{color:var(--text);font-weight:600}
.comment-form{display:flex;gap:8px;margin-top:8px}
.comment-form input{flex:1;background:transparent;border:1px solid var(--border);border-radius:8px;padding:8px;color:var(--text);font-size:.85rem}
.comment-form input:focus{outline:none;border-color:var(--accent)}

/* Profile */
.profile-header{background:var(--card);border-radius:var(--radius);padding:30px;margin-bottom:24px;border:1px solid var(--border);text-align:center}
.profile-header .avatar{width:80px;height:80px;font-size:2rem;margin:0 auto 12px}
.profile-header h2{margin-bottom:4px}
.profile-header .username{color:var(--text-dim);font-size:.9rem}

/* Loader */
.loader{text-align:center;padding:40px;color:var(--text-dim)}

/* Sort bar */
.sort-bar{display:flex;align-items:center;gap:8px;padding:12px 0;flex-wrap:wrap;font-size:0.85rem;color:var(--text-dim)}
.sort-btn{background:var(--card);border:1px solid var(--border);color:var(--text-dim);padding:5px 12px;border-radius:20px;cursor:pointer;font-size:0.8rem;transition:all 0.2s}
.sort-btn:hover{border-color:var(--accent);color:var(--text)}
.sort-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}

/* Tag comments */
.tag-chip{position:relative}
.tag-comment-btn{cursor:pointer;font-size:0.75rem;margin-left:2px;opacity:0.7;transition:opacity 0.2s}
.tag-comment-btn:hover{opacity:1}
.tag-comments-panel{position:absolute;top:100%;left:0;z-index:10;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:10px;min-width:250px;max-width:350px;margin-top:6px;box-shadow:0 4px 20px rgba(0,0,0,0.4)}
.tag-comments-list{max-height:200px;overflow-y:auto;margin-bottom:8px}
.tag-comment{padding:4px 0;border-bottom:1px solid var(--border);font-size:0.85rem}
.tag-comment:last-child{border-bottom:none}
.tag-comment .username{color:var(--accent);font-weight:600;margin-right:6px;font-size:0.8rem}
.tag-comment-text{color:var(--text)}
.tag-comment-empty{color:var(--text-dim);font-size:0.8rem;font-style:italic}
.tag-comment-form{display:flex;gap:6px}
.tag-comment-form input{flex:1;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:4px 8px;border-radius:6px;font-size:0.8rem}

/* Responsive */
@media(max-width:600px){main{padding:12px}.post{padding:14px}.composer{padding:14px}}
