/* ── Shared styles: header, nav, auth, tags, spinner ── */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --hive-red:#E31337;--bg:#0a0a14;--bg2:#12121f;--card:#1a1a2e;
  --text:#e8e8f0;--text-dim:#aaaac4;--gold:#FFD700;--green:#2ecc71;
  --orange:#f39c12;
}
body{background:var(--bg);color:var(--text);font-family:'Segoe UI',system-ui,sans-serif;min-height:100vh}
a{color:var(--hive-red);text-decoration:none}

/* ── Header ── */
.header{background:var(--bg2);border-bottom:2px solid var(--hive-red);padding:16px 24px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}
.logo{font-size:28px;font-weight:800;letter-spacing:-1px;background:linear-gradient(135deg,var(--hive-red),#ff6b6b);-webkit-background-clip:text;-webkit-text-fill-color:transparent}

.nav-links{display:flex;gap:16px;align-items:center}
.nav-links a{color:var(--text-dim);font-size:14px;padding:8px 16px;border-radius:20px;transition:all .2s}
.nav-links a:hover,.nav-links a.active{color:#fff;background:var(--hive-red)}

/* ── Auth area ── */
#auth-area{display:flex;align-items:center;gap:10px;margin-left:8px;font-size:13px}
#auth-area .auth-user{color:var(--text-dim)}
#auth-area .auth-logout{color:var(--text-dim);font-size:12px;cursor:pointer;padding:4px 10px;border-radius:12px;border:1px solid #ffffff15;transition:all .2s}
#auth-area .auth-logout:hover{color:#fff;border-color:var(--hive-red)}

/* ── Tags ── */
.tag{padding:4px 12px;border-radius:12px;font-size:11px;background:var(--card);color:var(--text-dim);border:1px solid #ffffff10}
.tag.sentiment-positive{border-color:var(--green);color:var(--green)}
.tag.sentiment-negative{border-color:#e74c3c;color:#e74c3c}
.tag.sentiment-neutral{border-color:#95a5a6;color:#95a5a6}

/* ── Spinner ── */
@keyframes spin{to{transform:rotate(360deg)}}
.spinner{border:3px solid var(--card);border-top-color:var(--hive-red);border-radius:50%;animation:spin .8s linear infinite}
.loading{text-align:center;padding:60px;color:var(--text-dim)}
.loading .spinner{width:40px;height:40px;margin:0 auto 16px}

/* ── Rendered markdown body ── */
.rendered-body{font-size:14px;line-height:1.7;color:var(--text);overflow-y:auto;word-break:break-word}
.rendered-body img{max-width:100%;height:auto;border-radius:8px;margin:8px auto;display:block}
.rendered-body h1,.rendered-body h2,.rendered-body h3,.rendered-body h4{color:#fff;margin:12px 0 6px;font-size:1.1em}
.rendered-body p{margin:6px 0}
.rendered-body a{color:var(--hive-red);text-decoration:underline}
.rendered-body blockquote{border-left:3px solid var(--hive-red);padding-left:12px;margin:8px 0;color:var(--text-dim)}
.rendered-body pre{background:var(--card);padding:10px;border-radius:8px;overflow-x:auto;margin:8px 0}
.rendered-body code{background:var(--card);padding:2px 5px;border-radius:4px;font-size:0.9em}
.rendered-body pre code{background:none;padding:0}
.rendered-body ul,.rendered-body ol{margin:8px 0;padding-left:24px}
.rendered-body li{margin:4px 0}
.rendered-body hr{border:none;border-top:1px solid #ffffff15;margin:12px 0}
.rendered-body table{border-collapse:collapse;width:100%;margin:8px 0}
.rendered-body th,.rendered-body td{border:1px solid #ffffff15;padding:6px 10px;text-align:left;font-size:13px}
.rendered-body th{background:var(--card);color:var(--text-dim)}

/* ── Screen reader only ── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ── Toast notifications ── */
.toast-container{position:fixed;bottom:20px;right:20px;z-index:300;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{pointer-events:auto;background:var(--card);color:var(--text);border-left:4px solid #3498db;border-radius:8px;padding:12px 16px;font-size:13px;max-width:360px;box-shadow:0 4px 16px rgba(0,0,0,.4);animation:toastIn .3s ease}
.toast.success{border-left-color:var(--green)}
.toast.error{border-left-color:#e74c3c}
@keyframes toastIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}

/* ── Reduced motion ── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}
}
