<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, viewport-fit=cover" />
<meta name="theme-color" content="#1B3A5F" />
<title>Persada Sokka Tama · Katalog Harga &amp; Simulasi Project</title>
<link rel="icon" type="image/jpeg" href="assets/logo.jpg" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="assets/styles.css?v=1777005291" />
</head>
<body>

<!-- ═════════ TOPBAR ═════════ -->
<header class="topbar">
  <div class="brand" onclick="switchTab('packages')">
    <img class="brand-logo-img" id="brandLogoImg" alt="Persada Sokka Tama" />
    <div class="brand-logo" id="brandLogoFallback" style="display:none">
      <svg viewBox="0 0 160 180" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
        <defs>
          <linearGradient id="pstLogoG" x1="50%" y1="0%" x2="50%" y2="100%">
            <stop offset="0%" stop-color="#5DB87D"/>
            <stop offset="32%" stop-color="#2E8A6E"/>
            <stop offset="68%" stop-color="#254F74"/>
            <stop offset="100%" stop-color="#1B3A5F"/>
          </linearGradient>
        </defs>
        <g stroke="url(#pstLogoG)" fill="none" stroke-linecap="round" stroke-linejoin="round">
          <path d="M80 18 L58 92 L102 92 Z" stroke-width="2.6"/>
          <line x1="80" y1="18" x2="80" y2="92" stroke-width="2"/>
          <g stroke-width="2.4">
            <path d="M54 96 Q80 88 106 96"/>
            <path d="M48 110 Q80 100 112 110"/>
            <path d="M42 124 Q80 112 118 124"/>
            <path d="M35 138 Q80 122 125 138"/>
            <path d="M28 152 Q80 132 132 152"/>
            <path d="M20 166 Q80 142 140 166"/>
          </g>
        </g>
      </svg>
    </div>
    <div class="brand-text" id="brandTextFallback" style="display:none">
      <div class="brand-name">PERSADA <span class="second">SOKKA</span></div>
      <div class="brand-tag">Expand Your Reach</div>
    </div>
  </div>
  <div class="topbar-actions">
    <button class="btn btn-ghost btn-sm" onclick="openModal('loginModal')" id="loginBtn">
      <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"><path d="M19 11H5a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7a2 2 0 0 0-2-2z"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
      <span class="hide-sm">Login Admin</span>
    </button>
    <div id="adminActions" class="hidden flex gap-1">
      <button class="btn btn-ghost btn-sm" onclick="openModal('changePwModal')" title="Ubah Password">
        🔑<span class="hide-sm">Ubah Password</span>
      </button>
      <button class="btn btn-brand btn-sm" onclick="exportAllExcel()" title="Export paket ke CSV">
        📥 <span class="hide-sm">Export CSV</span>
      </button>
      <button class="btn btn-ghost btn-sm" onclick="logout()" title="Logout">
        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><polyline points="16 17 21 12 16 7"/><line x1="21" y1="12" x2="9" y2="12"/></svg>
      </button>
    </div>
  </div>
</header>

<!-- ═════════ TABS DESKTOP ═════════ -->
<nav class="nav-tabs">
  <button class="nav-tab active" data-tab="packages" onclick="switchTab('packages')">
    <span class="nav-tab-icon">📦</span> Katalog Paket Existing
  </button>
  <button class="nav-tab" data-tab="materials" onclick="switchTab('materials')">
    <span class="nav-tab-icon">🛒</span> Katalog Material
  </button>
  <button class="nav-tab" data-tab="simulator" onclick="switchTab('simulator')">
    <span class="nav-tab-icon">🔧</span> Simulasi Project
    <span class="nav-tab-badge">Smart</span>
  </button>
  <button class="nav-tab hidden" id="navTabAdmin" data-tab="admin" onclick="switchTab('admin')">
    <span class="nav-tab-icon">⚙️</span> Kelola Harga
    <span class="nav-tab-badge" style="background:linear-gradient(135deg,#D4A847 0%,#B08330 100%)">Admin</span>
  </button>
</nav>

<!-- ═════════ MAIN ═════════ -->
<main class="container">

  <!-- PAKET -->
  <section id="tab-packages" class="tab-panel active">
    <div class="hero-panel">
      <div class="hero-content">
        <div class="hero-badge">✨ Katalog Harga 2024</div>
        <h1 class="hero-title">Paket Lengkap Pembangunan Menara &amp; Site Telekomunikasi</h1>
        <p class="hero-desc">Semua paket sudah terjamin komplit — meliputi pekerjaan struktur tower, shelter BTS, sistem kelistrikan, pagar pengaman, hingga sambungan PLN. Harga disesuaikan per wilayah regional.</p>
        <div class="hero-stats">
          <div><div class="hero-stat-num" id="statPaket">0<span class="unit">paket</span></div><div class="hero-stat-label">Paket Tersedia</div></div>
          <div><div class="hero-stat-num">11<span class="unit">regional</span></div><div class="hero-stat-label">Coverage Area</div></div>
          <div><div class="hero-stat-num">9<span class="unit">tipe tower</span></div><div class="hero-stat-label">Pilihan Struktur</div></div>
        </div>
      </div>
    </div>

    <div class="flex between center" style="margin-bottom: 22px; flex-wrap: wrap; gap: 12px;">
      <div>
        <h2 class="page-title" style="font-size: 24px;">Daftar Paket Terstandardisasi</h2>
        <p class="muted" style="font-size: 13.5px; margin-top: 4px;">Klik tombol <strong style="color: var(--teal);">ℹ</strong> di tiap item untuk lihat detail apa saja yang termasuk.</p>
      </div>
      <button class="btn btn-brand btn-sm hidden" id="addPkgBtn" onclick="openPackageModal()">+ Tambah Paket Baru</button>
    </div>

    <div class="tonase-banner" id="tonaseBanner"></div>

    <div class="toolbar">
      <div class="search">
        <svg class="search-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
        <input type="text" id="pkgSearch" placeholder="Cari paket, kategori, atau item..." oninput="renderPackages()">
      </div>
      <select class="select" id="pkgCatFilter" onchange="renderPackages()"><option value="">Semua Kategori</option></select>
    </div>

    <div id="packageList"></div>
  </section>

  <!-- MATERIAL -->
  <section id="tab-materials" class="tab-panel">
    <div class="page-header">
      <div class="page-title-block">
        <div class="eyebrow">Pricing Matrix · BoQ Standar</div>
        <h1 class="page-title">Katalog Material per Tower &amp; Regional</h1>
        <p class="page-subtitle">Pilih ukuran tower &amp; wilayah regional — daftar item standar beserta spesifikasi teknis akan muncul otomatis. Klik <strong style="color: var(--teal);">ℹ</strong> untuk lihat detail "apa saja isinya".</p>
      </div>
    </div>

    <div class="mat-filter">
      <div class="field" style="margin:0">
        <label class="field-label">📐 Ukuran Tower</label>
        <select class="select select-lg" id="matTowerSelect" onchange="renderMaterialTable()"></select>
      </div>
      <div class="field" style="margin:0">
        <label class="field-label">🗺️ Wilayah / Regional</label>
        <select class="select select-lg" id="matRegionSelect" onchange="renderMaterialTable()"></select>
      </div>
    </div>

    <div id="towerSpecContainer"></div>
    <div id="matContainer"></div>
  </section>

  <!-- SIMULATOR -->
  <section id="tab-simulator" class="tab-panel">
    <div class="page-header">
      <div class="page-title-block">
        <div class="eyebrow">Project Builder</div>
        <h1 class="page-title">Simulasi Pengadaan Project</h1>
        <p class="page-subtitle">Mulai dari template rekomendasi yang sudah terkurasi, atau custom sendiri dari nol. Kami bantu hitung total biaya lengkap dengan diskon &amp; PPN secara otomatis.</p>
      </div>
      <div class="flex gap-1">
        <button class="btn btn-ghost btn-sm" onclick="newSimulation()">📄 <span class="hide-sm">Project Baru</span></button>
      </div>
    </div>

    <div class="template-section">
      <div class="template-section-head">
        <div class="template-section-title"><span class="template-section-icon">🎯</span> Paket Rekomendasi — Mulai Cepat</div>
      </div>
      <p class="template-section-desc">Pilih salah satu template di bawah untuk langsung memuat semua item yang biasanya dibutuhkan. Setelah itu, tetap bisa disesuaikan sesuai kebutuhan pelanggan.</p>
      <div class="template-grid" id="templateGrid"></div>
    </div>

    <div class="sim-layout">
      <div class="sim-main">
        <div class="sim-card">
          <div class="sim-card-title"><span class="sim-card-title-text"><span class="sim-card-title-icon">📝</span> Identitas Project</span></div>
          <div class="sim-meta">
            <div class="field" style="margin:0"><label class="field-label">Nama Project</label><input type="text" class="input" id="simName" placeholder="contoh: Site Cluster Kalimantan Barat — SST 52 m"></div>
            <div class="field" style="margin:0"><label class="field-label">Tower</label><select class="select" id="simTower" onchange="onSimTowerChange()"></select></div>
            <div class="field" style="margin:0"><label class="field-label">Regional</label><select class="select" id="simRegion" onchange="onSimRegionChange()"></select></div>
          </div>
          <div id="simTowerSpec"></div>
        </div>

        <div class="sim-card" style="padding:0; overflow:hidden">
          <div class="sim-card-title" style="padding: 20px 22px 0; margin-bottom: 12px">
            <span class="sim-card-title-text"><span class="sim-card-title-icon">📋</span> Daftar Item Project</span>
            <button class="btn btn-soft btn-sm" onclick="autoFillFromCatalog()">⚡ <span class="hide-sm">Auto-fill Katalog</span></button>
          </div>
          <div class="sim-items">
            <div class="sim-items-head-new">
              <div>#</div><div>Kategori</div><div>Item / Deskripsi</div>
              <div style="text-align:center">Sat</div><div style="text-align:center">Qty</div>
              <div style="text-align:right">Harga Satuan</div><div style="text-align:right">Subtotal</div><div></div>
            </div>
            <div id="simItemsBody"></div>
            <div class="sim-additem">
              <button class="btn btn-brand btn-sm" onclick="addCatalogItemRow()">+ Tambah Item dari Katalog</button>
              <button class="btn btn-ghost btn-sm" onclick="addCustomItem()">+ Item Custom</button>
              <button class="btn btn-soft btn-sm" onclick="autoFillFromCatalog()">⚡ Auto-fill Semua Kategori</button>
            </div>
            <div class="sim-hint">💡 Pilih <strong>kategori</strong> dulu — lalu <strong>varian spesifik</strong>. Harga otomatis berdasarkan wilayah regional.</div>
          </div>
        </div>

        <div class="sim-card">
          <div class="sim-card-title"><span class="sim-card-title-text"><span class="sim-card-title-icon">📌</span> Catatan Project</span></div>
          <textarea class="textarea" id="simNotes" rows="3" placeholder="Catatan untuk pelanggan, asumsi, kondisi khusus, timeline, dll..."></textarea>
        </div>
      </div>

      <aside class="sim-side">
        <div class="sim-summary">
          <div class="sim-sum-row"><span class="lbl" id="sumCountLbl">Sub-total (0 item)</span><span class="val" id="sumSubtotal">Rp 0</span></div>
          <div class="sim-sum-row interactive"><span class="lbl">Diskon</span>
            <div class="flex gap-1 center"><input type="number" class="pct" id="sumDiscount" min="0" max="100" step="0.1" value="0" onchange="updateSummary()"><span class="muted">%</span></div>
          </div>
          <div class="sim-sum-row" id="sumDiscountLine"><span class="lbl">— Potongan</span><span class="val discount" id="sumDiscountAmt">Rp 0</span></div>
          <div class="sim-sum-row interactive"><span class="lbl">PPN</span>
            <div class="flex gap-1 center"><input type="number" class="pct" id="sumPpn" min="0" max="100" step="0.1" value="11" onchange="updateSummary()"><span class="muted">%</span></div>
          </div>
          <div class="sim-sum-row" id="sumPpnLine"><span class="lbl">+ Pajak</span><span class="val tax" id="sumPpnAmt">Rp 0</span></div>
          <div class="sim-sum-grand"><span class="lbl">Grand Total</span><span class="val" id="sumGrand">Rp 0</span></div>
          <div class="sim-sum-meta"><span id="sumMetaTower">—</span><span id="sumMetaRegion">—</span></div>
        </div>

        <div class="sim-card" style="display:flex; flex-direction:column; gap:8px; padding:14px">
          <button class="btn btn-primary btn-block btn-lg" onclick="saveSimulation()">💾 Simpan Project</button>
          <div class="flex gap-1">
            <button class="btn btn-ghost btn-block btn-sm" onclick="printSimulation()">🖨️ Print / PDF</button>
          </div>
        </div>

        <div class="sim-card">
          <div class="sim-card-title"><span class="sim-card-title-text"><span class="sim-card-title-icon">📂</span> Project Tersimpan</span></div>
          <div id="savedSimsList"></div>
        </div>
      </aside>
    </div>
  </section>

  <!-- ADMIN -->
  <section id="tab-admin" class="tab-panel">
    <div class="page-header">
      <div class="page-title-block">
        <div class="eyebrow">⚙️ Admin Panel</div>
        <h1 class="page-title">Kelola Harga &amp; Katalog Item</h1>
        <p class="page-subtitle">Edit harga per item per wilayah regional, tambah item baru, atau hapus yang tidak relevan. Semua perubahan langsung tersimpan.</p>
      </div>
    </div>

    <div class="admin-filter">
      <div class="field" style="margin:0; flex:1;">
        <label class="field-label">🗺️ Filter Wilayah</label>
        <select class="select select-lg" id="adminRegionFilter" onchange="renderAdminPanel()"></select>
      </div>
      <div class="field" style="margin:0; flex:1;">
        <label class="field-label">📂 Filter Kategori</label>
        <select class="select select-lg" id="adminCatFilter" onchange="renderAdminPanel()"><option value="">Semua Kategori</option></select>
      </div>
    </div>

    <div id="adminPanel"></div>
  </section>
</main>

<!-- ═════════ BOTTOM NAV MOBILE ═════════ -->
<nav class="bottom-nav">
  <button class="bottom-nav-tab active" data-tab="packages" onclick="switchTab('packages')"><span class="bottom-nav-tab-icon">📦</span><span>Paket</span></button>
  <button class="bottom-nav-tab" data-tab="materials" onclick="switchTab('materials')"><span class="bottom-nav-tab-icon">🛒</span><span>Material</span></button>
  <button class="bottom-nav-tab" data-tab="simulator" onclick="switchTab('simulator')"><span class="bottom-nav-tab-icon">🔧</span><span>Simulasi</span></button>
  <button class="bottom-nav-tab hidden" id="bottomNavAdmin" data-tab="admin" onclick="switchTab('admin')"><span class="bottom-nav-tab-icon">⚙️</span><span>Admin</span></button>
</nav>

<!-- ═════════ MODALS ═════════ -->
<div class="modal-overlay" id="detailModal">
  <div class="modal">
    <div class="modal-body" id="detailModalBody"></div>
    <div class="modal-foot"><button class="btn btn-primary" onclick="closeModal('detailModal')">Mengerti</button></div>
  </div>
</div>

<div class="modal-overlay" id="loginModal">
  <div class="modal">
    <div class="modal-head"><div class="modal-title" id="loginModalTitle">Admin Login</div>
      <button class="modal-close" onclick="closeModal('loginModal')">×</button></div>
    <div class="modal-body">
      <div id="loginAlert"></div>
      <p class="muted" id="loginModalDesc" style="margin-bottom:14px; font-size:13.5px">Masukkan password admin untuk mengelola katalog.</p>
      <div class="field"><label class="field-label">Password</label><input type="password" class="input input-lg" id="loginPw" onkeydown="if(event.key==='Enter') doLogin()"></div>
    </div>
    <div class="modal-foot">
      <button class="btn btn-ghost" onclick="closeModal('loginModal')">Batal</button>
      <button class="btn btn-primary" onclick="doLogin()" id="loginSubmitBtn">Login</button>
    </div>
  </div>
</div>

<div class="modal-overlay" id="changePwModal">
  <div class="modal">
    <div class="modal-head"><div class="modal-title">Ubah Password</div><button class="modal-close" onclick="closeModal('changePwModal')">×</button></div>
    <div class="modal-body">
      <div id="changePwAlert"></div>
      <div class="field"><label class="field-label">Password Lama</label><input type="password" class="input" id="oldPw"></div>
      <div class="field"><label class="field-label">Password Baru (min 4 karakter)</label><input type="password" class="input" id="newPw"></div>
    </div>
    <div class="modal-foot">
      <button class="btn btn-ghost" onclick="closeModal('changePwModal')">Batal</button>
      <button class="btn btn-primary" onclick="doChangePw()">Update</button>
    </div>
  </div>
</div>

<div class="modal-overlay" id="pkgModal">
  <div class="modal lg">
    <div class="modal-head"><div class="modal-title" id="pkgModalTitle">Tambah Paket</div><button class="modal-close" onclick="closeModal('pkgModal')">×</button></div>
    <div class="modal-body">
      <div id="pkgModalAlert"></div>
      <div class="form-row">
        <div class="field"><label class="field-label">Kategori</label><input type="text" class="input" id="pkgCategory" placeholder="contoh: Paket Collocation" list="catList"><datalist id="catList"></datalist></div>
        <div class="field"><label class="field-label">Nama Paket</label><input type="text" class="input" id="pkgName" placeholder="contoh: Jabodetabek 51m"></div>
      </div>
      <div class="field"><label class="field-label">Item dalam Paket</label>
        <div id="pkgItemsEditor"></div>
        <button class="btn btn-soft btn-sm" onclick="addPkgItem()" style="margin-top:8px">+ Tambah Item</button>
      </div>
    </div>
    <div class="modal-foot">
      <button class="btn btn-ghost" onclick="closeModal('pkgModal')">Batal</button>
      <button class="btn btn-primary" onclick="savePackage()">Simpan</button>
    </div>
  </div>
</div>

<div class="toast" id="toast"></div>

<!-- Embedded catalog from PHP backend -->
<script id="EMBEDDED_CATALOG" type="application/json">{"regions":["SUMBAGUT","SUMBAGTENG","SUMBAGSEL","JABODETABEK","JABAR","JATENG","JATIM","BALNUS","KALIMANTAN","SULAWESI","PUMA"],"towers":["SST 42","SST 52","SST 62","SST 72","Pole 12","Pole 20"],"categories":[{"id":"tower","icon":"🗼","name":"Struktur Tower","fullName":"Pengadaan, Erection & Finishing Struktur Tower","description":"Pekerjaan inti pembangunan struktur menara baja: perakitan, erection ke ketinggian, hot-dip galvanized, dan pengecatan obstruction light warna keselamatan penerbangan.","includes":["Perakitan section-by-section struktur baja di lapangan","Pengangkatan dengan crane hingga ketinggian penuh","Pemasangan baut grade tinggi (bolt anchor)","Hot-Dip Galvanized coating seluruh material","Pengecatan obstruction merah-putih di puncak tower","Commissioning, plumbness check, dan Quality Control"],"items":[{"id":"tower-sst42","name":"SST 42 m (Light)","sat":"LS","vol":1,"desc":"Struktur tower SST 42 m, versi standar","prices":{"SUMBAGUT":29935636,"SUMBAGTENG":28978789,"SUMBAGSEL":26381633,"JABODETABEK":18958238,"JABAR":19136936,"JATENG":23442747,"JATIM":20162129,"BALNUS":25561479,"KALIMANTAN":35334985,"SULAWESI":33626330,"PUMA":43194798}},{"id":"tower-sst52","name":"SST 52 m (Light)","sat":"LS","vol":1,"desc":"Struktur tower SST 52 m, versi standar","prices":{"SUMBAGUT":36221381,"SUMBAGTENG":36221381,"SUMBAGSEL":31260830,"JABODETABEK":20222119,"JABAR":20778157,"JATENG":26674660,"JATIM":21807705,"BALNUS":28452971,"KALIMANTAN":41369123,"SULAWESI":40152384,"PUMA":57186728}},{"id":"tower-sst62","name":"SST 62 m (Light)","sat":"LS","vol":1,"desc":"Struktur tower SST 62 m, versi standar","prices":{"SUMBAGUT":48656209,"SUMBAGTENG":43571520,"SUMBAGSEL":42264374,"JABODETABEK":26910394,"JABAR":25613335,"JATENG":35481203,"JATIM":29089369,"BALNUS":39003234,"KALIMANTAN":56613390,"SULAWESI":55178489,"PUMA":79702262}},{"id":"tower-sst72","name":"SST 72 m (Light)","sat":"LS","vol":1,"desc":"Struktur tower SST 72 m, versi standar","prices":{"SUMBAGUT":58669577,"SUMBAGTENG":59325103,"SUMBAGSEL":50639384,"JABODETABEK":31029934,"JABAR":32120774,"JATENG":42609190,"JATIM":33595708,"BALNUS":46542346,"KALIMANTAN":69485756,"SULAWESI":67355296,"PUMA":99476070}},{"id":"tower-pole12","name":"Pole 12 m (Rural/Terpencil)","sat":"LS","vol":2511,"desc":"Struktur pole Pole 12 m untuk area terpencil","prices":{"KALIMANTAN":5170,"SULAWESI":4920,"PUMA":6320}},{"id":"tower-pole20","name":"Pole 20 m (Rural/Terpencil)","sat":"LS","vol":8408.03,"desc":"Struktur pole Pole 20 m untuk area terpencil","prices":{"KALIMANTAN":5170,"SULAWESI":4920,"PUMA":6320}}]},{"id":"transport","icon":"🚚","name":"Transportasi Material","fullName":"Transportasi & Mobilisasi Material Konstruksi","description":"Pengiriman material struktur tower, besi, semen, alat dari gudang regional Persada Sokka Tama ke lokasi site. Biaya bervariasi per regional — Papua-Maluku paling tinggi.","includes":["Armada truck flatbed atau fuso sesuai tonase material","Loading & unloading di gudang dan di lokasi site","Asuransi pengiriman selama perjalanan","Koordinasi route planning & timing delivery","Biaya akses jalan khusus untuk site sulit dijangkau"],"items":[{"id":"transport-sst42","name":"Transport Material SST 42 m","sat":"LS","vol":1,"desc":"Pengiriman material untuk SST 42 m","prices":{"SUMBAGUT":35889957,"SUMBAGTENG":35160566,"SUMBAGSEL":29843778,"JABODETABEK":13771418,"JABAR":15228148,"JATENG":19531157,"JATIM":20101984,"BALNUS":32843593,"KALIMANTAN":41063217,"SULAWESI":40755646,"PUMA":67076539}},{"id":"transport-sst52","name":"Transport Material SST 52 m","sat":"LS","vol":1,"desc":"Pengiriman material untuk SST 52 m","prices":{"SUMBAGUT":49148764,"SUMBAGTENG":48149915,"SUMBAGSEL":40868949,"JABODETABEK":18858985,"JABAR":20853875,"JATENG":26746542,"JATIM":27528250,"BALNUS":44976984,"KALIMANTAN":56233180,"SULAWESI":55811982,"PUMA":91856589}},{"id":"transport-sst62","name":"Transport Material SST 62 m","sat":"LS","vol":1,"desc":"Pengiriman material untuk SST 62 m","prices":{"SUMBAGUT":68499593,"SUMBAGTENG":67107478,"SUMBAGSEL":56959854,"JABODETABEK":27097048,"JABAR":29064454,"JATENG":37277178,"JATIM":39553258,"BALNUS":62685303,"KALIMANTAN":78373283,"SULAWESI":77786251,"PUMA":128022325}},{"id":"transport-sst72","name":"Transport Material SST 72 m","sat":"LS","vol":1,"desc":"Pengiriman material untuk SST 72 m","prices":{"SUMBAGUT":86057453,"SUMBAGTENG":84308510,"SUMBAGSEL":71559840,"JABODETABEK":33021303,"JABAR":36514273,"JATENG":46832088,"JATIM":48200827,"BALNUS":78752840,"KALIMANTAN":98461973,"SULAWESI":97724472,"PUMA":160837090}},{"id":"transport-pole12","name":"Transport Material Pole 12 m","sat":"LS","vol":2511,"desc":"Pengiriman material untuk Pole 12 m","prices":{"KALIMANTAN":5828,"SULAWESI":5784,"PUMA":9520}},{"id":"transport-pole20","name":"Transport Material Pole 20 m","sat":"LS","vol":8408.03,"desc":"Pengiriman material untuk Pole 20 m","prices":{"KALIMANTAN":5828,"SULAWESI":5784,"PUMA":9520}}]},{"id":"pondasi","icon":"🧱","name":"Pondasi Tower","fullName":"Pondasi Tower Green Field (Cor Beton Bertulang)","description":"Pondasi cor beton bertulang untuk menopang tower baru di lahan kosong. Volume beton disesuaikan ketinggian tower — semakin tinggi tower, semakin besar pondasinya.","includes":["Galian tanah sesuai desain teknis struktur","Pembesian (rebar) dengan mutu besi SNI","Cor beton mutu K-225 sampai K-300","Pemasangan sepatu tower / bolt anchor","Stamping & curing beton minimum 14 hari","Backfill & compaction tanah sekitar pondasi"],"items":[{"id":"pondasi-sst42","name":"Pondasi untuk SST 42 m (22 M³)","sat":"M³","vol":22,"desc":"Cor beton pondasi tower SST 42 m — volume 22 M³","prices":{"SUMBAGUT":136682,"SUMBAGTENG":136682,"SUMBAGSEL":127864,"JABODETABEK":132273,"JABAR":123455,"JATENG":119045,"JATIM":119045,"BALNUS":123455,"KALIMANTAN":149909,"SULAWESI":132273,"PUMA":198409}},{"id":"pondasi-sst52","name":"Pondasi untuk SST 52 m (25 M³)","sat":"M³","vol":25,"desc":"Cor beton pondasi tower SST 52 m — volume 25 M³","prices":{"SUMBAGUT":120280,"SUMBAGTENG":120280,"SUMBAGSEL":112520,"JABODETABEK":116400,"JABAR":108640,"JATENG":104760,"JATIM":104760,"BALNUS":108640,"KALIMANTAN":131920,"SULAWESI":116400,"PUMA":174600}},{"id":"pondasi-sst62","name":"Pondasi untuk SST 62 m (34 M³)","sat":"M³","vol":34,"desc":"Cor beton pondasi tower SST 62 m — volume 34 M³","prices":{"SUMBAGUT":88441,"SUMBAGTENG":88441,"SUMBAGSEL":82735,"JABODETABEK":85588,"JABAR":82353,"JATENG":77029,"JATIM":77029,"BALNUS":79882,"KALIMANTAN":97000,"SULAWESI":85588,"PUMA":128382}},{"id":"pondasi-sst72","name":"Pondasi untuk SST 72 m (45 M³)","sat":"M³","vol":45,"desc":"Cor beton pondasi tower SST 72 m — volume 45 M³","prices":{"SUMBAGUT":66822,"SUMBAGTENG":66822,"SUMBAGSEL":62511,"JABODETABEK":64667,"JABAR":60356,"JATENG":58200,"JATIM":58200,"BALNUS":60356,"KALIMANTAN":73289,"SULAWESI":64667,"PUMA":97000}},{"id":"pondasi-pole20","name":"Pondasi untuk Pole 20 m (4 M³)","sat":"M³","vol":4,"desc":"Cor beton pondasi pole Pole 20 m","prices":{"KALIMANTAN":824500,"SULAWESI":727500,"PUMA":1091250}}]},{"id":"bts-outdoor","icon":"📡","name":"Shelter BTS Outdoor","fullName":"Shelter BTS Outdoor (Kabinet Perangkat Telekomunikasi)","description":"Kabinet outdoor tempat perangkat Base Transceiver Station (BTS) pelanggan ditempatkan. Pilih tipe sesuai kondisi lahan — rawan banjir atau bebas banjir.","includes":["Outdoor cabinet shelter IP65+ tahan cuaca ekstrem","Platform dudukan beton atau besi","Sistem pendingin (AC atau ventilation fan)","Lampu LED interior untuk maintenance","Pintu akses dengan kunci keamanan","Sealant & weatherproofing penuh"],"items":[{"id":"bts-tipe2","name":"BTS Outdoor Tipe 2 (Daerah Bebas Banjir)","sat":"LS","vol":1,"desc":"Shelter outdoor dengan platform standar untuk lahan normal bebas banjir","prices":{"SUMBAGUT":7621309,"SUMBAGTENG":7521058,"SUMBAGSEL":7050146,"JABODETABEK":7303113,"JABAR":6755633,"JATENG":6546616,"JATIM":6600243,"BALNUS":6796662,"KALIMANTAN":8260748,"SULAWESI":7338899,"PUMA":10658054}},{"id":"bts-tipe1","name":"BTS Outdoor Tipe 1 (Daerah Rawan Banjir — Elevated)","sat":"LS","vol":1,"desc":"Shelter elevated 80 cm+ untuk lahan rawan banjir — platform tinggi","prices":{"KALIMANTAN":8260748,"SULAWESI":7338899,"PUMA":10658054,"SUMBAGUT":9526636,"SUMBAGTENG":9401322,"SUMBAGSEL":8812682,"JABODETABEK":9128891,"JABAR":8444541,"JATENG":8183270,"JATIM":8250304,"BALNUS":8495828}}]},{"id":"me","icon":"⚡","name":"Sistem Mechanical & Electrical","fullName":"Sistem Mechanical & Electrical (M&E) Lengkap","description":"Seluruh instalasi kelistrikan site — dari titik masuk PLN sampai ke perangkat BTS. Termasuk proteksi petir, grounding, dan penerangan. Harga belum termasuk Panel ACPDB & KWH.","includes":["Panel MDP (Main Distribution Panel) utama dengan MCB & MCCB","Panel SDP (Sub Distribution Panel) distribusi ke tiap tenant","Kabel power NYY / NYFGbY sesuai kapasitas tower","Sistem grounding dengan resistansi di bawah 5 Ohm","Lampu Avoidance / Obstruction Light di puncak tower (regulasi penerbangan)","PJU (Penerangan Jalan Umum) area site","Socket AC outlet untuk maintenance peralatan","Lightning Arrester (penangkal petir) di puncak","Cable tray horizontal & vertical untuk routing kabel"],"items":[{"id":"me-sst42","name":"M&E Lengkap untuk SST 42 m","sat":"LS","vol":1,"desc":"Sistem M&E SST 42 m (exclude Panel ACPDB & KWH)","prices":{"SUMBAGUT":38356710,"SUMBAGTENG":37838827,"SUMBAGSEL":34072317,"JABODETABEK":34072317,"JABAR":36325821,"JATENG":38264075,"JATIM":37157790,"BALNUS":38199085,"KALIMANTAN":40671712,"SULAWESI":45168826,"PUMA":48847939}},{"id":"me-sst52","name":"M&E Lengkap untuk SST 52 m","sat":"LS","vol":1,"desc":"Sistem M&E SST 52 m (exclude Panel ACPDB & KWH)","prices":{"SUMBAGUT":39029987,"SUMBAGTENG":38504829,"SUMBAGSEL":36585587,"JABODETABEK":34668285,"JABAR":36962529,"JATENG":38935703,"JATIM":37818069,"BALNUS":38928040,"KALIMANTAN":41386796,"SULAWESI":45910197,"PUMA":49710560}},{"id":"me-sst62","name":"M&E Lengkap untuk SST 62 m","sat":"LS","vol":1,"desc":"Sistem M&E SST 62 m (exclude Panel ACPDB & KWH)","prices":{"SUMBAGUT":41026538,"SUMBAGTENG":41026538,"SUMBAGSEL":38490667,"JABODETABEK":36435528,"JABAR":38850343,"JATENG":40927307,"JATIM":39769612,"BALNUS":41089491,"KALIMANTAN":43507313,"SULAWESI":48108702,"PUMA":52268741}},{"id":"me-sst72","name":"M&E Lengkap untuk SST 72 m","sat":"LS","vol":1,"desc":"Sistem M&E SST 72 m (exclude Panel ACPDB & KWH)","prices":{"SUMBAGUT":41699815,"SUMBAGTENG":41118591,"SUMBAGSEL":39127763,"JABODETABEK":37031399,"JABAR":39486954,"JATENG":41598935,"JATIM":40429891,"BALNUS":41818349,"KALIMANTAN":44222397,"SULAWESI":48850170,"PUMA":53131362}},{"id":"me-pole12","name":"M&E untuk Pole 12 m","sat":"LS","vol":1,"desc":"Sistem M&E untuk Pole 12 m","prices":{"KALIMANTAN":15000000,"SULAWESI":39224226,"PUMA":15000000}},{"id":"me-pole20","name":"M&E untuk Pole 20 m","sat":"LS","vol":1,"desc":"Sistem M&E untuk Pole 20 m","prices":{"KALIMANTAN":34390789,"SULAWESI":39224226,"PUMA":39015258}}]},{"id":"pagar","icon":"🚧","name":"Pagar & Halaman","fullName":"Pagar Pengaman & Halaman Site (Fence & Yard)","description":"Pagar pengaman keliling area site + halaman paving beton untuk akses & maintenance. Melindungi site dari masuk orang/hewan tidak berkepentingan.","includes":["Pagar BRC atau Chainlink tinggi 2,0 sampai 2,4 meter keliling site","Tiang pagar besi galvanis setiap 2,5 sampai 3 meter","Gate pintu masuk dengan kunci gembok","Halaman paving block atau cor beton di dalam area site","Jalan akses dari jalan utama ke pintu site","Papan nama site (plate identification)"],"items":[{"id":"fence-std","name":"Fence & Yard Standar (11×11 m)","sat":"LS","vol":1,"desc":"Pagar BRC + halaman paving untuk site standar 11×11 meter","prices":{"SUMBAGUT":28699980,"SUMBAGTENG":34820179,"SUMBAGSEL":26852510,"JABODETABEK":26852510,"JABAR":25613335,"JATENG":24812406,"JATIM":25298667,"BALNUS":25805395,"KALIMANTAN":31288698,"SULAWESI":28043767,"PUMA":40254612}},{"id":"fence-large","name":"Fence & Yard Besar (13×13 m)","sat":"LS","vol":1,"desc":"Pagar BRC + halaman paving untuk site besar 13×13 meter (SST 82/92m)","prices":{"SUMBAGUT":35874975,"SUMBAGTENG":43525224,"SUMBAGSEL":33565638,"JABODETABEK":33565638,"JABAR":32016669,"JATENG":31015508,"JATIM":31623334,"BALNUS":32256744,"KALIMANTAN":39110872,"SULAWESI":35054709,"PUMA":50318265}},{"id":"fence-small","name":"Fence & Yard Mini (7×7 m) — Pole","sat":"LS","vol":1,"desc":"Pagar BRC + halaman paving untuk pole/mini tower","prices":{"SUMBAGUT":17219988,"SUMBAGTENG":20892107,"SUMBAGSEL":16111506,"JABODETABEK":16111506,"JABAR":15368001,"JATENG":14887444,"JATIM":15179200,"BALNUS":15483237,"KALIMANTAN":18773219,"SULAWESI":16826260,"PUMA":24152767}}]},{"id":"mounting","icon":"🔧","name":"Mounting Antena","fullName":"Bracket Mounting Antena Sektor","description":"Kit bracket untuk memasang antena sektor operator telekomunikasi di struktur tower. Unit standar adalah per-pcs per-tenant.","includes":["Bracket besi galvanis untuk mounting antena","U-bolt clamp untuk cantelan pipa struktur","Spacer antena (jarak dari body tower)","Grounding bracket untuk antena","Baut-mur set lengkap grade 8.8"],"items":[{"id":"single-mount-1","name":"Single Mounting (1 pcs)","sat":"pcs","vol":1,"desc":"Untuk pemasangan antena minimal","prices":{"SUMBAGUT":2425000,"SUMBAGTENG":2425000,"SUMBAGSEL":2425000,"JABODETABEK":2425000,"JABAR":2425000,"JATENG":2425000,"JATIM":2425000,"BALNUS":2425000,"KALIMANTAN":2425000,"SULAWESI":2425000,"PUMA":2425000}},{"id":"single-mount-3","name":"Single Mounting (3 pcs)","sat":"pcs","vol":3,"desc":"Untuk 1 sektor antena standar","prices":{"SUMBAGUT":7500000,"SUMBAGTENG":7500000,"SUMBAGSEL":7500000,"JABODETABEK":7500000,"JABAR":7500000,"JATENG":7500000,"JATIM":7500000,"BALNUS":7500000,"KALIMANTAN":7500000,"SULAWESI":7500000,"PUMA":7500000}},{"id":"single-mount-4","name":"Single Mounting (4 pcs)","sat":"pcs","vol":4,"desc":"Untuk 1 tenant full sektor","prices":{"SUMBAGUT":10000000,"SUMBAGTENG":10000000,"SUMBAGSEL":10000000,"JABODETABEK":8800000,"JABAR":8800000,"JATENG":10000000,"JATIM":10000000,"BALNUS":10000000,"KALIMANTAN":10000000,"SULAWESI":10000000,"PUMA":10000000}},{"id":"special-mount-4","name":"Special Mounting (4 pcs)","sat":"pcs","vol":4,"desc":"Mounting heavy-duty untuk tenant besar","prices":{"SUMBAGUT":12000000,"SUMBAGTENG":12000000,"SUMBAGSEL":12000000,"JABODETABEK":12000000,"JABAR":12000000,"JATENG":12000000,"JATIM":12000000,"BALNUS":12000000,"KALIMANTAN":12000000,"SULAWESI":12000000,"PUMA":12000000}},{"id":"ring-mount-2","name":"Ring Mounting (2 pcs)","sat":"pcs","vol":2,"desc":"Ring mounting untuk pole telekomunikasi","prices":{"SUMBAGUT":16000000,"SUMBAGTENG":16000000,"SUMBAGSEL":16000000,"JABODETABEK":16000000,"JABAR":16000000,"JATENG":16000000,"JATIM":16000000,"BALNUS":16000000,"KALIMANTAN":16000000,"SULAWESI":16000000,"PUMA":16000000}}]},{"id":"panel","icon":"🎛️","name":"Panel Distribusi Tenant","fullName":"Panel Distribusi Listrik Tenant (ACPDB & KWH)","description":"Set panel distribusi listrik khusus per tenant/operator. Metering terpisah agar konsumsi listrik bisa dibagi per operator untuk billing. Tersedia generic atau custom per operator.","includes":["Panel MCB dedicated per tenant (proteksi over-current)","Meter KWh terpisah per tenant untuk billing","Kabel distribusi dari panel utama ke perangkat","Surge protector per jalur tenant","Labeling & dokumentasi wiring"],"items":[{"id":"panel-std","name":"Panel ACPDB & KWH Standar (2 set)","sat":"set","vol":2,"desc":"Generic panel untuk 2 tenant","prices":{"SUMBAGUT":11000000,"SUMBAGTENG":11000000,"SUMBAGSEL":11000000,"JABODETABEK":11000000,"JABAR":11000000,"JATENG":11000000,"JATIM":11000000,"BALNUS":11000000,"KALIMANTAN":11000000,"SULAWESI":11000000,"PUMA":11000000}},{"id":"panel-ioh","name":"Panel IOH (Indosat Ooredoo Hutchison)","sat":"set","vol":1,"desc":"Panel spesifikasi IOH","prices":{"SUMBAGUT":11500000,"SUMBAGTENG":11500000,"SUMBAGSEL":11500000,"JABODETABEK":11500000,"JABAR":11500000,"JATENG":11500000,"JATIM":11500000,"BALNUS":11500000,"KALIMANTAN":11500000,"SULAWESI":11500000,"PUMA":11500000}},{"id":"panel-tsel","name":"Panel Telkomsel (TSEL)","sat":"set","vol":1,"desc":"Panel spesifikasi Telkomsel","prices":{"SUMBAGUT":11000000,"SUMBAGTENG":11000000,"SUMBAGSEL":11000000,"JABODETABEK":11000000,"JABAR":11000000,"JATENG":11000000,"JATIM":11000000,"BALNUS":11000000,"KALIMANTAN":11000000,"SULAWESI":11000000,"PUMA":11000000}},{"id":"panel-xl","name":"Panel XL Axiata","sat":"set","vol":1,"desc":"Panel spesifikasi XL","prices":{"SUMBAGUT":13000000,"SUMBAGTENG":13000000,"SUMBAGSEL":13000000,"JABODETABEK":13000000,"JABAR":13000000,"JATENG":13000000,"JATIM":13000000,"BALNUS":13000000,"KALIMANTAN":13000000,"SULAWESI":13000000,"PUMA":13000000}},{"id":"panel-smart","name":"Panel Smart (Smartfren)","sat":"set","vol":1,"desc":"Panel spesifikasi Smartfren","prices":{"SUMBAGUT":12500000,"SUMBAGTENG":12500000,"SUMBAGSEL":12500000,"JABODETABEK":12500000,"JABAR":12500000,"JATENG":12500000,"JATIM":12500000,"BALNUS":12500000,"KALIMANTAN":12500000,"SULAWESI":12500000,"PUMA":12500000}}]},{"id":"cable-tray","icon":"🔗","name":"Cable Tray","fullName":"Cable Tray (Jalur Kabel Horizontal & Vertical)","description":"Jalur kabel tray untuk routing kabel power & signal dari perangkat BTS ke antena di puncak tower. Jumlah pcs Vertical Tray tergantung ketinggian tower.","includes":["Cable tray baja galvanis tahan cuaca","Support bracket per section","Cover tray anti-air untuk outdoor","Fitting elbow & tee untuk belokan"],"items":[{"id":"tray-h-3","name":"Horizontal Tray (3 pcs)","sat":"pcs","vol":3,"desc":"Routing horizontal di shelter","prices":{"SUMBAGUT":874527,"SUMBAGTENG":874527,"SUMBAGSEL":874527,"JABODETABEK":979362,"JABAR":874527,"JATENG":869580,"JATIM":900354,"BALNUS":909594,"KALIMANTAN":1021191,"SULAWESI":900354,"PUMA":1100000}},{"id":"tray-v-12","name":"Vertical Tray 12 pcs (Tower pendek)","sat":"pcs","vol":12,"desc":"Untuk tower 32-42 m","prices":{"SUMBAGUT":2345460,"SUMBAGTENG":2345460,"SUMBAGSEL":2345460,"JABODETABEK":2345460,"JABAR":2345460,"JATENG":2345460,"JATIM":2345460,"BALNUS":2345460,"KALIMANTAN":2345460,"SULAWESI":2345460,"PUMA":2345460}},{"id":"tray-v-14","name":"Vertical Tray 14 pcs (Tower 42m)","sat":"pcs","vol":14,"desc":"Untuk tower 42-52 m","prices":{"SUMBAGUT":2369710,"SUMBAGTENG":2369710,"SUMBAGSEL":2369710,"JABODETABEK":2369710,"JABAR":2369710,"JATENG":2369710,"JATIM":2369710,"BALNUS":2369710,"KALIMANTAN":2369710,"SULAWESI":2369710,"PUMA":2369710}},{"id":"tray-v-17","name":"Vertical Tray 17 pcs (Tower 52m)","sat":"pcs","vol":17,"desc":"Untuk tower 52 m","prices":{"JABODETABEK":3322735,"BALNUS":3073736,"JATIM":3086928,"JATENG":2918730}},{"id":"tray-v-21","name":"Vertical Tray 21 pcs (Tower 62m)","sat":"pcs","vol":21,"desc":"Untuk tower 62 m","prices":{"SUMBAGUT":4226775,"SUMBAGTENG":4226775,"SUMBAGSEL":4226775,"JABODETABEK":4226775,"JABAR":4226775,"JATENG":4226775,"JATIM":4226775,"BALNUS":4226775,"KALIMANTAN":4226775,"SULAWESI":4226775,"PUMA":4226775}},{"id":"tray-v-22","name":"Vertical Tray 22 pcs (Tower 72m)","sat":"pcs","vol":22,"desc":"Untuk tower 72 m","prices":{"SUMBAGUT":3977776,"SUMBAGTENG":3977776,"SUMBAGSEL":3977776,"JABODETABEK":3977776,"JABAR":3977776,"JATENG":3977776,"JATIM":3977776,"BALNUS":3977776,"KALIMANTAN":3977776,"SULAWESI":3977776,"PUMA":3977776}},{"id":"tray-v-24","name":"Vertical Tray 24 pcs (Tower 72-82m)","sat":"pcs","vol":24,"desc":"Untuk tower 72 m ke atas","prices":{"JATENG":4120560,"JATIM":4358016,"SULAWESI":4358016,"BALNUS":4339392,"KALIMANTAN":4558224,"JABODETABEK":4200000,"JABAR":4200000,"SUMBAGUT":4200000,"SUMBAGTENG":4200000,"SUMBAGSEL":4200000,"PUMA":5026152}}]},{"id":"pln","icon":"🔌","name":"Sambungan Daya PLN","fullName":"Sambungan Daya Listrik PLN (Biaya Bantuan Pembangunan)","description":"Biaya Bantuan Pembangunan (BP) ke PLN untuk pemasangan meteran, tiang, kabel, dan koneksi listrik ke site. Pilih kapasitas kVA sesuai kebutuhan tower dan jumlah tenant.","includes":["Biaya Bantuan Pembangunan (BP) ke PLN sesuai kapasitas","Pemasangan tiang listrik dari gardu terdekat ke site","Penarikan kabel SUTM atau SUTR ke site","Pemasangan meteran KWh digital","Komisioning & uji nyala oleh petugas PLN","Sertifikat SLO (Sertifikat Laik Operasi)"],"items":[{"id":"pln-2200","name":"PLN 2,2 kVA (1 tenant kecil)","sat":"ls","vol":1,"desc":"Untuk pole 12m atau small site","prices":{"SUMBAGUT":5000000,"SUMBAGTENG":5000000,"SUMBAGSEL":5000000,"JABODETABEK":5000000,"JABAR":5000000,"JATENG":5000000,"JATIM":5000000,"BALNUS":5000000,"KALIMANTAN":5000000,"SULAWESI":5000000,"PUMA":5000000}},{"id":"pln-5500","name":"PLN 5,5 kVA (2-3 tenant kecil)","sat":"ls","vol":1,"desc":"Site kecil-menengah","prices":{"SUMBAGUT":10000000,"SUMBAGTENG":10000000,"SUMBAGSEL":10000000,"JABODETABEK":10000000,"JABAR":10000000,"JATENG":10000000,"JATIM":10000000,"BALNUS":10000000,"KALIMANTAN":10000000,"SULAWESI":10000000,"PUMA":10000000}},{"id":"pln-10600","name":"PLN 10,6 kVA (Standar 1-2 tenant)","sat":"ls","vol":1,"desc":"Site standar urban","prices":{"SUMBAGUT":29000000,"SUMBAGTENG":29000000,"SUMBAGSEL":29000000,"JABODETABEK":24000000,"JABAR":26000000,"JATENG":26000000,"JATIM":26000000,"BALNUS":27000000,"KALIMANTAN":29000000,"SULAWESI":30000000,"PUMA":34000000}},{"id":"pln-16500","name":"PLN 16,5 kVA (2-3 tenant besar)","sat":"ls","vol":1,"desc":"Site multi-tenant medium","prices":{"SUMBAGUT":38000000,"SUMBAGTENG":38000000,"SUMBAGSEL":38000000,"JABODETABEK":33000000,"JABAR":33000000,"JATENG":38000000,"JATIM":38000000,"BALNUS":38000000,"KALIMANTAN":38000000,"SULAWESI":38000000,"PUMA":38000000}},{"id":"pln-23000","name":"PLN 23 kVA (3-4 tenant enterprise)","sat":"ls","vol":1,"desc":"Site enterprise","prices":{"SUMBAGUT":45000000,"SUMBAGTENG":45000000,"SUMBAGSEL":45000000,"JABODETABEK":45000000,"JABAR":45000000,"JATENG":45000000,"JATIM":45000000,"BALNUS":45000000,"KALIMANTAN":45000000,"SULAWESI":45000000,"PUMA":45000000}},{"id":"pln-33000","name":"PLN 33 kVA (Pole terpencil PUMA)","sat":"ls","vol":1,"desc":"Untuk pole di daerah terpencil Papua-Maluku","prices":{"SUMBAGUT":33000000,"SUMBAGTENG":33000000,"SUMBAGSEL":33000000,"JABODETABEK":33000000,"JABAR":33000000,"JATENG":33000000,"JATIM":33000000,"BALNUS":33000000,"KALIMANTAN":33000000,"SULAWESI":33000000,"PUMA":33000000}}]},{"id":"sitac","icon":"📍","name":"Site Acquisition","fullName":"Site Acquisition / Akuisisi Lahan (SITAC)","description":"Proses akuisisi dan sewa lahan untuk site menara. Termasuk negosiasi, legal, dan perizinan awal.","includes":["Survey lokasi dan pengukuran lahan","Negosiasi harga sewa dengan pemilik lahan","Pembuatan surat perjanjian sewa lahan","Legalitas & notaris (jika perlu)","Perizinan RT/RW dan lingkungan setempat"],"items":[{"id":"sitac-std","name":"SITAC Standar (Sewa Lahan Regular)","sat":"ls","vol":1,"desc":"Akuisisi standar untuk site regular","prices":{"SUMBAGUT":59400000,"SUMBAGTENG":59400000,"SUMBAGSEL":59400000,"JABODETABEK":79200000,"JABAR":79200000,"JATENG":65000000,"JATIM":65000000,"BALNUS":79200000,"KALIMANTAN":65000000,"SULAWESI":59400000,"PUMA":95000000}},{"id":"sitac-2","name":"SITAC Full Package (Premium)","sat":"ls","vol":1,"desc":"Akuisisi dengan pengurusan perizinan lengkap (IMB, izin lingkungan)","prices":{"SUMBAGUT":156000000,"SUMBAGTENG":156000000,"SUMBAGSEL":156000000,"JABODETABEK":144000000,"JABAR":144000000,"JATENG":140000000,"JATIM":140000000,"BALNUS":144000000,"KALIMANTAN":144000000,"SULAWESI":102000000,"PUMA":180000000}},{"id":"sitac-large","name":"SITAC Area Khusus (Pole Balinusra)","sat":"ls","vol":1,"desc":"Akuisisi premium untuk area tertentu seperti Bali","prices":{"SUMBAGUT":0,"SUMBAGTENG":0,"SUMBAGSEL":0,"JABODETABEK":0,"JABAR":0,"JATENG":0,"JATIM":0,"BALNUS":750000000,"KALIMANTAN":0,"SULAWESI":0,"PUMA":0}}]},{"id":"extra","icon":"⚙️","name":"Biaya Tambahan Khusus","fullName":"Biaya Tambahan untuk Kondisi Lokasi Khusus","description":"Biaya ekstra yang muncul hanya untuk lokasi dengan tantangan khusus: area batuan keras, pulau terpencil, atau kondisi medan berat yang butuh alat berat spesial.","includes":[],"items":[{"id":"extra-transport","name":"Additional Transport (Akses Jauh)","sat":"ls","vol":1,"desc":"Biaya tambahan transport untuk lokasi sangat jauh atau sulit dijangkau","prices":{"SUMBAGUT":100000000,"SUMBAGTENG":100000000,"SUMBAGSEL":100000000,"JABODETABEK":100000000,"JABAR":100000000,"JATENG":100000000,"JATIM":100000000,"BALNUS":100000000,"KALIMANTAN":100000000,"SULAWESI":100000000,"PUMA":100000000}},{"id":"extra-overblast","name":"Biaya Overblast (Peledakan Batu)","sat":"ls","vol":1,"desc":"Untuk lokasi dengan lapisan batuan keras yang butuh peledakan","prices":{"SUMBAGUT":150000000,"SUMBAGTENG":150000000,"SUMBAGSEL":150000000,"JABODETABEK":150000000,"JABAR":150000000,"JATENG":150000000,"JATIM":150000000,"BALNUS":150000000,"KALIMANTAN":150000000,"SULAWESI":150000000,"PUMA":150000000}},{"id":"extra-combat","name":"Mobilisasi & Install Combat","sat":"ls","vol":1,"desc":"Mobilisasi tim combat untuk daerah konflik atau sulit","prices":{"SUMBAGUT":80000000,"SUMBAGTENG":80000000,"SUMBAGSEL":80000000,"JABODETABEK":80000000,"JABAR":80000000,"JATENG":80000000,"JATIM":80000000,"BALNUS":80000000,"KALIMANTAN":80000000,"SULAWESI":80000000,"PUMA":80000000}},{"id":"extra-perkuatan","name":"Perkuatan Struktur Eksisting","sat":"ls","vol":1,"desc":"Untuk tower existing yang butuh penguatan sebelum co-location","prices":{"SUMBAGUT":0,"SUMBAGTENG":0,"SUMBAGSEL":0,"JABODETABEK":0,"JABAR":0,"JATENG":0,"JATIM":0,"BALNUS":0,"KALIMANTAN":0,"SULAWESI":0,"PUMA":0}},{"id":"extra-grounding","name":"Grounding Tambahan (Busbar & Kabel)","sat":"ls","vol":1,"desc":"Upgrade grounding untuk area kritis","prices":{"SUMBAGUT":3000000,"SUMBAGTENG":3000000,"SUMBAGSEL":3000000,"JABODETABEK":3000000,"JABAR":3000000,"JATENG":3000000,"JATIM":3000000,"BALNUS":3000000,"KALIMANTAN":3000000,"SULAWESI":3000000,"PUMA":3000000}},{"id":"extra-tiang-pln","name":"Tiang PLN Tambahan","sat":"unit","vol":1,"desc":"Tiang listrik tambahan untuk akses PLN","prices":{"SUMBAGUT":2500000,"SUMBAGTENG":2500000,"SUMBAGSEL":2500000,"JABODETABEK":2500000,"JABAR":2500000,"JATENG":2500000,"JATIM":2500000,"BALNUS":2500000,"KALIMANTAN":2500000,"SULAWESI":2500000,"PUMA":2500000}}]}]}</script>
<script src="assets/app.js?v=1777005291"></script>
</body>
</html>
