/* BullishPulls — Main Stylesheet */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Plus Jakarta Sans',sans-serif;background:#0f1117;color:#e8edf5;min-height:100vh}
:root{
  --bg:#0f1117;--bg-alt:#161b27;--surface:#1a2030;--surface-hov:#1f2740;
  --border:#252e45;--text:#e8edf5;--text-sub:#8896b3;--text-muted:#4d5b7a;
  --green:#10b981;--green-bg:rgba(16,185,129,0.1);
  --red:#ef4444;--red-bg:rgba(239,68,68,0.1);
  --yellow:#f59e0b;--blue:#3b82f6;--purple:#8b5cf6;
  --pokemon:#eab308;--sports:#3b82f6;--sentiment:#8b5cf6;
}
body.light{
  background:#f8fafc;color:#0f172a;
  --bg:#f8fafc;--bg-alt:#f1f5f9;--surface:#fff;--surface-hov:#f8fafc;
  --border:#e2e8f0;--text:#0f172a;--text-sub:#475569;--text-muted:#94a3b8;
  --green:#059669;--green-bg:rgba(5,150,105,0.08);
  --red:#dc2626;--red-bg:rgba(220,38,38,0.08);
  --yellow:#d97706;--blue:#2563eb;--purple:#7c3aed;
  --pokemon:#ca8a04;--sports:#2563eb;--sentiment:#7c3aed;
}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}

/* NAV */
nav{background:var(--surface);border-bottom:1px solid var(--border);padding:0 28px;height:64px;
  display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;
  box-shadow:0 1px 3px rgba(0,0,0,0.4)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.logo-text{display:flex;flex-direction:column}
.logo-name{font-size:16px;font-weight:800;color:var(--text);letter-spacing:-0.3px;line-height:1}
.logo-sub{font-size:9px;color:var(--text-muted);letter-spacing:1.5px;margin-top:2px}
.nav-tabs{display:flex;gap:4px}
.nav-tab{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;border:none;
  background:transparent;color:var(--text-sub);font-weight:600;font-size:13px;cursor:pointer;
  transition:all 0.15s;font-family:inherit}
.nav-tab.active{background:rgba(16,185,129,0.12);color:var(--green)}
.nav-tab[data-tab="pokemon"].active{background:rgba(234,179,8,0.12);color:var(--pokemon)}
.nav-tab[data-tab="sports"].active{background:rgba(59,130,246,0.12);color:var(--sports)}
.nav-tab[data-tab="sentiment"].active{background:rgba(139,92,246,0.12);color:var(--sentiment)}
.nav-tab[data-tab="articles"].active{background:rgba(16,185,129,0.12);color:var(--green)}
.nav-tab[data-tab="releases"].active{background:rgba(59,130,246,0.12);color:var(--blue)}
.nav-tab[data-tab="lastsold"].active{background:rgba(16,185,129,0.12);color:var(--green)}
.nav-right{display:flex;gap:16px;align-items:center}
.live-dot{width:6px;height:6px;background:var(--green);border-radius:50%;box-shadow:0 0 6px var(--green);display:inline-block}
.live-badge{font-size:11px;color:var(--green);font-weight:600;display:flex;align-items:center;gap:5px}
.theme-btn{width:36px;height:36px;border-radius:8px;border:1px solid var(--border);background:var(--bg-alt);
  cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text)}

/* TICKER */
.ticker{overflow:hidden;border-bottom:1px solid var(--border);background:var(--bg-alt);padding:8px 0}
.ticker-inner{display:flex;gap:40px;animation:ticker 40s linear infinite;white-space:nowrap;font-size:12px}
.ticker-item{display:inline-flex;gap:8px;align-items:center}
.ticker-name{color:var(--text-sub);font-weight:500}

/* MAIN */
main{max-width:1280px;margin:0 auto;padding:24px 28px 80px 28px}
.page{display:none}.page.active{display:block}

/* CARDS */
.stats-row{display:flex;gap:12px;margin-bottom:20px}
.stat-card{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px 20px}
.stat-label{font-size:11px;color:var(--text-muted);font-weight:500;margin-bottom:8px}
.stat-value{font-size:20px;font-weight:700;letter-spacing:-0.5px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.card-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.card-title{font-size:15px;font-weight:700;color:var(--text)}
.card-sub{font-size:12px;color:var(--text-sub);margin-top:2px}
.grid-2{display:grid;grid-template-columns:1fr 340px;gap:16px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr}
.three-col-item{padding:14px 20px}
.three-col-item:nth-child(n+4){border-top:1px solid var(--border)}
.three-col-item:not(:nth-child(3n)){border-right:1px solid var(--border)}

/* TABLES */
table{width:100%;border-collapse:collapse;font-size:13px}
thead tr{background:var(--bg-alt)}
th{padding:10px 16px;text-align:left;color:var(--text-muted);font-weight:600;font-size:11px}
th.right{text-align:right}
td{padding:12px 16px;border-top:1px solid var(--border)}
td.right{text-align:right}
tr.clickable{cursor:pointer;transition:background 0.1s}
tr.clickable:hover{background:var(--surface-hov)}

/* BADGES */
.badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:3px}
.badge-green{color:var(--green);background:var(--green-bg)}
.badge-red{color:var(--red);background:var(--red-bg)}
.badge-blue{color:var(--blue);background:rgba(59,130,246,0.12)}
.badge-yellow{color:var(--yellow);background:rgba(245,158,11,0.12)}
.badge-purple{color:var(--purple);background:rgba(139,92,246,0.12)}
.badge-gray{color:var(--text-muted);background:rgba(148,163,184,0.12)}
.change-up{color:var(--green);background:var(--green-bg);padding:3px 8px;border-radius:4px;font-size:12px;font-weight:600}
.change-down{color:var(--red);background:var(--red-bg);padding:3px 8px;border-radius:4px;font-size:12px;font-weight:600}

/* TABS */
.sub-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border)}
.sub-tab{padding:8px 16px;border:none;border-bottom:2px solid transparent;background:transparent;
  color:var(--text-sub);font-weight:600;font-size:13px;cursor:pointer;margin-bottom:-1px;transition:all 0.15s;font-family:inherit}
.sub-page{display:none}.sub-page.active{display:block}

/* FORMS */
.search-box{display:flex;gap:10px}
.search-input{flex:1;padding:10px 16px;border-radius:8px;border:1px solid var(--border);
  background:var(--bg-alt);color:var(--text);font-size:13px;outline:none;font-family:inherit}
.search-input:focus{border-color:var(--green)}
.search-btn{padding:10px 24px;border-radius:8px;background:var(--green);border:none;
  color:#fff;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit}
.btn{padding:8px 20px;border-radius:8px;border:1px solid var(--border);background:var(--bg-alt);
  color:var(--text);font-weight:600;font-size:13px;cursor:pointer;font-family:inherit;transition:all 0.15s}
.btn:hover{border-color:var(--green);color:var(--green)}
.btn-primary{background:var(--green);border-color:var(--green);color:#fff}
.btn-primary:hover{background:#0ea574;border-color:#0ea574;color:#fff}
.filter-pills{display:flex;gap:6px;flex-wrap:wrap}
.pill{padding:5px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-alt);
  color:var(--text-sub);font-weight:600;font-size:11px;cursor:pointer;font-family:inherit;transition:all 0.15s}
.pill.active-pill{border-color:var(--green);background:var(--green-bg);color:var(--green)}
select.sport-select{padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface);
  color:var(--text);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}

/* BP RING */
.bp-ring{position:relative;flex-shrink:0}
.bp-ring svg{transform:rotate(-90deg)}
.bp-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800}

/* SPINNER */
.spinner-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;gap:16px}
.spinner{width:36px;height:36px;border:3px solid var(--border);border-top:3px solid var(--green);
  border-radius:50%;animation:spin 0.8s linear infinite}
.spinner-text{font-size:13px;color:var(--text-muted)}

/* EMPTY STATE */
.empty{padding:40px;text-align:center;color:var(--text-muted)}
.empty-icon{font-size:32px;margin-bottom:12px}
.empty-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:8px}
.empty-desc{font-size:13px}

/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.75);z-index:1000;
  display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;
  width:100%;max-width:620px;max-height:85vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,0.8);animation:fadeIn 0.2s ease}
.modal-header{padding:20px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start}
.modal-body{padding:20px 24px}
.modal-footer{padding:16px 24px;border-top:1px solid var(--border);text-align:right}
.close-btn{background:var(--bg-alt);border:1px solid var(--border);color:var(--text);
  padding:6px 14px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;font-family:inherit}

/* NEWS ITEMS */
.news-item{padding:14px 16px;background:var(--bg-alt);border-radius:8px;border:1px solid var(--border);
  border-left:3px solid var(--green);margin-bottom:10px}
.news-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:6px;line-height:1.4}
.news-meta{display:flex;gap:10px;align-items:center;margin-bottom:6px;flex-wrap:wrap}
.news-desc{font-size:12px;color:var(--text-sub);line-height:1.5}

/* RELEASE CALENDAR */
.release-item{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:14px;align-items:center;cursor:pointer;transition:background 0.15s}
.release-item:hover{background:var(--surface-hov)}
.release-date-box{width:48px;height:48px;background:var(--bg-alt);border:1px solid var(--border);border-radius:8px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0}
.release-month{font-size:9px;font-weight:700;letter-spacing:0.5px}
.release-day{font-size:18px;font-weight:800;line-height:1.1}
.release-year{font-size:8px;color:var(--text-muted)}

/* WATCHLIST */
.watch-item{padding:16px 20px;border-top:1px solid var(--border);cursor:pointer;transition:background 0.15s}
.watch-item:hover{background:var(--surface-hov)}

/* SENTIMENT */
.gauge-wrap{display:flex;align-items:center;gap:20px}
.source-row{margin-bottom:10px}
.source-row-header{display:flex;justify-content:space-between;margin-bottom:4px;font-size:12px}
.source-bar-bg{height:4px;background:var(--bg-alt);border-radius:2px}
.source-bar-fill{height:100%;border-radius:2px}
.regional-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.regional-flag{font-size:14px;width:20px}
.regional-country{font-size:12px;font-weight:500;width:120px}
.regional-bar-bg{flex:1;height:6px;background:var(--bg-alt);border-radius:3px;overflow:hidden}
.regional-bar-fill{height:100%;border-radius:3px}
.regional-pct{font-size:11px;font-weight:700;width:30px;text-align:right}

/* ARTICLES */
.article-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-top:20px}
.article-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;
  cursor:pointer;transition:all 0.2s}
.article-card:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.3)}
.article-card-image{width:100%;height:160px;background:var(--bg-alt);display:flex;align-items:center;
  justify-content:center;font-size:48px;border-bottom:1px solid var(--border)}
.article-card-body{padding:20px}
.article-card-tag{font-size:10px;font-weight:700;padding:2px 8px;border-radius:3px;margin-bottom:10px;display:inline-block}
.article-card-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:8px;line-height:1.4}
.article-card-excerpt{font-size:13px;color:var(--text-sub);line-height:1.6;margin-bottom:12px}
.article-card-meta{font-size:11px;color:var(--text-muted);display:flex;gap:12px}
.article-full{max-width:760px;margin:0 auto}
.article-full h1{font-size:28px;font-weight:800;line-height:1.3;margin-bottom:12px}
.article-full h2{font-size:20px;font-weight:700;margin:24px 0 12px;color:var(--text)}
.article-full h3{font-size:16px;font-weight:700;margin:20px 0 8px;color:var(--text)}
.article-full p{font-size:15px;line-height:1.8;color:var(--text-sub);margin-bottom:16px}
.article-full ul,.article-full ol{padding-left:24px;margin-bottom:16px}
.article-full li{font-size:15px;line-height:1.8;color:var(--text-sub);margin-bottom:4px}
.article-full .article-meta{display:flex;gap:16px;margin-bottom:24px;font-size:13px;color:var(--text-muted)}
.article-full blockquote{border-left:3px solid var(--green);padding:12px 20px;background:var(--bg-alt);
  border-radius:0 8px 8px 0;margin:20px 0;font-style:italic;color:var(--text-sub)}
.article-back{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-muted);
  cursor:pointer;margin-bottom:24px;width:fit-content}
.article-back:hover{color:var(--green)}

/* ADMIN */
.admin-form{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;max-width:760px}
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:12px;font-weight:600;color:var(--text-sub);margin-bottom:6px;letter-spacing:0.3px}
.form-input{width:100%;padding:10px 14px;border-radius:8px;border:1px solid var(--border);
  background:var(--bg-alt);color:var(--text);font-size:13px;outline:none;font-family:inherit}
.form-input:focus{border-color:var(--green)}
.form-textarea{width:100%;padding:12px 14px;border-radius:8px;border:1px solid var(--border);
  background:var(--bg-alt);color:var(--text);font-size:13px;outline:none;font-family:inherit;
  resize:vertical;min-height:300px;line-height:1.6}
.form-textarea:focus{border-color:var(--green)}
.form-select{width:100%;padding:10px 14px;border-radius:8px;border:1px solid var(--border);
  background:var(--bg-alt);color:var(--text);font-size:13px;outline:none;font-family:inherit}

/* PAGE HEADER */
.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}
.page-title{font-size:24px;font-weight:800;letter-spacing:-0.5px}
.page-subtitle{font-size:13px;color:var(--text-sub);margin-top:4px}

/* FOOTER */
footer{border-top:1px solid var(--border);padding:16px 28px;display:flex;justify-content:space-between;
  font-size:12px;color:var(--text-muted);background:var(--surface);position:fixed;bottom:0;left:0;right:0;z-index:50}
