:root{--nsc-bg:#f0f2f5;--nsc-card:#fff;--nsc-border:#dce0e5;--nsc-text:#0f0f0f;--nsc-text2:#65676b;--nsc-text3:#8a8d91;--nsc-green:#064E3B;--nsc-green2:#059669;--nsc-accent:#2563eb;--nsc-hover:#f2f3f5;--nsc-sidebar:240px;--nsc-rside:300px}
[data-theme="dark"]{--nsc-bg:#18191a;--nsc-card:#242526;--nsc-border:#3a3b3c;--nsc-text:#e4e6eb;--nsc-text2:#b0b3b8;--nsc-text3:#6b6e73;--nsc-hover:#3a3b3c}
*{box-sizing:border-box}
body.nsc-body{margin:0;padding:0;background:var(--nsc-bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:var(--nsc-text);-webkit-font-smoothing:antialiased;line-height:1.5}
.nsc-header{position:sticky;top:0;z-index:100;background:var(--nsc-green);height:56px;display:flex;align-items:center;padding:0 16px;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.nsc-header-inner{max-width:1280px;width:100%;margin:0 auto;display:flex;align-items:center;gap:12px}
.nsc-logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:#fff;font-weight:800;font-size:1rem;flex-shrink:0}
.nsc-logo span{font-weight:400}.nsc-logo b{font-weight:800}
.nsc-header-search{flex:1;max-width:360px;position:relative;margin:0 16px}
.nsc-header-search input{width:100%;padding:8px 14px 8px 36px;border:none;border-radius:20px;background:rgba(255,255,255,.15);color:#fff;font-size:.86rem;font-family:inherit;outline:none}
.nsc-header-search input::placeholder{color:rgba(255,255,255,.6)}
.nsc-header-search input:focus{background:rgba(255,255,255,.25)}
.nsc-header-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:rgba(255,255,255,.6)}
.nsc-header-right{display:flex;align-items:center;gap:6px;margin-left:auto}
.nsc-hdr-btn{width:36px;height:36px;border:none;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:.95rem;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:.15s}
.nsc-hdr-btn:hover{background:rgba(255,255,255,.22)}
.nsc-hdr-badge{position:absolute;top:0;right:0;min-width:16px;height:16px;padding:0 4px;background:#dc2626;color:#fff;border-radius:10px;font-size:.58rem;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--nsc-green)}
.nsc-user-btn{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border:none;border-radius:20px;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;font-family:inherit;font-size:.82rem;font-weight:600}
.nsc-user-btn:hover{background:rgba(255,255,255,.22)}
.nsc-user-av-sm{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;flex-shrink:0}
.nsc-hamburger{display:none;width:36px;height:36px;border:none;background:rgba(255,255,255,.12);color:#fff;border-radius:50%;font-size:1.2rem;cursor:pointer;align-items:center;justify-content:center}
.nsc-theme-btn{width:36px;height:36px;border:none;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.nsc-layout{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:var(--nsc-sidebar) 1fr var(--nsc-rside);gap:16px;padding:16px;min-height:calc(100vh - 116px)}
.nsc-left{position:sticky;top:72px;max-height:calc(100vh - 88px);overflow-y:auto;-webkit-overflow-scrolling:touch}
.nsc-left::-webkit-scrollbar{width:4px}.nsc-left::-webkit-scrollbar-thumb{background:var(--nsc-border);border-radius:4px}
.nsc-profile-mini{display:flex;align-items:center;gap:10px;padding:12px;background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;margin-bottom:8px}
.nsc-profile-mini-info strong{display:block;font-size:.86rem}
.nsc-profile-mini-info span{font-size:.72rem;color:var(--nsc-text2)}
.nsc-left-nav{background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;padding:6px;margin-bottom:8px}
.nsc-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;width:100%;background:none;color:var(--nsc-text);font-size:.88rem;font-weight:500;cursor:pointer;border-radius:8px;font-family:inherit;text-align:left;transition:.1s;position:relative}
.nsc-nav-item:hover{background:var(--nsc-hover)}
.nsc-nav-item.active{background:rgba(6,78,59,.08);color:var(--nsc-green);font-weight:700}
[data-theme="dark"] .nsc-nav-item.active{background:rgba(5,150,105,.1);color:#34d399}
.nsc-nav-item .nsc-ico{width:24px;text-align:center;font-size:1.05rem}
.nsc-nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;background:#dc2626;color:#fff;border-radius:10px;font-size:.6rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.nsc-left-groups{background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;padding:12px}
.nsc-left-groups-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--nsc-text3);margin-bottom:8px}
.nsc-left-grp{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:.82rem;color:var(--nsc-text);transition:.1s}
.nsc-left-grp:hover{background:var(--nsc-hover)}
.nsc-left-grp .nsc-ico{font-size:.9rem}
.nsc-left-logout{display:block;padding:10px 12px;margin-top:8px;border:none;width:100%;background:none;color:var(--nsc-text3);font-size:.82rem;cursor:pointer;border-radius:8px;font-family:inherit;text-align:left}
.nsc-left-logout:hover{background:var(--nsc-hover);color:#dc2626}
.nsc-center{min-width:0}
.nsc-compose{background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;padding:14px;margin-bottom:12px}
.nsc-compose-row{display:flex;gap:10px;align-items:flex-start}
.nsc-compose-input{flex:1;min-height:40px;max-height:200px;overflow-y:auto;padding:8px 14px;background:var(--nsc-hover);border-radius:20px;font-size:.9rem;outline:none;color:var(--nsc-text);line-height:1.5}
.nsc-compose-input:empty::before{content:attr(data-placeholder);color:var(--nsc-text3);pointer-events:none}
.nsc-compose-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid var(--nsc-border)}
.nsc-compose-tools{display:flex;gap:4px;flex-wrap:wrap}
.nsc-compose-tag{font-size:.72rem;color:var(--nsc-text2);cursor:pointer;padding:5px 10px;border-radius:6px;background:var(--nsc-hover);transition:.1s;border:none;font-family:inherit}
.nsc-compose-tag:hover{background:var(--nsc-border)}
.nsc-compose-tag.active{background:var(--nsc-green)!important;color:#fff!important}
.nsc-compose-actions{display:flex;align-items:center;gap:10px}
.nsc-posts-left{font-size:.68rem;color:var(--nsc-text3)}
.nsc-post-btn{padding:8px 22px;background:var(--nsc-green);color:#fff;border:none;border-radius:8px;font-size:.84rem;font-weight:700;cursor:pointer;font-family:inherit;transition:.15s}
.nsc-post-btn:hover{background:var(--nsc-green2)}
.nsc-post-btn:disabled{opacity:.5;cursor:not-allowed}
.nsc-post{background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;padding:16px;margin-bottom:12px}
.nsc-post-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.nsc-post-meta{flex:1;min-width:0}
.nsc-post-meta strong{display:block;font-size:.88rem}
.nsc-post-meta span{font-size:.72rem;color:var(--nsc-text3)}
.nsc-post-menu{width:28px;height:28px;border:none;background:none;color:var(--nsc-text3);font-size:1.2rem;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center}
.nsc-post-menu:hover{background:var(--nsc-hover)}
.nsc-post-content{font-size:.9rem;line-height:1.65;margin-bottom:10px;word-wrap:break-word}
.nsc-post-image{margin:0 -16px 10px;overflow:hidden}
.nsc-post-image img{display:block;width:100%;max-height:500px;object-fit:cover}
.nsc-hashtag{color:var(--nsc-accent);font-weight:600;cursor:pointer;background:none;border:none;padding:0;font-family:inherit;font-size:inherit;display:inline;line-height:inherit;text-decoration:none}
.nsc-hashtag:hover{text-decoration:underline}
.nsc-mention{color:#7c3aed;font-weight:600;cursor:pointer;text-decoration:none}
.nsc-mention:hover{text-decoration:underline}
.nsc-post-actions{display:flex;gap:2px;padding-top:10px;border-top:1px solid var(--nsc-border)}
.nsc-action-btn{display:flex;align-items:center;gap:4px;padding:7px 12px;border:none;background:none;color:var(--nsc-text2);font-size:.82rem;cursor:pointer;border-radius:6px;font-family:inherit;transition:.1s;flex:1;justify-content:center}
.nsc-action-btn:hover{background:var(--nsc-hover)}
.nsc-action-btn.reacted{color:var(--nsc-accent);font-weight:700}
.nsc-action-btn span{font-size:.74rem}
.nsc-reaction-wrap{position:relative;flex:1}
.nsc-reaction-wrap .nsc-action-btn{width:100%}
.nsc-reaction-picker{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:24px;padding:4px 6px;display:flex;gap:2px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:10}
.nsc-reaction-picker button{width:34px;height:34px;border:none;background:none;font-size:1.15rem;cursor:pointer;border-radius:50%;transition:.1s;display:flex;align-items:center;justify-content:center}
.nsc-reaction-picker button:hover{background:var(--nsc-hover);transform:scale(1.25)}
.nsc-comments-section{margin-top:10px;padding-top:10px;border-top:1px solid var(--nsc-border)}
.nsc-comments-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;max-height:280px;overflow-y:auto}
.nsc-comment{padding:8px 12px;background:var(--nsc-hover);border-radius:12px}
.nsc-comment-header{display:flex;align-items:center;gap:6px;margin-bottom:3px;font-size:.78rem}
.nsc-comment-header strong{font-size:.8rem}
.nsc-comment-header span{color:var(--nsc-text3);font-size:.66rem}
.nsc-comment-body{font-size:.84rem;line-height:1.5}
.nsc-comment-actions{display:flex;gap:8px;margin-top:3px}
.nsc-comment-actions button{border:none;background:none;font-size:.7rem;color:var(--nsc-text3);cursor:pointer;padding:2px 4px;font-family:inherit}
.nsc-comment-actions button.reacted{color:var(--nsc-accent)}
.nsc-quoted{padding:6px 10px;background:var(--nsc-border);border-left:3px solid var(--nsc-text3);border-radius:6px;margin-bottom:5px;font-size:.78rem;color:var(--nsc-text2)}
.nsc-comment-compose{display:flex;gap:8px;align-items:center}
.nsc-comment-input{flex:1;padding:9px 14px;border:1px solid var(--nsc-border);border-radius:20px;font-size:.84rem;font-family:inherit;background:var(--nsc-hover);color:var(--nsc-text);outline:none}
.nsc-comment-input:focus{border-color:var(--nsc-green)}
.nsc-comment-send{width:34px;height:34px;border:none;background:var(--nsc-green);color:#fff;border-radius:50%;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nsc-shared-post{border:1px solid var(--nsc-border);border-radius:10px;padding:12px;margin-bottom:10px;background:var(--nsc-hover)}
.nsc-shared-header{font-size:.78rem;margin-bottom:4px}
.nsc-shared-header strong{color:var(--nsc-text)}.nsc-shared-header span{color:var(--nsc-text3)}
.nsc-shared-body{font-size:.84rem;color:var(--nsc-text2);line-height:1.5}
.nsc-promoted-post{border-color:#fde68a!important}
.nsc-promo-label{font-size:.64rem;font-weight:700;color:#92400e;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;background:#fef3c7;border-radius:6px;display:inline-block;margin-bottom:6px}
[data-theme="dark"] .nsc-promo-label{background:rgba(245,158,11,.1);color:#fbbf24}
.nsc-feed-loading{text-align:center;padding:48px;color:var(--nsc-text3)}
.nsc-spinner{display:inline-block;width:28px;height:28px;border:3px solid var(--nsc-border);border-top-color:var(--nsc-green2);border-radius:50%;animation:nscSpin .6s linear infinite;margin-bottom:8px}
@keyframes nscSpin{to{transform:rotate(360deg)}}
.nsc-load-more{text-align:center;padding:12px}
.nsc-load-more-btn{padding:10px 28px;border:1px solid var(--nsc-border);border-radius:8px;background:var(--nsc-card);color:var(--nsc-text);font-size:.84rem;font-weight:600;cursor:pointer;font-family:inherit}
.nsc-load-more-btn:hover{background:var(--nsc-hover)}
.nsc-right{position:sticky;top:72px;max-height:calc(100vh - 88px);overflow-y:auto}
.nsc-right::-webkit-scrollbar{width:4px}.nsc-right::-webkit-scrollbar-thumb{background:var(--nsc-border);border-radius:4px}
.nsc-widget{background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;padding:14px;margin-bottom:12px}
.nsc-widget-title{font-size:.82rem;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.nsc-suggest-list{display:flex;flex-direction:column;gap:6px}
.nsc-suggest-card{display:flex;align-items:center;gap:8px;padding:6px 0}
.nsc-suggest-info{flex:1;min-width:0}
.nsc-suggest-info strong{display:block;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nsc-suggest-info span{display:block;font-size:.68rem;color:var(--nsc-text3)}
.nsc-suggest-info small{display:block;font-size:.62rem;color:var(--nsc-accent);margin-top:1px}
.nsc-follow-btn{padding:5px 14px;background:var(--nsc-green);color:#fff;border:none;border-radius:6px;font-size:.7rem;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap}
.nsc-follow-btn:hover{background:var(--nsc-green2)}
.nsc-unfollow-btn{padding:5px 14px;background:var(--nsc-hover);color:var(--nsc-text2);border:1px solid var(--nsc-border);border-radius:6px;font-size:.7rem;font-weight:700;cursor:pointer;font-family:inherit;white-space:nowrap}
.nsc-pro-cta{background:linear-gradient(135deg,var(--nsc-green),var(--nsc-green2));border:none!important;color:#fff;text-align:center;padding:20px!important}
.nsc-pro-cta h4{margin:0 0 4px;font-size:.92rem}.nsc-pro-cta p{margin:0 0 12px;font-size:.78rem;color:#a7f3d0}
.nsc-pro-cta-btn{display:inline-block;padding:8px 24px;background:#fff;color:var(--nsc-green);border-radius:8px;font-size:.82rem;font-weight:800;text-decoration:none;cursor:pointer;border:none;font-family:inherit}
.nsc-panel{background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;padding:20px;animation:nscFadeIn .2s}
@keyframes nscFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.nsc-sec-title{font-size:.82rem;font-weight:700;margin-bottom:10px}
.nsc-profile-card{overflow:hidden;border-radius:12px;border:1px solid var(--nsc-border)}
.nsc-profile-header{display:flex;align-items:center;gap:14px;padding:20px;background:linear-gradient(135deg,var(--nsc-green),var(--nsc-green2));color:#fff}
.nsc-profile-info strong{display:block;font-size:1rem}.nsc-profile-info span{font-size:.78rem;color:#a7f3d0}
.nsc-profile-stats{display:flex;text-align:center;border-bottom:1px solid var(--nsc-border)}
.nsc-profile-stats>div{flex:1;padding:14px 8px}
.nsc-profile-stats strong{display:block;font-size:1.1rem;font-weight:800}
.nsc-profile-stats span{font-size:.66rem;color:var(--nsc-text3);text-transform:uppercase;font-weight:600}
.nsc-profile-details{padding:16px 20px}.nsc-profile-details p{margin:0 0 5px;font-size:.84rem;color:var(--nsc-text2)}
.nsc-profile-bio{padding:0 20px 20px}
.nsc-profile-bio label{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--nsc-text3);display:block;margin-bottom:4px}
.nsc-profile-bio textarea{width:100%;padding:10px;border:1px solid var(--nsc-border);border-radius:8px;font-size:.84rem;font-family:inherit;resize:vertical;min-height:50px;color:var(--nsc-text);background:var(--nsc-card);box-sizing:border-box}
.nsc-btn-sm{padding:7px 16px;border:none;border-radius:6px;background:var(--nsc-green);color:#fff;font-size:.78rem;font-weight:700;cursor:pointer;font-family:inherit;margin-top:6px}
.nsc-plans-header{text-align:center;margin-bottom:20px}
.nsc-plans-header h3{margin:0 0 4px;font-size:1.15rem;font-weight:800}
.nsc-plans-header p{margin:0;font-size:.84rem;color:var(--nsc-text2)}
.nsc-plans{display:flex;gap:14px;flex-wrap:wrap}
.nsc-plan{flex:1;min-width:220px;background:var(--nsc-card);border:2px solid var(--nsc-border);border-radius:14px;padding:24px;position:relative}
.nsc-plan-best{border-color:#f59e0b}
.nsc-plan-badge{position:absolute;top:-10px;left:20px;padding:3px 10px;background:#f59e0b;color:#fff;border-radius:6px;font-size:.66rem;font-weight:700}
.nsc-plan-name{font-size:.8rem;font-weight:700;color:var(--nsc-text2);text-transform:uppercase;letter-spacing:.04em}
.nsc-plan-price{font-size:1.5rem;font-weight:900;margin:4px 0}
.nsc-plan-price span{font-size:.78rem;font-weight:500;color:var(--nsc-text3)}
.nsc-plan-save{font-size:.78rem;color:var(--nsc-green2);font-weight:700;margin-bottom:12px}
.nsc-plan ul{list-style:none;padding:0;margin:0 0 16px}.nsc-plan li{padding:3px 0;font-size:.82rem;color:var(--nsc-text2)}
.nsc-plan-btn{width:100%;padding:12px;border:1.5px solid var(--nsc-green);border-radius:8px;background:var(--nsc-card);color:var(--nsc-green);font-size:.86rem;font-weight:700;cursor:pointer;font-family:inherit}
.nsc-plan-btn:hover,.nsc-plan-btn-primary{background:var(--nsc-green);color:#fff;border-color:var(--nsc-green)}
.nsc-pro-status{text-align:center;padding:24px}
.nsc-pro-status-icon{font-size:2.5rem;margin-bottom:8px}
.nsc-pro-status h3{margin:0 0 4px;font-size:1.1rem}
.nsc-pro-status p{margin:0 0 14px;font-size:.86rem;color:var(--nsc-text2)}
.nsc-pro-perks{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.nsc-pro-perks div{font-size:.78rem;padding:5px 12px;background:rgba(6,78,59,.06);border-radius:20px;color:var(--nsc-green)}
[data-theme="dark"] .nsc-pro-perks div{background:rgba(5,150,105,.1);color:#34d399}
.nsc-lb-tabs{display:flex;gap:6px;margin-bottom:12px}
.nsc-lb-tab{padding:6px 14px;border:1px solid var(--nsc-border);border-radius:6px;background:var(--nsc-card);font-size:.78rem;font-weight:700;color:var(--nsc-text2);cursor:pointer;font-family:inherit}
.nsc-lb-tab.active{background:var(--nsc-green);color:#fff;border-color:var(--nsc-green)}
.nsc-lb-row{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;margin-bottom:3px}
.nsc-lb-row:hover{background:var(--nsc-hover)}
.nsc-lb-me{background:rgba(6,78,59,.04);border:1.5px solid rgba(6,78,59,.12)}
[data-theme="dark"] .nsc-lb-me{background:rgba(5,150,105,.06);border-color:rgba(52,211,153,.15)}
.nsc-lb-medal{font-size:1.1rem;width:24px;text-align:center;flex-shrink:0}
.nsc-lb-rank{width:24px;text-align:center;font-size:.82rem;font-weight:800;color:var(--nsc-text3);flex-shrink:0}
.nsc-lb-info{flex:1;min-width:0}
.nsc-lb-info strong{display:block;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nsc-lb-info span{font-size:.68rem;color:var(--nsc-text3)}
.nsc-lb-score{text-align:right;font-size:.95rem;font-weight:800;color:var(--nsc-green);flex-shrink:0}
[data-theme="dark"] .nsc-lb-score{color:#34d399}
.nsc-lb-score small{display:block;font-size:.58rem;color:var(--nsc-text3);font-weight:600}
.nsc-grp-card{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:10px;margin-bottom:6px;cursor:pointer;transition:.15s}
.nsc-grp-card:hover{border-color:var(--nsc-green)}
.nsc-grp-icon{width:36px;height:36px;background:rgba(6,78,59,.06);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}
[data-theme="dark"] .nsc-grp-icon{background:rgba(5,150,105,.1)}
.nsc-grp-info{flex:1;min-width:0}
.nsc-grp-info strong{display:block;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nsc-grp-info span{font-size:.7rem;color:var(--nsc-text3)}
.nsc-grp-badge{display:inline-block;padding:1px 7px;background:var(--nsc-green2);color:#fff;border-radius:8px;font-size:.58rem;font-weight:700;margin-left:4px;vertical-align:middle}
.nsc-grp-join,.nsc-grp-leave{padding:5px 14px;border-radius:6px;font-size:.72rem;font-weight:700;cursor:pointer;font-family:inherit;border:none;flex-shrink:0}
.nsc-grp-join{background:var(--nsc-green);color:#fff}.nsc-grp-join:disabled{opacity:.4;cursor:not-allowed}
.nsc-grp-leave{background:var(--nsc-hover);color:var(--nsc-text2);border:1px solid var(--nsc-border)}
.nsc-back-btn{border:none;background:none;color:var(--nsc-accent);font-size:.86rem;font-weight:700;cursor:pointer;font-family:inherit;padding:4px 0}
.nsc-dm-convo{display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;cursor:pointer;transition:.1s}
.nsc-dm-convo:hover{background:var(--nsc-hover)}
.nsc-dm-convo-info{flex:1;min-width:0}
.nsc-dm-convo-top{display:flex;justify-content:space-between}
.nsc-dm-convo-top strong{font-size:.84rem}.nsc-dm-convo-top span{font-size:.66rem;color:var(--nsc-text3)}
.nsc-dm-convo-preview{font-size:.76rem;color:var(--nsc-text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;display:flex;align-items:center;gap:6px}
.nsc-dm-unread-dot{width:8px;height:8px;background:var(--nsc-accent);border-radius:50%;flex-shrink:0}
.nsc-dm-chat-header{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--nsc-border);margin-bottom:10px}
.nsc-dm-chat-messages{max-height:400px;overflow-y:auto;padding:8px 0;display:flex;flex-direction:column;gap:4px}
.nsc-dm-mine,.nsc-dm-theirs{display:flex;max-width:75%}
.nsc-dm-mine{margin-left:auto}
.nsc-dm-bubble{padding:9px 14px;border-radius:18px;font-size:.86rem;line-height:1.5;word-wrap:break-word}
.nsc-dm-mine .nsc-dm-bubble{background:var(--nsc-green);color:#fff;border-bottom-right-radius:4px}
.nsc-dm-theirs .nsc-dm-bubble{background:var(--nsc-hover);color:var(--nsc-text);border-bottom-left-radius:4px}
.nsc-dm-time{display:block;font-size:.6rem;margin-top:3px;opacity:.7}.nsc-dm-read{color:#34d399}
.nsc-dm-chat-compose{display:flex;gap:8px;padding-top:10px;border-top:1px solid var(--nsc-border);margin-top:10px}
.nsc-dm-chat-compose input{flex:1;padding:10px 16px;border:1px solid var(--nsc-border);border-radius:20px;font-size:.86rem;font-family:inherit;outline:none;background:var(--nsc-hover);color:var(--nsc-text)}
.nsc-dm-chat-compose input:focus{border-color:var(--nsc-green)}
.nsc-dm-chat-compose button{width:38px;height:38px;border:none;background:var(--nsc-green);color:#fff;border-radius:50%;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.nsc-question-card{background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;padding:16px;margin-bottom:10px;border-left:4px solid #f59e0b}
.nsc-q-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.nsc-q-meta{flex:1;min-width:0}
.nsc-q-meta strong{display:block;font-size:.84rem}.nsc-q-meta span{font-size:.7rem;color:var(--nsc-text3)}
.nsc-q-bounty{padding:3px 10px;background:#fef3c7;color:#92400e;border-radius:20px;font-size:.7rem;font-weight:800;flex-shrink:0}
[data-theme="dark"] .nsc-q-bounty{background:rgba(245,158,11,.1);color:#fbbf24}
.nsc-q-content{font-size:.88rem;line-height:1.6;margin-bottom:10px}
.nsc-q-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid var(--nsc-border)}
.nsc-q-footer span{font-size:.78rem;color:var(--nsc-text3)}
.nsc-q-answer-btn{padding:5px 16px;background:#f59e0b;color:#fff;border:none;border-radius:6px;font-size:.74rem;font-weight:700;cursor:pointer;font-family:inherit}
.nsc-poll-option{display:block;width:100%;padding:10px 14px;margin-bottom:5px;border:1px solid var(--nsc-border);border-radius:8px;background:var(--nsc-card);font-size:.86rem;text-align:left;cursor:pointer;font-family:inherit;color:var(--nsc-text);transition:.15s}
.nsc-poll-option:hover{border-color:var(--nsc-green)}
.nsc-poll-result{position:relative;padding:10px 14px;margin-bottom:5px;border:1px solid var(--nsc-border);border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:space-between}
.nsc-poll-bar{position:absolute;top:0;left:0;height:100%;background:rgba(6,78,59,.06);z-index:0;transition:width .4s}
[data-theme="dark"] .nsc-poll-bar{background:rgba(5,150,105,.08)}
.nsc-poll-opt-text{position:relative;z-index:1;font-size:.84rem;font-weight:600}
.nsc-poll-pct{position:relative;z-index:1;font-size:.82rem;font-weight:800;color:var(--nsc-green)}
[data-theme="dark"] .nsc-poll-pct{color:#34d399}
.nsc-poll-total{font-size:.7rem;color:var(--nsc-text3);margin-top:4px}
.nsc-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px}
.nsc-modal{background:var(--nsc-card);border-radius:14px;max-width:420px;width:100%;max-height:80vh;overflow-y:auto;padding:24px;position:relative}
.nsc-modal-close{position:absolute;top:10px;right:14px;border:none;background:none;font-size:1.2rem;cursor:pointer;color:var(--nsc-text3);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.nsc-modal-close:hover{background:var(--nsc-hover)}
.nsc-report-reasons label{display:block;padding:8px 12px;margin-bottom:3px;border:1px solid var(--nsc-border);border-radius:6px;font-size:.84rem;cursor:pointer}
.nsc-report-reasons label:hover{border-color:var(--nsc-green)}
.nsc-report-reasons input{margin-right:8px}
.nsc-promo-plan{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border:1px solid var(--nsc-border);border-radius:8px;margin-bottom:5px}
.nsc-promo-plan strong{font-size:.84rem;flex:1}.nsc-promo-plan span{font-size:.84rem;font-weight:800;color:var(--nsc-green);margin-right:10px}
.nsc-promo-select{padding:5px 12px;background:var(--nsc-green);color:#fff;border:none;border-radius:6px;font-size:.72rem;font-weight:700;cursor:pointer;font-family:inherit}
.nsc-login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}
.nsc-login-card{background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:16px;max-width:440px;width:100%;text-align:center;overflow:hidden}
.nsc-login-hero{background:linear-gradient(135deg,var(--nsc-green),var(--nsc-green2));padding:36px 32px;color:#fff}
.nsc-login-hero h2{margin:0 0 6px;font-size:1.3rem}.nsc-login-hero p{margin:0;font-size:.86rem;color:#a7f3d0}
.nsc-login-body{padding:28px 32px}
.nsc-login-body p{margin:0 0 20px;font-size:.9rem;color:var(--nsc-text2);line-height:1.6}
.nsc-login-btn{display:inline-block;padding:14px 36px;background:var(--nsc-green);color:#fff;border-radius:10px;text-decoration:none;font-weight:700;font-size:.94rem}
.nsc-login-btn:hover{background:var(--nsc-green2)}
.nsc-footer{text-align:center;padding:20px;font-size:.74rem;color:var(--nsc-text3);border-top:1px solid var(--nsc-border);margin-top:16px}
.nsc-footer a{color:var(--nsc-text2);text-decoration:none;margin:0 8px}
.nsc-footer a:hover{color:var(--nsc-green)}
@media(max-width:1024px){
.nsc-layout{grid-template-columns:1fr;gap:0;padding:8px}
.nsc-left{display:none;position:fixed;top:56px;left:0;bottom:0;width:280px;z-index:99;background:var(--nsc-bg);padding:12px;overflow-y:auto;box-shadow:4px 0 20px rgba(0,0,0,.15)}
.nsc-left.open{display:block}
.nsc-overlay{display:none;position:fixed;top:56px;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:98}
.nsc-overlay.open{display:block}
.nsc-right{display:none}.nsc-hamburger{display:flex}
.nsc-header-search{margin:0 8px}
}
@media(max-width:480px){
.nsc-header{padding:0 8px}.nsc-header-search input{font-size:.82rem;padding:7px 12px 7px 32px}
.nsc-user-btn span:not(.nsc-user-av-sm){display:none}
.nsc-compose,.nsc-post{border-radius:0;border-left:none;border-right:none;margin-bottom:8px}
.nsc-dm-mine,.nsc-dm-theirs{max-width:85%}
}

/* ═════════════════════════════════════════════════════
   ICONS (v2.0.3): inline SVGs replace legacy emoji entities.
   Icons inherit colour from the parent via stroke="currentColor".
   Default size is 1em; per-context sizes below keep specific
   surfaces consistent regardless of the parent font-size.
   ═════════════════════════════════════════════════════ */
.nsc-icon{display:inline-block;vertical-align:-0.125em;flex-shrink:0;line-height:1}
.nsc-hdr-btn>.nsc-icon,.nsc-hamburger>.nsc-icon,.nsc-theme-btn>.nsc-icon{width:20px;height:20px;vertical-align:middle}
.nsc-nav-item .nsc-ico>.nsc-icon,.nsc-left-grp .nsc-ico>.nsc-icon{width:16px;height:16px}
.nsc-left-logout>.nsc-icon{width:14px;height:14px;margin-right:4px}
.nsc-action-btn>.nsc-icon{width:18px;height:18px}
.nsc-sec-title>.nsc-icon,.nsc-widget-title>.nsc-icon{width:15px;height:15px;vertical-align:-0.22em;margin-right:2px}
.nsc-compose-tag>.nsc-icon{width:13px;height:13px;vertical-align:-0.22em}
.nsc-tab>.nsc-icon{width:16px;height:16px;vertical-align:-0.22em}
.nsc-grp-icon>.nsc-icon{width:20px;height:20px;color:var(--nsc-green)}
[data-theme="dark"] .nsc-grp-icon>.nsc-icon{color:#34d399}
.nsc-notif-icon>.nsc-icon{width:22px;height:22px;color:var(--nsc-green)}
[data-theme="dark"] .nsc-notif-icon>.nsc-icon{color:#34d399}
.nsc-comment-send>.nsc-icon,.nsc-dm-chat-compose button>.nsc-icon,#nsc-dm-send>.nsc-icon{width:16px;height:16px}
.nsc-back-btn>.nsc-icon{width:18px;height:18px;vertical-align:-0.3em}
.nsc-dm-read>.nsc-icon{width:12px;height:12px;vertical-align:-0.15em}
.nsc-lb-medal{width:28px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.nsc-pro-status-icon>.nsc-icon{color:#f59e0b}
/* Drop the emoji-era font-size rules that no longer affect SVG output */
.nsc-lb-medal{font-size:0}

/* ═════════════════════════════════════════════════════
   PROFILES (v2.0.4): clickable names/avatars, hover
   cards, and the user-profile panel opened in-place.
   ═════════════════════════════════════════════════════ */

/* Link variants wrapping display_name / @handle / avatar */
.nsc-user-link,
.nsc-user-handle,
.nsc-user-avatar-link{text-decoration:none;color:inherit;cursor:pointer}
.nsc-user-link:hover{color:var(--nsc-accent);text-decoration:underline}
.nsc-user-handle{color:var(--nsc-text3)}
.nsc-user-handle:hover{color:var(--nsc-accent);text-decoration:underline}
.nsc-user-avatar-link{display:inline-block;transition:transform .1s;flex-shrink:0;line-height:0}
.nsc-user-avatar-link:hover .nsc-avatar,
.nsc-user-avatar-link:focus-visible .nsc-avatar{box-shadow:0 0 0 2px var(--nsc-accent)}

/* Sidebar profile-mini now a <button>; reset defaults, add hover. */
.nsc-profile-mini{cursor:pointer;width:100%;text-align:left;font-family:inherit;color:var(--nsc-text);transition:.15s}
.nsc-profile-mini:hover{border-color:var(--nsc-green);background:var(--nsc-hover)}
[data-theme="dark"] .nsc-profile-mini:hover{border-color:#059669}
.nsc-profile-mini:focus-visible{outline:2px solid var(--nsc-accent);outline-offset:1px}

/* Leaderboard row: name + handle stack cleanly inside the anchor */
.nsc-lb-info .nsc-user-link{display:block}
.nsc-lb-info .nsc-user-link strong{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.nsc-lb-info .nsc-user-handle{font-size:.68rem;display:block}

/* Comment/post author name should stay inline with time meta */
.nsc-post-meta .nsc-user-link{display:block}
.nsc-comment-header .nsc-user-link{font-weight:inherit}

/* ─── Hover card (floating tooltip) ─── */
.nsc-hover-card{position:absolute;z-index:1000;width:280px;background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.18);padding:14px;color:var(--nsc-text);font-size:.82rem;pointer-events:auto}
[data-theme="dark"] .nsc-hover-card{box-shadow:0 8px 28px rgba(0,0,0,.55)}
.nsc-hc-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.nsc-hc-ident{min-width:0;flex:1}
.nsc-hc-ident strong{display:block;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nsc-hc-ident span{font-size:.74rem;color:var(--nsc-text3)}
.nsc-hc-pro{display:inline-flex;align-items:center;padding:1px 6px;background:#fef3c7;color:#92400e;border-radius:20px;margin-left:4px;vertical-align:middle;font-size:.66rem;font-weight:700}
[data-theme="dark"] .nsc-hc-pro{background:rgba(251,191,36,.15);color:#fcd34d}
.nsc-hc-bio{margin:4px 0 10px;font-size:.78rem;color:var(--nsc-text2);line-height:1.45}
.nsc-hc-stats{display:flex;gap:14px;padding:8px 0;border-top:1px solid var(--nsc-border);font-size:.72rem;color:var(--nsc-text3)}
.nsc-hc-stats strong{color:var(--nsc-text);font-weight:700;margin-right:2px}
.nsc-hc-actions{margin-top:10px;display:flex;gap:6px}
.nsc-hc-btn{flex:1;padding:7px;border:none;border-radius:6px;background:var(--nsc-green);color:#fff;font-size:.76rem;font-weight:700;cursor:pointer;font-family:inherit;transition:.1s}
.nsc-hc-btn:hover{background:var(--nsc-green2)}
.nsc-hc-btn-sec{background:var(--nsc-hover);color:var(--nsc-text2);border:1px solid var(--nsc-border)}
.nsc-hc-btn-sec:hover{background:var(--nsc-border);color:var(--nsc-text)}

/* ─── User profile panel (opened in-place) ─── */
.nsc-user-profile{background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;padding:18px}
.nsc-user-profile .nsc-back-btn{margin-bottom:12px}
.nsc-up-header{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.nsc-up-header .nsc-avatar{box-shadow:0 2px 8px rgba(0,0,0,.08)}
.nsc-up-ident{min-width:0;flex:1}
.nsc-up-ident h2{margin:0 0 2px;font-size:1.25rem;font-weight:800;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.nsc-up-username{display:block;font-size:.86rem;color:var(--nsc-text2)}
.nsc-up-joined{display:block;font-size:.74rem;color:var(--nsc-text3);margin-top:2px}
.nsc-up-pro{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;background:#fef3c7;color:#92400e;border-radius:20px;font-size:.7rem;font-weight:700}
[data-theme="dark"] .nsc-up-pro{background:rgba(251,191,36,.15);color:#fcd34d}
.nsc-up-actions{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.nsc-up-actions button{padding:9px 20px;border-radius:8px;font-size:.84rem;font-weight:700;cursor:pointer;font-family:inherit;border:none;flex:1;min-width:120px}
.nsc-follow-btn,.nsc-dm-start-btn{background:var(--nsc-green);color:#fff}
.nsc-follow-btn:hover,.nsc-dm-start-btn:hover{background:var(--nsc-green2)}
.nsc-unfollow-btn{background:var(--nsc-hover);color:var(--nsc-text2);border:1px solid var(--nsc-border)}
.nsc-unfollow-btn:hover{background:var(--nsc-border)}
.nsc-dm-start-btn{background:var(--nsc-card);color:var(--nsc-green);border:1.5px solid var(--nsc-green)}
.nsc-dm-start-btn:hover{background:var(--nsc-green);color:#fff}
.nsc-up-bio{margin:0 0 14px;font-size:.88rem;color:var(--nsc-text);line-height:1.55;white-space:pre-wrap;word-wrap:break-word}
.nsc-up-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:14px 0;border-top:1px solid var(--nsc-border);border-bottom:1px solid var(--nsc-border);margin-bottom:14px}
.nsc-up-stats>div{text-align:center}
.nsc-up-stats strong{display:block;font-size:1.05rem;font-weight:800;color:var(--nsc-text)}
.nsc-up-stats span{font-size:.7rem;color:var(--nsc-text3);text-transform:uppercase;letter-spacing:.04em}
.nsc-up-section{margin:0 0 10px;font-size:.92rem;font-weight:700}
.nsc-up-post{padding:10px 12px;background:var(--nsc-hover);border-radius:8px;margin-bottom:6px}
.nsc-up-post-body{margin:0 0 6px;font-size:.84rem;line-height:1.5;color:var(--nsc-text);word-wrap:break-word}
.nsc-up-post-meta{display:flex;gap:12px;font-size:.7rem;color:var(--nsc-text3)}
.nsc-up-empty{text-align:center;padding:28px 16px;color:var(--nsc-text3);font-size:.86rem}

/* Mobile tweaks */
@media(max-width:640px){
    .nsc-hover-card{display:none!important}  /* safety: no hover on touch, but belt-and-braces */
    .nsc-up-stats{grid-template-columns:repeat(2,1fr);gap:10px}
    .nsc-up-actions button{min-width:0}
    .nsc-up-header{gap:12px}
    .nsc-up-header .nsc-avatar{width:72px!important;height:72px!important;font-size:1.8rem!important}
    .nsc-up-ident h2{font-size:1.1rem}
}

/* ═════════════════════════════════════════════════════
   SEARCH (v2.0.5): live dropdown + dedicated results page
   ═════════════════════════════════════════════════════ */

/* Header search now needs position:relative to anchor the dropdown */
.nsc-header-search{position:relative}

/* Live-search dropdown */
.nsc-search-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.18);max-height:70vh;overflow-y:auto;z-index:200;color:var(--nsc-text)}
[data-theme="dark"] .nsc-search-dropdown{box-shadow:0 8px 28px rgba(0,0,0,.55)}
.nsc-search-section{padding:4px 0}
.nsc-search-section+.nsc-search-section{border-top:1px solid var(--nsc-border)}
.nsc-search-section-title{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--nsc-text3);padding:8px 14px 4px}
.nsc-search-row{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;color:var(--nsc-text);text-decoration:none;transition:background .1s}
.nsc-search-row:hover,.nsc-search-row:focus-visible{background:var(--nsc-hover);outline:none}
.nsc-search-row-body{flex:1;min-width:0}
.nsc-search-row-body strong{display:block;font-size:.86rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--nsc-text)}
.nsc-search-row-body span{font-size:.7rem;color:var(--nsc-text3)}
.nsc-search-post-snippet{margin:0 0 2px;font-size:.82rem;line-height:1.45;color:var(--nsc-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nsc-search-post-author{display:block;font-size:.7rem;color:var(--nsc-text3)}
.nsc-search-row-group .nsc-grp-icon{width:32px;height:32px}
.nsc-search-hl{background:#fef3c7;color:#78350f;padding:0 2px;border-radius:3px;font-weight:700}
[data-theme="dark"] .nsc-search-hl{background:rgba(251,191,36,.2);color:#fcd34d}
.nsc-search-hint,.nsc-search-empty{padding:18px 14px;text-align:center;color:var(--nsc-text3);font-size:.84rem}
.nsc-search-see-all{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 14px;border-top:1px solid var(--nsc-border);font-size:.82rem;font-weight:700;color:var(--nsc-green);text-decoration:none;background:var(--nsc-hover);transition:.1s}
.nsc-search-see-all:hover{background:var(--nsc-border);color:var(--nsc-green2)}
[data-theme="dark"] .nsc-search-see-all{color:#34d399}

/* Mobile: dropdown full-width, breaks out of the constrained input area */
@media(max-width:640px){
    .nsc-search-dropdown{position:fixed;top:64px;left:12px;right:12px;max-height:calc(100vh - 80px)}
}

/* ─── Dedicated search page ─── */
.nsc-search-body{background:var(--nsc-bg)}
.nsc-search-page-input{flex:1;max-width:640px;margin:0 16px}
.nsc-search-page-input svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:rgba(255,255,255,.6)}
.nsc-search-page-input input{width:100%;padding:9px 14px 9px 40px;border:none;border-radius:22px;background:rgba(255,255,255,.15);color:#fff;font-size:.92rem;font-family:inherit;outline:none}
.nsc-search-page-input input::placeholder{color:rgba(255,255,255,.6)}
.nsc-search-page-input input:focus{background:rgba(255,255,255,.25)}
.nsc-search-main{max-width:860px;margin:0 auto;padding:24px 16px 40px}
.nsc-search-filters{display:flex;gap:8px;margin-bottom:20px;overflow-x:auto;padding-bottom:4px}
.nsc-sr-filter{padding:8px 18px;border:1px solid var(--nsc-border);border-radius:20px;background:var(--nsc-card);color:var(--nsc-text2);font-size:.82rem;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;transition:.1s}
.nsc-sr-filter:hover{border-color:var(--nsc-green);color:var(--nsc-green)}
.nsc-sr-filter.active{background:var(--nsc-green);border-color:var(--nsc-green);color:#fff}
[data-theme="dark"] .nsc-sr-filter.active{background:#059669;border-color:#059669}

.nsc-search-landing{padding:72px 20px;text-align:center;color:var(--nsc-text2)}
.nsc-search-landing-icon{margin:0 auto 16px;color:var(--nsc-text3)}
.nsc-search-landing h2{margin:0 0 6px;font-size:1.4rem;font-weight:800;color:var(--nsc-text)}
.nsc-search-landing p{margin:0;font-size:.92rem}

.nsc-sr-section{margin-bottom:24px;background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;padding:16px}
.nsc-sr-section h3{margin:0 0 12px;font-size:.92rem;font-weight:800;color:var(--nsc-text2);text-transform:uppercase;letter-spacing:.04em}
.nsc-sr-user,.nsc-sr-post,.nsc-sr-group{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--nsc-border)}
.nsc-sr-section>div:first-of-type+.nsc-sr-user,
.nsc-sr-section>div:first-of-type+.nsc-sr-post,
.nsc-sr-section>div:first-of-type+.nsc-sr-group{border-top:none}
.nsc-sr-user:first-of-type,.nsc-sr-post:first-of-type,.nsc-sr-group:first-of-type{border-top:none;padding-top:4px}
.nsc-sr-body{flex:1;min-width:0}
.nsc-sr-body strong{display:block;font-size:.92rem;font-weight:700}
.nsc-sr-body span{font-size:.76rem;color:var(--nsc-text3)}
.nsc-sr-bio{margin:6px 0 0;font-size:.82rem;color:var(--nsc-text2);line-height:1.5}
.nsc-sr-post{flex-direction:column;gap:8px}
.nsc-sr-post-header{display:flex;align-items:center;gap:8px}
.nsc-sr-post-header span{font-size:.76rem;color:var(--nsc-text3);margin-left:auto}
.nsc-sr-post-snippet{margin:0;font-size:.9rem;line-height:1.55;color:var(--nsc-text);white-space:pre-wrap;word-wrap:break-word}
.nsc-sr-post-meta{display:flex;gap:14px;font-size:.72rem;color:var(--nsc-text3)}
.nsc-sr-group{cursor:pointer;align-items:center;padding:12px 10px;border-radius:8px;margin:0 -10px}
.nsc-sr-group:hover{background:var(--nsc-hover)}
.nsc-sr-group+.nsc-sr-group{border-top:1px solid var(--nsc-border)}

/* ═════════════════════════════════════════════════════
   HEADER DROPDOWNS (v2.0.6): bell / DM / profile panels
   that appear below their trigger buttons. Used instead
   of full panel switches so users stay in context.
   ═════════════════════════════════════════════════════ */
.nsc-hdr-dropdown{position:absolute;z-index:500;width:340px;max-width:calc(100vw - 24px);background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.20);color:var(--nsc-text);font-size:.84rem;overflow:hidden;animation:nscHdIn .15s ease-out}
[data-theme="dark"] .nsc-hdr-dropdown{box-shadow:0 12px 32px rgba(0,0,0,.55)}
@keyframes nscHdIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

.nsc-hd-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--nsc-border);font-size:.92rem;color:var(--nsc-text)}
.nsc-hd-header strong{font-weight:800}
.nsc-hd-list{max-height:min(440px,60vh);overflow-y:auto}
.nsc-hd-list::-webkit-scrollbar{width:6px}
.nsc-hd-list::-webkit-scrollbar-thumb{background:var(--nsc-border);border-radius:4px}

.nsc-hd-row{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;cursor:pointer;color:var(--nsc-text);text-decoration:none;transition:background .1s;border-bottom:1px solid var(--nsc-border)}
.nsc-hd-row:last-child{border-bottom:none}
.nsc-hd-row:hover,.nsc-hd-row:focus-visible{background:var(--nsc-hover);outline:none}
.nsc-hd-row-unread{background:rgba(37,99,235,.06);border-left:3px solid var(--nsc-accent);padding-left:11px}
[data-theme="dark"] .nsc-hd-row-unread{background:rgba(96,165,250,.09);border-left-color:#60a5fa}
.nsc-hd-icon{width:32px;height:32px;border-radius:50%;background:var(--nsc-hover);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--nsc-text2)}
.nsc-hd-row-dm .nsc-avatar{flex-shrink:0}
.nsc-hd-body{flex:1;min-width:0}
.nsc-hd-msg{font-size:.84rem;line-height:1.45;color:var(--nsc-text);white-space:normal}
.nsc-hd-msg strong{font-weight:700}
.nsc-hd-msg .nsc-user-link{color:inherit;text-decoration:none}
.nsc-hd-top{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.nsc-hd-top strong{font-size:.88rem;font-weight:700;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nsc-hd-preview{font-size:.78rem;color:var(--nsc-text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}
.nsc-hd-time{font-size:.7rem;color:var(--nsc-text3);white-space:nowrap;flex-shrink:0}

.nsc-hd-empty{padding:40px 16px;text-align:center;color:var(--nsc-text3)}
.nsc-hd-empty div{margin:0 0 10px;color:var(--nsc-text3)}
.nsc-hd-empty p{margin:0;font-size:.86rem}

.nsc-hd-footer{display:block;padding:12px 16px;text-align:center;border-top:1px solid var(--nsc-border);background:var(--nsc-hover);color:var(--nsc-green);font-weight:700;font-size:.82rem;text-decoration:none;transition:.1s}
.nsc-hd-footer:hover{background:var(--nsc-border)}
[data-theme="dark"] .nsc-hd-footer{color:#34d399}

/* ─── Profile menu ─── */
.nsc-hd-profile{width:280px}
.nsc-hd-profile-head{display:flex;gap:10px;align-items:center;padding:14px 16px;text-decoration:none;color:var(--nsc-text);border-bottom:1px solid var(--nsc-border);transition:.1s}
.nsc-hd-profile-head:hover{background:var(--nsc-hover)}
.nsc-hd-profile-avatar{width:42px;height:42px;border-radius:50%;background:var(--nsc-green);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.05rem}
.nsc-hd-profile-ident{min-width:0;flex:1}
.nsc-hd-profile-ident strong{display:block;font-size:.92rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nsc-hd-profile-ident span{font-size:.76rem;color:var(--nsc-text3)}
.nsc-hd-menu{padding:6px 0}
.nsc-hd-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;border:none;background:none;font-size:.84rem;font-family:inherit;color:var(--nsc-text);cursor:pointer;text-align:left;transition:.1s;text-decoration:none}
.nsc-hd-menu-item:hover,.nsc-hd-menu-item:focus-visible{background:var(--nsc-hover);outline:none}
.nsc-hd-menu-item .nsc-icon{color:var(--nsc-text2);flex-shrink:0}
.nsc-hd-logout{color:#dc2626}
.nsc-hd-logout .nsc-icon{color:#dc2626}
.nsc-hd-logout:hover{background:#fee2e2}
[data-theme="dark"] .nsc-hd-logout:hover{background:rgba(220,38,38,.15)}
.nsc-hd-sep{border:none;border-top:1px solid var(--nsc-border);margin:4px 0}

/* Mobile tweaks: dropdown becomes a floating sheet */
@media(max-width:640px){
    .nsc-hdr-dropdown{width:auto}
    .nsc-hd-profile{width:auto}
}

/* ═════════════════════════════════════════════════════
   POST OPTIONS MENU (v2.0.7): 3-dot per-post menu + inline
   edit form + lightweight toast. Piggybacks on the header
   dropdown chrome (box, shadow, animation) for consistency.
   ═════════════════════════════════════════════════════ */

/* The 3-dot button sits in the post header; this re-styles what was
   previously the delete-X button so it fits an icon neatly. */
.nsc-post-menu{width:32px;height:32px;padding:0;border:none;background:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--nsc-text3);flex-shrink:0;transition:background .1s,color .1s}
.nsc-post-menu:hover,.nsc-post-menu:focus-visible{background:var(--nsc-hover);color:var(--nsc-text);outline:none}
.nsc-post-menu svg{width:18px;height:18px}

/* "Pinned" marker shown above the header when data-pinned="1" */
.nsc-post-pin-marker{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--nsc-green);margin:0 0 8px;padding:3px 10px;background:rgba(5,150,105,.10);border-radius:20px;width:fit-content}
[data-theme="dark"] .nsc-post-pin-marker{color:#34d399;background:rgba(52,211,153,.15)}
.nsc-post-pin-marker svg{width:13px;height:13px}

/* The popup panel — inherits .nsc-hdr-dropdown visuals (box, shadow, anim).
   Only narrows width and adjusts padding for menu use. */
.nsc-pom{width:220px;max-width:calc(100vw - 24px)}
.nsc-pom-list{padding:6px 0}
.nsc-pom-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 14px;border:none;background:none;font-size:.84rem;font-family:inherit;color:var(--nsc-text);cursor:pointer;text-align:left;transition:.1s}
.nsc-pom-item:hover,.nsc-pom-item:focus-visible{background:var(--nsc-hover);outline:none}
.nsc-pom-item svg{width:16px;height:16px;color:var(--nsc-text2);flex-shrink:0}
.nsc-pom-item.nsc-hd-logout svg{color:#dc2626}

/* Inline edit form — appears in place of .nsc-post-content when user picks Edit */
.nsc-post-edit-form{margin:0 0 10px}
.nsc-post-edit-form textarea{width:100%;min-height:90px;padding:10px 12px;border:1.5px solid var(--nsc-border);border-radius:10px;font-size:.9rem;font-family:inherit;line-height:1.5;resize:vertical;box-sizing:border-box;background:var(--nsc-card);color:var(--nsc-text)}
.nsc-post-edit-form textarea:focus{border-color:var(--nsc-green);outline:none}
.nsc-post-edit-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}

/* Toast — transient bottom-center pill, one at a time. */
.nsc-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,16px);background:#0f172a;color:#fff;padding:10px 18px;border-radius:999px;font-size:.84rem;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.35);z-index:9999;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;white-space:nowrap}
[data-theme="dark"] .nsc-toast{background:#1e293b;border:1px solid #334155}
.nsc-toast-show{opacity:1;transform:translate(-50%,0);pointer-events:auto}

/* Saved panel empty-state uses existing card paddings; no specific styles */

/* ═════════════════════════════════════════════════════
   AVATAR + BANNER (v2.0.8): banner strip on the profile
   panel, pencil-edit overlays (self only), and the crop
   modal with Cropper.js integration.
   ═════════════════════════════════════════════════════ */

/* Banner strip — sits above the profile header. Uses a subtle gradient
   placeholder when no banner_url is set, so the layout doesn't look
   broken for users who never uploaded one. */
.nsc-up-banner{position:relative;width:100%;aspect-ratio:820/312;max-height:220px;border-radius:12px 12px 0 0;margin:0 0 -32px;background:linear-gradient(135deg,#059669,#2563eb);background-size:cover;background-position:center;overflow:hidden}
[data-theme="dark"] .nsc-up-banner{background:linear-gradient(135deg,#065f46,#1e40af)}
@supports not (aspect-ratio: 1) {
    /* Fallback for very old browsers: ~38% of width = 312/820 */
    .nsc-up-banner{height:0;padding-bottom:38%}
}

/* Avatar wrapper — lifts the avatar into the banner area with a ring */
.nsc-up-avatar-wrap{position:relative;display:inline-block;line-height:0}
.nsc-up-avatar-wrap .nsc-avatar,
.nsc-up-avatar-wrap .nsc-avatar-img{box-shadow:0 0 0 4px var(--nsc-card)}
.nsc-up-avatar-wrap-small .nsc-avatar,
.nsc-up-avatar-wrap-small .nsc-avatar-img{box-shadow:0 0 0 3px var(--nsc-card)}

/* Pencil edit button — circular, sits on the corner of the image. */
.nsc-img-edit{position:absolute;width:30px;height:30px;border-radius:50%;border:2px solid var(--nsc-card);background:var(--nsc-card);color:var(--nsc-text2);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.18);transition:transform .1s,background .1s,color .1s;z-index:2;padding:0}
.nsc-img-edit:hover{background:var(--nsc-green);color:#fff;transform:scale(1.08)}
.nsc-img-edit svg{width:14px;height:14px}
.nsc-img-edit-banner{bottom:10px;right:10px;width:36px;height:36px}
.nsc-img-edit-banner svg{width:16px;height:16px}
.nsc-img-edit-avatar{bottom:0;right:0}

/* Header-button avatar when it's an uploaded image (not the colored pill) */
.nsc-user-av-sm-img{object-fit:cover}

/* Dropdown profile head when the avatar is an uploaded image */
.nsc-hd-profile-avatar-img{object-fit:cover}

/* ─── Crop modal ─── */
.nsc-crop-overlay{background:rgba(15,23,42,.65);backdrop-filter:blur(2px)}
[data-theme="dark"] .nsc-crop-overlay{background:rgba(0,0,0,.75)}

.nsc-crop-modal{max-width:480px;width:92vw;padding:22px}
.nsc-crop-modal-wide{max-width:720px}

.nsc-crop-title{margin:0 0 16px;font-size:1.1rem;font-weight:800;color:var(--nsc-text)}

.nsc-crop-body{margin:0 0 18px}

/* File picker: dashed border drop-zone */
.nsc-crop-filepick{display:block;padding:32px 16px;border:2px dashed var(--nsc-border);border-radius:10px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;background:var(--nsc-hover)}
.nsc-crop-filepick:hover{border-color:var(--nsc-green);background:rgba(5,150,105,.06)}
.nsc-crop-filepick-label{display:block;color:var(--nsc-text2)}
.nsc-crop-filepick-label strong{display:block;font-size:1rem;color:var(--nsc-text);margin-bottom:4px}
.nsc-crop-filepick-label span{font-size:.78rem;color:var(--nsc-text3)}

/* Crop stage — where Cropper renders. Height scales with viewport. */
.nsc-crop-container{width:100%;max-height:58vh;min-height:260px;background:#0f172a;border-radius:8px;overflow:hidden}
.nsc-crop-container .nsc-crop-img{display:block;max-width:100%;max-height:58vh}
.nsc-crop-hint{margin:10px 0 0;font-size:.78rem;color:var(--nsc-text3);text-align:center}

.nsc-crop-progress{padding:48px 16px;text-align:center;color:var(--nsc-text2)}
.nsc-crop-progress .nsc-spinner{margin:0 auto 12px}
.nsc-crop-progress p{margin:0;font-size:.88rem}

/* Action row at the bottom — Remove on the left, Cancel/Save on the right. */
.nsc-crop-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px}
.nsc-crop-actions > div{display:flex;gap:8px}
.nsc-crop-remove{background:none;border:none;color:#dc2626;font-weight:600;font-size:.82rem;padding:8px 0;cursor:pointer;font-family:inherit;transition:opacity .1s}
.nsc-crop-remove:hover{opacity:.7;text-decoration:underline}

/* Mobile tweaks for the crop modal */
@media(max-width:640px){
    .nsc-crop-modal,.nsc-crop-modal-wide{width:calc(100vw - 16px);padding:16px;max-height:calc(100vh - 32px);overflow-y:auto}
    .nsc-crop-container{max-height:46vh;min-height:220px}
    .nsc-crop-title{font-size:1rem}
    .nsc-crop-actions{flex-direction:column;align-items:stretch}
    .nsc-crop-actions>div{justify-content:space-between}
}

/* ═════════════════════════════════════════════════════
   v2.0.9 — SIDEBAR COLLAPSE, LARGER UI, WALLET STYLES

   Policy: overrides at the end of the file win. We bump
   tab/nav/icon/text sizes globally by redefining the
   relevant rules here rather than editing earlier blocks,
   which keeps the diff easy to read and easy to revert.
   ═════════════════════════════════════════════════════ */

/* ─── Global size bump ────────────────────────────────
   Baseline CSS had 0.82-0.86rem on most controls and tiny
   ~14px nav icons. Kick everything up ~15-20%. */
.nsc-body{font-size:16px}
.nsc-header{height:64px}
.nsc-header-inner{padding:0 18px}
.nsc-logo{font-size:1.25rem;gap:10px}
.nsc-logo svg{width:26px;height:26px}
.nsc-header-search input{padding:10px 14px 10px 40px;font-size:.95rem;border-radius:24px}
.nsc-header-search svg{width:20px;height:20px;left:13px}
.nsc-hdr-btn,.nsc-theme-btn{width:44px;height:44px}
.nsc-hdr-btn svg,.nsc-theme-btn svg{width:22px;height:22px}
.nsc-user-btn{padding:7px 14px 7px 7px;font-size:.95rem;gap:10px;border-radius:22px}
.nsc-user-av-sm{width:34px;height:34px;font-size:.95rem}
.nsc-user-av-sm-img{width:34px;height:34px}
.nsc-hdr-badge{font-size:.7rem;min-width:18px;height:18px;line-height:18px}

/* Left nav bigger touch targets */
.nsc-left{width:240px;padding:18px 14px}
.nsc-nav-item{padding:12px 14px;font-size:.98rem;gap:14px;border-radius:10px;margin-bottom:2px;line-height:1.35}
.nsc-nav-item .nsc-ico{width:22px;height:22px;flex-shrink:0}
.nsc-nav-item .nsc-ico svg{width:22px;height:22px}
.nsc-nav-item:hover{background:var(--nsc-hover)}
.nsc-nav-item.active{font-weight:700}
.nsc-nav-badge{font-size:.72rem;min-width:20px;height:20px;line-height:20px;padding:0 6px;margin-left:auto}

/* Compose / feed cards */
.nsc-compose{padding:16px}
.nsc-compose-input{font-size:1.02rem;min-height:52px}
.nsc-post{padding:18px}
.nsc-post-header{gap:12px}
.nsc-post-meta strong{font-size:1rem}
.nsc-post-meta span{font-size:.82rem}
.nsc-post-content{font-size:1rem;line-height:1.6}
.nsc-action-btn{padding:8px 14px;font-size:.9rem;gap:7px;border-radius:8px}
.nsc-action-btn svg{width:19px;height:19px}
.nsc-post-menu{width:36px;height:36px}
.nsc-post-menu svg{width:20px;height:20px}

/* Buttons */
.nsc-post-btn{padding:10px 22px;font-size:.95rem;border-radius:8px}
.nsc-btn-sm{padding:9px 18px;font-size:.9rem}

/* Panel titles */
.nsc-sec-title{font-size:1.05rem;gap:8px;margin:0 0 14px}
.nsc-sec-title svg{width:22px;height:22px}

/* Right column + sidebar sections */
.nsc-right{width:300px}
.nsc-right-section{padding:16px}
.nsc-right-title{font-size:.94rem;margin:0 0 12px}

/* Comments */
.nsc-comment-input{padding:10px 14px;font-size:.92rem}
.nsc-comment{font-size:.92rem;padding:10px}

/* ─── Balance pill shown next to "Wallet" in the nav ─── */
.nsc-nav-balance{margin-left:auto;font-size:.78rem;font-weight:700;color:var(--nsc-green);background:rgba(5,150,105,.10);padding:3px 8px;border-radius:10px;white-space:nowrap}
[data-theme="dark"] .nsc-nav-balance{color:#34d399;background:rgba(52,211,153,.15)}

/* ─── Collapse toggle button ──────────────────────────
   Sits at the top of the sidebar. Desktop-only; hidden
   on mobile where the sidebar is a drawer instead. */
.nsc-left-collapse{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0 0 12px auto;border:1px solid var(--nsc-border);background:var(--nsc-card);border-radius:8px;cursor:pointer;color:var(--nsc-text2);transition:.15s;padding:0}
.nsc-left-collapse:hover{background:var(--nsc-hover);color:var(--nsc-text)}
.nsc-left-collapse svg{width:18px;height:18px}
@media(max-width:900px){ .nsc-left-collapse{display:none} }

/* ─── Collapsed state ─────────────────────────────────
   Shrinks the sidebar to an icon rail, hides text and
   secondary elements, widens the feed + right column.
   The grid itself uses var(--nsc-sidebar), so redefining
   the variable is all it takes for the middle + right
   columns to naturally grow into the freed space.
   Matches Facebook's compact nav pattern. */
.nsc-sidebar-collapsed{--nsc-sidebar:72px}
.nsc-sidebar-collapsed .nsc-left{width:auto;padding:18px 10px}
.nsc-sidebar-collapsed .nsc-left-collapse{margin-right:auto;margin-left:auto}

/* Hide everything textual inside the sidebar when collapsed. */
.nsc-sidebar-collapsed .nsc-left .nsc-profile-mini-info,
.nsc-sidebar-collapsed .nsc-left .nsc-nav-badge,
.nsc-sidebar-collapsed .nsc-left .nsc-nav-balance,
.nsc-sidebar-collapsed .nsc-left .nsc-left-groups,
.nsc-sidebar-collapsed .nsc-left .nsc-left-footer{display:none}

/* Hide the nav item's text (everything except the icon span),
   centre the icon, and tighten padding. */
.nsc-sidebar-collapsed .nsc-nav-item{
    font-size:0;              /* hides the text node */
    justify-content:center;
    padding:12px 0;
    gap:0;
}
.nsc-sidebar-collapsed .nsc-nav-item .nsc-ico{font-size:0} /* removes trailing space */

/* Profile mini button (avatar + name) → avatar-only when collapsed */
.nsc-sidebar-collapsed .nsc-profile-mini{justify-content:center;padding:8px 0;gap:0}

/* Give the layout more breathing room */
@media(min-width:900px){
    .nsc-sidebar-collapsed .nsc-main{
        /* No change needed — .nsc-main is a flex child that naturally
           consumes freed space. */
    }
}

/* ─── Wallet panel ────────────────────────────────────
   Big balance card with top-up button, quick-top-up row,
   transaction history. Green accent to echo the brand. */
.nsc-wallet-panel{padding:4px}
.nsc-wallet-card{background:linear-gradient(135deg,#059669 0%,#2563eb 100%);color:#fff;padding:22px 24px;border-radius:14px;margin:0 0 16px;box-shadow:0 8px 24px rgba(5,150,105,.22)}
[data-theme="dark"] .nsc-wallet-card{background:linear-gradient(135deg,#065f46 0%,#1e40af 100%)}
.nsc-wallet-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px}
.nsc-wallet-label{font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.9}
.nsc-wallet-header svg{width:22px;height:22px;color:#fff}
.nsc-wallet-balance{font-size:2.4rem;font-weight:800;letter-spacing:-.02em;margin:0 0 18px}
.nsc-wallet-actions{display:flex;gap:10px}
.nsc-wallet-actions .nsc-post-btn{background:#fff;color:#059669;font-weight:700}
.nsc-wallet-actions .nsc-post-btn:hover{background:#f0fdf4}
.nsc-wallet-actions svg{color:#059669;width:18px;height:18px}
.nsc-wallet-actions .nsc-post-btn{display:inline-flex;align-items:center;gap:8px}

.nsc-wallet-presets{margin:0 0 4px;padding:14px 16px;background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px}
.nsc-wallet-presets-label{display:block;font-size:.78rem;color:var(--nsc-text3);margin:0 0 8px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.nsc-wallet-presets > div{display:flex;flex-wrap:wrap;gap:8px}
.nsc-wallet-preset{padding:8px 16px;border:1px solid var(--nsc-border);border-radius:20px;background:var(--nsc-hover);color:var(--nsc-text);font-size:.88rem;font-weight:600;cursor:pointer;font-family:inherit;transition:.1s}
.nsc-wallet-preset:hover{border-color:var(--nsc-green);background:rgba(5,150,105,.08);color:var(--nsc-green)}

/* Transaction rows */
.nsc-wtxn{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:10px;margin:0 0 8px}
.nsc-wtxn-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:rgba(5,150,105,.10);color:var(--nsc-green)}
.nsc-wtxn-debit .nsc-wtxn-icon{background:rgba(220,38,38,.10);color:#dc2626}
[data-theme="dark"] .nsc-wtxn-debit .nsc-wtxn-icon{background:rgba(239,68,68,.15);color:#f87171}
.nsc-wtxn-icon svg{width:18px;height:18px}
.nsc-wtxn-body{flex:1;min-width:0}
.nsc-wtxn-body strong{display:block;font-size:.94rem;font-weight:600;color:var(--nsc-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nsc-wtxn-body span{font-size:.78rem;color:var(--nsc-text3)}
.nsc-wtxn-amt{font-size:1rem;font-weight:800;color:var(--nsc-green);white-space:nowrap}
.nsc-wtxn-debit .nsc-wtxn-amt{color:#dc2626}
[data-theme="dark"] .nsc-wtxn-credit .nsc-wtxn-amt{color:#34d399}
[data-theme="dark"] .nsc-wtxn-debit .nsc-wtxn-amt{color:#f87171}

/* ─── Pay-method chooser modal ──────────────────────── */
.nsc-pay-modal{max-width:440px;width:92vw;padding:24px}
.nsc-pay-title{margin:0 0 4px;font-size:1.1rem;font-weight:700;color:var(--nsc-text)}
.nsc-pay-amount{margin:0 0 18px;font-size:1.8rem;font-weight:800;color:var(--nsc-green);letter-spacing:-.02em}
[data-theme="dark"] .nsc-pay-amount{color:#34d399}
.nsc-pay-methods{display:flex;flex-direction:column;gap:10px;margin:0 0 12px}
.nsc-pay-method{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1.5px solid var(--nsc-border);border-radius:12px;background:var(--nsc-card);color:var(--nsc-text);cursor:pointer;text-align:left;font-family:inherit;transition:.12s;width:100%}
.nsc-pay-method:hover:not(:disabled){border-color:var(--nsc-green);background:var(--nsc-hover)}
.nsc-pay-method:disabled{opacity:.55;cursor:not-allowed}
.nsc-pay-method-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--nsc-hover);color:var(--nsc-green)}
.nsc-pay-method-icon svg{width:22px;height:22px}
.nsc-pay-method-body{flex:1;min-width:0}
.nsc-pay-method-body strong{display:block;font-size:.98rem;font-weight:700;margin:0 0 2px}
.nsc-pay-method-body span{font-size:.8rem;color:var(--nsc-text3)}
.nsc-pay-topup-link{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px;border:none;background:none;color:var(--nsc-green);font-size:.88rem;font-weight:600;cursor:pointer;font-family:inherit;margin-top:4px}
.nsc-pay-topup-link:hover{text-decoration:underline}
.nsc-pay-topup-link svg{width:16px;height:16px}

/* ─── Top-up modal ──────────────────────────────────── */
.nsc-wallet-topup-modal{max-width:440px;width:92vw;padding:24px}
.nsc-wallet-amount-label{display:block;font-size:.84rem;font-weight:600;margin:0 0 6px;color:var(--nsc-text2)}
.nsc-wallet-amount-input{width:100%;padding:12px 14px;border:1.5px solid var(--nsc-border);border-radius:10px;font-size:1.1rem;font-weight:600;font-family:inherit;background:var(--nsc-card);color:var(--nsc-text);box-sizing:border-box}
.nsc-wallet-amount-input:focus{border-color:var(--nsc-green);outline:none}
.nsc-wallet-presets-inline{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 4px}
.nsc-wallet-presets-inline button{padding:7px 14px;border:1px solid var(--nsc-border);border-radius:16px;background:var(--nsc-hover);color:var(--nsc-text);font-size:.82rem;font-weight:600;cursor:pointer;font-family:inherit;transition:.1s}
.nsc-wallet-presets-inline button:hover{border-color:var(--nsc-green);color:var(--nsc-green)}
.nsc-wallet-topup-hint{font-size:.76rem;color:var(--nsc-text3);text-align:center;margin:12px 0 0;line-height:1.5}

/* Mobile polish for wallet + pay modals */
@media(max-width:640px){
    .nsc-pay-modal,.nsc-wallet-topup-modal{width:calc(100vw - 16px);padding:20px}
    .nsc-wallet-balance{font-size:2rem}
    .nsc-pay-amount{font-size:1.5rem}
}

/* ═════════════════════════════════════════════════════
   v2.0.10 — MOBILE-FIRST REWORK + FOOTER

   Structure:
   1. Footer layout + payment logos
   2. Mobile bottom navigation (shown on ≤640px only)
   3. Mobile-first overrides for the main shell
   ═════════════════════════════════════════════════════ */

/* ─── Footer ──────────────────────────────────────────
   Multi-column layout with brand, quick links, resources,
   and a payment-acceptance row. Collapses to a single
   column on mobile. */
.nsc-footer{background:var(--nsc-card);border-top:1px solid var(--nsc-border);margin-top:40px;padding:32px 16px 20px;color:var(--nsc-text2);font-size:.86rem}
[data-theme="dark"] .nsc-footer{background:#0f172a}
.nsc-footer-inner{max-width:1240px;margin:0 auto}
.nsc-footer-grid{display:grid;grid-template-columns:1fr;gap:28px 32px;margin:0 0 24px}
.nsc-footer-col h4{margin:0 0 10px;font-size:.82rem;font-weight:800;color:var(--nsc-text);text-transform:uppercase;letter-spacing:.06em}
.nsc-footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px}
.nsc-footer-col a{color:var(--nsc-text2);text-decoration:none;font-size:.86rem;transition:color .12s}
.nsc-footer-col a:hover{color:var(--nsc-green);text-decoration:underline}
[data-theme="dark"] .nsc-footer-col a:hover{color:#34d399}

.nsc-footer-brand .nsc-footer-logo{display:flex;align-items:center;gap:8px;font-size:1.1rem;color:var(--nsc-text);margin:0 0 10px}
.nsc-footer-brand .nsc-footer-logo strong{font-weight:800}
.nsc-footer-brand .nsc-footer-logo span{font-weight:400;color:var(--nsc-text2)}
.nsc-footer-tag{margin:0;font-size:.86rem;line-height:1.6;color:var(--nsc-text2);max-width:320px}

/* Payment acceptance row — horizontal strip with "We accept" label,
   the card-network badges, and "Secured by Paystack" on the right. */
.nsc-footer-pay{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:18px 0;border-top:1px solid var(--nsc-border);border-bottom:1px solid var(--nsc-border);margin:0 0 18px}
.nsc-footer-pay-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--nsc-text3)}
.nsc-footer-pay-note{font-size:.78rem;color:var(--nsc-text3);margin-left:auto}
.nsc-footer-pay-note strong{color:var(--nsc-text2);font-weight:700}

.nsc-pay-logos{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nsc-pay-logo{display:inline-flex;line-height:0;box-shadow:0 1px 3px rgba(0,0,0,.08);border-radius:4px;overflow:hidden}
.nsc-pay-logo svg{display:block;height:28px;width:auto}
[data-theme="dark"] .nsc-pay-logo{box-shadow:0 1px 3px rgba(0,0,0,.35)}

/* Bottom "legal" row */
.nsc-footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:.78rem;color:var(--nsc-text3)}
.nsc-footer-small{font-size:.72rem;color:var(--nsc-text3)}

/* Wider viewports: footer columns split into a 4-col grid */
@media(min-width:700px){
    .nsc-footer-grid{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
    .nsc-footer{padding:44px 24px 24px}
}

/* ═════════════════════════════════════════════════════
   MOBILE BOTTOM NAV (≤640px) — Facebook/Twitter pattern.
   Fixed to the viewport bottom; five core destinations
   reachable with a thumb. Hides automatically on tablet+
   where the left sidebar is available.
   ═════════════════════════════════════════════════════ */
.nsc-mobile-nav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:300;background:var(--nsc-card);border-top:1px solid var(--nsc-border);box-shadow:0 -4px 16px rgba(0,0,0,.08);padding:6px 0 calc(6px + env(safe-area-inset-bottom));justify-content:space-around;align-items:stretch}
[data-theme="dark"] .nsc-mobile-nav{box-shadow:0 -4px 16px rgba(0,0,0,.5)}
.nsc-mnav-item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px;border:none;background:none;color:var(--nsc-text2);font-family:inherit;font-size:.68rem;font-weight:600;cursor:pointer;position:relative;line-height:1.1;-webkit-tap-highlight-color:transparent}
.nsc-mnav-item svg{width:24px;height:24px;flex-shrink:0}
.nsc-mnav-item.active{color:var(--nsc-green)}
[data-theme="dark"] .nsc-mnav-item.active{color:#34d399}
.nsc-mnav-badge{position:absolute;top:4px;right:calc(50% - 18px);background:#dc2626;color:#fff;font-size:.6rem;font-weight:800;min-width:16px;height:16px;line-height:16px;padding:0 4px;border-radius:8px;box-shadow:0 0 0 2px var(--nsc-card)}

@media(max-width:640px){
    .nsc-mobile-nav{display:flex}
}

/* ═════════════════════════════════════════════════════
   MOBILE-FIRST REFINEMENTS (≤640px)

   Scope: everything the v2.0.9 "bigger UI" block bumped
   up now gets mobile-specific adjustments so the phone
   experience feels native rather than a zoomed-out
   desktop. Philosophy:
     - All touch targets ≥44px
     - Inputs ≥16px font (prevents iOS auto-zoom)
     - Stack and breathe, don't cram
     - Honour safe-area insets for notched devices
   ═════════════════════════════════════════════════════ */
@media(max-width:640px){
    /* Base */
    body.nsc-body{padding-bottom:70px}   /* Reserve room for the bottom nav */

    /* Layout — single column, no gaps, full-bleed cards */
    .nsc-layout{grid-template-columns:1fr!important;gap:0;padding:8px 8px 16px;min-height:auto}
    .nsc-right{display:none}

    /* Header — compact. Drop secondary buttons except theme + user menu. */
    .nsc-header{height:56px;position:sticky;top:0;z-index:250}
    .nsc-header-inner{padding:0 10px;gap:8px}
    .nsc-logo{font-size:1.05rem;gap:6px}
    .nsc-logo svg{width:22px;height:22px}
    .nsc-logo span b{display:none} /* show "NOUN" only on narrow widths */
    .nsc-header-search{flex:1;min-width:0}
    .nsc-header-search input{padding:8px 12px 8px 34px;font-size:16px;border-radius:20px}
    .nsc-header-search svg{width:16px;height:16px;left:10px}
    .nsc-header-right{gap:4px}
    /* Notification + message bells move to mobile bottom nav; hide here. */
    #nsc-hdr-notif-btn,#nsc-hdr-dm-btn{display:none}
    .nsc-hdr-btn,.nsc-theme-btn{width:40px;height:40px}
    .nsc-user-btn{padding:4px 8px 4px 4px;font-size:.84rem;gap:6px}
    .nsc-user-btn>span:last-child{display:none} /* hide first-name text, avatar only */
    .nsc-user-av-sm{width:30px;height:30px}
    .nsc-user-av-sm-img{width:30px;height:30px}

    /* Left sidebar — drawer-style, off-screen by default. */
    .nsc-left{position:fixed;top:0;left:0;bottom:0;z-index:400;width:85%;max-width:320px;background:var(--nsc-card);border-right:1px solid var(--nsc-border);padding:16px 12px;transform:translateX(-100%);transition:transform .25s ease;overflow-y:auto;box-shadow:4px 0 24px rgba(0,0,0,.15)}
    .nsc-left.open{transform:translateX(0)}
    .nsc-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:399;opacity:0;pointer-events:none;transition:opacity .2s}
    .nsc-overlay.open{opacity:1;pointer-events:auto}

    /* Hamburger visible on mobile, hidden on desktop. */
    .nsc-hamburger{display:flex}
    /* Collapse toggle is desktop-only. */
    .nsc-left-collapse{display:none}

    /* Nav items — larger taps, more vertical rhythm */
    .nsc-nav-item{padding:14px 14px;font-size:1rem;border-radius:10px;min-height:48px}
    .nsc-nav-item .nsc-ico svg{width:22px;height:22px}

    /* Feed + compose */
    .nsc-main{min-width:0} /* prevent flex overflow */
    .nsc-compose{padding:14px;border-radius:10px;margin-bottom:8px}
    .nsc-compose-input{font-size:16px;min-height:48px} /* 16px avoids iOS zoom-on-focus */
    .nsc-post{padding:14px;border-radius:10px;margin-bottom:8px}
    .nsc-post-content{font-size:.95rem;line-height:1.55}
    .nsc-post-meta strong{font-size:.95rem}

    /* Action buttons in posts — min 44px tap target */
    .nsc-action-btn{padding:10px 12px;min-height:40px;font-size:.84rem;gap:5px}
    .nsc-action-btn svg{width:18px;height:18px}

    /* Modals — bottom sheet style on mobile */
    .nsc-modal-overlay{align-items:flex-end;padding:0}
    .nsc-modal{width:100%;max-width:100%!important;border-radius:14px 14px 0 0;max-height:92vh;overflow-y:auto;padding:20px;margin:0;box-shadow:0 -12px 32px rgba(0,0,0,.3);animation:nscSheetUp .25s ease-out}
    .nsc-pay-modal,.nsc-wallet-topup-modal,.nsc-crop-modal{width:100%!important;max-width:100%!important;border-radius:14px 14px 0 0}
    @keyframes nscSheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
    .nsc-modal-close{width:36px;height:36px;top:8px;right:8px}

    /* Wallet panel tweaks */
    .nsc-wallet-balance{font-size:2rem}
    .nsc-wallet-card{padding:20px 18px;border-radius:12px}
    .nsc-wallet-presets > div{justify-content:space-between}
    .nsc-wallet-preset{flex:1;min-width:0;padding:10px 4px;text-align:center;font-size:.82rem}

    /* Sidebar sections in the drawer */
    .nsc-left-groups,.nsc-left-footer{display:block!important}

    /* Footer — shrink paddings, centre the payment row */
    .nsc-footer{padding:28px 16px 16px;margin-top:24px}
    .nsc-footer-grid{gap:20px 16px}
    .nsc-footer-col h4{font-size:.78rem}
    .nsc-footer-pay{padding:14px 0;gap:10px}
    .nsc-footer-pay-note{margin-left:0;flex-basis:100%;text-align:left}
    .nsc-footer-bottom{flex-direction:column;align-items:flex-start}

    /* Reaction picker — avoid getting cut off at screen edges */
    .nsc-reaction-picker{left:0!important;right:auto}

    /* Comment compose — make the send button easier to tap */
    .nsc-comment-send{min-width:44px;min-height:44px}

    /* Drop the avatar-ring thickness on the profile page so the
       avatar doesn't visibly overflow a small banner. */
    .nsc-up-banner{max-height:140px;border-radius:10px 10px 0 0}
    .nsc-up-avatar-wrap .nsc-avatar,
    .nsc-up-avatar-wrap .nsc-avatar-img{box-shadow:0 0 0 3px var(--nsc-card)}
}

/* Very narrow devices (<380px) — tighten further */
@media(max-width:380px){
    .nsc-logo span{display:none}
    .nsc-mnav-item{font-size:.62rem}
    .nsc-mnav-item svg{width:22px;height:22px}
    .nsc-wallet-balance{font-size:1.7rem}
}

/* ═════════════════════════════════════════════════════
   v2.0.11 — HASHTAGS + TRENDING + ADMIN SETTINGS
   ═════════════════════════════════════════════════════ */

/* Hashtag panel — header with big tag title, sub-label, feed of posts */
.nsc-hashtag-title{margin:16px 0 4px;font-size:1.6rem;font-weight:800;color:var(--nsc-accent);letter-spacing:-.01em}
[data-theme="dark"] .nsc-hashtag-title{color:#60a5fa}
.nsc-hashtag-sub{margin:0 0 16px;font-size:.88rem;color:var(--nsc-text2)}

/* Trending-tags sidebar list — ranked chips */
.nsc-trending-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 4px;border:none;background:none;color:var(--nsc-text);font-family:inherit;font-size:.86rem;cursor:pointer;text-align:left;border-radius:6px;transition:background .12s}
.nsc-trending-item:hover,.nsc-trending-item:focus-visible{background:var(--nsc-hover);outline:none}
.nsc-trending-item+.nsc-trending-item{border-top:1px solid var(--nsc-border)}
.nsc-trending-rank{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.74rem;font-weight:800;background:var(--nsc-hover);color:var(--nsc-text3)}
.nsc-trending-item:hover .nsc-trending-rank{background:var(--nsc-accent);color:#fff}
.nsc-trending-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.nsc-trending-body strong{display:block;font-size:.88rem;font-weight:700;color:var(--nsc-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nsc-trending-body span{font-size:.72rem;color:var(--nsc-text3)}

/* Plain-styled hashtag (feature disabled): same colour as linked, but
   not a button — just text. Honours the admin toggle so old posts with
   hashtags still read sensibly when trending/click-through is off. */
.nsc-hashtag-plain{color:var(--nsc-accent);font-weight:600}
[data-theme="dark"] .nsc-hashtag-plain{color:#60a5fa}

/* ═════════════════════════════════════════════════════
   v2.0.12 — GROUPS: invites, subgroups, "via group" pill
   ═════════════════════════════════════════════════════ */

/* Group-detail header row — title + action buttons inline. */
.nsc-gv-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0 14px;flex-wrap:wrap}
.nsc-gv-header h3{margin:0;font-size:1.1rem;font-weight:800;flex:1;min-width:160px}
.nsc-gv-actions{display:flex;gap:8px;flex-wrap:wrap}

/* Outline button variant used in the header + banner */
.nsc-btn-outline{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1.5px solid var(--nsc-border);border-radius:8px;background:var(--nsc-card);color:var(--nsc-text);font-family:inherit;font-size:.86rem;font-weight:600;cursor:pointer;transition:.12s}
.nsc-btn-outline:hover{border-color:var(--nsc-green);color:var(--nsc-green);background:var(--nsc-hover)}
.nsc-btn-outline svg{width:16px;height:16px}

/* Subgroups section — rendered above the group's own feed. */
#nsc-gv-subgroups{margin:0 0 14px;padding:14px 16px;background:var(--nsc-card);border:1px solid var(--nsc-border);border-radius:12px}
.nsc-gv-subgroups-title{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--nsc-text2);margin:0 0 10px}
.nsc-gv-subgroups-title svg{width:18px;height:18px}
.nsc-subgroups-list{display:grid;gap:8px;grid-template-columns:1fr}
@media(min-width:640px){ .nsc-subgroups-list{grid-template-columns:1fr 1fr} }
.nsc-subgroup-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--nsc-hover);border-radius:10px;cursor:pointer;transition:.12s}
.nsc-subgroup-card:hover{background:rgba(5,150,105,.08)}
.nsc-subgroup-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.nsc-subgroup-body strong{font-size:.94rem;font-weight:700;color:var(--nsc-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nsc-subgroup-body span{font-size:.76rem;color:var(--nsc-text3)}
.nsc-subgroup-card .nsc-grp-join,.nsc-subgroup-card .nsc-grp-leave{padding:6px 14px;font-size:.8rem;border-radius:16px;cursor:pointer;flex-shrink:0;font-family:inherit;font-weight:600}
.nsc-subgroup-card .nsc-grp-join{background:var(--nsc-green);color:#fff;border:none}
.nsc-subgroup-card .nsc-grp-leave{background:var(--nsc-card);color:var(--nsc-text2);border:1px solid var(--nsc-border)}

/* Pending-invite banner shown at top of group-detail panel. */
.nsc-invite-banner{display:flex;gap:14px;align-items:center;padding:14px 16px;margin:0 0 16px;background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border:1px solid #f59e0b;border-radius:12px;flex-wrap:wrap}
[data-theme="dark"] .nsc-invite-banner{background:linear-gradient(135deg,rgba(245,158,11,.15),rgba(251,191,36,.08));border-color:#d97706}
.nsc-invite-banner-body{flex:1;min-width:160px}
.nsc-invite-banner-body strong{display:block;font-size:.98rem;font-weight:800;color:#78350f;margin:0 0 2px}
[data-theme="dark"] .nsc-invite-banner-body strong{color:#fcd34d}
.nsc-invite-banner-body span{font-size:.82rem;color:#92400e}
[data-theme="dark"] .nsc-invite-banner-body span{color:#fde68a}
.nsc-invite-banner-actions{display:flex;gap:8px;flex-wrap:wrap}

/* "in [Group Name]" pill on surfaced group posts in main feed. */
/* Group-origin line under the author: "posted in [Group Name]".
   Rendered on any post that has a group_id, including ones surfaced
   from the rotating sample in the main feed. Styled as a small
   coloured label so users immediately see "this came from a group I'm
   in", not a mystery leak into the public feed. */
.nsc-via-group-line{display:flex;align-items:center;gap:4px;font-size:.76rem;color:var(--nsc-text3);margin:2px 0 2px;line-height:1.3;flex-wrap:wrap}
.nsc-via-group-line svg{width:13px;height:13px;color:var(--nsc-text3);flex-shrink:0}
.nsc-via-group-pill{display:inline-flex;align-items:center;padding:1px 8px;background:rgba(5,150,105,.10);color:var(--nsc-green);font-weight:700;text-decoration:none;border-radius:4px;font-size:.78rem;transition:background .12s}
[data-theme="dark"] .nsc-via-group-pill{background:rgba(52,211,153,.15);color:#34d399}
.nsc-via-group-pill:hover{background:rgba(5,150,105,.18);text-decoration:none}
[data-theme="dark"] .nsc-via-group-pill:hover{background:rgba(52,211,153,.25)}

/* Invite-search modal rows */
.nsc-invite-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--nsc-hover);border-radius:8px;margin-bottom:6px}
.nsc-invite-row strong{flex:1;font-size:.9rem;font-weight:700}
.nsc-invite-row span{font-size:.76rem;color:var(--nsc-text3);margin-right:8px}
.nsc-invite-row .nsc-btn-sm{padding:6px 14px;font-size:.82rem}

/* ═════════════════════════════════════════════════════
   v2.0.14 — SHARE MODAL + SHARE TRIGGERS
   ═════════════════════════════════════════════════════ */

/* Share modal — channel picker with brand colours per network.
   Bottom-sheet on mobile (inherits .nsc-modal responsive rules).
   Brand colours approximated to each network's current accent so
   the modal reads at a glance even at thumbnail size. */
.nsc-share-modal{max-width:440px;width:92vw;padding:24px}
.nsc-share-modal-title{margin:0 0 4px;font-size:1.1rem;font-weight:800;color:var(--nsc-text)}
.nsc-share-modal-sub{margin:0 0 18px;font-size:.86rem;color:var(--nsc-text2);line-height:1.5;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.nsc-share-channels{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin:0 0 16px}
.nsc-share-channel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
    padding:14px 8px;border:1px solid var(--nsc-border);border-radius:10px;background:var(--nsc-card);
    color:var(--nsc-text);text-decoration:none;font-size:.76rem;font-weight:600;transition:.12s;
    font-family:inherit}
.nsc-share-channel:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.08);text-decoration:none}
.nsc-share-channel svg{width:28px;height:28px;color:var(--nsc-text)}
.nsc-share-channel span{line-height:1.1}

/* Channel-specific accents on hover (brand colours). Using the
   channel svg's colour via CSS custom prop so the path:fill picks
   it up through currentColor. */
.nsc-share-channel-whatsapp:hover svg{color:#25D366}
.nsc-share-channel-twitter-x:hover svg{color:#000}
[data-theme="dark"] .nsc-share-channel-twitter-x:hover svg{color:#fff}
.nsc-share-channel-facebook:hover svg{color:#1877F2}
.nsc-share-channel-telegram:hover svg{color:#229ED9}
.nsc-share-channel-linkedin:hover svg{color:#0A66C2}

/* Copy-link row */
.nsc-share-url-box{display:flex;gap:6px;align-items:stretch;margin:0 0 12px;background:var(--nsc-hover);
    border:1px solid var(--nsc-border);border-radius:10px;padding:4px;box-sizing:border-box}
.nsc-share-url-input{flex:1;min-width:0;border:none;background:none;padding:8px 10px;font-size:.82rem;
    font-family:inherit;color:var(--nsc-text);outline:none}
.nsc-share-copy-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:none;
    background:var(--nsc-green);color:#fff;border-radius:8px;cursor:pointer;font-size:.82rem;font-weight:700;
    font-family:inherit;transition:.12s;flex-shrink:0}
.nsc-share-copy-btn:hover{background:var(--nsc-green2)}
.nsc-share-copy-btn svg{width:14px;height:14px}

/* Native Web Share API button — mobile-only surface. */
.nsc-share-native{width:100%;padding:10px;border:1px solid var(--nsc-border);background:var(--nsc-card);
    color:var(--nsc-text2);border-radius:8px;cursor:pointer;font-size:.82rem;font-weight:600;
    font-family:inherit;transition:.12s}
.nsc-share-native:hover{background:var(--nsc-hover);color:var(--nsc-text)}

/* Share-trigger buttons in context — share-2 icon at consistent
   colour across all placements (post action bar, group header,
   profile actions, hashtag header). */
.nsc-share-trigger svg{flex-shrink:0}

/* ═════════════════════════════════════════════════════
   v2.0.16 — NEWS PANEL + AUTOFUSE + NEW POSTS PILL
   ═════════════════════════════════════════════════════ */

/* "See new posts" pill — appears above the feed when community posts
   have arrived since page 1 load. Sticky so it stays visible as the
   user scrolls down, but scoped to the feed column so it doesn't
   float over the sidebar. */
.nsc-new-posts-pill{position:sticky;top:76px;z-index:40;display:flex;justify-content:center;margin:0 0 10px;pointer-events:none}
.nsc-new-posts-pill button{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;
    padding:8px 18px;border:none;border-radius:20px;
    background:linear-gradient(135deg,var(--nsc-green) 0%,var(--nsc-green2) 100%);
    color:#fff;font-size:.85rem;font-weight:700;cursor:pointer;font-family:inherit;
    box-shadow:0 4px 14px rgba(5,150,105,.35);transition:transform .15s,box-shadow .15s}
.nsc-new-posts-pill button:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(5,150,105,.45)}
.nsc-new-posts-pill button svg{transform:rotate(-45deg)}  /* point up */
@keyframes nscNewPostsSlideIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.nsc-new-posts-pill-in button{animation:nscNewPostsSlideIn .22s ease-out}

/* ─── Autofuse blog card (in-feed) ───────────────────────────────── */
/* Distinct from user posts: a thin green accent bar + "From the
   blog" label so it can't be mistaken for community content. */
.nsc-news-card{padding:0;overflow:hidden;border-left:3px solid var(--nsc-green)}
.nsc-news-card-link{display:block;text-decoration:none;color:inherit}
.nsc-news-card-link:hover{text-decoration:none}
.nsc-news-card-label{display:flex;align-items:center;gap:8px;padding:10px 14px 0;font-size:.72rem;
    color:var(--nsc-text3);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.nsc-news-card-label svg{color:var(--nsc-green);flex-shrink:0}
.nsc-news-card-cat{display:inline-block;padding:2px 8px;margin-left:auto;background:rgba(5,150,105,.12);
    color:var(--nsc-green);border-radius:4px;font-size:.68rem;font-weight:700;text-transform:uppercase}
[data-theme="dark"] .nsc-news-card-cat{background:rgba(52,211,153,.18);color:#34d399}
.nsc-news-card-img{margin:12px 14px 0;border-radius:10px;overflow:hidden;aspect-ratio:16/9;background:var(--nsc-hover)}
.nsc-news-card-img img{width:100%;height:100%;object-fit:cover;display:block}
.nsc-news-card-body{padding:12px 14px 14px}
.nsc-news-card-body h3{margin:0 0 6px;font-size:1rem;font-weight:700;line-height:1.35;color:var(--nsc-text)}
.nsc-news-card-body p{margin:0 0 10px;font-size:.84rem;color:var(--nsc-text2);line-height:1.55;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nsc-news-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:.76rem;color:var(--nsc-text3)}
.nsc-news-card-cta{color:var(--nsc-green);font-weight:700}

/* ─── News panel (Google News–style) ─────────────────────────────── */
.nsc-news-panel{max-width:100%}
.nsc-news-head{margin:0 0 18px;padding:0 0 12px;border-bottom:1px solid var(--nsc-border)}
.nsc-news-title{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:1.3rem;font-weight:800;color:var(--nsc-text)}
.nsc-news-title svg{color:var(--nsc-green)}
.nsc-news-sub{margin:0;font-size:.86rem;color:var(--nsc-text2);line-height:1.55}

/* Featured card — large, image-led. Stacks on mobile, side-by-side
   on ≥720px to make the hero visually commanding. */
.nsc-news-featured{margin:0 0 24px;border:1px solid var(--nsc-border);border-radius:12px;overflow:hidden;
    background:var(--nsc-card);transition:box-shadow .15s}
.nsc-news-featured:hover{box-shadow:0 8px 24px rgba(0,0,0,.08)}
.nsc-news-featured-link{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.nsc-news-featured-link:hover{text-decoration:none}
.nsc-news-featured-img{aspect-ratio:16/9;background:var(--nsc-hover);overflow:hidden}
.nsc-news-featured-img img{width:100%;height:100%;object-fit:cover;display:block}
.nsc-news-featured-body{padding:20px}
.nsc-news-featured-body h2{margin:8px 0;font-size:1.35rem;font-weight:800;line-height:1.3;color:var(--nsc-text)}
.nsc-news-featured-body p{margin:0 0 14px;font-size:.92rem;color:var(--nsc-text2);line-height:1.6;
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nsc-news-featured-meta{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:var(--nsc-text3)}
@media(min-width:720px){
    .nsc-news-featured-link{flex-direction:row}
    .nsc-news-featured-img{flex:0 0 44%;aspect-ratio:auto;min-height:280px}
    .nsc-news-featured-body{flex:1;padding:24px}
}

/* Grid — remaining cards. 1 col on narrow, 2 on ≥540, 3 on ≥900. */
.nsc-news-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:540px){.nsc-news-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.nsc-news-grid{grid-template-columns:repeat(3,1fr)}}
.nsc-news-grid-card{border:1px solid var(--nsc-border);border-radius:10px;overflow:hidden;
    background:var(--nsc-card);transition:box-shadow .15s,transform .15s}
.nsc-news-grid-card:hover{box-shadow:0 6px 16px rgba(0,0,0,.08);transform:translateY(-2px)}
.nsc-news-grid-card a{display:block;text-decoration:none;color:inherit}
.nsc-news-grid-card a:hover{text-decoration:none}
.nsc-news-grid-img{aspect-ratio:16/9;background:var(--nsc-hover);overflow:hidden}
.nsc-news-grid-img img{width:100%;height:100%;object-fit:cover;display:block}
.nsc-news-grid-body{padding:14px}
.nsc-news-grid-body h3{margin:6px 0 0;font-size:.96rem;font-weight:700;line-height:1.35;color:var(--nsc-text);
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nsc-news-grid-meta{margin-top:8px;font-size:.76rem;color:var(--nsc-text3)}

/* Empty state */
.nsc-news-empty{text-align:center;padding:60px 20px;color:var(--nsc-text2)}
.nsc-news-empty svg{color:var(--nsc-text3);margin-bottom:12px}
.nsc-news-empty h2{margin:0 0 6px;font-size:1.1rem;font-weight:700;color:var(--nsc-text)}
.nsc-news-empty p{margin:0;font-size:.88rem}
