/* PubliScope — app (login + dashboard) styles. Builds on style.css tokens. */
.logo.big{width:52px;height:52px;font-size:1.6rem;border-radius:14px;margin-bottom:14px}
.btn.sm{padding:8px 14px;font-size:.85rem}

/* ---- login ---- */
.auth-wrap{min-height:calc(100vh - 66px);display:flex;align-items:center;justify-content:center;padding:40px 20px;
  background:radial-gradient(900px 400px at 50% -10%,var(--primary-soft),transparent)}
.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);
  padding:40px 34px;max-width:420px;width:100%;text-align:center}
.auth-card h1{font-size:1.5rem;margin-bottom:8px}
.auth-card p{color:var(--text-soft)}
.fb-btn{display:flex;align-items:center;justify-content:center;gap:10px;background:#1877F2;color:#fff;
  padding:13px 20px;border-radius:10px;font-weight:600;margin:22px 0 12px;transition:.15s}
.fb-btn:hover{background:#0f66d0;text-decoration:none;color:#fff}
.auth-note{font-size:.9rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;padding:10px}
.auth-fine{font-size:.8rem;color:var(--muted);margin-top:16px;margin-bottom:0}

/* ---- app bar ---- */
body.app{background:var(--bg-soft)}
.app-bar{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;
  height:60px;padding:0 22px;background:var(--bg);border-bottom:1px solid var(--border)}
.app-bar-right{display:flex;align-items:center;gap:14px}
.app-bar .user{font-weight:600;font-size:.92rem;color:var(--text)}
.mode-badge{font-size:.68rem;font-weight:800;letter-spacing:.06em;padding:4px 9px;border-radius:99px}
.mode-badge.sample{background:#fef3c7;color:#92400e}
.mode-badge.live{background:#dcfce7;color:#166534}

/* ---- search ---- */
.app-main{padding:30px 22px 60px}
.search-panel h1{font-size:1.5rem;margin-bottom:4px}
.search-panel .sub{color:var(--text-soft);margin-bottom:16px}
.search-row{display:flex;gap:10px;max-width:640px}
.search-row input{flex:1;padding:13px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);
  color:var(--text);font-size:1rem}
.search-row input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.privacy-inline{margin-top:14px;font-size:.85rem;color:var(--muted);background:var(--bg-card);border:1px solid var(--border);
  border-radius:8px;padding:9px 12px;display:inline-block}

.status{margin:22px 0}
.loading{color:var(--text-soft);padding:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px}
.err{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca;border-radius:12px;padding:14px 16px}

/* ---- results ---- */
.page-head{display:flex;align-items:baseline;gap:14px;margin:28px 0 16px;flex-wrap:wrap}
.page-head h2{margin:0;font-size:1.5rem}
.followers{color:var(--muted);font-size:.95rem}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.stat{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow)}
.stat-num{font-size:1.9rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}
.stat-label{font-size:.82rem;color:var(--muted);margin-top:2px}
.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:20px 22px;box-shadow:var(--shadow)}
.card h3{margin:0 0 16px;font-size:1.05rem}
.muted{color:var(--muted)}

/* trend bars */
.bars{display:flex;align-items:flex-end;gap:5px;height:150px;overflow-x:auto;padding-bottom:4px}
.bar-col{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:22px}
.bar{width:16px;background:linear-gradient(180deg,var(--primary),var(--accent));border-radius:4px 4px 0 0}
.bar-x{font-size:.62rem;color:var(--muted);white-space:nowrap}

/* sentiment */
.srow{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.slab{width:66px;font-size:.85rem;color:var(--text-soft)}
.sbar{flex:1;height:12px;background:var(--bg-soft);border-radius:99px;overflow:hidden}
.sfill{height:100%;border-radius:99px}
.sfill.pos{background:#22c55e}.sfill.neu{background:#94a3b8}.sfill.neg{background:#ef4444}
.sval{width:38px;text-align:right;font-size:.85rem;font-weight:600}

/* keywords */
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{background:var(--primary-soft);color:var(--primary);border-radius:99px;padding:5px 12px;line-height:1.3}
.tag b{opacity:.6;font-weight:700}

/* posts */
.post{border-top:1px solid var(--border);padding:12px 0}
.post:first-child{border-top:0}
.post-meta{display:flex;align-items:center;gap:8px;font-size:.8rem;margin-bottom:5px}
.chip{font-size:.68rem;font-weight:700;text-transform:capitalize;padding:2px 8px;border-radius:99px}
.chip.positive{background:#dcfce7;color:#166534}
.chip.neutral{background:#e2e8f0;color:#475569}
.chip.negative{background:#fee2e2;color:#991b1b}
.post-msg{font-size:.92rem;color:var(--text);margin-bottom:5px}
.post-eng{font-size:.82rem;color:var(--muted)}

@media (max-width:820px){
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .grid-2col{grid-template-columns:1fr}
  .search-row{flex-direction:column}
}
