/* Langfin Data — Rolex Dark Aesthetic
   Base layout from news-portal, data-portal components layered on top */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#0a0a0a;--card:#111111;--bg-card:#111111;--bg-card-hover:#161616;--gold:#c5a47e;--gold-dim:rgba(197,164,126,0.15);--gold-glow:rgba(197,164,126,0.06);--teal:#2a9d8f;--red:#e63946;--green:#2a9d8f;--text:#f0ece2;--muted:#888;--muted-dim:#555;--border:rgba(197,164,126,0.15);--radius:8px;--radius-lg:12px}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--gold);text-decoration:none}a:hover{opacity:.85}

/* ── NAV (from news-portal) ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(10,10,10,.9);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);height:56px;display:flex;align-items:center;padding:0 24px}
.nav-inner{max-width:1200px;margin:0 auto;width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{color:var(--gold);font-size:15px;font-weight:300;letter-spacing:.2em;white-space:nowrap}
.nav-links{display:flex;gap:24px;align-items:center}
.nav-links a{color:var(--muted);font-size:13px;transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--text);opacity:1}
.btn-sm{padding:5px 14px;border:1px solid var(--gold);color:var(--gold);font-size:12px}
.btn-sm:hover{background:var(--gold);color:var(--bg)}
.hamburger{display:none;cursor:pointer;flex-direction:column;gap:4px}
.hamburger span{width:20px;height:1.5px;background:var(--text)}

/* Dropdown */
.dropdown-trigger{position:relative;cursor:pointer}
.dropdown-menu{display:none;position:absolute;top:100%;left:-10px;background:#1a1a1a;border:1px solid var(--border);border-radius:var(--radius);padding:8px 0;min-width:180px;z-index:200;box-shadow:0 8px 32px rgba(0,0,0,.5)}
.dropdown-trigger:hover .dropdown-menu{display:block}
.dropdown-menu a{display:block;padding:7px 16px;font-size:13px;color:var(--muted)!important}
.dropdown-menu a:hover{color:var(--text)!important;background:rgba(255,255,255,.03)}

/* Search (news-portal style) */
.search-bar{flex:1;max-width:360px;position:relative}
.search-bar input{width:100%;background:transparent;border:1px solid var(--border);color:var(--text);padding:6px 12px 6px 32px;font-size:13px;font-family:inherit;outline:none}
.search-bar input:focus{border-color:var(--gold)}
.search-bar::before{content:'⌕';position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px}
.search-bar input::placeholder{color:var(--muted-dim)}

/* ── CONTAINER & SECTIONS (from news-portal) ── */
.container{max-width:1200px;margin:0 auto;padding:0 24px}
.container-narrow{max-width:1000px;margin:0 auto;padding:0 24px}
section{padding:48px 0}

/* Body offset for fixed nav */
body{padding-top:56px}

/* ── SECTION TITLES (from news-portal) ── */
.s-title{color:var(--gold);font-size:18px;font-weight:500;letter-spacing:.03em;margin-bottom:4px}
.s-sub{color:var(--muted);font-size:13px;margin-bottom:20px}
.section-title{font-size:18px;font-weight:600;margin-bottom:16px}

/* ── HERO (template page headers) ── */
.hero{max-width:1200px;margin:0 auto;padding:32px 24px 16px}
.hero h1{font-size:28px;font-weight:700;color:var(--text);margin-bottom:4px}
.hero-sub{font-size:14px;color:var(--muted)}

/* ── PAGE HEADER ── */
.page-header{margin-bottom:32px;padding-top:24px}
.page-header h1{font-size:28px;font-weight:700;color:var(--text);margin-bottom:4px}
.page-header .subtitle{font-size:14px;color:var(--muted)}
.page-header .breadcrumb{font-size:12px;color:var(--muted-dim);margin-bottom:8px}
.page-header .breadcrumb a{color:var(--muted)}

/* ── TABS (news-portal style) ── */
.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:24px;overflow-x:auto}
.tab-btn{background:none;border:none;color:var(--muted);font-size:14px;font-family:inherit;padding:10px 20px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:all .15s}
.tab-btn.active{color:var(--gold);border-bottom-color:var(--gold)}
.tab-btn:hover{color:var(--text)}
.tab-pane{display:none}.tab-pane.active{display:block}

/* Sub-nav pill tabs */
.sub-nav{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}
.sub-nav a,.sub-nav button{padding:8px 16px;border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;font-family:inherit;border:1px solid rgba(197,164,126,0.3);background:transparent;color:var(--muted);transition:all .15s}
.sub-nav a:hover,.sub-nav button:hover{border-color:var(--gold);color:var(--text)}
.sub-nav a.active,.sub-nav button.active{background:var(--gold);color:var(--bg);border-color:var(--gold)}

/* ── STAT CARDS ── */
.stats-grid,.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}
.stat-card{background:var(--card);border:1px solid var(--border);padding:16px}
.stat-card .label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}
.stat-card .value{font-size:24px;font-weight:700;color:var(--text)}
.stat-card .value.gold{color:var(--gold)}
.stat-card .change{font-size:12px;margin-top:2px}
.stat-card .stat-sub{font-size:12px;margin-top:4px}

/* ── CARD (section container) ── */
.card{background:var(--card);border:1px solid var(--border);padding:20px;margin-bottom:24px}

/* ── CHARTS (news-portal base + data extensions) ── */
.chart-wrap{background:var(--card);border:1px solid var(--border);padding:20px;margin-bottom:24px}
.chart-container{background:var(--card);border:1px solid var(--border);padding:20px;margin-bottom:24px}
.chart-container .chart-title{font-size:15px;font-weight:600;margin-bottom:12px}
.chart-box{width:100%;height:320px}
.chart-box-sm{width:100%;height:260px}
.chart-box-lg{width:100%;height:500px}
.live-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--teal);float:right}

/* ── TABLES ── */
.data-table-wrap{background:var(--card);border:1px solid var(--border);overflow:hidden;margin-bottom:24px}
.data-table-wrap .table-title{padding:16px 20px 12px;font-size:15px;font-weight:600;border-bottom:1px solid var(--border)}
.table-scroll{overflow-x:auto}
table.data-table{width:100%;border-collapse:collapse;font-size:13px}
table.data-table th{text-align:left;padding:10px 16px;font-weight:600;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;background:var(--card)}
table.data-table td{padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.03);white-space:nowrap}
table.data-table tr:hover td{background:rgba(255,255,255,.02)}
table.data-table .num{text-align:right;font-variant-numeric:tabular-nums}

/* ── COLORS ── */
.tone-pos{color:var(--teal)}.tone-neg{color:var(--red)}.tone-neutral{color:var(--muted)}

/* ── API ENDPOINT BOX ── */
.api-box{background:#0d0d0d;border:1px solid var(--border);padding:16px 20px;margin-bottom:24px;font-size:12px}
.api-box .api-title{font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;font-weight:600}
.api-box code{display:block;background:rgba(255,255,255,.03);padding:10px 14px;font-family:'SF Mono',Consolas,monospace;color:var(--muted);font-size:12px;overflow-x:auto;margin-bottom:6px;line-height:1.5}
.api-box .copy-btn{background:none;border:1px solid var(--border);color:var(--muted);padding:4px 12px;font-size:11px;cursor:pointer;font-family:inherit;float:right;margin-top:-4px}
.api-box .copy-btn:hover{color:var(--text);border-color:var(--gold-dim)}

/* ── AD SLOTS (news-portal style) ── */
.ad-slot{margin:20px auto;max-width:728px;min-height:2px}

/* ── CATEGORY GRID (data home) ── */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:32px}
.cat-card{background:var(--card);border:1px solid var(--border);padding:24px;transition:all .25s;cursor:pointer;display:block}
.cat-card:hover{border-color:rgba(197,164,126,.35);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.cat-card .cat-icon{font-size:28px;margin-bottom:12px}
.cat-card .cat-name{font-size:16px;font-weight:600;color:var(--gold);margin-bottom:6px}
.cat-card .cat-desc{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:10px}
.cat-card .cat-stat{font-size:12px;color:var(--teal);font-weight:500}

/* ── COLUMNS ── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px}
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:24px}
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}

/* ── PILL BADGES ── */
.pill{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600}
.pill-green{background:rgba(42,157,143,.15);color:var(--teal)}
.pill-red{background:rgba(230,57,70,.15);color:var(--red)}
.pill-gold{background:rgba(197,164,126,.15);color:var(--gold)}
.pill-neutral{background:rgba(136,136,136,.15);color:var(--muted)}

/* ── GAUGE ── */
.gauge-wrap{text-align:center;padding:20px}
.gauge-value{font-size:56px;font-weight:700}
.gauge-label{font-size:14px;color:var(--muted);margin-top:4px}
.gauge-rating{font-size:18px;font-weight:600;margin-top:8px}

/* ── LOADING ── */
.loading{color:var(--muted);text-align:center;padding:40px;font-size:14px}

/* ── KEY-VALUE GRID ── */
.kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.kv-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.03)}
.kv-item .kv-key{color:var(--muted);font-size:13px}
.kv-item .kv-val{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}

/* ── SEARCH RESULTS ── */
.search-results{margin-top:16px}
.search-result-item{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.03);cursor:pointer;transition:background .2s}
.search-result-item:hover{background:rgba(255,255,255,.02)}

/* ── LOAD MORE BUTTON ── */
.load-more{display:block;width:100%;padding:12px;background:transparent;border:1px solid var(--border);color:var(--muted);font-size:14px;cursor:pointer;text-align:center;margin-top:16px}
.load-more:hover{border-color:var(--gold);color:var(--gold)}

/* ── FOOTER (from news-portal) ── */
.footer{padding:40px 0;border-top:1px solid var(--border);text-align:center;margin-top:48px}
.footer .logo,.footer .footer-brand{font-size:16px;margin-bottom:12px;display:block;color:var(--gold);font-weight:600;letter-spacing:1px}
.footer-links{display:flex;justify-content:center;gap:24px;margin-bottom:16px}
.footer-links a{color:var(--muted);font-size:12px}
.footer a{color:var(--muted);margin:0 12px}
.footer .copy{color:var(--muted);font-size:11px}

/* ── RESPONSIVE (from news-portal breakpoints) ── */
@media(max-width:1024px){
  .cols-3{grid-template-columns:repeat(2,1fr)}
  .three-col{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  .cols-3,.three-col{grid-template-columns:1fr}
  .two-col{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .nav-links{display:none}
  .nav-links.open{display:flex;flex-direction:column;position:absolute;top:56px;left:0;right:0;background:var(--bg);padding:16px 24px;border-bottom:1px solid var(--border);gap:12px;z-index:999}
  .hamburger{display:flex}
  .search-bar{max-width:200px}
  .chart-box{height:260px}
  .cat-grid{grid-template-columns:1fr 1fr}
  .container,.container-narrow{padding:0 16px}
  .page-header h1{font-size:22px}
  .kv-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
  .search-bar{display:none}
  .cat-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr}
}
