/* desojk.web.id · tema "Islami geometris modern"
   Dimuat SETELAH <style> bawaan tiap halaman, jadi token & aturan di sini menang.
   Satu file ini mengatur tampilan beranda + semua halaman hasil generator (saham, rilis, hub). */

:root{
  /* palet dasar */
  --dj-green-950:#08221A; --dj-green-900:#0F3D2E; --dj-green-800:#14503C; --dj-green-700:#0F6B50; --dj-green-600:#0E7A5F;
  --dj-gold-500:#C9A24B; --dj-gold-300:#E4CC8E; --dj-gold-text:#7F5C12;
  --dj-cream-50:#FFFCF5; --dj-cream-100:#F9F4EA; --dj-cream-200:#F3ECDD; --dj-cream-300:#EAE0CC;
  --dj-line:#E2D7C2; --dj-line-strong:#CDBE9F;
  --dj-ink:#13261F; --dj-ink-2:#3B4F46; --dj-ink-3:#5E6D65;
  --dj-red:#B5362A; --dj-red-text:#9A2A20;
  --font-serif:'Fraunces',Georgia,'Times New Roman',serif;
  --dj-motif:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23C9A24B' stroke-width='1'%3E%3Crect x='16' y='16' width='24' height='24'/%3E%3Crect x='16' y='16' width='24' height='24' transform='rotate(45 28 28)'/%3E%3Ccircle cx='28' cy='28' r='4'/%3E%3Cpath d='M0 0L11 11M56 0L45 11M0 56L11 45M56 56L45 45'/%3E%3C/g%3E%3C/svg%3E");

  /* skema token beranda (index.html) */
  --bg:#F5EFE3; --surface:var(--dj-cream-50); --surface-2:var(--dj-cream-100); --surface-inset:var(--dj-cream-200);
  --border:var(--dj-line); --border-strong:var(--dj-line-strong); --hairline:#EAE0CD;
  --text:var(--dj-ink); --text-secondary:var(--dj-ink-2); --text-muted:var(--dj-ink-3);
  --accent:var(--dj-green-700); --accent-hover:var(--dj-green-900); --accent-text:#0B5A43; --on-accent:#FFFFFF;
  --up:var(--dj-green-600); --up-text:#0A6049; --up-soft:rgba(14,122,95,.11);
  --down:var(--dj-red); --down-text:var(--dj-red-text); --down-soft:rgba(181,54,42,.08);
  --highlight:var(--dj-gold-500); --highlight-text:var(--dj-gold-text); --highlight-soft:rgba(201,162,75,.18);
  --grid-line:rgba(19,38,31,.07);
  --shadow-card:0 1px 2px rgba(15,61,46,.05);
  --shadow-pop:0 12px 32px rgba(15,61,46,.14);
  --r-md:10px; --r-lg:14px;

  /* skema token halaman generator (saham/, rilis/) */
  --navy:var(--dj-ink); --teal:var(--dj-green-700); --teal-text:#0A6049; --teal-soft:rgba(14,122,95,.11);
  --red:var(--dj-red); --red-text:var(--dj-red-text); --red-soft:rgba(181,54,42,.08);
  --amber:var(--dj-gold-text); --amber-soft:rgba(201,162,75,.18);
  --off:#F5EFE3; --white:var(--dj-cream-50); --muted:var(--dj-ink-3); --secondary:var(--dj-ink-2);
}

/* tema malam (atribut lama "terminal" dipertahankan agar app.js & share.js tetap jalan) */
[data-theme="terminal"]{
  --dj-ink:#EFE8D8;
  --bg:#0A1712; --surface:#10221A; --surface-2:#0D1D16; --surface-inset:#08130E;
  --border:#22392F; --border-strong:#335244; --hairline:rgba(239,232,216,.09);
  --text:#EFE8D8; --text-secondary:#CFC7B4; --text-muted:#9DA89F;
  --accent:#46C29C; --accent-hover:#6FD3B2; --accent-text:#6FD3B2; --on-accent:#0A1712;
  --up:#46C29C; --up-text:#6FD3B2; --up-soft:rgba(70,194,156,.15);
  --down:#F08A7A; --down-text:#F4A396; --down-soft:rgba(240,138,122,.13);
  --highlight:#D9B66A; --highlight-text:#E4CC8E; --highlight-soft:rgba(217,182,106,.16);
  --grid-line:rgba(239,232,216,.08);
  --shadow-card:none; --shadow-pop:0 12px 32px rgba(0,0,0,.5);

  --navy:#EFE8D8; --teal:#46C29C; --teal-text:#6FD3B2; --teal-soft:rgba(70,194,156,.15);
  --red:#F08A7A; --red-text:#F4A396; --red-soft:rgba(240,138,122,.13);
  --amber:#E4CC8E; --amber-soft:rgba(217,182,106,.16);
  --off:#0A1712; --white:#10221A; --muted:#9DA89F; --secondary:#CFC7B4;
}

/* ---------- dasar ---------- */
body{background-color:var(--bg,var(--off));position:relative}
body::before{content:"";position:absolute;inset:0 0 auto 0;height:260px;z-index:-1;pointer-events:none;
  background-image:var(--dj-motif);background-size:56px 56px;opacity:.16;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,transparent 100%)}
[data-theme="terminal"] body::before{opacity:.07}
h1,h2,.pg-title,.modal-head h3{font-family:var(--font-serif);font-weight:650;letter-spacing:-.015em;font-variation-settings:"opsz" 72}
::selection{background:rgba(201,162,75,.30);color:inherit}

/* ---------- logo & header ---------- */
.brand-ic{background:var(--dj-green-900)!important;border:1px solid rgba(201,162,75,.45)!important;border-radius:10px!important;
  box-shadow:inset 0 0 0 3px var(--dj-green-900),inset 0 0 0 4px rgba(201,162,75,.35)}
.brand .wm,.wm{font-family:var(--font-serif);font-weight:650;letter-spacing:-.01em}
.brand .by,.by{color:var(--highlight-text,var(--amber))}
.nav{background:color-mix(in srgb,var(--bg) 88%,transparent);border-bottom-color:var(--border)}
.icon-btn,.pg-back{border-radius:10px}

/* ---------- hero beranda ---------- */
.hero{position:relative;margin:18px 0 6px;padding:0!important;border-radius:20px;overflow:hidden;isolation:isolate;
  background:radial-gradient(120% 140% at 100% 0%,var(--dj-green-800) 0%,var(--dj-green-900) 46%,var(--dj-green-950) 100%);
  color:#F4EEDF;box-shadow:0 18px 40px -18px rgba(8,34,26,.55)}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--dj-motif);background-size:56px 56px;opacity:.22;
  -webkit-mask-image:radial-gradient(90% 120% at 100% 0%,#000 0%,transparent 75%);mask-image:radial-gradient(90% 120% at 100% 0%,#000 0%,transparent 75%)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,var(--dj-gold-500),transparent);opacity:.8}
[data-theme="terminal"] .hero{border:1px solid #1E3A2E}
.hero-in{padding:clamp(22px,4vw,40px) clamp(18px,4vw,40px) clamp(22px,3.5vw,34px)}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dj-gold-300);margin:0 0 14px}
.hero-eyebrow svg{width:14px;height:14px;flex:none}
.hero-title{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.05rem,2.4vw,1.3rem);letter-spacing:0;color:rgba(244,238,223,.82);margin:0;font-variation-settings:"opsz" 24}
.hero-stat{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;margin:6px 0 4px}
.hero-num{font-family:var(--font-serif);font-weight:600;font-size:clamp(3.6rem,11vw,6.2rem);line-height:.95;letter-spacing:-.035em;color:#FFFFFF;font-variation-settings:"opsz" 144;font-variant-numeric:lining-nums tabular-nums}
.hero-unit{font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:clamp(1.25rem,3.4vw,1.8rem);color:var(--dj-gold-300);font-variation-settings:"opsz" 48}
.hero-delta{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 22px}
.hero-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:12.5px;font-weight:700;padding:6px 11px;border-radius:999px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#F4EEDF}
.hero-pill .k{font-family:var(--font-sans);font-weight:600;color:rgba(244,238,223,.72)}
.hero-pill.in b{color:#7FE0BF} .hero-pill.out b{color:#FFAA9C} .hero-pill b{font-weight:800}
.hero-pill.rel{background:transparent;border-color:rgba(201,162,75,.45);color:var(--dj-gold-300);text-decoration:none}
.hero-pill.rel:hover{background:rgba(201,162,75,.12);text-decoration:none}
.hero .tracker-in{max-width:640px}
.hero .search input{background:rgba(255,255,255,.96);border:1px solid transparent;color:var(--dj-ink);min-height:50px;border-radius:12px;padding-left:40px}
.hero .search svg{left:14px;opacity:.55;color:var(--dj-ink)}
.hero .search input::placeholder{color:#6B776F}
.hero .search input:focus{border-color:var(--dj-gold-500);box-shadow:0 0 0 3px rgba(201,162,75,.35)}
[data-theme="terminal"] .hero .search input{background:#0A1712;color:#EFE8D8;border-color:#2B4A3D}
[data-theme="terminal"] .hero .search svg{color:#EFE8D8}
.hero .btn-primary{background:var(--dj-gold-500);color:#1E1505;min-height:50px;padding:0 22px;border-radius:12px;font-size:14px}
.hero .btn-primary:hover{background:var(--dj-gold-300)}
.hero .tr-res:not(:empty){margin-top:16px;max-width:820px;background:var(--surface);color:var(--text);border-radius:14px;padding:14px;box-shadow:0 10px 30px -12px rgba(0,0,0,.45)}
.hero .tr-hint{color:var(--text-muted)}
.hero :focus-visible{outline-color:var(--dj-gold-300)}
@media(max-width:560px){
  .hero{margin-top:14px;border-radius:16px}
  .hero-eyebrow .kep{display:none}
  .hero-delta{margin-bottom:18px}
  .stats{gap:8px}
  .scard{padding:12px}
  .scard .sv{font-size:1.6rem}
}

/* ---------- kartu statistik & kartu umum ---------- */
.pagehead{padding:12px 0 2px}
.stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.scard{border-radius:var(--r-lg);padding:14px 16px;position:relative;overflow:hidden}
.scard .sv{font-family:var(--font-serif);font-weight:600;font-size:2rem;letter-spacing:-.02em;font-variation-settings:"opsz" 96}
.scard .sv.m-back{color:var(--text)}
.scard .sl{font-size:12px;letter-spacing:.02em}
.scard.clk:hover{border-color:var(--dj-gold-500)}
.scard::after{content:"";position:absolute;right:-18px;top:-18px;width:64px;height:64px;background-image:var(--dj-motif);background-size:56px 56px;opacity:.18;border-radius:50%}
.card{border-radius:var(--r-lg)}
.card-head{background:transparent}
.card-title{font-family:var(--font-serif);font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text);font-variation-settings:"opsz" 24}
.seg{border-radius:10px}
.seg-btn{border-radius:8px}
.tl-box{border-radius:10px}
.tl-box.active{border-color:var(--dj-gold-500);background:var(--highlight-soft);box-shadow:0 0 0 2px var(--highlight-soft)}
.tl-box.active .yr{color:var(--highlight-text)}
.tile{border-radius:12px;background:var(--surface-2)}
.tile .tv{font-family:var(--font-serif);font-weight:600;font-size:1.9rem;font-variation-settings:"opsz" 96}
.release-link{border-radius:10px;border-color:rgba(201,162,75,.55);color:var(--highlight-text)}
.release-link:hover{border-color:var(--dj-gold-500);background:var(--highlight-soft)}
.io-list{border-radius:12px;background:var(--surface)}
.io-col h3{font-family:var(--font-sans)}
.tr-verdict{border-radius:12px}
.tr-verdict .vmain{font-family:var(--font-serif);font-weight:650;letter-spacing:.01em;font-variation-settings:"opsz" 48}
.btn{border-radius:10px}
.modal{border-radius:18px 18px 0 0}
@media(min-width:640px){.modal{border-radius:18px}}
.toast{background:var(--dj-green-900);border-color:var(--dj-green-800)}
.chip{border-radius:999px}

/* ---------- halaman saham / rilis (generator) ---------- */
.verdict{border-radius:16px;padding:16px 18px;position:relative;overflow:hidden}
.verdict::after{content:"";position:absolute;right:-28px;top:-28px;width:120px;height:120px;background-image:var(--dj-motif);background-size:56px 56px;opacity:.22;border-radius:50%;pointer-events:none}
.verdict .vmain{font-family:var(--font-serif);font-weight:650;font-size:1.35rem;font-variation-settings:"opsz" 48}
.verdict .vmain .mono{font-family:var(--mono,var(--font-mono));font-size:.9em}
.dot{border-radius:5px}
.dot.on{background:var(--teal)}
.stat{border-radius:12px}
.stat .sv,.sv{font-family:var(--font-serif);font-weight:600;font-variation-settings:"opsz" 96}
.related,.box,details,.release-card{border-radius:14px}
.related h2,.box h2{font-family:var(--font-serif);font-size:15px;font-weight:600}
.related a.tk-link,.tk{border-radius:8px}
.release-card .date{font-family:var(--font-serif);font-weight:600}
.release-card:hover{border-color:var(--dj-gold-500)}
.period-nav a{border-radius:10px}

/* ---------- footer ---------- */
footer{background:transparent}
.foot{border-top-color:var(--border)}
.foot .soc,.soc{border-radius:8px}
