:root{
  --bg:#0a0e14; --panel:#11161f; --panel2:#0d1219; --border:#1e2635; --border2:#28344a;
  --text:#d6deeb; --muted:#7a8699; --muted2:#5b6b82;
  --green:#2ebd85; --red:#f6465d; --amber:#f0b90b;
  --green-bg:rgba(46,189,133,.14); --red-bg:rgba(246,70,93,.14); --neutral-bg:rgba(122,134,153,.16);
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:13px;line-height:1.45}
a{color:#82aaff;text-decoration:none} a:hover{text-decoration:underline}
button,input,select{font-family:inherit;font-size:12px}
button{cursor:pointer}
.mono{font-family:var(--mono)}
.muted{color:var(--muted)} .small{font-size:11px} .tiny{font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.pos{color:var(--green)} .neg{color:var(--red)} .neu{color:var(--muted)}
/* Header */
#site-header{position:sticky;top:0;z-index:40;background:#0c1017;border-bottom:1px solid var(--border);padding:10px 14px}
.header-inner{max-width:1440px;margin:0 auto;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.brand h1{font-size:16px;letter-spacing:.12em;margin:0;font-weight:800}
.brand h1 span{color:var(--green)}
.header-meta{color:var(--muted);font-size:11px}
.header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.search-wrap{display:flex;gap:6px}
.search-wrap input,.inline-form input,.inline-form select,.compare-add input{background:#0a0e14;border:1px solid var(--border);color:var(--text);padding:7px 9px;border-radius:4px;min-width:140px}
.btn{background:var(--panel);border:1px solid var(--border2);color:var(--text);padding:7px 12px;border-radius:4px;font-weight:700;letter-spacing:.04em}
.btn:hover{border-color:var(--green)} .btn-primary{background:var(--green);color:#06110c;border-color:var(--green)}
.btn-danger{border-color:var(--red);color:var(--red)} .btn-sm{padding:4px 8px;font-size:11px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-2px}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:.5}50%{opacity:1}}
.pulse{animation:pulse 1.2s ease-in-out infinite}
/* Layout */
#main{max-width:1440px;margin:0 auto;padding:14px}
#site-footer{max-width:1440px;margin:0 auto;padding:16px 14px 70px;color:var(--muted);font-size:11px;border-top:1px solid var(--border)}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:12px;margin-bottom:14px}
.panel h2,.panel h3{margin:0 0 10px;letter-spacing:.06em}
.panel h2{font-size:13px;text-transform:uppercase} .panel h3{font-size:12px}
/* Backdrop */
.backdrop{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.backdrop-cell{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:10px 12px}
.backdrop-cell .label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.backdrop-cell .price{font-size:18px;font-weight:800;margin:2px 0}
/* Tables */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:12px;min-width:520px}
th,td{padding:7px 8px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}
th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:700}
th:first-child,td:first-child{text-align:left}
td.num,th.num{font-family:var(--mono)}
.heat{font-weight:700;text-align:center!important;border-radius:0}
.heat-pos-strong{background:rgba(46,189,133,.32)} .heat-pos{background:rgba(46,189,133,.16)} .heat-pos-weak{background:rgba(46,189,133,.07)}
.heat-neg-strong{background:rgba(246,70,93,.32)} .heat-neg{background:rgba(246,70,93,.16)} .heat-neg-weak{background:rgba(246,70,93,.07)}
.median-row td{border-top:2px solid var(--border2);color:var(--muted);font-weight:700;background:var(--panel2)}
/* Pills / tags */
.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;font-weight:800;font-size:11px;border:1px solid var(--border)}
.pill-green{background:var(--green-bg);color:var(--green);border-color:rgba(46,189,133,.4)}
.pill-red{background:var(--red-bg);color:var(--red);border-color:rgba(246,70,93,.4)}
.pill-neutral{background:var(--neutral-bg);color:var(--text)}
.tag{display:inline-block;font-size:9px;letter-spacing:.08em;padding:1px 5px;border-radius:3px;border:1px solid var(--amber);color:var(--amber);vertical-align:middle;margin-left:6px;text-transform:uppercase}
.tag-added{border-color:var(--green);color:var(--green)}
.tag-custom{border-color:#82aaff;color:#82aaff}
/* Themes */
.theme-head{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:flex-start}
.theme-title{font-size:15px;font-weight:800}
.theme-stats{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:12px}
.theme-stats b{color:var(--text)}
.headline{font-size:12px;margin-top:6px} .note{color:var(--muted);font-size:12px;margin-top:4px}
.digest{margin-top:8px;padding:8px 10px;background:var(--panel2);border-left:3px solid var(--amber);font-size:12px}
.view-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 8px}
.view-tabs button{background:transparent;border:1px solid var(--border);color:var(--muted);padding:5px 10px;border-radius:999px}
.view-tabs button.active{background:var(--text);color:#0a0e14;border-color:var(--text);font-weight:800}
.inline-form{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:10px}
.watch-list{margin-top:10px;border-top:1px dashed var(--border);padding-top:8px}
.watch-row{display:flex;gap:10px;align-items:center;padding:5px 0;border-bottom:1px solid #161d2a;font-size:12px;flex-wrap:wrap}
.earnings-rail{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.chip{background:var(--panel2);border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:11px}
.chip b{color:var(--amber)}
.signals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px}
.signal-row{display:flex;gap:8px;align-items:baseline;padding:7px 8px;background:var(--panel2);border:1px solid var(--border);border-radius:4px;font-size:12px}
.signal-badge{font-size:10px;font-weight:800;letter-spacing:.05em;padding:2px 5px;border-radius:3px;background:#1c2738;color:#82aaff;white-space:nowrap}
/* Stock */
.breadcrumb{margin-bottom:10px}
.big-price{font-size:32px;font-weight:800;line-height:1}
.range-wrap{margin:10px 0}
.range-bar{position:relative;height:8px;background:#1c2738;border-radius:999px;margin:6px 0 4px}
.range-marker{position:absolute;top:-3px;width:3px;height:14px;background:#fff;border-radius:2px;transform:translateX(-50%)}
.range-labels{display:flex;justify-content:space-between;color:var(--muted);font-size:11px}
.seg-btns{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.seg-btns button{background:transparent;border:1px solid var(--border);color:var(--muted);padding:5px 10px;border-radius:4px}
.seg-btns button.active{background:var(--green);color:#06110c;border-color:var(--green);font-weight:800}
.seg-btns button:disabled{opacity:.35}
.score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.score-box{background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:10px;text-align:center}
.score-box .v{font-size:20px;font-weight:800}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gauge{height:10px;background:#1c2738;border-radius:999px;position:relative;overflow:hidden}
.gauge-fill{height:100%;background:var(--green)}
.target-bar-wrap{margin:14px 0}
.target-track{position:relative;height:18px;background:#1c2738;border-radius:4px}
.target-range{position:absolute;top:0;height:100%;background:rgba(46,189,133,.35);border-left:2px solid var(--green);border-right:2px solid var(--green)}
.target-mean{position:absolute;top:-4px;width:3px;height:26px;background:var(--amber)}
.target-price{position:absolute;top:-6px;width:3px;height:30px;background:#fff}
.skeleton{background:linear-gradient(90deg,#161d2a 25%,#1e2a3f 50%,#161d2a 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:4px;min-height:18px;margin:8px 0}
@keyframes shimmer{to{background-position:-200% 0}}
.news-item{padding:9px 0;border-bottom:1px solid var(--border)}
.social-item{padding:8px 0;border-bottom:1px solid var(--border)}
.unverified{color:var(--amber);font-size:10px;text-transform:uppercase;letter-spacing:.06em}
/* Compare */
.compare-tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:12px}
.legend-item{display:flex;gap:6px;align-items:center}
.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}
/* Mobile nav */
#mobile-nav{display:none}
@media (max-width:760px){
  #main{padding:10px 10px 76px} .backdrop{grid-template-columns:1fr 1fr 1fr;gap:6px} .backdrop-cell .price{font-size:14px}
  .two-col,.score-grid{grid-template-columns:1fr 1fr}
  #mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:50;background:#0c1017;border-top:1px solid var(--border);padding:8px;gap:6px;justify-content:space-around}
  #mobile-nav button{flex:1;background:var(--panel);border:1px solid var(--border);color:var(--text);padding:9px 4px;border-radius:4px;font-size:11px}
  /* Hide non-essential columns on theme/ranking tables */
  table.mobile-compact th,table.mobile-compact td{display:none}
  table.mobile-compact th[data-col="ticker"],table.mobile-compact td[data-col="ticker"],
  table.mobile-compact th[data-col="spark"],table.mobile-compact td[data-col="spark"],
  table.mobile-compact th[data-col="dayPct"],table.mobile-compact td[data-col="dayPct"],
  table.mobile-compact th[data-col="score"],table.mobile-compact td[data-col="score"],
  table.mobile-compact th[data-col="theme"],table.mobile-compact td[data-col="theme"]{display:table-cell}
  table.mobile-compact td[data-col="ticker"],table.mobile-compact th[data-col="ticker"]{position:sticky;left:0;background:var(--panel);z-index:2}
  .header-inner{flex-direction:column;align-items:stretch} .search-wrap input{flex:1}
}
