@font-face{font-family:'Nunito';src:url('/albumtor/static/fonts/nunito-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Nunito';src:url('/albumtor/static/fonts/nunito-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Nunito';src:url('/albumtor/static/fonts/nunito-700.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:'Nunito';src:url('/albumtor/static/fonts/nunito-900.ttf') format('truetype');font-weight:900;font-display:swap}
body,input,button,select,textarea{font-family:'Nunito',sans-serif}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
    --bg-primary:   #050816;
    --bg-secondary: #080d1c;
    --bg-tertiary:  #0e1428;
    --green:        #22c55e;
    --green-card:   #071a0f;
    --blue:         #3b82f6;
    --blue-neon:    #00aeef;
    --blue-card:    #060f22;
    --gold:         #facc15;
    --gold-card:    #160e00;
    --purple:       #a855f7;
    --purple-neon:  #c084fc;
    --purple-card:  #0f0620;
    --gray-card:    #0a0f1c;
    --text-primary: #eef2ff;
    --text-muted:   #4a5a7a;
    --border:       #141e38;
    --radius:       16px;
    --radius-sm:    10px;
    --glow-green:   0 0 12px rgba(34,197,94,.55),0 0 32px rgba(34,197,94,.22);
    --glow-blue:    0 0 12px rgba(59,130,246,.55),0 0 32px rgba(59,130,246,.22);
    --glow-gold:    0 0 12px rgba(250,204,21,.55),0 0 32px rgba(250,204,21,.22);
    --glow-purple:  0 0 16px rgba(168,85,247,.65),0 0 42px rgba(168,85,247,.28);
}
html,body{
    height:100%;
    font-family:'Nunito',sans-serif;
    background:#050816;
    background-image:
        radial-gradient(ellipse at 15% 0%,  rgba(90,30,160,.32)  0%,transparent 52%),
        radial-gradient(ellipse at 85% 8%,  rgba(20,60,150,.28)  0%,transparent 48%),
        radial-gradient(ellipse at 50% 100%,rgba(30,20,80,.38)   0%,transparent 58%);
    background-attachment:fixed;
    color:var(--text-primary);
    -webkit-tap-highlight-color:transparent;
    overscroll-behavior:none;
}
a{color:var(--blue);text-decoration:none}
a:hover{opacity:.85}
.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px}
.alert-error{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.25);color:#fca5a5}
.alert-success{background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.25);color:#86efac}

/* ── NOTIFICATIONS PAGE ── */
.notif-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 10px;
  border-bottom: 1px solid #151d30;
  font-family: 'Nunito', -apple-system, sans-serif;
}
.nph-title {
  color: #eef2ff;
  font-size: 19px;
  font-weight: 700;
}
.nph-mark {
  background: transparent;
  border: 1px solid #a855f730;
  color: #a855f7;
  font-size: 13px;
  border-radius: 8px;
  padding: 5px 10px;
  cursor: pointer;
  font-family: 'Nunito', -apple-system, sans-serif;
}

.notif-list {
  padding: 10px 14px;
  padding-bottom: 80px;
  font-family: 'Nunito', -apple-system, sans-serif;
}

.notif-empty {
  text-align: center;
  padding: 40px 20px;
  color: #5a6a8a;
}
.notif-empty-ico { font-size: 36px; margin-bottom: 10px; }
.notif-empty p   { font-size: 16px; font-family: 'Nunito', -apple-system, sans-serif; }

.notif-item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  background: #0e1424;
  border: 1px solid #1e2a45;
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 8px;
  text-decoration: none;
  cursor: pointer;
}
.notif-item.unread {
  background: #0c0e1a;
  border-color: #a855f740;
}
.notif-item:active { background: #151d30; }

.ni-icon {
  width: 36px; height: 36px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; flex-shrink: 0;
}
.ni-match   { background: #160f2a; }
.ni-accept  { background: #0d2518; }
.ni-pending { background: #1f1508; }
.ni-cancel  { background: #1a0a0a; }
.ni-default { background: #151d30; }

.ni-body { flex: 1; min-width: 0; }
.ni-title {
  font-size: 15px; font-weight: 700;
  color: #eef2ff; margin-bottom: 3px;
  font-family: 'Nunito', -apple-system, sans-serif;
}
.notif-item:not(.unread) .ni-title {
  color: #5a6a8a; font-weight: 400;
}
.ni-msg {
  font-size: 14px; color: #5a6a8a;
  line-height: 1.4;
  font-family: 'Nunito', -apple-system, sans-serif;
}
.ni-footer {
  display: flex; align-items: center;
  justify-content: space-between;
  margin-top: 4px;
}
.ni-time { font-size: 13px; color: #3a4a60; font-family: 'Nunito', -apple-system, sans-serif; }
.ni-link { font-size: 13px; color: #a855f7; font-family: 'Nunito', -apple-system, sans-serif; }
.ni-dot {
  width: 7px; height: 7px;
  border-radius: 50%; background: #a855f7;
  flex-shrink: 0; margin-top: 6px;
}

/* ── GLOBAL NAV — shared across all pages ── */
* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background: #080c18;
  color: #eef2ff;
  font-family: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  min-height: 100vh;
}

.tor-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: #080c18;
  max-width: 480px;
  margin: 0 auto;
}

.top-nav {
  background: #0e1424;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #1e2a45;
  position: sticky;
  top: 0;
  z-index: 100;
  flex-shrink: 0;
}

.nav-back {
  color: #5a6a8a;
  font-size: 26px;
  text-decoration: none;
  line-height: 1;
  padding-right: 8px;
  flex-shrink: 0;
}

.nav-logo {
  color: #eef2ff;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 1px;
  flex: 1;
  text-align: center;
}
.nav-logo span { color: #a855f7; }

.nav-icons {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.nav-icon {
  font-size: 20px;
  color: #5a6a8a;
  cursor: pointer;
}

.nav-icon.avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #a855f7;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.nav-bell {
  position: relative;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.nav-bell .bell-ico {
  font-size: 20px;
  color: #5a6a8a;
  transition: color 0.2s;
}
.nav-bell.has-unread .bell-ico { color: #a855f7; }

#notif-badge {
  position: absolute;
  top: -4px; right: -5px;
  background: #ef4444;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  border-radius: 99px;
  min-width: 16px;
  height: 16px;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
}

/* BOTTOM NAV — exact copy from stamp.css */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;height:64px;background:rgba(5,8,22,.78);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(168,85,247,.18);z-index:100}
.bn-item{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:#3a4a6a;font-size:20px;flex:1;font-family:'Nunito',sans-serif;transition:color .15s}
.bn-item small{font-size:10px;font-weight:700}
.bn-item.active{color:#a855f7;text-shadow:0 0 12px rgba(168,85,247,.5)}
.bn-item.bn-tor{background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:50%;width:50px;height:50px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;flex:none;margin-bottom:20px;box-shadow:0 0 18px rgba(168,85,247,.6),0 4px 20px rgba(0,0,0,.5)}
