*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff;--bg-secondary:#f5f5f5;--bg-reply:#f0f4ff;--text:#1a1a1a;--text-muted:#8a8a8e;--accent:#5b8cff;--accent-hover:#4a7aee;--danger:#ff3b30;--border:#e8e8e8;--radius:12px;--radius-sm:8px}@media (prefers-color-scheme:dark){:root{--bg:#1c1c1e;--bg-secondary:#2c2c2e;--bg-reply:#1e2436;--text:#f2f2f7;--text-muted:#8e8e93;--border:#3a3a3c}}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.4;overflow-x:hidden}#root{height:100%}.app{flex-direction:column;height:100dvh;display:flex}.app__header{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;align-items:center;gap:8px;padding:14px 16px 12px;display:flex;position:sticky;top:0}.app__title{font-size:17px;font-weight:600}.app__count{background:var(--accent);color:#fff;border-radius:20px;padding:2px 7px;font-size:12px;font-weight:600}.app__main{flex:1;padding:12px 0;overflow-y:auto}.app__footer{border-top:1px solid var(--border);background:var(--bg);padding:8px 0 0}.comment-list{flex-direction:column;display:flex}.comment{gap:10px;padding:10px 16px;display:flex}.comment--reply{padding:8px 0 0}.comment__body{flex:1;min-width:0}.comment__header{align-items:baseline;gap:6px;margin-bottom:3px;display:flex}.comment__name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.comment__time{color:var(--text-muted);flex-shrink:0;font-size:12px}.comment__text{word-break:break-word;white-space:pre-wrap;font-size:15px}.comment__image{border-radius:var(--radius-sm);cursor:pointer;object-fit:cover;max-width:100%;max-height:300px;margin-top:6px;display:block}.comment__actions{gap:12px;margin-top:4px;display:flex}.comment__btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.comment__btn:hover{color:var(--accent)}.comment__btn--danger:hover{color:var(--danger)}.comment__replies{border-left:2px solid var(--border);flex-direction:column;gap:4px;margin-top:8px;padding-left:12px;display:flex}.comment-form{padding:0 16px 12px}.comment-form__reply-banner{background:var(--bg-reply);border-radius:var(--radius-sm);color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:8px;padding:6px 10px;font-size:13px;display:flex}.comment-form__cancel{cursor:pointer;color:var(--text-muted);background:0 0;border:none;font-size:14px;line-height:1}.comment-form__row{align-items:flex-end;gap:10px;display:flex}.comment-form__input-wrap{background:var(--bg-secondary);border-radius:var(--radius);flex:1;min-width:0;padding:8px 12px}.comment-form__textarea{width:100%;color:var(--text);resize:none;background:0 0;border:none;outline:none;max-height:120px;font-family:inherit;font-size:15px;line-height:1.4;overflow-y:auto}.comment-form__textarea::placeholder{color:var(--text-muted)}.comment-form__preview{margin-bottom:6px;display:inline-block;position:relative}.comment-form__preview img{border-radius:var(--radius-sm);max-height:80px;display:block}.comment-form__remove-img{background:var(--text-muted);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:flex;position:absolute;top:-6px;right:-6px}.comment-form__toolbar{justify-content:space-between;align-items:center;padding-top:6px;display:flex}.comment-form__attach{cursor:pointer;background:0 0;border:none;padding:4px;font-size:20px;line-height:1}.comment-form__submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:20px;padding:8px 18px;font-size:14px;font-weight:600;transition:background .15s}.comment-form__submit:hover:not(:disabled){background:var(--accent-hover)}.comment-form__submit:disabled{opacity:.45;cursor:not-allowed}.empty{flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:60px 20px;display:flex}.empty__icon{font-size:48px}.empty__text{color:var(--text-muted);text-align:center;font-size:15px}.loader{justify-content:center;padding:40px;display:flex}.loader__spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-msg{color:var(--danger);text-align:center;padding:20px;font-size:14px}.error-screen{height:100dvh;color:var(--text-muted);text-align:center;justify-content:center;align-items:center;padding:20px;display:flex}
