/* Trader Space shell — staff sidebar restructure (Trader Space / CRM / Member View), minimized rail, independent scroll regions.
   Design tokens come from the Master Spec v2.1 §2.2 (working values, to be checked against the reference screenshot). */
:root{
  --at-bg:#020D1B; --at-bg-deep:#03101F; --at-surface:#071B30; --at-surface-raised:#0B2340; --at-border:#16466B;
  --at-blue:#087BFF; --at-blue-bright:#1597FF; --at-cyan:#24C7F4;
  --at-text:#F3F7FC; --at-text-muted:#A9B9CC; --at-text-subtle:#71869E; --at-success:#14D99A; --at-purple:#9B7BFF;
}

/* ── Sidebar structure ─────────────────────────────────────────── */
.nav{overscroll-behavior:contain;}
.nf-nav{padding:0 10px;}
.nf-item,.nf-sec-head,.nf-static-head{
  display:flex;align-items:center;gap:11px;width:100%;box-sizing:border-box;
  padding:10px 12px;margin:2px 0;border-radius:10px;border:1px solid transparent;background:none;
  color:rgba(243,247,252,.78);font:500 14px/1.2 inherit;font-family:inherit;cursor:pointer;text-align:left;text-decoration:none;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.nf-item:hover,.nf-sec-head:hover{background:rgba(21,151,255,.10);color:#fff;}
.nf-item:focus-visible,.nf-sec-head:focus-visible,.nf-min-btn:focus-visible,.nf-cust:focus-visible,.nf-eye:focus-visible{outline:2px solid var(--at-cyan);outline-offset:1px;}
.nf-ico{display:inline-flex;width:20px;height:20px;flex-shrink:0;color:#9db4cc;}
.nf-ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.nf-item:hover .nf-ico,.nf-sec-head:hover .nf-ico{color:#fff;}
.nf-item.active{
  background:linear-gradient(135deg,rgba(8,123,255,.55),rgba(21,151,255,.28));color:#fff;
  border-color:rgba(36,199,244,.45);box-shadow:0 0 16px rgba(21,151,255,.22);
}
.nf-item.active .nf-ico{color:var(--at-cyan);}
.nf-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nf-chev{display:inline-flex;width:16px;height:16px;color:rgba(255,255,255,.45);transition:transform .18s ease;}
.nf-chev svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.nf-sec:not(.open) .nf-chev{transform:rotate(-90deg);}
.nf-sec-head.has-active{color:#fff;}
.nf-sec-head.has-active .nf-ico{color:var(--at-cyan);}
.nf-sec-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .18s ease;}
.nf-sec.open .nf-sec-body{grid-template-rows:1fr;}
.nf-sec-inner{overflow:hidden;min-height:0;}
.nf-sec-sep{height:1px;background:rgba(255,255,255,.07);margin:8px 6px;}

/* Member View is static (no collapse): label row + module buttons */
.nf-static-head{cursor:default;color:rgba(255,255,255,.55);font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;padding-bottom:6px;}
.nf-static-head:hover{background:none;}
.nf-cust{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:1px solid transparent;background:none;color:#9db4cc;cursor:pointer;}
.nf-cust:hover,.nf-cust.on{background:rgba(21,151,255,.14);color:#fff;border-color:rgba(36,199,244,.35);}
.nf-cust svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.nf-mrow{display:flex;align-items:center;gap:4px;}
.nf-mrow .nf-item{flex:1;min-width:0;}
.nf-mrow.off .nf-item{opacity:.45;}
.nf-eye,.nf-mv{width:28px;height:28px;flex-shrink:0;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:#cfe0f2;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:10px;padding:0;}
.nf-eye svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.nf-eye:disabled,.nf-mv:disabled{opacity:.3;cursor:not-allowed;}
.nf-eye:not(:disabled):hover,.nf-mv:not(:disabled):hover{border-color:rgba(36,199,244,.5);color:#fff;}
.nf-edit-note{font-size:11px;color:var(--at-text-subtle);padding:2px 12px 6px;}

/* Minimize button (desktop only) */
.s-hdr{position:relative;}
.nf-min-btn{position:absolute;top:8px;right:8px;z-index:3;width:28px;height:28px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:#cfe0f2;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0;}
.nf-min-btn:hover{border-color:rgba(36,199,244,.5);color:#fff;}
.nf-min-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.nf-mark{display:none;width:34px;height:34px;object-fit:contain;margin:0 auto;}
@media (min-width:769px){
  .nf-min-btn{display:inline-flex;}
  .sidebar{transition:width .2s ease;}
  .sidebar.nf-min{width:68px;}
  .sidebar.nf-min .s-hdr{padding:12px 6px 10px;}
  .sidebar.nf-min .s-hdr img:not(.nf-mark),.sidebar.nf-min .s-hdr .logo-sub,.sidebar.nf-min .s-hdr div > div{display:none !important;}
  .sidebar.nf-min .nf-mark{display:block;margin-top:26px;}
  .sidebar.nf-min .nf-min-btn{right:50%;transform:translateX(50%);}
  .sidebar.nf-min .s-ftr,.sidebar.nf-min #sidebar-event-banner{display:none;}
  .sidebar.nf-min .nf-nav{padding:0 8px;}
  .sidebar.nf-min .nf-item,.sidebar.nf-min .nf-sec-head,.sidebar.nf-min .nf-static-head{justify-content:center;padding:10px 0;}
  .sidebar.nf-min .nf-label,.sidebar.nf-min .nf-chev,.sidebar.nf-min .nf-cust,.sidebar.nf-min .nf-eye,.sidebar.nf-min .nf-mv,.sidebar.nf-min .nf-edit-note{display:none;}
  .sidebar.nf-min .nf-static-head{display:none;}
  .sidebar.nf-min .nf-sec-sep{margin:8px 4px;}
  /* CRM children never show inline in the rail — they open as a flyout next to it */
  .sidebar.nf-min .nf-crm .nf-sec-body{display:none;}
  .sidebar.nf-min .nf-crm.nf-fly .nf-sec-body{
    display:grid;grid-template-rows:1fr;position:fixed;left:72px;width:260px;z-index:2000;overflow-y:auto;overscroll-behavior:contain;
    background:linear-gradient(180deg,#0a1830,#071427);border:1px solid var(--at-border);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.55);padding:8px 0;
  }
  .sidebar.nf-min .nf-crm.nf-fly .nf-sec-inner{overflow:visible;}
}
.nf-tip{position:fixed;z-index:3000;pointer-events:none;background:var(--at-surface-raised);color:var(--at-text);border:1px solid var(--at-border);border-radius:8px;padding:6px 10px;font:500 12px/1.2 system-ui,sans-serif;box-shadow:0 8px 24px rgba(0,0,0,.45);white-space:nowrap;}

/* ── Trader Space / Member View workspace ─────────────────────────── */
.content.nf-mode{overflow:hidden;padding:0;background:radial-gradient(1200px 520px at 50% -10%,rgba(21,151,255,.16),transparent 60%),var(--at-bg);}
#view-traders-hub.active,#view-member-view.active{display:flex;height:100%;min-height:0;}
#view-member-view.active{flex-direction:column;}
#view-member-view iframe{flex:1;width:100%;height:100%;border:0;display:block;background:transparent;}
.nf-main{display:flex;gap:20px;width:100%;height:100%;min-height:0;padding:0 20px;box-sizing:border-box;color:var(--at-text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;}
.nf-center,.nf-right{overflow-y:auto;overscroll-behavior:contain;min-height:0;scrollbar-width:thin;scrollbar-color:#16466B transparent;}
.nf-center{flex:1;min-width:0;padding:16px 0 28px;}
.nf-right{width:340px;flex-shrink:0;padding:16px 0 28px;display:flex;flex-direction:column;gap:16px;}
.nf-center:focus-visible,.nf-right:focus-visible{outline:2px solid var(--at-cyan);outline-offset:-2px;}
.nf-tabs{position:sticky;top:0;z-index:5;display:flex;gap:6px;padding:6px;margin-bottom:16px;overflow-x:auto;border:1px solid var(--at-border);border-radius:14px;background:rgba(7,27,48,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}
.nf-tab{flex-shrink:0;padding:9px 16px;border-radius:10px;border:1px solid transparent;background:none;color:var(--at-text-muted);font:600 13px/1 inherit;font-family:inherit;cursor:pointer;white-space:nowrap;}
.nf-tab:hover{color:#fff;background:rgba(21,151,255,.10);}
.nf-tab:focus-visible{outline:2px solid var(--at-cyan);outline-offset:1px;}
.nf-tab.active{color:#fff;background:linear-gradient(135deg,var(--at-blue),var(--at-blue-bright));border-color:rgba(36,199,244,.5);box-shadow:0 0 16px rgba(21,151,255,.28);}
.nf-card{background:linear-gradient(180deg,rgba(11,35,64,.85),rgba(7,27,48,.92));border:1px solid var(--at-border);border-radius:14px;padding:16px 18px;box-shadow:0 8px 28px rgba(0,0,0,.28);}
.nf-card h3{margin:0 0 6px;font-size:15px;font-weight:700;color:var(--at-text);}
.nf-card p{margin:0;font-size:13px;line-height:1.5;color:var(--at-text-muted);}
.nf-empty{text-align:center;padding:42px 20px;}
.nf-empty h3{font-size:17px;}
.nf-empty .nf-badge{display:inline-block;margin-top:12px;font-size:11px;color:var(--at-text-subtle);border:1px solid var(--at-border);border-radius:999px;padding:3px 10px;}
@media (max-width:1100px){.nf-right{display:none;}}
@media (max-width:768px){
  .content.nf-mode{overflow-y:auto;}
  .nf-main{flex-direction:column;height:auto;padding:0 12px;}
  .nf-center,.nf-right{overflow:visible;}
  .nf-right{display:flex;width:auto;}
}
@media (prefers-reduced-motion:reduce){.sidebar,.nf-sec-body,.nf-chev{transition:none;}}

/* ── Feed: composer, posts, comments, modal ───────────────────── */
.hidden{display:none !important;}
.nfc textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:70px;background:var(--at-surface-raised);border:1px solid var(--at-border);border-radius:12px;color:var(--at-text);padding:12px 14px;font:400 14px/1.5 inherit;font-family:inherit;}
.nfc textarea:focus{outline:2px solid var(--at-cyan);outline-offset:0;border-color:transparent;}
.nfc-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;flex-wrap:wrap;}
.nfc-acts{display:flex;gap:6px;flex-wrap:wrap;}
.nfc-act{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:9px;border:1px solid var(--at-border);background:rgba(11,35,64,.6);color:var(--at-text-muted);font:500 12px/1 inherit;font-family:inherit;cursor:pointer;}
.nfc-act svg{width:15px;height:15px;color:var(--at-cyan);}
.nfc-act:hover,.nfc-act.on{color:#fff;border-color:rgba(36,199,244,.55);background:rgba(21,151,255,.16);}
.nfc-act:focus-visible,.nfp-actions button:focus-visible,.nfp-btn:focus-visible,.nfc-post:focus-visible,.nfp-ic:focus-visible{outline:2px solid var(--at-cyan);outline-offset:1px;}
.nfc-post{padding:9px 22px;border-radius:10px;border:1px solid rgba(36,199,244,.5);background:linear-gradient(135deg,var(--at-blue),var(--at-blue-bright));color:#fff;font:600 13px/1 inherit;font-family:inherit;cursor:pointer;box-shadow:0 4px 14px rgba(8,123,255,.35);}
.nfc-post:disabled{opacity:.6;cursor:progress;}
.nfc-previews{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.nfc-prev{position:relative;width:76px;height:76px;border-radius:10px;overflow:hidden;border:1px solid var(--at-border);background:var(--at-surface-raised);}
.nfc-prev img{width:100%;height:100%;object-fit:cover;}
.nfc-prev button{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;border:0;background:rgba(2,13,27,.85);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.nfc-vid{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--at-cyan);padding:4px;text-align:center;}
.nfc-vid small{font-size:9px;color:var(--at-text-muted);word-break:break-all;max-height:24px;overflow:hidden;}
.nfc-prog{height:4px;border-radius:2px;background:rgba(255,255,255,.08);margin-top:10px;overflow:hidden;}
.nfc-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--at-cyan),var(--at-blue-bright));transition:width .15s;}
.nfc-err{margin:8px 0 0;color:#ff8a9a;font-size:12.5px;}
.nfc-hint{margin:8px 0 0;color:var(--at-text-subtle);font-size:12px;}
.nfc-hint:empty{display:none;}
#nfl-list>.nfp,#nfl-pending>.nfp,#nfc,.nf-center>.nf-card{margin-bottom:14px;}
.nfp{padding:16px 18px 8px;}
.nfp-h{display:flex;align-items:center;gap:11px;}
.nfp-av{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;object-fit:cover;color:#fff;font-weight:700;flex-shrink:0;border:2px solid rgba(36,199,244,.35);box-sizing:border-box;}
.nfp-who{flex:1;min-width:0;}
.nfp-name{font-size:14.5px;font-weight:600;color:var(--at-text);display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.nfp-time{font-size:12px;color:var(--at-text-subtle);}
.nfp-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;color:var(--at-cyan);border:1px solid rgba(36,199,244,.4);background:rgba(36,199,244,.08);}
.nfp-chip{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--at-border);color:var(--at-text-muted);}
.nfp-chip.t-announcement{color:#ffd37a;border-color:rgba(245,185,66,.5);background:rgba(245,185,66,.08);}
.nfp-chip.t-trade_idea{color:var(--at-success);border-color:rgba(20,217,154,.45);background:rgba(20,217,154,.07);}
.nfp-chip.t-business_promotion{color:var(--at-purple);border-color:rgba(155,123,255,.5);background:rgba(155,123,255,.08);}
.nfp-chip.t-pending{color:#ffd37a;border-color:rgba(245,185,66,.5);}
.nfp-chip.t-rejected{color:#ff8a9a;border-color:rgba(255,101,122,.5);}
.nfp-body{margin:12px 0 4px;font-size:14.5px;line-height:1.55;color:var(--at-text);white-space:pre-wrap;overflow-wrap:anywhere;}
.nfp-note{font-size:12.5px;color:var(--at-text-muted);margin:6px 0;}
.nfp-media{margin-top:10px;border-radius:12px;overflow:hidden;border:1px solid var(--at-border);background:#010a14;}
.nfp-media video{display:block;width:100%;max-height:520px;background:#000;}
.nfp-grid{display:grid;gap:2px;}.nfp-grid.g1{grid-template-columns:1fr;}.nfp-grid.g2,.nfp-grid.g3,.nfp-grid.g4{grid-template-columns:1fr 1fr;}
.nfp-img{position:relative;background:#010a14;}
.nfp-img img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain;user-select:none;-webkit-user-drag:none;}
.nfp-grid.g2 .nfp-img img,.nfp-grid.g3 .nfp-img img,.nfp-grid.g4 .nfp-img img{height:240px;object-fit:cover;}
.nfp-more{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(2,13,27,.6);color:#fff;font-size:24px;font-weight:700;}
.nfp-counts{display:flex;justify-content:space-between;font-size:12.5px;color:var(--at-text-subtle);padding:10px 2px 8px;}
.nfp-counts button{background:none;border:0;color:inherit;font:inherit;cursor:pointer;}
.nfp-counts button:hover{color:#fff;text-decoration:underline;}
.nfp-actions{display:flex;border-top:1px solid rgba(22,70,107,.7);margin:0 -6px;padding:4px 0;}
.nfp-actions button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 6px;border:0;border-radius:9px;background:none;color:var(--at-text-muted);font:600 13px/1 inherit;font-family:inherit;cursor:pointer;}
.nfp-actions button:hover{background:rgba(21,151,255,.10);color:#fff;}
.nfp-actions button.on{color:var(--at-cyan);}
.nfp-ic{background:none;border:0;color:var(--at-text-muted);cursor:pointer;padding:6px;border-radius:8px;display:inline-flex;}
.nfp-ic:hover{background:rgba(21,151,255,.12);color:#fff;}
.nfp-menu{position:relative;}
.nfp-pop{position:absolute;right:0;top:100%;z-index:20;min-width:120px;background:var(--at-surface-raised);border:1px solid var(--at-border);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.5);padding:4px;}
.nfp-pop button{display:block;width:100%;text-align:left;background:none;border:0;color:var(--at-text);padding:8px 10px;border-radius:7px;cursor:pointer;font:500 13px inherit;font-family:inherit;}
.nfp-pop button:hover{background:rgba(21,151,255,.14);}.nfp-pop .danger{color:#ff8a9a;}
.nfp-cm.open{border-top:1px solid rgba(22,70,107,.7);padding:10px 0 6px;}
.nfp-c{display:flex;gap:9px;align-items:flex-start;margin-bottom:10px;}
.nfp-cb{flex:1;min-width:0;background:rgba(11,35,64,.7);border-radius:12px;padding:8px 12px;font-size:13px;color:var(--at-text);overflow-wrap:anywhere;}
.nfp-cb b{font-weight:600;}
.nfp-cf{display:flex;gap:8px;margin-top:6px;}
.nfp-cf input{flex:1;min-width:0;background:var(--at-surface-raised);border:1px solid var(--at-border);border-radius:999px;padding:9px 14px;color:var(--at-text);font:400 13px inherit;font-family:inherit;}
.nfp-cf input:focus{outline:2px solid var(--at-cyan);border-color:transparent;}
.nfp-btn{padding:8px 16px;border-radius:9px;border:1px solid var(--at-border);background:rgba(11,35,64,.8);color:var(--at-text);font:600 12.5px/1 inherit;font-family:inherit;cursor:pointer;}
.nfp-btn.ok{background:linear-gradient(135deg,var(--at-blue),var(--at-blue-bright));border-color:rgba(36,199,244,.5);}
.nfp-btn.no{color:#ff8a9a;border-color:rgba(255,101,122,.5);}
.nfp-btn:disabled{opacity:.55;cursor:wait;}
.nfp-approve{display:flex;gap:8px;margin:12px 0 8px;}
.nfp-edit{width:100%;box-sizing:border-box;min-height:90px;background:var(--at-surface-raised);border:1px solid var(--at-border);border-radius:10px;color:var(--at-text);padding:10px;font:400 14px/1.5 inherit;font-family:inherit;}
.nfp-editbar{display:flex;justify-content:flex-end;gap:8px;margin-top:8px;}
.nfl-pendhead{font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#ffd37a;margin:0 2px 8px;}
.nfl-new{position:sticky;top:64px;z-index:4;text-align:center;margin-bottom:10px;}
.nfl-new button{padding:7px 16px;border-radius:999px;border:1px solid rgba(36,199,244,.6);background:linear-gradient(135deg,var(--at-blue),var(--at-blue-bright));color:#fff;font:600 12.5px inherit;font-family:inherit;cursor:pointer;box-shadow:0 6px 18px rgba(8,123,255,.4);}
.nfl-morewrap{text-align:center;padding:6px 0 12px;}
.nf-modal{position:fixed;inset:0;z-index:5000;background:rgba(1,8,18,.78);display:flex;align-items:center;justify-content:center;padding:20px;}
.nf-modal-box{position:relative;width:min(640px,100%);max-height:calc(100vh - 40px);overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(180deg,#0b2340,#071b30);border:1px solid var(--at-border);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.6);padding:20px;color:var(--at-text);font-family:Inter,system-ui,sans-serif;}
.nf-modal-box h3{margin:0 0 12px;font-size:17px;}
.nf-modal-box .nf-card{border:0;background:none;box-shadow:none;padding:0;}
.nf-modal-x{position:absolute;top:10px;right:10px;background:none;border:0;color:var(--at-text-muted);cursor:pointer;padding:6px;border-radius:8px;}
.nf-modal-x:hover{background:rgba(255,255,255,.08);color:#fff;}
.nfs-list{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto;}
.nfs-row{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-radius:10px;border:1px solid var(--at-border);background:rgba(11,35,64,.7);color:var(--at-text);font:500 14px inherit;font-family:inherit;cursor:pointer;text-align:left;}
.nfs-row:hover{border-color:rgba(36,199,244,.55);}.nfs-row span{color:var(--at-cyan);font-size:12px;}

/* ── Right sidebar widgets ─────────────────────────────────────── */
.nfs{padding:14px 16px;}
.nfs-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.nfs-h h3{margin:0;font-size:15px;}
.nfs-link{background:none;border:0;color:var(--at-cyan);font:600 12.5px inherit;font-family:inherit;cursor:pointer;padding:2px 4px;border-radius:6px;}
.nfs-link:hover{text-decoration:underline;}.nfs-link:focus-visible,.nfs-name:focus-visible,.nfs-follow:focus-visible{outline:2px solid var(--at-cyan);outline-offset:1px;}
.nfs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.nfs-list li{display:flex;align-items:center;gap:10px;}
.nfs-who{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;}
.nfs-name{background:none;border:0;padding:0;color:var(--at-text);font:600 14px inherit;font-family:inherit;cursor:pointer;text-align:left;}
.nfs-name:hover{color:var(--at-cyan);text-decoration:underline;}
.nfs-avw{position:relative;display:inline-flex;flex-shrink:0;}
.nfs-dot{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;background:var(--at-success);border:2px solid #071B30;box-sizing:border-box;}
.nfs-empty{margin:0;font-size:13px;color:var(--at-text-subtle);}
.nfs-follow{padding:6px 14px;border-radius:9px;border:1px solid rgba(36,199,244,.55);background:linear-gradient(135deg,var(--at-blue),var(--at-blue-bright));color:#fff;font:600 12px/1 inherit;font-family:inherit;cursor:pointer;}
.nfs-follow.on{background:rgba(11,35,64,.8);color:var(--at-text-muted);border-color:var(--at-border);}
.nfs-follow:disabled{opacity:.55;cursor:wait;}
.nfs-ev li{align-items:flex-start;justify-content:space-between;}
.nfs-evt{display:flex;flex-direction:column;gap:2px;min-width:0;}
.nfs-evt b{font-size:13.5px;font-weight:600;color:var(--at-text);overflow-wrap:anywhere;}
.nfs-evt span{font-size:12px;color:var(--at-text-muted);}
.nfs-pill{flex-shrink:0;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid var(--at-border);}
.nfs-pill.on{color:var(--at-success);border-color:rgba(20,217,154,.45);background:rgba(20,217,154,.07);}
.nfs-pill.in{color:var(--at-purple);border-color:rgba(155,123,255,.5);background:rgba(155,123,255,.08);}
.nfs-msgs{height:220px;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:8px;padding:2px 2px 8px;scrollbar-width:thin;scrollbar-color:#16466B transparent;}
.nfs-msgs:focus-visible{outline:2px solid var(--at-cyan);}
.nfs-m{background:rgba(11,35,64,.7);border-radius:12px;padding:7px 11px;font-size:13px;color:var(--at-text);align-self:flex-start;max-width:92%;overflow-wrap:anywhere;}
.nfs-m.mine{align-self:flex-end;background:rgba(21,151,255,.22);}
.nfs-m b{font-size:12px;}.nfs-m span{font-size:11px;color:var(--at-text-subtle);}
.nfs-m a{color:var(--at-cyan);font-weight:600;}
.nfs-setup{margin-top:10px;}
.nfs-prof{text-align:center;padding:6px 10px 4px;}
.nfs-prof h3{margin:12px 0 14px;}
.nfs-prof dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;text-align:left;margin:0 auto;max-width:300px;}
.nfs-prof dt{color:var(--at-text-subtle);font-size:12.5px;}.nfs-prof dd{margin:0;font-size:14px;color:var(--at-text);}
.nfs-prof i{color:var(--at-text-subtle);}
.nfp-name .nfs-name{font-size:14.5px;}

/* ── Reviews tab ───────────────────────────────────────────────── */
.nfr{padding:16px 18px;margin-bottom:14px;}
.nfr-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.nfr-who{font-size:16px !important;}
.nfr-stars{color:#F5B942;letter-spacing:2px;font-size:16px;white-space:nowrap;}
.nfr-coach{margin-top:6px;font-size:13px;color:var(--at-text-muted);}.nfr-coach b{color:var(--at-text);font-weight:600;}
.nfr-ex{margin:10px 0 12px;font-size:14px;line-height:1.55;color:var(--at-text);overflow-wrap:anywhere;}
.nfr-read{margin-top:2px;}
.nfr-full h3{margin:0 0 6px;font-size:19px;}
.nfr-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.nfr-meta span{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--at-border);color:var(--at-text-muted);}
.nfr-full dl{margin:0;display:flex;flex-direction:column;gap:12px;}
.nfr-a dt{font-size:12px;color:var(--at-text-subtle);margin-bottom:3px;}
.nfr-a dd{margin:0;font-size:14px;line-height:1.55;color:var(--at-text);white-space:pre-wrap;overflow-wrap:anywhere;}

/* ── Organizational Chart tab ──────────────────────────────────── */
.nf-main.nf-org .nf-right{display:none;}
.nf-main.nf-org .nf-center{overflow:hidden;display:flex;flex-direction:column;padding-bottom:16px;}
.nf-main.nf-org #nf-tab-body{flex:1;min-height:0;display:flex;flex-direction:column;}
.nfo{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px;color:var(--at-text);}
.nfo-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;}
.nfo-top h2{margin:0;font-size:26px;font-weight:700;}.nfo-top p{margin:4px 0 0;color:var(--at-text-muted);font-size:14px;}
.nfo-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.nfo-search{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--at-border);background:var(--at-surface-raised);color:var(--at-text-muted);min-width:210px;}
.nfo-search input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--at-text);font:400 13.5px inherit;font-family:inherit;}
.nfo-search:focus-within{outline:2px solid var(--at-cyan);}
.nfo-search button{background:none;border:0;color:var(--at-text-muted);cursor:pointer;padding:2px;display:inline-flex;}
.nfo-b{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px;border-radius:10px;border:1px solid var(--at-border);background:rgba(11,35,64,.8);color:var(--at-text);font:600 13px/1 inherit;font-family:inherit;cursor:pointer;}
.nfo-b:hover{border-color:rgba(36,199,244,.55);}.nfo-b:focus-visible,.nfo-card:focus-visible,.nfo-tog:focus-visible,.nfo-vp:focus-visible,.nfo-x:focus-visible,.nfo-tabs button:focus-visible,.nfo-tlink:focus-visible{outline:2px solid var(--at-cyan);outline-offset:2px;}
.nfo-b.ic{padding:0;width:36px;justify-content:center;}.nfo-b.sm{height:32px;padding:0 12px;font-size:12px;}.nfo-b:disabled{opacity:.45;cursor:not-allowed;}
.nfo-b.primary{background:linear-gradient(110deg,#00D9F5 0%,#168BFF 52%,#453BFF 100%);border-color:transparent;color:#fff;box-shadow:0 6px 18px rgba(22,139,255,.35);}
.nfo-zoomg{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--at-text-muted);}.nfo-zoomg .nfo-b.ic{height:36px;}
.nfo-count{font-size:12.5px;color:var(--at-text-subtle);}
.nfo-work{flex:1;min-height:0;display:flex;gap:14px;position:relative;}
.nfo-vp{flex:1;min-width:0;position:relative;overflow:hidden;border:1px solid var(--at-border);border-radius:16px;cursor:grab;touch-action:none;background:radial-gradient(700px 360px at 50% 0%,rgba(36,199,244,.10),transparent 70%),rgba(3,16,31,.7);}
.nfo-vp.pan{cursor:grabbing;}
.nfo-world{position:absolute;left:0;top:0;transform-origin:0 0;}
.nfo-lines{position:absolute;left:0;top:0;pointer-events:none;}
.nfo-lines path{fill:none;stroke-width:1.6;stroke-linecap:round;opacity:.75;}
.nfo-lines .cf{stroke:#F7C948;}.nfo-lines .mc{stroke:#4B7BFF;}.nfo-lines .sc{stroke:#00DCC8;}
.nfo-frame{position:absolute;border:1px solid rgba(247,201,72,.45);border-radius:20px;background:linear-gradient(180deg,rgba(247,201,72,.07),rgba(247,201,72,.01));box-shadow:0 0 28px rgba(247,201,72,.07);pointer-events:none;}
.nfo-core{position:absolute;top:10px;left:50%;transform:translateX(-50%);font:700 12px/1 inherit;font-family:inherit;letter-spacing:3px;color:#F7C948;white-space:nowrap;}
.nfo-core2{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none;}
.nfo-core2 .nfo-core{position:static;transform:none;background:rgba(3,16,31,.9);padding:0 14px;z-index:1;}
.nfo-core2 i{position:absolute;left:0;right:0;top:50%;border-top:1px solid rgba(247,201,72,.35);}
.nfo-card{position:absolute;box-sizing:border-box;text-align:left;cursor:pointer;color:var(--at-text);font-family:inherit;padding:14px 16px;border-radius:14px;border:1px solid var(--at-border);background:linear-gradient(180deg,rgba(15,35,64,.92),rgba(7,27,48,.95));box-shadow:0 0 24px rgba(0,217,245,.08),0 8px 24px rgba(0,0,0,.3);display:flex;flex-direction:column;justify-content:space-between;transition:transform .15s,border-color .15s,opacity .15s;}
.nfo-card:hover{transform:translateY(-2px);border-color:rgba(120,164,205,.6);}
.nfo-card.cf{border-top:2px solid #F7C948;}.nfo-card.mc{border-top:2px solid #4B7BFF;}.nfo-card.sc{border-top:2px solid #00DCC8;padding:10px 12px;}
.nfo-card.sel{border-color:#00D9F5;box-shadow:0 0 0 1px rgba(0,217,245,.9),0 0 28px rgba(0,217,245,.22);}
.nfo-card.hit{border-color:#F7C948;box-shadow:0 0 0 1px rgba(247,201,72,.8);}.nfo-card.dim{opacity:.35;}
.nfo-row{display:flex;align-items:center;gap:12px;min-width:0;}
.nfo-av{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;object-fit:cover;color:#fff;font-weight:700;flex-shrink:0;border:2px solid rgba(0,217,245,.4);box-sizing:border-box;}
.nfo-id{min-width:0;display:flex;flex-direction:column;gap:3px;}
.nfo-name{font-size:16px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.nfo-card.sc .nfo-name{font-size:14px;font-weight:600;}
.nfo-code{font-size:12px;color:var(--at-text-subtle);font-variant-numeric:tabular-nums;}
.nfo-sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}.nfo-mc{font-size:11.5px;color:var(--at-text-muted);}
.nfo-badge{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;font:600 11px/1 inherit;font-family:inherit;padding:5px 9px;border-radius:999px;border:1px solid;}
.nfo-badge.cf{color:#F7C948;border-color:rgba(247,201,72,.5);background:rgba(247,201,72,.08);}
.nfo-badge.mc{color:#8fb0ff;border-color:rgba(75,123,255,.55);background:rgba(75,123,255,.1);}
.nfo-badge.sc{color:#00DCC8;border-color:rgba(0,220,200,.5);background:rgba(0,220,200,.08);}
.nfo-meta{display:flex;gap:14px;font-size:12.5px;color:var(--at-text-muted);flex-wrap:wrap;}.nfo-meta span{display:inline-flex;align-items:center;gap:5px;}.nfo-meta b{color:var(--at-text);font-variant-numeric:tabular-nums;}
.nfo-mwrap{position:absolute;}
.nfo-tog{position:absolute;left:50%;bottom:-13px;transform:translateX(-50%);width:26px;height:26px;border-radius:50%;border:1px solid rgba(0,217,245,.6);background:#071B30;color:var(--at-cyan);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:2;}
.nfo-panel{width:440px;flex-shrink:0;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--at-border);border-radius:20px;background:linear-gradient(180deg,rgba(18,31,48,.97),rgba(7,27,48,.98));padding:20px;box-sizing:border-box;box-shadow:0 20px 60px rgba(0,0,0,.45);animation:nfoIn .2s ease;}
@keyframes nfoIn{from{opacity:0;transform:translateX(16px);}to{opacity:1;transform:none;}}
.nfo-ph{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;}
.nfo-ph h3{margin:2px 0 0;font-size:20px;}
.nfo-x{position:absolute;top:-6px;right:-6px;width:36px;height:36px;border-radius:10px;border:1px solid var(--at-border);background:rgba(11,35,64,.8);color:var(--at-text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;}
.nfo-pm{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:10px 0 4px;font-size:12.5px;color:var(--at-text-muted);}.nfo-pm span{display:inline-flex;align-items:center;gap:5px;}
.nfo-acts{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:12px 0;}
.nfo-mets{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:12px 0;}
.nfo-met{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px;border-radius:12px;border:1px solid var(--at-border);background:rgba(11,35,64,.6);color:var(--at-cyan);}
.nfo-met b{font-size:24px;color:var(--at-text);font-variant-numeric:tabular-nums;line-height:1.1;}.nfo-met span{font-size:12px;color:var(--at-text-muted);}
.nfo-tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--at-border);margin-top:6px;}
.nfo-tabs button{flex-shrink:0;background:none;border:0;border-bottom:2px solid transparent;color:var(--at-text-muted);font:600 13px inherit;font-family:inherit;padding:10px 12px;cursor:pointer;}
.nfo-tabs button.on{color:#fff;border-bottom-color:var(--at-cyan);}
.nfo-pb{padding-top:14px;font-size:13.5px;}
.nfo-sech{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;}.nfo-sech h4{margin:0;font-size:14px;}
.nfo-trow{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:58px;border-bottom:1px solid rgba(22,70,107,.6);}
.nfo-tlink{display:flex;align-items:center;gap:10px;background:none;border:0;color:var(--at-text);font:inherit;font-family:inherit;cursor:pointer;text-align:left;padding:4px;border-radius:8px;}
.nfo-tlink:hover{background:rgba(21,151,255,.1);}.nfo-tlink span{display:flex;flex-direction:column;}.nfo-tlink b{font-size:14px;font-weight:600;}.nfo-tlink small{font-size:12px;color:var(--at-text-muted);}
.nfo-st{font-size:11.5px;padding:3px 9px;border-radius:999px;color:var(--at-success);border:1px solid rgba(20,217,154,.45);}
.nfo-mq{width:100%;box-sizing:border-box;height:38px;margin-bottom:10px;padding:0 12px;border-radius:10px;border:1px solid var(--at-border);background:var(--at-surface-raised);color:var(--at-text);font:400 13px inherit;font-family:inherit;}
.nfo-tbl{width:100%;border-collapse:collapse;font-size:12.5px;}.nfo-tbl th{text-align:left;color:var(--at-text-subtle);font-weight:600;padding:6px 6px;border-bottom:1px solid var(--at-border);}.nfo-tbl td{padding:8px 6px;border-bottom:1px solid rgba(22,70,107,.5);overflow-wrap:anywhere;}
.nfo-pg{display:flex;align-items:center;justify-content:space-between;margin-top:10px;font-size:12px;color:var(--at-text-muted);}
.nfo-kv{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid rgba(22,70,107,.5);}.nfo-kv span{color:var(--at-text-muted);}.nfo-kv b{font-weight:600;text-align:right;overflow-wrap:anywhere;}
.nfo-note{margin:0 0 10px;font-size:12px;color:var(--at-text-subtle);line-height:1.5;}
.nfo-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--at-text-muted);}
.nfo-foot i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;}.nfo-foot .g{background:#F7C948;}.nfo-foot .b{background:#4B7BFF;}.nfo-foot .t{background:#00DCC8;}
.nfo-foot em{margin-left:auto;font-style:normal;color:var(--at-text-subtle);}
@media (max-width:900px){
  .nfo-panel{position:fixed;inset:0;width:auto;z-index:4000;border-radius:0;}
  .nf-main.nf-org .nf-center{overflow:visible;}.nfo-work{min-height:62vh;}
}
@media (prefers-reduced-motion:reduce){.nfo-panel{animation:none;}.nfo-card{transition:none;}}

/* ═══ Visual system v2.3 (Master Spec §2 "Visual implementation override") ═══════════════════════════════
   Tokens below are the spec's starting values; older token names above are re-pointed so every rule picks them up. */
:root{
  --at-bg:#04101f; --at-bg-deep:#020b16; --at-bg-raised:#071b30; --at-sidebar-top:#0b2545; --at-sidebar-bottom:#111a3b;
  --at-glass:rgba(8,31,54,.72); --at-glass-strong:rgba(7,26,47,.88); --at-glass-soft:rgba(14,43,70,.52);
  --at-border:rgba(39,139,205,.38); --at-border-strong:rgba(25,166,255,.68);
  --at-blue:#087bff; --at-blue-bright:#1596ff; --at-blue-deep:#0754d8; --at-cyan:#00d5f2; --at-cyan-soft:#53e7f5;
  --at-gold:#f5c84b; --at-gold-soft:#ffe28a; --at-teal:#00d6c8; --at-success:#14d99a; --at-warning:#ffbd4a; --at-danger:#ff5577;
  --at-text:#f3f7ff; --at-text-secondary:#b4c5d9; --at-text-muted:#b4c5d9; --at-text-subtle:#7f95ad; --at-divider:rgba(110,161,201,.20);
  --at-surface:#071b30; --at-surface-raised:rgba(14,43,70,.62);
  --at-ease:cubic-bezier(.2,.8,.2,1);
  --at-glass-shadow:0 10px 30px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.06);
}
.content.nf-mode{background:radial-gradient(1100px 520px at 50% -12%,rgba(21,150,255,.14),transparent 62%),radial-gradient(800px 480px at 100% 100%,rgba(0,213,242,.05),transparent 70%),linear-gradient(180deg,var(--at-bg),var(--at-bg-deep));}
.nf-main{font-size:14px;}
/* glass surfaces: translucent fill, fine blue border, top-edge highlight, restrained shadow */
.nf-card,.nfo-panel,.nf-modal-box{background:linear-gradient(180deg,rgba(14,43,70,.55),rgba(8,31,54,.78)),var(--at-glass);border:1px solid var(--at-border);box-shadow:var(--at-glass-shadow);}
.nf-card{border-radius:16px;transition:border-color .18s ease-out,box-shadow .18s ease-out,transform .18s ease-out;}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .nf-card,.nfo-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);}
}
.nfp:hover,.nfr:hover{border-color:var(--at-border-strong);}
.nfs:hover{border-color:rgba(25,166,255,.5);}
.nf-card h3{font-size:16px;font-weight:700;}
.nfp-body{font-size:15px;line-height:1.6;}
.nfp-name{font-size:14.5px;font-weight:650;}
.nfp-time,.nfp-counts{font-size:12px;}
.nfp-media,.nfp-img{border-radius:12px;}
.nfp-actions{border-top:1px solid var(--at-divider);}
/* tabs: one glass container, transparent inactive tabs, gradient active tab */
.nf-tabs{padding:6px;border-radius:14px;background:var(--at-glass-strong);border:1px solid var(--at-border);box-shadow:var(--at-glass-shadow);}
.nf-tab{height:36px;padding:0 16px;border-radius:10px;transition:background .15s ease-out,color .15s ease-out,box-shadow .15s ease-out;}
.nf-tab:hover{background:rgba(21,150,255,.10);}
.nf-tab.active{background:linear-gradient(135deg,var(--at-blue-bright),var(--at-blue-deep));border-color:rgba(83,231,245,.35);box-shadow:0 4px 16px rgba(8,123,255,.35);}
/* composer + buttons + inputs */
.nfc textarea,.nfp-cf input,.nfo-search,.nfo-mq,.nfp-edit{background:rgba(2,11,22,.55);border:1px solid var(--at-border);border-radius:12px;}
.nfc textarea{padding:14px 16px;}
.nfc textarea:focus,.nfp-cf input:focus,.nfo-search:focus-within{outline:2px solid rgba(0,213,242,.55);outline-offset:0;border-color:var(--at-border-strong);}
.nfc-act{height:30px;padding:0 10px;font-size:12px;border-radius:9px;background:var(--at-glass-soft);}
.nfc-act svg{width:14px;height:14px;}
.nfc-post,.nfp-btn.ok,.nfs-follow{background:linear-gradient(135deg,var(--at-blue),var(--at-blue-deep));border:1px solid rgba(21,150,255,.55);box-shadow:0 4px 14px rgba(8,123,255,.28);transition:filter .15s ease-out,box-shadow .15s ease-out,transform .12s ease-out;}
.nfc-post{height:40px;padding:0 22px;}
.nfc-post:hover:not(:disabled),.nfp-btn.ok:hover:not(:disabled),.nfs-follow:hover:not(:disabled){filter:brightness(1.12);box-shadow:0 6px 18px rgba(8,123,255,.38);}
.nfc-post:active:not(:disabled),.nfp-btn:active:not(:disabled){transform:translateY(1px);filter:brightness(.95);}
.nfp-btn,.nfo-b,.nfc-act{transition:border-color .15s ease-out,background .15s ease-out,color .15s ease-out;}
.nfp-btn:hover:not(:disabled),.nfo-b:hover:not(:disabled),.nfc-act:hover{background:rgba(21,150,255,.14);border-color:var(--at-border-strong);}
.nfs-follow.on{background:var(--at-glass-soft);border-color:var(--at-border);box-shadow:none;color:var(--at-text-secondary);}
.nfc-prog i{transition:width .15s linear;}
.nf-card:focus-visible,.nfs-avb:focus-visible,.nfs-more:focus-visible{outline:2px solid var(--at-cyan);outline-offset:2px;}
/* right sidebar: Online Members avatar row, event date tiles, chat bubbles */
.nf-right{gap:14px;}
.nfs{padding:16px;}
.nfs-h h3{font-size:16px;}
.nfs-link{color:var(--at-blue-bright);font-size:12.5px;}
.nfs-avs{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
.nfs-avb,.nfs-more{display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:none;cursor:pointer;border-radius:50%;}
.nfs-avb .nfp-av{border:2px solid rgba(0,213,242,.5);}
.nfs-avb:hover .nfp-av{border-color:var(--at-cyan-soft);}
.nfs-more{width:42px;height:42px;border:1px solid var(--at-border);background:var(--at-glass-soft);color:var(--at-text-secondary);font:600 12.5px inherit;font-family:inherit;font-variant-numeric:tabular-nums;}
.nfs-more:hover{border-color:var(--at-border-strong);color:#fff;}
.nfs-dot{background:var(--at-success);border:2px solid #071b30;width:11px;height:11px;}
.nfs-ev li{align-items:center;gap:12px;}
.nfs-tile{flex-shrink:0;width:46px;height:50px;border-radius:12px;border:1px solid rgba(0,213,242,.4);background:rgba(2,11,22,.55);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;}
.nfs-tile small{font:700 10px/1 inherit;font-family:inherit;letter-spacing:.1em;text-transform:uppercase;color:var(--at-cyan);}
.nfs-tile b{margin-top:4px;font-size:19px;font-weight:700;color:var(--at-text);font-variant-numeric:tabular-nums;}
.nfs-evt{flex:1;}
.nfs-evr{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;}
.nfs-evr small{font-size:11px;color:var(--at-text-subtle);font-variant-numeric:tabular-nums;}
.nfs-pill.on{color:var(--at-cyan-soft);border-color:rgba(0,213,242,.45);background:rgba(0,213,242,.08);}
.nfs-pill.in{color:var(--at-success);border-color:rgba(20,217,154,.45);background:rgba(20,217,154,.08);}
.nfs-m{background:var(--at-glass-soft);border:1px solid var(--at-divider);}
.nfs-m.mine{background:rgba(21,150,255,.26);border-color:rgba(21,150,255,.4);}
.nfs-m span{font-size:11px;}
/* modals: glass, short settle-in, reversible */
.nf-modal{background:rgba(1,8,18,.72);animation:nfFade .2s ease-out both;}
.nf-modal-box{border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 1px rgba(21,150,255,.12),inset 0 1px 0 rgba(255,255,255,.06);animation:nfSettle .22s var(--at-ease) both;}
.nf-modal.closing{animation:nfFadeOut .18s ease-in both;pointer-events:none;}
.nf-modal.closing .nf-modal-box{animation:nfSettleOut .18s ease-in both;}
.nfr-full .nf-modal-box,.nf-modal:has(.nfr-full) .nf-modal-box{width:min(780px,100%);max-height:86vh;}
.nfs-prof{}
.nf-modal:has(.nfs-prof) .nf-modal-box{width:min(340px,100%);}
.nfr-stars{color:var(--at-gold);}
@keyframes nfFade{from{opacity:0}to{opacity:1}}
@keyframes nfFadeOut{to{opacity:0}}
@keyframes nfSettle{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes nfSettleOut{to{opacity:0;transform:translateY(6px)}}
@keyframes nfIn2{from{opacity:0}to{opacity:1}}
.nfp.nf-fresh{animation:nfIn2 .2s ease-out both;}
.nfl-new button{transition:filter .15s ease-out;}
/* Organizational Chart: gold / blue / teal hierarchy */
.nfo-vp{border-radius:18px;background:radial-gradient(760px 380px at 50% 0%,rgba(0,213,242,.08),transparent 70%),linear-gradient(180deg,rgba(8,31,54,.55),rgba(2,11,22,.72));box-shadow:var(--at-glass-shadow);animation:nfIn2 .25s ease-out both;}
.nfo-lines path{stroke-width:2;opacity:.85;}
.nfo-lines .cf{stroke:var(--at-gold);}.nfo-lines .mc{stroke:var(--at-blue-bright);}.nfo-lines .sc{stroke:var(--at-teal);}
.nfo-frame{border:1px solid rgba(245,200,75,.5);border-radius:22px;background:linear-gradient(180deg,rgba(245,200,75,.09),rgba(245,200,75,.015));box-shadow:0 0 28px rgba(245,200,75,.07),inset 0 1px 0 rgba(255,255,255,.05);}
.nfo-core{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--at-gold);top:12px;}
.nfo-core svg{width:16px;height:16px;}
.nfo-core b{font:700 12px/1 inherit;font-family:inherit;letter-spacing:.2em;}
.nfo-core em{font:500 11px/1 inherit;font-family:inherit;font-style:normal;letter-spacing:.04em;color:var(--at-gold-soft);opacity:.8;}
.nfo-core2{height:34px;flex-direction:row;}
.nfo-core2 .nfo-core{flex-direction:row;gap:9px;padding:6px 16px;border:1px solid rgba(245,200,75,.4);border-radius:999px;background:rgba(4,16,31,.94);z-index:1;}
.nfo-core2 .nfo-core em{padding-left:9px;border-left:1px solid rgba(245,200,75,.3);}
.nfo-core2 i{display:none;}
.nfo-card{border-radius:16px;background:linear-gradient(180deg,rgba(14,43,70,.7),rgba(8,31,54,.86));box-shadow:var(--at-glass-shadow);transition:transform .18s ease-out,border-color .18s ease-out,box-shadow .18s ease-out,opacity .18s ease-out;}
.nfo-card:hover{transform:translateY(-2px);}
.nfo-card.cf{border:1px solid rgba(245,200,75,.5);border-top:1px solid rgba(245,200,75,.5);background:linear-gradient(180deg,rgba(245,200,75,.10),rgba(8,31,54,.86) 60%);box-shadow:0 0 18px rgba(245,200,75,.08),var(--at-glass-shadow);}
.nfo-card.mc{border:1px solid rgba(21,150,255,.55);border-top:1px solid rgba(21,150,255,.55);box-shadow:0 0 18px rgba(8,123,255,.12),var(--at-glass-shadow);}
.nfo-card.sc{border:1px solid rgba(0,214,200,.4);border-top:1px solid rgba(0,214,200,.4);background:rgba(8,31,54,.72);box-shadow:none;}
.nfo-card.cf .nfo-av{border-color:var(--at-gold);}.nfo-card.mc .nfo-av{border-color:var(--at-blue-bright);}.nfo-card.sc .nfo-av{border-color:var(--at-teal);}
.nfo-card.sel{border-color:var(--at-cyan);box-shadow:0 0 0 1px rgba(0,213,242,.9),0 0 22px rgba(0,213,242,.2);}
.nfo-card.hit{border-color:var(--at-gold);}
.nfo-team{position:absolute;box-sizing:border-box;border:1px solid rgba(0,214,200,.38);border-radius:16px;background:linear-gradient(180deg,rgba(0,214,200,.08),rgba(0,214,200,.015));box-shadow:inset 0 1px 0 rgba(255,255,255,.05);pointer-events:none;}
.nfo-teamh{display:flex;align-items:center;gap:8px;padding:11px 14px;color:var(--at-teal);}
.nfo-teamh svg{width:16px;height:16px;flex-shrink:0;}
.nfo-teamh b{flex:1;min-width:0;font:650 12.5px/1 inherit;font-family:inherit;color:var(--at-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nfo-teamh em{font:600 11px/1 inherit;font-family:inherit;font-style:normal;padding:3px 8px;border-radius:999px;border:1px solid rgba(0,214,200,.4);font-variant-numeric:tabular-nums;}
.nfo-badge.cf{color:var(--at-gold);}.nfo-badge.mc{color:#8fc4ff;}.nfo-badge.sc{color:var(--at-teal);}
.nfo-tog{background:var(--at-bg-raised);border-color:rgba(0,213,242,.6);transition:background .15s ease-out;}.nfo-tog:hover{background:rgba(21,150,255,.25);}
.nfo-b.primary{background:linear-gradient(135deg,var(--at-blue-bright),var(--at-blue-deep));box-shadow:0 4px 14px rgba(8,123,255,.3);}
.nfo-panel{border-radius:18px;animation:nfoIn .22s var(--at-ease) both;}
.nfo-foot .g{background:var(--at-gold);}.nfo-foot .b{background:var(--at-blue-bright);}.nfo-foot .t{background:var(--at-teal);}
/* sidebar: gradient + glass active item */
.nf-item.active{background:linear-gradient(135deg,rgba(21,150,255,.38),rgba(8,123,255,.16));border-color:rgba(83,231,245,.42);box-shadow:0 0 12px rgba(21,150,255,.16);}
.nf-item,.nf-sec-head{height:42px;padding-top:0;padding-bottom:0;}
/* skeletons (static under reduced motion) */
.nf-skel{height:14px;border-radius:7px;background:linear-gradient(90deg,rgba(110,161,201,.08),rgba(110,161,201,.16),rgba(110,161,201,.08));background-size:200% 100%;animation:nfShim 1.4s linear infinite;}
@keyframes nfShim{from{background-position:200% 0}to{background-position:-200% 0}}
/* reduced motion: keep immediate state changes, drop decorative movement */
@media (prefers-reduced-motion:reduce){
  .nf-modal,.nf-modal-box,.nf-modal.closing,.nfp.nf-fresh,.nfo-vp,.nfo-panel,.nf-skel{animation:none !important;}
  .nf-card,.nfo-card,.nf-tab,.nfp-btn,.nfc-post,.nfo-b,.nfs-follow,.nf-item{transition:none !important;}
  .nfo-card:hover{transform:none;}
}
@media (max-width:1100px){      /* tablet/mobile: right widgets move below the feed instead of disappearing */
  .content.nf-mode{overflow-y:auto;}
  .nf-main{flex-direction:column;height:auto;padding:0 14px;}
  .nf-center,.nf-right{overflow:visible;flex:none;}
  .nf-right{display:flex;width:auto;padding-top:0;}
  #view-traders-hub.active{height:auto;min-height:100%;}
  .nf-main.nf-org .nf-center{overflow:visible;}.nf-main.nf-org .nfo-work{min-height:62vh;}
}

/* ═══ Spec v2.4 §19–20: centred feed column + stronger glass ═══════════════════════════════════════════
   The centre column keeps scrolling at full width (scrollbar stays at the edge); its content is capped. */
.nf-main:not(.nf-org) .nf-center>*{width:100%;max-width:760px;margin-left:auto;margin-right:auto;box-sizing:border-box;}
.nf-main{padding:0 24px;}
.nf-center{padding-left:4px;padding-right:4px;}

/* canvas: the supplied candlestick artwork sits once at the top (cover, no tiling) over a near-black navy base that
   takes over toward the bottom; a short fade keeps the lower part clean. Glass cards sit above it. */
.content.nf-mode{background:
  linear-gradient(180deg,rgba(2,11,24,0) 0,rgba(2,11,24,0) 35%,rgba(2,11,24,.55) 75%,#020b18 100%),
  url(/trader-space/nf-bg.webp) center top/cover no-repeat,
  #020b18;}

/* primary surfaces: translucent, lighter at the top, blur + saturation, fine border, top highlight */
.nf-card,.nf-tabs,.nfo-panel{
  position:relative;
  background:linear-gradient(180deg,rgba(30,92,140,.26),rgba(8,31,54,.10) 55%),rgba(8,31,54,.56);
  border:1px solid rgba(56,164,226,.34);
  box-shadow:0 10px 30px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.07);}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .nf-card,.nf-tabs,.nfo-panel{-webkit-backdrop-filter:blur(16px) saturate(125%);backdrop-filter:blur(16px) saturate(125%);}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .nf-card,.nf-tabs,.nfo-panel{background:linear-gradient(180deg,rgba(18,58,92,.9),rgba(8,31,54,.92));}
}
.nf-modal-box{background:linear-gradient(180deg,rgba(24,74,114,.5),rgba(8,31,54,.82)),rgba(6,24,43,.86);-webkit-backdrop-filter:blur(18px) saturate(125%);backdrop-filter:blur(18px) saturate(125%);}
/* soft sheen inside each card (never intercepts clicks) */
.nf-card{isolation:isolate;}
.nf-card::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(160deg,rgba(120,200,255,.07),transparent 38%);}
.nf-modal-box .nf-card::before{display:none;}
/* nested surfaces sit one step darker than their parent so the layering is visible */
.nfs-tile,.nfp-img,.nfp-media,.nfr-prev,.nfs-m{background:rgba(2,11,22,.42);}
.nfs-ev li,.nfs-sg li{background:rgba(2,11,22,.30);border:1px solid rgba(110,161,201,.14);border-radius:12px;padding:8px 10px;}
.nfs-m{border:1px solid rgba(110,161,201,.16);}
.nfs-m.mine{background:rgba(21,150,255,.28);}
.nfc textarea,.nfp-cf input,.nfp-edit{background:rgba(2,11,22,.45);border-color:rgba(56,164,226,.30);}
/* hover: border brightens, small blue glow, no layout shift */
.nfp:hover,.nfr:hover,.nfs:hover{border-color:rgba(56,164,226,.55);box-shadow:0 10px 30px rgba(0,0,0,.26),0 0 0 1px rgba(21,150,255,.12),0 0 18px rgba(21,150,255,.10),inset 0 1px 0 rgba(255,255,255,.08);}
/* cards on the chart keep their own tier colours; the chart canvas stays full width */
.nfo-vp{background:radial-gradient(760px 380px at 50% 0%,rgba(0,213,242,.07),transparent 70%),linear-gradient(180deg,rgba(8,31,54,.46),rgba(2,11,22,.62));}

@media (max-width:1100px){.nf-main{padding:0 14px;}.nf-main:not(.nf-org) .nf-center>*{max-width:none;}}

/* ── Glowing glass button system (reference: "All Posts" button) ───────────
   One shared family for every Trader Space button / tab. Tokens first, then one grouped rule.
   Default = restrained; hover = stronger; selected (.active/.on) = strongest permitted. No size or layout change between states. */
:root{
  --nfb-fill:linear-gradient(180deg,rgba(26,92,170,.30),rgba(6,24,52,.62) 55%,rgba(8,34,72,.40));
  --nfb-fill-hover:linear-gradient(180deg,rgba(34,118,214,.42),rgba(8,32,66,.64) 55%,rgba(10,46,96,.52));
  --nfb-fill-sel:linear-gradient(180deg,rgba(40,134,240,.50),rgba(9,38,80,.66) 52%,rgba(14,62,130,.58));
  --nfb-border:rgba(48,134,255,.62); --nfb-border-hover:rgba(70,160,255,.88); --nfb-border-sel:rgba(84,176,255,1);
  --nfb-glow:0 0 10px rgba(30,120,255,.20); --nfb-glow-hover:0 0 14px rgba(30,130,255,.34),0 4px 14px rgba(0,0,0,.30);
  --nfb-glow-sel:0 0 18px rgba(40,140,255,.46),0 0 4px rgba(60,160,255,.5);
  --nfb-cyan:rgba(70,225,255,.55); --nfb-cyan-hover:rgba(90,235,255,.85); --nfb-cyan-sel:rgba(120,240,255,1);
  --nfb-text:#f3f8ff; --nfb-radius:14px; --nfb-ease:200ms cubic-bezier(.2,.8,.2,1);
}
.nf-tab,.nfc-act,.nfc-post,.nfp-btn,.nfs-follow,.nfo-b,.nfp-actions button,.nf-modal-x,.nfo-x,.nfl-new button,.nfo-tabs button,.nfp-ic{
  --_cy:var(--nfb-cyan);
  box-sizing:border-box;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  color:var(--nfb-text);font-family:inherit;font-weight:600;letter-spacing:.01em;text-align:center;
  border:1px solid var(--nfb-border);border-radius:var(--nfb-radius);
  background:
    linear-gradient(90deg,transparent,var(--_cy),transparent) top center/62% 1px no-repeat,
    linear-gradient(90deg,transparent,var(--_cy),transparent) bottom center/62% 1px no-repeat,
    var(--nfb-fill);
  background-origin:border-box;
  box-shadow:var(--nfb-glow),inset 0 1px 0 rgba(255,255,255,.07);
  transition:border-color var(--nfb-ease),box-shadow var(--nfb-ease),background var(--nfb-ease),color var(--nfb-ease),opacity var(--nfb-ease);
  cursor:pointer;text-decoration:none;
}
.nf-tab,.nfo-tabs button{height:38px;padding:0 18px;font-size:13px;line-height:1;}
.nfc-act{height:32px;padding:0 12px;font-size:12px;border-radius:12px;}
.nfc-post{height:38px;padding:0 24px;font-size:13px;}
.nfp-btn{height:34px;padding:0 16px;font-size:12.5px;border-radius:12px;}
.nfs-follow{height:30px;padding:0 14px;font-size:12px;border-radius:11px;}
.nfo-b{border-radius:12px;}
.nfp-actions{gap:8px;padding:8px 6px;}
.nfp-actions button{height:36px;padding:0 6px;font-size:13px;border-radius:12px;}
.nfl-new button{height:34px;padding:0 18px;font-size:12.5px;border-radius:999px;}
.nf-modal-x,.nfp-ic{border-radius:12px;}
.nfp-ic{min-width:34px;min-height:34px;padding:6px;}
.nf-tabs{gap:8px;}
.nfc-act svg,.nfp-actions button svg,.nfo-b svg{width:15px;height:15px;flex:none;}
/* hover — brighter border + edge light + soft shadow; no size change */
.nf-tab:hover,.nfc-act:hover,.nfc-post:hover:not(:disabled),.nfp-btn:hover:not(:disabled),.nfs-follow:hover:not(:disabled),.nfo-b:hover:not(:disabled),
.nfp-actions button:hover,.nf-modal-x:hover,.nfo-x:hover,.nfl-new button:hover,.nfo-tabs button:hover,.nfp-ic:hover{
  --_cy:var(--nfb-cyan-hover);border-color:var(--nfb-border-hover);color:#fff;filter:none;
  background:linear-gradient(90deg,transparent,var(--_cy),transparent) top center/72% 1px no-repeat,linear-gradient(90deg,transparent,var(--_cy),transparent) bottom center/72% 1px no-repeat,var(--nfb-fill-hover);
  background-origin:border-box;box-shadow:var(--nfb-glow-hover),inset 0 1px 0 rgba(255,255,255,.10);
}
/* selected — strongest permitted state */
.nf-tab.active,.nfc-act.on,.nfo-tabs button.on,.nfp-btn.ok,.nfo-b.primary,.nfs-follow:not(.on),.nfc-post{
  --_cy:var(--nfb-cyan-sel);border-color:var(--nfb-border-sel);color:#fff;
  background:linear-gradient(90deg,transparent,var(--_cy),transparent) top center/78% 1.5px no-repeat,linear-gradient(90deg,transparent,var(--_cy),transparent) bottom center/78% 1.5px no-repeat,var(--nfb-fill-sel);
  background-origin:border-box;box-shadow:var(--nfb-glow-sel),inset 0 1px 0 rgba(255,255,255,.12);
}
.nfp-btn.ok:hover:not(:disabled),.nfo-b.primary:hover:not(:disabled),.nfs-follow:not(.on):hover:not(:disabled),.nfc-post:hover:not(:disabled),.nf-tab.active:hover,.nfc-act.on:hover,.nfo-tabs button.on:hover{
  box-shadow:0 0 22px rgba(50,150,255,.55),0 0 4px rgba(80,170,255,.6),inset 0 1px 0 rgba(255,255,255,.14);
}
/* liked / following keep their meaning: liked = cyan text on the default glass */
.nfp-actions button.on{color:var(--at-cyan-soft);border-color:var(--nfb-border-hover);}
.nfs-follow.on{color:var(--at-text-secondary);}
/* destructive keeps its red, same shape and glass */
.nfp-btn.no{--_cy:rgba(255,120,140,.6);border-color:rgba(255,101,122,.65);color:#ffb3bf;box-shadow:0 0 10px rgba(255,80,110,.16),inset 0 1px 0 rgba(255,255,255,.06);
  background:linear-gradient(90deg,transparent,var(--_cy),transparent) top center/62% 1px no-repeat,linear-gradient(90deg,transparent,var(--_cy),transparent) bottom center/62% 1px no-repeat,linear-gradient(180deg,rgba(150,30,60,.26),rgba(40,8,22,.6));background-origin:border-box;}
.nfp-btn.no:hover:not(:disabled){border-color:rgba(255,130,150,.9);box-shadow:0 0 14px rgba(255,80,110,.32),0 4px 14px rgba(0,0,0,.3);}
/* pressed — glow drops, interior deepens, no movement */
.nf-tab:active,.nfc-act:active,.nfc-post:active:not(:disabled),.nfp-btn:active:not(:disabled),.nfs-follow:active:not(:disabled),.nfo-b:active:not(:disabled),
.nfp-actions button:active,.nf-modal-x:active,.nfo-x:active,.nfl-new button:active,.nfo-tabs button:active,.nfp-ic:active{
  transform:none;filter:brightness(.88);box-shadow:0 0 6px rgba(30,120,255,.18),inset 0 2px 6px rgba(0,8,24,.5);transition-duration:70ms;
}
/* keyboard focus — cyan ring that sits outside the glow */
.nf-tab:focus-visible,.nfc-act:focus-visible,.nfc-post:focus-visible,.nfp-btn:focus-visible,.nfs-follow:focus-visible,.nfo-b:focus-visible,
.nfp-actions button:focus-visible,.nf-modal-x:focus-visible,.nfo-x:focus-visible,.nfl-new button:focus-visible,.nfo-tabs button:focus-visible,.nfp-ic:focus-visible{
  outline:2px solid var(--at-cyan-soft);outline-offset:3px;
}
/* disabled — dim, no glow, not clickable-looking */
.nf-tab:disabled,.nfc-act:disabled,.nfp-btn:disabled,.nfs-follow:disabled,.nfo-b:disabled,.nfp-actions button:disabled,.nfp-ic:disabled{
  opacity:.42;cursor:not-allowed;box-shadow:none;filter:saturate(.6);border-color:rgba(70,110,160,.4);
  background:var(--nfb-fill);background-origin:border-box;
}
/* loading — same size; busy buttons (Posting…, Sending) keep their label plus a compact spinner and ignore clicks */
.nfc-post:disabled,.nfp-btn[aria-busy="true"],.nfs-follow[aria-busy="true"]{opacity:.8;cursor:progress;box-shadow:var(--nfb-glow);filter:none;pointer-events:none;}
.nfc-post:disabled::before{content:"";width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:nfb-spin .8s linear infinite;flex:none;}
@keyframes nfb-spin{to{transform:rotate(360deg);}}
/* the coach-panel tab strip becomes a row of glass pills */
.nfo-tabs{gap:8px;padding-bottom:10px;}
.nfo-tabs button{border-bottom:1px solid var(--nfb-border);height:34px;padding:0 14px;font-size:12.5px;}
.nfo-tabs button.on{border-bottom-color:var(--nfb-border-sel);}
@media (max-width:760px){ .nf-tab,.nfo-tabs button{padding:0 14px;} .nfp-actions{gap:6px;} .nfp-actions button span{font-size:12px;} }
@media (prefers-reduced-motion:reduce){ .nf-tab,.nfc-act,.nfc-post,.nfp-btn,.nfs-follow,.nfo-b,.nfp-actions button,.nf-modal-x,.nfo-x,.nfl-new button,.nfo-tabs button,.nfp-ic{transition:none !important;} .nfc-post:disabled::before{animation:none;} }

/* ── Header: transparent Trader Space logo + five glass tabs, one row; slim bar ≈55 px ── */
.topbar.nf-head-on{background:radial-gradient(60% 140% at 12% 50%,rgba(0,123,255,.16),transparent 70%),radial-gradient(50% 160% at 80% 40%,rgba(5,35,72,.55),transparent 75%),#020b18;padding:9px 22px;border-bottom-color:rgba(48,134,255,.18);}
.topbar.nf-head-on #page-title{display:none;}
.nf-head{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:18px;}
.nf-logo-wrap{flex:0 0 119px;width:119px;position:relative;display:flex;align-items:center;}
.nf-logo-wrap::before{content:none;}   /* no glow behind the logo */
.nf-logo{position:relative;top:3px;z-index:1;display:block;width:100%;height:auto;object-fit:contain;background:transparent;
  /* the supplied art has dark-navy letters; this lifts only the dark pixels to silver-white (as in the reference) and leaves the blue/cyan untouched */
  filter:none;}   /* flat logo: no glow or shadow */
.nf-head .nf-tabs{position:static;flex:0 1 auto;min-width:0;margin:0;padding:0;gap:8px;border:0;border-radius:0;background:none;box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;scrollbar-width:none;}
.nf-head .nf-tabs::-webkit-scrollbar{display:none;}
.nf-head .nf-tab{flex:none;white-space:nowrap;height:32px;padding:0 13px;font-size:12px;font-weight:600;border-radius:12px;}
@media (max-width:1100px){ .nf-logo-wrap{flex-basis:95px;width:95px;} .nf-head{gap:14px;} .nf-head .nf-tab{padding:0 14px;} }
@media (max-width:760px){ .topbar.nf-head-on{padding:7px 12px;} .nf-logo-wrap{flex-basis:84px;width:84px;} .nf-head .nf-tab{height:34px;padding:0 12px;font-size:12px;} }

/* ── Top-right account cluster (Messenger · Notifications · Profile) — every staff page ── */
.nftop{display:flex;align-items:center;gap:8px;margin-left:6px;flex-shrink:0;
  --nft-btn:#e4e6eb;--nft-btn-h:#d8dadf;--nft-ic:#1f2937;--nft-bd:transparent;--nft-pop:#fff;--nft-pop-bd:#e5e7eb;--nft-tx:#111827;--nft-mut:#6b7280;--nft-row-h:#f3f4f6;--nft-unread:#eff6ff;--nft-sh:0 12px 32px rgba(0,0,0,.18);}
.topbar.nf-head-on .nftop,.topbar.an-dark .nftop{--nft-btn:rgba(8,32,60,.72);--nft-btn-h:rgba(14,52,92,.85);--nft-ic:#e8f4ff;--nft-bd:rgba(48,134,255,.35);--nft-pop:#071a30;--nft-pop-bd:rgba(48,134,255,.35);--nft-tx:#eaf4ff;--nft-mut:#8fb0cf;--nft-row-h:rgba(21,151,255,.12);--nft-unread:rgba(21,151,255,.10);--nft-sh:0 14px 36px rgba(0,0,0,.55),0 0 18px rgba(0,119,255,.18);}
.nft-wrap{position:relative;}
.nft-btn{position:relative;width:40px;height:40px;border-radius:50%;border:1px solid var(--nft-bd);background:var(--nft-btn);color:var(--nft-ic);display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background .2s ease,box-shadow .2s ease;}
.nft-btn:hover,.nft-btn[aria-expanded="true"]{background:var(--nft-btn-h);}
.nft-btn:focus-visible{outline:2px solid #24c7f4;outline-offset:2px;}
.topbar.nf-head-on .nft-btn:hover,.topbar.nf-head-on .nft-btn[aria-expanded="true"]{box-shadow:0 0 14px rgba(21,151,255,.35);}
.nft-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.nft-btn img,.nft-ini{border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:13px;flex-shrink:0;}
.nft-btn img,.nft-btn .nft-ini{width:100%;height:100%;}
.nft-btn.nft-me{padding:0;}
.nft-sys{background:#d97706;}
.nft-chev{position:absolute;right:-3px;bottom:-3px;width:16px;height:16px;border-radius:50%;background:var(--nft-btn);border:1px solid var(--nft-bd);display:flex;align-items:center;justify-content:center;}
.nft-chev svg{width:12px;height:12px;stroke-width:2.4;}
.nft-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e41e3f;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;box-sizing:border-box;}
.nft-badge[hidden]{display:none;}
.nft-menu{position:absolute;top:48px;right:0;z-index:4002;background:var(--nft-pop);border:1px solid var(--nft-pop-bd);border-radius:14px;box-shadow:var(--nft-sh);color:var(--nft-tx);padding:8px;}
.nft-menu[hidden]{display:none;}
.nft-bell{width:360px;max-width:calc(100vw - 24px);max-height:70vh;overflow-y:auto;overscroll-behavior:contain;}
.nft-acct{width:260px;}
.nft-mh{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 8px;font-size:16px;}
.nft-mh button{background:none;border:0;color:#1597ff;font-size:12.5px;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:6px;}
.nft-mh button:hover{background:var(--nft-row-h);}
.nft-bell ul{list-style:none;margin:0;padding:0;}
.nft-bell li{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:10px;cursor:default;}
.nft-bell li[data-go]{cursor:pointer;}
.nft-bell li:hover{background:var(--nft-row-h);}
.nft-bell li.unread{background:var(--nft-unread);}
.nft-tx{flex:1;min-width:0;}
.nft-tx p{margin:0;font-size:13.5px;line-height:1.35;color:var(--nft-tx);}
.nft-tx i{display:block;font-style:normal;color:var(--nft-mut);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nft-tx small{color:#1597ff;font-size:11.5px;font-weight:600;}
.nft-dot{width:10px;height:10px;border-radius:50%;background:#1597ff;flex-shrink:0;}
.nft-empty{margin:0;padding:22px 10px;text-align:center;color:var(--nft-mut);font-size:13.5px;}
.nft-who{display:flex;align-items:center;gap:10px;padding:8px;border-bottom:1px solid var(--nft-pop-bd);margin-bottom:6px;}
.nft-who b{display:block;font-size:14px;}
.nft-who small{color:var(--nft-mut);font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;}
.nft-acct button{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;color:var(--nft-tx);font-size:13.5px;padding:10px;border-radius:9px;cursor:pointer;text-align:left;}
.nft-acct button:hover{background:var(--nft-row-h);}
.nft-acct button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
/* The Messenger button replaces the floating chat bubble; the phone layout keeps its own account button. */
@media (max-width:768px){
  /* phone: only the bell stays in the header (the rest live in the account menu / tab row) */
  .nftop{margin:0 6px 0 0;order:-1;}
  .nftop > :not(.nft-wrap), .nftop > .nft-wrap:has(#nftop-me){display:none;}
  .nftop .nft-btn{width:44px;height:44px;flex:none;}
  #nftop-bell-menu{position:fixed;top:64px;left:12px;right:12px;width:auto;max-width:none;max-height:75vh;}
}
@media (prefers-reduced-motion:reduce){ .nft-btn{transition:none;} }
.topbar.nf-head-on .nft-btn{width:34px;height:34px;}   /* keeps the slim Trader Space bar (~52 px) */
.topbar.nf-head-on .nft-btn svg{width:19px;height:19px;}
.topbar.nf-head-on .nftop{gap:7px;}
/* Dropdowns must float above the page (Trader Space glass cards create their own stacking layers) + roomier spacing */
body.nftop-on .topbar{position:relative;z-index:60;}
.nftop{gap:14px;margin-left:12px;}
.topbar.nf-head-on .nftop{gap:14px;}
.nft-btn.nft-me{margin-right:4px;}
.nft-btn.on{background:var(--nft-btn-h);border-color:rgba(36,199,244,.7);box-shadow:0 0 14px rgba(21,151,255,.4);color:#24c7f4;}

/* ── Icon-only header navigation (no boxes): soft-white icons, electric-blue active icon + thin underline, tooltip names ── */
#nf-head{gap:28px;}
#nf-head .nf-tabs{overflow:visible;gap:38px;align-items:center;}   /* six icons now: 38px keeps the row as wide as the old five at 56px, so it stays centred over the feed */
#nf-head .nf-tab,#nf-head .nf-tab:hover,#nf-head .nf-tab:active,#nf-head .nf-tab.active,#nf-head .nf-tab.active:hover{
  position:relative;width:26px;height:40px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;filter:none;
  display:inline-flex;align-items:center;justify-content:center;color:#c9d6e6;cursor:pointer;
}
#nf-head .nf-tab svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:color .2s ease,filter .2s ease;}
#nf-head .nf-tab:hover{color:#fff;}
#nf-head .nf-tab.active,#nf-head .nf-tab.active:hover{color:#1d8bff;}
#nf-head .nf-tab.active svg{filter:drop-shadow(0 0 5px rgba(29,139,255,.55));}
#nf-head .nf-tab::after{content:"";position:absolute;left:-6px;right:-6px;bottom:2px;height:2px;border-radius:2px;background:#1d8bff;box-shadow:0 0 8px rgba(29,139,255,.7);transform:scaleX(0);transition:transform .2s ease;}
#nf-head .nf-tab.active::after{transform:scaleX(1);}
#nf-head .nf-tab:focus-visible{outline:2px solid var(--at-cyan);outline-offset:3px;border-radius:6px;}
#nf-head .nf-tab::before{content:attr(data-tip);position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);white-space:nowrap;z-index:70;pointer-events:none;
  background:#071a30;color:#eaf4ff;border:1px solid rgba(48,134,255,.35);border-radius:7px;padding:5px 9px;font-size:12px;font-weight:600;opacity:0;transition:opacity .15s ease;}
#nf-head .nf-tab:hover::before,#nf-head .nf-tab:focus-visible::before{opacity:1;}
.topbar.nf-head-on{padding:9px 22px;}
@media (max-width:1100px){ #nf-head .nf-tabs{gap:30px;} #nf-head{gap:20px;} #nf-head .nf-tab{width:26px;padding:0;} }
@media (max-width:760px){ #nf-head .nf-tabs{gap:26px;} #nf-head{gap:14px;} #nf-head .nf-tab{width:24px;height:40px;padding:0;} #nf-head .nf-tab::before{display:none;} }
@media (prefers-reduced-motion:reduce){ #nf-head .nf-tab svg,#nf-head .nf-tab::after,#nf-head .nf-tab::before{transition:none;} }
/* Phone: row 1 = menu · logo · account, row 2 = the five icons centred (instead of three stacked rows) */
@media (max-width:768px){
  .topbar.nf-head-on{flex-wrap:wrap;align-items:center;row-gap:2px;}
  .topbar.nf-head-on .nf-head{display:contents;}
  .topbar.nf-head-on .nf-logo-wrap{order:1;flex:0 0 84px;width:84px;}
  .topbar.nf-head-on .topbar-right{order:2;margin-left:auto;}
  .topbar.nf-head-on #nf-head .nf-tabs{order:3;flex:1 0 100%;justify-content:center;margin:0 !important;}
}

/* ── Reactions: hover (mouse) or press-and-hold (touch) on Like opens the tray ── */
.nfp-likewrap{position:relative;flex:1;display:flex;}
.nfp-likewrap .nfp-like{flex:1;}
.nfp-like.on{color:var(--at-cyan-soft);}
.nfp-rxe{font-style:normal;font-size:17px;line-height:1;}
.nfp-tray{position:absolute;left:0;bottom:calc(100% + 4px);z-index:30;display:flex;gap:2px;padding:6px 8px;border-radius:999px;background:#071a30;border:1px solid rgba(48,134,255,.4);box-shadow:0 10px 28px rgba(0,0,0,.5),0 0 16px rgba(0,119,255,.2);
  opacity:0;visibility:hidden;transform:translateY(6px) scale(.96);transform-origin:left bottom;transition:opacity .15s ease,transform .15s ease,visibility 0s linear .2s;}
.nfp-tray::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px;}   /* bridges the gap so the tray stays open while the pointer travels to it */
.nfp-likewrap:hover .nfp-tray,.nfp-likewrap:focus-within .nfp-tray,.nfp-likewrap.open .nfp-tray{opacity:1;visibility:visible;transform:none;transition:opacity .15s ease .3s,transform .15s ease .3s,visibility 0s linear .3s;}
.nfp-likewrap.shut .nfp-tray,.nfp-likewrap.shut:hover .nfp-tray,.nfp-likewrap.shut:focus-within .nfp-tray{opacity:0;visibility:hidden;transform:translateY(6px);transition:none;pointer-events:none;}   /* just picked a reaction: tray stays shut until the pointer leaves */
.nfp-rxo{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;font-size:26px;line-height:1;border-radius:50%;cursor:pointer;transition:transform .15s ease;user-select:none;}
.nfp-rxo:hover,.nfp-rxo:focus-visible{transform:translateY(-6px) scale(1.3);outline:none;}
.nfp-rx{display:inline-flex;align-items:center;gap:6px;cursor:default;}
.nfp-rx i{font-style:normal;font-size:15px;margin-right:-8px;}
.nfp-rx i:last-of-type{margin-right:0;}
.nfp-rx b{font-weight:600;margin-left:2px;}
@media (hover:none){ .nfp-likewrap:hover:not(.open) .nfp-tray{opacity:0;visibility:hidden;} }
@media (prefers-reduced-motion:reduce){ .nfp-tray,.nfp-rxo{transition:none;} }

/* ── "Who reacted" dialog ── */
.nfp-rx{background:none;border:0;color:inherit;font:inherit;padding:2px 4px;margin:-2px -4px;border-radius:6px;cursor:pointer;}
.nfp-rx:focus-visible{outline:2px solid var(--at-cyan);outline-offset:1px;}
.nfr-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--at-divider,rgba(255,255,255,.1));margin:0 0 8px;padding-right:34px;}
.nfr-tabs button{background:none;border:0;border-bottom:3px solid transparent;color:var(--at-text-muted);font:600 14px/1 inherit;font-family:inherit;padding:10px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.nfr-tabs button i{font-style:normal;font-size:17px;}
.nfr-tabs button:hover{color:#fff;}
.nfr-tabs button.on{color:#1d8bff;border-bottom-color:#1d8bff;}
.nfr-list{list-style:none;margin:0;padding:0;max-height:min(60vh,460px);overflow-y:auto;overscroll-behavior:contain;}
.nfr-list li{display:flex;align-items:center;gap:12px;padding:8px 2px;}
.nfr-av{position:relative;flex:none;display:inline-flex;}
.nfr-b{position:absolute;right:-4px;bottom:-4px;font-style:normal;font-size:13px;line-height:1;width:20px;height:20px;border-radius:50%;background:#071a30;border:1px solid rgba(48,134,255,.4);display:flex;align-items:center;justify-content:center;}
.nfr-who{flex:1;min-width:0;}
.nfr-who b{display:block;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nfr-who small{color:var(--at-text-muted);font-size:12px;}
.nfr-you{color:var(--at-text-muted);font-size:12.5px;font-weight:600;padding:0 10px;}
/* The shared glass button rule sets position:relative; the dialog close buttons must stay pinned to the corner. */
.nf-modal-box .nf-modal-x{position:absolute;top:10px;right:10px;z-index:2;width:30px;height:30px;padding:0;}
.nfo-x{position:absolute;}
.nfp-rx:hover b,.nfp-rx:hover,.nfp-counts .nfp-rx:hover{text-decoration:none;}

/* ── Photo viewer (click a post photo) ── */
.nfp-img img{cursor:zoom-in;}
.nf-lb{position:fixed;inset:0;z-index:6000;background:rgba(1,6,14,.92);display:flex;align-items:center;justify-content:center;animation:nfFade .18s ease-out both;}
.nf-lb-img{max-width:min(94vw,1600px);max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 70px rgba(0,0,0,.6);user-select:none;-webkit-user-drag:none;}
.nf-lb-x,.nf-lb-n{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(48,134,255,.4);background:rgba(8,32,60,.75);color:#eaf4ff;cursor:pointer;padding:0;}
.nf-lb-x{top:16px;right:16px;width:42px;height:42px;}
.nf-lb-x svg{width:20px;height:20px;}
.nf-lb-n{top:50%;transform:translateY(-50%);width:46px;height:46px;font-size:32px;line-height:1;padding-bottom:4px;}
.nf-lb-n.prev{left:16px;} .nf-lb-n.next{right:16px;}
.nf-lb-x:hover,.nf-lb-n:hover{background:rgba(14,52,92,.9);box-shadow:0 0 14px rgba(21,151,255,.4);}
.nf-lb-x:focus-visible,.nf-lb-n:focus-visible{outline:2px solid var(--at-cyan);outline-offset:2px;}
.nf-lb-c{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:#cfe1f3;font-size:13px;background:rgba(8,32,60,.7);padding:4px 12px;border-radius:999px;}
@media (max-width:760px){ .nf-lb-n{width:38px;height:38px;font-size:26px;} .nf-lb-n.prev{left:8px;} .nf-lb-n.next{right:8px;} .nf-lb-x{top:10px;right:10px;} }
@media (prefers-reduced-motion:reduce){ .nf-lb{animation:none;} }


/* ── Organizational Chart — Core Leaders glass design (cards carry their own "Core Leaders" title) ── */
.nfo-world{z-index:1;}
.nfo-lines path{stroke-width:2.5;opacity:.9;filter:drop-shadow(0 0 4px currentColor);}
.nfo-lines .cf{stroke:#E8BC35;color:rgba(232,188,53,.55);}.nfo-lines .mc{stroke:#00B9FF;color:rgba(0,185,255,.5);}
.nfo-card.cf,.nfo-card.mc{padding:24px 26px;gap:0;justify-content:space-between;align-items:stretch;border-radius:20px;background:linear-gradient(145deg,rgba(10,42,72,.86),rgba(2,17,34,.92));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-width:1.5px;border-top-width:1.5px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,opacity .2s;}
.nfo-card.cf{border-color:#E8BC35;box-shadow:0 0 28px rgba(232,188,53,.22),inset 0 1px 0 rgba(255,225,130,.35),0 10px 30px rgba(0,0,0,.4);}
.nfo-card.mc{padding:20px 22px;border-color:#00B9FF;box-shadow:0 0 24px rgba(0,185,255,.2),inset 0 1px 0 rgba(120,220,255,.3),0 10px 30px rgba(0,0,0,.4);}
.nfo-card.cf:hover{border-color:#FFD43B;box-shadow:0 0 36px rgba(232,188,53,.34),inset 0 1px 0 rgba(255,225,130,.45),0 10px 30px rgba(0,0,0,.4);}
.nfo-card.mc:hover{border-color:#5fd8ff;box-shadow:0 0 34px rgba(0,185,255,.34),inset 0 1px 0 rgba(120,220,255,.4),0 10px 30px rgba(0,0,0,.4);}
.nfo-card.cf:hover,.nfo-card.mc:hover{transform:translateY(-2px);}
.nfo-cl{display:flex;align-items:center;justify-content:center;gap:10px;color:#FFD43B;}.nfo-cl svg{width:22px;height:22px;}.nfo-cl b{font-size:18px;font-weight:700;letter-spacing:.2px;}
.nfo-card.mc .nfo-cl b{font-size:16px;}.nfo-card.mc .nfo-cl svg{width:20px;height:20px;}
.nfo-pill{align-self:center;display:inline-flex;align-items:center;height:30px;padding:0 16px;border-radius:999px;border:1px solid;font:500 14px/1 inherit;font-family:inherit;}
.nfo-pill.cf{color:#FFD43B;border-color:rgba(232,188,53,.65);background:rgba(232,188,53,.1);}
.nfo-pill.mc{color:#00C8FF;border-color:rgba(0,185,255,.6);background:rgba(0,150,255,.1);}
.nfo-card.cf .nfo-row,.nfo-card.mc .nfo-row{gap:16px;}
.nfo-card.cf .nfo-av{border:2px solid #E8BC35;font-size:24px;}.nfo-card.mc .nfo-av{border:2px solid #00B9FF;font-size:22px;}
.nfo-card.cf .nfo-name,.nfo-card.mc .nfo-name{font-size:18px;font-weight:700;color:#F3F8FF;}
.nfo-card.cf .nfo-code,.nfo-card.mc .nfo-code{font-size:14.5px;color:#A9BED7;}
.nfo-card.cf .nfo-meta,.nfo-card.mc .nfo-meta{justify-content:center;gap:22px;flex-wrap:nowrap;padding-top:16px;border-top:1px solid rgba(120,170,220,.22);font-size:14px;color:#A9BED7;}
.nfo-card.cf .nfo-meta b,.nfo-card.mc .nfo-meta b{color:#F3F8FF;font-weight:700;}
.nfo-card.cf .nfo-meta span,.nfo-card.mc .nfo-meta span{white-space:nowrap;gap:7px;}.nfo-card.cf .nfo-meta svg,.nfo-card.mc .nfo-meta svg{color:#A9BED7;}
.nfo-card.mc .nfo-meta{gap:16px;}
@media (prefers-reduced-motion:reduce){.nfo-card.cf,.nfo-card.mc{transition:none;}}

/* ── Organizational Chart: translucent glass cards (background shows through; surface only, no layout change) ── */
.nfo-card.cf,.nfo-card.mc{isolation:isolate;overflow:hidden;
  background:linear-gradient(135deg,rgba(24,77,120,.48) 0%,rgba(7,35,65,.58) 45%,rgba(3,19,39,.66) 100%);
  -webkit-backdrop-filter:blur(12px) saturate(145%);backdrop-filter:blur(12px) saturate(145%);}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.nfo-card.cf,.nfo-card.mc{background:linear-gradient(135deg,rgba(14,50,86,.9),rgba(3,19,39,.95));}}
.nfo-card.cf::before,.nfo-card.mc::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  background:linear-gradient(180deg,rgba(170,220,255,.12) 0%,rgba(90,165,220,.045) 28%,rgba(255,255,255,0) 65%);transition:opacity .2s ease;}
.nfo-card.cf::before{background:linear-gradient(180deg,rgba(255,225,150,.16) 0%,rgba(255,200,90,.05) 28%,rgba(255,255,255,0) 65%),linear-gradient(180deg,rgba(170,220,255,.05),rgba(255,255,255,0) 40%);}
.nfo-card.cf::after,.nfo-card.mc::after{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;pointer-events:none;z-index:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);}
.nfo-card.cf>*,.nfo-card.mc>*{position:relative;z-index:1;}
.nfo-card.cf{border:1px solid rgba(255,207,65,.72);box-shadow:inset 0 1px 0 rgba(255,235,170,.2),inset 0 -1px 0 rgba(255,190,50,.08),0 8px 28px rgba(0,0,0,.24),0 0 18px rgba(255,200,60,.14);}
.nfo-card.mc{border:1px solid rgba(0,190,255,.58);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(30,150,255,.08),0 8px 28px rgba(0,0,0,.22),0 0 16px rgba(0,130,255,.12);}
.nfo-card.cf:hover{border-color:rgba(255,222,110,.95);box-shadow:inset 0 1px 0 rgba(255,235,170,.3),inset 0 -1px 0 rgba(255,190,50,.1),0 10px 30px rgba(0,0,0,.26),0 0 26px rgba(255,200,60,.26);}
.nfo-card.mc:hover{border-color:rgba(90,220,255,.9);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(30,150,255,.12),0 10px 30px rgba(0,0,0,.24),0 0 26px rgba(0,150,255,.26);}
.nfo-card.cf:hover::before,.nfo-card.mc:hover::before{opacity:1.6;filter:brightness(1.35);}
.nfo-card.cf.sel,.nfo-card.mc.sel{border-color:#00D9F5;}

/* Org chart connectors as glass tubes: wide translucent body, tinted core, thin bright highlight on the upper-left edge */
.nfo-lines path{filter:none;stroke-linejoin:round;}
.nfo-lines .gb{stroke-width:8;opacity:.2;}
.nfo-lines .gl{stroke-width:3;opacity:.7;}
.nfo-lines .gh{stroke:rgba(235,248,255,.8);stroke-width:1;opacity:.75;}
.nfo-lines .cf.gb{filter:drop-shadow(0 0 5px rgba(255,200,60,.5));}.nfo-lines .mc.gb{filter:drop-shadow(0 0 5px rgba(0,170,255,.5));}.nfo-lines .sc.gb{filter:drop-shadow(0 0 5px rgba(0,220,200,.5));}

/* Energy flow: a bright segment travels Co-Founders → junction → Master Coaches → Sub Coaches over the glass lines (one 3.2s cycle, each stage takes its turn) */
.nfo-lines .gf{stroke-width:4.4;stroke-dasharray:26 174;stroke-dashoffset:26;opacity:1;stroke-linecap:round;fill:none;animation-duration:4.8s;animation-timing-function:linear;animation-iteration-count:infinite;will-change:stroke-dashoffset;}
.nfo-lines .gf.cf{stroke:#FFE680;filter:drop-shadow(0 0 2px #fff6cc) drop-shadow(0 0 6px #FFD43B) drop-shadow(0 0 14px rgba(255,194,71,.95)) drop-shadow(0 0 26px rgba(255,170,40,.9)) drop-shadow(0 0 44px rgba(255,160,30,.7));}
.nfo-lines .gf.mc{stroke:#9AEEFF;filter:drop-shadow(0 0 2px #e6fbff) drop-shadow(0 0 6px #00CFFF) drop-shadow(0 0 14px rgba(7,140,255,.95)) drop-shadow(0 0 26px rgba(0,150,255,.9)) drop-shadow(0 0 44px rgba(0,140,255,.7));}
.nfo-lines .gf.sc{stroke:#8FFFF0;filter:drop-shadow(0 0 2px #e6fffb) drop-shadow(0 0 6px #00D7C5) drop-shadow(0 0 14px rgba(0,215,197,.9)) drop-shadow(0 0 26px rgba(0,200,180,.85)) drop-shadow(0 0 44px rgba(0,200,180,.65));}
.nfo-lines .gf.f-cf{animation-name:nfFlowCf;}.nfo-lines .gf.f-tr{animation-name:nfFlowTr;}.nfo-lines .gf.f-mc{animation-name:nfFlowMc;}.nfo-lines .gf.f-sc{animation-name:nfFlowSc;}
@keyframes nfFlowCf{0%{stroke-dashoffset:26}18%,100%{stroke-dashoffset:-100}}
@keyframes nfFlowTr{0%,18%{stroke-dashoffset:26}28%,100%{stroke-dashoffset:-100}}
@keyframes nfFlowMc{0%,28%{stroke-dashoffset:26}55%,100%{stroke-dashoffset:-100}}
@keyframes nfFlowSc{0%,55%{stroke-dashoffset:26}78%,100%{stroke-dashoffset:-100}}
.nfo-world.flow-off .gf{animation-play-state:paused;}
@media (prefers-reduced-motion:reduce){.nfo-lines .gf{animation:none !important;display:none;}}

/* Glow aura v2: each pulse = wide blurred halo (gfa) + tighter glow (gfg) + thin crisp core (gfc), all travelling together; the halo spreads past both sides of the line */
.nfo-lines{overflow:visible;}
.nfo-lines .gf{filter:none !important;}
.nfo-lines .gf.gfa{stroke-width:30;stroke-dasharray:34 166;stroke-dashoffset:34;opacity:.55;filter:url(#nfoBlurA) !important;stroke-linecap:round;}
.nfo-lines .gf.gfg{stroke-width:11;stroke-dasharray:28 172;stroke-dashoffset:28;opacity:.9;filter:url(#nfoBlurG) !important;}
.nfo-lines .gf.gfc{stroke-width:2.2;stroke-dasharray:24 176;stroke-dashoffset:24;}
.nfo-lines .gf.cf{stroke:#FFC247;}.nfo-lines .gf.gfc.cf{stroke:#FFF1B0;}
.nfo-lines .gf.mc{stroke:#078CFF;}.nfo-lines .gf.gfg.mc{stroke:#00CFFF;}.nfo-lines .gf.gfc.mc{stroke:#D6F8FF;}
.nfo-lines .gf.sc{stroke:#00D7C5;}.nfo-lines .gf.gfc.sc{stroke:#D2FFF9;}
.nfo-lines .gf.gfa.f-cf{animation-name:nfAuraCf;}.nfo-lines .gf.gfa.f-tr{animation-name:nfAuraTr;}.nfo-lines .gf.gfa.f-mc{animation-name:nfAuraMc;}.nfo-lines .gf.gfa.f-sc{animation-name:nfAuraSc;}
.nfo-lines .gf.gfg.f-cf{animation-name:nfGlowCf;}.nfo-lines .gf.gfg.f-tr{animation-name:nfGlowTr;}.nfo-lines .gf.gfg.f-mc{animation-name:nfGlowMc;}.nfo-lines .gf.gfg.f-sc{animation-name:nfGlowSc;}
@keyframes nfAuraCf{0%{stroke-dashoffset:34}18%,100%{stroke-dashoffset:-100}}
@keyframes nfAuraTr{0%,18%{stroke-dashoffset:34}28%,100%{stroke-dashoffset:-100}}
@keyframes nfAuraMc{0%,28%{stroke-dashoffset:34}55%,100%{stroke-dashoffset:-100}}
@keyframes nfAuraSc{0%,55%{stroke-dashoffset:34}78%,100%{stroke-dashoffset:-100}}
@keyframes nfGlowCf{0%{stroke-dashoffset:28}18%,100%{stroke-dashoffset:-100}}
@keyframes nfGlowTr{0%,18%{stroke-dashoffset:28}28%,100%{stroke-dashoffset:-100}}
@keyframes nfGlowMc{0%,28%{stroke-dashoffset:28}55%,100%{stroke-dashoffset:-100}}
@keyframes nfGlowSc{0%,55%{stroke-dashoffset:28}78%,100%{stroke-dashoffset:-100}}

/* Cards light up when the pulse reaches them (same 4.8s loop as the lines): Co-Founders at the start of the flow, Master Coaches as the pulse lands, Sub Coaches last.
   The aura sits BEHIND the card, so the translucent glass picks it up (brighter surface) and it radiates past every side; text is never covered. */
.nfo-aura{position:absolute;pointer-events:none;opacity:0;border-radius:20px;animation-duration:4.8s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;will-change:opacity;}
.nfo-aura.sc{border-radius:16px;}
.nfo-aura.cf{background:rgba(255,205,70,.2);box-shadow:0 0 34px 8px rgba(255,200,60,.55),0 0 90px 26px rgba(255,170,40,.32),inset 0 0 46px rgba(255,215,100,.5);animation-name:nfAuraOnCf;}
.nfo-aura.mc{background:rgba(0,170,255,.18);box-shadow:0 0 34px 8px rgba(0,170,255,.55),0 0 90px 26px rgba(7,140,255,.34),inset 0 0 46px rgba(80,210,255,.45);animation-name:nfAuraOnMc;}
.nfo-aura.sc{background:rgba(0,215,197,.2);box-shadow:0 0 26px 6px rgba(0,215,197,.55),0 0 64px 18px rgba(0,200,180,.3),inset 0 0 34px rgba(90,255,235,.4);animation-name:nfAuraOnSc;}
@keyframes nfAuraOnCf{0%{opacity:0}6%,16%{opacity:1}31%,100%{opacity:0}}
@keyframes nfAuraOnMc{0%,49%{opacity:0}55%,65%{opacity:1}80%,100%{opacity:0}}
@keyframes nfAuraOnSc{0%,72%{opacity:0}78%,88%{opacity:1}100%{opacity:0}}
.nfo-card.cf,.nfo-card.mc,.nfo-card.sc{animation-duration:4.8s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;}
.nfo-card.cf{animation-name:nfCardCf;}.nfo-card.mc{animation-name:nfCardMc;}.nfo-card.sc{animation-name:nfCardSc;}
.nfo-card.cf::before,.nfo-card.mc::before{animation-duration:4.8s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;}
.nfo-card.cf::before{animation-name:nfInnerCf;}.nfo-card.mc::before{animation-name:nfInnerMc;}
@keyframes nfCardCf{0%{border-color:#E8BC35}6%,16%{border-color:#FFE680}31%,100%{border-color:#E8BC35}}
@keyframes nfCardMc{0%,49%{border-color:#00B9FF}55%,65%{border-color:#9BEBFF}80%,100%{border-color:#00B9FF}}
@keyframes nfCardSc{0%,72%{border-color:rgba(0,214,200,.4)}78%,88%{border-color:#7DFFF1}100%{border-color:rgba(0,214,200,.4)}}
@keyframes nfInnerCf{0%{box-shadow:inset 0 0 0 rgba(255,215,100,0)}6%,16%{box-shadow:inset 0 0 38px rgba(255,215,100,.42)}31%,100%{box-shadow:inset 0 0 0 rgba(255,215,100,0)}}
@keyframes nfInnerMc{0%,49%{box-shadow:inset 0 0 0 rgba(80,210,255,0)}55%,65%{box-shadow:inset 0 0 38px rgba(80,210,255,.4)}80%,100%{box-shadow:inset 0 0 0 rgba(80,210,255,0)}}
.nfo-world.flow-off .nfo-aura,.nfo-world.flow-off .nfo-card,.nfo-world.flow-off .nfo-card::before{animation-play-state:paused;}
@media (prefers-reduced-motion:reduce){.nfo-aura{display:none;}.nfo-card.cf,.nfo-card.mc,.nfo-card.sc,.nfo-card.cf::before,.nfo-card.mc::before{animation:none !important;}}

/* ── Profile panel (top-right avatar) — dark glass, same layout as the Student Portal profile ── */
.pfp-wrap{position:fixed;inset:0;z-index:7000;background:rgba(2,9,18,.72);display:flex;align-items:flex-start;justify-content:center;padding:28px 14px;overflow-y:auto;overscroll-behavior:contain;}
.pfp{position:relative;width:100%;max-width:660px;margin:auto 0;padding:26px 22px 22px;border-radius:22px;background:linear-gradient(180deg,rgba(12,44,76,.97),rgba(5,22,40,.98));border:1px solid rgba(48,134,255,.4);box-shadow:0 24px 70px rgba(0,0,0,.6),0 0 40px rgba(0,119,255,.12);color:#d2dde9;font-family:inherit;}
.pfp svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
.pfp-x{position:absolute;top:16px;right:16px;background:none;border:0;color:#9db4cc;cursor:pointer;padding:4px;border-radius:8px;}
.pfp-x:hover{color:#fff;background:rgba(255,255,255,.08);}
.pfp-head{display:flex;align-items:center;gap:16px;padding:0 34px 18px 0;border-bottom:1px solid rgba(120,170,220,.16);flex-wrap:wrap;}
.pfp-avw{position:relative;width:86px;height:86px;flex-shrink:0;}
.pfp-avw img,.pfp-avw .nft-ini{width:84px !important;height:84px !important;border-radius:50%;object-fit:cover;border:2px solid rgba(40,190,230,.7);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;}
.pfp-cam{position:absolute;right:-2px;bottom:-2px;width:30px;height:30px;border-radius:50%;background:#0b2a47;border:1px solid rgba(40,190,230,.7);color:#7fdcf2;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.pfp-cam svg{width:15px;height:15px;}
.pfp-who{flex:1;min-width:140px;}.pfp-who h3{margin:0;font-size:22px;font-weight:700;color:#e3ecf5;}.pfp-who p{margin:4px 0 0;color:#9db4cc;font-size:14.5px;}
.pfp-up{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px;border-radius:12px;background:rgba(8,40,66,.8);border:1px solid rgba(40,190,230,.55);color:#d2dde9;font:600 14.5px inherit;font-family:inherit;cursor:pointer;}
.pfp-up:hover{background:rgba(14,60,96,.9);}.pfp-up svg{width:16px;height:16px;}
.pfp-msg{margin:10px 0 0;font-size:13px;color:#6ee7b7;}.pfp-msg.bad{color:#fca5a5;}
.pfp-id{display:flex;justify-content:space-between;gap:14px;margin-top:16px;padding:18px;border-radius:16px;background:radial-gradient(120% 140% at 0 100%,rgba(0,119,255,.18),transparent 60%),rgba(6,32,56,.85);border:1px solid rgba(48,134,255,.45);}
.pfp-idl small{font-size:11px;letter-spacing:.12em;color:#8fa6bc;}
.pfp-code{display:flex;align-items:center;gap:12px;margin-top:6px;}.pfp-code b{font:700 22px/1.2 ui-monospace,Menlo,monospace;letter-spacing:.06em;color:#e3ecf5;}
.pfp-copy{height:34px;padding:0 16px;border-radius:10px;background:rgba(8,40,66,.8);border:1px solid rgba(40,190,230,.55);color:#7fdcf2;font-weight:700;font-size:13px;cursor:pointer;}
.pfp-logo{display:block;height:34px;margin-top:34px;opacity:.95;}
.pfp-qr{text-align:center;flex-shrink:0;}.pfp-qr img{display:block;background:#fff;padding:8px;border-radius:12px;width:116px;height:116px;}.pfp-qr small{display:block;margin-top:6px;color:#8fa6bc;font-size:12px;}
.pfp-info{display:flex;align-items:center;gap:12px;margin-top:14px;padding:14px 16px;border-radius:14px;background:rgba(8,40,66,.5);border:1px solid rgba(48,134,255,.35);}
.pfp-info svg{color:#35c4e8;width:24px;height:24px;}.pfp-info b{display:block;font-size:15px;color:#e3ecf5;}.pfp-info span{font-size:13.5px;color:#9db4cc;}
.pfp-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;}
.pfp-tile{position:relative;display:flex;align-items:center;gap:12px;height:64px;padding:0 16px;border-radius:14px;background:rgba(6,30,52,.7);border:1px solid rgba(48,134,255,.4);cursor:pointer;}
.pfp-tile:hover{background:rgba(14,52,92,.7);}.pfp-tile.locked{cursor:default;}
.pfp-ti{color:#35c4e8;display:flex;}.pfp-tt{flex:1;font-weight:600;font-size:15px;color:#d2dde9;}.pfp-lk{color:#8fa6bc;display:flex;}.pfp-lk svg{width:14px;height:14px;}
.pfp-tile input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;}
.pfp-cb{width:24px;height:24px;border-radius:7px;border:1.5px solid rgba(120,170,220,.5);display:flex;align-items:center;justify-content:center;color:transparent;flex-shrink:0;}
.pfp-cb svg{width:15px;height:15px;stroke-width:3;}
.pfp-tile input:checked+.pfp-cb{background:#1aa7f0;border-color:#1aa7f0;color:#fff;}
.pfp-tile.locked input:checked+.pfp-cb{background:#5b6b7c;border-color:#5b6b7c;}
.pfp-tile input:focus-visible+.pfp-cb{outline:2px solid #24c7f4;outline-offset:2px;}
.pfp-acts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(120,170,220,.16);}
.pfp-acts button{display:flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 10px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(120,170,220,.28);color:#d2dde9;font:600 13px inherit;font-family:inherit;cursor:pointer;}
.pfp-acts button:hover{background:rgba(48,134,255,.16);}.pfp-acts button svg{width:16px;height:16px;}
.pfp-acts .danger{color:#fca5a5;border-color:rgba(239,68,68,.4);}
@media (max-width:560px){.pfp-grid{grid-template-columns:1fr;}.pfp-id{flex-direction:column;}.pfp-code b{font-size:18px;}}

/* zoomed-out chart: keep glyph widths linear so text scales with the cards (no hinting/rounding at small sizes) */
.nfo-world,.nfo-world *{text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;}
.nfs-prof .nfs-prof-follow{display:block;margin:-4px auto 16px;padding:9px 26px;font-size:13.5px;border-radius:11px;}
.nfs-prof .nfs-prof-follow{display:flex;align-items:center;justify-content:center;height:38px;padding:0 28px;line-height:1;font-family:inherit;font-weight:600;font-size:13.5px;}

/* AT Messenger panel (opened from the top-right Messenger button; the Batch Messenger page in a frame) */
.atm{position:fixed;z-index:4001;display:flex;flex-direction:column;overflow:hidden;border-radius:18px;background:#05070B;border:1px solid rgba(0,153,255,.4);box-shadow:0 24px 70px rgba(0,0,0,.6),0 0 30px rgba(8,123,255,.15);animation:atmIn .2s cubic-bezier(.22,1,.36,1) both;}
.atm[hidden]{display:none;}
@keyframes atmIn{from{opacity:0;transform:translateY(-6px) scale(.985)}to{opacity:1;transform:none}}
.atm-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none;height:42px;padding:0 10px 0 16px;background:linear-gradient(180deg,#0b2340,#071b30);border-bottom:1px solid rgba(0,153,255,.3);color:var(--at-text);font:600 14px Inter,system-ui,sans-serif;}
.atm-h span{display:flex;align-items:center;gap:4px;}
.atm-h a,.atm-x{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border-radius:9px;border:0;background:transparent;color:var(--at-text-muted);font-size:20px;line-height:1;cursor:pointer;text-decoration:none;}
.atm-h a:hover,.atm-x:hover{background:rgba(8,123,255,.25);color:#fff;}
.atm-f{flex:1;width:100%;border:0;background:#05070B;min-height:0;}
#nftop-msg.on{color:var(--at-cyan);}
@media (prefers-reduced-motion:reduce){.atm{animation:none;}}

/* @mentions in posts */
.nfc{position:relative;z-index:30;}
.nfc-mn{position:absolute;left:14px;right:14px;z-index:20;max-height:300px;overflow-y:auto;padding:5px;display:flex;flex-direction:column;background:rgba(3,26,53,.98);border:1px solid rgba(0,158,255,.6);border-radius:14px;box-shadow:0 10px 28px rgba(0,0,0,.5);}
.nfc-mn.hidden{display:none;}
.nfc-mn button{display:flex;align-items:center;gap:10px;padding:6px 10px;border:0;background:transparent;border-radius:10px;color:var(--at-text);font:500 13.5px/1.2 inherit;font-family:inherit;text-align:left;cursor:pointer;}
.nfc-mn button.on,.nfc-mn button:hover{background:rgba(0,140,255,.25);}
.nfc-ml{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nfc-mn em{font-style:normal;font-size:11px;color:var(--at-cyan);border:1px solid rgba(0,158,255,.45);border-radius:9px;padding:1px 8px;}
.nfc-mi{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12px;color:#fff;background:linear-gradient(135deg,#19D3FF,#087BFF);}
.nfc-mi-group{background:linear-gradient(135deg,#8f6bff,#5a3fd6);}
.nfc-mi-batch{background:linear-gradient(135deg,#17c98b,#0c8f62);}
.nfp-at{color:var(--at-cyan);font-weight:600;}

/* Moderation overview */
.nfmod-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px;}
.nfmod-stat{border:1px solid var(--at-border);border-radius:12px;padding:10px;background:rgba(11,35,64,.6);text-align:center;}
.nfmod-stat b{display:block;font-size:20px;}.nfmod-stat span{font-size:11.5px;color:var(--at-text-muted);}
.nf-modal-box h4{margin:16px 0 6px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--at-text-muted);}
.nfmod-row{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:9px 0;border-top:1px solid var(--at-border);}
.nfmod-row p{margin:3px 0 0;font-size:13px;color:var(--at-text);word-break:break-word;}.nfmod-row small{color:var(--at-text-muted);}
.nfp-btn.danger{border-color:rgba(255,92,100,.6);color:#FFD3D6;flex:none;}
@media(max-width:520px){.nfmod-stats{grid-template-columns:repeat(2,1fr);}}
.nft-btn[hidden]{display:none;}
.nf-modal-body .nfp-h{padding-right:52px;}   /* the modal close (×) sits where the post options (⋮) is */
/* comment replies + reactions */
.nfp-cwrap{flex:1;min-width:0;}
.nfp-cwrap .nfp-cb{display:block;}
.nfp-cx{display:inline-block;margin-top:5px;padding:1px 8px;border-radius:999px;background:rgba(5,25,48,.7);border:1px solid rgba(22,70,107,.8);font-size:11.5px;color:var(--at-text);}
.nfp-cact{display:flex;gap:14px;align-items:center;padding:3px 12px 0;font-size:12px;}
.nfp-cact button{background:none;border:0;padding:2px 0;color:var(--at-muted,#9db4d0);font:600 12px inherit;font-family:inherit;cursor:pointer;}
.nfp-cact button:hover{color:#fff;text-decoration:underline;}
.nfp-cact .nfp-cxb.on{font-weight:700;}
.nfp-cxwrap{position:relative;display:inline-flex;}
.nfp-cxtray{position:absolute;left:0;bottom:100%;display:flex;gap:2px;padding:4px 6px;margin-bottom:4px;background:var(--at-surface-raised);border:1px solid var(--at-border);border-radius:999px;box-shadow:0 10px 26px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(5px);transition:opacity .15s ease,transform .15s ease,visibility 0s linear .15s;z-index:15;}
.nfp-cxwrap:hover .nfp-cxtray,.nfp-cxwrap:focus-within .nfp-cxtray{opacity:1;visibility:visible;transform:none;transition:opacity .15s ease .25s,transform .15s ease .25s,visibility 0s linear .25s;}
.nfp-cxtray .nfp-rxo{width:30px;height:30px;font-size:20px;background:none;border:0;padding:0;text-decoration:none;}
.nfp-replies{margin:0 0 4px 38px;}
.nfp-replies .nfp-c{margin-bottom:8px;}
.nfp-rf-wrap:not(:empty){margin:0 0 8px 38px;}
.nfp-rf-wrap .nfp-cf{margin-top:2px;}

/* ── v59: no backdrop blur on the page cards / tabs / org-chart cards. The page behind them is a smooth gradient, so the blur is invisible,
   but it forces the GPU to re-blur every card each frame (the org-chart cards even animate) and made some screens flicker in full screen. Pop-ups keep theirs. ── */
.nf-card,.nf-tabs,.nfo-panel,.nfo-card.cf,.nfo-card.mc{-webkit-backdrop-filter:none !important;backdrop-filter:none !important;}
.nf-card{background:linear-gradient(180deg,rgba(14,43,70,.82),rgba(8,31,54,.9)),var(--at-glass);}
.nf-tabs{background:rgba(7,27,48,.96);}
.nfo-card.cf,.nfo-card.mc{background:linear-gradient(135deg,rgba(24,77,120,.78) 0%,rgba(7,35,65,.86) 45%,rgba(3,19,39,.9) 100%);}
@media (prefers-reduced-motion:reduce){.nfo-card.cf,.nfo-card.mc,.nfo-card.sc,.nfo-aura,.nfo-lines .gf{animation:none !important;}}

/* Profile & Settings: profile information (moved here from the old sidebar-logo pop-up) */
.pfp-det{margin-top:14px;padding:16px 18px;border:1px solid rgba(48,134,255,.28);border-radius:14px;background:rgba(5,25,48,.45);}
.pfp-dh{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}.pfp-dh h4{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#8fa6bc;}
.pfp-dh button,.pfp-dl button{height:32px;padding:0 14px;border-radius:999px;border:1px solid rgba(48,134,255,.45);background:rgba(10,124,255,.18);color:#e6f0ff;font:600 13px inherit;font-family:inherit;cursor:pointer;}
.pfp-dh button:hover,.pfp-dl button:hover{background:rgba(10,124,255,.34);}
.pfp-dg{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;}.pfp-dg div{min-width:0;}.pfp-dg small{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#7f99b6;}.pfp-dg b{display:block;margin-top:2px;font-size:14px;color:#e6f0ff;overflow-wrap:anywhere;}
.pfp-dl{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;}
@media (max-width:560px){.pfp-dg{grid-template-columns:1fr 1fr;}}

/* General Group Chat card: reply / react / @mention (side.js v9) */
.nfs-m{position:relative;}
.nfs-m.flash{outline:2px solid var(--at-cyan);}
.nfs-rep{display:block;margin:4px 0;padding:3px 8px;border-left:3px solid var(--at-cyan);border-radius:6px;background:rgba(0,0,0,.2);font-size:11px;color:var(--at-text-subtle);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nfs-rep b{color:var(--at-text);}
.nfs-at{color:var(--at-cyan);font-weight:600;}.nfs-at.me{background:rgba(0,213,242,.18);border-radius:4px;padding:0 3px;}
.nfs-rx{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;}
.nfs-rp{border:1px solid var(--at-border);background:rgba(2,11,22,.45);color:var(--at-text);border-radius:999px;padding:1px 8px;font-size:12px;cursor:pointer;}
.nfs-rp.mine{border-color:var(--at-cyan);background:rgba(0,213,242,.16);}
.nfs-act{position:absolute;top:-12px;right:6px;display:none;align-items:center;gap:2px;background:#0b2340;border:1px solid var(--at-border);border-radius:999px;padding:1px 4px;z-index:2;}
.nfs-m:hover .nfs-act,.nfs-m.sel .nfs-act,.nfs-m.pk .nfs-act{display:flex;}
.nfs-act button{background:none;border:0;color:var(--at-text);cursor:pointer;font-size:14px;padding:2px 4px;border-radius:6px;line-height:1;}
.nfs-act button:hover{background:rgba(255,255,255,.12);}
.nfs-pk{display:none;}.nfs-m.pk .nfs-pk{display:inline-flex;}
.nfs-reply{display:flex;align-items:center;gap:6px;margin-top:6px;padding:4px 8px;border-left:3px solid var(--at-cyan);border-radius:6px;background:rgba(0,0,0,.25);font-size:12px;color:var(--at-text-subtle);}
.nfs-reply[hidden],.nfs-mn[hidden]{display:none;}
.nfs-reply span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.nfs-reply b{color:var(--at-text);}
.nfs-reply button{background:none;border:0;color:var(--at-text);font-size:16px;cursor:pointer;}
.nfs-mn{margin-top:6px;background:#0b2340;border:1px solid var(--at-border);border-radius:10px;overflow:hidden;}
.nfs-mn button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:0;color:var(--at-text);padding:6px 10px;font-size:13px;cursor:pointer;}
.nfs-mn button.on,.nfs-mn button:hover{background:rgba(0,213,242,.16);}
.nfs-mav{width:22px;height:22px;border-radius:50%;background:rgba(21,151,255,.4);display:inline-grid;place-items:center;font-size:10px;font-weight:700;}
.nfs-m:not(.mine) .nfs-act{left:6px;right:auto;}
.nfs-act{max-width:calc(100% - 12px);flex-wrap:wrap;}
/* reaction pills in the General Group Chat card: plain emoji + count, no highlight (also when it is yours) */
.nfs-rp,.nfs-rp.mine{background:none;border:0;padding:1px 4px;border-radius:6px;}
.nfs-rp:hover{background:rgba(255,255,255,.1);}

.nfs-rw{font-size:11px;color:var(--at-text-subtle);}

/* @mention list under a comment / reply box */
.nfp-cm .nfp-cf{position:relative;}
.nfp-mnl{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:30;background:#0b2340;border:1px solid var(--at-border-strong,rgba(56,164,226,.45));border-radius:12px;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.45);}
.nfp-mnl button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:0;color:var(--at-text);padding:7px 12px;font-size:13px;cursor:pointer;}
.nfp-mnl button.on,.nfp-mnl button:hover{background:rgba(0,213,242,.16);}
.nfp-mnl em{margin-left:auto;font-style:normal;font-size:11px;color:var(--at-muted,#8fb0cc);}

/* ── GIF / sticker on a post (composer preview, feed, edit) ── */
.nfc-gif[hidden]{display:none;}
.nfc-gprev{width:auto;min-width:76px;max-width:150px;display:grid;place-items:center;}
.nfc-gprev img{object-fit:contain;}
.nfc-gtag{position:absolute;left:4px;bottom:4px;font-size:9px;font-weight:700;letter-spacing:.04em;background:rgba(0,0,0,.65);color:#fff;border-radius:4px;padding:1px 4px;}
.nfp-editgif{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0;}
.nfp-editgif:empty{display:none;}
.nfp-gif .nfa-att{margin:8px 0 0;}
.nfp-gif .nfa-gf img{max-width:min(420px,100%);max-height:420px;}
.nfp-gif .nfa-sk img{max-width:min(220px,100%);max-height:220px;}

/* ── GIF / sticker buttons + preview in the General Group Chat card ── */
.nfs-form{position:relative;align-items:center;}
.nfs-gb{flex:none;display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:none;border:0;color:var(--at-muted,#8fb0cc);cursor:pointer;padding:0;}
.nfs-gb:hover{background:rgba(0,213,242,.14);color:var(--at-cyan,#00d5f2);}
.nfs-gb[hidden]{display:none;}
.nfs-gp{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding:4px 8px;border:1px solid var(--at-border);border-radius:10px;background:rgba(2,11,22,.45);}
.nfs-gp[hidden]{display:none;}
.nfs-gchip{display:inline-flex;align-items:center;gap:8px;}
.nfs-gchip img{height:40px;width:auto;max-width:80px;object-fit:contain;border-radius:6px;}
.nfs-gchip b{font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--at-muted,#8fb0cc);}
.nfs-gp button{background:none;border:0;color:var(--at-muted,#8fb0cc);font-size:18px;cursor:pointer;}
.nfs-m .nfa-att{margin:3px 0 0;}
.nfs-m .nfa-gf img{max-width:min(190px,100%);max-height:200px;border-radius:10px;}
.nfs-m .nfa-sk img{max-width:min(120px,100%);max-height:120px;}

/* photo in the General Group Chat card */
.nfs-m .nfs-ph{display:block;margin:4px 0 0;line-height:0;}
.nfs-m .nfs-ph img{max-width:min(210px,100%);max-height:220px;border-radius:10px;object-fit:cover;}

/* General Group Chat card: one + button opens the Photo / GIF / Sticker tray (the card is narrow) */
.nfs-plus{flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--at-border);background:rgba(11,35,64,.6);color:var(--at-cyan,#00d5f2);font-size:20px;line-height:1;cursor:pointer;padding:0;display:grid;place-items:center;transition:transform .18s;}
.nfs-plus:hover{background:rgba(0,213,242,.16);}
.nfs-plus.on{transform:rotate(45deg);background:rgba(0,213,242,.2);}
.nfs-tray{display:flex;gap:6px;margin-top:6px;}
.nfs-tray[hidden]{display:none;}
.nfs-tray .nfs-gb{width:auto;height:auto;flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 6px;border-radius:10px;border:1px solid var(--at-border);background:rgba(11,35,64,.6);color:var(--at-text,#e6f1fb);font-size:12px;}
.nfs-tray .nfs-gb:hover{border-color:rgba(36,199,244,.55);background:rgba(21,151,255,.16);}
.nfs-tray .nfs-gb svg{color:var(--at-cyan,#00d5f2);}
.nfs-tray .nfs-gb[hidden]{display:none;}

/* post box: one + Add button opens Photo / GIF / Sticker / Video */
.nfc-add.on{color:#fff;border-color:rgba(36,199,244,.55);background:rgba(21,151,255,.16);}
.nfc-add svg{transition:transform .18s;}.nfc-add.on svg{transform:rotate(45deg);}
.nfc-addtray{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;}
.nfc-addtray.hidden{display:none;}

.nfs-plus svg{display:block;}
.nf-lb{touch-action:none;overscroll-behavior:contain;}
.nf-lb-img{touch-action:none;transform-origin:center center;will-change:transform;}


/* Trader Space button icon: the Alpha mark. Blue gradient while this page is open, grey gradient otherwise (same in the staff CRM and the student portal). */
.ts-ico{position:relative;display:inline-block;width:20px;height:22px;flex:0 0 auto}
.ts-ico img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .15s}
.ts-ico .on{opacity:0}
.active>.ts-ico .on,.active>.nf-ico>.ts-ico .on{opacity:1}
.active>.ts-ico .off,.active>.nf-ico>.ts-ico .off{opacity:0}

/* ── Sharing, link previews, video covers (2026-11-09) ── inherits the existing dark-blue / neon-blue tokens */
.nfp-media.nfp-vid{position:relative;cursor:pointer;aspect-ratio:16/9;display:grid;place-items:center;background:radial-gradient(120% 120% at 50% 40%,#0d2f57,#020a14);}
.nfp-media.nfp-vid>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.nfp-play{position:relative;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:rgba(2,10,20,.62);border:2px solid rgba(255,255,255,.85);color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .15s,background .15s;}
.nfp-play svg{margin-left:3px}
.nfp-vid:hover .nfp-play,.nfp-vid:focus-visible .nfp-play{transform:scale(1.07);background:rgba(21,151,255,.55);}
.nfp-vid:focus-visible{outline:2px solid var(--at-cyan);outline-offset:2px;}
.nfp-dur{position:absolute;right:10px;bottom:10px;padding:2px 8px;border-radius:7px;background:rgba(2,10,20,.78);color:#fff;font:600 12px/1.5 inherit;font-family:inherit;}
.nfp-link{display:flex;margin-top:10px;border:1px solid var(--at-border);border-radius:12px;overflow:hidden;background:rgba(2,11,22,.42);text-decoration:none;color:inherit;}
.nfp-link:hover{border-color:var(--at-cyan);}
.nfp-link img{width:120px;min-height:90px;object-fit:cover;flex:none;background:#010a14;}
.nfp-lk{display:flex;flex-direction:column;gap:2px;padding:10px 12px;min-width:0;justify-content:center;}
.nfp-lk small{color:var(--at-text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.03em;}
.nfp-lk b{font-size:14px;line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.nfp-lk em{font-style:normal;color:var(--at-text-muted);font-size:13px;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.nfc-link{margin:0 12px;}
.nfc-lkwrap{position:relative;}
.nfc-lkwrap .nfp-link{margin:6px 0 4px;}
.nfc-lkx{position:absolute;top:10px;right:6px;width:26px;height:26px;border-radius:50%;border:0;display:grid;place-items:center;background:rgba(2,10,20,.82);color:#fff;cursor:pointer;}
.nfc-lkload{padding:8px 2px;color:var(--at-text-muted);font-size:13px;}
.nfsh-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:10px;margin:12px 0;}
.nfsh-b{min-width:0;display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 6px;border-radius:12px;border:1px solid var(--at-border);background:rgba(21,151,255,.08);color:inherit;font:600 13px/1.2 inherit;font-family:inherit;cursor:pointer;}
.nfsh-b:hover,.nfsh-b:focus-visible{border-color:var(--at-cyan);background:rgba(21,151,255,.18);outline:none;}
@media (max-width:420px){.nfp-link img{width:92px}}
.nfp-lkimg{position:relative;flex:none;display:block;width:120px;min-height:90px;}
.nfp-lkimg img{width:100%;height:100%;min-height:90px;object-fit:cover;display:block;}
.nfp-lknoimg{background:radial-gradient(120% 120% at 50% 40%,#0d2f57,#020a14);}
.nfp-lkplay{position:absolute;inset:0;display:grid;place-items:center;color:#fff;}
.nfp-lkplay svg{width:34px;height:34px;padding:9px 7px 9px 11px;border-radius:50%;background:rgba(2,10,20,.66);border:2px solid rgba(255,255,255,.85);box-sizing:border-box;}
.nfp-lkv:hover .nfp-lkplay svg{background:rgba(21,151,255,.6);}
.nfp-embed{margin-top:10px;aspect-ratio:16/9;border-radius:12px;overflow:hidden;border:1px solid var(--at-border);background:#000;}
.nfp-embed iframe{width:100%;height:100%;border:0;display:block;}
.nfp-embedpop iframe{width:100%;height:min(70vh,560px);border:0;border-radius:10px;background:#fff;display:block;}
@media (max-width:420px){.nfp-lkimg{width:92px}}
/* Facebook / link-card fixes (2026-11-09 b) */
.nfp-lknoimg{display:grid;place-items:center;}
.nfp-lkbrand{position:absolute;left:8px;bottom:6px;font:700 11px/1 inherit;font-family:inherit;letter-spacing:.04em;text-transform:uppercase;color:#9fd0ff;}
.nfp-lkopen{color:var(--at-cyan)!important;font-weight:600;font-size:12.5px!important;}
.nfc-lkhint{margin:4px 0 6px;color:var(--at-text-muted);font-size:12.5px;line-height:1.4;}
.nfc-lkedit-b{margin:2px 0 6px;}
.nfc-lkedit{display:flex;flex-direction:column;gap:8px;margin:4px 0 8px;}
.nfc-lkedit input,.nfc-lkedit textarea{width:100%;box-sizing:border-box;padding:9px 11px;border-radius:10px;border:1px solid var(--at-border);background:rgba(2,11,22,.55);color:inherit;font:inherit;resize:vertical;}
.nfc-lkedit input:focus,.nfc-lkedit textarea:focus{outline:none;border-color:var(--at-cyan);}
.nfc-lkrow{display:flex;gap:8px;flex-wrap:wrap;}
/* counts row: comments · shares · views */
.nfp-cmr{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.nfp-sep{font-style:normal;opacity:.6;}
/* General chat + day separators */
.nfs-day{align-self:center;margin:6px 0 2px;padding:2px 10px;border-radius:10px;font-size:11px;color:var(--at-text-subtle);background:rgba(3,26,53,.6);border:1px solid var(--at-divider);}
/* allow-sharing tick + disabled Share */
.nfc-allow{display:flex;align-items:center;gap:8px;margin:6px 12px 2px;color:var(--at-text-muted);font-size:12.5px;cursor:pointer;}
.nfc-allow input{width:16px;height:16px;accent-color:var(--at-cyan);}
.nfp-actions button:disabled{opacity:.4;cursor:not-allowed;}
.nfp-actions button:disabled:hover{background:none;color:var(--at-text-muted);}
.nfp-a,.nfp-a:visited{color:#4aa8ff;text-decoration:underline;word-break:break-all;cursor:pointer}.nfp-a:hover{color:#8cc8ff}

/* "See more" on long posts: feed.js cuts the text after 3 lines and ends it with "... See more" */
.nfp-seemore{display:inline;margin:0;padding:0;background:none;border:0;color:var(--at-text);font:inherit;font-weight:700!important;cursor:pointer;white-space:nowrap;}
.nfp-seemore:hover{text-decoration:underline;}
.nfp-dots{font-weight:700;color:var(--at-text);}
