/* CircleTrust Editorial — notification bell + Activity feed. Token-driven. */

.shell-tools{position:fixed;top:16px;right:20px;z-index:45;display:flex;align-items:center;gap:8px}
.notification-bell{position:relative;width:44px;height:44px;border-radius:50%;border:1px solid var(--ct-line);background:color-mix(in srgb,var(--ct-paper) 94%,transparent);color:var(--ct-ink);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px color-mix(in srgb,var(--ct-ink) 8%,transparent);backdrop-filter:blur(8px)}
.notification-bell:hover{border-color:color-mix(in srgb,var(--ct-ink) 28%,transparent)}
.notification-bell.active{background:var(--ct-ink);color:var(--ct-paper)}
.notification-bell svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--ct-accent);color:var(--ct-accent-contrast);border:2px solid var(--ct-base);display:flex;align-items:center;justify-content:center;font-family:var(--ct-font-ui);font-size:.61rem;font-weight:800;line-height:1}
.notification-badge[hidden]{display:none}

.notifications{max-width:860px;margin:0 auto;padding:0 24px 110px}
.ntf-mast{padding-right:58px;margin:2px 0 18px}
.ntf-kick{font-family:var(--ct-font-ui);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ct-sub);font-size:.72rem}
.ntf-mast h1{font-family:var(--ct-font-display);font-weight:500;letter-spacing:-.035em;font-size:clamp(2.2rem,4vw,3rem);color:var(--ct-ink);margin:8px 0 0;line-height:1}
.ntf-mast p{margin:12px 0 0;color:var(--ct-sub);font-family:var(--ct-font-ui);font-size:.92rem;line-height:1.5}
.ntf-tabs{display:flex;align-items:center;gap:12px;padding:0 0 10px;border-bottom:1px solid var(--ct-line)}
.ntf-tab{border:0;background:none;padding:8px 0;font-family:var(--ct-font-ui);font-weight:800;font-size:.77rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ct-sub)}
.ntf-tab.active{color:var(--ct-ink);border-bottom:2px solid var(--ct-ink)}
.ntf-tab-note{margin-left:auto;max-width:42ch;text-align:right;color:var(--ct-sub);font-family:var(--ct-font-ui);font-size:.7rem;line-height:1.35}
.ntf-status{min-height:20px;padding:9px 0 0;color:var(--ct-sub);font-family:var(--ct-font-ui);font-size:.72rem}
.ntf-list{border-top:1px solid var(--ct-line)}
.ntf-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:13px;align-items:start;padding:16px 4px;border-bottom:1px solid var(--ct-line)}
.ntf-row.unread{background:color-mix(in srgb,var(--ct-accent) 4%,transparent)}
.ntf-icon{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ct-paper);border:1px solid var(--ct-line);color:var(--ct-ink);font-family:var(--ct-font-ui);font-weight:800}
.ntf-copy{min-width:0}
.ntf-title{font-family:var(--ct-font-display);font-size:1.04rem;font-weight:600;line-height:1.22;color:var(--ct-ink)}
.ntf-row.unread .ntf-title{font-weight:700}
.ntf-message{margin-top:4px;color:var(--ct-sub);font-family:var(--ct-font-ui);font-size:.84rem;line-height:1.45}
.ntf-meta{display:flex;align-items:center;gap:8px;color:var(--ct-sub);font-family:var(--ct-font-ui);font-size:.7rem;padding-top:3px;white-space:nowrap}
.ntf-dot{width:8px;height:8px;border-radius:50%;background:var(--ct-accent)}
.ntf-empty{margin-top:18px;padding:24px 0;display:flex;flex-direction:column;gap:8px;color:var(--ct-sub);font-family:var(--ct-font-ui);line-height:1.5}
.ntf-empty strong{font-family:var(--ct-font-display);font-weight:600;font-size:1.28rem;color:var(--ct-ink)}

@media (max-width:859px){
  .shell-tools{top:10px;right:12px}
  .notification-bell{width:42px;height:42px}
  .notifications{padding:0 16px 84px}
  .ntf-mast{padding-right:52px}
  .ntf-tab-note{display:none}
  .ntf-row{grid-template-columns:34px minmax(0,1fr) auto;gap:11px;padding:14px 2px}
}

/* v1.13 — notifications point back to their canonical post context. */
.ntf-row.is-linked{cursor:pointer;outline:none}
.ntf-row.is-linked:hover{background:color-mix(in srgb,var(--ct-accent) 6%,transparent)}
.ntf-row.is-linked:focus-visible{box-shadow:inset 3px 0 0 var(--ct-accent);background:color-mix(in srgb,var(--ct-accent) 7%,transparent)}
.ntf-row.is-linked .ntf-title::after{content:'  →';font-family:var(--ct-font-ui);font-size:.76rem;color:var(--ct-sub)}

/* v1.17 — frozen push-registration controls restored. */
.ntf-alert-panel{padding:22px 0 44px;display:grid;gap:16px;max-width:820px}
.ntf-alert-card{border:1px solid var(--ct-line);border-radius:22px;background:var(--ct-paper);padding:24px;display:grid;gap:18px;box-shadow:0 12px 36px rgba(31,25,21,.05)}
.ntf-alert-card h2{font-family:var(--ct-font-display);font-size:clamp(1.45rem,2.5vw,2rem);font-weight:600;letter-spacing:-.025em;margin:6px 0;color:var(--ct-ink)}
.ntf-alert-card p{font-family:var(--ct-font-ui);color:var(--ct-sub);line-height:1.5;margin:0;max-width:62ch}
.ntf-push-state{justify-self:start;border:1px solid var(--ct-line);border-radius:999px;padding:7px 10px;font:800 .68rem/1 var(--ct-font-ui);letter-spacing:.08em;color:var(--ct-ink)}
.ntf-alert-actions{display:flex;gap:10px;flex-wrap:wrap}
.ntf-alert-actions button{appearance:none;border:1px solid var(--ct-line);border-radius:999px;padding:10px 15px;background:var(--ct-base);color:var(--ct-ink);font:800 .76rem/1 var(--ct-font-ui);cursor:pointer}
.ntf-alert-actions .ntf-primary{background:var(--ct-ink);color:var(--ct-base);border-color:var(--ct-ink)}
.ntf-alert-actions button:disabled{opacity:.5;cursor:not-allowed}
.ntf-push-error{min-height:1.2em;font:600 .75rem/1.45 var(--ct-font-ui);color:var(--ct-sub)}
.ntf-alert-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--ct-line);border-radius:18px;overflow:hidden;background:var(--ct-paper)}
.ntf-alert-facts>div{padding:15px 18px;display:flex;flex-direction:column;gap:5px;border-bottom:1px solid var(--ct-line)}
.ntf-alert-facts>div:nth-child(odd){border-right:1px solid var(--ct-line)}
.ntf-alert-facts>div:nth-last-child(-n+2){border-bottom:0}
.ntf-alert-facts strong{font:800 .68rem/1.2 var(--ct-font-ui);letter-spacing:.07em;text-transform:uppercase;color:var(--ct-sub)}
.ntf-alert-facts span{font:600 .82rem/1.35 var(--ct-font-ui);color:var(--ct-ink)}
.ntf-alert-honesty{font:500 .72rem/1.5 var(--ct-font-ui);color:var(--ct-sub);margin:0 3px}
.ntf-alert-honesty code{font:inherit}
@media(max-width:640px){.ntf-alert-facts{grid-template-columns:1fr}.ntf-alert-facts>div,.ntf-alert-facts>div:nth-child(odd){border-right:0;border-bottom:1px solid var(--ct-line)}.ntf-alert-facts>div:last-child{border-bottom:0}}

/* v1.18 — Messages is a first-class secondary destination beside Activity. */
.shell-message-btn{position:relative;width:44px;height:44px;border-radius:50%;border:1px solid var(--ct-line);background:color-mix(in srgb,var(--ct-paper) 94%,transparent);color:var(--ct-ink);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px color-mix(in srgb,var(--ct-ink) 8%,transparent);backdrop-filter:blur(8px)}
.shell-message-btn:hover{border-color:color-mix(in srgb,var(--ct-ink) 28%,transparent)}
.shell-message-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:859px){.shell-message-btn{width:42px;height:42px}}
