Teknik Pendinding

<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mindmap: Teknik Pendingin / Kältetechnik</title>
<style>
  @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Share+Tech+Mono&family=Exo+2:wght@300;400;600;700&display=swap');

  :root {
    --bg: #050d1a;
    --panel: #0a1628;
    --border: #0e3a6e;
    --cyan: #00d4ff;
    --ice: #a8e6ff;
    --cold: #4dc3ff;
    --frost: #1a7fa8;
    --green: #00ff9d;
    --amber: #ffb347;
    --red: #ff4d6d;
    --purple: #b06aff;
    --text: #cce8f5;
    --dim: #5a7a99;
    --glow: rgba(0, 212, 255, 0.15);
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }

  body {
    background: var(--bg);
    font-family: 'Exo 2', sans-serif;
    color: var(--text);
    min-height: 100vh;
    overflow: hidden;
  }

  /* Animated background grid */
  body::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image:
      linear-gradient(rgba(0,212,255,0.03) 1px, transparent 1px),
      linear-gradient(90deg, rgba(0,212,255,0.03) 1px, transparent 1px);
    background-size: 40px 40px;
    animation: gridPulse 8s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
  }

  @keyframes gridPulse {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
  }

  /* Snowflake particles */
  .particles {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
  }

  .particle {
    position: absolute;
    width: 4px; height: 4px;
    background: var(--cyan);
    border-radius: 50%;
    opacity: 0;
    animation: fall linear infinite;
  }

  @keyframes fall {
    0% { opacity: 0; transform: translateY(-10px) scale(0); }
    10% { opacity: 0.6; }
    90% { opacity: 0.2; }
    100% { opacity: 0; transform: translateY(100vh) scale(0.5); }
  }

  /* Header */
  header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    background: linear-gradient(180deg, rgba(5,13,26,0.98) 0%, transparent 100%);
    padding: 12px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(0,212,255,0.15);
  }

  .logo {
    font-family: 'Orbitron', monospace;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--cyan);
    letter-spacing: 0.2em;
    text-transform: uppercase;
  }

  .logo span { color: var(--dim); }

  .title-bar {
    text-align: center;
  }

  .main-title {
    font-family: 'Orbitron', monospace;
    font-size: 1.1rem;
    font-weight: 900;
    color: var(--cyan);
    letter-spacing: 0.15em;
    text-shadow: 0 0 20px rgba(0,212,255,0.5);
  }

  .sub-title {
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.65rem;
    color: var(--dim);
    letter-spacing: 0.3em;
    margin-top: 2px;
  }

  .status-bar {
    display: flex;
    gap: 12px;
    align-items: center;
  }

  .status-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 8px var(--green);
    animation: blink 2s ease-in-out infinite;
  }

  @keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
  }

  .status-text {
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.65rem;
    color: var(--dim);
    letter-spacing: 0.1em;
  }

  /* Main layout */
  .app {
    display: flex;
    height: 100vh;
    padding-top: 56px;
    position: relative;
    z-index: 1;
  }

  /* Sidebar navigation */
  .sidebar {
    width: 240px;
    flex-shrink: 0;
    background: rgba(10, 22, 40, 0.9);
    border-right: 1px solid var(--border);
    overflow-y: auto;
    padding: 16px 0;
    position: relative;
    backdrop-filter: blur(10px);
  }

  .sidebar::-webkit-scrollbar { width: 4px; }
  .sidebar::-webkit-scrollbar-track { background: transparent; }
  .sidebar::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; }

  .sidebar-section {
    margin-bottom: 4px;
  }

  .sidebar-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    cursor: pointer;
    transition: all 0.2s;
    border-left: 2px solid transparent;
    position: relative;
  }

  .sidebar-item:hover {
    background: rgba(0, 212, 255, 0.05);
  }

  .sidebar-item.active {
    background: rgba(0, 212, 255, 0.08);
    border-left-color: var(--cyan);
  }

  .sidebar-item .icon {
    font-size: 1rem;
    width: 20px;
    text-align: center;
    flex-shrink: 0;
  }

  .sidebar-item .label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1.2;
  }

  .sidebar-item .badge {
    margin-left: auto;
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.6rem;
    padding: 1px 5px;
    border-radius: 3px;
    background: rgba(0,212,255,0.1);
    color: var(--cyan);
    border: 1px solid rgba(0,212,255,0.2);
  }

  /* Content area */
  .content {
    flex: 1;
    overflow-y: auto;
    padding: 24px;
    position: relative;
  }

  .content::-webkit-scrollbar { width: 6px; }
  .content::-webkit-scrollbar-track { background: transparent; }
  .content::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }

  /* Cards */
  .card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
  }

  .card {
    background: rgba(10, 22, 40, 0.9);
    border: 1px solid var(--border);
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    transition: all 0.3s;
    backdrop-filter: blur(8px);
  }

  .card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: var(--accent, var(--cyan));
    box-shadow: 0 0 12px var(--accent, var(--cyan));
  }

  .card:hover {
    border-color: rgba(0,212,255,0.3);
    transform: translateY(-2px);
    box-shadow: 0 8px 32px rgba(0,0,0,0.4), 0 0 20px rgba(0,212,255,0.05);
  }

  .card-header {
    padding: 14px 16px 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid rgba(255,255,255,0.05);
  }

  .card-icon {
    font-size: 1.3rem;
    width: 32px;
    text-align: center;
  }

  .card-title {
    font-family: 'Orbitron', monospace;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--accent, var(--cyan));
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  .card-subtitle {
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.6rem;
    color: var(--dim);
    margin-top: 1px;
  }

  .card-body {
    padding: 14px 16px;
  }

  /* Topic items */
  .topic-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
  }

  .topic-item {
    background: rgba(0,212,255,0.04);
    border: 1px solid rgba(0,212,255,0.1);
    border-radius: 5px;
    padding: 8px 10px;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
  }

  .topic-item:hover, .topic-item.expanded {
    background: rgba(0,212,255,0.1);
    border-color: rgba(0,212,255,0.3);
  }

  .topic-item .t-title {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--ice);
    letter-spacing: 0.03em;
  }

  .topic-item .t-sub {
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.58rem;
    color: var(--dim);
    margin-top: 3px;
    line-height: 1.4;
    display: none;
  }

  .topic-item.expanded .t-sub {
    display: block;
    color: var(--text);
  }

  /* Formula box */
  .formula-box {
    background: rgba(0,0,0,0.3);
    border: 1px solid rgba(0,212,255,0.15);
    border-radius: 6px;
    padding: 10px 12px;
    margin: 6px 0;
    font-family: 'Share Tech Mono', monospace;
  }

  .formula-label {
    font-size: 0.58rem;
    color: var(--amber);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 4px;
  }

  .formula-eq {
    font-size: 0.72rem;
    color: var(--green);
    line-height: 1.6;
  }

  .formula-desc {
    font-size: 0.6rem;
    color: var(--dim);
    margin-top: 4px;
    line-height: 1.4;
  }

  /* Schematic diagram */
  .schematic {
    background: rgba(0,0,0,0.4);
    border: 1px solid rgba(0,212,255,0.15);
    border-radius: 8px;
    padding: 16px;
    margin: 8px 0;
    position: relative;
    overflow: hidden;
  }

  .schematic svg {
    width: 100%;
    height: auto;
  }

  /* Refrigerant table */
  .ref-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.63rem;
    margin-top: 8px;
  }

  .ref-table th {
    font-family: 'Orbitron', monospace;
    font-size: 0.55rem;
    color: var(--cyan);
    padding: 6px 8px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    white-space: nowrap;
  }

  .ref-table td {
    padding: 5px 8px;
    border-bottom: 1px solid rgba(255,255,255,0.03);
    color: var(--text);
    font-family: 'Share Tech Mono', monospace;
  }

  .ref-table tr:hover td {
    background: rgba(0,212,255,0.04);
  }

  .badge-gwp {
    padding: 2px 5px;
    border-radius: 3px;
    font-size: 0.55rem;
  }

  .gwp-low { background: rgba(0,255,157,0.1); color: var(--green); border: 1px solid rgba(0,255,157,0.2); }
  .gwp-med { background: rgba(255,179,71,0.1); color: var(--amber); border: 1px solid rgba(255,179,71,0.2); }
  .gwp-high { background: rgba(255,77,109,0.1); color: var(--red); border: 1px solid rgba(255,77,109,0.2); }

  /* Full-width card */
  .card.full { grid-column: 1 / -1; }

  /* Process steps */
  .process-flow {
    display: flex;
    align-items: center;
    gap: 0;
    flex-wrap: wrap;
    margin: 10px 0;
  }

  .process-step {
    background: rgba(0,212,255,0.06);
    border: 1px solid rgba(0,212,255,0.2);
    border-radius: 6px;
    padding: 8px 12px;
    position: relative;
    flex: 1;
    min-width: 100px;
    text-align: center;
  }

  .process-step .ps-num {
    font-family: 'Orbitron', monospace;
    font-size: 0.55rem;
    color: var(--cyan);
    letter-spacing: 0.1em;
  }

  .process-step .ps-title {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--ice);
    margin: 3px 0 2px;
  }

  .process-step .ps-desc {
    font-size: 0.58rem;
    color: var(--dim);
    line-height: 1.3;
  }

  .process-arrow {
    color: var(--cyan);
    font-size: 1rem;
    padding: 0 4px;
    opacity: 0.5;
  }

  /* Color variants for card accents */
  .accent-cyan { --accent: #00d4ff; }
  .accent-green { --accent: #00ff9d; }
  .accent-amber { --accent: #ffb347; }
  .accent-red { --accent: #ff4d6d; }
  .accent-purple { --accent: #b06aff; }
  .accent-ice { --accent: #a8e6ff; }
  .accent-frost { --accent: #4dc3ff; }

  /* Section header */
  .section-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
  }

  .section-title {
    font-family: 'Orbitron', monospace;
    font-size: 0.85rem;
    font-weight: 900;
    color: var(--cyan);
    letter-spacing: 0.15em;
    text-transform: uppercase;
  }

  .section-line {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, var(--border) 0%, transparent 100%);
  }

  /* Page sections (hidden by default) */
  .page { display: none; }
  .page.active { display: block; }

  /* Tags */
  .tag-row { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
  .tag {
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.58rem;
    padding: 2px 7px;
    border-radius: 3px;
    border: 1px solid rgba(0,212,255,0.2);
    background: rgba(0,212,255,0.05);
    color: var(--cold);
    cursor: default;
    transition: all 0.2s;
  }
  .tag:hover { background: rgba(0,212,255,0.12); }

  /* List items */
  .item-list { margin: 6px 0; }
  .item-list li {
    font-size: 0.68rem;
    color: var(--text);
    padding: 3px 0 3px 14px;
    position: relative;
    line-height: 1.4;
  }
  .item-list li::before {
    content: '▸';
    position: absolute;
    left: 0;
    color: var(--cyan);
    font-size: 0.6rem;
  }
  .item-list li strong {
    color: var(--ice);
    font-weight: 600;
  }

  /* Scroll progress */
  .scroll-progress {
    position: fixed;
    bottom: 0; left: 240px; right: 0;
    height: 2px;
    background: rgba(0,212,255,0.1);
    z-index: 100;
  }

  .scroll-bar {
    height: 100%;
    background: linear-gradient(90deg, var(--cyan), var(--purple));
    width: 0%;
    transition: width 0.1s;
    box-shadow: 0 0 8px var(--cyan);
  }

  /* Tooltip */
  .has-tooltip { position: relative; cursor: help; }
  .tooltip {
    display: none;
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    background: rgba(5,13,26,0.97);
    border: 1px solid var(--cyan);
    border-radius: 5px;
    padding: 6px 10px;
    font-family: 'Share Tech Mono', monospace;
    font-size: 0.6rem;
    color: var(--text);
    white-space: nowrap;
    z-index: 200;
    pointer-events: none;
    box-shadow: 0 4px 20px rgba(0,0,0,0.5);
  }
  .has-tooltip:hover .tooltip { display: block; }

  /* ---- Responsive ---- */
  @media (max-width: 800px) {
    .sidebar { width: 180px; }
    .card-grid { grid-template-columns: 1fr; }
  }
</style>
</head>
<body>

<!-- Particles -->
<div class="particles" id="particles"></div>

<!-- Header -->
<header>
  <div class="logo">UKFTP <span>·</span> TEKNIK MESIN</div>
  <div class="title-bar">
    <div class="main-title">TEKNIK PENDINGIN</div>
    <div class="sub-title">KÄLTETECHNIK — MINDMAP INTERAKTIF KOMPREHENSIF</div>
  </div>
  <div class="status-bar">
    <div class="status-dot"></div>
    <div class="status-text">AKTIF · 2025</div>
  </div>
</header>

<!-- App -->
<div class="app">

  <!-- Sidebar -->
  <nav class="sidebar">
    <div id="nav-items"></div>
  </nav>

  <!-- Content -->
  <main class="content" id="main-content">
    <!-- Pages injected by JS -->
  </main>

  <!-- Scroll progress -->
  <div class="scroll-progress"><div class="scroll-bar" id="scrollBar"></div></div>
</div>

<script>
// ─────────────────────────────────────────────
// DATA STRUCTURE
// ─────────────────────────────────────────────
const pages = [
  {
    id: 'overview',
    icon: '❄️',
    label: 'OVERVIEW',
    badge: 'START',
    accentClass: 'accent-cyan',
    render: () => `
      <div class="section-header">
        <div class="section-title">❄️ Teknik Pendingin — Overview</div>
        <div class="section-line"></div>
      </div>
      <div class="card-grid">
        <div class="card full accent-cyan">
          <div class="card-header">
            <div class="card-icon">🗺️</div>
            <div><div class="card-title">Peta Konsep Utama</div><div class="card-subtitle">Kältetechnik / Refrigeration Engineering</div></div>
          </div>
          <div class="card-body">
            <div class="process-flow">
              ${['Termodinamika\nDasar','Siklus\nPendinginan','Komponen\nUtama','Refrigeran\n& Pelumas','Sistem\nKhusus','Perawatan\n& K3','Lingkungan\n& Regulasi'].map((s,i,a) => `
                <div class="process-step">
                  <div class="ps-num">0${i+1}</div>
                  <div class="ps-title">${s.split('\n')[0]}</div>
                  <div class="ps-desc">${s.split('\n')[1]||''}</div>
                </div>${i<a.length-1?'<div class="process-arrow">→</div>':''}
              `).join('')}
            </div>
          </div>
        </div>

        <div class="card accent-cyan">
          <div class="card-header"><div class="card-icon">🎯</div><div><div class="card-title">Definisi & Ruang Lingkup</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Teknik Pendingin</strong> = ilmu memindahkan kalor dari suhu rendah ke suhu tinggi menggunakan energi kerja</li>
              <li><strong>Hukum II Termodinamika</strong>: proses spontan hanya dari panas → dingin; pendinginan perlu kerja eksternal</li>
              <li><strong>COP</strong> (Coefficient of Performance) = Q<sub>L</sub>/W → efisiensi sistem</li>
              <li><strong>Rentang Suhu</strong>: normal cooling (>−20°C), deep freezing (−20..−60°C), cryo (< −60°C)</li>
              <li><strong>Aplikasi</strong>: domestik, komersial, industri, medis, kriogenik, HVAC</li>
            </ul>
          </div>
        </div>

        <div class="card accent-ice">
          <div class="card-header"><div class="card-icon">📐</div><div><div class="card-title">Besaran Dasar</div><div class="card-subtitle">Thermische Grundgrößen</div></div></div>
          <div class="card-body">
            <div class="formula-box">
              <div class="formula-label">Kapasitas Pendinginan</div>
              <div class="formula-eq">Q̇₀ = ṁ · (h₁ − h₄)  [kW]</div>
              <div class="formula-desc">h₁ = entalpi keluar evaporator, h₄ = entalpi masuk evaporator</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">COP — Mesin Pendingin</div>
              <div class="formula-eq">COP_R = Q̇₀ / Ẇ_komp</div>
              <div class="formula-desc">Q̇₀ = beban pendinginan [kW], Ẇ = daya kompresor [kW]</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">COP — Pompa Kalor</div>
              <div class="formula-eq">COP_HP = Q̇_K / Ẇ = COP_R + 1</div>
            </div>
          </div>
        </div>

        <div class="card accent-green">
          <div class="card-header"><div class="card-icon">🌡️</div><div><div class="card-title">Satuan & Konversi</div></div></div>
          <div class="card-body">
            <div class="ref-table-wrap">
              <table class="ref-table">
                <tr><th>Besaran</th><th>SI</th><th>Non-SI</th><th>Konversi</th></tr>
                <tr><td>Kapasitas</td><td>kW</td><td>RT (Refrigeration Ton)</td><td>1 RT = 3,517 kW</td></tr>
                <tr><td>Kalor jenis</td><td>kJ/kg·K</td><td>kcal/kg·°C</td><td>1 kcal=4,187 kJ</td></tr>
                <tr><td>Tekanan</td><td>bar / Pa</td><td>psi / atm</td><td>1 bar=100 kPa</td></tr>
                <tr><td>Suhu</td><td>K / °C</td><td>°F</td><td>°C=(°F−32)/1,8</td></tr>
                <tr><td>Entalpi</td><td>kJ/kg</td><td>BTU/lb</td><td>1 BTU/lb=2,326 kJ/kg</td></tr>
              </table>
            </div>
          </div>
        </div>
      </div>
    `
  },

  {
    id: 'siklus',
    icon: '🔄',
    label: 'SIKLUS PENDINGIN',
    badge: '8',
    accentClass: 'accent-frost',
    render: () => `
      <div class="section-header">
        <div class="section-title">🔄 Siklus & Jenis Mesin Pendingin</div>
        <div class="section-line"></div>
      </div>
      <div class="card-grid">

        <!-- SIKLUS KOMPRESI UAP -->
        <div class="card accent-cyan full">
          <div class="card-header"><div class="card-icon">💨</div><div><div class="card-title">Siklus Kompresi Uap (SKU)</div><div class="card-subtitle">Dampfkompressions-Kältemaschine — paling umum digunakan</div></div></div>
          <div class="card-body">
            <div class="process-flow">
              <div class="process-step" style="--accent:#b06aff">
                <div class="ps-num">1→2</div>
                <div class="ps-title">KOMPRESI</div>
                <div class="ps-desc">Uap jenuh ditekan → uap panas lanjut (isentropik ideal)</div>
              </div>
              <div class="process-arrow">→</div>
              <div class="process-step" style="--accent:#ff4d6d">
                <div class="ps-num">2→3</div>
                <div class="ps-title">KONDENSASI</div>
                <div class="ps-desc">Uap panas → cair jenuh di P tinggi (isobar)</div>
              </div>
              <div class="process-arrow">→</div>
              <div class="process-step" style="--accent:#ffb347">
                <div class="ps-num">3→4</div>
                <div class="ps-title">EKSPANSI</div>
                <div class="ps-desc">Cairan diekspansi → campuran cair-uap (isentalp)</div>
              </div>
              <div class="process-arrow">→</div>
              <div class="process-step" style="--accent:#00d4ff">
                <div class="ps-num">4→1</div>
                <div class="ps-title">EVAPORASI</div>
                <div class="ps-desc">Refrigeran menguap, menyerap kalor dari beban (isobar)</div>
              </div>
            </div>
            <!-- SVG Schematic -->
            <div class="schematic" style="margin-top:14px">
              <svg viewBox="0 0 620 260" style="max-height:260px">
                <!-- Background -->
                <rect width="620" height="260" fill="#050d1a" rx="6"/>

                <!-- Lines connecting components -->
                <!-- Top: Condenser to expansion (high pressure side) -->
                <line x1="200" y1="80" x2="400" y2="80" stroke="#ff4d6d" stroke-width="2.5" stroke-dasharray="none"/>
                <!-- Right: Compressor to Condenser -->
                <line x1="200" y1="80" x2="100" y2="80" stroke="#ff4d6d" stroke-width="2.5"/>
                <line x1="100" y1="80" x2="100" y2="170" stroke="#b06aff" stroke-width="2.5"/>
                <!-- Bottom: Expansion to Evaporator (low pressure side) -->
                <line x1="400" y1="80" x2="500" y2="80" stroke="#ff4d6d" stroke-width="2.5"/>
                <line x1="500" y1="80" x2="500" y2="170" stroke="#ffb347" stroke-width="2.5"/>
                <line x1="500" y1="170" x2="400" y2="170" stroke="#00d4ff" stroke-width="2.5"/>
                <line x1="200" y1="170" x2="100" y2="170" stroke="#00d4ff" stroke-width="2.5"/>
                <line x1="200" y1="170" x2="400" y2="170" stroke="#00d4ff" stroke-width="2.5"/>

                <!-- Arrows on lines -->
                <polygon points="155,75 165,80 155,85" fill="#ff4d6d"/>
                <polygon points="95,130 100,120 105,130" fill="#b06aff"/>
                <polygon points="495,120 500,130 505,120" fill="#ffb347"/>
                <polygon points="350,175 340,170 350,165" fill="#00d4ff"/>

                <!-- COMPRESSOR -->
                <rect x="60" y="155" width="80" height="60" rx="6" fill="#0a1628" stroke="#b06aff" stroke-width="1.5"/>
                <text x="100" y="182" text-anchor="middle" fill="#b06aff" font-family="Orbitron,monospace" font-size="7" font-weight="700">KOMPRESOR</text>
                <text x="100" y="195" text-anchor="middle" fill="#5a7a99" font-family="Share Tech Mono,monospace" font-size="6">1→2 Isentropik</text>
                <text x="100" y="206" text-anchor="middle" fill="#b06aff" font-family="Share Tech Mono,monospace" font-size="8">⚙️</text>

                <!-- CONDENSER -->
                <rect x="130" y="55" width="120" height="60" rx="6" fill="#0a1628" stroke="#ff4d6d" stroke-width="1.5"/>
                <text x="190" y="80" text-anchor="middle" fill="#ff4d6d" font-family="Orbitron,monospace" font-size="7" font-weight="700">KONDENSER</text>
                <text x="190" y="93" text-anchor="middle" fill="#5a7a99" font-family="Share Tech Mono,monospace" font-size="6">2→3 Isobar</text>
                <text x="190" y="106" text-anchor="middle" fill="#5a7a99" font-family="Share Tech Mono,monospace" font-size="6">Q̇K = ṁ·(h2-h3)</text>
                <!-- Heat arrows from condenser -->
                <line x1="160" y1="45" x2="160" y2="35" stroke="#ff4d6d" stroke-width="1.5" opacity="0.6"/>
                <line x1="175" y1="40" x2="175" y2="30" stroke="#ff4d6d" stroke-width="1.5" opacity="0.7"/>
                <line x1="190" y1="38" x2="190" y2="28" stroke="#ff4d6d" stroke-width="1.5" opacity="0.8"/>
                <line x1="205" y1="40" x2="205" y2="30" stroke="#ff4d6d" stroke-width="1.5" opacity="0.7"/>
                <line x1="220" y1="45" x2="220" y2="35" stroke="#ff4d6d" stroke-width="1.5" opacity="0.6"/>
                <text x="190" y="22" text-anchor="middle" fill="#ff4d6d" font-family="Share Tech Mono,monospace" font-size="8">Q̇K → Lingkungan</text>

                <!-- EXPANSION VALVE -->
                <rect x="420" y="55" width="120" height="60" rx="6" fill="#0a1628" stroke="#ffb347" stroke-width="1.5"/>
                <text x="480" y="80" text-anchor="middle" fill="#ffb347" font-family="Orbitron,monospace" font-size="7" font-weight="700">KATUP EKSPANSI</text>
                <text x="480" y="93" text-anchor="middle" fill="#5a7a99" font-family="Share Tech Mono,monospace" font-size="6">3→4 Isentalp</text>
                <text x="480" y="106" text-anchor="middle" fill="#5a7a99" font-family="Share Tech Mono,monospace" font-size="6">h3 = h4  (ideal)</text>

                <!-- EVAPORATOR -->
                <rect x="310" y="145" width="140" height="60" rx="6" fill="#0a1628" stroke="#00d4ff" stroke-width="1.5"/>
                <text x="380" y="168" text-anchor="middle" fill="#00d4ff" font-family="Orbitron,monospace" font-size="7" font-weight="700">EVAPORATOR</text>
                <text x="380" y="181" text-anchor="middle" fill="#5a7a99" font-family="Share Tech Mono,monospace" font-size="6">4→1 Isobar</text>
                <text x="380" y="194" text-anchor="middle" fill="#5a7a99" font-family="Share Tech Mono,monospace" font-size="6">Q̇0 = ṁ·(h1-h4)</text>
                <!-- Heat arrows into evaporator -->
                <line x1="355" y1="225" x2="355" y2="215" stroke="#00d4ff" stroke-width="1.5" opacity="0.6"/>
                <line x1="370" y1="228" x2="370" y2="218" stroke="#00d4ff" stroke-width="1.5" opacity="0.7"/>
                <line x1="385" y1="230" x2="385" y2="220" stroke="#00d4ff" stroke-width="1.5" opacity="0.8"/>
                <line x1="400" y1="228" x2="400" y2="218" stroke="#00d4ff" stroke-width="1.5" opacity="0.7"/>
                <text x="380" y="248" text-anchor="middle" fill="#00d4ff" font-family="Share Tech Mono,monospace" font-size="8">Q̇0 ← Ruang Dingin</text>

                <!-- Pressure labels -->
                <text x="310" y="50" text-anchor="middle" fill="#5a7a99" font-family="Share Tech Mono,monospace" font-size="7">─── TEKANAN TINGGI (P_hoch) ───</text>
                <text x="310" y="240" text-anchor="middle" fill="#5a7a99" font-family="Share Tech Mono,monospace" font-size="7">─── TEKANAN RENDAH (P_niedrig) ───</text>

                <!-- State points -->
                <circle cx="100" cy="155" r="5" fill="#b06aff" stroke="#050d1a" stroke-width="1"/>
                <text x="108" y="153" fill="#b06aff" font-size="9" font-weight="700" font-family="Orbitron,monospace">①</text>
                <circle cx="130" cy="80" r="5" fill="#ff4d6d" stroke="#050d1a" stroke-width="1"/>
                <text x="118" y="75" fill="#ff4d6d" font-size="9" font-weight="700" font-family="Orbitron,monospace">②</text>
                <circle cx="420" cy="80" r="5" fill="#ffb347" stroke="#050d1a" stroke-width="1"/>
                <text x="422" y="73" fill="#ffb347" font-size="9" font-weight="700" font-family="Orbitron,monospace">③</text>
                <circle cx="500" cy="145" r="5" fill="#00d4ff" stroke="#050d1a" stroke-width="1"/>
                <text x="505" y="143" fill="#00d4ff" font-size="9" font-weight="700" font-family="Orbitron,monospace">④</text>
              </svg>
            </div>

            <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:10px">
              <div class="formula-box">
                <div class="formula-label">Kerja Kompresor</div>
                <div class="formula-eq">Ẇ = ṁ·(h₂−h₁)</div>
                <div class="formula-desc">isentropik: s₁=s₂</div>
              </div>
              <div class="formula-box">
                <div class="formula-label">Panas Kondenser</div>
                <div class="formula-eq">Q̇_K = ṁ·(h₂−h₃)</div>
                <div class="formula-desc">Q̇_K = Q̇₀ + Ẇ</div>
              </div>
              <div class="formula-box">
                <div class="formula-label">Neraca Energi</div>
                <div class="formula-eq">Q̇_K = Q̇₀ + Ẇ</div>
                <div class="formula-desc">Hukum I Termodinamika</div>
              </div>
            </div>
          </div>
        </div>

        <!-- Siklus 2-tingkat -->
        <div class="card accent-frost">
          <div class="card-header"><div class="card-icon">🔁</div><div><div class="card-title">SKU 2-Tingkat (Zweistufig)</div><div class="card-subtitle">Suhu −40°C s/d −60°C</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Pendingin antara (Economizer)</strong>: Flash Tank atau Heat Exchanger</li>
              <li>Kompresor LP + Kompresor HP terpisah</li>
              <li>Tekanan menengah: P_m = √(P_L · P_H)</li>
              <li>COP meningkat dibanding satu tingkat</li>
              <li>Refrigeran: R717, R744, R404A</li>
            </ul>
            <div class="formula-box" style="margin-top:8px">
              <div class="formula-label">Tekanan Optimal Intermediet</div>
              <div class="formula-eq">P_m = √(P_niedrig · P_hoch)</div>
            </div>
          </div>
        </div>

        <!-- Siklus Absorpsi -->
        <div class="card accent-amber">
          <div class="card-header"><div class="card-icon">🧪</div><div><div class="card-title">Siklus Absorpsi</div><div class="card-subtitle">Absorptionskältemaschine — H₂O/LiBr, NH₃/H₂O</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Generator</strong>: kalor eksternal melepas refrigeran dari pelarut</li>
              <li><strong>Absorber</strong>: refrigeran uap diserap pelarut lemah</li>
              <li><strong>Pompa larutan</strong>: satu-satunya komponen gerak; hemat energi listrik</li>
              <li>COP_abs ≈ 0,6–1,2 (single-effect)</li>
              <li>Cocok untuk waste heat / solar thermal</li>
            </ul>
            <div class="formula-box">
              <div class="formula-label">COP Absorpsi</div>
              <div class="formula-eq">COP_abs = Q̇₀ / Q̇_gen</div>
              <div class="formula-desc">Q̇_gen = kalor di Generator (sumber panas)</div>
            </div>
            <div class="tag-row">
              <span class="tag">Single-Effect</span>
              <span class="tag">Double-Effect</span>
              <span class="tag">Triple-Effect</span>
              <span class="tag">H₂O/LiBr</span>
              <span class="tag">NH₃/H₂O</span>
            </div>
          </div>
        </div>

        <!-- Siklus Adsorpsi -->
        <div class="card accent-green">
          <div class="card-header"><div class="card-icon">🌿</div><div><div class="card-title">Siklus Adsorpsi & Termoelektrik</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Adsorpsi</strong>: zeolit/silica gel + air; tanpa komponen bergerak; waste heat driven</li>
              <li><strong>Termoelektrik (Peltier)</strong>: efek Peltier, COP rendah (~0,3−0,6), keandalan tinggi, tanpa refrigeran, skala kecil</li>
              <li><strong>Vortex Tube</strong>: pemisahan aliran udara menjadi panas & dingin</li>
              <li><strong>Siklus Udara</strong>: Brayton terbalik; digunakan di pesawat (Air Cycle)</li>
            </ul>
            <div class="formula-box">
              <div class="formula-label">Peltier — Daya Pendinginan</div>
              <div class="formula-eq">Q_c = α·T_c·I − ½·R·I² − K·ΔT</div>
              <div class="formula-desc">α=Seebeck coeff, K=konduksi termal, R=resistansi</div>
            </div>
          </div>
        </div>

        <!-- Siklus Kriogenik -->
        <div class="card accent-purple">
          <div class="card-header"><div class="card-icon">🔬</div><div><div class="card-title">Siklus Kriogenik</div><div class="card-subtitle">< −150°C</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Siklus Linde-Hampson</strong>: efek Joule-Thomson; liquefaksi gas</li>
              <li><strong>Siklus Claude</strong>: turboexpander + Linde; lebih efisien</li>
              <li><strong>Siklus Collins</strong>: untuk He dan H₂ cair</li>
              <li><strong>Pulse Tube</strong>: tanpa bagian gerak, sangat andal</li>
              <li>Aplikasi: LNG, LN₂, liquid He, MRI, superkonductor</li>
            </ul>
          </div>
        </div>

        <!-- Pompa Kalor -->
        <div class="card accent-red">
          <div class="card-header"><div class="card-icon">🔥</div><div><div class="card-title">Pompa Kalor (Heat Pump)</div><div class="card-subtitle">Wärmepumpe — SKU mode pemanasan</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li>Prinsip sama dengan mesin pendingin, sisi output berbeda</li>
              <li><strong>Air-to-Air, Air-to-Water, Water-to-Water, Ground-Source</strong></li>
              <li>COP_HP = COP_R + 1 → selalu > 1</li>
              <li>COP praktis: 2,5–4,5 (udara), 3–6 (tanah)</li>
            </ul>
            <div class="formula-box">
              <div class="formula-label">Hubungan COP</div>
              <div class="formula-eq">COP_HP = Q̇_K / Ẇ = COP_R + 1</div>
            </div>
          </div>
        </div>

      </div>
    `
  },

  {
    id: 'komponen',
    icon: '⚙️',
    label: 'KOMPONEN UTAMA',
    badge: '5',
    accentClass: 'accent-purple',
    render: () => `
      <div class="section-header">
        <div class="section-title">⚙️ Komponen Utama Sistem Pendingin</div>
        <div class="section-line"></div>
      </div>
      <div class="card-grid">

        <!-- KOMPRESOR BESAR -->
        <div class="card full accent-purple">
          <div class="card-header"><div class="card-icon">🔧</div><div><div class="card-title">Jenis-Jenis Kompresor</div><div class="card-subtitle">Verdichtertypen — Kältetechnik</div></div></div>
          <div class="card-body">
            <div class="topic-grid" style="grid-template-columns:repeat(4,1fr)">
              ${[
                {t:'Resiprok\n(Piston)',s:'Hermetik/Semihermetik/Terbuka\nDisplacement positif\nCocok kecil-menengah\nCOP ~0,5-0,7'},
                {t:'Scroll\n(Spiralverdichter)',s:'Spiral tetap + spiral orbital\nRendah suara\nR410A, R32\nCapacity modulation'},
                {t:'Screw\n(Schraubenverdichter)',s:'2 rotor heliks berputar\nKapasitas besar (>50kW)\nSlide valve regulation\nOil-injected / oil-free'},
                {t:'Sentrifugal\n(Turbo)',s:'Impeller kecepatan tinggi\nKapasitas sangat besar\nCentral chiller plant\nVFD control'},
                {t:'Rotary\n(Rolling Piston)',s:'Eksentrik pada silinder\nKompak, rendah getar\nR22, R410A\nAC residensial/komersial'},
                {t:'Linear\n(Linearverdichter)',s:'Piston bergerak linier\nEfisiensi sangat tinggi\nKulkas modern\nTidak ada engkol'},
                {t:'Diafragma\n(Membranverdichter)',s:'Oil-free\nGas murni / sensitif\nMedis & laboratorium\nTekanan tinggi'},
                {t:'Turbo-Radial\n(Hermetik)',s:'Compact chiller\nHVAC besar\nMagnet bearing\nOil-free modern'}
              ].map(item=>`
                <div class="topic-item" onclick="this.classList.toggle('expanded')">
                  <div class="t-title">${item.t.split('\n')[0]} <span style="color:var(--dim);font-size:0.6rem">${item.t.split('\n')[1]}</span></div>
                  <div class="t-sub">${item.s.replace(/\n/g,'<br>')}</div>
                </div>
              `).join('')}
            </div>
            <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:12px">
              <div class="formula-box">
                <div class="formula-label">Volumetric Efficiency</div>
                <div class="formula-eq">η_vol = V̇_tatsächlich / V̇_theor</div>
                <div class="formula-desc">Dipengaruhi clearance, kebocoran, panas</div>
              </div>
              <div class="formula-box">
                <div class="formula-label">Displacement (Piston)</div>
                <div class="formula-eq">V_h = π/4 · d² · s · z · n</div>
                <div class="formula-desc">d=bore, s=stroke, z=jml silinder, n=putaran</div>
              </div>
              <div class="formula-box">
                <div class="formula-label">Daya Isentropik</div>
                <div class="formula-eq">Ẇ_s = ṁ · (h₂s − h₁)</div>
                <div class="formula-desc">η_is = Ẇ_s / Ẇ_tatsächlich</div>
              </div>
            </div>
          </div>
        </div>

        <!-- KONDENSER -->
        <div class="card accent-red">
          <div class="card-header"><div class="card-icon">🌡️</div><div><div class="card-title">Kondenser</div><div class="card-subtitle">Verflüssiger</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Air-Cooled</strong>: fin-tube, kipas aksial; paling umum</li>
              <li><strong>Water-Cooled</strong>: shell & tube, plate HX; efisiensi tinggi</li>
              <li><strong>Evaporative</strong>: kombinasi udara + air; suhu kondensasi rendah</li>
              <li><strong>Microchannel</strong>: aluminium, volume refrigeran kecil</li>
            </ul>
            <div class="formula-box" style="margin-top:8px">
              <div class="formula-label">Perpindahan Kalor</div>
              <div class="formula-eq">Q̇_K = U · A · LMTD</div>
              <div class="formula-desc">LMTD = Log Mean Temperature Difference</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">LMTD</div>
              <div class="formula-eq">LMTD = (ΔT₁−ΔT₂) / ln(ΔT₁/ΔT₂)</div>
            </div>
          </div>
        </div>

        <!-- EVAPORATOR -->
        <div class="card accent-cyan">
          <div class="card-header"><div class="card-icon">❄️</div><div><div class="card-title">Evaporator</div><div class="card-subtitle">Verdampfer</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Direct Expansion (DX)</strong>: refrigeran langsung ke HX; TXV/EEV control</li>
              <li><strong>Flooded Evaporator</strong>: refrigeran cair mengisi HX; efisiensi tinggi</li>
              <li><strong>Plate Evaporator (BPHE)</strong>: brazed plate; kompak; chiller kecil</li>
              <li><strong>Shell & Tube</strong>: chiller besar; refrigeran di shell/tube</li>
              <li><strong>Fin-Tube</strong>: udara langsung; kulkas, fan-coil unit</li>
            </ul>
            <div class="formula-box" style="margin-top:6px">
              <div class="formula-label">Superheat Control</div>
              <div class="formula-eq">SH = T₁ − T_sat(P₀)  [K]</div>
              <div class="formula-desc">Target: SH = 5–7 K (TXV) / 3–5 K (EEV)</div>
            </div>
          </div>
        </div>

        <!-- KATUP EKSPANSI -->
        <div class="card accent-amber">
          <div class="card-header"><div class="card-icon">🔩</div><div><div class="card-title">Katup Ekspansi</div><div class="card-subtitle">Expansionsventil</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Capillary Tube</strong>: pipa kapiler; fixed; kulkas/AC kecil</li>
              <li><strong>TXV</strong> (Thermostatic): mechanical; bulb + spring; paling umum</li>
              <li><strong>EEV</strong> (Electronic): stepper motor; presisi tinggi; inverter AC</li>
              <li><strong>Float Valve</strong>: flooded system; level-controlled</li>
              <li><strong>Hand Expansion Valve</strong>: manual; industri besar</li>
            </ul>
            <div class="formula-box" style="margin-top:6px">
              <div class="formula-label">Laju Alir Ekspansi</div>
              <div class="formula-eq">ṁ = C_d · A · √(2·ρ_L·ΔP)</div>
              <div class="formula-desc">C_d=koefisien debit, A=luas buka</div>
            </div>
          </div>
        </div>

        <!-- AKSESORI -->
        <div class="card accent-green">
          <div class="card-header"><div class="card-icon">🔗</div><div><div class="card-title">Aksesori & Komponen Tambahan</div></div></div>
          <div class="card-body">
            <div class="topic-grid">
              ${[
                {t:'Filter-Dryer',s:'Menghilangkan kelembaban & partikel; zeolite/silica gel; wajib setelah service'},
                {t:'Sight Glass',s:'Inspeksi visual refrigeran; moisture indicator (hijau=kering, kuning=basah)'},
                {t:'Liquid Receiver',s:'Tangki penyimpan cairan; buffer; flush charge'},
                {t:'Oil Separator',s:'Memisahkan oil dari refrigeran di discharge; screw/sentrifugal system'},
                {t:'Solenoid Valve',s:'ON/OFF control aliran refrigeran; normally closed; pump-down cycle'},
                {t:'Pressure Switch',s:'HP/LP cut-out; keamanan sistem; manual/auto reset'},
                {t:'Akumulator',s:'Suction line; mencegah liquid slugging ke kompressor; kapasitas buffer'},
                {t:'Hot Gas Bypass',s:'Kapasitas minimum control; menghindari short-cycling'}
              ].map(item=>`
                <div class="topic-item" onclick="this.classList.toggle('expanded')">
                  <div class="t-title">${item.t}</div>
                  <div class="t-sub">${item.s}</div>
                </div>
              `).join('')}
            </div>
          </div>
        </div>

      </div>
    `
  },

  {
    id: 'refrigeran',
    icon: '🧊',
    label: 'REFRIGERAN',
    badge: '25+',
    accentClass: 'accent-ice',
    render: () => `
      <div class="section-header">
        <div class="section-title">🧊 Refrigeran & Bahan Pelarut</div>
        <div class="section-line"></div>
      </div>
      <div class="card-grid">

        <div class="card full accent-ice">
          <div class="card-header"><div class="card-icon">📊</div><div><div class="card-title">Klasifikasi Refrigeran</div><div class="card-subtitle">ASHRAE Standard 34 — Kältemittelkennzeichnung</div></div></div>
          <div class="card-body">
            <table class="ref-table">
              <thead><tr><th>Kode R</th><th>Nama / Kimia</th><th>Kelompok</th><th>T_sdh (°C)</th><th>GWP</th><th>ODP</th><th>Keamanan</th><th>Status</th></tr></thead>
              <tbody>
                <tr><td>R11</td><td>Trichlorofluoromethane CCl₃F</td><td>CFC</td><td>+23,8</td><td><span class="badge-gwp gwp-high">4750</span></td><td>1,0</td><td>A1</td><td style="color:var(--red)">DILARANG</td></tr>
                <tr><td>R12</td><td>Dichlorodifluoromethane CCl₂F₂</td><td>CFC</td><td>−29,8</td><td><span class="badge-gwp gwp-high">10900</span></td><td>1,0</td><td>A1</td><td style="color:var(--red)">DILARANG</td></tr>
                <tr><td>R22</td><td>Chlorodifluoromethane CHClF₂</td><td>HCFC</td><td>−40,8</td><td><span class="badge-gwp gwp-high">1810</span></td><td>0,055</td><td>A1</td><td style="color:var(--amber)">FASE OUT</td></tr>
                <tr><td>R134a</td><td>Tetrafluoroethane CH₂FCF₃</td><td>HFC</td><td>−26,4</td><td><span class="badge-gwp gwp-high">1430</span></td><td>0</td><td>A1</td><td style="color:var(--amber)">TRANSISI</td></tr>
                <tr><td>R404A</td><td>HFC Blend (R125/143a/134a)</td><td>HFC</td><td>−46,5</td><td><span class="badge-gwp gwp-high">3922</span></td><td>0</td><td>A1</td><td style="color:var(--amber)">FASE OUT</td></tr>
                <tr><td>R410A</td><td>R32/R125 (50/50)</td><td>HFC</td><td>−51,6</td><td><span class="badge-gwp gwp-high">2088</span></td><td>0</td><td>A1</td><td style="color:var(--amber)">TRANSISI</td></tr>
                <tr><td>R32</td><td>Difluoromethane CH₂F₂</td><td>HFC</td><td>−51,7</td><td><span class="badge-gwp gwp-med">675</span></td><td>0</td><td>A2L</td><td style="color:var(--green)">POPULER</td></tr>
                <tr><td>R290</td><td>Propane C₃H₈</td><td>HC</td><td>−42,1</td><td><span class="badge-gwp gwp-low">3</span></td><td>0</td><td>A3</td><td style="color:var(--green)">NATURAL ✓</td></tr>
                <tr><td>R600a</td><td>Isobutane C₄H₁₀</td><td>HC</td><td>−11,7</td><td><span class="badge-gwp gwp-low">3</span></td><td>0</td><td>A3</td><td style="color:var(--green)">NATURAL ✓</td></tr>
                <tr><td>R717</td><td>Ammonia NH₃</td><td>Natural</td><td>−33,3</td><td><span class="badge-gwp gwp-low">0</span></td><td>0</td><td>B2L</td><td style="color:var(--green)">NATURAL ✓</td></tr>
                <tr><td>R744</td><td>CO₂ (Carbon Dioxide)</td><td>Natural</td><td>−78,4*</td><td><span class="badge-gwp gwp-low">1</span></td><td>0</td><td>A1</td><td style="color:var(--green)">NATURAL ✓</td></tr>
                <tr><td>R1234yf</td><td>2,3,3,3-Tetrafluoropropene</td><td>HFO</td><td>−29,4</td><td><span class="badge-gwp gwp-low">4</span></td><td>0</td><td>A2L</td><td style="color:var(--green)">BARU ✓</td></tr>
                <tr><td>R1234ze</td><td>Trans-1,3,3,3-Tetrafluoropropene</td><td>HFO</td><td>−18,9</td><td><span class="badge-gwp gwp-low">7</span></td><td>0</td><td>A2L</td><td style="color:var(--green)">BARU ✓</td></tr>
                <tr><td>R454B</td><td>R32/R1234yf (68,9/31,1)</td><td>HFO-blend</td><td>−51,8</td><td><span class="badge-gwp gwp-low">466</span></td><td>0</td><td>A2L</td><td style="color:var(--green)">BARU ✓</td></tr>
              </tbody>
            </table>
            <div style="margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;align-items:center">
              <span style="font-family:'Share Tech Mono',monospace;font-size:0.6rem;color:var(--dim)">KEAMANAN:</span>
              <span class="tag">A = Toksisitas rendah</span>
              <span class="tag">B = Toksisitas tinggi</span>
              <span class="tag">1 = Tidak mudah terbakar</span>
              <span class="tag">2L = Mudah terbakar rendah</span>
              <span class="tag">3 = Mudah terbakar</span>
              <span style="font-family:'Share Tech Mono',monospace;font-size:0.6rem;color:var(--dim)">*CO₂: subl. point (-78,4°C), T_kritis=31,1°C, P_kritis=73,8 bar</span>
            </div>
          </div>
        </div>

        <!-- Pelumas -->
        <div class="card accent-amber">
          <div class="card-header"><div class="card-icon">🛢️</div><div><div class="card-title">Minyak Pelumas (Kompressoröl)</div><div class="card-subtitle">Bahan Pelarut / Schmiermittel</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Mineral Oil (MO)</strong>: R22 lama; tidak miscible dengan HFC</li>
              <li><strong>Alkylbenzene (AB)</strong>: transisi R22→R134a; semi-synthetic</li>
              <li><strong>Polyol Ester (POE)</strong>: untuk HFC/HFO; miscible; hygroscopic</li>
              <li><strong>Polyalkylene Glycol (PAG)</strong>: R744, mobilitas CO₂; mobil AC</li>
              <li><strong>Polyvinyl Ether (PVE)</strong>: HFC kompatibel; rendah kelembaban</li>
              <li><strong>Polialfa Olefin (PAO)</strong>: sintesis; screw kompresor</li>
            </ul>
            <div class="formula-box" style="margin-top:6px">
              <div class="formula-label">Viskositas — Hukum Vogel-Fulcher</div>
              <div class="formula-eq">ln(η) = A + B/(T − C)</div>
              <div class="formula-desc">Viscosity Index (VI) harus tinggi; ISO 32–68 untuk kompresor</div>
            </div>
          </div>
        </div>

        <!-- Absorpsi Pasangan -->
        <div class="card accent-green">
          <div class="card-header"><div class="card-icon">⚗️</div><div><div class="card-title">Pasangan Refrigeran-Absorben</div><div class="card-subtitle">Kältemittel-Absorbenspaar</div></div></div>
          <div class="card-body">
            <table class="ref-table">
              <thead><tr><th>Refrigeran</th><th>Absorben</th><th>Aplikasi</th><th>T_gen (°C)</th></tr></thead>
              <tbody>
                <tr><td>H₂O</td><td>LiBr (Lithium Bromida)</td><td>AC & chiller besar; T>0°C</td><td>80–160</td></tr>
                <tr><td>NH₃</td><td>H₂O (Air)</td><td>Industri dingin; T< 0°C</td><td>100–180</td></tr>
                <tr><td>R22</td><td>DMEU</td><td>Riset</td><td>60–80</td></tr>
                <tr><td>H₂O</td><td>Zeolit</td><td>Adsorpsi; solar cooling</td><td>70–200</td></tr>
                <tr><td>H₂O</td><td>Silica Gel</td><td>Adsorpsi; waste heat</td><td>50–80</td></tr>
              </tbody>
            </table>
            <div class="formula-box" style="margin-top:8px">
              <div class="formula-label">Konsentrasi Larutan</div>
              <div class="formula-eq">ξ = m_ref / (m_ref + m_abs)  [kg/kg]</div>
              <div class="formula-desc">ξ_stark > ξ_schwach (gen. melepas refrigeran)</div>
            </div>
          </div>
        </div>

        <!-- F-Gas Regulasi -->
        <div class="card accent-red">
          <div class="card-header"><div class="card-icon">🌍</div><div><div class="card-title">Regulasi F-Gas & Montreal Protocol</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Montreal Protocol (1987)</strong>: CFC & HCFC dilarang bertahap</li>
              <li><strong>Kigali Amendment (2016)</strong>: HFC phase-down 80–85%</li>
              <li><strong>EU F-Gas Regulation 2024</strong>: GWP phase-down ketat</li>
              <li><strong>ODP</strong> = Ozone Depletion Potential (referensi R11=1,0)</li>
              <li><strong>GWP-100</strong> = Global Warming Potential, 100 tahun, CO₂ basis</li>
              <li><strong>TEWI</strong> = Total Equivalent Warming Impact</li>
            </ul>
            <div class="formula-box" style="margin-top:6px">
              <div class="formula-label">TEWI</div>
              <div class="formula-eq">TEWI = GWP·m·L·n + GWP·m(1−α) + n·E·β</div>
              <div class="formula-desc">L=kebocoran/tahun, n=umur, E=energi, β=faktor emisi grid</div>
            </div>
          </div>
        </div>

      </div>
    `
  },

  {
    id: 'diagram',
    icon: '📈',
    label: 'DIAGRAM P-h & T-s',
    badge: 'RUMUS',
    accentClass: 'accent-green',
    render: () => `
      <div class="section-header">
        <div class="section-title">📈 Diagram Mollier, P-h & T-s</div>
        <div class="section-line"></div>
      </div>
      <div class="card-grid">

        <div class="card accent-green full">
          <div class="card-header"><div class="card-icon">📉</div><div><div class="card-title">Diagram P-h (Mollier / Druck-Enthalpie)</div></div></div>
          <div class="card-body">
            <div class="schematic">
              <svg viewBox="0 0 640 320" style="max-height:320px">
                <rect width="640" height="320" fill="#050d1a" rx="6"/>
                <!-- Axes -->
                <line x1="60" y1="280" x2="610" y2="280" stroke="#2a4a6a" stroke-width="1.5"/>
                <line x1="60" y1="280" x2="60" y2="20" stroke="#2a4a6a" stroke-width="1.5"/>
                <!-- Axis labels -->
                <text x="335" y="300" text-anchor="middle" fill="#5a7a99" font-family="Share Tech Mono,monospace" font-size="9">h [kJ/kg] — Spezifische Enthalpie</text>
                <text x="18" y="160" text-anchor="middle" fill="#5a7a99" font-family="Share Tech Mono,monospace" font-size="9" transform="rotate(-90,18,160)">P [bar] — Druck</text>

                <!-- Saturation dome -->
                <path d="M 120,260 Q 200,80 340,50 Q 470,30 530,140 Q 560,200 540,260" fill="none" stroke="#00d4ff" stroke-width="2" stroke-dasharray="none"/>
                <!-- Fill liquid zone -->
                <path d="M 120,260 Q 200,80 340,50 L 340,260 Z" fill="rgba(0,212,255,0.04)"/>
                <!-- Fill two-phase zone -->
                <path d="M 340,50 Q 470,30 530,140 Q 560,200 540,260 L 340,260 Z" fill="rgba(0,212,255,0.03)"/>
                <!-- Critical point -->
                <circle cx="340" cy="50" r="5" fill="#00d4ff"/>
                <text x="348" y="48" fill="#00d4ff" font-size="8" font-family="Share Tech Mono,monospace">Kritischer Punkt</text>

                <!-- SKU Cycle -->
                <polyline points="150,240 150,110 420,110 420,240 150,240" fill="none" stroke="#ffb347" stroke-width="2.5" stroke-linejoin="round"/>

                <!-- State points with labels -->
                <!-- Point 1 -->
                <circle cx="150" cy="240" r="5" fill="#b06aff" stroke="#050d1a" stroke-width="1"/>
                <text x="130" y="255" fill="#b06aff" font-size="9" font-family="Orbitron,monospace" font-weight="700">①</text>
                <text x="100" y="268" fill="#b06aff" font-size="7" font-family="Share Tech Mono,monospace">Uap Jenuh</text>

                <!-- Point 2 -->
                <circle cx="150" cy="110" r="5" fill="#ff4d6d" stroke="#050d1a" stroke-width="1"/>
                <text x="130" y="108" fill="#ff4d6d" font-size="9" font-family="Orbitron,monospace" font-weight="700">②</text>
                <text x="95" y="100" fill="#ff4d6d" font-size="7" font-family="Share Tech Mono,monospace">Uap Panas Lanjut</text>
                <!-- Isentropic line from 1 to 2 -->
                <path d="M 150,240 Q 145,175 150,110" fill="none" stroke="#b06aff" stroke-width="2" stroke-dasharray="4,3"/>

                <!-- Point 3 -->
                <circle cx="420" cy="110" r="5" fill="#ffb347" stroke="#050d1a" stroke-width="1"/>
                <text x="424" y="108" fill="#ffb347" font-size="9" font-family="Orbitron,monospace" font-weight="700">③</text>
                <text x="424" y="100" fill="#ffb347" font-size="7" font-family="Share Tech Mono,monospace">Cairan Jenuh</text>

                <!-- Point 4 -->
                <circle cx="420" cy="240" r="5" fill="#00d4ff" stroke="#050d1a" stroke-width="1"/>
                <text x="424" y="255" fill="#00d4ff" font-size="9" font-family="Orbitron,monospace" font-weight="700">④</text>
                <text x="424" y="268" fill="#00d4ff" font-size="7" font-family="Share Tech Mono,monospace">2-Phase</text>

                <!-- Arrows on cycle -->
                <polygon points="148,175 153,165 158,175" fill="#b06aff" transform="rotate(0)"/>
                <polygon points="275,107 285,112 275,117" fill="#ff4d6d"/>
                <polygon points="418,175 423,185 428,175" fill="#ffb347" transform="rotate(180,423,175)"/>
                <polygon points="285,243 275,238 285,233" fill="#00d4ff"/>

                <!-- Process labels -->
                <text x="70" y="178" fill="#b06aff" font-size="7.5" font-family="Exo 2,sans-serif" font-weight="700">KOMPRESI</text>
                <text x="70" y="188" fill="#b06aff" font-size="7" font-family="Share Tech Mono,monospace">isentropik</text>

                <text x="265" y="100" text-anchor="middle" fill="#ff4d6d" font-size="7.5" font-family="Exo 2,sans-serif" font-weight="700">KONDENSASI</text>
                <text x="265" y="110" text-anchor="middle" fill="#ff4d6d" font-size="7" font-family="Share Tech Mono,monospace">isobar P_hoch</text>

                <text x="455" y="178" fill="#ffb347" font-size="7.5" font-family="Exo 2,sans-serif" font-weight="700">EKSPANSI</text>
                <text x="455" y="188" fill="#ffb347" font-size="7" font-family="Share Tech Mono,monospace">isentalp</text>

                <text x="265" y="262" text-anchor="middle" fill="#00d4ff" font-size="7.5" font-family="Exo 2,sans-serif" font-weight="700">EVAPORASI</text>
                <text x="265" y="272" text-anchor="middle" fill="#00d4ff" font-size="7" font-family="Share Tech Mono,monospace">isobar P_niedrig</text>

                <!-- Pressure lines -->
                <line x1="60" y1="110" x2="80" y2="110" stroke="#ff4d6d" stroke-width="1" opacity="0.5"/>
                <text x="62" y="108" fill="#ff4d6d" font-size="7" font-family="Share Tech Mono,monospace">P_H</text>
                <line x1="60" y1="240" x2="80" y2="240" stroke="#00d4ff" stroke-width="1" opacity="0.5"/>
                <text x="62" y="253" fill="#00d4ff" font-size="7" font-family="Share Tech Mono,monospace">P_L</text>

                <!-- Zones label -->
                <text x="90" y="170" fill="#2a6a8a" font-size="8" font-family="Exo 2,sans-serif">SUBCOOLED</text>
                <text x="90" y="180" fill="#2a6a8a" font-size="8" font-family="Exo 2,sans-serif">LIQUID</text>
                <text x="310" y="180" fill="#1a4a6a" font-size="9" text-anchor="middle" font-family="Exo 2,sans-serif">2-PHASE</text>
                <text x="560" y="100" fill="#2a6a8a" font-size="8" font-family="Exo 2,sans-serif">SUPERHEATED</text>
                <text x="560" y="110" fill="#2a6a8a" font-size="8" font-family="Exo 2,sans-serif">VAPOR</text>
              </svg>
            </div>
          </div>
        </div>

        <!-- Rumus Lengkap -->
        <div class="card accent-cyan">
          <div class="card-header"><div class="card-icon">🧮</div><div><div class="card-title">Rumus Analisis Siklus SKU</div></div></div>
          <div class="card-body">
            <div class="formula-box">
              <div class="formula-label">Kapasitas Pendinginan Spesifik</div>
              <div class="formula-eq">q₀ = h₁ − h₄  [kJ/kg]</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">Kerja Kompresi Spesifik</div>
              <div class="formula-eq">w = h₂ − h₁  [kJ/kg]</div>
              <div class="formula-desc">Kompresi isentropik: s₂ = s₁</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">Panas Kondensasi Spesifik</div>
              <div class="formula-eq">q_K = h₂ − h₃  [kJ/kg]</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">COP Refrigerator</div>
              <div class="formula-eq">ε_R = q₀/w = (h₁−h₄)/(h₂−h₁)</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">Laju Alir Massa</div>
              <div class="formula-eq">ṁ = Q̇₀ / q₀  [kg/s]</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">COP Carnot (Batas Atas)</div>
              <div class="formula-eq">ε_Carnot = T_L / (T_H − T_L)</div>
              <div class="formula-desc">T dalam Kelvin; ε_real < ε_Carnot selalu</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">Efisiensi Relatif</div>
              <div class="formula-eq">η_rel = ε_R / ε_Carnot</div>
            </div>
          </div>
        </div>

        <!-- Superheat & Subcooling -->
        <div class="card accent-frost">
          <div class="card-header"><div class="card-icon">📐</div><div><div class="card-title">Efek Superheat & Subcooling</div><div class="card-subtitle">Überhitzung & Unterkühlung</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Superheat (Überhitzung)</strong>: T₁ > T_sat(P₀); melindungi kompressor dari liquid; +SH → +h₁ → +w</li>
              <li><strong>Subcooling (Unterkühlung)</strong>: T₃ < T_sat(P_K); +SC → −h₄ → +q₀; ↑COP</li>
            </ul>
            <div class="formula-box" style="margin-top:8px">
              <div class="formula-label">Pengaruh Subcooling thd COP</div>
              <div class="formula-eq">Δq₀ = c_{p,L} · ΔT_SC  [kJ/kg]</div>
              <div class="formula-desc">ΔT_SC = 1 K ≈ +0,5% COP (R134a)</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">Internal Heat Exchanger</div>
              <div class="formula-eq">Q̇_IHX = ṁ·(h₁'−h₁) = ṁ·(h₃−h₃')</div>
              <div class="formula-desc">1'=setelah IHX suction; 3'=setelah IHX liquid</div>
            </div>
          </div>
        </div>

        <!-- Beban termal -->
        <div class="card accent-amber">
          <div class="card-header"><div class="card-icon">🏗️</div><div><div class="card-title">Perhitungan Beban Termal</div><div class="card-subtitle">Kühllastberechnung</div></div></div>
          <div class="card-body">
            <div class="formula-box">
              <div class="formula-label">Transmisi melalui Dinding</div>
              <div class="formula-eq">Q̇_T = U · A · ΔT  [W]</div>
              <div class="formula-desc">U = nilai U (W/m²K), A = luas (m²)</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">Nilai U Dinding Berlapis</div>
              <div class="formula-eq">1/U = 1/α_i + Σ(d_j/λ_j) + 1/α_a</div>
              <div class="formula-desc">α = koefisien konveksi, d = tebal, λ = konduktivitas</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">Beban Pendinginan Total</div>
              <div class="formula-eq">Q̇_tot = Q̇_T + Q̇_inf + Q̇_int + Q̇_prod</div>
              <div class="formula-desc">inf=infiltrasi, int=internal (manusia+alat), prod=produk</div>
            </div>
            <div class="formula-box">
              <div class="formula-label">Kalor Produk</div>
              <div class="formula-eq">Q̇_prod = ṁ_prod · c_p · ΔT / Δt</div>
            </div>
          </div>
        </div>

      </div>
    `
  },

  {
    id: 'khusus',
    icon: '🏭',
    label: 'SISTEM KHUSUS',
    badge: '6',
    accentClass: 'accent-amber',
    render: () => `
      <div class="section-header">
        <div class="section-title">🏭 Sistem Pendingin Khusus & Aplikasi</div>
        <div class="section-line"></div>
      </div>
      <div class="card-grid">

        <div class="card accent-cyan">
          <div class="card-header"><div class="card-icon">🏢</div><div><div class="card-title">HVAC & Chiller System</div><div class="card-subtitle">Klimatisierung & Kälteerzeugung</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Chiller</strong>: Water-Cooled (WCWC) vs Air-Cooled (ACWC)</li>
              <li><strong>AHU</strong> (Air Handling Unit): mixing, filter, coil, humidifier, fan</li>
              <li><strong>FCU</strong> (Fan Coil Unit): terminal unit di ruangan</li>
              <li><strong>VRF/VRV</strong>: Variable Refrigerant Flow/Volume; inverter multi-split</li>
              <li><strong>Cooling Tower</strong>: heat rejection untuk water-cooled chiller</li>
              <li><strong>BAS</strong>: Building Automation System; PLC/DDC control</li>
            </ul>
            <div class="formula-box" style="margin-top:6px">
              <div class="formula-label">Chiller Efficiency (IPLV)</div>
              <div class="formula-eq">IPLV = 0,01A + 0,42B + 0,45C + 0,12D</div>
              <div class="formula-desc">A=100%, B=75%, C=50%, D=25% load (COP AHRI)</div>
            </div>
          </div>
        </div>

        <div class="card accent-frost">
          <div class="card-header"><div class="card-icon">🧊</div><div><div class="card-title">Cold Storage & Freezer</div><div class="card-subtitle">Kühlhaus & Tiefkühlanlage</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>+2°C~+8°C</strong>: chiller store (buah, sayur, susu)</li>
              <li><strong>−18°C~−22°C</strong>: blast freezer, frozen food</li>
              <li><strong>−30°C~−40°C</strong>: quick freezer; IQF (Individual Quick Freezing)</li>
              <li><strong>Panel Insulasi</strong>: PIR/PUR foam; 100-150mm; U ≈ 0,25 W/m²K</li>
              <li><strong>Defrost</strong>: hot gas / electric / water defrost</li>
            </ul>
            <div class="formula-box" style="margin-top:6px">
              <div class="formula-label">Waktu Pembekuan (Plank)</div>
              <div class="formula-eq">t = (ρ·L/(T_f−T_m)) · (Pa/h + Ra²/λ)</div>
              <div class="formula-desc">L=panas laten, P&R=konstanta Plank</div>
            </div>
          </div>
        </div>

        <div class="card accent-green">
          <div class="card-header"><div class="card-icon">🔬</div><div><div class="card-title">Kriogenik & Gas Cair</div><div class="card-subtitle">Kryotechnik</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>LNG</strong>: −162°C; Liquefied Natural Gas; Linde/SMR/C3MR cycle</li>
              <li><strong>LN₂</strong>: −196°C; cryopreservasi, metalurgi, pangan</li>
              <li><strong>LOX</strong>: −183°C; medis & industri</li>
              <li><strong>LHe</strong>: −269°C; MRI, akselerator partikel</li>
              <li><strong>Efek Joule-Thomson</strong>: ekspansi isentalp gas nyata</li>
            </ul>
            <div class="formula-box" style="margin-top:6px">
              <div class="formula-label">Koefisien Joule-Thomson</div>
              <div class="formula-eq">μ_JT = (∂T/∂P)_h = (T·(∂v/∂T)_P − v) / c_p</div>
              <div class="formula-desc">μ_JT > 0: pendinginan; μ_JT < 0: pemanasan</div>
            </div>
          </div>
        </div>

        <div class="card accent-red">
          <div class="card-header"><div class="card-icon">🚗</div><div><div class="card-title">Refrigerasi Mobile & Khusus</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Automotive AC</strong>: R1234yf (baru), R134a (lama); belt-driven compressor / electric</li>
              <li><strong>Reefer Container</strong>: refrigerated container −25°C; R452A</li>
              <li><strong>Medical Refrigerator</strong>: +2/+8°C; vaksin; ultra-low −86°C</li>
              <li><strong>Server Room Cooling</strong>: CRAC/CRAH; N+1 redundancy</li>
              <li><strong>Process Cooling</strong>: industri kimia; recirculating chiller</li>
            </ul>
          </div>
        </div>

        <div class="card accent-purple">
          <div class="card-header"><div class="card-icon">☀️</div><div><div class="card-title">Solar Cooling & Tri-Generation</div><div class="card-subtitle">Solare Kühlung & CCHP</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>Solar Absorption</strong>: parabolic trough / evacuated tube → generator absorpsi</li>
              <li><strong>PV + Compressor</strong>: DC compressor + PV panel; off-grid</li>
              <li><strong>CCHP</strong>: Combined Cooling, Heating & Power; gas engine + absorpsi</li>
              <li><strong>DOAS</strong>: Dedicated Outdoor Air System; dehumidification</li>
            </ul>
          </div>
        </div>

        <div class="card accent-amber">
          <div class="card-header"><div class="card-icon">🌡️</div><div><div class="card-title">District Cooling</div><div class="card-subtitle">Fernkälte</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li>Sentral chiller plant melayani banyak gedung</li>
              <li>CHW distribution: supply 6°C / return 12°C</li>
              <li>Thermal Energy Storage (TES): ice/chilled water tank</li>
              <li>Efisiensi tinggi: COP 5–7 vs 2,5–3 lokal</li>
              <li>Contoh: Marina Bay Singapore, Masdar City</li>
            </ul>
            <div class="formula-box" style="margin-top:6px">
              <div class="formula-label">TES Ice Storage</div>
              <div class="formula-eq">Q_tes = ρ_ice · V · (c_p·ΔT + L_f)</div>
              <div class="formula-desc">L_f = 334 kJ/kg (kalor lebur es)</div>
            </div>
          </div>
        </div>

      </div>
    `
  },

  {
    id: 'perawatan',
    icon: '🔨',
    label: 'PERAWATAN & K3',
    badge: 'SOP',
    accentClass: 'accent-red',
    render: () => `
      <div class="section-header">
        <div class="section-title">🔨 Perawatan Mesin Pendingin & K3</div>
        <div class="section-line"></div>
      </div>
      <div class="card-grid">

        <div class="card full accent-red">
          <div class="card-header"><div class="card-icon">📋</div><div><div class="card-title">SOP Perawatan Berkala</div><div class="card-subtitle">Wartungsplan Kälteanlagen</div></div></div>
          <div class="card-body">
            <div class="topic-grid" style="grid-template-columns:repeat(3,1fr)">
              ${[
                {t:'Harian',s:'Cek tekanan HP/LP\nCek suhu evaporasi/kondensasi\nCek suara kompressor\nCek level oli\nLogsheet operasi'},
                {t:'Mingguan',s:'Bersih kondenser (udara)\nCek filter strainer\nCek sight glass\nVerifikasi superheat/subcooling\nCek getaran & suhu motor'},
                {t:'Bulanan',s:'Analisis minyak\nCek working pressure\nLeak check (detektor)\nBersih evaporator fin\nCek belt tension (jika ada)'},
                {t:'3-Bulanan',s:'Service filter dryer\nCek koneksi listrik\nCalibrate pressure switch\nCek katup ekspansi\nCek safety valve'},
                {t:'6-Bulanan',s:'Bersih kondenser total\nOverhaul kompresor (kecil)\nAnalisis refrigeran\nCek kapasitor motor\nUpdate log dokumen'},
                {t:'Tahunan',s:'Major overhaul (besar)\nGanti seal kompresor\nFlush sistem\nPressure test\nSertifikasi ulang (jika wajib)'}
              ].map(item=>`
                <div class="topic-item" onclick="this.classList.toggle('expanded')">
                  <div class="t-title">🗓 ${item.t}</div>
                  <div class="t-sub">${item.s.replace(/\n/g,'<br>')}</div>
                </div>
              `).join('')}
            </div>
          </div>
        </div>

        <div class="card accent-amber">
          <div class="card-header"><div class="card-icon">🔍</div><div><div class="card-title">Prosedur Pengisian Refrigeran</div><div class="card-subtitle">Kältemittelservice</div></div></div>
          <div class="card-body">
            <div class="process-flow" style="flex-direction:column;gap:6px">
              ${[
                {n:'01',t:'Vakum Sistem',d:'Evakuasi ≥ 500 µmHg (~ 30 in Hg) selama ≥ 30 menit; gunakan vacuum gauge digital'},
                {n:'02',t:'Leak Test',d:'Nitrogen pressure test; halide/electrochemical leak detector; ≥ 30 menit tahan'},
                {n:'03',t:'Charge Refrigeran',d:'Liquid dari receiver; weigh-in method; gunakan manifold gauge set'},
                {n:'04',t:'Verifikasi Operasi',d:'Cek superheat, subcooling, ΔT, ampere motor, suhu head kompressor'},
              ].map(s=>`<div style="display:flex;gap:10px;align-items:flex-start">
                <div style="background:rgba(255,179,71,0.1);border:1px solid rgba(255,179,71,0.3);border-radius:4px;padding:4px 8px;font-family:'Orbitron',monospace;font-size:0.6rem;color:var(--amber);min-width:32px;text-align:center">${s.n}</div>
                <div><div style="font-size:0.7rem;font-weight:700;color:var(--ice)">${s.t}</div><div style="font-size:0.62rem;color:var(--dim);margin-top:2px">${s.d}</div></div>
              </div>`).join('')}
            </div>
          </div>
        </div>

        <div class="card accent-purple">
          <div class="card-header"><div class="card-icon">⚠️</div><div><div class="card-title">Keselamatan & K3 (Arbeitssicherheit)</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>APD</strong>: kacamata pelindung, sarung tangan kryogenic/kimia, sepatu safety</li>
              <li><strong>NH₃ (R717)</strong>: toksik (TLV 25 ppm); detector gas wajib; masker full-face SCBA</li>
              <li><strong>HC (R290/R600a)</strong>: mudah terbakar; no spark; ATEX tools</li>
              <li><strong>CO₂ (R744)</strong>: asphyxiation risk; ventilasi ruangan; ≥ 3% vol bahaya</li>
              <li><strong>HFC/HFO tinggi</strong>: ruang terbatas; ventilasi wajib</li>
              <li><strong>Tekanan tinggi</strong>: safety relief valve; never braze closed system</li>
              <li><strong>Kelistrikan</strong>: LOTO (Lockout/Tagout) sebelum service</li>
            </ul>
            <div class="formula-box" style="margin-top:6px">
              <div class="formula-label">Tekanan Tes (DIN EN 378)</div>
              <div class="formula-eq">P_test = 1,1 × P_max,allowable  [bar]</div>
            </div>
          </div>
        </div>

        <div class="card accent-green">
          <div class="card-header"><div class="card-icon">🛠️</div><div><div class="card-title">Diagnosa Kerusakan Umum</div><div class="card-subtitle">Fehlerdiagnose</div></div></div>
          <div class="card-body">
            <table class="ref-table">
              <thead><tr><th>Gejala</th><th>Kemungkinan Penyebab</th><th>Penanganan</th></tr></thead>
              <tbody>
                <tr><td>LP terlalu rendah</td><td>Kekurangan refrigeran / TEV terlalu tertutup</td><td>Cek kebocoran; adjust TXV</td></tr>
                <tr><td>HP terlalu tinggi</td><td>Kondenser kotor / kipas mati / overcharge</td><td>Bersih kondenser; cek kipas</td></tr>
                <tr><td>Superheat tinggi</td><td>TEV kurang buka / kurang refrigeran</td><td>Adjust TXV; leak check</td></tr>
                <tr><td>Liquid slugging</td><td>Overcharge / TXV terlalu buka</td><td>Kurangi charge; adjust TXV</td></tr>
                <tr><td>Frost evaporator</td><td>Defrost gagal / filter kotor / udara kurang</td><td>Manual defrost; cek timer</td></tr>
                <tr><td>Kompressor panas</td><td>Discharge terlalu tinggi / oil kurang</td><td>Cek ratio P; cek oil level</td></tr>
              </tbody>
            </table>
          </div>
        </div>

      </div>
    `
  },

  {
    id: 'lingkungan',
    icon: '🌿',
    label: 'LINGKUNGAN & REGULASI',
    badge: 'ECO',
    accentClass: 'accent-green',
    render: () => `
      <div class="section-header">
        <div class="section-title">🌿 Lingkungan, Limbah & Regulasi</div>
        <div class="section-line"></div>
      </div>
      <div class="card-grid">

        <div class="card accent-green full">
          <div class="card-header"><div class="card-icon">♻️</div><div><div class="card-title">Pengelolaan Limbah Refrigeran</div><div class="card-subtitle">Kältemittelentsorgung — DIN EN 378 / PP 22 Tahun 2021</div></div></div>
          <div class="card-body">
            <div class="topic-grid" style="grid-template-columns:repeat(4,1fr)">
              ${[
                {t:'Recovery',s:'Penyedotan refrigeran ke tangki recovery; DILARANG dilepas ke udara; wajib menggunakan recovery machine'},
                {t:'Recycling',s:'Dibersihkan dari oil & kontaminan; digunakan kembali di sistem yang sama'},
                {t:'Reclaiming',s:'Diproses ulang hingga murni standar ARI 700; dapat dijual kembali sebagai new refrigerant'},
                {t:'Disposal',s:'Refrigeran rusak/terlarang dikirim ke fasilitas pengolahan resmi; incinerasi atau neutralisasi kimia'},
              ].map(item=>`
                <div class="topic-item" onclick="this.classList.toggle('expanded')">
                  <div class="t-title">${item.t}</div>
                  <div class="t-sub">${item.s}</div>
                </div>
              `).join('')}
            </div>
            <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:12px">
              <div class="formula-box">
                <div class="formula-label">Laju Kebocoran Tahunan</div>
                <div class="formula-eq">L = (m_pengisian − m_inventory) / m_sistem</div>
                <div class="formula-desc">EU F-Gas: wajib log; threshold per tonCO₂eq</div>
              </div>
              <div class="formula-box">
                <div class="formula-label">Emisi CO₂ Ekuivalen</div>
                <div class="formula-eq">E_CO₂eq = m_leaked × GWP  [tCO₂eq]</div>
              </div>
              <div class="formula-box">
                <div class="formula-label">LCCP (Life Cycle)</div>
                <div class="formula-eq">LCCP = TEWI + E_manufacturing</div>
                <div class="formula-desc">Indicator lingkungan siklus hidup penuh</div>
              </div>
            </div>
          </div>
        </div>

        <div class="card accent-cyan">
          <div class="card-header"><div class="card-icon">📜</div><div><div class="card-title">Regulasi Internasional & Nasional</div></div></div>
          <div class="card-body">
            <table class="ref-table">
              <thead><tr><th>Regulasi</th><th>Scope</th><th>Kewajiban Utama</th></tr></thead>
              <tbody>
                <tr><td>Montreal Protocol</td><td>Global</td><td>Phase-out CFC, HCFC, HFC (Kigali)</td></tr>
                <tr><td>EU F-Gas Reg 842/2006</td><td>EU</td><td>Leak check, log, sertifikasi teknisi</td></tr>
                <tr><td>EU F-Gas 517/2014</td><td>EU</td><td>GWP limits, phase-down schedule</td></tr>
                <tr><td>EU F-Gas 2024 (baru)</td><td>EU</td><td>HFO mandatory, 2025–2050 schedule</td></tr>
                <tr><td>PerMenLHK P.73/2019</td><td>Indonesia</td><td>Pengendalian zat ODS</td></tr>
                <tr><td>PP 22/2021</td><td>Indonesia</td><td>Pengelolaan LB3 termasuk refrigeran</td></tr>
                <tr><td>SNI 8011</td><td>Indonesia</td><td>Sistem pendingin – persyaratan keamanan</td></tr>
                <tr><td>DIN EN 378</td><td>Jerman/EU</td><td>Persyaratan keamanan & lingkungan</td></tr>
              </tbody>
            </table>
          </div>
        </div>

        <div class="card accent-amber">
          <div class="card-header"><div class="card-icon">🏆</div><div><div class="card-title">Efisiensi Energi & Sertifikasi</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>EER</strong> (Energy Efficiency Ratio) = Q̇₀ [BTU/h] / P [W]; AC rating</li>
              <li><strong>SEER</strong> (Seasonal EER): kinerja sepanjang musim</li>
              <li><strong>COP</strong>: metric internasional (SI unit)</li>
              <li><strong>IPLV/NPLV</strong>: chiller part-load performance</li>
              <li><strong>Green Building</strong>: LEED, GREENSHIP; poin dari refrigeran rendah GWP</li>
              <li><strong>EU Ecodesign</strong>: minimum EER requirements per product category</li>
              <li><strong>ISO 50001</strong>: energy management system</li>
            </ul>
            <div class="formula-box" style="margin-top:6px">
              <div class="formula-label">EER ↔ COP</div>
              <div class="formula-eq">COP = EER / 3,412  (1 W = 3,412 BTU/h)</div>
            </div>
          </div>
        </div>

        <div class="card accent-purple">
          <div class="card-header"><div class="card-icon">🎓</div><div><div class="card-title">Sertifikasi Teknisi</div><div class="card-subtitle">Techniker-Zertifizierung</div></div></div>
          <div class="card-body">
            <ul class="item-list">
              <li><strong>EU Cat. I</strong>: semua refrigeran, sistem tidak terbatas</li>
              <li><strong>EU Cat. II</strong>: ≤ 3 kg charge (hermetic < 6 kg)</li>
              <li><strong>EU Cat. III</strong>: peralatan hermetic < 3 kg</li>
              <li><strong>RSES CM/CMS</strong>: Refrigeration Service Engineers Society (AS)</li>
              <li><strong>EPA 608</strong>: sertifikasi AS untuk refrigeran</li>
              <li><strong>Indonesia</strong>: BNSP / LSP HVACR; SKK Teknik Pendingin</li>
              <li><strong>Jerman</strong>: Kältemittel-Schein (§6 ChemKlimaschutzV)</li>
            </ul>
          </div>
        </div>

      </div>
    `
  },

  {
    id: 'rumus',
    icon: '📐',
    label: 'RUMUS LENGKAP',
    badge: '40+',
    accentClass: 'accent-amber',
    render: () => `
      <div class="section-header">
        <div class="section-title">📐 Kompendium Rumus Teknik Pendingin</div>
        <div class="section-line"></div>
      </div>
      <div class="card-grid">

        <div class="card accent-cyan">
          <div class="card-header"><div class="card-icon">🔢</div><div><div class="card-title">Termodinamika Dasar</div></div></div>
          <div class="card-body">
            <div class="formula-box"><div class="formula-label">Hukum I (Energi)</div><div class="formula-eq">Q − W = ΔU  atau  q − w = Δu [kJ/kg]</div></div>
            <div class="formula-box"><div class="formula-label">Entalpi</div><div class="formula-eq">h = u + p·v  [kJ/kg]</div></div>
            <div class="formula-box"><div class="formula-label">Entropi (reversibel)</div><div class="formula-eq">ds = δq_rev / T  [kJ/kg·K]</div></div>
            <div class="formula-box"><div class="formula-label">Persamaan Gas Ideal</div><div class="formula-eq">p·v = R_s·T  ;  R_s = R̄/M</div><div class="formula-desc">R̄=8,314 J/mol·K, M=massa molar</div></div>
            <div class="formula-box"><div class="formula-label">Kalor Laten Penguapan</div><div class="formula-eq">r = h'' − h'  [kJ/kg] (Clausius-Clapeyron)</div></div>
            <div class="formula-box"><div class="formula-label">Clausius-Clapeyron</div><div class="formula-eq">dP/dT = r / (T·(v''−v'))  [Pa/K]</div></div>
          </div>
        </div>

        <div class="card accent-frost">
          <div class="card-header"><div class="card-icon">💧</div><div><div class="card-title">Perpindahan Kalor</div><div class="card-subtitle">Wärmeübertragung</div></div></div>
          <div class="card-body">
            <div class="formula-box"><div class="formula-label">Konduktivitas (Fourier)</div><div class="formula-eq">q̇ = −λ · (dT/dx)  [W/m²]</div></div>
            <div class="formula-box"><div class="formula-label">Konveksi (Newton)</div><div class="formula-eq">q̇ = α · (T_w − T_f)  [W/m²]</div></div>
            <div class="formula-box"><div class="formula-label">Bil. Nusselt (paksa)</div><div class="formula-eq">Nu = α·d/λ = f(Re, Pr)</div></div>
            <div class="formula-box"><div class="formula-label">Nilai U Overall</div><div class="formula-eq">1/U = 1/α_i + Σ(d/λ) + (fouling) + 1/α_a</div></div>
            <div class="formula-box"><div class="formula-label">NTU-Effectiveness</div><div class="formula-eq">ε = Q̇/Q̇_max  ;  NTU = U·A/Ċ_min</div></div>
            <div class="formula-box"><div class="formula-label">Kondensasi film (Nusselt)</div><div class="formula-eq">α = 0,725·∛(ρ²·g·r·λ³/μ·d·ΔT)</div></div>
          </div>
        </div>

        <div class="card accent-green">
          <div class="card-header"><div class="card-icon">⚡</div><div><div class="card-title">Aliran Fluida & Kompresor</div></div></div>
          <div class="card-body">
            <div class="formula-box"><div class="formula-label">Kontinuitas</div><div class="formula-eq">ṁ = ρ·A·v = const  [kg/s]</div></div>
            <div class="formula-box"><div class="formula-label">Pressure Drop (Darcy-Weisbach)</div><div class="formula-eq">ΔP = f · (L/d) · ρ·v²/2  [Pa]</div></div>
            <div class="formula-box"><div class="formula-label">Kerja Isentropik Kompresor</div><div class="formula-eq">w_s = (κ/(κ−1))·p₁·v₁·[(p₂/p₁)^((κ−1)/κ) − 1]</div></div>
            <div class="formula-box"><div class="formula-label">Rasio Kompresi</div><div class="formula-eq">π = P_hoch / P_niedrig</div><div class="formula-desc">Optimal 2-tingkat: π₁ = π₂ = √π</div></div>
            <div class="formula-box"><div class="formula-label">Efisiensi Isentropik</div><div class="formula-eq">η_is = (h₂s − h₁) / (h₂ − h₁)</div></div>
            <div class="formula-box"><div class="formula-label">Daya Motor</div><div class="formula-eq">P_el = Ẇ_komp / (η_mech · η_motor)  [kW]</div></div>
          </div>
        </div>

        <div class="card accent-purple">
          <div class="card-header"><div class="card-icon">🧊</div><div><div class="card-title">Refrigeran & Campuran</div></div></div>
          <div class="card-body">
            <div class="formula-box"><div class="formula-label">Hukum Dalton (campuran)</div><div class="formula-eq">P_ges = Σ P_i  ;  y_i = P_i/P_ges</div></div>
            <div class="formula-box"><div class="formula-label">Titel Uap (Quality)</div><div class="formula-eq">x = (h − h') / (h'' − h') = (h − h') / r</div><div class="formula-desc">x=0: cair jenuh; x=1: uap jenuh</div></div>
            <div class="formula-box"><div class="formula-label">Entalpi 2-Phase</div><div class="formula-eq">h = h' + x · r  ;  s = s' + x · (r/T_sat)</div></div>
            <div class="formula-box"><div class="formula-label">Glide Temperatur</div><div class="formula-eq">ΔT_glide = T_dew − T_bubble  [K]</div><div class="formula-desc">Refrigeran zeotropik; penting utk desain HX</div></div>
            <div class="formula-box"><div class="formula-label">Konsentrasi Absorpsi</div><div class="formula-eq">ξ_s − ξ_w = Δξ  ;  ṁ_ref = ṁ_L · Δξ / (1−ξ_s)</div></div>
          </div>
        </div>

        <div class="card accent-red">
          <div class="card-header"><div class="card-icon">🌡️</div><div><div class="card-title">Beban Termal & Psikrometri</div></div></div>
          <div class="card-body">
            <div class="formula-box"><div class="formula-label">Beban Sensibel</div><div class="formula-eq">Q̇_s = ṁ_air · c_p,air · ΔT  [kW]</div></div>
            <div class="formula-box"><div class="formula-label">Beban Laten</div><div class="formula-eq">Q̇_L = ṁ_air · r_w · Δω  [kW]</div><div class="formula-desc">ω = kandungan kelembaban [kg/kg]</div></div>
            <div class="formula-box"><div class="formula-label">Rasio Sensibel (SHR)</div><div class="formula-eq">SHR = Q̇_s / (Q̇_s + Q̇_L)</div></div>
            <div class="formula-box"><div class="formula-label">Titik Embun (dew point)</div><div class="formula-eq">T_dp ≈ T − (100−φ)/5  (approx.)</div><div class="formula-desc">φ = kelembaban relatif [%]</div></div>
            <div class="formula-box"><div class="formula-label">Efisiensi Koil Pendingin</div><div class="formula-eq">η_coil = (T_in − T_out) / (T_in − T_coil)</div></div>
          </div>
        </div>

        <div class="card accent-amber">
          <div class="card-header"><div class="card-icon">📊</div><div><div class="card-title">Analisis Eksergy & Optimasi</div></div></div>
          <div class="card-body">
            <div class="formula-box"><div class="formula-label">Eksergy Kalor</div><div class="formula-eq">Ė_Q = Q̇ · (1 − T₀/T)  [kW]</div><div class="formula-desc">T₀ = suhu referensi lingkungan [K]</div></div>
            <div class="formula-box"><div class="formula-label">Efisiensi Eksergi</div><div class="formula-eq">η_ex = Ė_produk / Ė_input</div></div>
            <div class="formula-box"><div class="formula-label">Irreversibilitas</div><div class="formula-eq">İ = T₀ · Ṡ_gen = Ė_input − Ė_produk  [kW]</div></div>
            <div class="formula-box"><div class="formula-label">Pinch Analysis</div><div class="formula-eq">Q̇_min = Σ (Ċ_H · ΔT) ; ΔT_min ≥ 5 K</div></div>
            <div class="formula-box"><div class="formula-label">SPF (Seasonal Performance Factor)</div><div class="formula-eq">SPF = Q_annual / W_annual  [−]</div><div class="formula-desc">Rata-rata COP sepanjang musim/tahun</div></div>
          </div>
        </div>

      </div>
    `
  }
];

// ─────────────────────────────────────────────
// RENDER ENGINE
// ─────────────────────────────────────────────
const navContainer = document.getElementById('nav-items');
const mainContent = document.getElementById('main-content');

function activatePage(id) {
  // Update nav
  document.querySelectorAll('.sidebar-item').forEach(el => {
    el.classList.toggle('active', el.dataset.id === id);
  });
  // Render content
  const page = pages.find(p => p.id === id);
  mainContent.innerHTML = `<div class="page active">${page.render()}</div>`;
  mainContent.scrollTop = 0;
}

// Build nav
pages.forEach(page => {
  const div = document.createElement('div');
  div.className = 'sidebar-section';
  div.innerHTML = `
    <div class="sidebar-item ${page.accentClass}" data-id="${page.id}">
      <span class="icon">${page.icon}</span>
      <span class="label">${page.label}</span>
      ${page.badge ? `<span class="badge">${page.badge}</span>` : ''}
    </div>
  `;
  div.querySelector('.sidebar-item').addEventListener('click', () => activatePage(page.id));
  navContainer.appendChild(div);
});

// Initial render
activatePage('overview');

// Scroll progress
mainContent.addEventListener('scroll', () => {
  const el = mainContent;
  const pct = (el.scrollTop / (el.scrollHeight - el.clientHeight)) * 100;
  document.getElementById('scrollBar').style.width = pct + '%';
});

// Particles
const pc = document.getElementById('particles');
for (let i = 0; i < 30; i++) {
  const p = document.createElement('div');
  p.className = 'particle';
  p.style.cssText = `
    left: ${Math.random()*100}%;
    top: ${Math.random()*100}%;
    animation-duration: ${6 + Math.random()*12}s;
    animation-delay: ${Math.random()*10}s;
    width: ${2 + Math.random()*4}px;
    height: ${2 + Math.random()*4}px;
    opacity: ${Math.random()*0.4};
  `;
  pc.appendChild(p);
}
</script>
</body>
</html>

 
 
Support : SAVE THE ENVIROMENT OF WEST PAPUA | INFO PAPUA | KNPB NEWS
Copyright © 2011. PAPUA TO OUR WORLD - All Rights Reserved
Template Created by Mr.YOGIX FWP Published by AGUSTINUS GIYAI
Proudly powered by Blogger